quikchat 1.1.17 → 1.2.4

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 (43) hide show
  1. package/README.md +167 -276
  2. package/dist/build-manifest.json +157 -0
  3. package/dist/quikchat-md-full.cjs.js +2742 -0
  4. package/dist/quikchat-md-full.cjs.js.map +1 -0
  5. package/dist/quikchat-md-full.cjs.min.js +10 -0
  6. package/dist/quikchat-md-full.cjs.min.js.map +1 -0
  7. package/dist/quikchat-md-full.esm.js +2740 -0
  8. package/dist/quikchat-md-full.esm.js.map +1 -0
  9. package/dist/quikchat-md-full.esm.min.js +10 -0
  10. package/dist/quikchat-md-full.esm.min.js.map +1 -0
  11. package/dist/quikchat-md-full.umd.js +2748 -0
  12. package/dist/quikchat-md-full.umd.js.map +1 -0
  13. package/dist/quikchat-md-full.umd.min.js +10 -0
  14. package/dist/quikchat-md-full.umd.min.js.map +1 -0
  15. package/dist/quikchat-md.cjs.js +1641 -0
  16. package/dist/quikchat-md.cjs.js.map +1 -0
  17. package/dist/quikchat-md.cjs.min.js +8 -0
  18. package/dist/quikchat-md.cjs.min.js.map +1 -0
  19. package/dist/quikchat-md.esm.js +1639 -0
  20. package/dist/quikchat-md.esm.js.map +1 -0
  21. package/dist/quikchat-md.esm.min.js +8 -0
  22. package/dist/quikchat-md.esm.min.js.map +1 -0
  23. package/dist/quikchat-md.umd.js +1647 -0
  24. package/dist/quikchat-md.umd.js.map +1 -0
  25. package/dist/quikchat-md.umd.min.js +8 -0
  26. package/dist/quikchat-md.umd.min.js.map +1 -0
  27. package/dist/quikchat.cjs.js +454 -1729
  28. package/dist/quikchat.cjs.js.map +1 -1
  29. package/dist/quikchat.cjs.min.js +1 -1
  30. package/dist/quikchat.cjs.min.js.map +1 -1
  31. package/dist/quikchat.css +753 -226
  32. package/dist/quikchat.esm.js +454 -1729
  33. package/dist/quikchat.esm.js.map +1 -1
  34. package/dist/quikchat.esm.min.js +1 -1
  35. package/dist/quikchat.esm.min.js.map +1 -1
  36. package/dist/quikchat.min.css +1 -1
  37. package/dist/quikchat.react.js +63 -0
  38. package/dist/quikchat.umd.js +454 -1729
  39. package/dist/quikchat.umd.js.map +1 -1
  40. package/dist/quikchat.umd.min.js +1 -1
  41. package/dist/quikchat.umd.min.js.map +1 -1
  42. package/package.json +59 -39
  43. package/dist/quikchat.d.ts +0 -194
package/dist/quikchat.css CHANGED
@@ -1,98 +1,228 @@
1
- /*
1
+ /*
2
2
  quikchat.css see www.github.com/deftio/quikchat for more info
3
-
4
- Base Styles - Affect behavior so change with care
5
- For Themes scroll past this section
3
+ see docs/css-architecture.md for design rationale
4
+
5
+ Base Styles structural layout, do not vary between themes
6
+ Theme Styles — appearance only (colors, borders, border-radius, shadows)
6
7
  */
7
8
 
9
+ /* ================================== */
10
+ /* Base — scoped reset */
11
+ /* ================================== */
12
+
13
+ .quikchat-base,
14
+ .quikchat-base *,
15
+ .quikchat-base *::before,
16
+ .quikchat-base *::after {
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ /* ================================== */
21
+ /* Base — layout and sizing */
22
+ /* ================================== */
23
+
8
24
  .quikchat-base {
9
25
  display: flex;
10
26
  flex-direction: column;
11
27
  height: 100%;
12
28
  width: 100%;
13
- min-width: 200px;
14
- min-height: 200px;
15
- box-sizing: border-box !important;
29
+ min-width: min(200px, 100%);
30
+ min-height: min(200px, 100%);
31
+ overflow: hidden;
32
+ font-size: 14px;
33
+ line-height: 1.4;
16
34
  }
17
35
 
18
36
  .quikchat-title-area {
37
+ flex-shrink: 0;
38
+ padding: 8px;
19
39
  margin-left: 8px;
20
40
  margin-right: 8px;
21
- padding-left : 2px;
22
- padding-right : 2px;
23
- padding: 8px;
24
41
  font-weight: 600;
25
42
  font-size: 1.3em;
26
- box-sizing: border-box;
27
43
  }
28
44
 
29
45
  .quikchat-messages-area {
30
- flex-grow: 1;
46
+ flex: 1;
47
+ min-height: 0;
31
48
  padding: 8px;
32
49
  overflow-y: auto;
33
- width: 100%;
34
- box-sizing: border-box;
50
+ position: relative;
35
51
  }
36
52
 
37
53
  .quikchat-message {
38
54
  padding: 4px;
39
55
  white-space: pre-wrap;
40
56
  word-wrap: break-word;
41
- box-sizing: border-box;
42
- }
43
- /* Core Right-Side Message Alignment */
44
- .quikchat-message.right {
45
- display: inline-block;
46
- max-width: 60%;
47
- padding: 8px 12px;
48
- text-align: right; /* Default for short messages */
49
57
  }
50
58
 
51
- /* Right-aligned short messages */
52
- .quikchat-message.right .quikchat-right-singleline {
53
- text-align: right;
59
+ .quikchat-user-label {
60
+ font-weight: 700;
61
+ font-size: 1em;
54
62
  }
55
63
 
56
- /* Right-aligned long/multi-line messages */
57
- .quikchat-message.right .quikchat-right-multiline {
58
- text-align: left;
59
- word-wrap: break-word;
60
- }
61
-
62
-
63
64
  .quikchat-input-area {
65
+ flex-shrink: 0;
64
66
  display: flex;
65
- align-items: center;
67
+ align-items: flex-end;
66
68
  padding: 8px;
67
- min-height: 56px;
68
- height: 4em;
69
- width: 100%;
70
- box-sizing: border-box;
69
+ min-height: 48px;
71
70
  }
72
-
71
+
73
72
  .quikchat-input-textbox {
74
73
  flex-grow: 1;
75
- min-height: 40px;
74
+ min-height: 36px;
75
+ min-width: 0;
76
76
  resize: none;
77
- padding: 4px;
78
- height: 100%;
79
- box-sizing: border-box;
77
+ padding: 6px 8px;
78
+ height: auto;
79
+ overflow-y: hidden;
80
+ font-family: inherit;
81
+ font-size: inherit;
82
+ --quikchat-input-max-height: 120px;
80
83
  }
81
84
 
82
85
  .quikchat-input-send-btn {
83
86
  margin-left: 8px;
84
87
  padding: 8px;
85
- height: 100%;
88
+ min-height: 36px;
86
89
  min-width: 5rem;
87
90
  cursor: pointer;
88
91
  white-space: nowrap;
89
- box-sizing: border-box;
92
+ font-family: inherit;
93
+ font-size: inherit;
94
+ align-self: flex-end;
90
95
  }
91
-
92
- /* ***************************************** */
93
- /* quikchat theme debug
94
- This theme is for debugging purposes and has a very distinct look.
95
- */
96
+
97
+ /* ================================== */
98
+ /* Base — RTL support */
99
+ /* ================================== */
100
+
101
+ .quikchat-rtl .quikchat-input-area {
102
+ flex-direction: row-reverse;
103
+ }
104
+
105
+ .quikchat-rtl .quikchat-input-send-btn {
106
+ margin-left: 0;
107
+ margin-right: 8px;
108
+ }
109
+
110
+ /* ================================== */
111
+ /* Base — disabled state */
112
+ /* ================================== */
113
+
114
+ .quikchat-input-textbox:disabled,
115
+ .quikchat-input-send-btn:disabled {
116
+ opacity: 0.5;
117
+ cursor: not-allowed;
118
+ }
119
+
120
+ /* ================================== */
121
+ /* Base — typing indicator */
122
+ /* ================================== */
123
+
124
+ .quikchat-typing .quikchat-message-content {
125
+ min-height: 1.4em;
126
+ }
127
+
128
+ .quikchat-typing-dots span {
129
+ display: inline-block;
130
+ font-size: 1.4em;
131
+ line-height: 1;
132
+ animation: quikchat-dot-pulse 1.4s infinite;
133
+ }
134
+
135
+ .quikchat-typing-dots span:nth-child(2) {
136
+ animation-delay: 0.2s;
137
+ }
138
+
139
+ .quikchat-typing-dots span:nth-child(3) {
140
+ animation-delay: 0.4s;
141
+ }
142
+
143
+ @keyframes quikchat-dot-pulse {
144
+ 0%, 80%, 100% { opacity: 0.2; }
145
+ 40% { opacity: 1; }
146
+ }
147
+
148
+ /* ================================== */
149
+ /* Base — messages wrapper */
150
+ /* ================================== */
151
+
152
+ .quikchat-messages-wrapper {
153
+ flex: 1;
154
+ min-height: 0;
155
+ position: relative;
156
+ display: flex;
157
+ flex-direction: column;
158
+ }
159
+
160
+ /* ================================== */
161
+ /* Base — timestamps */
162
+ /* ================================== */
163
+
164
+ .quikchat-timestamp {
165
+ display: none;
166
+ font-size: 0.75em;
167
+ opacity: 0.6;
168
+ margin-top: 2px;
169
+ }
170
+
171
+ .quikchat-show-timestamps .quikchat-timestamp {
172
+ display: block;
173
+ }
174
+
175
+ /* ================================== */
176
+ /* Base — scroll-to-bottom button */
177
+ /* ================================== */
178
+
179
+ .quikchat-scroll-bottom {
180
+ display: none;
181
+ position: absolute;
182
+ bottom: 8px;
183
+ left: 50%;
184
+ transform: translateX(-50%);
185
+ width: 36px;
186
+ height: 36px;
187
+ border-radius: 50%;
188
+ border: 1px solid currentColor;
189
+ background: inherit;
190
+ color: inherit;
191
+ cursor: pointer;
192
+ opacity: 0.7;
193
+ z-index: 1;
194
+ font-size: 16px;
195
+ line-height: 1;
196
+ padding: 0;
197
+ }
198
+
199
+ .quikchat-scroll-bottom::after {
200
+ content: "\2193";
201
+ }
202
+
203
+ .quikchat-scroll-bottom:hover {
204
+ opacity: 1;
205
+ }
206
+
207
+ .quikchat-scroll-bottom-visible {
208
+ display: block;
209
+ }
210
+
211
+ /* ================================== */
212
+ /* Base — focus indicators */
213
+ /* ================================== */
214
+
215
+ .quikchat-input-textbox:focus,
216
+ .quikchat-input-send-btn:focus-visible {
217
+ outline: 2px solid currentColor;
218
+ outline-offset: -2px;
219
+ }
220
+
221
+ /* ================================== */
222
+ /* Theme: debug */
223
+ /* Vivid colors for visual debugging */
224
+ /* ================================== */
225
+
96
226
  .quikchat-theme-debug {
97
227
  border: 1px solid black;
98
228
  border-radius: 10px;
@@ -101,13 +231,9 @@
101
231
 
102
232
  .quikchat-theme-debug .quikchat-title-area {
103
233
  background-color: lightblue;
104
- color: #333;
105
- padding: 8px;
106
- font-weight: 600;
107
- margin-right: 10px;
234
+ color: #333;
108
235
  }
109
236
 
110
-
111
237
  .quikchat-theme-debug .quikchat-messages-area {
112
238
  border-radius: 1em;
113
239
  background-color: lightsalmon;
@@ -118,70 +244,24 @@
118
244
  color: #eee;
119
245
  border-radius: 4px;
120
246
  }
247
+
121
248
  .quikchat-theme-debug .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
122
249
  background-color: lightpink;
123
250
  color: #444;
124
251
  border-radius: 4px;
125
252
  }
126
253
 
127
- /********** User Messages **********
128
- * Single / Multiline
129
- */
130
-
131
- .quikchat-theme-debug .quikchat-messages-area .quikchat-message {
132
- padding-left : 8px;
133
- padding-right: 8px;
134
- border-radius: 0.5em;
135
- }
136
-
137
- /* Short (single) User Messages that are right sided */
138
- .quikchat-theme-debug .quikchat-messages-area .quikchat-message.right-singleline {
139
- text-align: right; /* Right-align text */
140
- margin-left: 5%; /* Increased left padding */
141
- }
142
-
143
- /* Multiline (long) User Messages */
144
- .quikchat-theme-debug .quikchat-messages-area .quikchat-message.right-multiline {
145
- text-align: left; /* Left-align text */
146
- margin-left: 5%; /* Standard left padding */
147
- }
148
-
149
- /* Short (single) User Messages that are right sided */
150
- .quikchat-theme-debug .quikchat-messages-area .quikchat-message.center-singleline {
151
- text-align: center; /* Right-align text */
152
- margin-left: 5%; /* Increased left margin */
153
- margin-right: 5%; /* Standard right margin */
154
- }
155
-
156
- /* Multiline (long) User Messages */
157
- .quikchat-theme-debug .quikchat-messages-area .quikchat-message.center-multiline {
158
- text-align: left; /* Left-align text */
159
- margin-left: 5%; /* Standard left padding */
160
- margin-right: 5%; /* Standard right padding */
161
- }
162
- /* Short (single) User Messages that are right sided */
163
- .quikchat-theme-debug .quikchat-messages-area .quikchat-message.left-singleline {
164
- text-align: left; /* Right-align text */
165
- margin-right: 5%;
166
- }
167
-
168
- /* Multiline (long) User Messages */
169
- .quikchat-theme-debug .quikchat-messages-area-alt .quikchat-message.left-multiline {
170
- text-align: left; /* Left-align text */
171
- margin-right: 5%; /* Standard left padding */
172
- }
173
-
174
254
  .quikchat-theme-debug .quikchat-input-area {
175
255
  background-color: lightgreen;
176
- border-bottom-left-radius : 10px;
177
- border-bottom-right-radius : 10px;
256
+ border-bottom-left-radius: 10px;
257
+ border-bottom-right-radius: 10px;
178
258
  }
179
259
 
180
260
  .quikchat-theme-debug .quikchat-input-textbox {
181
261
  background-color: #eee;
262
+ color: #333;
182
263
  border: 1px solid #ccc;
183
264
  border-radius: 4px;
184
- font-size: 14px;
185
265
  }
186
266
 
187
267
  .quikchat-theme-debug .quikchat-input-send-btn {
@@ -191,8 +271,14 @@
191
271
  border-radius: 4px;
192
272
  }
193
273
 
194
- /* ********************************** */
195
- /* quikchat theme dark */
274
+ .quikchat-theme-debug .quikchat-input-send-btn:hover {
275
+ background-color: #43a047;
276
+ }
277
+
278
+ /* ================================== */
279
+ /* Theme: dark */
280
+ /* ================================== */
281
+
196
282
  .quikchat-theme-dark {
197
283
  border: 1px solid #555555;
198
284
  border-radius: 10px;
@@ -204,8 +290,6 @@
204
290
  .quikchat-theme-dark .quikchat-title-area {
205
291
  background-color: #212121;
206
292
  color: #eceff1;
207
- padding: 8px;
208
- font-weight: 600;
209
293
  border-bottom: 1px solid #37474f;
210
294
  }
211
295
 
@@ -220,75 +304,24 @@
220
304
  color: #eceff1;
221
305
  border-radius: 4px;
222
306
  }
223
- .quikchat-theme-darl .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
307
+
308
+ .quikchat-theme-dark .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
224
309
  background-color: #5a5a5a;
225
310
  color: #fbfbfb;
226
311
  border-radius: 4px;
227
312
  }
228
313
 
229
- /********** User Messages **********
230
- * Single / Multiline
231
- */
232
-
233
- .quikchat-theme-dark .quikchat-messages-area .quikchat-message {
234
- padding-left : 8px;
235
- padding-right: 8px;
236
- border-radius: 0.5em;
237
- }
238
-
239
- /* Short (single) User Messages that are right sided */
240
- .quikchat-theme-dark .quikchat-messages-area .quikchat-message.right-singleline {
241
- text-align: right; /* Right-align text */
242
- margin-left: 5%; /* Increased left padding */
243
- }
244
-
245
- /* Multiline (long) User Messages */
246
- .quikchat-theme-dark .quikchat-messages-area .quikchat-message.right-multiline {
247
- text-align: left; /* Left-align text */
248
- margin-left: 5%; /* Standard left padding */
249
- }
250
-
251
- /* Short (single) User Messages that are right sided */
252
- .quikchat-theme-dark .quikchat-messages-area .quikchat-message.center-singleline {
253
- text-align: center; /* Right-align text */
254
- margin-left: 5%; /* Increased left margin */
255
- margin-right: 5%; /* Standard right margin */
256
- }
257
-
258
- /* Multiline (long) User Messages */
259
- .quikchat-theme-dark .quikchat-messages-area .quikchat-message.center-multiline {
260
- text-align: left; /* Left-align text */
261
- margin-left: 5%; /* Standard left padding */
262
- margin-right: 5%; /* Standard right padding */
263
- }
264
- /* Short (single) User Messages that are right sided */
265
- .quikchat-theme-dark .quikchat-messages-area .quikchat-message.left-singleline {
266
- text-align: left; /* Right-align text */
267
- margin-right: 5%;
268
- }
269
-
270
- /* Multiline (long) User Messages */
271
- .quikchat-theme-dark .quikchat-messages-area-alt .quikchat-message.left-multiline {
272
- text-align: left; /* Left-align text */
273
- margin-right: 5%; /* Standard left padding */
274
- }
275
-
276
314
  .quikchat-theme-dark .quikchat-input-area {
277
- padding: 8px;
278
315
  background-color: #263238;
279
-
280
- border-bottom-left-radius : 10px;
281
- border-bottom-right-radius : 10px;
316
+ border-bottom-left-radius: 10px;
317
+ border-bottom-right-radius: 10px;
282
318
  }
283
319
 
284
320
  .quikchat-theme-dark .quikchat-input-textbox {
285
- width: 75%;
286
- padding: 8px;
287
321
  background-color: #424242;
322
+ color: #eceff1;
288
323
  border: 1px solid #555;
289
324
  border-radius: 4px;
290
- font-size: 14px;
291
- color: #eceff1;
292
325
  }
293
326
 
294
327
  .quikchat-theme-dark .quikchat-input-send-btn {
@@ -296,107 +329,601 @@
296
329
  color: white;
297
330
  border: none;
298
331
  border-radius: 4px;
299
- padding: 8px 16px;
300
- margin-left: 10px;
301
- cursor: pointer;
302
332
  }
303
333
 
304
- /* ********************************** */
305
- /* quikchat theme light */
334
+ .quikchat-theme-dark .quikchat-input-send-btn:hover {
335
+ background-color: #2e7d32;
336
+ }
337
+
338
+ /* ================================== */
339
+ /* Theme: light */
340
+ /* ================================== */
306
341
 
307
342
  .quikchat-theme-light {
308
343
  border: 1px solid #cccccc;
309
344
  border-radius: 10px;
310
345
  background-color: #f9f9f9;
311
346
  }
312
-
347
+
313
348
  .quikchat-theme-light .quikchat-title-area {
314
- padding: 8px;
315
349
  color: #333;
316
350
  }
317
-
351
+
318
352
  .quikchat-theme-light .quikchat-messages-area {
319
353
  background-color: #ffffffe2;
320
354
  color: #333;
321
355
  border-radius: 1em;
322
356
  }
323
-
357
+
324
358
  .quikchat-theme-light .quikchat-messages-area-alt .quikchat-message:nth-child(odd) {
325
- background-color: #fffffff0;
359
+ background-color: #ffffff;
326
360
  color: #005662;
361
+ border-radius: 4px;
327
362
  }
363
+
328
364
  .quikchat-theme-light .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
329
- background-color: #eeeeeee9;
365
+ background-color: #e8e8e8;
330
366
  color: #353535;
367
+ border-radius: 4px;
331
368
  }
332
369
 
333
- /********** User Messages **********
334
- * Single / Multiline
335
- */
370
+ .quikchat-theme-light .quikchat-input-area {
371
+ background-color: #f9f9f9;
372
+ border-bottom-left-radius: 10px;
373
+ border-bottom-right-radius: 10px;
374
+ }
336
375
 
337
- .quikchat-theme-light .quikchat-messages-area .quikchat-message {
338
- padding-left : 8px;
339
- padding-right: 8px;
340
- border-radius: 0.5em;
341
- }
376
+ .quikchat-theme-light .quikchat-input-textbox {
377
+ background-color: #ffffff;
378
+ color: #333;
379
+ border: 1px solid #ccc;
380
+ border-radius: 4px;
381
+ }
342
382
 
343
- /* Short (single) User Messages that are right sided */
344
- .quikchat-theme-light .quikchat-messages-area .quikchat-message.right-singleline {
345
- text-align: right; /* Right-align text */
346
- margin-left: 5%; /* Increased left padding */
383
+ .quikchat-theme-light .quikchat-input-send-btn {
384
+ background-color: #4caf50;
385
+ color: white;
386
+ border: none;
387
+ border-radius: 4px;
347
388
  }
348
389
 
349
- /* Multiline (long) User Messages */
350
- .quikchat-theme-light .quikchat-messages-area .quikchat-message.right-multiline {
351
- text-align: left; /* Left-align text */
352
- margin-left: 5%; /* Standard left padding */
390
+ .quikchat-theme-light .quikchat-input-send-btn:hover {
391
+ background-color: #43a047;
353
392
  }
354
393
 
355
- /* Short (single) User Messages that are right sided */
356
- .quikchat-theme-light .quikchat-messages-area .quikchat-message.center-singleline {
357
- text-align: center; /* Right-align text */
358
- margin-left: 5%; /* Increased left margin */
359
- margin-right: 5%; /* Standard right margin */
394
+ /* ================================== */
395
+ /* Theme: blue */
396
+ /* Professional steel-blue accents */
397
+ /* ================================== */
398
+
399
+ .quikchat-theme-blue {
400
+ border: 1px solid #b0c4d8;
401
+ border-radius: 10px;
402
+ background-color: #eef3f8;
360
403
  }
361
404
 
362
- /* Multiline (long) User Messages */
363
- .quikchat-theme-light .quikchat-messages-area .quikchat-message.center-multiline {
364
- text-align: left; /* Left-align text */
365
- margin-left: 5%; /* Standard left padding */
366
- margin-right: 5%; /* Standard right padding */
405
+ .quikchat-theme-blue .quikchat-title-area {
406
+ background-color: #3a6ea5;
407
+ color: #fff;
408
+ border-radius: 9px 9px 0 0;
367
409
  }
368
- /* Short (single) User Messages that are right sided */
369
- .quikchat-theme-light .quikchat-messages-area .quikchat-message.left-singleline {
370
- text-align: left; /* Right-align text */
371
- margin-right: 5%;
410
+
411
+ .quikchat-theme-blue .quikchat-messages-area {
412
+ background-color: #f5f8fb;
413
+ color: #1a2a3a;
372
414
  }
373
415
 
374
- /* Multiline (long) User Messages */
375
- .quikchat-theme-light .quikchat-messages-area-alt .quikchat-message.left-multiline {
376
- text-align: left; /* Left-align text */
377
- margin-right: 5%; /* Standard left padding */
416
+ .quikchat-theme-blue .quikchat-messages-area-alt .quikchat-message:nth-child(odd) {
417
+ background-color: #f5f8fb;
418
+ color: #1a2a3a;
419
+ border-radius: 4px;
378
420
  }
379
- /*****
380
- * Input Area
381
- */
382
- .quikchat-theme-light .quikchat-input-area {
383
- background-color: #f9f9f9;
384
- border-bottom-left-radius : 10px;
385
- border-bottom-right-radius : 10px;
421
+
422
+ .quikchat-theme-blue .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
423
+ background-color: #dde8f0;
424
+ color: #1a2a3a;
425
+ border-radius: 4px;
386
426
  }
387
-
388
- .quikchat-theme-light .quikchat-input-textbox {
389
- background-color: #ffffff;
390
- border: 1px solid #ccc;
427
+
428
+ .quikchat-theme-blue .quikchat-input-area {
429
+ background-color: #eef3f8;
430
+ border-bottom-left-radius: 10px;
431
+ border-bottom-right-radius: 10px;
432
+ }
433
+
434
+ .quikchat-theme-blue .quikchat-input-textbox {
435
+ background-color: #fff;
436
+ color: #1a2a3a;
437
+ border: 1px solid #b0c4d8;
391
438
  border-radius: 4px;
392
- font-size: 14px;
393
- color: #333;
394
439
  }
395
-
396
- .quikchat-theme-light .quikchat-input-send-btn {
397
- background-color: #4caf50;
440
+
441
+ .quikchat-theme-blue .quikchat-input-send-btn {
442
+ background-color: #3a6ea5;
443
+ color: white;
444
+ border: none;
445
+ border-radius: 4px;
446
+ }
447
+
448
+ .quikchat-theme-blue .quikchat-input-send-btn:hover {
449
+ background-color: #2d5a8a;
450
+ }
451
+
452
+ /* ================================== */
453
+ /* Theme: warm */
454
+ /* Soft cream with muted earth tones */
455
+ /* ================================== */
456
+
457
+ .quikchat-theme-warm {
458
+ border: 1px solid #d4b896;
459
+ border-radius: 10px;
460
+ background-color: #faf6f0;
461
+ }
462
+
463
+ .quikchat-theme-warm .quikchat-title-area {
464
+ background-color: #faf6f0;
465
+ color: #5a3e28;
466
+ border-bottom: 1px solid #e0cdb8;
467
+ }
468
+
469
+ .quikchat-theme-warm .quikchat-messages-area {
470
+ background-color: #fdf9f4;
471
+ color: #3a2a1a;
472
+ }
473
+
474
+ .quikchat-theme-warm .quikchat-messages-area-alt .quikchat-message:nth-child(odd) {
475
+ background-color: #fdf9f4;
476
+ color: #3a2a1a;
477
+ border-radius: 4px;
478
+ }
479
+
480
+ .quikchat-theme-warm .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
481
+ background-color: #f0e6d8;
482
+ color: #3a2a1a;
483
+ border-radius: 4px;
484
+ }
485
+
486
+ .quikchat-theme-warm .quikchat-input-area {
487
+ background-color: #faf6f0;
488
+ border-bottom-left-radius: 10px;
489
+ border-bottom-right-radius: 10px;
490
+ }
491
+
492
+ .quikchat-theme-warm .quikchat-input-textbox {
493
+ background-color: #fff;
494
+ color: #3a2a1a;
495
+ border: 1px solid #d4b896;
496
+ border-radius: 4px;
497
+ }
498
+
499
+ .quikchat-theme-warm .quikchat-input-send-btn {
500
+ background-color: #b5784a;
501
+ color: white;
502
+ border: none;
503
+ border-radius: 4px;
504
+ }
505
+
506
+ .quikchat-theme-warm .quikchat-input-send-btn:hover {
507
+ background-color: #9a6438;
508
+ }
509
+
510
+ /* ================================== */
511
+ /* Theme: midnight */
512
+ /* Deep navy with brighter accents */
513
+ /* ================================== */
514
+
515
+ .quikchat-theme-midnight {
516
+ border: 1px solid #2a3a5c;
517
+ border-radius: 10px;
518
+ background-color: #0f1626;
519
+ color: #c8d0e0;
520
+ }
521
+
522
+ .quikchat-theme-midnight .quikchat-title-area {
523
+ background-color: #0f1626;
524
+ color: #8eaadc;
525
+ border-bottom: 1px solid #1e2d4a;
526
+ }
527
+
528
+ .quikchat-theme-midnight .quikchat-messages-area {
529
+ background-color: #0a1020;
530
+ color: #c8d0e0;
531
+ }
532
+
533
+ .quikchat-theme-midnight .quikchat-messages-area-alt .quikchat-message:nth-child(odd) {
534
+ background-color: #0f1830;
535
+ color: #c8d0e0;
536
+ border-radius: 4px;
537
+ }
538
+
539
+ .quikchat-theme-midnight .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
540
+ background-color: #162040;
541
+ color: #d0d8e8;
542
+ border-radius: 4px;
543
+ }
544
+
545
+ .quikchat-theme-midnight .quikchat-input-area {
546
+ background-color: #0f1626;
547
+ border-bottom-left-radius: 10px;
548
+ border-bottom-right-radius: 10px;
549
+ }
550
+
551
+ .quikchat-theme-midnight .quikchat-input-textbox {
552
+ background-color: #1a2540;
553
+ color: #c8d0e0;
554
+ border: 1px solid #2a3a5c;
555
+ border-radius: 4px;
556
+ }
557
+
558
+ .quikchat-theme-midnight .quikchat-input-send-btn {
559
+ background-color: #4a6fa5;
560
+ color: white;
561
+ border: none;
562
+ border-radius: 4px;
563
+ }
564
+
565
+ .quikchat-theme-midnight .quikchat-input-send-btn:hover {
566
+ background-color: #5a80b8;
567
+ }
568
+
569
+ /* ================================== */
570
+ /* Theme: ocean */
571
+ /* Teal/cyan on deep blue */
572
+ /* ================================== */
573
+
574
+ .quikchat-theme-ocean {
575
+ border: 1px solid #1a6b7a;
576
+ border-radius: 10px;
577
+ background-color: #0d2b36;
578
+ color: #d4edee;
579
+ }
580
+
581
+ .quikchat-theme-ocean .quikchat-title-area {
582
+ background-color: #0d2b36;
583
+ color: #5ec4d4;
584
+ border-bottom: 1px solid #1a4a5a;
585
+ }
586
+
587
+ .quikchat-theme-ocean .quikchat-messages-area {
588
+ background-color: #0a2530;
589
+ color: #d4edee;
590
+ }
591
+
592
+ .quikchat-theme-ocean .quikchat-messages-area-alt .quikchat-message:nth-child(odd) {
593
+ background-color: #0d3040;
594
+ color: #d4edee;
595
+ border-radius: 4px;
596
+ }
597
+
598
+ .quikchat-theme-ocean .quikchat-messages-area-alt .quikchat-message:nth-child(even) {
599
+ background-color: #11384a;
600
+ color: #d4edee;
601
+ border-radius: 4px;
602
+ }
603
+
604
+ .quikchat-theme-ocean .quikchat-input-area {
605
+ background-color: #0d2b36;
606
+ border-bottom-left-radius: 10px;
607
+ border-bottom-right-radius: 10px;
608
+ }
609
+
610
+ .quikchat-theme-ocean .quikchat-input-textbox {
611
+ background-color: #163a48;
612
+ color: #d4edee;
613
+ border: 1px solid #1a5a6a;
614
+ border-radius: 4px;
615
+ }
616
+
617
+ .quikchat-theme-ocean .quikchat-input-send-btn {
618
+ background-color: #1a8a6a;
398
619
  color: white;
399
620
  border: none;
400
621
  border-radius: 4px;
401
622
  }
402
-
623
+
624
+ .quikchat-theme-ocean .quikchat-input-send-btn:hover {
625
+ background-color: #1fa07a;
626
+ }
627
+
628
+ /* ================================== */
629
+ /* Theme: modern */
630
+ /* Message bubbles, ChatGPT-style */
631
+ /* ================================== */
632
+
633
+ .quikchat-theme-modern {
634
+ border: 1px solid #e5e5e5;
635
+ border-radius: 12px;
636
+ background-color: #ffffff;
637
+ }
638
+
639
+ .quikchat-theme-modern .quikchat-title-area {
640
+ background-color: #ffffff;
641
+ color: #1a1a1a;
642
+ border-bottom: 1px solid #f0f0f0;
643
+ }
644
+
645
+ .quikchat-theme-modern .quikchat-messages-area {
646
+ background-color: #ffffff;
647
+ color: #1a1a1a;
648
+ }
649
+
650
+ .quikchat-theme-modern .quikchat-message {
651
+ display: flex;
652
+ flex-direction: column;
653
+ }
654
+
655
+ .quikchat-theme-modern .quikchat-align-right {
656
+ align-items: flex-end;
657
+ }
658
+
659
+ .quikchat-theme-modern .quikchat-align-left {
660
+ align-items: flex-start;
661
+ }
662
+
663
+ .quikchat-theme-modern .quikchat-align-center {
664
+ align-items: center;
665
+ }
666
+
667
+ .quikchat-theme-modern .quikchat-message-content {
668
+ max-width: 80%;
669
+ border-radius: 16px;
670
+ }
671
+
672
+ .quikchat-theme-modern .quikchat-align-right .quikchat-message-content {
673
+ background-color: #0b93f6;
674
+ color: #ffffff;
675
+ border-bottom-right-radius: 4px;
676
+ }
677
+
678
+ .quikchat-theme-modern .quikchat-align-left .quikchat-message-content {
679
+ background-color: #f0f0f0;
680
+ color: #1a1a1a;
681
+ border-bottom-left-radius: 4px;
682
+ }
683
+
684
+ .quikchat-theme-modern .quikchat-align-center .quikchat-message-content {
685
+ background-color: transparent;
686
+ color: #888;
687
+ }
688
+
689
+ .quikchat-theme-modern .quikchat-user-label {
690
+ color: #888;
691
+ }
692
+
693
+ .quikchat-theme-modern .quikchat-input-area {
694
+ background-color: #ffffff;
695
+ border-top: 1px solid #f0f0f0;
696
+ border-bottom-left-radius: 12px;
697
+ border-bottom-right-radius: 12px;
698
+ }
699
+
700
+ .quikchat-theme-modern .quikchat-input-textbox {
701
+ background-color: #f5f5f5;
702
+ color: #1a1a1a;
703
+ border: 1px solid #e0e0e0;
704
+ border-radius: 20px;
705
+ }
706
+
707
+ .quikchat-theme-modern .quikchat-input-send-btn {
708
+ background-color: #0b93f6;
709
+ color: white;
710
+ border: none;
711
+ border-radius: 20px;
712
+ }
713
+
714
+ .quikchat-theme-modern .quikchat-input-send-btn:hover {
715
+ background-color: #0a84de;
716
+ }
717
+
718
+ /* ================================== */
719
+ /* QuikDown markdown styles */
720
+ /* Scoped per quikchat theme */
721
+ /* ================================== */
722
+
723
+ /* --- Light themes (light, blue, warm) --- */
724
+
725
+ .quikchat-theme-light .quikdown-pre,
726
+ .quikchat-theme-blue .quikdown-pre,
727
+ .quikchat-theme-warm .quikdown-pre {
728
+ background: #f4f4f4;
729
+ padding: 10px;
730
+ border-radius: 4px;
731
+ overflow-x: auto;
732
+ margin: 0.5em 0;
733
+ }
734
+
735
+ .quikchat-theme-light .quikdown-code,
736
+ .quikchat-theme-blue .quikdown-code,
737
+ .quikchat-theme-warm .quikdown-code {
738
+ background: #f0f0f0;
739
+ padding: 2px 4px;
740
+ border-radius: 3px;
741
+ font-family: monospace;
742
+ font-size: 0.9em;
743
+ }
744
+
745
+ .quikchat-theme-light .quikdown-blockquote,
746
+ .quikchat-theme-blue .quikdown-blockquote,
747
+ .quikchat-theme-warm .quikdown-blockquote {
748
+ border-left: 4px solid #ddd;
749
+ margin-left: 0;
750
+ padding-left: 1em;
751
+ color: #555;
752
+ }
753
+
754
+ .quikchat-theme-light .quikdown-a,
755
+ .quikchat-theme-blue .quikdown-a,
756
+ .quikchat-theme-warm .quikdown-a {
757
+ color: #06c;
758
+ }
759
+
760
+ .quikchat-theme-light .quikdown-th,
761
+ .quikchat-theme-blue .quikdown-th,
762
+ .quikchat-theme-warm .quikdown-th {
763
+ border: 1px solid #ddd;
764
+ padding: 6px 8px;
765
+ background-color: #f2f2f2;
766
+ font-weight: bold;
767
+ text-align: left;
768
+ }
769
+
770
+ .quikchat-theme-light .quikdown-td,
771
+ .quikchat-theme-blue .quikdown-td,
772
+ .quikchat-theme-warm .quikdown-td {
773
+ border: 1px solid #ddd;
774
+ padding: 6px 8px;
775
+ text-align: left;
776
+ }
777
+
778
+ .quikchat-theme-light .quikdown-hr,
779
+ .quikchat-theme-blue .quikdown-hr,
780
+ .quikchat-theme-warm .quikdown-hr {
781
+ border: none;
782
+ border-top: 1px solid #ddd;
783
+ margin: 0.5em 0;
784
+ }
785
+
786
+ /* --- Dark themes (dark, midnight, ocean) --- */
787
+
788
+ .quikchat-theme-dark .quikdown-pre,
789
+ .quikchat-theme-midnight .quikdown-pre,
790
+ .quikchat-theme-ocean .quikdown-pre {
791
+ background: #2a2a2a;
792
+ padding: 10px;
793
+ border-radius: 4px;
794
+ overflow-x: auto;
795
+ margin: 0.5em 0;
796
+ }
797
+
798
+ .quikchat-theme-dark .quikdown-code,
799
+ .quikchat-theme-midnight .quikdown-code,
800
+ .quikchat-theme-ocean .quikdown-code {
801
+ background: #2a2a2a;
802
+ padding: 2px 4px;
803
+ border-radius: 3px;
804
+ font-family: monospace;
805
+ font-size: 0.9em;
806
+ color: #e0e0e0;
807
+ }
808
+
809
+ .quikchat-theme-dark .quikdown-blockquote,
810
+ .quikchat-theme-midnight .quikdown-blockquote,
811
+ .quikchat-theme-ocean .quikdown-blockquote {
812
+ border-left: 4px solid #3a3a3a;
813
+ margin-left: 0;
814
+ padding-left: 1em;
815
+ color: #bbb;
816
+ }
817
+
818
+ .quikchat-theme-dark .quikdown-a,
819
+ .quikchat-theme-midnight .quikdown-a,
820
+ .quikchat-theme-ocean .quikdown-a {
821
+ color: #6db3f2;
822
+ }
823
+
824
+ .quikchat-theme-dark .quikdown-th,
825
+ .quikchat-theme-midnight .quikdown-th,
826
+ .quikchat-theme-ocean .quikdown-th {
827
+ border: 1px solid #3a3a3a;
828
+ padding: 6px 8px;
829
+ background-color: #2a2a2a;
830
+ font-weight: bold;
831
+ text-align: left;
832
+ color: #e0e0e0;
833
+ }
834
+
835
+ .quikchat-theme-dark .quikdown-td,
836
+ .quikchat-theme-midnight .quikdown-td,
837
+ .quikchat-theme-ocean .quikdown-td {
838
+ border: 1px solid #3a3a3a;
839
+ padding: 6px 8px;
840
+ text-align: left;
841
+ color: #e0e0e0;
842
+ }
843
+
844
+ .quikchat-theme-dark .quikdown-hr,
845
+ .quikchat-theme-midnight .quikdown-hr,
846
+ .quikchat-theme-ocean .quikdown-hr {
847
+ border: none;
848
+ border-top: 1px solid #3a3a3a;
849
+ margin: 0.5em 0;
850
+ }
851
+
852
+ .quikchat-theme-dark .quikdown-h1,
853
+ .quikchat-theme-dark .quikdown-h2,
854
+ .quikchat-theme-dark .quikdown-h3,
855
+ .quikchat-theme-dark .quikdown-h4,
856
+ .quikchat-theme-dark .quikdown-li,
857
+ .quikchat-theme-midnight .quikdown-h1,
858
+ .quikchat-theme-midnight .quikdown-h2,
859
+ .quikchat-theme-midnight .quikdown-h3,
860
+ .quikchat-theme-midnight .quikdown-h4,
861
+ .quikchat-theme-midnight .quikdown-li,
862
+ .quikchat-theme-ocean .quikdown-h1,
863
+ .quikchat-theme-ocean .quikdown-h2,
864
+ .quikchat-theme-ocean .quikdown-h3,
865
+ .quikchat-theme-ocean .quikdown-h4,
866
+ .quikchat-theme-ocean .quikdown-li {
867
+ color: #e0e0e0;
868
+ }
869
+
870
+ /* --- Modern theme (bubble style) --- */
871
+
872
+ .quikchat-theme-modern .quikdown-pre {
873
+ background: #f4f4f4;
874
+ padding: 10px;
875
+ border-radius: 4px;
876
+ overflow-x: auto;
877
+ margin: 0.5em 0;
878
+ }
879
+
880
+ .quikchat-theme-modern .quikdown-code {
881
+ background: rgba(0, 0, 0, 0.06);
882
+ padding: 2px 4px;
883
+ border-radius: 3px;
884
+ font-family: monospace;
885
+ font-size: 0.9em;
886
+ }
887
+
888
+ /* In blue bubbles (right-aligned/user messages), invert code blocks */
889
+ .quikchat-theme-modern .quikchat-align-right .quikdown-pre {
890
+ background: rgba(255, 255, 255, 0.15);
891
+ }
892
+
893
+ .quikchat-theme-modern .quikchat-align-right .quikdown-code {
894
+ background: rgba(255, 255, 255, 0.2);
895
+ color: #fff;
896
+ }
897
+
898
+ .quikchat-theme-modern .quikchat-align-right .quikdown-a {
899
+ color: #cce5ff;
900
+ }
901
+
902
+ .quikchat-theme-modern .quikchat-align-left .quikdown-a {
903
+ color: #06c;
904
+ }
905
+
906
+ .quikchat-theme-modern .quikdown-blockquote {
907
+ border-left: 4px solid #ddd;
908
+ margin-left: 0;
909
+ padding-left: 1em;
910
+ color: #666;
911
+ }
912
+
913
+ /* --- Debug theme --- */
914
+
915
+ .quikchat-theme-debug .quikdown-pre {
916
+ background: #f4f4f4;
917
+ padding: 10px;
918
+ border-radius: 4px;
919
+ overflow-x: auto;
920
+ margin: 0.5em 0;
921
+ }
922
+
923
+ .quikchat-theme-debug .quikdown-code {
924
+ background: #e8e8e8;
925
+ padding: 2px 4px;
926
+ border-radius: 3px;
927
+ font-family: monospace;
928
+ font-size: 0.9em;
929
+ }