@crestapps/ai-chat-ui 1.0.0-preview.9 → 1.0.0-preview.95
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/ai-chat-widget.js +962 -0
- package/dist/ai-chat-widget.js.map +1 -0
- package/dist/ai-chat-widget.min.js +2 -0
- package/dist/ai-chat-widget.min.js.map +1 -0
- package/dist/ai-chat.css +45 -14
- package/dist/ai-chat.css.map +1 -1
- package/dist/ai-chat.js +1076 -1019
- package/dist/ai-chat.js.map +1 -1
- package/dist/ai-chat.min.css +1 -1
- package/dist/ai-chat.min.js +1 -1
- package/dist/ai-chat.min.js.map +1 -1
- package/dist/chat-interaction-settings.js +297 -0
- package/dist/chat-interaction-settings.js.map +1 -0
- package/dist/chat-interaction-settings.min.js +2 -0
- package/dist/chat-interaction-settings.min.js.map +1 -0
- package/dist/chat-interaction.js +1224 -325
- package/dist/chat-interaction.js.map +1 -1
- package/dist/chat-interaction.min.js +1 -1
- package/dist/chat-interaction.min.js.map +1 -1
- package/dist/chat-widget.css +48 -26
- package/dist/chat-widget.css.map +1 -1
- package/dist/chat-widget.min.css +1 -1
- package/dist/document-drop-zone.css +10 -10
- package/dist/document-drop-zone.css.map +1 -1
- package/dist/document-drop-zone.js +92 -14
- package/dist/document-drop-zone.js.map +1 -1
- package/dist/document-drop-zone.min.css +1 -1
- package/dist/document-drop-zone.min.js +1 -1
- package/dist/document-drop-zone.min.js.map +1 -1
- package/dist/technical-name-generator.js +36 -8
- package/dist/technical-name-generator.js.map +1 -1
- package/dist/technical-name-generator.min.js +1 -1
- package/dist/technical-name-generator.min.js.map +1 -1
- package/package.json +9 -1
- package/README.md +0 -145
package/dist/chat-widget.css
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* CrestApps AI Chat Widget */
|
|
2
2
|
:root {
|
|
3
3
|
--ai-widget-primary: var(--bs-secondary, #6c757d);
|
|
4
|
+
--ai-widget-primary-rgb: var(--bs-secondary-rgb, 108, 117, 125);
|
|
4
5
|
--ai-widget-width: 380px;
|
|
5
6
|
--ai-widget-height: 520px;
|
|
6
7
|
}
|
|
@@ -14,20 +15,20 @@
|
|
|
14
15
|
height: 52px;
|
|
15
16
|
border-radius: 50%;
|
|
16
17
|
background: var(--ai-widget-primary);
|
|
17
|
-
color: white;
|
|
18
|
+
color: var(--bs-white, #fff);
|
|
18
19
|
border: none;
|
|
19
20
|
cursor: pointer;
|
|
20
21
|
display: flex;
|
|
21
22
|
align-items: center;
|
|
22
23
|
justify-content: center;
|
|
23
24
|
font-size: 1.5rem;
|
|
24
|
-
box-shadow: 0 4px 12px rgba(
|
|
25
|
+
box-shadow: 0 4px 12px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.2);
|
|
25
26
|
transition: transform 0.2s, box-shadow 0.2s;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
.ai-chat-widget-toggle:hover {
|
|
29
30
|
transform: scale(1.1);
|
|
30
|
-
box-shadow: 0 6px 16px rgba(
|
|
31
|
+
box-shadow: 0 6px 16px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.3);
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
.ai-chat-widget-container {
|
|
@@ -37,9 +38,11 @@
|
|
|
37
38
|
z-index: 10001;
|
|
38
39
|
width: var(--ai-widget-width);
|
|
39
40
|
height: var(--ai-widget-height);
|
|
40
|
-
background: #fff;
|
|
41
|
+
background: var(--bs-body-bg, #fff);
|
|
42
|
+
color: var(--bs-body-color, #212529);
|
|
43
|
+
border: 1px solid var(--bs-border-color, #dee2e6);
|
|
41
44
|
border-radius: 12px;
|
|
42
|
-
box-shadow: 0 8px 32px rgba(
|
|
45
|
+
box-shadow: 0 8px 32px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.18);
|
|
43
46
|
display: none;
|
|
44
47
|
flex-direction: column;
|
|
45
48
|
overflow: hidden;
|
|
@@ -63,7 +66,7 @@
|
|
|
63
66
|
justify-content: space-between;
|
|
64
67
|
padding: 0.75rem 1rem;
|
|
65
68
|
background: var(--ai-widget-primary);
|
|
66
|
-
color: white;
|
|
69
|
+
color: var(--bs-white, #fff);
|
|
67
70
|
}
|
|
68
71
|
|
|
69
72
|
.ai-chat-widget-header.ai-chat-widget-drag-handle {
|
|
@@ -99,7 +102,7 @@
|
|
|
99
102
|
.ai-chat-widget-header button {
|
|
100
103
|
background: none;
|
|
101
104
|
border: none;
|
|
102
|
-
color: white;
|
|
105
|
+
color: var(--bs-white, #fff);
|
|
103
106
|
cursor: pointer;
|
|
104
107
|
font-size: 1rem;
|
|
105
108
|
padding: 0 0.25rem;
|
|
@@ -112,14 +115,16 @@
|
|
|
112
115
|
|
|
113
116
|
.ai-chat-widget-profile-select {
|
|
114
117
|
padding: 0.5rem 0.75rem;
|
|
115
|
-
border-bottom: 1px solid #
|
|
116
|
-
background: #f8f9fa;
|
|
118
|
+
border-bottom: 1px solid var(--bs-border-color, #dee2e6);
|
|
119
|
+
background: var(--bs-tertiary-bg, #f8f9fa);
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
.ai-chat-widget-profile-select select {
|
|
120
123
|
width: 100%;
|
|
121
124
|
padding: 0.35rem 0.5rem;
|
|
122
|
-
|
|
125
|
+
color: var(--bs-body-color, #212529);
|
|
126
|
+
background-color: var(--bs-body-bg, #fff);
|
|
127
|
+
border: 1px solid var(--bs-border-color, #ced4da);
|
|
123
128
|
border-radius: 6px;
|
|
124
129
|
font-size: 0.85rem;
|
|
125
130
|
}
|
|
@@ -146,7 +151,7 @@
|
|
|
146
151
|
display: block;
|
|
147
152
|
width: 100%;
|
|
148
153
|
margin-bottom: 0.5rem;
|
|
149
|
-
border-top: 1px solid rgba(33, 37, 41, 0.08);
|
|
154
|
+
border-top: 1px solid rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.08);
|
|
150
155
|
}
|
|
151
156
|
|
|
152
157
|
.ai-chat-widget-messages .ai-chat-msg-role {
|
|
@@ -156,7 +161,7 @@
|
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
.ai-chat-widget-messages .ai-chat-msg-role-user {
|
|
159
|
-
color: #0d6efd;
|
|
164
|
+
color: var(--bs-primary, #0d6efd);
|
|
160
165
|
}
|
|
161
166
|
|
|
162
167
|
.ai-chat-widget-messages .ai-chat-msg-role-assistant {
|
|
@@ -196,10 +201,10 @@
|
|
|
196
201
|
opacity: 0;
|
|
197
202
|
pointer-events: none;
|
|
198
203
|
transition: opacity 0.15s ease-in-out;
|
|
199
|
-
background: rgba(255, 255, 255, 0.96);
|
|
204
|
+
background: rgba(var(--bs-body-bg-rgb, 255, 255, 255), 0.96);
|
|
200
205
|
padding: 0.2rem 0.35rem;
|
|
201
206
|
border-radius: 999px;
|
|
202
|
-
box-shadow: 0 1px 3px rgba(
|
|
207
|
+
box-shadow: 0 1px 3px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.08);
|
|
203
208
|
margin-bottom: 1rem;
|
|
204
209
|
transform: translateY(50%);
|
|
205
210
|
z-index: 1;
|
|
@@ -239,6 +244,19 @@
|
|
|
239
244
|
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox:hover,
|
|
240
245
|
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox:focus {
|
|
241
246
|
color: var(--bs-body-color, #212529) !important;
|
|
247
|
+
text-decoration: none;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success,
|
|
251
|
+
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success:hover,
|
|
252
|
+
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success:focus {
|
|
253
|
+
color: var(--bs-success, #198754) !important;
|
|
254
|
+
text-decoration: none;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success svg {
|
|
258
|
+
color: inherit !important;
|
|
259
|
+
fill: currentColor;
|
|
242
260
|
}
|
|
243
261
|
|
|
244
262
|
.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.tts-playing {
|
|
@@ -253,7 +271,7 @@
|
|
|
253
271
|
left: 0;
|
|
254
272
|
right: 0;
|
|
255
273
|
bottom: 0;
|
|
256
|
-
background: #fff;
|
|
274
|
+
background: var(--bs-body-bg, #fff);
|
|
257
275
|
padding: 1rem;
|
|
258
276
|
z-index: 10;
|
|
259
277
|
display: none;
|
|
@@ -316,9 +334,9 @@
|
|
|
316
334
|
.ai-chat-widget-messages .ai-chat-notification {
|
|
317
335
|
margin: 0.75rem 0.5rem 0;
|
|
318
336
|
padding: 0.625rem 0.75rem;
|
|
319
|
-
border: 1px solid rgba(33, 37, 41, 0.12);
|
|
337
|
+
border: 1px solid rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.12);
|
|
320
338
|
border-radius: 0.5rem;
|
|
321
|
-
background: rgba(248, 249, 250, 0.98);
|
|
339
|
+
background: rgba(var(--bs-tertiary-bg-rgb, 248, 249, 250), 0.98);
|
|
322
340
|
}
|
|
323
341
|
|
|
324
342
|
.ai-chat-widget-messages .ai-chat-notification-content {
|
|
@@ -357,8 +375,8 @@
|
|
|
357
375
|
|
|
358
376
|
/* ── Code blocks & inline code ── */
|
|
359
377
|
.ai-chat-widget-messages .ai-chat-message-body pre {
|
|
360
|
-
background: #2d2d2d;
|
|
361
|
-
color: #f8f8f2;
|
|
378
|
+
background: var(--bs-dark-bg-subtle, #2d2d2d);
|
|
379
|
+
color: var(--bs-emphasis-color, #f8f8f2);
|
|
362
380
|
padding: 0.5rem;
|
|
363
381
|
border-radius: 4px;
|
|
364
382
|
overflow-x: auto;
|
|
@@ -375,7 +393,7 @@
|
|
|
375
393
|
}
|
|
376
394
|
|
|
377
395
|
.ai-chat-widget-input {
|
|
378
|
-
border-top: 1px solid #
|
|
396
|
+
border-top: 1px solid var(--bs-border-color, #dee2e6);
|
|
379
397
|
padding: 0.5rem 0.75rem;
|
|
380
398
|
display: flex;
|
|
381
399
|
flex-wrap: wrap;
|
|
@@ -387,12 +405,16 @@
|
|
|
387
405
|
flex: 0 0 100%;
|
|
388
406
|
margin: -0.5rem -0.75rem 0.5rem;
|
|
389
407
|
padding: 0.5rem 0.75rem;
|
|
408
|
+
max-height: 4.5rem;
|
|
409
|
+
overflow-y: auto;
|
|
390
410
|
}
|
|
391
411
|
|
|
392
412
|
.ai-chat-widget-input textarea {
|
|
393
413
|
flex: 1;
|
|
394
414
|
min-width: 0;
|
|
395
|
-
|
|
415
|
+
color: var(--bs-body-color, #212529);
|
|
416
|
+
background-color: var(--bs-body-bg, #fff);
|
|
417
|
+
border: 1px solid var(--bs-border-color, #ced4da);
|
|
396
418
|
border-radius: 8px;
|
|
397
419
|
padding: 0.4rem 0.6rem;
|
|
398
420
|
font-size: 0.9rem;
|
|
@@ -405,12 +427,12 @@
|
|
|
405
427
|
|
|
406
428
|
.ai-chat-widget-input textarea:focus {
|
|
407
429
|
border-color: var(--ai-widget-primary);
|
|
408
|
-
box-shadow: 0 0 0 2px rgba(
|
|
430
|
+
box-shadow: 0 0 0 2px rgba(var(--ai-widget-primary-rgb, 108, 117, 125), 0.15);
|
|
409
431
|
}
|
|
410
432
|
|
|
411
433
|
.ai-chat-widget-input button {
|
|
412
434
|
background: var(--ai-widget-primary);
|
|
413
|
-
color: white;
|
|
435
|
+
color: var(--bs-white, #fff);
|
|
414
436
|
border: none;
|
|
415
437
|
border-radius: 8px;
|
|
416
438
|
padding: 0.4rem 0.75rem;
|
|
@@ -434,7 +456,7 @@
|
|
|
434
456
|
|
|
435
457
|
.ai-chat-widget-input .btn.btn-outline-dark {
|
|
436
458
|
background: var(--bs-dark, #212529);
|
|
437
|
-
color: #fff;
|
|
459
|
+
color: var(--bs-white, #fff);
|
|
438
460
|
border-color: var(--bs-dark, #212529);
|
|
439
461
|
}
|
|
440
462
|
|
|
@@ -450,7 +472,7 @@
|
|
|
450
472
|
.ai-chat-widget-status {
|
|
451
473
|
padding: 0.25rem 0.75rem;
|
|
452
474
|
font-size: 0.8rem;
|
|
453
|
-
color: #6c757d;
|
|
475
|
+
color: var(--bs-secondary-color, #6c757d);
|
|
454
476
|
display: none;
|
|
455
477
|
}
|
|
456
478
|
|
|
@@ -460,7 +482,7 @@
|
|
|
460
482
|
|
|
461
483
|
.ai-chat-widget-welcome {
|
|
462
484
|
text-align: center;
|
|
463
|
-
color: #6c757d;
|
|
485
|
+
color: var(--bs-secondary-color, #6c757d);
|
|
464
486
|
padding: 2rem 1rem;
|
|
465
487
|
font-size: 0.9rem;
|
|
466
488
|
}
|
package/dist/chat-widget.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["chat-widget.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"chat-widget.css","sourcesContent":["/* CrestApps AI Chat Widget */\n:root {\n --ai-widget-primary: var(--bs-secondary, #6c757d);\n --ai-widget-width: 380px;\n --ai-widget-height: 520px;\n}\n\n.ai-chat-widget-toggle {\n position: fixed;\n bottom: 1.25rem;\n right: 1.25rem;\n z-index: 10000;\n width: 52px;\n height: 52px;\n border-radius: 50%;\n background: var(--ai-widget-primary);\n color: white;\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.5rem;\n box-shadow: 0 4px 12px rgba(0,0,0,0.2);\n transition: transform 0.2s, box-shadow 0.2s;\n}\n\n.ai-chat-widget-toggle:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(0,0,0,0.3);\n}\n\n.ai-chat-widget-container {\n position: fixed;\n bottom: 5rem;\n right: 1.25rem;\n z-index: 10001;\n width: var(--ai-widget-width);\n height: var(--ai-widget-height);\n background: #fff;\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(0,0,0,0.18);\n display: none;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ai-chat-widget-container.ai-chat-widget-resizable {\n resize: both;\n min-width: 320px;\n min-height: 420px;\n max-width: min(90vw, 960px);\n max-height: min(90vh, 960px);\n}\n\n.ai-chat-widget-container.open {\n display: flex;\n}\n\n.ai-chat-widget-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--ai-widget-primary);\n color: white;\n}\n\n.ai-chat-widget-header.ai-chat-widget-drag-handle {\n cursor: move;\n user-select: none;\n touch-action: none;\n}\n\n.ai-chat-widget-header-actions {\n display: flex;\n align-items: center;\n gap: 0.15rem;\n}\n\n.ai-chat-widget-toggle.ai-chat-widget-draggable {\n touch-action: none;\n}\n\n.ai-chat-widget-container.ai-chat-widget-dragging,\n.ai-chat-widget-toggle.ai-chat-widget-dragging {\n transition: none;\n}\n\n.ai-chat-widget-toggle.ai-chat-widget-dragging:hover {\n transform: none;\n}\n\n.ai-chat-widget-header .title {\n font-weight: 600;\n font-size: 0.95rem;\n}\n\n.ai-chat-widget-header button {\n background: none;\n border: none;\n color: white;\n cursor: pointer;\n font-size: 1rem;\n padding: 0 0.25rem;\n opacity: 0.8;\n}\n\n.ai-chat-widget-header button:hover {\n opacity: 1;\n}\n\n.ai-chat-widget-profile-select {\n padding: 0.5rem 0.75rem;\n border-bottom: 1px solid #e9ecef;\n background: #f8f9fa;\n}\n\n.ai-chat-widget-profile-select select {\n width: 100%;\n padding: 0.35rem 0.5rem;\n border: 1px solid #ced4da;\n border-radius: 6px;\n font-size: 0.85rem;\n}\n\n.ai-chat-widget-messages {\n flex: 1;\n overflow-y: auto;\n padding: 0.75rem;\n font-size: 0.9rem;\n}\n\n/* ── Widget message items (ai-chat.js Vue template) ── */\n.ai-chat-widget-messages .ai-chat-messages {\n padding: 0.5rem;\n}\n\n.ai-chat-widget-messages .ai-chat-message-item {\n position: relative;\n padding: 0.5rem 0;\n}\n\n.ai-chat-widget-messages .ai-chat-message-item + .ai-chat-message-item::before {\n content: '';\n display: block;\n width: 100%;\n margin-bottom: 0.5rem;\n border-top: 1px solid rgba(33, 37, 41, 0.08);\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role {\n font-size: 0.7rem;\n font-weight: 600;\n margin-bottom: 2px;\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-user {\n color: #0d6efd;\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-assistant {\n color: var(--ai-widget-primary, #6f42c1);\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-assistant i.ai-streaming-icon {\n animation: ai-widget-pulse 1.5s infinite;\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-assistant i.ai-bot-icon {\n color: currentColor;\n}\n\n.ai-chat-widget-messages .ai-chat-message-body {\n position: relative;\n padding: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n min-width: 0;\n}\n\n.ai-chat-widget-messages .ai-chat-message-body p:last-child {\n margin-bottom: 0;\n}\n\n/* ── Message action buttons (copy, thumbs up/down) ── */\n.ai-chat-widget-messages .message-buttons-container {\n position: absolute;\n right: 0.1rem;\n bottom: 0;\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n width: auto;\n max-width: max-content;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease-in-out;\n background: rgba(255, 255, 255, 0.96);\n padding: 0.2rem 0.35rem;\n border-radius: 999px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);\n margin-bottom: 1rem;\n transform: translateY(50%);\n z-index: 1;\n}\n\n.ai-chat-widget-messages .ai-chat-message-item:hover .message-buttons-container,\n.ai-chat-widget-messages .ai-chat-message-item:focus-within .message-buttons-container {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ai-chat-widget-messages .message-buttons-container:has(.tts-playing) {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 1.75rem;\n height: 1.75rem;\n margin: 0 !important;\n padding: 0 !important;\n border-radius: 50%;\n color: var(--bs-secondary-color, #6c757d) !important;\n text-decoration: none;\n}\n\n.ai-chat-widget-messages .message-buttons-container .ai-chat-message-assistant-feedback {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox:hover,\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox:focus {\n color: var(--bs-body-color, #212529) !important;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.tts-playing {\n color: var(--ai-widget-primary, #6f42c1) !important;\n opacity: 1;\n pointer-events: auto;\n}\n\n.ai-chat-widget-history-panel {\n position: absolute;\n top: 3.5rem;\n left: 0;\n right: 0;\n bottom: 0;\n background: #fff;\n padding: 1rem;\n z-index: 10;\n display: none;\n overflow-y: auto;\n flex-direction: column;\n}\n\n.ai-chat-widget-history-panel.show {\n display: flex;\n}\n\n.ai-chat-widget-history-panel .history-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n flex-shrink: 0;\n}\n\n.ai-chat-widget-history-panel .history-header h5 {\n margin: 0;\n font-size: 1rem;\n}\n\n.ai-chat-widget-history-list {\n list-style: none;\n padding: 0;\n margin: 0;\n overflow-y: auto;\n flex: 1 1 auto;\n}\n\n.ai-chat-widget-history-list li {\n margin-bottom: 0;\n}\n\n.ai-chat-widget-history-list .chat-session-history-item {\n display: block;\n padding: 0.5rem 0.75rem;\n text-decoration: none;\n color: var(--bs-body-color, #212529);\n font-size: 0.85rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: background 0.15s;\n cursor: pointer;\n border-bottom: 1px solid var(--bs-border-color, #dee2e6);\n}\n\n.ai-chat-widget-history-list li:last-child .chat-session-history-item {\n border-bottom: none;\n}\n\n.ai-chat-widget-history-list .chat-session-history-item:hover {\n background: var(--bs-tertiary-bg, #f8f9fa);\n}\n\n/* ── Notifications ── */\n.ai-chat-widget-messages .ai-chat-notification {\n margin: 0.75rem 0.5rem 0;\n padding: 0.625rem 0.75rem;\n border: 1px solid rgba(33, 37, 41, 0.12);\n border-radius: 0.5rem;\n background: rgba(248, 249, 250, 0.98);\n}\n\n.ai-chat-widget-messages .ai-chat-notification-content {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n}\n\n.ai-chat-widget-messages .ai-chat-notification-icon {\n margin-top: 0.1rem;\n color: var(--bs-secondary-color, #6c757d);\n}\n\n.ai-chat-widget-messages .ai-chat-notification-text {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.ai-chat-widget-messages .ai-chat-notification-dismiss {\n margin-left: auto !important;\n color: var(--bs-secondary-color, #6c757d) !important;\n}\n\n.ai-chat-widget-messages .ai-chat-notification-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.5rem;\n}\n\n/* ── Chart containers inside widget ── */\n.ai-chat-widget-messages .chart-container {\n width: 100%;\n max-width: 100% !important;\n min-height: 280px;\n}\n\n/* ── Code blocks & inline code ── */\n.ai-chat-widget-messages .ai-chat-message-body pre {\n background: #2d2d2d;\n color: #f8f8f2;\n padding: 0.5rem;\n border-radius: 4px;\n overflow-x: auto;\n font-size: 0.8rem;\n}\n\n.ai-chat-widget-messages .ai-chat-message-body code {\n font-size: 0.85em;\n}\n\n@keyframes ai-widget-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n}\n\n.ai-chat-widget-input {\n border-top: 1px solid #e9ecef;\n padding: 0.5rem 0.75rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: flex-end;\n}\n\n.ai-chat-widget-input .ai-chat-doc-bar {\n flex: 0 0 100%;\n margin: -0.5rem -0.75rem 0.5rem;\n padding: 0.5rem 0.75rem;\n}\n\n.ai-chat-widget-input textarea {\n flex: 1;\n min-width: 0;\n border: 1px solid #ced4da;\n border-radius: 8px;\n padding: 0.4rem 0.6rem;\n font-size: 0.9rem;\n resize: none;\n max-height: 80px;\n min-height: 36px;\n line-height: 1.4;\n outline: none;\n}\n\n.ai-chat-widget-input textarea:focus {\n border-color: var(--ai-widget-primary);\n box-shadow: 0 0 0 2px rgba(65,182,112,0.15);\n}\n\n.ai-chat-widget-input button {\n background: var(--ai-widget-primary);\n color: white;\n border: none;\n border-radius: 8px;\n padding: 0.4rem 0.75rem;\n cursor: pointer;\n font-size: 0.9rem;\n white-space: nowrap;\n}\n\n.ai-chat-widget-input .btn {\n background: var(--bs-body-bg, #fff);\n color: var(--bs-body-color, #212529);\n border: 1px solid var(--bs-border-color, #ced4da);\n}\n\n.ai-chat-widget-input .btn.btn-link {\n background: transparent;\n color: var(--bs-secondary-color, #6c757d);\n border: none;\n padding: 0.4rem;\n}\n\n.ai-chat-widget-input .btn.btn-outline-dark {\n background: var(--bs-dark, #212529);\n color: #fff;\n border-color: var(--bs-dark, #212529);\n}\n\n.ai-chat-widget-input .btn.btn-outline-secondary {\n color: var(--bs-secondary-color, #6c757d);\n}\n\n.ai-chat-widget-input button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ai-chat-widget-status {\n padding: 0.25rem 0.75rem;\n font-size: 0.8rem;\n color: #6c757d;\n display: none;\n}\n\n.ai-chat-widget-status.visible {\n display: block;\n}\n\n.ai-chat-widget-welcome {\n text-align: center;\n color: #6c757d;\n padding: 2rem 1rem;\n font-size: 0.9rem;\n}\n\n@media (max-width: 576px) {\n .ai-chat-widget-container {\n width: calc(100vw - 1rem);\n height: calc(100vh - 6rem);\n right: 0.5rem;\n bottom: 4.5rem;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["chat-widget.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"chat-widget.css","sourcesContent":["/* CrestApps AI Chat Widget */\n:root {\n --ai-widget-primary: var(--bs-secondary, #6c757d);\n --ai-widget-primary-rgb: var(--bs-secondary-rgb, 108, 117, 125);\n --ai-widget-width: 380px;\n --ai-widget-height: 520px;\n}\n\n.ai-chat-widget-toggle {\n position: fixed;\n bottom: 1.25rem;\n right: 1.25rem;\n z-index: 10000;\n width: 52px;\n height: 52px;\n border-radius: 50%;\n background: var(--ai-widget-primary);\n color: var(--bs-white, #fff);\n border: none;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.5rem;\n box-shadow: 0 4px 12px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.2);\n transition: transform 0.2s, box-shadow 0.2s;\n}\n\n.ai-chat-widget-toggle:hover {\n transform: scale(1.1);\n box-shadow: 0 6px 16px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.3);\n}\n\n.ai-chat-widget-container {\n position: fixed;\n bottom: 5rem;\n right: 1.25rem;\n z-index: 10001;\n width: var(--ai-widget-width);\n height: var(--ai-widget-height);\n background: var(--bs-body-bg, #fff);\n color: var(--bs-body-color, #212529);\n border: 1px solid var(--bs-border-color, #dee2e6);\n border-radius: 12px;\n box-shadow: 0 8px 32px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.18);\n display: none;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ai-chat-widget-container.ai-chat-widget-resizable {\n resize: both;\n min-width: 320px;\n min-height: 420px;\n max-width: min(90vw, 960px);\n max-height: min(90vh, 960px);\n}\n\n.ai-chat-widget-container.open {\n display: flex;\n}\n\n.ai-chat-widget-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem 1rem;\n background: var(--ai-widget-primary);\n color: var(--bs-white, #fff);\n}\n\n.ai-chat-widget-header.ai-chat-widget-drag-handle {\n cursor: move;\n user-select: none;\n touch-action: none;\n}\n\n.ai-chat-widget-header-actions {\n display: flex;\n align-items: center;\n gap: 0.15rem;\n}\n\n.ai-chat-widget-toggle.ai-chat-widget-draggable {\n touch-action: none;\n}\n\n.ai-chat-widget-container.ai-chat-widget-dragging,\n.ai-chat-widget-toggle.ai-chat-widget-dragging {\n transition: none;\n}\n\n.ai-chat-widget-toggle.ai-chat-widget-dragging:hover {\n transform: none;\n}\n\n.ai-chat-widget-header .title {\n font-weight: 600;\n font-size: 0.95rem;\n}\n\n.ai-chat-widget-header button {\n background: none;\n border: none;\n color: var(--bs-white, #fff);\n cursor: pointer;\n font-size: 1rem;\n padding: 0 0.25rem;\n opacity: 0.8;\n}\n\n.ai-chat-widget-header button:hover {\n opacity: 1;\n}\n\n.ai-chat-widget-profile-select {\n padding: 0.5rem 0.75rem;\n border-bottom: 1px solid var(--bs-border-color, #dee2e6);\n background: var(--bs-tertiary-bg, #f8f9fa);\n}\n\n.ai-chat-widget-profile-select select {\n width: 100%;\n padding: 0.35rem 0.5rem;\n color: var(--bs-body-color, #212529);\n background-color: var(--bs-body-bg, #fff);\n border: 1px solid var(--bs-border-color, #ced4da);\n border-radius: 6px;\n font-size: 0.85rem;\n}\n\n.ai-chat-widget-messages {\n flex: 1;\n overflow-y: auto;\n padding: 0.75rem;\n font-size: 0.9rem;\n}\n\n/* ── Widget message items (ai-chat.js Vue template) ── */\n.ai-chat-widget-messages .ai-chat-messages {\n padding: 0.5rem;\n}\n\n.ai-chat-widget-messages .ai-chat-message-item {\n position: relative;\n padding: 0.5rem 0;\n}\n\n.ai-chat-widget-messages .ai-chat-message-item + .ai-chat-message-item::before {\n content: '';\n display: block;\n width: 100%;\n margin-bottom: 0.5rem;\n border-top: 1px solid rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.08);\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role {\n font-size: 0.7rem;\n font-weight: 600;\n margin-bottom: 2px;\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-user {\n color: var(--bs-primary, #0d6efd);\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-assistant {\n color: var(--ai-widget-primary, #6f42c1);\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-assistant i.ai-streaming-icon {\n animation: ai-widget-pulse 1.5s infinite;\n}\n\n.ai-chat-widget-messages .ai-chat-msg-role-assistant i.ai-bot-icon {\n color: currentColor;\n}\n\n.ai-chat-widget-messages .ai-chat-message-body {\n position: relative;\n padding: 0;\n overflow-wrap: break-word;\n word-break: break-word;\n min-width: 0;\n}\n\n.ai-chat-widget-messages .ai-chat-message-body p:last-child {\n margin-bottom: 0;\n}\n\n/* ── Message action buttons (copy, thumbs up/down) ── */\n.ai-chat-widget-messages .message-buttons-container {\n position: absolute;\n right: 0.1rem;\n bottom: 0;\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n width: auto;\n max-width: max-content;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.15s ease-in-out;\n background: rgba(var(--bs-body-bg-rgb, 255, 255, 255), 0.96);\n padding: 0.2rem 0.35rem;\n border-radius: 999px;\n box-shadow: 0 1px 3px rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.08);\n margin-bottom: 1rem;\n transform: translateY(50%);\n z-index: 1;\n}\n\n.ai-chat-widget-messages .ai-chat-message-item:hover .message-buttons-container,\n.ai-chat-widget-messages .ai-chat-message-item:focus-within .message-buttons-container {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ai-chat-widget-messages .message-buttons-container:has(.tts-playing) {\n opacity: 1;\n pointer-events: auto;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: 1.75rem;\n height: 1.75rem;\n margin: 0 !important;\n padding: 0 !important;\n border-radius: 50%;\n color: var(--bs-secondary-color, #6c757d) !important;\n text-decoration: none;\n}\n\n.ai-chat-widget-messages .message-buttons-container .ai-chat-message-assistant-feedback {\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox:hover,\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox:focus {\n color: var(--bs-body-color, #212529) !important;\n text-decoration: none;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success,\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success:hover,\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success:focus {\n color: var(--bs-success, #198754) !important;\n text-decoration: none;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.text-success svg {\n color: inherit !important;\n fill: currentColor;\n}\n\n.ai-chat-widget-messages .message-buttons-container > .button-message-toolbox.tts-playing {\n color: var(--ai-widget-primary, #6f42c1) !important;\n opacity: 1;\n pointer-events: auto;\n}\n\n.ai-chat-widget-history-panel {\n position: absolute;\n top: 3.5rem;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--bs-body-bg, #fff);\n padding: 1rem;\n z-index: 10;\n display: none;\n overflow-y: auto;\n flex-direction: column;\n}\n\n.ai-chat-widget-history-panel.show {\n display: flex;\n}\n\n.ai-chat-widget-history-panel .history-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75rem;\n flex-shrink: 0;\n}\n\n.ai-chat-widget-history-panel .history-header h5 {\n margin: 0;\n font-size: 1rem;\n}\n\n.ai-chat-widget-history-list {\n list-style: none;\n padding: 0;\n margin: 0;\n overflow-y: auto;\n flex: 1 1 auto;\n}\n\n.ai-chat-widget-history-list li {\n margin-bottom: 0;\n}\n\n.ai-chat-widget-history-list .chat-session-history-item {\n display: block;\n padding: 0.5rem 0.75rem;\n text-decoration: none;\n color: var(--bs-body-color, #212529);\n font-size: 0.85rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: background 0.15s;\n cursor: pointer;\n border-bottom: 1px solid var(--bs-border-color, #dee2e6);\n}\n\n.ai-chat-widget-history-list li:last-child .chat-session-history-item {\n border-bottom: none;\n}\n\n.ai-chat-widget-history-list .chat-session-history-item:hover {\n background: var(--bs-tertiary-bg, #f8f9fa);\n}\n\n/* ── Notifications ── */\n.ai-chat-widget-messages .ai-chat-notification {\n margin: 0.75rem 0.5rem 0;\n padding: 0.625rem 0.75rem;\n border: 1px solid rgba(var(--bs-body-color-rgb, 33, 37, 41), 0.12);\n border-radius: 0.5rem;\n background: rgba(var(--bs-tertiary-bg-rgb, 248, 249, 250), 0.98);\n}\n\n.ai-chat-widget-messages .ai-chat-notification-content {\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n}\n\n.ai-chat-widget-messages .ai-chat-notification-icon {\n margin-top: 0.1rem;\n color: var(--bs-secondary-color, #6c757d);\n}\n\n.ai-chat-widget-messages .ai-chat-notification-text {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.ai-chat-widget-messages .ai-chat-notification-dismiss {\n margin-left: auto !important;\n color: var(--bs-secondary-color, #6c757d) !important;\n}\n\n.ai-chat-widget-messages .ai-chat-notification-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.5rem;\n}\n\n/* ── Chart containers inside widget ── */\n.ai-chat-widget-messages .chart-container {\n width: 100%;\n max-width: 100% !important;\n min-height: 280px;\n}\n\n/* ── Code blocks & inline code ── */\n.ai-chat-widget-messages .ai-chat-message-body pre {\n background: var(--bs-dark-bg-subtle, #2d2d2d);\n color: var(--bs-emphasis-color, #f8f8f2);\n padding: 0.5rem;\n border-radius: 4px;\n overflow-x: auto;\n font-size: 0.8rem;\n}\n\n.ai-chat-widget-messages .ai-chat-message-body code {\n font-size: 0.85em;\n}\n\n@keyframes ai-widget-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.4; }\n}\n\n.ai-chat-widget-input {\n border-top: 1px solid var(--bs-border-color, #dee2e6);\n padding: 0.5rem 0.75rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: flex-end;\n}\n\n.ai-chat-widget-input .ai-chat-doc-bar {\n flex: 0 0 100%;\n margin: -0.5rem -0.75rem 0.5rem;\n padding: 0.5rem 0.75rem;\n max-height: 4.5rem;\n overflow-y: auto;\n}\n\n.ai-chat-widget-input textarea {\n flex: 1;\n min-width: 0;\n color: var(--bs-body-color, #212529);\n background-color: var(--bs-body-bg, #fff);\n border: 1px solid var(--bs-border-color, #ced4da);\n border-radius: 8px;\n padding: 0.4rem 0.6rem;\n font-size: 0.9rem;\n resize: none;\n max-height: 80px;\n min-height: 36px;\n line-height: 1.4;\n outline: none;\n}\n\n.ai-chat-widget-input textarea:focus {\n border-color: var(--ai-widget-primary);\n box-shadow: 0 0 0 2px rgba(var(--ai-widget-primary-rgb, 108, 117, 125), 0.15);\n}\n\n.ai-chat-widget-input button {\n background: var(--ai-widget-primary);\n color: var(--bs-white, #fff);\n border: none;\n border-radius: 8px;\n padding: 0.4rem 0.75rem;\n cursor: pointer;\n font-size: 0.9rem;\n white-space: nowrap;\n}\n\n.ai-chat-widget-input .btn {\n background: var(--bs-body-bg, #fff);\n color: var(--bs-body-color, #212529);\n border: 1px solid var(--bs-border-color, #ced4da);\n}\n\n.ai-chat-widget-input .btn.btn-link {\n background: transparent;\n color: var(--bs-secondary-color, #6c757d);\n border: none;\n padding: 0.4rem;\n}\n\n.ai-chat-widget-input .btn.btn-outline-dark {\n background: var(--bs-dark, #212529);\n color: var(--bs-white, #fff);\n border-color: var(--bs-dark, #212529);\n}\n\n.ai-chat-widget-input .btn.btn-outline-secondary {\n color: var(--bs-secondary-color, #6c757d);\n}\n\n.ai-chat-widget-input button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ai-chat-widget-status {\n padding: 0.25rem 0.75rem;\n font-size: 0.8rem;\n color: var(--bs-secondary-color, #6c757d);\n display: none;\n}\n\n.ai-chat-widget-status.visible {\n display: block;\n}\n\n.ai-chat-widget-welcome {\n text-align: center;\n color: var(--bs-secondary-color, #6c757d);\n padding: 2rem 1rem;\n font-size: 0.9rem;\n}\n\n@media (max-width: 576px) {\n .ai-chat-widget-container {\n width: calc(100vw - 1rem);\n height: calc(100vh - 6rem);\n right: 0.5rem;\n bottom: 4.5rem;\n }\n}\n"]}
|
package/dist/chat-widget.min.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--ai-widget-primary:var(--bs-secondary, #6c757d);--ai-widget-width:380px;--ai-widget-height:520px}.ai-chat-widget-toggle{position:fixed;bottom:1.25rem;right:1.25rem;z-index:10000;width:52px;height:52px;border-radius:50%;background:var(--ai-widget-primary);color
|
|
1
|
+
:root{--ai-widget-primary:var(--bs-secondary, #6c757d);--ai-widget-primary-rgb:var(--bs-secondary-rgb, 108, 117, 125);--ai-widget-width:380px;--ai-widget-height:520px}.ai-chat-widget-toggle{position:fixed;bottom:1.25rem;right:1.25rem;z-index:10000;width:52px;height:52px;border-radius:50%;background:var(--ai-widget-primary);color:var(--bs-white,#fff);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 12px rgba(var(--bs-body-color-rgb,33,37,41),.2);transition:transform .2s,box-shadow .2s}.ai-chat-widget-toggle:hover{transform:scale(1.1);box-shadow:0 6px 16px rgba(var(--bs-body-color-rgb,33,37,41),.3)}.ai-chat-widget-container{position:fixed;bottom:5rem;right:1.25rem;z-index:10001;width:var(--ai-widget-width);height:var(--ai-widget-height);background:var(--bs-body-bg,#fff);color:var(--bs-body-color,#212529);border:1px solid var(--bs-border-color,#dee2e6);border-radius:12px;box-shadow:0 8px 32px rgba(var(--bs-body-color-rgb,33,37,41),.18);display:none;flex-direction:column;overflow:hidden}.ai-chat-widget-container.ai-chat-widget-resizable{resize:both;min-width:320px;min-height:420px;max-width:min(90vw,960px);max-height:min(90vh,960px)}.ai-chat-widget-container.open{display:flex}.ai-chat-widget-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--ai-widget-primary);color:var(--bs-white,#fff)}.ai-chat-widget-header.ai-chat-widget-drag-handle{cursor:move;user-select:none;touch-action:none}.ai-chat-widget-header-actions{display:flex;align-items:center;gap:.15rem}.ai-chat-widget-toggle.ai-chat-widget-draggable{touch-action:none}.ai-chat-widget-container.ai-chat-widget-dragging,.ai-chat-widget-toggle.ai-chat-widget-dragging{transition:none}.ai-chat-widget-toggle.ai-chat-widget-dragging:hover{transform:none}.ai-chat-widget-header .title{font-weight:600;font-size:.95rem}.ai-chat-widget-header button{background:0 0;border:none;color:var(--bs-white,#fff);cursor:pointer;font-size:1rem;padding:0 .25rem;opacity:.8}.ai-chat-widget-header button:hover{opacity:1}.ai-chat-widget-profile-select{padding:.5rem .75rem;border-bottom:1px solid var(--bs-border-color,#dee2e6);background:var(--bs-tertiary-bg,#f8f9fa)}.ai-chat-widget-profile-select select{width:100%;padding:.35rem .5rem;color:var(--bs-body-color,#212529);background-color:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#ced4da);border-radius:6px;font-size:.85rem}.ai-chat-widget-messages{flex:1;overflow-y:auto;padding:.75rem;font-size:.9rem}.ai-chat-widget-messages .ai-chat-messages{padding:.5rem}.ai-chat-widget-messages .ai-chat-message-item{position:relative;padding:.5rem 0}.ai-chat-widget-messages .ai-chat-message-item+.ai-chat-message-item::before{content:'';display:block;width:100%;margin-bottom:.5rem;border-top:1px solid rgba(var(--bs-body-color-rgb,33,37,41),.08)}.ai-chat-widget-messages .ai-chat-msg-role{font-size:.7rem;font-weight:600;margin-bottom:2px}.ai-chat-widget-messages .ai-chat-msg-role-user{color:var(--bs-primary,#0d6efd)}.ai-chat-widget-messages .ai-chat-msg-role-assistant{color:var(--ai-widget-primary,#6f42c1)}.ai-chat-widget-messages .ai-chat-msg-role-assistant i.ai-streaming-icon{animation:ai-widget-pulse 1.5s infinite}.ai-chat-widget-messages .ai-chat-msg-role-assistant i.ai-bot-icon{color:currentColor}.ai-chat-widget-messages .ai-chat-message-body{position:relative;padding:0;overflow-wrap:break-word;word-break:break-word;min-width:0}.ai-chat-widget-messages .ai-chat-message-body p:last-child{margin-bottom:0}.ai-chat-widget-messages .message-buttons-container{position:absolute;right:.1rem;bottom:0;display:inline-flex;align-items:center;gap:.35rem;width:auto;max-width:max-content;opacity:0;pointer-events:none;transition:opacity .15s ease-in-out;background:rgba(var(--bs-body-bg-rgb,255,255,255),.96);padding:.2rem .35rem;border-radius:999px;box-shadow:0 1px 3px rgba(var(--bs-body-color-rgb,33,37,41),.08);margin-bottom:1rem;transform:translateY(50%);z-index:1}.ai-chat-widget-messages .ai-chat-message-item:focus-within .message-buttons-container,.ai-chat-widget-messages .ai-chat-message-item:hover .message-buttons-container{opacity:1;pointer-events:auto}.ai-chat-widget-messages .message-buttons-container:has(.tts-playing){opacity:1;pointer-events:auto}.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.75rem;height:1.75rem;margin:0!important;padding:0!important;border-radius:50%;color:var(--bs-secondary-color,#6c757d)!important;text-decoration:none}.ai-chat-widget-messages .message-buttons-container .ai-chat-message-assistant-feedback{display:inline-flex;align-items:center;gap:.35rem}.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox:focus,.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox:hover{color:var(--bs-body-color,#212529)!important;text-decoration:none}.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox.text-success,.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox.text-success:focus,.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox.text-success:hover{color:var(--bs-success,#198754)!important;text-decoration:none}.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox.text-success svg{color:inherit!important;fill:currentColor}.ai-chat-widget-messages .message-buttons-container>.button-message-toolbox.tts-playing{color:var(--ai-widget-primary,#6f42c1)!important;opacity:1;pointer-events:auto}.ai-chat-widget-history-panel{position:absolute;top:3.5rem;left:0;right:0;bottom:0;background:var(--bs-body-bg,#fff);padding:1rem;z-index:10;display:none;overflow-y:auto;flex-direction:column}.ai-chat-widget-history-panel.show{display:flex}.ai-chat-widget-history-panel .history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-shrink:0}.ai-chat-widget-history-panel .history-header h5{margin:0;font-size:1rem}.ai-chat-widget-history-list{list-style:none;padding:0;margin:0;overflow-y:auto;flex:1 1 auto}.ai-chat-widget-history-list li{margin-bottom:0}.ai-chat-widget-history-list .chat-session-history-item{display:block;padding:.5rem .75rem;text-decoration:none;color:var(--bs-body-color,#212529);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .15s;cursor:pointer;border-bottom:1px solid var(--bs-border-color,#dee2e6)}.ai-chat-widget-history-list li:last-child .chat-session-history-item{border-bottom:none}.ai-chat-widget-history-list .chat-session-history-item:hover{background:var(--bs-tertiary-bg,#f8f9fa)}.ai-chat-widget-messages .ai-chat-notification{margin:.75rem .5rem 0;padding:.625rem .75rem;border:1px solid rgba(var(--bs-body-color-rgb,33,37,41),.12);border-radius:.5rem;background:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.98)}.ai-chat-widget-messages .ai-chat-notification-content{display:flex;align-items:flex-start;gap:.5rem}.ai-chat-widget-messages .ai-chat-notification-icon{margin-top:.1rem;color:var(--bs-secondary-color,#6c757d)}.ai-chat-widget-messages .ai-chat-notification-text{flex:1 1 auto;min-width:0}.ai-chat-widget-messages .ai-chat-notification-dismiss{margin-left:auto!important;color:var(--bs-secondary-color,#6c757d)!important}.ai-chat-widget-messages .ai-chat-notification-actions{display:flex;gap:.5rem;margin-top:.5rem}.ai-chat-widget-messages .chart-container{width:100%;max-width:100%!important;min-height:280px}.ai-chat-widget-messages .ai-chat-message-body pre{background:var(--bs-dark-bg-subtle,#2d2d2d);color:var(--bs-emphasis-color,#f8f8f2);padding:.5rem;border-radius:4px;overflow-x:auto;font-size:.8rem}.ai-chat-widget-messages .ai-chat-message-body code{font-size:.85em}@keyframes ai-widget-pulse{0%,100%{opacity:1}50%{opacity:.4}}.ai-chat-widget-input{border-top:1px solid var(--bs-border-color,#dee2e6);padding:.5rem .75rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}.ai-chat-widget-input .ai-chat-doc-bar{flex:0 0 100%;margin:-.5rem -.75rem .5rem;padding:.5rem .75rem;max-height:4.5rem;overflow-y:auto}.ai-chat-widget-input textarea{flex:1;min-width:0;color:var(--bs-body-color,#212529);background-color:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#ced4da);border-radius:8px;padding:.4rem .6rem;font-size:.9rem;resize:none;max-height:80px;min-height:36px;line-height:1.4;outline:0}.ai-chat-widget-input textarea:focus{border-color:var(--ai-widget-primary);box-shadow:0 0 0 2px rgba(var(--ai-widget-primary-rgb,108,117,125),.15)}.ai-chat-widget-input button{background:var(--ai-widget-primary);color:var(--bs-white,#fff);border:none;border-radius:8px;padding:.4rem .75rem;cursor:pointer;font-size:.9rem;white-space:nowrap}.ai-chat-widget-input .btn{background:var(--bs-body-bg,#fff);color:var(--bs-body-color,#212529);border:1px solid var(--bs-border-color,#ced4da)}.ai-chat-widget-input .btn.btn-link{background:0 0;color:var(--bs-secondary-color,#6c757d);border:none;padding:.4rem}.ai-chat-widget-input .btn.btn-outline-dark{background:var(--bs-dark,#212529);color:var(--bs-white,#fff);border-color:var(--bs-dark,#212529)}.ai-chat-widget-input .btn.btn-outline-secondary{color:var(--bs-secondary-color,#6c757d)}.ai-chat-widget-input button:disabled{opacity:.5;cursor:not-allowed}.ai-chat-widget-status{padding:.25rem .75rem;font-size:.8rem;color:var(--bs-secondary-color,#6c757d);display:none}.ai-chat-widget-status.visible{display:block}.ai-chat-widget-welcome{text-align:center;color:var(--bs-secondary-color,#6c757d);padding:2rem 1rem;font-size:.9rem}@media (max-width:576px){.ai-chat-widget-container{width:calc(100vw - 1rem);height:calc(100vh - 6rem);right:.5rem;bottom:4.5rem}}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
.attached-documents-panel {
|
|
2
2
|
border: 1px solid var(--bs-border-color, #dee2e6);
|
|
3
3
|
border-radius: 0.75rem;
|
|
4
|
-
background: linear-gradient(180deg, rgba(13, 110, 253, 0.04), rgba(13, 110, 253, 0.01));
|
|
4
|
+
background: linear-gradient(180deg, rgba(var(--bs-primary-rgb, 13, 110, 253), 0.04), rgba(var(--bs-primary-rgb, 13, 110, 253), 0.01));
|
|
5
5
|
padding: 1rem;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.document-drop-zone {
|
|
9
9
|
position: relative;
|
|
10
|
-
border: 2px dashed rgba(13, 110, 253, 0.35);
|
|
10
|
+
border: 2px dashed rgba(var(--bs-primary-rgb, 13, 110, 253), 0.35);
|
|
11
11
|
border-radius: 1rem;
|
|
12
|
-
background: rgba(248, 249, 250, 0.8);
|
|
12
|
+
background: rgba(var(--bs-tertiary-bg-rgb, 248, 249, 250), 0.8);
|
|
13
13
|
transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
.document-drop-zone:hover {
|
|
17
|
-
border-color: rgba(13, 110, 253, 0.55);
|
|
18
|
-
background: rgba(248, 249, 250, 0.95);
|
|
17
|
+
border-color: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.55);
|
|
18
|
+
background: rgba(var(--bs-tertiary-bg-rgb, 248, 249, 250), 0.95);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.document-drop-zone--dragover {
|
|
22
22
|
border-color: var(--bs-primary, #0d6efd);
|
|
23
|
-
background: rgba(13, 110, 253, 0.08);
|
|
24
|
-
box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12);
|
|
23
|
+
background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.08);
|
|
24
|
+
box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb, 13, 110, 253), 0.12);
|
|
25
25
|
transform: translateY(-1px);
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
align-items: center;
|
|
42
42
|
justify-content: center;
|
|
43
43
|
border-radius: 50%;
|
|
44
|
-
background: rgba(13, 110, 253, 0.12);
|
|
44
|
+
background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.12);
|
|
45
45
|
color: var(--bs-primary, #0d6efd);
|
|
46
46
|
font-size: 1.5rem;
|
|
47
47
|
}
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
padding: 0.75rem 0.875rem;
|
|
72
72
|
border: 1px solid var(--bs-border-color, #dee2e6);
|
|
73
73
|
border-radius: 0.75rem;
|
|
74
|
-
background: #fff;
|
|
74
|
+
background: var(--bs-body-bg, #fff);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
.attached-document-icon {
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
align-items: center;
|
|
82
82
|
justify-content: center;
|
|
83
83
|
border-radius: 0.65rem;
|
|
84
|
-
background: rgba(13, 110, 253, 0.1);
|
|
84
|
+
background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.1);
|
|
85
85
|
color: var(--bs-primary, #0d6efd);
|
|
86
86
|
flex-shrink: 0;
|
|
87
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["document-drop-zone.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"document-drop-zone.css","sourcesContent":[".attached-documents-panel {\n border: 1px solid var(--bs-border-color, #dee2e6);\n border-radius: 0.75rem;\n background: linear-gradient(180deg, rgba(13, 110, 253, 0.04), rgba(13, 110, 253, 0.01));\n padding: 1rem;\n}\n\n.document-drop-zone {\n position: relative;\n border: 2px dashed rgba(13, 110, 253, 0.35);\n border-radius: 1rem;\n background: rgba(248, 249, 250, 0.8);\n transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;\n}\n\n.document-drop-zone:hover {\n border-color: rgba(13, 110, 253, 0.55);\n background: rgba(248, 249, 250, 0.95);\n}\n\n.document-drop-zone--dragover {\n border-color: var(--bs-primary, #0d6efd);\n background: rgba(13, 110, 253, 0.08);\n box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.12);\n transform: translateY(-1px);\n}\n\n.document-drop-zone__body {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.75rem;\n padding: 1.5rem 1rem;\n text-align: center;\n}\n\n.document-drop-zone__icon {\n width: 3.5rem;\n height: 3.5rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: rgba(13, 110, 253, 0.12);\n color: var(--bs-primary, #0d6efd);\n font-size: 1.5rem;\n}\n\n.document-drop-zone__title {\n font-weight: 600;\n}\n\n.document-drop-zone__actions {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.75rem;\n}\n\n.attached-documents-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.attached-document-card,\n.pending-doc-row {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.75rem 0.875rem;\n border: 1px solid var(--bs-border-color, #dee2e6);\n border-radius: 0.75rem;\n background: #fff;\n}\n\n.attached-document-icon {\n width: 2.25rem;\n height: 2.25rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.65rem;\n background: rgba(13, 110, 253, 0.1);\n color: var(--bs-primary, #0d6efd);\n flex-shrink: 0;\n}\n\n.attached-document-meta {\n min-width: 0;\n}\n\n.attached-document-name {\n font-weight: 500;\n word-break: break-word;\n}\n\n.attached-document-size {\n color: var(--bs-secondary-color, #6c757d);\n font-size: 0.875rem;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["document-drop-zone.css"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"document-drop-zone.css","sourcesContent":[".attached-documents-panel {\n border: 1px solid var(--bs-border-color, #dee2e6);\n border-radius: 0.75rem;\n background: linear-gradient(180deg, rgba(var(--bs-primary-rgb, 13, 110, 253), 0.04), rgba(var(--bs-primary-rgb, 13, 110, 253), 0.01));\n padding: 1rem;\n}\n\n.document-drop-zone {\n position: relative;\n border: 2px dashed rgba(var(--bs-primary-rgb, 13, 110, 253), 0.35);\n border-radius: 1rem;\n background: rgba(var(--bs-tertiary-bg-rgb, 248, 249, 250), 0.8);\n transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;\n}\n\n.document-drop-zone:hover {\n border-color: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.55);\n background: rgba(var(--bs-tertiary-bg-rgb, 248, 249, 250), 0.95);\n}\n\n.document-drop-zone--dragover {\n border-color: var(--bs-primary, #0d6efd);\n background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.08);\n box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb, 13, 110, 253), 0.12);\n transform: translateY(-1px);\n}\n\n.document-drop-zone__body {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0.75rem;\n padding: 1.5rem 1rem;\n text-align: center;\n}\n\n.document-drop-zone__icon {\n width: 3.5rem;\n height: 3.5rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.12);\n color: var(--bs-primary, #0d6efd);\n font-size: 1.5rem;\n}\n\n.document-drop-zone__title {\n font-weight: 600;\n}\n\n.document-drop-zone__actions {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.75rem;\n}\n\n.attached-documents-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.attached-document-card,\n.pending-doc-row {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.75rem 0.875rem;\n border: 1px solid var(--bs-border-color, #dee2e6);\n border-radius: 0.75rem;\n background: var(--bs-body-bg, #fff);\n}\n\n.attached-document-icon {\n width: 2.25rem;\n height: 2.25rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 0.65rem;\n background: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.1);\n color: var(--bs-primary, #0d6efd);\n flex-shrink: 0;\n}\n\n.attached-document-meta {\n min-width: 0;\n}\n\n.attached-document-name {\n font-weight: 500;\n word-break: break-word;\n}\n\n.attached-document-size {\n color: var(--bs-secondary-color, #6c757d);\n font-size: 0.875rem;\n}\n"]}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
(function (window, document) {
|
|
7
7
|
'use strict';
|
|
8
8
|
|
|
9
|
+
var dropZoneStateKey = '__documentDropZoneState';
|
|
9
10
|
function assignFiles(fileInput, files) {
|
|
10
11
|
if (!fileInput || !files) {
|
|
11
12
|
return;
|
|
@@ -29,6 +30,9 @@
|
|
|
29
30
|
if (!dropZone || !fileInput) {
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
33
|
+
if (dropZone[dropZoneStateKey] && typeof dropZone[dropZoneStateKey].dispose === 'function') {
|
|
34
|
+
dropZone[dropZoneStateKey].dispose();
|
|
35
|
+
}
|
|
32
36
|
function openPicker() {
|
|
33
37
|
fileInput.click();
|
|
34
38
|
}
|
|
@@ -39,40 +43,114 @@
|
|
|
39
43
|
function setDragState(isActive) {
|
|
40
44
|
dropZone.classList.toggle('document-drop-zone--dragover', isActive);
|
|
41
45
|
}
|
|
42
|
-
|
|
43
|
-
dropZone.addEventListener(eventName, preventDefaults);
|
|
44
|
-
});
|
|
45
|
-
dropZone.addEventListener('dragenter', function () {
|
|
46
|
+
function handleDragEnter() {
|
|
46
47
|
setDragState(true);
|
|
47
|
-
}
|
|
48
|
-
|
|
48
|
+
}
|
|
49
|
+
function handleDragOver() {
|
|
49
50
|
setDragState(true);
|
|
50
|
-
}
|
|
51
|
-
|
|
51
|
+
}
|
|
52
|
+
function handleDragLeave(event) {
|
|
52
53
|
if (!dropZone.contains(event.relatedTarget)) {
|
|
53
54
|
setDragState(false);
|
|
54
55
|
}
|
|
55
|
-
}
|
|
56
|
-
|
|
56
|
+
}
|
|
57
|
+
function handleDrop(event) {
|
|
57
58
|
setDragState(false);
|
|
58
59
|
var files = event.dataTransfer ? event.dataTransfer.files : null;
|
|
59
60
|
if (files && files.length > 0) {
|
|
60
61
|
assignFiles(fileInput, files);
|
|
61
62
|
}
|
|
63
|
+
}
|
|
64
|
+
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(function (eventName) {
|
|
65
|
+
dropZone.addEventListener(eventName, preventDefaults);
|
|
62
66
|
});
|
|
67
|
+
dropZone.addEventListener('dragenter', handleDragEnter);
|
|
68
|
+
dropZone.addEventListener('dragover', handleDragOver);
|
|
69
|
+
dropZone.addEventListener('dragleave', handleDragLeave);
|
|
70
|
+
dropZone.addEventListener('drop', handleDrop);
|
|
71
|
+
var handleBrowseClick = null;
|
|
63
72
|
if (browseButton) {
|
|
64
|
-
|
|
73
|
+
handleBrowseClick = function handleBrowseClick(event) {
|
|
65
74
|
event.preventDefault();
|
|
66
75
|
event.stopPropagation();
|
|
67
76
|
openPicker();
|
|
68
|
-
}
|
|
77
|
+
};
|
|
78
|
+
browseButton.addEventListener('click', handleBrowseClick);
|
|
69
79
|
}
|
|
70
|
-
|
|
80
|
+
function handleClick(event) {
|
|
71
81
|
if (event.target.closest('[data-drop-zone-browse]')) {
|
|
72
82
|
return;
|
|
73
83
|
}
|
|
74
84
|
openPicker();
|
|
75
|
-
}
|
|
85
|
+
}
|
|
86
|
+
dropZone.addEventListener('click', handleClick);
|
|
87
|
+
dropZone[dropZoneStateKey] = {
|
|
88
|
+
dispose: function dispose() {
|
|
89
|
+
['dragenter', 'dragover', 'dragleave', 'drop'].forEach(function (eventName) {
|
|
90
|
+
dropZone.removeEventListener(eventName, preventDefaults);
|
|
91
|
+
});
|
|
92
|
+
dropZone.removeEventListener('dragenter', handleDragEnter);
|
|
93
|
+
dropZone.removeEventListener('dragover', handleDragOver);
|
|
94
|
+
dropZone.removeEventListener('dragleave', handleDragLeave);
|
|
95
|
+
dropZone.removeEventListener('drop', handleDrop);
|
|
96
|
+
dropZone.removeEventListener('click', handleClick);
|
|
97
|
+
if (browseButton && handleBrowseClick) {
|
|
98
|
+
browseButton.removeEventListener('click', handleBrowseClick);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
return dropZone[dropZoneStateKey];
|
|
76
103
|
};
|
|
104
|
+
function initializeFromElement(element) {
|
|
105
|
+
if (!element || element.dataset.documentDropZoneInitialized === 'true') {
|
|
106
|
+
return element ? element[dropZoneStateKey] || null : null;
|
|
107
|
+
}
|
|
108
|
+
var options = {
|
|
109
|
+
dropZone: element,
|
|
110
|
+
fileInput: element.getAttribute('data-document-drop-zone-file-input'),
|
|
111
|
+
browseButton: element.getAttribute('data-document-drop-zone-browse-button')
|
|
112
|
+
};
|
|
113
|
+
var state = window.initDocumentDropZone(options);
|
|
114
|
+
if (!state) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
element.dataset.documentDropZoneInitialized = 'true';
|
|
118
|
+
return state;
|
|
119
|
+
}
|
|
120
|
+
function scanForAutoInitialization(root) {
|
|
121
|
+
if (!root || typeof root.querySelectorAll !== 'function') {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (typeof root.matches === 'function' && root.matches('[data-document-drop-zone-file-input]')) {
|
|
125
|
+
initializeFromElement(root);
|
|
126
|
+
}
|
|
127
|
+
root.querySelectorAll('[data-document-drop-zone-file-input]').forEach(initializeFromElement);
|
|
128
|
+
}
|
|
129
|
+
function startAutoInitialization() {
|
|
130
|
+
scanForAutoInitialization(document);
|
|
131
|
+
if (typeof MutationObserver === 'undefined') {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
var observer = new MutationObserver(function (mutations) {
|
|
135
|
+
mutations.forEach(function (mutation) {
|
|
136
|
+
mutation.addedNodes.forEach(function (node) {
|
|
137
|
+
if (node && node.nodeType === 1) {
|
|
138
|
+
scanForAutoInitialization(node);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
observer.observe(document.body, {
|
|
144
|
+
childList: true,
|
|
145
|
+
subtree: true
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (document.readyState === 'loading') {
|
|
149
|
+
document.addEventListener('DOMContentLoaded', startAutoInitialization, {
|
|
150
|
+
once: true
|
|
151
|
+
});
|
|
152
|
+
} else {
|
|
153
|
+
startAutoInitialization();
|
|
154
|
+
}
|
|
77
155
|
})(window, document);
|
|
78
156
|
//# sourceMappingURL=document-drop-zone.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["document-drop-zone.js"],"names":["window","document","assignFiles","fileInput","files","dataTransfer","DataTransfer","Array","prototype","forEach","call","file","items","add","dispatchEvent","Event","bubbles","initDocumentDropZone","options","dropZone","querySelector","browseButton","openPicker","click","preventDefaults","event","preventDefault","stopPropagation","setDragState","isActive","classList","toggle","eventName","addEventListener","contains","relatedTarget","length","target","closest"],"mappings":"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","file":"document-drop-zone.js","sourcesContent":["(function (window, document) {\n 'use strict';\n\n function assignFiles(fileInput, files) {\n if (!fileInput || !files) {\n return;\n }\n\n var dataTransfer = new DataTransfer();\n\n Array.prototype.forEach.call(files, function (file) {\n dataTransfer.items.add(file);\n });\n\n fileInput.files = dataTransfer.files;\n fileInput.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n window.initDocumentDropZone = function initDocumentDropZone(options) {\n if (!options) {\n return;\n }\n\n var dropZone = typeof options.dropZone === 'string'\n ? document.querySelector(options.dropZone)\n : options.dropZone;\n var fileInput = typeof options.fileInput === 'string'\n ? document.querySelector(options.fileInput)\n : options.fileInput;\n var browseButton = typeof options.browseButton === 'string'\n ? document.querySelector(options.browseButton)\n : options.browseButton;\n\n if (!dropZone || !fileInput) {\n return;\n }\n\n function openPicker() {\n fileInput.click();\n }\n\n function preventDefaults(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n function setDragState(isActive) {\n dropZone.classList.toggle('document-drop-zone--dragover', isActive);\n }\n\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(function (eventName) {\n dropZone.addEventListener(eventName, preventDefaults);\n });\n\n dropZone.addEventListener('dragenter', function () { setDragState(true); });\n dropZone.addEventListener('dragover', function () { setDragState(true); });\n dropZone.addEventListener('dragleave', function (event) {\n if (!dropZone.contains(event.relatedTarget)) {\n setDragState(false);\n }\n });\n dropZone.addEventListener('drop', function (event) {\n setDragState(false);\n var files = event.dataTransfer ? event.dataTransfer.files : null;\n if (files && files.length > 0) {\n assignFiles(fileInput, files);\n }\n });\n\n if (browseButton) {\n browseButton.addEventListener('click', function (event) {\n event.preventDefault();\n event.stopPropagation();\n openPicker();\n });\n }\n\n dropZone.addEventListener('click', function (event) {\n if (event.target.closest('[data-drop-zone-browse]')) {\n return;\n }\n\n openPicker();\n });\n };\n})(window, document);\n"]}
|
|
1
|
+
{"version":3,"sources":["document-drop-zone.js"],"names":["window","document","dropZoneStateKey","assignFiles","fileInput","files","dataTransfer","DataTransfer","Array","prototype","forEach","call","file","items","add","dispatchEvent","Event","bubbles","initDocumentDropZone","options","dropZone","querySelector","browseButton","dispose","openPicker","click","preventDefaults","event","preventDefault","stopPropagation","setDragState","isActive","classList","toggle","handleDragEnter","handleDragOver","handleDragLeave","contains","relatedTarget","handleDrop","length","eventName","addEventListener","handleBrowseClick","handleClick","target","closest","removeEventListener","initializeFromElement","element","dataset","documentDropZoneInitialized","getAttribute","state","scanForAutoInitialization","root","querySelectorAll","matches","startAutoInitialization","MutationObserver","observer","mutations","mutation","addedNodes","node","nodeType","observe","body","childList","subtree","readyState","once"],"mappings":"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","file":"document-drop-zone.js","sourcesContent":["(function (window, document) {\n 'use strict';\n\n var dropZoneStateKey = '__documentDropZoneState';\n\n function assignFiles(fileInput, files) {\n if (!fileInput || !files) {\n return;\n }\n\n var dataTransfer = new DataTransfer();\n\n Array.prototype.forEach.call(files, function (file) {\n dataTransfer.items.add(file);\n });\n\n fileInput.files = dataTransfer.files;\n fileInput.dispatchEvent(new Event('change', { bubbles: true }));\n }\n\n window.initDocumentDropZone = function initDocumentDropZone(options) {\n if (!options) {\n return;\n }\n\n var dropZone = typeof options.dropZone === 'string'\n ? document.querySelector(options.dropZone)\n : options.dropZone;\n var fileInput = typeof options.fileInput === 'string'\n ? document.querySelector(options.fileInput)\n : options.fileInput;\n var browseButton = typeof options.browseButton === 'string'\n ? document.querySelector(options.browseButton)\n : options.browseButton;\n\n if (!dropZone || !fileInput) {\n return;\n }\n\n if (dropZone[dropZoneStateKey] && typeof dropZone[dropZoneStateKey].dispose === 'function') {\n dropZone[dropZoneStateKey].dispose();\n }\n\n function openPicker() {\n fileInput.click();\n }\n\n function preventDefaults(event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n function setDragState(isActive) {\n dropZone.classList.toggle('document-drop-zone--dragover', isActive);\n }\n\n function handleDragEnter() {\n setDragState(true);\n }\n\n function handleDragOver() {\n setDragState(true);\n }\n\n function handleDragLeave(event) {\n if (!dropZone.contains(event.relatedTarget)) {\n setDragState(false);\n }\n }\n\n function handleDrop(event) {\n setDragState(false);\n var files = event.dataTransfer ? event.dataTransfer.files : null;\n if (files && files.length > 0) {\n assignFiles(fileInput, files);\n }\n }\n\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(function (eventName) {\n dropZone.addEventListener(eventName, preventDefaults);\n });\n\n dropZone.addEventListener('dragenter', handleDragEnter);\n dropZone.addEventListener('dragover', handleDragOver);\n dropZone.addEventListener('dragleave', handleDragLeave);\n dropZone.addEventListener('drop', handleDrop);\n\n var handleBrowseClick = null;\n if (browseButton) {\n handleBrowseClick = function (event) {\n event.preventDefault();\n event.stopPropagation();\n openPicker();\n };\n\n browseButton.addEventListener('click', handleBrowseClick);\n }\n\n function handleClick(event) {\n if (event.target.closest('[data-drop-zone-browse]')) {\n return;\n }\n\n openPicker();\n }\n\n dropZone.addEventListener('click', handleClick);\n\n dropZone[dropZoneStateKey] = {\n dispose: function () {\n ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(function (eventName) {\n dropZone.removeEventListener(eventName, preventDefaults);\n });\n\n dropZone.removeEventListener('dragenter', handleDragEnter);\n dropZone.removeEventListener('dragover', handleDragOver);\n dropZone.removeEventListener('dragleave', handleDragLeave);\n dropZone.removeEventListener('drop', handleDrop);\n dropZone.removeEventListener('click', handleClick);\n\n if (browseButton && handleBrowseClick) {\n browseButton.removeEventListener('click', handleBrowseClick);\n }\n }\n };\n\n return dropZone[dropZoneStateKey];\n };\n\n function initializeFromElement(element) {\n if (!element || element.dataset.documentDropZoneInitialized === 'true') {\n return element ? element[dropZoneStateKey] || null : null;\n }\n\n var options = {\n dropZone: element,\n fileInput: element.getAttribute('data-document-drop-zone-file-input'),\n browseButton: element.getAttribute('data-document-drop-zone-browse-button'),\n };\n\n var state = window.initDocumentDropZone(options);\n if (!state) {\n return null;\n }\n\n element.dataset.documentDropZoneInitialized = 'true';\n\n return state;\n }\n\n function scanForAutoInitialization(root) {\n if (!root || typeof root.querySelectorAll !== 'function') {\n return;\n }\n\n if (typeof root.matches === 'function' && root.matches('[data-document-drop-zone-file-input]')) {\n initializeFromElement(root);\n }\n\n root.querySelectorAll('[data-document-drop-zone-file-input]').forEach(initializeFromElement);\n }\n\n function startAutoInitialization() {\n scanForAutoInitialization(document);\n\n if (typeof MutationObserver === 'undefined') {\n return;\n }\n\n var observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n mutation.addedNodes.forEach(function (node) {\n if (node && node.nodeType === 1) {\n scanForAutoInitialization(node);\n }\n });\n });\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n }\n\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', startAutoInitialization, { once: true });\n } else {\n startAutoInitialization();\n }\n})(window, document);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.attached-documents-panel{border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background:linear-gradient(180deg,rgba(13,110,253,.04),rgba(13,110,253,.01));padding:1rem}.document-drop-zone{position:relative;border:2px dashed rgba(13,110,253,.35);border-radius:1rem;background:rgba(248,249,250,.8);transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease}.document-drop-zone:hover{border-color:rgba(13,110,253,.55);background:rgba(248,249,250,.95)}.document-drop-zone--dragover{border-color:var(--bs-primary,#0d6efd);background:rgba(13,110,253,.08);box-shadow:0 0 0 .2rem rgba(13,110,253,.12);transform:translateY(-1px)}.document-drop-zone__body{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;text-align:center}.document-drop-zone__icon{width:3.5rem;height:3.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(13,110,253,.12);color:var(--bs-primary,#0d6efd);font-size:1.5rem}.document-drop-zone__title{font-weight:600}.document-drop-zone__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.attached-documents-list{display:flex;flex-direction:column;gap:.5rem}.attached-document-card,.pending-doc-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .875rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background
|
|
1
|
+
.attached-documents-panel{border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background:linear-gradient(180deg,rgba(var(--bs-primary-rgb,13,110,253),.04),rgba(var(--bs-primary-rgb,13,110,253),.01));padding:1rem}.document-drop-zone{position:relative;border:2px dashed rgba(var(--bs-primary-rgb,13,110,253),.35);border-radius:1rem;background:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.8);transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease,transform .15s ease}.document-drop-zone:hover{border-color:rgba(var(--bs-primary-rgb,13,110,253),.55);background:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.95)}.document-drop-zone--dragover{border-color:var(--bs-primary,#0d6efd);background:rgba(var(--bs-primary-rgb,13,110,253),.08);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb,13,110,253),.12);transform:translateY(-1px)}.document-drop-zone__body{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;text-align:center}.document-drop-zone__icon{width:3.5rem;height:3.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(var(--bs-primary-rgb,13,110,253),.12);color:var(--bs-primary,#0d6efd);font-size:1.5rem}.document-drop-zone__title{font-weight:600}.document-drop-zone__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.attached-documents-list{display:flex;flex-direction:column;gap:.5rem}.attached-document-card,.pending-doc-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .875rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.75rem;background:var(--bs-body-bg,#fff)}.attached-document-icon{width:2.25rem;height:2.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.65rem;background:rgba(var(--bs-primary-rgb,13,110,253),.1);color:var(--bs-primary,#0d6efd);flex-shrink:0}.attached-document-meta{min-width:0}.attached-document-name{font-weight:500;word-break:break-word}.attached-document-size{color:var(--bs-secondary-color,#6c757d);font-size:.875rem}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"use strict";e.initDocumentDropZone=function(e){if(e){var
|
|
1
|
+
!function(e,t){"use strict";var n="__documentDropZoneState";function o(t){if(!t||"true"===t.dataset.documentDropZoneInitialized)return t&&t[n]||null;var o={dropZone:t,fileInput:t.getAttribute("data-document-drop-zone-file-input"),browseButton:t.getAttribute("data-document-drop-zone-browse-button")},r=e.initDocumentDropZone(o);return r?(t.dataset.documentDropZoneInitialized="true",r):null}function r(e){e&&"function"==typeof e.querySelectorAll&&("function"==typeof e.matches&&e.matches("[data-document-drop-zone-file-input]")&&o(e),e.querySelectorAll("[data-document-drop-zone-file-input]").forEach(o))}function i(){(r(t),"undefined"!=typeof MutationObserver)&&new MutationObserver(function(e){e.forEach(function(e){e.addedNodes.forEach(function(e){e&&1===e.nodeType&&r(e)})})}).observe(t.body,{childList:!0,subtree:!0})}e.initDocumentDropZone=function(e){if(e){var o="string"==typeof e.dropZone?t.querySelector(e.dropZone):e.dropZone,r="string"==typeof e.fileInput?t.querySelector(e.fileInput):e.fileInput,i="string"==typeof e.browseButton?t.querySelector(e.browseButton):e.browseButton;if(o&&r){o[n]&&"function"==typeof o[n].dispose&&o[n].dispose(),["dragenter","dragover","dragleave","drop"].forEach(function(e){o.addEventListener(e,u)}),o.addEventListener("dragenter",s),o.addEventListener("dragover",f),o.addEventListener("dragleave",l),o.addEventListener("drop",p);var a=null;return i&&(a=function(e){e.preventDefault(),e.stopPropagation(),d()},i.addEventListener("click",a)),o.addEventListener("click",v),o[n]={dispose:function(){["dragenter","dragover","dragleave","drop"].forEach(function(e){o.removeEventListener(e,u)}),o.removeEventListener("dragenter",s),o.removeEventListener("dragover",f),o.removeEventListener("dragleave",l),o.removeEventListener("drop",p),o.removeEventListener("click",v),i&&a&&i.removeEventListener("click",a)}},o[n]}}function d(){r.click()}function u(e){e.preventDefault(),e.stopPropagation()}function c(e){o.classList.toggle("document-drop-zone--dragover",e)}function s(){c(!0)}function f(){c(!0)}function l(e){o.contains(e.relatedTarget)||c(!1)}function p(e){c(!1);var t=e.dataTransfer?e.dataTransfer.files:null;t&&t.length>0&&function(e,t){if(e&&t){var n=new DataTransfer;Array.prototype.forEach.call(t,function(e){n.items.add(e)}),e.files=n.files,e.dispatchEvent(new Event("change",{bubbles:!0}))}}(r,t)}function v(e){e.target.closest("[data-drop-zone-browse]")||d()}},"loading"===t.readyState?t.addEventListener("DOMContentLoaded",i,{once:!0}):i()}(window,document);
|
|
2
2
|
//# sourceMappingURL=document-drop-zone.min.js.map
|