@salesforcedevs/docs-components 0.0.1 → 0.0.2-edit

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 (83) hide show
  1. package/lwc.config.json +11 -2
  2. package/package.json +13 -12
  3. package/src/modules/doc/{amfReference/utils.ts → amfModelParser/amfModelParser.ts} +10 -5
  4. package/src/modules/doc/amfReference/amfReference.css +23 -3
  5. package/src/modules/doc/amfReference/amfReference.html +34 -21
  6. package/src/modules/doc/amfReference/amfReference.ts +225 -92
  7. package/src/modules/doc/amfReference/types.ts +3 -12
  8. package/src/modules/doc/amfTopic/amfTopic.css +20 -0
  9. package/src/modules/doc/amfTopic/amfTopic.ts +35 -18
  10. package/src/modules/doc/amfTopic/types.ts +15 -13
  11. package/src/modules/doc/amfTopic/utils.ts +12 -6
  12. package/src/modules/doc/breadcrumbItem/breadcrumbItem.ts +17 -10
  13. package/src/modules/doc/breadcrumbs/breadcrumbs.html +7 -9
  14. package/src/modules/doc/breadcrumbs/breadcrumbs.ts +30 -34
  15. package/src/modules/doc/chat/README.md +179 -0
  16. package/src/modules/doc/chat/chat.css +818 -0
  17. package/src/modules/doc/chat/chat.html +241 -0
  18. package/src/modules/doc/chat/chat.ts +586 -0
  19. package/src/modules/doc/componentPlayground/componentPlayground.css +22 -0
  20. package/src/modules/doc/componentPlayground/componentPlayground.html +20 -0
  21. package/src/modules/doc/componentPlayground/componentPlayground.ts +29 -0
  22. package/src/modules/doc/content/content.css +70 -76
  23. package/src/modules/doc/content/content.html +1 -0
  24. package/src/modules/doc/content/content.ts +24 -45
  25. package/src/modules/doc/contentCallout/contentCallout.css +10 -7
  26. package/src/modules/doc/contentCallout/contentCallout.html +11 -4
  27. package/src/modules/doc/contentCallout/contentCallout.ts +8 -1
  28. package/src/modules/doc/contentLayout/contentLayout.css +1 -98
  29. package/src/modules/doc/contentLayout/contentLayout.html +41 -19
  30. package/src/modules/doc/contentLayout/contentLayout.ts +298 -89
  31. package/src/modules/doc/doDont/doDont.css +47 -0
  32. package/src/modules/doc/doDont/doDont.html +27 -0
  33. package/src/modules/doc/doDont/doDont.ts +17 -0
  34. package/src/modules/doc/editFile/editFile.css +514 -0
  35. package/src/modules/doc/editFile/editFile.html +164 -0
  36. package/src/modules/doc/editFile/editFile.ts +213 -0
  37. package/src/modules/doc/header/header.css +65 -36
  38. package/src/modules/doc/header/header.html +41 -139
  39. package/src/modules/doc/header/header.ts +54 -76
  40. package/src/modules/doc/heading/heading.css +16 -37
  41. package/src/modules/doc/heading/heading.html +4 -4
  42. package/src/modules/doc/heading/heading.ts +12 -10
  43. package/src/modules/doc/headingAnchor/headingAnchor.css +2 -2
  44. package/src/modules/doc/headingAnchor/headingAnchor.ts +2 -2
  45. package/src/modules/doc/headingContent/headingContent.css +1 -1
  46. package/src/modules/doc/headingContent/headingContent.html +2 -2
  47. package/src/modules/doc/headingContent/headingContent.ts +2 -2
  48. package/src/modules/doc/lwcContentLayout/lwcContentLayout.css +1 -0
  49. package/src/modules/doc/lwcContentLayout/lwcContentLayout.html +68 -0
  50. package/src/modules/doc/lwcContentLayout/lwcContentLayout.ts +168 -0
  51. package/src/modules/doc/overview/overview.css +40 -0
  52. package/src/modules/doc/overview/overview.html +34 -0
  53. package/src/modules/doc/overview/overview.ts +12 -0
  54. package/src/modules/doc/phase/phase.css +18 -3
  55. package/src/modules/doc/phase/phase.html +12 -2
  56. package/src/modules/doc/phase/phase.ts +44 -8
  57. package/src/modules/doc/specificationContent/specificationContent.css +36 -0
  58. package/src/modules/doc/specificationContent/specificationContent.html +171 -0
  59. package/src/modules/doc/specificationContent/specificationContent.ts +127 -0
  60. package/src/modules/doc/sprigSurvey/sprigSurvey.html +20 -0
  61. package/src/modules/doc/sprigSurvey/sprigSurvey.scoped.css +16 -0
  62. package/src/modules/doc/sprigSurvey/sprigSurvey.ts +16 -0
  63. package/src/modules/doc/toc/toc.html +1 -3
  64. package/src/modules/doc/toc/toc.ts +1 -1
  65. package/src/modules/doc/toolbar/toolbar.ts +6 -6
  66. package/src/modules/doc/versionPicker/versionPicker.css +64 -0
  67. package/src/modules/doc/versionPicker/versionPicker.html +38 -0
  68. package/src/modules/doc/versionPicker/versionPicker.ts +65 -0
  69. package/src/modules/doc/xmlContent/types.ts +9 -3
  70. package/src/modules/doc/xmlContent/utils.ts +3 -1
  71. package/src/modules/doc/xmlContent/xmlContent.css +26 -4
  72. package/src/modules/doc/xmlContent/xmlContent.html +29 -17
  73. package/src/modules/doc/xmlContent/xmlContent.ts +212 -79
  74. package/src/modules/docHelpers/amfStyle/amfStyle.css +6 -6
  75. package/src/modules/docHelpers/contentLayoutStyle/contentLayoutStyle.css +131 -0
  76. package/src/modules/docHelpers/imgStyle/imgStyle.css +59 -0
  77. package/src/modules/docHelpers/status/status.css +1 -1
  78. package/src/modules/docUtils/{SearchSyncer/SearchSyncer.ts → searchSyncer/searchSyncer.ts} +1 -0
  79. package/src/modules/docUtils/utils/__mocks__/coveo.analytics.ts +16 -0
  80. package/src/modules/docUtils/utils/coveo.analytics.d.ts +10 -0
  81. package/src/modules/docUtils/utils/utils.ts +32 -0
  82. package/src/modules/docBaseElements/lightningElementWithState/lightningElementWithState.ts +0 -93
  83. package/src/modules/docHelpers/phaseContentLayout/phaseContentLayout.css +0 -39
@@ -0,0 +1,818 @@
1
+ /* Fixed positioned chat with full viewport height */
2
+ :host {
3
+ position: fixed;
4
+ top: 0;
5
+ right: 0;
6
+ height: 100vh;
7
+ z-index: 100000;
8
+ font-family: "Salesforce Sans", -apple-system, BlinkMacSystemFont,
9
+ "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue",
10
+ sans-serif;
11
+ }
12
+
13
+ /* Apply content shift to main page content when chat is open */
14
+ body.chat-open .content {
15
+ transform: translateX(-400px);
16
+ transition: transform 0.3s ease-in-out;
17
+ }
18
+
19
+ body.chat-closed .content {
20
+ transform: translateX(0);
21
+ transition: transform 0.3s ease-in-out;
22
+ }
23
+
24
+ /* Also shift the global header if it exists */
25
+ body.chat-open dx-global-header,
26
+ body.chat-open .global-header {
27
+ transform: translateX(-400px);
28
+ transition: transform 0.3s ease-in-out;
29
+ }
30
+
31
+ body.chat-closed dx-global-header,
32
+ body.chat-closed .global-header {
33
+ transform: translateX(0);
34
+ transition: transform 0.3s ease-in-out;
35
+ }
36
+
37
+ /* Floating trigger button */
38
+ .chat-trigger-button {
39
+ position: fixed;
40
+ bottom: 20px;
41
+ right: 20px;
42
+ background: transparent;
43
+ color: white;
44
+ border: none;
45
+ cursor: pointer;
46
+ z-index: 1001;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
51
+ animation: pulse 3s infinite;
52
+ padding: 0;
53
+ }
54
+
55
+ /* Tooltip styling */
56
+ .chat-trigger-button::before {
57
+ content: attr(data-tooltip);
58
+ position: absolute;
59
+ right: 100%;
60
+ top: 50%;
61
+ transform: translateY(-50%);
62
+ background: linear-gradient(135deg, #0176d3 0%, #005fb2 100%);
63
+ color: white;
64
+ padding: 12px 16px;
65
+ border-radius: 12px;
66
+ font-size: 14px;
67
+ font-weight: 500;
68
+ white-space: nowrap;
69
+ opacity: 0;
70
+ visibility: hidden;
71
+ margin-right: 16px;
72
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
73
+ box-shadow: 0 8px 24px rgb(1 118 211 / 25%), 0 2px 8px rgb(1 118 211 / 15%);
74
+ backdrop-filter: blur(10px);
75
+ z-index: 1002;
76
+ pointer-events: none;
77
+ letter-spacing: 0.02em;
78
+ }
79
+
80
+ /* Tooltip arrow */
81
+ .chat-trigger-button::after {
82
+ content: "";
83
+ position: absolute;
84
+ right: 100%;
85
+ top: 50%;
86
+ transform: translateY(-50%);
87
+ margin-right: 8px;
88
+ width: 0;
89
+ height: 0;
90
+ border-left: 8px solid #0176d3;
91
+ border-top: 8px solid transparent;
92
+ border-bottom: 8px solid transparent;
93
+ opacity: 0;
94
+ visibility: hidden;
95
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
96
+ z-index: 1002;
97
+ pointer-events: none;
98
+ }
99
+
100
+ /* Show tooltip on hover */
101
+ .chat-trigger-button:hover::before,
102
+ .chat-trigger-button:hover::after {
103
+ opacity: 1;
104
+ visibility: visible;
105
+ transform: translateY(-50%) translateX(-4px);
106
+ }
107
+
108
+ .chat-trigger-button:hover .chat-gif {
109
+ transform: scale(1.1);
110
+ }
111
+
112
+ .chat-trigger-button:active .chat-gif {
113
+ transform: scale(0.95);
114
+ }
115
+
116
+ .chat-gif {
117
+ width: 155px;
118
+ height: 218px;
119
+ object-fit: cover;
120
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
121
+ }
122
+
123
+ @keyframes pulse {
124
+ 0% {
125
+ transform: scale(1);
126
+ }
127
+
128
+ 70% {
129
+ transform: scale(1.05);
130
+ }
131
+
132
+ 100% {
133
+ transform: scale(1);
134
+ }
135
+ }
136
+
137
+ /* Chat container */
138
+ .chat-container {
139
+ height: 100vh;
140
+ width: 700px;
141
+ background-color: #fff;
142
+ box-shadow: -8px 0 32px rgb(0 0 0 / 12%), -2px 0 8px rgb(0 0 0 / 8%);
143
+ transform: translateX(100%);
144
+ transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
145
+ display: flex;
146
+ flex-direction: column;
147
+ border-left: 1px solid #d8dde6;
148
+ backdrop-filter: blur(20px);
149
+ }
150
+
151
+ .chat-container_open {
152
+ transform: translateX(0);
153
+ }
154
+
155
+ .chat-container_disabled {
156
+ opacity: 0.6;
157
+ pointer-events: none;
158
+ }
159
+
160
+ .chat-header {
161
+ background: linear-gradient(135deg, #0176d3 0%, #005fb2 100%);
162
+ padding: 18px 24px;
163
+ border-bottom: 1px solid rgb(1 118 211 / 20%);
164
+ display: flex;
165
+ align-items: center;
166
+ justify-content: space-between;
167
+ flex-shrink: 0;
168
+ backdrop-filter: blur(10px);
169
+ position: relative;
170
+ }
171
+
172
+ .chat-header::before {
173
+ content: "";
174
+ position: absolute;
175
+ top: 0;
176
+ left: 0;
177
+ right: 0;
178
+ bottom: 0;
179
+ background: linear-gradient(
180
+ 135deg,
181
+ rgb(255 255 255 / 5%) 0%,
182
+ rgb(255 255 255 / 1%) 100%
183
+ );
184
+ pointer-events: none;
185
+ }
186
+
187
+ .chat-header-actions {
188
+ display: flex;
189
+ align-items: center;
190
+ gap: 8px;
191
+ }
192
+
193
+ .chat-close-button,
194
+ .chat-clear-button {
195
+ width: 36px;
196
+ height: 36px;
197
+ border: none;
198
+ background: rgb(255 255 255 / 15%);
199
+ cursor: pointer;
200
+ display: flex;
201
+ align-items: center;
202
+ justify-content: center;
203
+ border-radius: 8px;
204
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
205
+ color: white;
206
+ position: relative;
207
+ z-index: 1;
208
+ }
209
+
210
+ .chat-close-button:hover,
211
+ .chat-clear-button:hover {
212
+ background: rgb(255 255 255 / 25%);
213
+ transform: scale(1.05);
214
+ color: white;
215
+ }
216
+
217
+ .chat-clear-button:hover {
218
+ background: rgb(255 82 82 / 20%);
219
+ color: #ff6b6b;
220
+ }
221
+
222
+ .close-icon,
223
+ .clear-icon {
224
+ width: 18px;
225
+ height: 18px;
226
+ }
227
+
228
+ .chat-title {
229
+ margin: 0;
230
+ font-size: 20px;
231
+ font-weight: 700;
232
+ color: white;
233
+ flex: 1;
234
+ position: relative;
235
+ z-index: 1;
236
+ letter-spacing: -0.02em;
237
+ }
238
+
239
+ .chat-messages {
240
+ flex: 1;
241
+ overflow-y: auto;
242
+ padding: 24px 20px;
243
+ scroll-behavior: smooth;
244
+ min-height: 0;
245
+ background: linear-gradient(180deg, #fafbfc 0%, #f7f9fb 100%);
246
+ }
247
+
248
+ .message-wrapper {
249
+ margin-bottom: 20px;
250
+ display: flex;
251
+ align-items: flex-start;
252
+ animation: message-slide-in 0.4s cubic-bezier(0.4, 0, 0.2, 1);
253
+ gap: 12px;
254
+ }
255
+
256
+ .message-wrapper[data-sender="user"] {
257
+ justify-content: flex-end;
258
+ }
259
+
260
+ .message-wrapper[data-sender="assistant"] {
261
+ justify-content: flex-start;
262
+ }
263
+
264
+ /* Avatar styling */
265
+ .message-avatar-wrapper {
266
+ flex-shrink: 0;
267
+ display: flex;
268
+ align-items: flex-start;
269
+ margin-top: 2px;
270
+ }
271
+
272
+ /* Hide avatar for user messages */
273
+ .message-wrapper[data-sender="user"] .message-avatar-wrapper {
274
+ display: none;
275
+ }
276
+
277
+ /* Show avatar for assistant messages */
278
+ .message-wrapper[data-sender="assistant"] .message-avatar-wrapper {
279
+ display: flex;
280
+ }
281
+
282
+ .avatar-container {
283
+ width: 36px;
284
+ height: 36px;
285
+ background: linear-gradient(180deg, #fafbfc 0%, #f7f9fb 100%);
286
+ border-radius: 50%;
287
+ display: flex;
288
+ align-items: center;
289
+ justify-content: center;
290
+ box-shadow: 0 2px 8px rgb(0 0 0 / 10%);
291
+ position: relative;
292
+ overflow: hidden;
293
+ animation: thinking-avatar-pulse 3s ease-in-out infinite;
294
+ }
295
+
296
+ .avatar-container::before {
297
+ content: "";
298
+ position: absolute;
299
+ inset: 0;
300
+ background: linear-gradient(
301
+ 135deg,
302
+ rgb(255 255 255 / 20%) 0%,
303
+ rgb(255 255 255 / 10%) 100%
304
+ );
305
+ border-radius: 50%;
306
+ }
307
+
308
+ .avatar-icon {
309
+ width: 32px;
310
+ height: 32px;
311
+ color: white;
312
+ position: relative;
313
+ z-index: 1;
314
+ filter: drop-shadow(0 1px 2px rgb(0 0 0 / 15%));
315
+ }
316
+
317
+ /* Thinking Bot SVG Animations */
318
+ .thinking-body {
319
+ animation: thinking-breathe 2s ease-in-out infinite;
320
+ transform-origin: center;
321
+ }
322
+
323
+ .thinking-smile {
324
+ animation: thinking-smile-animation 3s ease-in-out infinite;
325
+ }
326
+
327
+ .thinking-eye {
328
+ animation: think-blink 6s infinite;
329
+ transform-origin: center;
330
+ }
331
+
332
+ @keyframes thinking-avatar-pulse {
333
+ 0%,
334
+ 100% {
335
+ transform: scale(1);
336
+ box-shadow: 0 2px 8px rgb(0 0 0 / 10%);
337
+ }
338
+
339
+ 50% {
340
+ transform: scale(1.08);
341
+ box-shadow: 0 4px 16px rgb(0 0 0 / 20%);
342
+ }
343
+ }
344
+
345
+ @keyframes thinking-breathe {
346
+ 0%,
347
+ 100% {
348
+ transform: scale(1);
349
+ }
350
+
351
+ 50% {
352
+ transform: scale(1.05);
353
+ }
354
+ }
355
+
356
+ @keyframes thinking-smile-animation {
357
+ 0%,
358
+ 100% {
359
+ transform: translateY(0);
360
+ }
361
+
362
+ 50% {
363
+ transform: translateY(-2px);
364
+ }
365
+ }
366
+
367
+ @keyframes think-blink {
368
+ 0%,
369
+ 85%,
370
+ 100% {
371
+ transform: scaleY(1);
372
+ }
373
+
374
+ 90% {
375
+ transform: scaleY(0.6);
376
+ }
377
+
378
+ 92% {
379
+ transform: scaleY(0.2);
380
+ }
381
+
382
+ 94% {
383
+ transform: scaleY(0.6);
384
+ }
385
+
386
+ 96% {
387
+ transform: scaleY(1);
388
+ }
389
+ }
390
+
391
+ .message-content {
392
+ max-width: 80%;
393
+ display: flex;
394
+ flex-direction: column;
395
+ align-items: flex-start;
396
+ }
397
+
398
+ .message-wrapper[data-sender="user"] .message-content {
399
+ align-items: flex-end;
400
+ }
401
+
402
+ .message-bubble {
403
+ padding: 14px 18px;
404
+ border-radius: 20px;
405
+ word-wrap: break-word;
406
+ max-width: 100%;
407
+ position: relative;
408
+ backdrop-filter: blur(10px);
409
+ box-shadow: 0 2px 8px rgb(0 0 0 / 8%);
410
+ }
411
+
412
+ .message-wrapper[data-sender="user"] .message-bubble {
413
+ background: linear-gradient(135deg, #0176d3 0%, #005fb2 100%);
414
+ color: white;
415
+ border-bottom-right-radius: 8px;
416
+ }
417
+
418
+ .message-wrapper[data-sender="assistant"] .message-bubble {
419
+ background: white;
420
+ color: #181818;
421
+ border: 1px solid #e5e7ea;
422
+ border-bottom-left-radius: 8px;
423
+ }
424
+
425
+ .message-text {
426
+ margin: 0;
427
+ line-height: 1.5;
428
+ font-size: 15px;
429
+ font-weight: 400;
430
+ }
431
+
432
+ /* HTML content styling for rich messages */
433
+ .message-text .chat-link {
434
+ color: #0176d3;
435
+ text-decoration: none;
436
+ border-bottom: 1px solid transparent;
437
+ transition: all 0.2s ease;
438
+ }
439
+
440
+ .message-text .chat-link:hover {
441
+ color: #005fb2;
442
+ border-bottom-color: #005fb2;
443
+ }
444
+
445
+ .message-text .chat-list {
446
+ margin: 12px 0;
447
+ padding-left: 20px;
448
+ counter-reset: none;
449
+ }
450
+
451
+ .message-text .chat-list li {
452
+ margin: 12px 0;
453
+ line-height: 1.6;
454
+ font-weight: 500;
455
+ }
456
+
457
+ .message-text .chat-description {
458
+ font-weight: 400;
459
+ color: #666;
460
+ font-size: 14px;
461
+ line-height: 1.5;
462
+ margin-top: 4px;
463
+ display: block;
464
+ }
465
+
466
+ .message-text strong {
467
+ font-weight: 600;
468
+ color: #181818;
469
+ }
470
+
471
+ .message-text em {
472
+ font-style: italic;
473
+ color: #555;
474
+ }
475
+
476
+ /* Style for line breaks in HTML content */
477
+ .message-text br {
478
+ margin: 4px 0;
479
+ }
480
+
481
+ /* Ensure proper spacing for HTML content */
482
+ .message-text p {
483
+ margin: 8px 0;
484
+ }
485
+
486
+ .message-text p:first-child {
487
+ margin-top: 0;
488
+ }
489
+
490
+ .message-text p:last-child {
491
+ margin-bottom: 0;
492
+ }
493
+
494
+ .message-timestamp {
495
+ font-size: 12px;
496
+ color: #706e6b;
497
+ margin-top: 6px;
498
+ display: flex;
499
+ align-items: center;
500
+ gap: 4px;
501
+ font-weight: 400;
502
+ }
503
+
504
+ .message-sender {
505
+ font-weight: 500;
506
+ text-transform: capitalize;
507
+ }
508
+
509
+ .message-time {
510
+ font-weight: 400;
511
+ }
512
+
513
+ .typing-indicator {
514
+ display: flex;
515
+ align-items: center;
516
+ gap: 4px;
517
+ padding: 4px 0;
518
+ }
519
+
520
+ .typing-dot {
521
+ width: 8px;
522
+ height: 8px;
523
+ border-radius: 50%;
524
+ background-color: #0176d3;
525
+ animation: typing 1.4s infinite ease-in-out both;
526
+ }
527
+
528
+ .typing-dot:nth-child(1) {
529
+ animation-delay: -0.32s;
530
+ }
531
+
532
+ .typing-dot:nth-child(2) {
533
+ animation-delay: -0.16s;
534
+ }
535
+
536
+ @keyframes typing {
537
+ 0%,
538
+ 80%,
539
+ 100% {
540
+ transform: scale(0);
541
+ opacity: 0.5;
542
+ }
543
+
544
+ 40% {
545
+ transform: scale(1);
546
+ opacity: 1;
547
+ }
548
+ }
549
+
550
+ @keyframes message-slide-in {
551
+ from {
552
+ opacity: 0;
553
+ transform: translateY(12px);
554
+ }
555
+
556
+ to {
557
+ opacity: 1;
558
+ transform: translateY(0);
559
+ }
560
+ }
561
+
562
+ .chat-input-area {
563
+ border-top: 1px solid #e5e7ea;
564
+ padding: 20px 24px;
565
+ background: white;
566
+ flex-shrink: 0;
567
+ backdrop-filter: blur(20px);
568
+ }
569
+
570
+ .chat-input-container {
571
+ display: flex;
572
+ align-items: center;
573
+ gap: 8px;
574
+ }
575
+
576
+ .chat-input {
577
+ flex: 1;
578
+ padding: 14px 18px;
579
+ border: 2px solid #d8dde6;
580
+ border-radius: 24px;
581
+ font-size: 15px;
582
+ outline: none;
583
+ background-color: #fafbfc;
584
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
585
+ font-family: inherit;
586
+ line-height: 1.4;
587
+ }
588
+
589
+ .chat-input:focus {
590
+ border-color: #0176d3;
591
+ background-color: #fff;
592
+ box-shadow: 0 0 0 3px rgb(1 118 211 / 10%);
593
+ transform: translateY(-1px);
594
+ }
595
+
596
+ .chat-input:disabled {
597
+ opacity: 0.6;
598
+ cursor: not-allowed;
599
+ }
600
+
601
+ .chat-send-button {
602
+ width: 44px;
603
+ height: 44px;
604
+ border: none;
605
+ border-radius: 50%;
606
+ background: linear-gradient(135deg, #0176d3 0%, #005fb2 100%);
607
+ color: white;
608
+ cursor: pointer;
609
+ display: flex;
610
+ align-items: center;
611
+ justify-content: center;
612
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
613
+ box-shadow: 0 4px 12px rgb(1 118 211 / 25%);
614
+ margin-left: 12px;
615
+ }
616
+
617
+ .chat-send-button:hover:not(:disabled) {
618
+ background: linear-gradient(135deg, #005fb2 0%, #003e73 100%);
619
+ transform: scale(1.05);
620
+ box-shadow: 0 6px 16px rgb(1 118 211 / 35%);
621
+ }
622
+
623
+ .chat-send-button:disabled {
624
+ background: #d8dde6;
625
+ cursor: not-allowed;
626
+ transform: none;
627
+ box-shadow: none;
628
+ }
629
+
630
+ .send-icon {
631
+ width: 18px;
632
+ height: 18px;
633
+ }
634
+
635
+ /* Responsive design */
636
+ @media (max-width: 768px) {
637
+ .chat-trigger-button {
638
+ bottom: 16px;
639
+ right: 16px;
640
+ }
641
+
642
+ .chat-gif {
643
+ width: 56px;
644
+ height: 56px;
645
+ }
646
+
647
+ /* Adjust tooltip for mobile */
648
+ .chat-trigger-button::before {
649
+ font-size: 13px;
650
+ padding: 10px 14px;
651
+ margin-right: 12px;
652
+ }
653
+
654
+ .chat-trigger-button::after {
655
+ margin-right: 6px;
656
+ border-left-width: 6px;
657
+ border-top-width: 6px;
658
+ border-bottom-width: 6px;
659
+ }
660
+
661
+ .chat-container {
662
+ width: 100%;
663
+ right: 0;
664
+ transform: translateX(100%);
665
+ }
666
+
667
+ .chat-container_open {
668
+ transform: translateX(0);
669
+ }
670
+
671
+ .chat-header {
672
+ padding: 16px 20px;
673
+ }
674
+
675
+ .chat-title {
676
+ font-size: 18px;
677
+ }
678
+
679
+ .chat-messages {
680
+ padding: 20px 16px;
681
+ }
682
+
683
+ .chat-input-area {
684
+ padding: 16px 20px;
685
+ }
686
+
687
+ .message-content {
688
+ max-width: 85%;
689
+ }
690
+
691
+ .avatar-container {
692
+ width: 32px;
693
+ height: 32px;
694
+ }
695
+
696
+ .avatar-icon {
697
+ width: 28px;
698
+ height: 28px;
699
+ }
700
+
701
+ .message-wrapper {
702
+ gap: 10px;
703
+ }
704
+ }
705
+
706
+ @media (max-width: 480px) {
707
+ .chat-trigger-button {
708
+ bottom: 10px;
709
+ right: 10px;
710
+ }
711
+
712
+ .chat-gif {
713
+ width: 48px;
714
+ height: 48px;
715
+ }
716
+
717
+ /* Smaller tooltip for small screens */
718
+ .chat-trigger-button::before {
719
+ font-size: 12px;
720
+ padding: 8px 12px;
721
+ margin-right: 10px;
722
+ border-radius: 8px;
723
+ }
724
+
725
+ .chat-trigger-button::after {
726
+ margin-right: 4px;
727
+ border-left-width: 5px;
728
+ border-top-width: 5px;
729
+ border-bottom-width: 5px;
730
+ }
731
+
732
+ .chat-container {
733
+ width: 100%;
734
+ }
735
+
736
+ .chat-header {
737
+ padding: 12px;
738
+ }
739
+
740
+ .chat-messages {
741
+ padding: 12px;
742
+ }
743
+
744
+ .chat-input-area {
745
+ padding: 12px;
746
+ }
747
+
748
+ .avatar-container {
749
+ width: 28px;
750
+ height: 28px;
751
+ }
752
+
753
+ .avatar-icon {
754
+ width: 24px;
755
+ height: 24px;
756
+ }
757
+
758
+ .message-wrapper {
759
+ gap: 8px;
760
+ margin-bottom: 16px;
761
+ }
762
+ }
763
+
764
+ /* Accessibility improvements */
765
+ @media (prefers-reduced-motion: reduce) {
766
+ .chat-trigger-button {
767
+ animation: none;
768
+ }
769
+
770
+ .typing-dot {
771
+ animation: none;
772
+ }
773
+
774
+ .chat-messages {
775
+ scroll-behavior: auto;
776
+ }
777
+
778
+ .avatar-container {
779
+ animation: none;
780
+ }
781
+
782
+ /* Disable all thinking bot animations for reduced motion users */
783
+ .thinking-body {
784
+ animation: none !important;
785
+ }
786
+
787
+ .thinking-smile {
788
+ animation: none !important;
789
+ }
790
+
791
+ .thinking-eye {
792
+ animation: none !important;
793
+ }
794
+
795
+ /* Disable tooltip animations for reduced motion users */
796
+ .chat-trigger-button::before,
797
+ .chat-trigger-button::after {
798
+ transition: none;
799
+ }
800
+ }
801
+
802
+ /* High contrast mode support */
803
+ @media (prefers-contrast: high) {
804
+ .chat-container {
805
+ border: 2px solid #000;
806
+ }
807
+
808
+ .message-wrapper[data-sender="user"] .message-bubble {
809
+ background-color: #000;
810
+ color: #fff;
811
+ }
812
+
813
+ .message-wrapper[data-sender="assistant"] .message-bubble {
814
+ background-color: #fff;
815
+ color: #000;
816
+ border: 1px solid #000;
817
+ }
818
+ }