open-chat-studio-widget 0.4.7 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +23 -20
  2. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  3. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  4. package/dist/cjs/{index-c9203be6.js → index-CC3Krx2K.js} +331 -238
  5. package/dist/cjs/index-CC3Krx2K.js.map +1 -0
  6. package/dist/cjs/index.cjs.js +1 -0
  7. package/dist/cjs/index.cjs.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +4 -5
  9. package/dist/cjs/loader.cjs.js.map +1 -1
  10. package/dist/cjs/open-chat-studio-widget.cjs.entry.js +5124 -4272
  11. package/dist/cjs/open-chat-studio-widget.cjs.entry.js.map +1 -1
  12. package/dist/cjs/open-chat-studio-widget.cjs.js +8 -7
  13. package/dist/cjs/open-chat-studio-widget.cjs.js.map +1 -1
  14. package/dist/cjs/open-chat-studio-widget.entry.cjs.js.map +1 -0
  15. package/dist/collection/collection-manifest.json +1 -1
  16. package/dist/collection/components/ocs-chat/{heroicons.js → icons.js} +23 -1
  17. package/dist/collection/components/ocs-chat/icons.js.map +1 -0
  18. package/dist/collection/components/ocs-chat/ocs-chat.css +596 -1947
  19. package/dist/collection/components/ocs-chat/ocs-chat.js +521 -293
  20. package/dist/collection/components/ocs-chat/ocs-chat.js.map +1 -1
  21. package/dist/collection/services/chat-session-service.js +145 -0
  22. package/dist/collection/services/chat-session-service.js.map +1 -0
  23. package/dist/collection/services/file-attachment-manager.js +125 -0
  24. package/dist/collection/services/file-attachment-manager.js.map +1 -0
  25. package/dist/collection/utils/cookies.js +5 -12
  26. package/dist/collection/utils/cookies.js.map +1 -1
  27. package/dist/collection/utils/markdown.js +1 -1
  28. package/dist/collection/utils/markdown.js.map +1 -1
  29. package/dist/collection/utils/translations.js +99 -0
  30. package/dist/collection/utils/translations.js.map +1 -0
  31. package/dist/components/index.js +2 -1
  32. package/dist/components/open-chat-studio-widget.js +5125 -4266
  33. package/dist/components/open-chat-studio-widget.js.map +1 -1
  34. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  35. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  36. package/dist/esm/{index-0349ca51.js → index-BF7CYZiN.js} +329 -217
  37. package/dist/esm/index-BF7CYZiN.js.map +1 -0
  38. package/dist/esm/index.js +1 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/loader.js +5 -4
  41. package/dist/esm/loader.js.map +1 -1
  42. package/dist/esm/open-chat-studio-widget.entry.js +5125 -4271
  43. package/dist/esm/open-chat-studio-widget.entry.js.map +1 -1
  44. package/dist/esm/open-chat-studio-widget.js +7 -5
  45. package/dist/esm/open-chat-studio-widget.js.map +1 -1
  46. package/dist/open-chat-studio-widget/index.esm.js.map +1 -1
  47. package/dist/open-chat-studio-widget/loader.esm.js.map +1 -0
  48. package/dist/open-chat-studio-widget/open-chat-studio-widget.entry.esm.js.map +1 -0
  49. package/dist/open-chat-studio-widget/open-chat-studio-widget.esm.js +1 -1
  50. package/dist/open-chat-studio-widget/open-chat-studio-widget.esm.js.map +1 -1
  51. package/dist/open-chat-studio-widget/p-400b1f47.entry.js +4 -0
  52. package/dist/open-chat-studio-widget/p-400b1f47.entry.js.map +1 -0
  53. package/dist/open-chat-studio-widget/p-BF7CYZiN.js +3 -0
  54. package/dist/open-chat-studio-widget/p-BF7CYZiN.js.map +1 -0
  55. package/dist/open-chat-studio-widget/p-DQuL1Twl.js +2 -0
  56. package/dist/open-chat-studio-widget/p-DQuL1Twl.js.map +1 -0
  57. package/dist/types/components/ocs-chat/{heroicons.d.ts → icons.d.ts} +19 -0
  58. package/dist/types/components/ocs-chat/ocs-chat.d.ts +57 -36
  59. package/dist/types/components.d.ts +36 -2
  60. package/dist/types/services/chat-session-service.d.ts +78 -0
  61. package/dist/types/services/file-attachment-manager.d.ts +40 -0
  62. package/dist/types/stencil-public-runtime.d.ts +35 -6
  63. package/dist/types/utils/translations.d.ts +23 -0
  64. package/package.json +9 -4
  65. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  66. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  67. package/dist/cjs/index-c9203be6.js.map +0 -1
  68. package/dist/collection/components/ocs-chat/heroicons.js.map +0 -1
  69. package/dist/esm/app-globals-0f993ce5.js +0 -5
  70. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  71. package/dist/esm/index-0349ca51.js.map +0 -1
  72. package/dist/open-chat-studio-widget/p-3dc66a9a.js +0 -3
  73. package/dist/open-chat-studio-widget/p-3dc66a9a.js.map +0 -1
  74. package/dist/open-chat-studio-widget/p-6b9a332c.entry.js +0 -4
  75. package/dist/open-chat-studio-widget/p-6b9a332c.entry.js.map +0 -1
  76. package/dist/open-chat-studio-widget/p-e1255160.js +0 -2
  77. package/dist/open-chat-studio-widget/p-e1255160.js.map +0 -1
  78. package/loader/package.json +0 -11
@@ -1,1081 +1,6 @@
1
- *, ::before, ::after {
2
- --tw-border-spacing-x: 0;
3
- --tw-border-spacing-y: 0;
4
- --tw-translate-x: 0;
5
- --tw-translate-y: 0;
6
- --tw-rotate: 0;
7
- --tw-skew-x: 0;
8
- --tw-skew-y: 0;
9
- --tw-scale-x: 1;
10
- --tw-scale-y: 1;
11
- --tw-pan-x: ;
12
- --tw-pan-y: ;
13
- --tw-pinch-zoom: ;
14
- --tw-scroll-snap-strictness: proximity;
15
- --tw-gradient-from-position: ;
16
- --tw-gradient-via-position: ;
17
- --tw-gradient-to-position: ;
18
- --tw-ordinal: ;
19
- --tw-slashed-zero: ;
20
- --tw-numeric-figure: ;
21
- --tw-numeric-spacing: ;
22
- --tw-numeric-fraction: ;
23
- --tw-ring-inset: ;
24
- --tw-ring-offset-width: 0px;
25
- --tw-ring-offset-color: #fff;
26
- --tw-ring-color: rgb(59 130 246 / 0.5);
27
- --tw-ring-offset-shadow: 0 0 #0000;
28
- --tw-ring-shadow: 0 0 #0000;
29
- --tw-shadow: 0 0 #0000;
30
- --tw-shadow-colored: 0 0 #0000;
31
- --tw-blur: ;
32
- --tw-brightness: ;
33
- --tw-contrast: ;
34
- --tw-grayscale: ;
35
- --tw-hue-rotate: ;
36
- --tw-invert: ;
37
- --tw-saturate: ;
38
- --tw-sepia: ;
39
- --tw-drop-shadow: ;
40
- --tw-backdrop-blur: ;
41
- --tw-backdrop-brightness: ;
42
- --tw-backdrop-contrast: ;
43
- --tw-backdrop-grayscale: ;
44
- --tw-backdrop-hue-rotate: ;
45
- --tw-backdrop-invert: ;
46
- --tw-backdrop-opacity: ;
47
- --tw-backdrop-saturate: ;
48
- --tw-backdrop-sepia: ;
49
- --tw-contain-size: ;
50
- --tw-contain-layout: ;
51
- --tw-contain-paint: ;
52
- --tw-contain-style: ;
53
- }
54
-
55
- ::backdrop {
56
- --tw-border-spacing-x: 0;
57
- --tw-border-spacing-y: 0;
58
- --tw-translate-x: 0;
59
- --tw-translate-y: 0;
60
- --tw-rotate: 0;
61
- --tw-skew-x: 0;
62
- --tw-skew-y: 0;
63
- --tw-scale-x: 1;
64
- --tw-scale-y: 1;
65
- --tw-pan-x: ;
66
- --tw-pan-y: ;
67
- --tw-pinch-zoom: ;
68
- --tw-scroll-snap-strictness: proximity;
69
- --tw-gradient-from-position: ;
70
- --tw-gradient-via-position: ;
71
- --tw-gradient-to-position: ;
72
- --tw-ordinal: ;
73
- --tw-slashed-zero: ;
74
- --tw-numeric-figure: ;
75
- --tw-numeric-spacing: ;
76
- --tw-numeric-fraction: ;
77
- --tw-ring-inset: ;
78
- --tw-ring-offset-width: 0px;
79
- --tw-ring-offset-color: #fff;
80
- --tw-ring-color: rgb(59 130 246 / 0.5);
81
- --tw-ring-offset-shadow: 0 0 #0000;
82
- --tw-ring-shadow: 0 0 #0000;
83
- --tw-shadow: 0 0 #0000;
84
- --tw-shadow-colored: 0 0 #0000;
85
- --tw-blur: ;
86
- --tw-brightness: ;
87
- --tw-contrast: ;
88
- --tw-grayscale: ;
89
- --tw-hue-rotate: ;
90
- --tw-invert: ;
91
- --tw-saturate: ;
92
- --tw-sepia: ;
93
- --tw-drop-shadow: ;
94
- --tw-backdrop-blur: ;
95
- --tw-backdrop-brightness: ;
96
- --tw-backdrop-contrast: ;
97
- --tw-backdrop-grayscale: ;
98
- --tw-backdrop-hue-rotate: ;
99
- --tw-backdrop-invert: ;
100
- --tw-backdrop-opacity: ;
101
- --tw-backdrop-saturate: ;
102
- --tw-backdrop-sepia: ;
103
- --tw-contain-size: ;
104
- --tw-contain-layout: ;
105
- --tw-contain-paint: ;
106
- --tw-contain-style: ;
107
- }/*
108
- ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
109
- *//*
110
- 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
111
- 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
112
- */
113
-
114
- *,
115
- ::before,
116
- ::after {
117
- box-sizing: border-box; /* 1 */
118
- border-width: 0; /* 2 */
119
- border-style: solid; /* 2 */
120
- border-color: #e5e7eb; /* 2 */
121
- }
122
-
123
- ::before,
124
- ::after {
125
- --tw-content: '';
126
- }
127
-
128
- /*
129
- 1. Use a consistent sensible line-height in all browsers.
130
- 2. Prevent adjustments of font size after orientation changes in iOS.
131
- 3. Use a more readable tab size.
132
- 4. Use the user's configured `sans` font-family by default.
133
- 5. Use the user's configured `sans` font-feature-settings by default.
134
- 6. Use the user's configured `sans` font-variation-settings by default.
135
- 7. Disable tap highlights on iOS
136
- */
137
-
138
- html,
139
- :host {
140
- line-height: 1.5; /* 1 */
141
- -webkit-text-size-adjust: 100%; /* 2 */
142
- -moz-tab-size: 4; /* 3 */
143
- -o-tab-size: 4;
144
- tab-size: 4; /* 3 */
145
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
146
- font-feature-settings: normal; /* 5 */
147
- font-variation-settings: normal; /* 6 */
148
- -webkit-tap-highlight-color: transparent; /* 7 */
149
- }
150
-
151
- /*
152
- 1. Remove the margin in all browsers.
153
- 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
154
- */
155
-
156
- body {
157
- margin: 0; /* 1 */
158
- line-height: inherit; /* 2 */
159
- }
160
-
161
- /*
162
- 1. Add the correct height in Firefox.
163
- 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
164
- 3. Ensure horizontal rules are visible by default.
165
- */
166
-
167
- hr {
168
- height: 0; /* 1 */
169
- color: inherit; /* 2 */
170
- border-top-width: 1px; /* 3 */
171
- }
172
-
173
- /*
174
- Add the correct text decoration in Chrome, Edge, and Safari.
175
- */
176
-
177
- abbr:where([title]) {
178
- -webkit-text-decoration: underline dotted;
179
- text-decoration: underline dotted;
180
- }
181
-
182
- /*
183
- Remove the default font size and weight for headings.
184
- */
185
-
186
- h1,
187
- h2,
188
- h3,
189
- h4,
190
- h5,
191
- h6 {
192
- font-size: inherit;
193
- font-weight: inherit;
194
- }
195
-
196
- /*
197
- Reset links to optimize for opt-in styling instead of opt-out.
198
- */
199
-
200
- a {
201
- color: inherit;
202
- text-decoration: inherit;
203
- }
204
-
205
- /*
206
- Add the correct font weight in Edge and Safari.
207
- */
208
-
209
- b,
210
- strong {
211
- font-weight: bolder;
212
- }
213
-
214
- /*
215
- 1. Use the user's configured `mono` font-family by default.
216
- 2. Use the user's configured `mono` font-feature-settings by default.
217
- 3. Use the user's configured `mono` font-variation-settings by default.
218
- 4. Correct the odd `em` font sizing in all browsers.
219
- */
220
-
221
- code,
222
- kbd,
223
- samp,
224
- pre {
225
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
226
- font-feature-settings: normal; /* 2 */
227
- font-variation-settings: normal; /* 3 */
228
- font-size: 1em; /* 4 */
229
- }
230
-
231
- /*
232
- Add the correct font size in all browsers.
233
- */
234
-
235
- small {
236
- font-size: 80%;
237
- }
238
-
239
- /*
240
- Prevent `sub` and `sup` elements from affecting the line height in all browsers.
241
- */
242
-
243
- sub,
244
- sup {
245
- font-size: 75%;
246
- line-height: 0;
247
- position: relative;
248
- vertical-align: baseline;
249
- }
250
-
251
- sub {
252
- bottom: -0.25em;
253
- }
254
-
255
- sup {
256
- top: -0.5em;
257
- }
258
-
259
- /*
260
- 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
261
- 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
262
- 3. Remove gaps between table borders by default.
263
- */
264
-
265
- table {
266
- text-indent: 0; /* 1 */
267
- border-color: inherit; /* 2 */
268
- border-collapse: collapse; /* 3 */
269
- }
270
-
271
- /*
272
- 1. Change the font styles in all browsers.
273
- 2. Remove the margin in Firefox and Safari.
274
- 3. Remove default padding in all browsers.
275
- */
276
-
277
- button,
278
- input,
279
- optgroup,
280
- select,
281
- textarea {
282
- font-family: inherit; /* 1 */
283
- font-feature-settings: inherit; /* 1 */
284
- font-variation-settings: inherit; /* 1 */
285
- font-size: 100%; /* 1 */
286
- font-weight: inherit; /* 1 */
287
- line-height: inherit; /* 1 */
288
- letter-spacing: inherit; /* 1 */
289
- color: inherit; /* 1 */
290
- margin: 0; /* 2 */
291
- padding: 0; /* 3 */
292
- }
293
-
294
- /*
295
- Remove the inheritance of text transform in Edge and Firefox.
296
- */
297
-
298
- button,
299
- select {
300
- text-transform: none;
301
- }
302
-
303
- /*
304
- 1. Correct the inability to style clickable types in iOS and Safari.
305
- 2. Remove default button styles.
306
- */
307
-
308
- button,
309
- input:where([type='button']),
310
- input:where([type='reset']),
311
- input:where([type='submit']) {
312
- -webkit-appearance: button; /* 1 */
313
- background-color: transparent; /* 2 */
314
- background-image: none; /* 2 */
315
- }
316
-
317
- /*
318
- Use the modern Firefox focus style for all focusable elements.
319
- */
320
-
321
- :-moz-focusring {
322
- outline: auto;
323
- }
324
-
325
- /*
326
- Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
327
- */
328
-
329
- :-moz-ui-invalid {
330
- box-shadow: none;
331
- }
332
-
333
- /*
334
- Add the correct vertical alignment in Chrome and Firefox.
335
- */
336
-
337
- progress {
338
- vertical-align: baseline;
339
- }
340
-
341
- /*
342
- Correct the cursor style of increment and decrement buttons in Safari.
343
- */
344
-
345
- ::-webkit-inner-spin-button,
346
- ::-webkit-outer-spin-button {
347
- height: auto;
348
- }
349
-
350
- /*
351
- 1. Correct the odd appearance in Chrome and Safari.
352
- 2. Correct the outline style in Safari.
353
- */
354
-
355
- [type='search'] {
356
- -webkit-appearance: textfield; /* 1 */
357
- outline-offset: -2px; /* 2 */
358
- }
359
-
360
- /*
361
- Remove the inner padding in Chrome and Safari on macOS.
362
- */
363
-
364
- ::-webkit-search-decoration {
365
- -webkit-appearance: none;
366
- }
367
-
368
- /*
369
- 1. Correct the inability to style clickable types in iOS and Safari.
370
- 2. Change font properties to `inherit` in Safari.
371
- */
372
-
373
- ::-webkit-file-upload-button {
374
- -webkit-appearance: button; /* 1 */
375
- font: inherit; /* 2 */
376
- }
377
-
378
- /*
379
- Add the correct display in Chrome and Safari.
380
- */
381
-
382
- summary {
383
- display: list-item;
384
- }
385
-
386
- /*
387
- Removes the default spacing and border for appropriate elements.
388
- */
389
-
390
- blockquote,
391
- dl,
392
- dd,
393
- h1,
394
- h2,
395
- h3,
396
- h4,
397
- h5,
398
- h6,
399
- hr,
400
- figure,
401
- p,
402
- pre {
403
- margin: 0;
404
- }
405
-
406
- fieldset {
407
- margin: 0;
408
- padding: 0;
409
- }
410
-
411
- legend {
412
- padding: 0;
413
- }
414
-
415
- ol,
416
- ul,
417
- menu {
418
- list-style: none;
419
- margin: 0;
420
- padding: 0;
421
- }
422
-
423
- /*
424
- Reset default styling for dialogs.
425
- */
426
- dialog {
427
- padding: 0;
428
- }
429
-
430
- /*
431
- Prevent resizing textareas horizontally by default.
432
- */
433
-
434
- textarea {
435
- resize: vertical;
436
- }
437
-
438
- /*
439
- 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
440
- 2. Set the default placeholder color to the user's configured gray 400 color.
441
- */
442
-
443
- input::-moz-placeholder, textarea::-moz-placeholder {
444
- opacity: 1; /* 1 */
445
- color: #9ca3af; /* 2 */
446
- }
447
-
448
- input::placeholder,
449
- textarea::placeholder {
450
- opacity: 1; /* 1 */
451
- color: #9ca3af; /* 2 */
452
- }
453
-
454
- /*
455
- Set the default cursor for buttons.
456
- */
457
-
458
- button,
459
- [role="button"] {
460
- cursor: pointer;
461
- }
462
-
463
- /*
464
- Make sure disabled buttons don't get the pointer cursor.
465
- */
466
- :disabled {
467
- cursor: default;
468
- }
469
-
470
- /*
471
- 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
472
- 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
473
- This can trigger a poorly considered lint error in some tools but is included by design.
474
- */
475
-
476
- img,
477
- svg,
478
- video,
479
- canvas,
480
- audio,
481
- iframe,
482
- embed,
483
- object {
484
- display: block; /* 1 */
485
- vertical-align: middle; /* 2 */
486
- }
487
-
488
- /*
489
- Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
490
- */
491
-
492
- img,
493
- video {
494
- max-width: 100%;
495
- height: auto;
496
- }
497
-
498
- /* Make elements with the HTML hidden attribute stay hidden by default */
499
- [hidden]:where(:not([hidden="until-found"])) {
500
- display: none;
501
- }
502
- #ocs-chat-window {
503
- z-index: var(--chat-z-index);
504
- font-size: var(--chat-window-font-size);
505
- }
506
- .starter-question {
507
- border-radius: 0.5rem;
508
- text-align: left;
509
- transition-duration: 200ms;
510
- padding: 0.75em;
511
- background-color: var(--starter-question-bg-color);
512
- border: 1px solid var(--starter-question-border-color);
513
- color: var(--starter-question-text-color);
514
- }
515
- .starter-question:hover {
516
- background-color: var(--starter-question-bg-hover-color);
517
- border-color: var(--starter-question-border-hover-color);
518
- }
519
- .chat-btn-text,
520
- .chat-btn-icon {
521
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
522
- border-radius: 0.5rem;
523
- border-width: 0px;
524
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
525
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
526
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
527
- transition-property: all;
528
- transition-duration: 200ms;
529
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
530
- }
531
- .chat-btn-text:hover,
532
- .chat-btn-icon:hover {
533
- --tw-scale-x: 1.05;
534
- --tw-scale-y: 1.05;
535
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
536
- }
537
- .chat-btn-text,
538
- .chat-btn-icon {
539
- background-color: var(--button-background-color, white);
540
- border: 1px solid var(--button-border-color);
541
- z-index: var(--chat-z-index, 50);
542
- font-size: var(--button-font-size);
543
- padding: 0.5em;
544
- }
545
- .chat-btn-text:hover, .chat-btn-icon:hover {
546
- color: var(--button-text-color-hover, #1d4ed8);
547
- border: 1px solid var(--button-border-color-hover);
548
- }
549
- /* Button with text and icon */
550
- .chat-btn-text {
551
- display: flex;
552
- align-items: center;
553
- gap: 8px;
554
- color: var(--button-text-color, #111827);
555
- }
556
- .chat-btn-text span {
557
- white-space: nowrap;
558
- font-weight: 500;
559
- }
560
- .chat-btn-text img {
561
- flex-shrink: 0;
562
- -o-object-fit: contain;
563
- object-fit: contain;
564
- width: var(--button-icon-size);
565
- height: var(--button-icon-size);
566
- }
567
- /* Icon-only button */
568
- .chat-btn-icon {
569
- }
570
- .chat-btn-icon img {
571
- -o-object-fit: contain;
572
- object-fit: contain;
573
- width: var(--button-icon-size);
574
- height: var(--button-icon-size);
575
- }
576
- .chat-btn-text.round,
577
- .chat-btn-icon.round {
578
- border-radius: 9999px;
579
- }
580
- /* Error message styling */
581
- .error-message {
582
- padding: 0.5em;
583
- color: var(--error-text-color);
584
- }
585
- /* Chat window positioning classes */
586
- .chat-window-fullscreen {
587
- position: fixed;
588
- inset: 0px;
589
- z-index: 9999;
590
- display: flex;
591
- height: 100%;
592
- max-height: 100%;
593
- width: 100%;
594
- flex-direction: column;
595
- overflow: hidden;
596
- border-radius: 0px;
597
- border-width: 0px;
598
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
599
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
600
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
601
- transition-property: box-shadow;
602
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
603
- transition-duration: 200ms;
604
- background-color: var(--chat-window-bg-color);
605
- max-width: var(--chat-window-fullscreen-width);
606
- }
607
- .chat-window-normal {
608
- position: fixed;
609
- display: flex;
610
- height: 100vh;
611
- min-height: 300px;
612
- width: 100vw;
613
- min-width: 300px;
614
- max-width: 1024px;
615
- flex-direction: column;
616
- overflow: hidden;
617
- border-radius: 0.5rem;
618
- }
619
- @media (min-width: 640px) {
620
-
621
- .chat-window-normal {
622
- height: var(--chat-window-height);
623
- width: var(--chat-window-width);
624
- }
625
- }
626
- .chat-window-normal {
627
- background-color: var(--chat-window-bg-color);
628
- border: 1px solid var(--chat-window-border-color);
629
- }
630
- .chat-window-dragging {
631
- cursor: grabbing;
632
- --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
633
- --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
634
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
635
- }
636
- .chat-window-normal:not(.chat-window-dragging) {
637
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
638
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
639
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
640
- transition-property: box-shadow;
641
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
642
- transition-duration: 200ms;
643
- }
644
- /* Header/drag bar classes */
645
- .chat-header {
646
- display: flex;
647
- align-items: center;
648
- justify-content: space-between;
649
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
650
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
651
- transition-duration: 150ms;
652
- padding: 0.5em;
653
- background-color: var(--header-bg-color);
654
- border-bottom: 1px solid var(--header-border-color);
655
- font-size: var(--header-font-size);
656
- }
657
- .header-text {
658
- display: flex;
659
- align-items: center;
660
- justify-content: center;
661
- font-size: var(--header-text-font-size);
662
- color: var(--header-text-color);
663
- }
664
- .chat-header:hover,
665
- .chat-header:active {
666
- background-color: var(--header-bg-hover-color);
667
- }
668
- .chat-header-draggable {
669
- cursor: grab;
670
- }
671
- .chat-header-dragging {
672
- cursor: grabbing;
673
- }
674
- .drag-indicator {
675
- display: none;
676
- }
677
- @media (min-width: 640px) {
678
-
679
- .drag-indicator {
680
- display: flex;
681
- }
682
- }
683
- .drag-dots {
684
- pointer-events: none;
685
- margin-left: 2px;
686
- display: flex;
687
- gap: 2px;
688
- }
689
- .header-buttons {
690
- display: flex;
691
- align-items: center;
692
- gap: 4px;
693
- }
694
- /* Header button classes */
695
- .header-button {
696
- border-radius: 0.375rem;
697
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
698
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
699
- transition-duration: 200ms;
700
- padding: 0.375em;
701
- color: var(--header-button-text-color);
702
- }
703
- .header-button svg {
704
- width: var(--header-button-icon-size);
705
- height: var(--header-button-icon-size);
706
- }
707
- .header-button:hover {
708
- background-color: var(--header-button-bg-hover-color);
709
- }
710
- .fullscreen-button {
711
- display: none;
712
- }
713
- @media (min-width: 640px) {
714
-
715
- .fullscreen-button {
716
- display: block;
717
- }
718
- }
719
- /* Chat content area */
720
- .chat-content {
721
- display: flex;
722
- flex-grow: 1;
723
- flex-direction: column;
724
- overflow: hidden;
725
- }
726
- /* Loading state */
727
- .loading-container {
728
- display: flex;
729
- flex-grow: 1;
730
- align-items: center;
731
- justify-content: center;
732
- }
733
- .loading-text {
734
- margin-left: 2px;
735
- color: var(--loading-text-color);
736
- }
737
- /* Messages container */
738
- .messages-container {
739
- flex-grow: 1;
740
- }
741
- .messages-container > :not([hidden]) ~ :not([hidden]) {
742
- --tw-space-y-reverse: 0;
743
- margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
744
- margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
745
- }
746
- .messages-container {
747
- overflow-y: auto;
748
- }
749
- .messages-container::-webkit-scrollbar {
750
- width: 0.375rem;
751
- }
752
- .messages-container::-webkit-scrollbar-track {
753
- border-radius: 0.25rem;
754
- background-color: var(--scrollbar-track-color);
755
- }
756
- .messages-container::-webkit-scrollbar-thumb {
757
- border-radius: 0.25rem;
758
- background-color: var(--scrollbar-thumb-color);
759
- }
760
- .messages-container::-webkit-scrollbar-thumb:hover {
761
- background-color: var(--scrollbar-thumb-hover-color);
762
- }
763
- .messages-container {
764
- padding: 1em;
765
- }
766
- /* Message bubbles */
767
- .message-row {
768
- display: flex;
769
- }
770
- .message-row-user {
771
- justify-content: flex-end;
772
- }
773
- .message-row-assistant {
774
- justify-content: flex-start;
775
- }
776
- .message-bubble {
777
- border-radius: 0.5rem;
778
- padding: 0.5em 1em;
779
- }
780
- .message-bubble-user {
781
- background-color: var(--message-user-bg-color);
782
- color: var(--message-user-text-color);
783
- }
784
- .message-bubble-assistant {
785
- background-color: var(--message-assistant-bg-color);
786
- color: var(--message-assistant-text-color);
787
- }
788
- .message-bubble-system {
789
- background-color: var(--message-system-bg-color);
790
- color: var(--message-system-text-color);
791
- }
792
- .message-timestamp {
793
- margin-top: 4px;
794
- opacity: 0.7;
795
- font-size: var(--chat-window-font-size-sm);
796
- }
797
- .message-attachments {
798
- margin-top: 8px;
799
- }
800
- .message-attachments > :not([hidden]) ~ :not([hidden]) {
801
- --tw-space-y-reverse: 0;
802
- margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
803
- margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
804
- }
805
- /* Welcome messages */
806
- .welcome-messages > :not([hidden]) ~ :not([hidden]) {
807
- --tw-space-y-reverse: 0;
808
- margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
809
- margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
810
- }
811
- /* Typing indicator */
812
- .typing-indicator {
813
- height: 0.375rem;
814
- width: 100%;
815
- overflow: hidden;
816
- }
817
- .typing-progress {
818
- height: 100%;
819
- width: 100%;
820
- transform-origin: 0% 50%;
821
- }
822
- @keyframes progress {
823
-
824
- 0% {
825
- transform: translateX(0) scaleX(0);
826
- }
827
-
828
- 10% {
829
- transform: translateX(0) scaleX(0.3);
830
- }
831
-
832
- 50% {
833
- transform: translateX(100%) scaleX(0.3);
834
- }
835
-
836
- 90% {
837
- transform: translateX(0) scaleX(0.3);
838
- }
839
-
840
- 100% {
841
- transform: translateX(0) scaleX(0);
842
- }
843
- }
844
- .typing-progress {
845
- animation: progress 3s infinite linear;
846
- border-radius: 0.5rem;
847
- background-color: var(--typing-progress-bg-color);
848
- }
849
- .typing-text {
850
- width: 100%;
851
- justify-content: center;
852
- opacity: 0.7;
853
- font-size: var(--chat-window-font-size-sm);
854
- }
855
- @keyframes dots {
856
-
857
- 0%, 20% {
858
- color: rgba(0,0,0,0);
859
- text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);
860
- }
861
-
862
- 40% {
863
- color: black;
864
- text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);
865
- }
866
-
867
- 60% {
868
- text-shadow: .25em 0 0 black, .5em 0 0 rgba(0,0,0,0);
869
- }
870
-
871
- 80%, 100% {
872
- text-shadow: .25em 0 0 black, .5em 0 0 black;
873
- }
874
- }
875
- .typing-dots {
876
- animation: dots 1s steps(5, end) infinite;
877
- }
878
- .typing-dots:after {
879
- content: ' .';
880
- }
881
- /* Starter questions */
882
- .starter-questions > :not([hidden]) ~ :not([hidden]) {
883
- --tw-space-y-reverse: 0;
884
- margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
885
- margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
886
- }
887
- .starter-questions {
888
- padding: 1em;
889
- }
890
- .starter-question-row {
891
- display: flex;
892
- justify-content: flex-end;
893
- }
894
- /* Input area */
895
- .input-area {
896
- padding: 1em 1em 0 1em;
897
- background-color: var(--input-bg-color);
898
- border-top: 1px solid var(--input-border-color);
899
- }
900
- .input-container {
901
- display: flex;
902
- gap: 8px;
903
- }
904
- .message-textarea {
905
- flex-grow: 1;
906
- resize: none;
907
- border-radius: 0.375rem;
908
- border-width: 1px;
909
- --tw-border-opacity: 1;
910
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
911
- }
912
- .message-textarea:focus {
913
- outline-color: #93c5fd;
914
- }
915
- .message-textarea {
916
- background-color: var(--input-bg-color);
917
- padding: 0.5em 0.75em;
918
- color: var(--input-text-color);
919
- border: 1px solid var(--input-border-color);
920
- }
921
- .message-textarea:focus {
922
- outline-color: var(--input-outline-focus-color);
923
- }
924
- .send-button {
925
- border-radius: 0.375rem;
926
- font-weight: 500;
927
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
928
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
929
- transition-duration: 200ms;
930
- padding: 0.5em 1em;
931
- }
932
- .send-button-enabled {
933
- background-color: var(--send-button-bg-color);
934
- color: var(--send-button-text-color);
935
- }
936
- .send-button-enabled:hover {
937
- background-color: var(--send-button-bg-hover-color);
938
- }
939
- .send-button-disabled {
940
- cursor: not-allowed;
941
- background-color: var(--send-button-bg-disabled-color);
942
- color: var(--send-button-text-disabled-color);
943
- }
944
- /* Confirmation dialog */
945
- .confirmation-overlay {
946
- position: fixed;
947
- inset: 0px;
948
- display: flex;
949
- align-items: center;
950
- justify-content: center;
951
- background-color: var(--confirmation-overlay-bg-color);
952
- z-index: 9999;
953
- }
954
- .confirmation-dialog {
955
- margin-left: 1rem;
956
- margin-right: 1rem;
957
- width: 100%;
958
- max-width: 24rem;
959
- background-color: var(--confirmation-dialog-bg-color);
960
- border: 1px solid var(--confirmation-dialog-border-color);
961
- border-radius: 0.75em;
962
- box-shadow: 0 0.625em 1.5625em var(--confirmation-dialog-shadow-color);
963
- }
964
- .confirmation-content {
965
- padding: 1.5em;
966
- }
967
- .confirmation-title {
968
- margin-bottom: 0.5rem;
969
- font-weight: 600;
970
- color: var(--confirmation-title-color);
971
- font-size: var(--confirmation-title-font-size);
972
- }
973
- .confirmation-message {
974
- margin-bottom: 1rem;
975
- color: var(--confirmation-message-color);
976
- font-size: var(--confirmation-message-font-size);
977
- }
978
- .confirmation-buttons {
979
- display: flex;
980
- justify-content: flex-end;
981
- gap: 0.75em;
982
- }
983
- .confirmation-button {
984
- border-radius: 0.375rem;
985
- font-weight: 500;
986
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
987
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
988
- transition-duration: 200ms;
989
- padding: 0.5em 1em;
990
- }
991
- .confirmation-button-cancel {
992
- background-color: var(--confirmation-button-cancel-bg-color);
993
- color: var(--confirmation-button-cancel-text-color);
994
- }
995
- .confirmation-button-cancel:hover {
996
- background-color: var(--confirmation-button-cancel-bg-hover-color);
997
- }
998
- .confirmation-button-confirm {
999
- background-color: var(--confirmation-button-confirm-bg-color);
1000
- color: var(--confirmation-button-confirm-text-color);
1001
- }
1002
- .confirmation-button-confirm:hover {
1003
- background-color: var(--confirmation-button-confirm-bg-hover-color);
1004
- }
1005
- .\!visible {
1006
- visibility: visible !important;
1007
- }
1008
- .visible {
1009
- visibility: visible;
1010
- }
1011
- .static {
1012
- position: static;
1013
- }
1014
- .relative {
1015
- position: relative;
1016
- }
1017
- .flex {
1018
- display: flex;
1019
- }
1020
- .table {
1021
- display: table;
1022
- }
1023
- .hidden {
1024
- display: none;
1025
- }
1026
- .w-full {
1027
- width: 100%;
1028
- }
1029
- .transform {
1030
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1031
- }
1032
- .resize {
1033
- resize: both;
1034
- }
1035
- .items-center {
1036
- align-items: center;
1037
- }
1038
- .justify-center {
1039
- justify-content: center;
1040
- }
1041
- .gap-\[0\.5em\] {
1042
- gap: 0.5em;
1043
- }
1044
- .space-y-\[0\.25em\] > :not([hidden]) ~ :not([hidden]) {
1045
- --tw-space-y-reverse: 0;
1046
- margin-top: calc(0.25em * calc(1 - var(--tw-space-y-reverse)));
1047
- margin-bottom: calc(0.25em * var(--tw-space-y-reverse));
1048
- }
1049
- .border {
1050
- border-width: 1px;
1051
- }
1052
- .py-\[2px\] {
1053
- padding-top: 2px;
1054
- padding-bottom: 2px;
1055
- }
1056
- .text-\[0\.8em\] {
1057
- font-size: 0.8em;
1058
- }
1059
- .font-light {
1060
- font-weight: 300;
1061
- }
1062
- .text-slate-500 {
1063
- --tw-text-opacity: 1;
1064
- color: rgb(100 116 139 / var(--tw-text-opacity, 1));
1065
- }
1066
- .underline {
1067
- text-decoration-line: underline;
1068
- }
1069
- .shadow {
1070
- --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
1071
- --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
1072
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1073
- }
1074
- .filter {
1075
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1076
- }
1077
- :host {
1078
- /**
1
+ @layer utilities {
2
+ :host {
3
+ /**
1079
4
  * @prop --chat-z-index: Z-index for chat widget (50)
1080
5
  *
1081
6
  * @prop --button-background-color: Button background color (#ffffff)
@@ -1192,868 +117,598 @@ video {
1192
117
  *
1193
118
  * @prop --message-attachment-icon-size: Message attachment icon size (1em)
1194
119
  */
1195
- /* Global variables */
1196
- --chat-z-index: 50;
1197
-
1198
- /* Button variables */
1199
- --button-background-color: #ffffff;
1200
- --button-background-color-hover: #f3f4f6;
1201
- --button-text-color: #111827;
1202
- --button-text-color-hover: #1d4ed8;
1203
- --button-border-color: #d1d5db;
1204
- --button-border-color-hover: #6b7280;
1205
- --button-font-size: 1em; /* text-sm */
1206
- --button-icon-size: 1.5em;
1207
-
1208
- /* Chat window variables */
1209
- --chat-window-height: 60%;
1210
- --chat-window-width: 25%;
1211
- --chat-window-fullscreen-width: 80%;
1212
- --chat-window-bg-color: #ffffff;
1213
- --chat-window-border-color: #d1d5db;
1214
- --chat-window-shadow-color: rgba(0, 0, 0, 0.1);
1215
- --chat-window-font-size: 0.875em; /* text-sm */
1216
- --chat-window-font-size-sm: 0.75em; /* text-xs */
1217
-
1218
- /* Header variables */
1219
- --header-bg-color: transparent;
1220
- --header-bg-hover-color: #f9fafb;
1221
- --header-border-color: #f3f4f6;
1222
- --header-button-text-color: #6b7280;
1223
- --header-button-bg-hover-color: #f3f4f6;
1224
- --header-font-size: 1em;
1225
- --header-text-font-size: 1em;
1226
- --header-text-color: #525762;
1227
- --header-button-icon-size: 1.5em;
1228
-
1229
- /* Starter question variables */
1230
- --starter-question-bg-color: transparent;
1231
- --starter-question-bg-hover-color: #eff6ff;
1232
- --starter-question-text-color: #3b82f6;
1233
- --starter-question-border-color: #3b82f6;
1234
- --starter-question-border-hover-color: #2563eb;
1235
-
1236
- /* Message bubble variables */
1237
- --message-user-bg-color: #e4edfb;
1238
- --message-user-text-color: #1f2937;
1239
- --message-user-link-color: #155dfc;
1240
-
1241
- --message-assistant-bg-color: #eae7e8;
1242
- --message-assistant-text-color: var(--message-user-text-color);
1243
- --message-assistant-link-color: var(--message-user-link-color);
1244
-
1245
- --message-system-bg-color: #fbe4f8;
1246
- --message-system-text-color: var(--message-user-text-color);
1247
- --message-system-link-color: var(--message-user-link-color);
1248
-
1249
- --message-timestamp-color: rgba(255, 255, 255, 0.7);
1250
- --message-timestamp-assistant-color: rgba(75, 85, 99, 0.7);
1251
-
1252
- /* Input area variables */
1253
- --input-bg-color: transparent;
1254
- --input-border-color: #d1d5db;
1255
- --input-text-color: #111827;
1256
- --input-placeholder-color: #6b7280;
1257
- --input-outline-focus-color: #3b82f6;
1258
-
1259
- /* Send button variables */
1260
- --send-button-bg-color: #3b82f6;
1261
- --send-button-bg-hover-color: #2563eb;
1262
- --send-button-text-color: #ffffff;
1263
- --send-button-bg-disabled-color: #d1d5db;
1264
- --send-button-text-disabled-color: #6b7280;
1265
-
1266
- /* Loading variables */
1267
- --loading-text-color: #6b7280;
1268
- --loading-spinner-track-color: #e5e7eb;
1269
- --loading-spinner-fill-color: #3b82f6;
1270
- --loading-spinner-size: 1.25em;
1271
-
1272
- /* Typing indicator variables */
1273
- --typing-progress-bg-color: #ade3ff;
1274
-
1275
- /* Scrollbar variables */
1276
- --scrollbar-track-color: #f3f4f6;
1277
- --scrollbar-thumb-color: #d1d5db;
1278
- --scrollbar-thumb-hover-color: #9ca3af;
1279
-
1280
- /* Error variables */
1281
- --error-text-color: #ef4444;
1282
- --success-text-color: #10b981; /* Complementary green to existing blue palette */;
1283
-
1284
- /* Markdown code variables */
1285
- --code-bg-user-color: color-mix(in srgb, var(--message-user-bg-color) 80%, white 20%);
1286
- --code-text-user-color: var(--message-user-text-color);
1287
- --code-border-user-color: color-mix(in srgb, var(--message-user-bg-color) 90%, black 10%);
1288
- --code-bg-assistant-color: color-mix(in srgb, var(--message-assistant-bg-color) 50%, white 50%);
1289
- --code-text-assistant-color: var(--message-assistant-text-color);
1290
- --code-border-assistant-color: color-mix(in srgb, var(--message-assistant-bg-color) 90%, black 10%);;
1291
-
1292
- --confirmation-overlay-bg-color: rgba(0, 0, 0, 0.5);
1293
- --confirmation-dialog-bg-color: var(--chat-window-bg-color);
1294
- --confirmation-dialog-border-color: var(--chat-window-border-color);
1295
- --confirmation-dialog-shadow-color: var(--chat-window-shadow-color);
1296
- --confirmation-title-color: #111827;
1297
- --confirmation-title-font-size: 1.125em;
1298
- --confirmation-message-color: var(--loading-text-color);
1299
- --confirmation-message-font-size: 1em;
1300
- --confirmation-button-cancel-bg-color: var(--button-background-color-hover);
1301
- --confirmation-button-cancel-bg-hover-color: #e5e7eb;
1302
- --confirmation-button-cancel-text-color: var(--header-button-text-color);
1303
- --confirmation-button-confirm-bg-color: var(--error-text-color);
1304
- --confirmation-button-confirm-bg-hover-color: var(--error-text-color);
1305
- --confirmation-button-confirm-text-color: var(--send-button-text-color);
1306
-
1307
- /* File upload variables */
1308
- --file-attachment-button-bg-color: transparent;
1309
- --file-attachment-button-bg-hover-color: var(--header-button-bg-hover-color); /* #f3f4f6 */
1310
- --file-attachment-button-text-color: var(--header-button-text-color); /* #6b7280 */
1311
- --file-attachment-button-text-disabled-color: var(--send-button-text-disabled-color); /* #6b7280 */
1312
-
1313
- /* Selected files variables */
1314
- --selected-files-bg-color: var(--chat-window-bg-color); /* transparent */
1315
- --selected-files-border-color: var(--header-border-color); /* #f3f4f6 */
1316
-
1317
- /* Selected file item variables */
1318
- --selected-file-bg-color: var(--message-system-bg-color); /* #f3f4f6 */
1319
-
1320
- /* Selected file text variables */
1321
- --selected-file-font-size: var(--chat-window-font-size-sm);
1322
- --selected-file-name-color: var(--message-assistant-text-color); /* #1f2937 */
1323
- --selected-file-size-color: var(--input-placeholder-color); /* #6b7280 */
1324
-
1325
- /* Selected file icon variables */
1326
- --selected-file-icon-size: 1.25em;
1327
- --selected-file-remove-icon-color: var(--error-text-color); /* #ef4444 */
1328
- --selected-file-remove-icon-hover-color: #dc2626; /* Darker red for hover */
1329
-
1330
- /* Message attachment variables */
1331
- --message-attachment-icon-size: 1em;
1332
-
1333
- display: block;
1334
- position: fixed;
1335
- right: 30px;
1336
- bottom: 30px;
120
+ /* Global variables */
121
+ --chat-z-index: 50;
122
+
123
+ /* Button variables */
124
+ --button-background-color: #ffffff;
125
+ --button-background-color-hover: #f3f4f6;
126
+ --button-text-color: #111827;
127
+ --button-text-color-hover: #1d4ed8;
128
+ --button-border-color: #d1d5db;
129
+ --button-border-color-hover: #6b7280;
130
+ --button-font-size: 1em; /* text-sm */
131
+ --button-icon-size: 1.5em;
132
+
133
+ /* Chat window variables */
134
+ --chat-window-height: 60%;
135
+ --chat-window-width: 25%;
136
+ --chat-window-fullscreen-width: 80%;
137
+ --chat-window-bg-color: #ffffff;
138
+ --chat-window-border-color: #d1d5db;
139
+ --chat-window-shadow-color: rgba(0, 0, 0, 0.1);
140
+ --chat-window-font-size: 0.875em; /* text-sm */
141
+ --chat-window-font-size-sm: 0.75em; /* text-xs */
142
+
143
+ /* Header variables */
144
+ --header-bg-color: transparent;
145
+ --header-bg-hover-color: #f9fafb;
146
+ --header-border-color: #f3f4f6;
147
+ --header-button-text-color: #6b7280;
148
+ --header-button-bg-hover-color: #f3f4f6;
149
+ --header-font-size: 1em;
150
+ --header-text-font-size: 1em;
151
+ --header-text-color: #525762;
152
+ --header-button-icon-size: 1.5em;
153
+
154
+ /* Starter question variables */
155
+ --starter-question-bg-color: transparent;
156
+ --starter-question-bg-hover-color: #eff6ff;
157
+ --starter-question-text-color: #3b82f6;
158
+ --starter-question-border-color: #3b82f6;
159
+ --starter-question-border-hover-color: #2563eb;
160
+
161
+ /* Message bubble variables */
162
+ --message-user-bg-color: #e4edfb;
163
+ --message-user-text-color: #1f2937;
164
+ --message-user-link-color: #155dfc;
165
+
166
+ --message-assistant-bg-color: #eae7e8;
167
+ --message-assistant-text-color: var(--message-user-text-color);
168
+ --message-assistant-link-color: var(--message-user-link-color);
169
+
170
+ --message-system-bg-color: #fbe4f8;
171
+ --message-system-text-color: var(--message-user-text-color);
172
+ --message-system-link-color: var(--message-user-link-color);
173
+
174
+ --message-timestamp-color: rgba(255, 255, 255, 0.7);
175
+ --message-timestamp-assistant-color: rgba(75, 85, 99, 0.7);
176
+
177
+ /* Input area variables */
178
+ --input-bg-color: transparent;
179
+ --input-border-color: #d1d5db;
180
+ --input-text-color: #111827;
181
+ --input-placeholder-color: #6b7280;
182
+ --input-outline-focus-color: #3b82f6;
183
+
184
+ /* Send button variables */
185
+ --send-button-bg-color: #3b82f6;
186
+ --send-button-bg-hover-color: #2563eb;
187
+ --send-button-text-color: #ffffff;
188
+ --send-button-bg-disabled-color: #d1d5db;
189
+ --send-button-text-disabled-color: #6b7280;
190
+
191
+ /* Loading variables */
192
+ --loading-text-color: #6b7280;
193
+ --loading-spinner-track-color: #e5e7eb;
194
+ --loading-spinner-fill-color: #3b82f6;
195
+ --loading-spinner-size: 1.25em;
196
+
197
+ /* Typing indicator variables */
198
+ --typing-progress-bg-color: #ade3ff;
199
+
200
+ /* Scrollbar variables */
201
+ --scrollbar-track-color: #f3f4f6;
202
+ --scrollbar-thumb-color: #d1d5db;
203
+ --scrollbar-thumb-hover-color: #9ca3af;
204
+
205
+ /* Error variables */
206
+ --error-text-color: #ef4444;
207
+ --success-text-color: #10b981; /* Complementary green to existing blue palette */
208
+
209
+ /* Markdown code variables */
210
+ --code-bg-user-color: color-mix(
211
+ in srgb,
212
+ var(--message-user-bg-color) 80%,
213
+ white 20%
214
+ );
215
+ --code-text-user-color: var(--message-user-text-color);
216
+ --code-border-user-color: color-mix(
217
+ in srgb,
218
+ var(--message-user-bg-color) 90%,
219
+ black 10%
220
+ );
221
+ --code-bg-assistant-color: color-mix(
222
+ in srgb,
223
+ var(--message-assistant-bg-color) 50%,
224
+ white 50%
225
+ );
226
+ --code-text-assistant-color: var(--message-assistant-text-color);
227
+ --code-border-assistant-color: color-mix(
228
+ in srgb,
229
+ var(--message-assistant-bg-color) 90%,
230
+ black 10%
231
+ );
232
+
233
+ --confirmation-overlay-bg-color: rgba(0, 0, 0, 0.5);
234
+ --confirmation-dialog-bg-color: var(--chat-window-bg-color);
235
+ --confirmation-dialog-border-color: var(--chat-window-border-color);
236
+ --confirmation-dialog-shadow-color: var(--chat-window-shadow-color);
237
+ --confirmation-title-color: #111827;
238
+ --confirmation-title-font-size: 1.125em;
239
+ --confirmation-message-color: var(--loading-text-color);
240
+ --confirmation-message-font-size: 1em;
241
+ --confirmation-button-cancel-bg-color: var(--button-background-color-hover);
242
+ --confirmation-button-cancel-bg-hover-color: #e5e7eb;
243
+ --confirmation-button-cancel-text-color: var(--header-button-text-color);
244
+ --confirmation-button-confirm-bg-color: var(--error-text-color);
245
+ --confirmation-button-confirm-bg-hover-color: var(--error-text-color);
246
+ --confirmation-button-confirm-text-color: var(--send-button-text-color);
247
+
248
+ /* File upload variables */
249
+ --file-attachment-button-bg-color: transparent;
250
+ --file-attachment-button-bg-hover-color: var(
251
+ --header-button-bg-hover-color
252
+ ); /* #f3f4f6 */
253
+ --file-attachment-button-text-color: var(
254
+ --header-button-text-color
255
+ ); /* #6b7280 */
256
+ --file-attachment-button-text-disabled-color: var(
257
+ --send-button-text-disabled-color
258
+ ); /* #6b7280 */
259
+
260
+ /* Selected files variables */
261
+ --selected-files-bg-color: var(--chat-window-bg-color); /* transparent */
262
+ --selected-files-border-color: var(--header-border-color); /* #f3f4f6 */
263
+
264
+ /* Selected file item variables */
265
+ --selected-file-bg-color: var(--message-system-bg-color); /* #f3f4f6 */
266
+
267
+ /* Selected file text variables */
268
+ --selected-file-font-size: var(--chat-window-font-size-sm);
269
+ --selected-file-name-color: var(
270
+ --message-assistant-text-color
271
+ ); /* #1f2937 */
272
+ --selected-file-size-color: var(--input-placeholder-color); /* #6b7280 */
273
+
274
+ /* Selected file icon variables */
275
+ --selected-file-icon-size: 1.25em;
276
+ --selected-file-remove-icon-color: var(--error-text-color); /* #ef4444 */
277
+ --selected-file-remove-icon-hover-color: #dc2626; /* Darker red for hover */
278
+
279
+ /* Message attachment variables */
280
+ --message-attachment-icon-size: 1em;
281
+
282
+ display: block;
283
+ position: fixed;
284
+ right: 30px;
285
+ bottom: 30px;
286
+ }
287
+ }
288
+
289
+ @layer components {
290
+ #ocs-chat-window {
291
+ z-index: var(--chat-z-index);
292
+ font-size: var(--chat-window-font-size);
293
+ }
294
+
295
+ .starter-question {
296
+ @apply text-left rounded-lg duration-200;
297
+ padding: 0.75em;
298
+ background-color: var(--starter-question-bg-color);
299
+ border: 1px solid var(--starter-question-border-color);
300
+ color: var(--starter-question-text-color);
301
+
302
+ &:hover {
303
+ background-color: var(--starter-question-bg-hover-color);
304
+ border-color: var(--starter-question-border-hover-color);
305
+ }
306
+ }
307
+
308
+ .chat-btn-text {
309
+ @apply shadow-lg border-0 transition-all duration-200 ease-in-out transform hover:scale-105 rounded-lg;
310
+ background-color: var(--button-background-color, white);
311
+ border: 1px solid var(--button-border-color);
312
+ z-index: var(--chat-z-index, 50);
313
+ font-size: var(--button-font-size);
314
+ padding: 0.5em;
315
+
316
+ &:hover {
317
+ color: var(--button-text-color-hover, #1d4ed8);
318
+ border: 1px solid var(--button-border-color-hover);
319
+ }
320
+
321
+ /* Button with text and icon */
322
+ @apply flex gap-[8px] items-center;
323
+ color: var(--button-text-color, #111827);
324
+
325
+ & span {
326
+ @apply font-medium whitespace-nowrap;
327
+ }
328
+
329
+ & img {
330
+ @apply object-contain flex-shrink-0;
331
+ width: var(--button-icon-size);
332
+ height: var(--button-icon-size);
333
+ }
334
+
335
+ &.round {
336
+ @apply rounded-full;
337
+ }
338
+ }
339
+
340
+ .chat-btn-icon {
341
+ @apply shadow-lg border-0 transition-all duration-200 ease-in-out transform hover:scale-105 rounded-lg;
342
+ background-color: var(--button-background-color, white);
343
+ border: 1px solid var(--button-border-color);
344
+ z-index: var(--chat-z-index, 50);
345
+ font-size: var(--button-font-size);
346
+ padding: 0.5em;
347
+
348
+ &:hover {
349
+ color: var(--button-text-color-hover, #1d4ed8);
350
+ border: 1px solid var(--button-border-color-hover);
351
+ }
352
+
353
+ /* Icon-only button */
354
+
355
+ & img {
356
+ @apply object-contain;
357
+ width: var(--button-icon-size);
358
+ height: var(--button-icon-size);
359
+ }
360
+
361
+ &.round {
362
+ @apply rounded-full;
363
+ }
364
+ }
365
+
366
+ .round {
367
+ &.chat-btn-text {
368
+ @apply rounded-full;
369
+ }
370
+
371
+ & .chat-btn-icon {
372
+ @apply rounded-full;
373
+ }
374
+ }
375
+
376
+ .error-message {
377
+ /* Error message styling */
378
+ padding: 0.5em;
379
+ color: var(--error-text-color);
380
+ }
381
+
382
+ .chat-window-fullscreen {
383
+ /* Chat window positioning classes */
384
+ @apply fixed inset-0 w-full h-full max-h-full border-0 shadow-lg transition-shadow duration-200 rounded-none overflow-hidden flex flex-col z-9999;
385
+ background-color: var(--chat-window-bg-color);
386
+ max-width: var(--chat-window-fullscreen-width);
387
+ }
388
+
389
+ .chat-window-normal {
390
+ @apply fixed w-screen h-screen min-h-[300px] min-w-[300px] sm:w-(--chat-window-width) sm:h-(--chat-window-height) max-w-(--breakpoint-lg) rounded-lg overflow-hidden flex flex-col;
391
+ background-color: var(--chat-window-bg-color);
392
+ border: 1px solid var(--chat-window-border-color);
393
+
394
+ &:not(.chat-window-dragging) {
395
+ @apply shadow-lg transition-shadow duration-200;
396
+ }
397
+ }
398
+
399
+ .chat-window-dragging {
400
+ @apply shadow-2xl cursor-grabbing;
401
+ }
402
+
403
+ .chat-header {
404
+ /* Header/drag bar classes */
405
+ @apply flex justify-between items-center transition-colors duration-150;
406
+ padding: 0.5em;
407
+ background-color: var(--header-bg-color);
408
+ border-bottom: 1px solid var(--header-border-color);
409
+ font-size: var(--header-font-size);
410
+
411
+ &:hover {
412
+ background-color: var(--header-bg-hover-color);
413
+ }
414
+
415
+ &:active {
416
+ background-color: var(--header-bg-hover-color);
417
+ }
418
+ }
419
+
420
+ .header-text {
421
+ @apply flex items-center justify-center;
422
+ font-size: var(--header-text-font-size);
423
+ color: var(--header-text-color);
424
+ }
425
+
426
+ .chat-header-draggable {
427
+ @apply cursor-grab;
428
+ }
429
+
430
+ .chat-header-dragging {
431
+ @apply cursor-grabbing;
432
+ }
433
+
434
+ .drag-indicator {
435
+ @apply hidden sm:flex;
436
+ }
437
+
438
+ .drag-dots {
439
+ @apply flex gap-[2px] ml-[2px] pointer-events-none;
440
+ }
441
+
442
+ .header-buttons {
443
+ @apply flex gap-[4px] items-center;
444
+ }
445
+
446
+ .header-button {
447
+ /* Header button classes */
448
+ @apply rounded-md transition-colors duration-200;
449
+ padding: 0.375em;
450
+ color: var(--header-button-text-color);
451
+
452
+ & svg {
453
+ width: var(--header-button-icon-size);
454
+ height: var(--header-button-icon-size);
455
+ }
456
+
457
+ &:hover {
458
+ background-color: var(--header-button-bg-hover-color);
459
+ }
460
+ }
461
+
462
+ .fullscreen-button {
463
+ @apply hidden sm:block;
464
+ }
465
+
466
+ .chat-content {
467
+ /* Chat content area */
468
+ @apply flex flex-col flex-grow overflow-hidden;
469
+ }
470
+
471
+ .loading-container {
472
+ /* Loading state */
473
+ @apply flex items-center justify-center flex-grow;
474
+ }
475
+
476
+ .loading-text {
477
+ margin-left: 2px;
478
+ color: var(--loading-text-color);
479
+ }
480
+
481
+ .messages-container {
482
+ /* Messages container */
483
+ @apply flex-grow overflow-y-auto space-y-2;
484
+ padding: 1em;
485
+ }
486
+
487
+ .message-row {
488
+ /* Message bubbles */
489
+ @apply flex;
490
+ }
491
+
492
+ .message-row-user {
493
+ @apply justify-end;
494
+ }
495
+
496
+ .message-row-assistant {
497
+ @apply justify-start;
498
+ }
499
+
500
+ .message-bubble {
501
+ @apply rounded-lg;
502
+ padding: 0.5em 1em;
503
+ }
504
+
505
+ .message-bubble-user {
506
+ background-color: var(--message-user-bg-color);
507
+ color: var(--message-user-text-color);
508
+ }
509
+
510
+ .message-bubble-assistant {
511
+ background-color: var(--message-assistant-bg-color);
512
+ color: var(--message-assistant-text-color);
513
+ }
514
+
515
+ .message-bubble-system {
516
+ background-color: var(--message-system-bg-color);
517
+ color: var(--message-system-text-color);
518
+ }
519
+
520
+ .message-timestamp {
521
+ @apply opacity-70 mt-[4px];
522
+ font-size: var(--chat-window-font-size-sm);
523
+ }
524
+
525
+ .message-attachments {
526
+ @apply mt-[8px] space-y-1;
527
+ }
528
+
529
+ .attachment-link {
530
+ @apply block underline hover:no-underline;
531
+ }
532
+
533
+ .welcome-messages {
534
+ /* Welcome messages */
535
+ @apply space-y-2;
536
+ }
537
+
538
+ .typing-indicator {
539
+ /* Typing indicator */
540
+ @apply h-1.5 w-full overflow-hidden;
541
+ }
542
+
543
+ .typing-progress {
544
+ @apply animate-progress w-full h-full origin-left-right rounded-lg;
545
+ background-color: var(--typing-progress-bg-color);
546
+ }
547
+
548
+ .typing-text {
549
+ @apply w-full opacity-70 justify-center;
550
+ font-size: var(--chat-window-font-size-sm);
551
+ }
552
+
553
+ .typing-dots {
554
+ @apply animate-dots;
555
+ }
556
+
557
+ .starter-questions {
558
+ /* Starter questions */
559
+ @apply space-y-2;
560
+ padding: 1em;
561
+ }
562
+
563
+ .starter-question-row {
564
+ @apply flex justify-end;
565
+ }
566
+
567
+ .input-area {
568
+ /* Input area */
569
+ padding: 1em 1em 0 1em;
570
+ background-color: var(--input-bg-color);
571
+ border-top: 1px solid var(--input-border-color);
572
+ }
573
+
574
+ .input-container {
575
+ @apply flex gap-[8px];
576
+ }
577
+
578
+ .message-textarea {
579
+ @apply flex-grow border border-gray-300 rounded-md resize-none focus:outline-blue-300;
580
+ background-color: var(--input-bg-color);
581
+ padding: 0.5em 0.75em;
582
+ color: var(--input-text-color);
583
+ border: 1px solid var(--input-border-color);
584
+
585
+ &:focus {
586
+ outline-color: var(--input-outline-focus-color);
587
+ }
588
+ }
589
+
590
+ .send-button {
591
+ @apply rounded-md font-medium transition-colors duration-200;
592
+ padding: 0.5em 1em;
593
+ }
594
+
595
+ .send-button-enabled {
596
+ background-color: var(--send-button-bg-color);
597
+ color: var(--send-button-text-color);
598
+
599
+ &:hover {
600
+ background-color: var(--send-button-bg-hover-color);
601
+ }
602
+ }
603
+
604
+ .send-button-disabled {
605
+ @apply cursor-not-allowed;
606
+ background-color: var(--send-button-bg-disabled-color);
607
+ color: var(--send-button-text-disabled-color);
608
+ }
609
+
610
+ .confirmation-overlay {
611
+ /* Confirmation dialog */
612
+ @apply fixed inset-0 flex items-center justify-center;
613
+ background-color: var(--confirmation-overlay-bg-color);
614
+ z-index: 9999;
615
+ }
616
+
617
+ .confirmation-dialog {
618
+ @apply max-w-sm w-full mx-4;
619
+ background-color: var(--confirmation-dialog-bg-color);
620
+ border: 1px solid var(--confirmation-dialog-border-color);
621
+ border-radius: 0.75em;
622
+ box-shadow: 0 0.625em 1.5625em var(--confirmation-dialog-shadow-color);
623
+ }
624
+
625
+ .confirmation-content {
626
+ padding: 1.5em;
627
+ }
628
+
629
+ .confirmation-title {
630
+ @apply font-semibold mb-2;
631
+ color: var(--confirmation-title-color);
632
+ font-size: var(--confirmation-title-font-size);
633
+ }
634
+
635
+ .confirmation-message {
636
+ @apply mb-4;
637
+ color: var(--confirmation-message-color);
638
+ font-size: var(--confirmation-message-font-size);
639
+ }
640
+
641
+ .confirmation-buttons {
642
+ @apply flex justify-end;
643
+ gap: 0.75em;
644
+ }
645
+
646
+ .confirmation-button {
647
+ @apply rounded-md font-medium transition-colors duration-200;
648
+ padding: 0.5em 1em;
649
+ }
650
+
651
+ .confirmation-button-cancel {
652
+ background-color: var(--confirmation-button-cancel-bg-color);
653
+ color: var(--confirmation-button-cancel-text-color);
654
+
655
+ &:hover {
656
+ background-color: var(--confirmation-button-cancel-bg-hover-color);
657
+ }
658
+ }
659
+
660
+ .confirmation-button-confirm {
661
+ background-color: var(--confirmation-button-confirm-bg-color);
662
+ color: var(--confirmation-button-confirm-text-color);
663
+
664
+ &:hover {
665
+ background-color: var(--confirmation-button-confirm-bg-hover-color);
666
+ }
667
+ }
1337
668
  }
669
+
1338
670
  textarea {
1339
- max-height: 8rem;
1340
- min-height: 2.5rem;
1341
- resize: none;
1342
- overflow-y: auto;
1343
- }
1344
- textarea::-webkit-scrollbar {
1345
- width: 0.375rem;
1346
- }
1347
- textarea::-webkit-scrollbar-track {
1348
- border-radius: 0.25rem;
1349
- background-color: var(--scrollbar-track-color);
1350
- }
1351
- textarea::-webkit-scrollbar-thumb {
1352
- border-radius: 0.25rem;
1353
- background-color: var(--scrollbar-thumb-color);
1354
- }
1355
- textarea::-webkit-scrollbar-thumb:hover {
1356
- background-color: var(--scrollbar-thumb-hover-color);
671
+ @apply min-h-10 max-h-32 resize-none overflow-y-auto;
1357
672
  }
1358
- @keyframes spin {
1359
673
 
1360
- to {
1361
- transform: rotate(360deg);
1362
- }
1363
- }
1364
674
  .loading-spinner {
1365
- animation: spin 1s linear infinite;
1366
- border-radius: 9999px;
1367
- border-width: 2px;
675
+ @apply border-2 rounded-full animate-spin;
1368
676
  border-color: var(--loading-spinner-track-color);
1369
677
  border-top-color: var(--loading-spinner-fill-color);
1370
678
  width: var(--loading-spinner-size);
1371
679
  height: var(--loading-spinner-size);
1372
680
  }
681
+
1373
682
  .overflow-y-auto::-webkit-scrollbar {
1374
- width: 0.375rem;
683
+ @apply w-1.5 h-1.5;
1375
684
  }
685
+
1376
686
  .overflow-y-auto::-webkit-scrollbar-track {
1377
- border-radius: 0.25rem;
687
+ @apply rounded-sm;
1378
688
  background-color: var(--scrollbar-track-color);
1379
689
  }
690
+
1380
691
  .overflow-y-auto::-webkit-scrollbar-thumb {
1381
- border-radius: 0.25rem;
692
+ @apply rounded-sm;
1382
693
  background-color: var(--scrollbar-thumb-color);
1383
694
  }
695
+
1384
696
  .overflow-y-auto::-webkit-scrollbar-thumb:hover {
1385
697
  background-color: var(--scrollbar-thumb-hover-color);
1386
698
  }
699
+
1387
700
  /* Markdown content styling for chat messages */
1388
701
  .chat-markdown {
1389
- color: var(--tw-prose-body);
1390
- max-width: 65ch;
1391
- }
1392
- .chat-markdown :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1393
- margin-top: 1.25em;
1394
- margin-bottom: 1.25em;
1395
- }
1396
- .chat-markdown :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1397
- color: var(--tw-prose-lead);
1398
- font-size: 1.25em;
1399
- line-height: 1.6;
1400
- margin-top: 1.2em;
1401
- margin-bottom: 1.2em;
1402
- }
1403
- .chat-markdown :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1404
- color: var(--tw-prose-links);
1405
- text-decoration: underline;
1406
- font-weight: 500;
1407
- }
1408
- .chat-markdown :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1409
- color: var(--tw-prose-bold);
1410
- font-weight: 600;
1411
- }
1412
- .chat-markdown :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1413
- color: inherit;
1414
- }
1415
- .chat-markdown :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1416
- color: inherit;
1417
- }
1418
- .chat-markdown :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1419
- color: inherit;
1420
- }
1421
- .chat-markdown :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1422
- list-style-type: decimal;
1423
- margin-top: 1.25em;
1424
- margin-bottom: 1.25em;
1425
- padding-inline-start: 1.625em;
1426
- }
1427
- .chat-markdown :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1428
- list-style-type: upper-alpha;
1429
- }
1430
- .chat-markdown :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1431
- list-style-type: lower-alpha;
1432
- }
1433
- .chat-markdown :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1434
- list-style-type: upper-alpha;
1435
- }
1436
- .chat-markdown :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1437
- list-style-type: lower-alpha;
1438
- }
1439
- .chat-markdown :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1440
- list-style-type: upper-roman;
1441
- }
1442
- .chat-markdown :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1443
- list-style-type: lower-roman;
1444
- }
1445
- .chat-markdown :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1446
- list-style-type: upper-roman;
1447
- }
1448
- .chat-markdown :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1449
- list-style-type: lower-roman;
1450
- }
1451
- .chat-markdown :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1452
- list-style-type: decimal;
1453
- }
1454
- .chat-markdown :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1455
- list-style-type: disc;
1456
- margin-top: 1.25em;
1457
- margin-bottom: 1.25em;
1458
- padding-inline-start: 1.625em;
1459
- }
1460
- .chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
1461
- font-weight: 400;
1462
- color: var(--tw-prose-counters);
1463
- }
1464
- .chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker {
1465
- color: var(--tw-prose-bullets);
1466
- }
1467
- .chat-markdown :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1468
- color: var(--tw-prose-headings);
1469
- font-weight: 600;
1470
- margin-top: 1.25em;
1471
- }
1472
- .chat-markdown :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1473
- border-color: var(--tw-prose-hr);
1474
- border-top-width: 1px;
1475
- margin-top: 3em;
1476
- margin-bottom: 3em;
1477
- }
1478
- .chat-markdown :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1479
- font-weight: 500;
1480
- font-style: italic;
1481
- color: var(--tw-prose-quotes);
1482
- border-inline-start-width: 0.25rem;
1483
- border-inline-start-color: var(--tw-prose-quote-borders);
1484
- quotes: "\201C""\201D""\2018""\2019";
1485
- margin-top: 1.6em;
1486
- margin-bottom: 1.6em;
1487
- padding-inline-start: 1em;
1488
- }
1489
- .chat-markdown :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
1490
- content: open-quote;
1491
- }
1492
- .chat-markdown :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
1493
- content: close-quote;
1494
- }
1495
- .chat-markdown :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1496
- color: var(--tw-prose-headings);
1497
- font-weight: 800;
1498
- font-size: 2.25em;
1499
- margin-top: 0;
1500
- margin-bottom: 0.8888889em;
1501
- line-height: 1.1111111;
1502
- }
1503
- .chat-markdown :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1504
- font-weight: 900;
1505
- color: inherit;
1506
- }
1507
- .chat-markdown :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1508
- color: var(--tw-prose-headings);
1509
- font-weight: 700;
1510
- font-size: 1.5em;
1511
- margin-top: 2em;
1512
- margin-bottom: 1em;
1513
- line-height: 1.3333333;
1514
- }
1515
- .chat-markdown :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1516
- font-weight: 800;
1517
- color: inherit;
1518
- }
1519
- .chat-markdown :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1520
- color: var(--tw-prose-headings);
1521
- font-weight: 600;
1522
- font-size: 1.25em;
1523
- margin-top: 1.6em;
1524
- margin-bottom: 0.6em;
1525
- line-height: 1.6;
1526
- }
1527
- .chat-markdown :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1528
- font-weight: 700;
1529
- color: inherit;
1530
- }
1531
- .chat-markdown :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1532
- color: var(--tw-prose-headings);
1533
- font-weight: 600;
1534
- margin-top: 1.5em;
1535
- margin-bottom: 0.5em;
1536
- line-height: 1.5;
1537
- }
1538
- .chat-markdown :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1539
- font-weight: 700;
1540
- color: inherit;
1541
- }
1542
- .chat-markdown :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1543
- margin-top: 2em;
1544
- margin-bottom: 2em;
1545
- }
1546
- .chat-markdown :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1547
- display: block;
1548
- margin-top: 2em;
1549
- margin-bottom: 2em;
1550
- }
1551
- .chat-markdown :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1552
- margin-top: 2em;
1553
- margin-bottom: 2em;
1554
- }
1555
- .chat-markdown :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1556
- font-weight: 500;
1557
- font-family: inherit;
1558
- color: var(--tw-prose-kbd);
1559
- box-shadow: 0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%), 0 3px 0 rgb(var(--tw-prose-kbd-shadows) / 10%);
1560
- font-size: 0.875em;
1561
- border-radius: 0.3125rem;
1562
- padding-top: 0.1875em;
1563
- padding-inline-end: 0.375em;
1564
- padding-bottom: 0.1875em;
1565
- padding-inline-start: 0.375em;
1566
- }
1567
- .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1568
- color: var(--tw-prose-code);
1569
- font-weight: 600;
1570
- font-size: 0.875em;
1571
- }
1572
- .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
1573
- content: "`";
1574
- }
1575
- .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
1576
- content: "`";
1577
- }
1578
- .chat-markdown :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1579
- color: inherit;
1580
- }
1581
- .chat-markdown :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1582
- color: inherit;
1583
- }
1584
- .chat-markdown :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1585
- color: inherit;
1586
- font-size: 0.875em;
1587
- }
1588
- .chat-markdown :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1589
- color: inherit;
1590
- font-size: 0.9em;
1591
- }
1592
- .chat-markdown :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1593
- color: inherit;
1594
- }
1595
- .chat-markdown :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1596
- color: inherit;
1597
- }
1598
- .chat-markdown :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1599
- color: inherit;
1600
- }
1601
- .chat-markdown :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1602
- color: var(--tw-prose-pre-code);
1603
- background-color: var(--tw-prose-pre-bg);
1604
- overflow-x: auto;
1605
- font-weight: 400;
1606
- font-size: 0.875em;
1607
- line-height: 1.7142857;
1608
- margin-top: 1.7142857em;
1609
- margin-bottom: 1.7142857em;
1610
- border-radius: 0.375rem;
1611
- padding-top: 0.8571429em;
1612
- padding-inline-end: 1.1428571em;
1613
- padding-bottom: 0.8571429em;
1614
- padding-inline-start: 1.1428571em;
1615
- }
1616
- .chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1617
- background-color: transparent;
1618
- border-width: 0;
1619
- border-radius: 0;
1620
- padding: 0;
1621
- font-weight: inherit;
1622
- color: inherit;
1623
- font-size: inherit;
1624
- font-family: inherit;
1625
- line-height: inherit;
1626
- }
1627
- .chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before {
1628
- content: none;
1629
- }
1630
- .chat-markdown :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after {
1631
- content: none;
1632
- }
1633
- .chat-markdown :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1634
- width: 100%;
1635
- table-layout: auto;
1636
- margin-top: 2em;
1637
- margin-bottom: 2em;
1638
- font-size: 0.875em;
1639
- line-height: 1.7142857;
1640
- }
1641
- .chat-markdown :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1642
- border-bottom-width: 1px;
1643
- border-bottom-color: var(--tw-prose-th-borders);
1644
- }
1645
- .chat-markdown :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1646
- color: var(--tw-prose-headings);
1647
- font-weight: 600;
1648
- vertical-align: bottom;
1649
- padding-inline-end: 0.5714286em;
1650
- padding-bottom: 0.5714286em;
1651
- padding-inline-start: 0.5714286em;
1652
- }
1653
- .chat-markdown :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1654
- border-bottom-width: 1px;
1655
- border-bottom-color: var(--tw-prose-td-borders);
1656
- }
1657
- .chat-markdown :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1658
- border-bottom-width: 0;
1659
- }
1660
- .chat-markdown :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1661
- vertical-align: baseline;
1662
- }
1663
- .chat-markdown :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1664
- border-top-width: 1px;
1665
- border-top-color: var(--tw-prose-th-borders);
1666
- }
1667
- .chat-markdown :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1668
- vertical-align: top;
1669
- }
1670
- .chat-markdown :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1671
- text-align: start;
1672
- }
1673
- .chat-markdown :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1674
- margin-top: 0;
1675
- margin-bottom: 0;
1676
- }
1677
- .chat-markdown :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1678
- color: var(--tw-prose-captions);
1679
- font-size: 0.875em;
1680
- line-height: 1.4285714;
1681
- margin-top: 0.8571429em;
1682
- }
1683
- .chat-markdown {
1684
- --tw-prose-body: #374151;
1685
- --tw-prose-headings: #111827;
1686
- --tw-prose-lead: #4b5563;
1687
- --tw-prose-links: #111827;
1688
- --tw-prose-bold: #111827;
1689
- --tw-prose-counters: #6b7280;
1690
- --tw-prose-bullets: #d1d5db;
1691
- --tw-prose-hr: #e5e7eb;
1692
- --tw-prose-quotes: #111827;
1693
- --tw-prose-quote-borders: #e5e7eb;
1694
- --tw-prose-captions: #6b7280;
1695
- --tw-prose-kbd: #111827;
1696
- --tw-prose-kbd-shadows: 17 24 39;
1697
- --tw-prose-code: #111827;
1698
- --tw-prose-pre-code: #e5e7eb;
1699
- --tw-prose-pre-bg: #1f2937;
1700
- --tw-prose-th-borders: #d1d5db;
1701
- --tw-prose-td-borders: #e5e7eb;
1702
- --tw-prose-invert-body: #d1d5db;
1703
- --tw-prose-invert-headings: #fff;
1704
- --tw-prose-invert-lead: #9ca3af;
1705
- --tw-prose-invert-links: #fff;
1706
- --tw-prose-invert-bold: #fff;
1707
- --tw-prose-invert-counters: #9ca3af;
1708
- --tw-prose-invert-bullets: #4b5563;
1709
- --tw-prose-invert-hr: #374151;
1710
- --tw-prose-invert-quotes: #f3f4f6;
1711
- --tw-prose-invert-quote-borders: #374151;
1712
- --tw-prose-invert-captions: #9ca3af;
1713
- --tw-prose-invert-kbd: #fff;
1714
- --tw-prose-invert-kbd-shadows: 255 255 255;
1715
- --tw-prose-invert-code: #fff;
1716
- --tw-prose-invert-pre-code: #d1d5db;
1717
- --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
1718
- --tw-prose-invert-th-borders: #4b5563;
1719
- --tw-prose-invert-td-borders: #374151;
1720
- font-size: 1rem;
1721
- line-height: 1.75;
1722
- }
1723
- .chat-markdown :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1724
- margin-top: 0;
1725
- margin-bottom: 0;
1726
- }
1727
- .chat-markdown :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1728
- margin-top: 0.5em;
1729
- margin-bottom: 0.5em;
1730
- }
1731
- .chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1732
- padding-inline-start: 0.375em;
1733
- }
1734
- .chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1735
- padding-inline-start: 0.375em;
1736
- }
1737
- .chat-markdown :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1738
- margin-top: 0.75em;
1739
- margin-bottom: 0.75em;
1740
- }
1741
- .chat-markdown :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1742
- margin-top: 1.25em;
1743
- }
1744
- .chat-markdown :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1745
- margin-bottom: 1.25em;
1746
- }
1747
- .chat-markdown :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1748
- margin-top: 1.25em;
1749
- }
1750
- .chat-markdown :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1751
- margin-bottom: 1.25em;
1752
- }
1753
- .chat-markdown :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1754
- margin-top: 0.75em;
1755
- margin-bottom: 0.75em;
1756
- }
1757
- .chat-markdown :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1758
- margin-top: 1.25em;
1759
- margin-bottom: 1.25em;
1760
- }
1761
- .chat-markdown :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1762
- margin-top: 0.5em;
1763
- padding-inline-start: 1.625em;
1764
- }
1765
- .chat-markdown :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1766
- margin-top: 0;
1767
- }
1768
- .chat-markdown :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1769
- margin-top: 0;
1770
- }
1771
- .chat-markdown :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1772
- margin-top: 0;
1773
- }
1774
- .chat-markdown :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1775
- margin-top: 0;
1776
- }
1777
- .chat-markdown :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1778
- padding-inline-start: 0;
1779
- }
1780
- .chat-markdown :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1781
- padding-inline-end: 0;
1782
- }
1783
- .chat-markdown :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1784
- padding-top: 0.5714286em;
1785
- padding-inline-end: 0.5714286em;
1786
- padding-bottom: 0.5714286em;
1787
- padding-inline-start: 0.5714286em;
1788
- }
1789
- .chat-markdown :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1790
- padding-inline-start: 0;
1791
- }
1792
- .chat-markdown :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1793
- padding-inline-end: 0;
1794
- }
1795
- .chat-markdown :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1796
- margin-top: 2em;
1797
- margin-bottom: 2em;
1798
- }
1799
- .chat-markdown :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1800
- margin-top: 0;
1801
- }
1802
- .chat-markdown :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1803
- margin-bottom: 0;
1804
- }
1805
- .chat-markdown {
1806
- font-size: 0.875rem;
1807
- line-height: 1.7142857;
1808
- }
1809
- .chat-markdown :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1810
- margin-top: 1.1428571em;
1811
- margin-bottom: 1.1428571em;
1812
- }
1813
- .chat-markdown :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1814
- font-size: 1.2857143em;
1815
- line-height: 1.5555556;
1816
- margin-top: 0.8888889em;
1817
- margin-bottom: 0.8888889em;
1818
- }
1819
- .chat-markdown :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1820
- margin-top: 1.3333333em;
1821
- margin-bottom: 1.3333333em;
1822
- padding-inline-start: 1.1111111em;
1823
- }
1824
- .chat-markdown :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1825
- font-size: 2.1428571em;
1826
- margin-top: 0;
1827
- margin-bottom: 0.8em;
1828
- line-height: 1.2;
1829
- }
1830
- .chat-markdown :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1831
- font-size: 1.4285714em;
1832
- margin-top: 1.6em;
1833
- margin-bottom: 0.8em;
1834
- line-height: 1.4;
1835
- }
1836
- .chat-markdown :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1837
- font-size: 1.2857143em;
1838
- margin-top: 1.5555556em;
1839
- margin-bottom: 0.4444444em;
1840
- line-height: 1.5555556;
1841
- }
1842
- .chat-markdown :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1843
- margin-top: 1.4285714em;
1844
- margin-bottom: 0.5714286em;
1845
- line-height: 1.4285714;
1846
- }
1847
- .chat-markdown :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1848
- margin-top: 1.7142857em;
1849
- margin-bottom: 1.7142857em;
1850
- }
1851
- .chat-markdown :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1852
- margin-top: 1.7142857em;
1853
- margin-bottom: 1.7142857em;
1854
- }
1855
- .chat-markdown :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1856
- margin-top: 0;
1857
- margin-bottom: 0;
1858
- }
1859
- .chat-markdown :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1860
- margin-top: 1.7142857em;
1861
- margin-bottom: 1.7142857em;
1862
- }
1863
- .chat-markdown :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1864
- font-size: 0.8571429em;
1865
- border-radius: 0.3125rem;
1866
- padding-top: 0.1428571em;
1867
- padding-inline-end: 0.3571429em;
1868
- padding-bottom: 0.1428571em;
1869
- padding-inline-start: 0.3571429em;
1870
- }
1871
- .chat-markdown :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1872
- font-size: 0.8571429em;
1873
- }
1874
- .chat-markdown :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1875
- font-size: 0.9em;
1876
- }
1877
- .chat-markdown :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1878
- font-size: 0.8888889em;
1879
- }
1880
- .chat-markdown :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1881
- font-size: 0.8571429em;
1882
- line-height: 1.6666667;
1883
- margin-top: 1.6666667em;
1884
- margin-bottom: 1.6666667em;
1885
- border-radius: 0.25rem;
1886
- padding-top: 0.6666667em;
1887
- padding-inline-end: 1em;
1888
- padding-bottom: 0.6666667em;
1889
- padding-inline-start: 1em;
1890
- }
1891
- .chat-markdown :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1892
- margin-top: 1.1428571em;
1893
- margin-bottom: 1.1428571em;
1894
- padding-inline-start: 1.5714286em;
1895
- }
1896
- .chat-markdown :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1897
- margin-top: 1.1428571em;
1898
- margin-bottom: 1.1428571em;
1899
- padding-inline-start: 1.5714286em;
1900
- }
1901
- .chat-markdown :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1902
- margin-top: 0.2857143em;
1903
- margin-bottom: 0.2857143em;
1904
- }
1905
- .chat-markdown :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1906
- padding-inline-start: 0.4285714em;
1907
- }
1908
- .chat-markdown :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1909
- padding-inline-start: 0.4285714em;
1910
- }
1911
- .chat-markdown :where(.prose-sm > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1912
- margin-top: 0.5714286em;
1913
- margin-bottom: 0.5714286em;
1914
- }
1915
- .chat-markdown :where(.prose-sm > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1916
- margin-top: 1.1428571em;
1917
- }
1918
- .chat-markdown :where(.prose-sm > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1919
- margin-bottom: 1.1428571em;
1920
- }
1921
- .chat-markdown :where(.prose-sm > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1922
- margin-top: 1.1428571em;
1923
- }
1924
- .chat-markdown :where(.prose-sm > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1925
- margin-bottom: 1.1428571em;
1926
- }
1927
- .chat-markdown :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1928
- margin-top: 0.5714286em;
1929
- margin-bottom: 0.5714286em;
1930
- }
1931
- .chat-markdown :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1932
- margin-top: 1.1428571em;
1933
- margin-bottom: 1.1428571em;
1934
- }
1935
- .chat-markdown :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1936
- margin-top: 1.1428571em;
1937
- }
1938
- .chat-markdown :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1939
- margin-top: 0.2857143em;
1940
- padding-inline-start: 1.5714286em;
1941
- }
1942
- .chat-markdown :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1943
- margin-top: 2.8571429em;
1944
- margin-bottom: 2.8571429em;
1945
- }
1946
- .chat-markdown :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1947
- margin-top: 0;
1948
- }
1949
- .chat-markdown :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1950
- margin-top: 0;
1951
- }
1952
- .chat-markdown :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1953
- margin-top: 0;
1954
- }
1955
- .chat-markdown :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1956
- margin-top: 0;
1957
- }
1958
- .chat-markdown :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1959
- font-size: 0.8571429em;
1960
- line-height: 1.5;
1961
- }
1962
- .chat-markdown :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1963
- padding-inline-end: 1em;
1964
- padding-bottom: 0.6666667em;
1965
- padding-inline-start: 1em;
1966
- }
1967
- .chat-markdown :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1968
- padding-inline-start: 0;
1969
- }
1970
- .chat-markdown :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1971
- padding-inline-end: 0;
1972
- }
1973
- .chat-markdown :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1974
- padding-top: 0.6666667em;
1975
- padding-inline-end: 1em;
1976
- padding-bottom: 0.6666667em;
1977
- padding-inline-start: 1em;
1978
- }
1979
- .chat-markdown :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1980
- padding-inline-start: 0;
1981
- }
1982
- .chat-markdown :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1983
- padding-inline-end: 0;
1984
- }
1985
- .chat-markdown :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1986
- margin-top: 1.7142857em;
1987
- margin-bottom: 1.7142857em;
1988
- }
1989
- .chat-markdown :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1990
- margin-top: 0;
1991
- margin-bottom: 0;
1992
- }
1993
- .chat-markdown :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1994
- font-size: 0.8571429em;
1995
- line-height: 1.3333333;
1996
- margin-top: 0.6666667em;
1997
- }
1998
- .chat-markdown :where(.prose-sm > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
1999
- margin-top: 0;
2000
- }
2001
- .chat-markdown :where(.prose-sm > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) {
2002
- margin-bottom: 0;
2003
- }
2004
- .chat-markdown {
2005
- --tw-prose-body: #374151;
2006
- --tw-prose-headings: #111827;
2007
- --tw-prose-lead: #4b5563;
2008
- --tw-prose-links: #111827;
2009
- --tw-prose-bold: #111827;
2010
- --tw-prose-counters: #6b7280;
2011
- --tw-prose-bullets: #d1d5db;
2012
- --tw-prose-hr: #e5e7eb;
2013
- --tw-prose-quotes: #111827;
2014
- --tw-prose-quote-borders: #e5e7eb;
2015
- --tw-prose-captions: #6b7280;
2016
- --tw-prose-kbd: #111827;
2017
- --tw-prose-kbd-shadows: 17 24 39;
2018
- --tw-prose-code: #111827;
2019
- --tw-prose-pre-code: #e5e7eb;
2020
- --tw-prose-pre-bg: #1f2937;
2021
- --tw-prose-th-borders: #d1d5db;
2022
- --tw-prose-td-borders: #e5e7eb;
2023
- --tw-prose-invert-body: #d1d5db;
2024
- --tw-prose-invert-headings: #fff;
2025
- --tw-prose-invert-lead: #9ca3af;
2026
- --tw-prose-invert-links: #fff;
2027
- --tw-prose-invert-bold: #fff;
2028
- --tw-prose-invert-counters: #9ca3af;
2029
- --tw-prose-invert-bullets: #4b5563;
2030
- --tw-prose-invert-hr: #374151;
2031
- --tw-prose-invert-quotes: #f3f4f6;
2032
- --tw-prose-invert-quote-borders: #374151;
2033
- --tw-prose-invert-captions: #9ca3af;
2034
- --tw-prose-invert-kbd: #fff;
2035
- --tw-prose-invert-kbd-shadows: 255 255 255;
2036
- --tw-prose-invert-code: #fff;
2037
- --tw-prose-invert-pre-code: #d1d5db;
2038
- --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);
2039
- --tw-prose-invert-th-borders: #4b5563;
2040
- --tw-prose-invert-td-borders: #374151;
2041
- max-width: none;
2042
- }
2043
- .chat-markdown :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))) {
2044
- text-decoration-line: none;
2045
- }
2046
- .chat-markdown :is(:where(a):not(:where([class~="not-prose"],[class~="not-prose"] *))):hover {
2047
- text-decoration-line: underline;
2048
- }
2049
- .chat-markdown {
702
+ @apply prose prose-sm prose-gray max-w-none prose-a:no-underline prose-a:hover:underline;
2050
703
  font-size: 1em;
2051
704
  }
705
+
2052
706
  /* override spacing */
2053
707
  .chat-markdown > * {
2054
708
  margin-top: 0.1em;
2055
709
  margin-bottom: 0.1em;
2056
710
  }
711
+
2057
712
  .message-bubble-assistant .chat-markdown {
2058
713
  --tw-prose-body: var(--message-assistant-text-color);
2059
714
  --tw-prose-headings: var(--message-assistant-text-color);
@@ -2074,6 +729,7 @@ textarea::-webkit-scrollbar-thumb:hover {
2074
729
  --tw-prose-th-borders: var(--message-assistant-text-color);
2075
730
  --tw-prose-td-borders: var(--message-assistant-text-color);
2076
731
  }
732
+
2077
733
  .message-bubble-user .chat-markdown {
2078
734
  --tw-prose-body: var(--message-user-text-color);
2079
735
  --tw-prose-headings: var(--message-user-text-color);
@@ -2094,6 +750,7 @@ textarea::-webkit-scrollbar-thumb:hover {
2094
750
  --tw-prose-th-borders: var(--message-user-text-color);
2095
751
  --tw-prose-td-borders: var(--message-user-text-color);
2096
752
  }
753
+
2097
754
  .message-bubble-system .chat-markdown {
2098
755
  --tw-prose-body: var(--message-system-text-color);
2099
756
  --tw-prose-headings: var(--message-system-text-color);
@@ -2114,118 +771,110 @@ textarea::-webkit-scrollbar-thumb:hover {
2114
771
  --tw-prose-th-borders: var(--message-system-text-color);
2115
772
  --tw-prose-td-borders: var(--message-system-text-color);
2116
773
  }
774
+
2117
775
  .message-bubble-user .chat-markdown pre {
2118
776
  border: 1px solid var(--code-border-user-color);
2119
777
  }
778
+
2120
779
  .message-bubble-assistant .chat-markdown pre {
2121
780
  border: 1px solid var(--code-border-assistant-color);
2122
781
  }
782
+
2123
783
  .loading:after {
2124
784
  content: ' .';
2125
785
  }
786
+
2126
787
  /* File Upload Button */
2127
788
  .file-attachment-button {
2128
- border-radius: 0.375rem;
2129
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
2130
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2131
- transition-duration: 200ms;
2132
- }
2133
- .file-attachment-button:disabled {
2134
- cursor: not-allowed;
2135
- opacity: 0.5;
2136
- }
2137
- .file-attachment-button {
789
+ @apply rounded-md transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed;
2138
790
  padding: 0.375em;
2139
791
  background-color: var(--file-attachment-button-bg-color);
2140
792
  color: var(--file-attachment-button-text-color);
2141
793
  }
794
+
2142
795
  .file-attachment-button svg {
2143
- width: 1.5em;
2144
- height: 1.5em;
796
+ @apply size-[1.5em];
2145
797
  }
798
+
2146
799
  .file-attachment-button:hover:not(:disabled) {
2147
800
  background-color: var(--file-attachment-button-bg-hover-color);
2148
801
  }
802
+
2149
803
  .file-attachment-button:disabled {
2150
804
  color: var(--file-attachment-button-text-disabled-color);
2151
805
  }
806
+
2152
807
  /* Selected Files Container */
2153
808
  .selected-files-container {
2154
809
  padding: 1em 1em 0.5em 1em;
2155
810
  background-color: var(--selected-files-bg-color);
2156
811
  border-top: 1px solid var(--selected-files-border-color);
2157
812
  }
813
+
2158
814
  /* Selected File Item */
2159
815
  .selected-file-item {
2160
- display: flex;
2161
- align-items: center;
2162
- justify-content: space-between;
816
+ @apply flex items-center justify-between;
2163
817
  background-color: var(--selected-file-bg-color);
2164
818
  border-radius: 0.375em;
2165
819
  padding: 0.25em 0.5em;
2166
820
  font-size: var(--selected-file-font-size);
2167
821
  color: var(--selected-file-name-color);
2168
822
  }
823
+
2169
824
  .selected-file-icon {
2170
- display: flex;
2171
- align-items: center;
2172
- justify-content: center;
825
+ @apply flex items-center justify-center;
2173
826
  }
827
+
2174
828
  .selected-file-icon svg {
2175
829
  width: var(--selected-file-icon-size);
2176
830
  height: var(--selected-file-icon-size);
2177
831
  }
832
+
2178
833
  .selected-file-size {
2179
834
  color: var(--selected-file-size-color);
2180
835
  }
836
+
2181
837
  .selected-file-error {
2182
838
  color: var(--error-text-color);
2183
839
  }
840
+
2184
841
  .selected-file-success-icon {
2185
- display: flex;
2186
- align-items: center;
2187
- justify-content: center;
842
+ @apply flex items-center justify-center;
2188
843
  color: var(--success-text-color);
2189
844
  width: var(--selected-file-icon-size);
2190
845
  height: var(--selected-file-icon-size);
2191
846
  }
847
+
2192
848
  .selected-file-remove-button {
2193
- font-weight: 700;
2194
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
2195
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
2196
- transition-duration: 200ms;
849
+ @apply font-bold transition-colors duration-200;
2197
850
  color: var(--selected-file-remove-icon-color);
2198
851
  padding: 0.375em;
2199
852
  }
853
+
2200
854
  .selected-file-remove-button svg {
2201
855
  width: var(--selected-file-icon-size);
2202
856
  height: var(--selected-file-icon-size);
2203
857
  }
858
+
2204
859
  .selected-file-remove-button:hover {
2205
860
  color: var(--selected-file-remove-icon-hover-color);
2206
861
  }
862
+
2207
863
  /* Message Attachments */
2208
864
  .message-attachments {
2209
- margin-top: 0.5em;
2210
- }
2211
- .message-attachments > :not([hidden]) ~ :not([hidden]) {
2212
- --tw-space-y-reverse: 0;
2213
- margin-top: calc(0.25em * calc(1 - var(--tw-space-y-reverse)));
2214
- margin-bottom: calc(0.25em * var(--tw-space-y-reverse));
2215
- }
2216
- .message-attachments {
865
+ @apply mt-[0.5em] space-y-[0.25em];
2217
866
  font-size: var(--chat-window-font-size-sm);
2218
867
  }
868
+
2219
869
  .message-attachment-icon {
2220
- display: flex;
2221
- align-items: center;
2222
- justify-content: center;
870
+ @apply flex items-center justify-center;
2223
871
  width: var(--message-attachment-icon-size);
2224
872
  height: var(--message-attachment-icon-size);
2225
873
  }
874
+
2226
875
  /* Update Send Button for Upload State */
2227
876
  .send-button-disabled {
2228
- cursor: not-allowed;
877
+ @apply cursor-not-allowed;
2229
878
  background-color: var(--send-button-bg-disabled-color);
2230
879
  color: var(--send-button-text-disabled-color);
2231
880
  }