@cnt-dev/chat-ui 0.1.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 (55) hide show
  1. package/AGENTS.md +202 -0
  2. package/LICENSE +21 -0
  3. package/README.md +303 -0
  4. package/index.d.ts +23 -0
  5. package/package.json +41 -0
  6. package/resources/chatui/.library +14 -0
  7. package/resources/chatui/ChatBox-dbg.js +1099 -0
  8. package/resources/chatui/ChatBox-dbg.js.map +1 -0
  9. package/resources/chatui/ChatBox.d.ts +308 -0
  10. package/resources/chatui/ChatBox.d.ts.map +1 -0
  11. package/resources/chatui/ChatBox.gen.d.ts +545 -0
  12. package/resources/chatui/ChatBox.js +5 -0
  13. package/resources/chatui/ChatBox.js.map +1 -0
  14. package/resources/chatui/ChatBox.ts +1153 -0
  15. package/resources/chatui/library-dbg.js +28 -0
  16. package/resources/chatui/library-dbg.js.map +1 -0
  17. package/resources/chatui/library-preload.js +17 -0
  18. package/resources/chatui/library-preload.js.map +1 -0
  19. package/resources/chatui/library.d.ts +3 -0
  20. package/resources/chatui/library.d.ts.map +1 -0
  21. package/resources/chatui/library.js +5 -0
  22. package/resources/chatui/library.js.map +1 -0
  23. package/resources/chatui/library.ts +30 -0
  24. package/resources/chatui/manifest.json +52 -0
  25. package/resources/chatui/markdown-dbg.js +116 -0
  26. package/resources/chatui/markdown-dbg.js.map +1 -0
  27. package/resources/chatui/markdown.d.ts +21 -0
  28. package/resources/chatui/markdown.d.ts.map +1 -0
  29. package/resources/chatui/markdown.js +5 -0
  30. package/resources/chatui/markdown.js.map +1 -0
  31. package/resources/chatui/markdown.ts +140 -0
  32. package/resources/chatui/messagebundle.properties +20 -0
  33. package/resources/chatui/messagebundle_en.properties +20 -0
  34. package/resources/chatui/themes/base/ChatBox.less +702 -0
  35. package/resources/chatui/themes/base/library-RTL.css +3 -0
  36. package/resources/chatui/themes/base/library-parameters.json +1 -0
  37. package/resources/chatui/themes/base/library.css +3 -0
  38. package/resources/chatui/themes/base/library.source.less +4 -0
  39. package/resources/chatui/themes/sap_fiori_3/library-RTL.css +3 -0
  40. package/resources/chatui/themes/sap_fiori_3/library-parameters.json +1 -0
  41. package/resources/chatui/themes/sap_fiori_3/library.css +3 -0
  42. package/resources/chatui/themes/sap_fiori_3/library.source.less +3 -0
  43. package/resources/chatui/themes/sap_fiori_3_dark/library-RTL.css +3 -0
  44. package/resources/chatui/themes/sap_fiori_3_dark/library-parameters.json +1 -0
  45. package/resources/chatui/themes/sap_fiori_3_dark/library.css +3 -0
  46. package/resources/chatui/themes/sap_fiori_3_dark/library.source.less +3 -0
  47. package/resources/chatui/themes/sap_fiori_3_hcb/library-RTL.css +3 -0
  48. package/resources/chatui/themes/sap_fiori_3_hcb/library-parameters.json +1 -0
  49. package/resources/chatui/themes/sap_fiori_3_hcb/library.css +3 -0
  50. package/resources/chatui/themes/sap_fiori_3_hcb/library.source.less +3 -0
  51. package/resources/chatui/themes/sap_fiori_3_hcw/library-RTL.css +3 -0
  52. package/resources/chatui/themes/sap_fiori_3_hcw/library-parameters.json +1 -0
  53. package/resources/chatui/themes/sap_fiori_3_hcw/library.css +3 -0
  54. package/resources/chatui/themes/sap_fiori_3_hcw/library.source.less +3 -0
  55. package/ui5.yaml +15 -0
@@ -0,0 +1,702 @@
1
+ /* Theme Parameter Toolbox: https://sdk.openui5.org/test-resources/sap/m/demokit/theming/webapp/index.html */
2
+
3
+ .cnetChatBox {
4
+ display: flex;
5
+ flex-direction: row;
6
+ box-sizing: border-box;
7
+ position: relative;
8
+ min-width: 32rem;
9
+ min-height: 24rem;
10
+ background-color: @sapUiGroupContentBackground;
11
+ color: @sapUiBaseText;
12
+ border: 1px solid @sapUiGroupContentBorderColor;
13
+ border-radius: 0.5rem;
14
+ font-family: @sapUiFontFamily;
15
+ font-size: @sapMFontMediumSize;
16
+ overflow: hidden;
17
+ }
18
+
19
+ .cnetChatBox-sidebar {
20
+ flex: 0 0 16rem;
21
+ display: flex;
22
+ flex-direction: column;
23
+ min-height: 0;
24
+ background-color: @sapUiListBackground;
25
+ border-right: 1px solid @sapUiGroupContentBorderColor;
26
+ }
27
+
28
+ .cnetChatBox-sidebar-header {
29
+ flex: 0 0 auto;
30
+ padding: 0.75rem 1rem 0.5rem;
31
+ border-bottom: 1px solid @sapUiGroupContentBorderColor;
32
+ }
33
+
34
+ .cnetChatBox-sidebar-title {
35
+ font-size: 0.75rem;
36
+ font-weight: 600;
37
+ text-transform: uppercase;
38
+ letter-spacing: 0.04em;
39
+ color: @sapUiContentLabelColor;
40
+ }
41
+
42
+ .cnetChatBox-conversations {
43
+ flex: 1 1 auto;
44
+ overflow-y: auto;
45
+ padding: 0.4rem;
46
+ display: flex;
47
+ flex-direction: column;
48
+ gap: 0.25rem;
49
+ }
50
+
51
+ .cnetChatBox-conversations-empty {
52
+ padding: 1rem 0.5rem;
53
+ color: @sapUiContentLabelColor;
54
+ font-size: 0.85rem;
55
+ font-style: italic;
56
+ text-align: center;
57
+ }
58
+
59
+ .cnetChatBox-conversation {
60
+ position: relative;
61
+ display: flex;
62
+ align-items: flex-start;
63
+ gap: 0.35rem;
64
+ padding: 0.5rem 0.6rem;
65
+ border: 1px solid transparent;
66
+ border-radius: 0.4rem;
67
+ cursor: pointer;
68
+ transition: background-color 0.15s ease, border-color 0.15s ease;
69
+ outline: none;
70
+ }
71
+
72
+ .cnetChatBox-conversation:hover,
73
+ .cnetChatBox-conversation:focus-visible {
74
+ background-color: @sapUiListHoverBackground;
75
+ }
76
+
77
+ .cnetChatBox-conversation--active {
78
+ background-color: @sapUiListSelectionBackgroundColor;
79
+ border-color: @sapUiListSelectionBorderColor;
80
+ }
81
+
82
+ .cnetChatBox-conversation--active:hover {
83
+ background-color: @sapUiListSelectionBackgroundColor;
84
+ }
85
+
86
+ .cnetChatBox-conversation-body {
87
+ flex: 1 1 auto;
88
+ min-width: 0;
89
+ display: flex;
90
+ flex-direction: column;
91
+ gap: 0.1rem;
92
+ }
93
+
94
+ .cnetChatBox-conversation-title {
95
+ font-size: 0.85rem;
96
+ font-weight: 600;
97
+ color: @sapUiBaseText;
98
+ white-space: nowrap;
99
+ overflow: hidden;
100
+ text-overflow: ellipsis;
101
+ }
102
+
103
+ .cnetChatBox-conversation-snippet {
104
+ font-size: 0.75rem;
105
+ color: @sapUiContentLabelColor;
106
+ white-space: nowrap;
107
+ overflow: hidden;
108
+ text-overflow: ellipsis;
109
+ }
110
+
111
+ .cnetChatBox-conversation-time {
112
+ font-size: 0.7rem;
113
+ color: @sapUiContentLabelColor;
114
+ margin-top: 0.1rem;
115
+ }
116
+
117
+ .cnetChatBox-conversation-remove {
118
+ flex: 0 0 auto;
119
+ background: transparent;
120
+ border: none;
121
+ color: @sapUiContentLabelColor;
122
+ cursor: pointer;
123
+ font-size: 1rem;
124
+ line-height: 1;
125
+ padding: 0.1rem 0.35rem;
126
+ border-radius: 0.25rem;
127
+ opacity: 0;
128
+ transition: opacity 0.15s ease, background-color 0.15s ease;
129
+ }
130
+
131
+ .cnetChatBox-conversation:hover .cnetChatBox-conversation-remove,
132
+ .cnetChatBox-conversation:focus-within .cnetChatBox-conversation-remove,
133
+ .cnetChatBox-conversation--active .cnetChatBox-conversation-remove {
134
+ opacity: 1;
135
+ }
136
+
137
+ .cnetChatBox-conversation-remove:hover,
138
+ .cnetChatBox-conversation-remove:focus-visible {
139
+ background-color: @sapUiButtonHoverBackground;
140
+ color: @sapUiButtonTextColor;
141
+ outline: none;
142
+ }
143
+
144
+ .cnetChatBox-main {
145
+ flex: 1 1 auto;
146
+ min-width: 0;
147
+ display: flex;
148
+ flex-direction: column;
149
+ }
150
+
151
+ .cnetChatBox-header {
152
+ flex: 0 0 auto;
153
+ display: flex;
154
+ align-items: center;
155
+ gap: 0.75rem;
156
+ padding: 0.5rem 0.75rem;
157
+ border-bottom: 1px solid @sapUiGroupContentBorderColor;
158
+ background-color: @sapUiListBackground;
159
+ }
160
+
161
+ .cnetChatBox-header-title {
162
+ flex: 1 1 auto;
163
+ min-width: 0;
164
+ font-size: 0.95rem;
165
+ font-weight: 600;
166
+ color: @sapUiBaseText;
167
+ white-space: nowrap;
168
+ overflow: hidden;
169
+ text-overflow: ellipsis;
170
+ }
171
+
172
+ .cnetChatBox-newChatButton {
173
+ flex: 0 0 auto;
174
+ display: inline-flex;
175
+ align-items: center;
176
+ gap: 0.4rem;
177
+ padding: 0.3rem 0.75rem;
178
+ background-color: @sapUiButtonEmphasizedBackground;
179
+ color: @sapUiButtonEmphasizedTextColor;
180
+ border: none;
181
+ border-radius: 0.4rem;
182
+ cursor: pointer;
183
+ font-family: inherit;
184
+ font-size: 0.85rem;
185
+ line-height: 1.2;
186
+ transition: background-color 0.15s ease;
187
+ }
188
+
189
+ .cnetChatBox-newChatButton:hover:not(:disabled) {
190
+ background-color: @sapUiButtonEmphasizedHoverBackground;
191
+ }
192
+
193
+ .cnetChatBox-newChatButton:focus-visible {
194
+ outline: none;
195
+ box-shadow: 0 0 0 2px @sapUiFieldFocusBorderColor;
196
+ }
197
+
198
+ .cnetChatBox-newChatButton:disabled {
199
+ cursor: not-allowed;
200
+ opacity: 0.5;
201
+ }
202
+
203
+ .cnetChatBox-newChatButton .cnetChatBox-icon {
204
+ font-size: 0.95rem;
205
+ }
206
+
207
+ .cnetChatBox-textarea:disabled {
208
+ cursor: wait;
209
+ opacity: 0.6;
210
+ }
211
+
212
+ .cnetChatBox-messages {
213
+ flex: 1 1 auto;
214
+ overflow-y: auto;
215
+ padding: 1rem;
216
+ display: flex;
217
+ flex-direction: column;
218
+ gap: 0.75rem;
219
+ scroll-behavior: smooth;
220
+ }
221
+
222
+ .cnetChatBox-empty {
223
+ margin: auto;
224
+ padding: 1.5rem;
225
+ color: @sapUiContentLabelColor;
226
+ text-align: center;
227
+ font-style: italic;
228
+ }
229
+
230
+ .cnetChatBox-message {
231
+ display: flex;
232
+ max-width: 100%;
233
+ }
234
+
235
+ .cnetChatBox-message--user {
236
+ flex-direction: column;
237
+ align-items: flex-end;
238
+ }
239
+
240
+ .cnetChatBox-message--assistant {
241
+ flex-direction: column;
242
+ align-items: flex-start;
243
+ }
244
+
245
+ .cnetChatBox-bubble {
246
+ max-width: 85%;
247
+ padding: 0.55rem 0.85rem;
248
+ border-radius: 0.75rem;
249
+ line-height: 1.4;
250
+ word-wrap: break-word;
251
+ white-space: pre-wrap;
252
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
253
+ }
254
+
255
+ .cnetChatBox-message--user .cnetChatBox-bubble {
256
+ background-color: @sapUiButtonEmphasizedBackground;
257
+ color: @sapUiButtonEmphasizedTextColor;
258
+ border-bottom-right-radius: 0.15rem;
259
+ }
260
+
261
+ .cnetChatBox-message--assistant .cnetChatBox-bubble {
262
+ background-color: @sapUiListBackground;
263
+ color: @sapUiBaseText;
264
+ border: 1px solid @sapUiListBorderColor;
265
+ border-bottom-left-radius: 0.15rem;
266
+ white-space: normal;
267
+ }
268
+
269
+ .cnetChatBox-bubble p {
270
+ margin: 0 0 0.5rem 0;
271
+ }
272
+
273
+ .cnetChatBox-bubble p:last-child {
274
+ margin-bottom: 0;
275
+ }
276
+
277
+ .cnetChatBox-bubble h1,
278
+ .cnetChatBox-bubble h2,
279
+ .cnetChatBox-bubble h3,
280
+ .cnetChatBox-bubble h4,
281
+ .cnetChatBox-bubble h5,
282
+ .cnetChatBox-bubble h6 {
283
+ margin: 0.4rem 0 0.3rem 0;
284
+ font-weight: bold;
285
+ line-height: 1.25;
286
+ }
287
+
288
+ .cnetChatBox-bubble ul {
289
+ margin: 0.25rem 0 0.5rem 1.25rem;
290
+ padding: 0;
291
+ }
292
+
293
+ .cnetChatBox-bubble code {
294
+ font-family: @sapUiFontMonospaceFamily;
295
+ font-size: 0.9em;
296
+ background-color: @sapUiFieldBackground;
297
+ padding: 0.05rem 0.3rem;
298
+ border-radius: 0.25rem;
299
+ }
300
+
301
+ .cnetChatBox-bubble pre {
302
+ margin: 0.4rem 0;
303
+ padding: 0.6rem;
304
+ background-color: @sapUiFieldBackground;
305
+ border: 1px solid @sapUiFieldBorderColor;
306
+ border-radius: 0.35rem;
307
+ overflow-x: auto;
308
+ }
309
+
310
+ .cnetChatBox-bubble pre code {
311
+ background: transparent;
312
+ padding: 0;
313
+ }
314
+
315
+ .cnetChatBox-table {
316
+ border-collapse: collapse;
317
+ margin: 0.4rem 0;
318
+ font-size: 0.95em;
319
+ }
320
+
321
+ .cnetChatBox-table th,
322
+ .cnetChatBox-table td {
323
+ border: 1px solid @sapUiListBorderColor;
324
+ padding: 0.25rem 0.5rem;
325
+ text-align: left;
326
+ }
327
+
328
+ .cnetChatBox-table th {
329
+ background-color: @sapUiListHeaderBackground;
330
+ }
331
+
332
+ .cnetChatBox-actions {
333
+ display: flex;
334
+ gap: 0.25rem;
335
+ margin-top: 0.15rem;
336
+ padding-left: 0.15rem;
337
+ opacity: 0;
338
+ transition: opacity 0.15s ease;
339
+ }
340
+
341
+ .cnetChatBox-message:hover .cnetChatBox-actions,
342
+ .cnetChatBox-message:focus-within .cnetChatBox-actions {
343
+ opacity: 1;
344
+ }
345
+
346
+ .cnetChatBox-bubble--pending + .cnetChatBox-actions {
347
+ display: none;
348
+ }
349
+
350
+ .cnetChatBox-action {
351
+ background: transparent;
352
+ border: 1px solid transparent;
353
+ border-radius: 0.35rem;
354
+ padding: 0.15rem 0.35rem;
355
+ color: @sapUiContentLabelColor;
356
+ cursor: pointer;
357
+ line-height: 1;
358
+ transition: background-color 0.15s ease, color 0.15s ease;
359
+ }
360
+
361
+ .cnetChatBox-action:hover,
362
+ .cnetChatBox-action:focus-visible {
363
+ background-color: @sapUiButtonHoverBackground;
364
+ color: @sapUiButtonTextColor;
365
+ outline: none;
366
+ }
367
+
368
+ .cnetChatBox-action--done {
369
+ color: @sapUiPositiveText;
370
+ }
371
+
372
+ .cnetChatBox-action .cnetChatBox-icon {
373
+ font-size: 0.85rem;
374
+ }
375
+
376
+ .cnetChatBox-message--assistant .cnetChatBox-bubble.cnetChatBox-bubble--rich {
377
+ max-width: 100%;
378
+ width: 100%;
379
+ padding: 0.35rem;
380
+ background-color: @sapUiListBackground;
381
+ overflow: hidden;
382
+ }
383
+
384
+ .cnetChatBox-bubble--rich > .sapUiVlt,
385
+ .cnetChatBox-bubble--rich > * {
386
+ max-width: 100%;
387
+ }
388
+
389
+ .cnetChatBox-bubble--pending .cnetChatBox-dots {
390
+ display: inline-flex;
391
+ gap: 0.25rem;
392
+ align-items: center;
393
+ height: 1em;
394
+ }
395
+
396
+ .cnetChatBox-bubble--pending .cnetChatBox-dots span {
397
+ display: inline-block;
398
+ width: 0.4rem;
399
+ height: 0.4rem;
400
+ border-radius: 50%;
401
+ background-color: @sapUiContentLabelColor;
402
+ opacity: 0.4;
403
+ animation: cnetChatBoxDots 1.2s infinite ease-in-out;
404
+ }
405
+
406
+ .cnetChatBox-bubble--pending .cnetChatBox-dots span:nth-child(2) { animation-delay: 0.2s; }
407
+ .cnetChatBox-bubble--pending .cnetChatBox-dots span:nth-child(3) { animation-delay: 0.4s; }
408
+
409
+ @keyframes cnetChatBoxDots {
410
+ 0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
411
+ 30% { opacity: 1; transform: translateY(-2px); }
412
+ }
413
+
414
+ .cnetChatBox-inputArea {
415
+ display: flex;
416
+ flex-direction: column;
417
+ padding: 0.5rem 0.75rem 0.75rem;
418
+ border-top: 1px solid @sapUiGroupContentBorderColor;
419
+ background-color: @sapUiListBackground;
420
+ }
421
+
422
+ .cnetChatBox-composer {
423
+ display: flex;
424
+ flex-direction: column;
425
+ gap: 0.35rem;
426
+ padding: 0.5rem 0.5rem 0.4rem;
427
+ background-color: @sapUiFieldBackground;
428
+ border: 1px solid @sapUiFieldBorderColor;
429
+ border-radius: 0.75rem;
430
+ transition: border-color 0.15s ease, box-shadow 0.15s ease;
431
+ }
432
+
433
+ .cnetChatBox-composer:focus-within {
434
+ border-color: @sapUiFieldFocusBorderColor;
435
+ box-shadow: 0 0 0 1px @sapUiFieldFocusBorderColor;
436
+ }
437
+
438
+ .cnetChatBox-attachmentsPending {
439
+ display: none;
440
+ flex-wrap: wrap;
441
+ gap: 0.4rem;
442
+ }
443
+
444
+ .cnetChatBox-attachmentsPending--hasItems {
445
+ display: flex;
446
+ }
447
+
448
+ .cnetChatBox-fileinput {
449
+ display: none;
450
+ }
451
+
452
+ .cnetChatBox-textarea {
453
+ resize: none;
454
+ min-height: 1.75rem;
455
+ max-height: 10rem;
456
+ padding: 0.25rem 0.35rem;
457
+ font-family: inherit;
458
+ font-size: inherit;
459
+ color: @sapUiFieldTextColor;
460
+ background-color: transparent;
461
+ border: none;
462
+ outline: none;
463
+ line-height: 1.4;
464
+ width: 100%;
465
+ box-sizing: border-box;
466
+ }
467
+
468
+ .cnetChatBox-composerBar {
469
+ display: flex;
470
+ align-items: center;
471
+ justify-content: space-between;
472
+ gap: 0.5rem;
473
+ }
474
+
475
+ .cnetChatBox-composerBar-left {
476
+ display: flex;
477
+ align-items: center;
478
+ gap: 0.15rem;
479
+ }
480
+
481
+ .cnetChatBox-toolButton {
482
+ flex: 0 0 auto;
483
+ width: 1.9rem;
484
+ height: 1.9rem;
485
+ display: inline-flex;
486
+ align-items: center;
487
+ justify-content: center;
488
+ background-color: transparent;
489
+ color: @sapUiContentLabelColor;
490
+ border: none;
491
+ border-radius: 0.4rem;
492
+ cursor: pointer;
493
+ transition: background-color 0.15s ease, color 0.15s ease;
494
+ }
495
+
496
+ .cnetChatBox-toolButton:hover:not(:disabled),
497
+ .cnetChatBox-toolButton:focus-visible {
498
+ background-color: @sapUiButtonHoverBackground;
499
+ color: @sapUiButtonTextColor;
500
+ outline: none;
501
+ }
502
+
503
+ .cnetChatBox-send {
504
+ flex: 0 0 auto;
505
+ width: 2rem;
506
+ height: 2rem;
507
+ display: inline-flex;
508
+ align-items: center;
509
+ justify-content: center;
510
+ background-color: @sapUiButtonEmphasizedBackground;
511
+ color: @sapUiButtonEmphasizedTextColor;
512
+ border: none;
513
+ border-radius: 0.5rem;
514
+ cursor: pointer;
515
+ transition: background-color 0.15s ease;
516
+ }
517
+
518
+ .cnetChatBox-send:hover:not(:disabled) {
519
+ background-color: @sapUiButtonEmphasizedHoverBackground;
520
+ }
521
+
522
+ .cnetChatBox-send:focus-visible {
523
+ outline: none;
524
+ box-shadow: 0 0 0 2px @sapUiFieldFocusBorderColor;
525
+ }
526
+
527
+ .cnetChatBox-send:disabled,
528
+ .cnetChatBox-toolButton:disabled {
529
+ cursor: not-allowed;
530
+ opacity: 0.5;
531
+ }
532
+
533
+ .cnetChatBox-icon {
534
+ font-size: 1rem;
535
+ line-height: 1;
536
+ }
537
+
538
+ .cnetChatBox-attachments {
539
+ display: flex;
540
+ flex-wrap: wrap;
541
+ gap: 0.4rem;
542
+ }
543
+
544
+ .cnetChatBox-message--user .cnetChatBox-bubble .cnetChatBox-attachments {
545
+ margin-bottom: 0.35rem;
546
+ }
547
+
548
+ .cnetChatBox-message--user .cnetChatBox-bubble .cnetChatBox-attachments:last-child {
549
+ margin-bottom: 0;
550
+ }
551
+
552
+ .cnetChatBox-attachment {
553
+ display: inline-flex;
554
+ align-items: center;
555
+ gap: 0.35rem;
556
+ max-width: 14rem;
557
+ padding: 0.25rem 0.4rem;
558
+ background-color: @sapUiFieldBackground;
559
+ border: 1px solid @sapUiFieldBorderColor;
560
+ border-radius: 0.35rem;
561
+ color: @sapUiFieldTextColor;
562
+ font-size: 0.85rem;
563
+ line-height: 1.2;
564
+ }
565
+
566
+ .cnetChatBox-attachment--image {
567
+ padding: 0.2rem;
568
+ }
569
+
570
+ .cnetChatBox-attachment-thumb {
571
+ max-width: 6rem;
572
+ max-height: 4rem;
573
+ border-radius: 0.25rem;
574
+ display: block;
575
+ object-fit: cover;
576
+ }
577
+
578
+ .cnetChatBox-attachment-icon {
579
+ color: @sapUiContentLabelColor;
580
+ }
581
+
582
+ .cnetChatBox-attachment-name {
583
+ overflow: hidden;
584
+ text-overflow: ellipsis;
585
+ white-space: nowrap;
586
+ }
587
+
588
+ .cnetChatBox-attachment-remove {
589
+ background: transparent;
590
+ border: none;
591
+ color: @sapUiContentLabelColor;
592
+ cursor: pointer;
593
+ font-size: 1rem;
594
+ line-height: 1;
595
+ padding: 0 0.15rem;
596
+ border-radius: 0.2rem;
597
+ }
598
+
599
+ .cnetChatBox-attachment-remove:hover,
600
+ .cnetChatBox-attachment-remove:focus-visible {
601
+ background-color: @sapUiButtonHoverBackground;
602
+ color: @sapUiButtonTextColor;
603
+ outline: none;
604
+ }
605
+
606
+ .cnetChatBox-dropOverlay {
607
+ position: absolute;
608
+ inset: 0;
609
+ display: none;
610
+ align-items: center;
611
+ justify-content: center;
612
+ background-color: fade(@sapUiHighlight, 15%);
613
+ border: 2px dashed @sapUiHighlight;
614
+ border-radius: 0.5rem;
615
+ pointer-events: none;
616
+ z-index: 2;
617
+ }
618
+
619
+ .cnetChatBox--dragOver .cnetChatBox-dropOverlay {
620
+ display: flex;
621
+ }
622
+
623
+ .cnetChatBox-dropLabel {
624
+ padding: 0.5rem 1rem;
625
+ background-color: @sapUiGroupContentBackground;
626
+ color: @sapUiHighlight;
627
+ border-radius: 0.35rem;
628
+ font-weight: bold;
629
+ }
630
+
631
+ .cnetChatBox-bubble-text {
632
+ white-space: pre-wrap;
633
+ word-wrap: break-word;
634
+ }
635
+
636
+ .cnetChatBox-message--user .cnetChatBox-bubble.cnetChatBox-bubble--editing {
637
+ background-color: @sapUiFieldBackground;
638
+ color: @sapUiFieldTextColor;
639
+ border: 1px solid @sapUiFieldBorderColor;
640
+ max-width: 32rem;
641
+ min-width: 16rem;
642
+ display: flex;
643
+ flex-direction: column;
644
+ gap: 0.4rem;
645
+ padding: 0.5rem;
646
+ }
647
+
648
+ .cnetChatBox-editTextarea {
649
+ resize: vertical;
650
+ min-height: 2.5rem;
651
+ max-height: 12rem;
652
+ padding: 0.35rem 0.5rem;
653
+ font-family: inherit;
654
+ font-size: inherit;
655
+ color: @sapUiFieldTextColor;
656
+ background-color: @sapUiFieldBackground;
657
+ border: 1px solid @sapUiFieldBorderColor;
658
+ border-radius: 0.35rem;
659
+ outline: none;
660
+ line-height: 1.35;
661
+ }
662
+
663
+ .cnetChatBox-editTextarea:focus {
664
+ border-color: @sapUiFieldFocusBorderColor;
665
+ box-shadow: 0 0 0 1px @sapUiFieldFocusBorderColor;
666
+ }
667
+
668
+ .cnetChatBox-editActions {
669
+ display: flex;
670
+ justify-content: flex-end;
671
+ gap: 0.35rem;
672
+ }
673
+
674
+ .cnetChatBox-editCancel,
675
+ .cnetChatBox-editSave {
676
+ padding: 0.25rem 0.75rem;
677
+ border-radius: 0.35rem;
678
+ border: 1px solid transparent;
679
+ cursor: pointer;
680
+ font-family: inherit;
681
+ font-size: inherit;
682
+ line-height: 1.35;
683
+ }
684
+
685
+ .cnetChatBox-editCancel {
686
+ background-color: transparent;
687
+ color: @sapUiButtonTextColor;
688
+ border-color: @sapUiButtonBorderColor;
689
+ }
690
+
691
+ .cnetChatBox-editCancel:hover {
692
+ background-color: @sapUiButtonHoverBackground;
693
+ }
694
+
695
+ .cnetChatBox-editSave {
696
+ background-color: @sapUiButtonEmphasizedBackground;
697
+ color: @sapUiButtonEmphasizedTextColor;
698
+ }
699
+
700
+ .cnetChatBox-editSave:hover {
701
+ background-color: @sapUiButtonEmphasizedHoverBackground;
702
+ }
@@ -0,0 +1,3 @@
1
+ .sapUiAccKeysHighlighDom:first-letter{text-decoration:underline 20% black}.cnetChatBox{display:flex;flex-direction:row;box-sizing:border-box;position:relative;min-width:32rem;min-height:24rem;background-color:#fff;color:#000;border:1px solid #000;border-radius:0.5rem;font-family:"72","72full",Arial,Helvetica,sans-serif;font-size:.875rem;overflow:hidden}.cnetChatBox-sidebar{flex:0 0 16rem;display:flex;flex-direction:column;min-height:0;background-color:#fff;border-left:1px solid #000}.cnetChatBox-sidebar-header{flex:0 0 auto;padding:0.75rem 1rem 0.5rem;border-bottom:1px solid #000}.cnetChatBox-sidebar-title{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.04em;color:#000}.cnetChatBox-conversations{flex:1 1 auto;overflow-y:auto;padding:0.4rem;display:flex;flex-direction:column;gap:0.25rem}.cnetChatBox-conversations-empty{padding:1rem 0.5rem;color:#000;font-size:0.85rem;font-style:italic;text-align:center}.cnetChatBox-conversation{position:relative;display:flex;align-items:flex-start;gap:0.35rem;padding:0.5rem 0.6rem;border:1px solid transparent;border-radius:0.4rem;cursor:pointer;transition:background-color .15s ease,border-color .15s ease;outline:none}.cnetChatBox-conversation:hover,.cnetChatBox-conversation:focus-visible{background-color:#ec8b46}.cnetChatBox-conversation--active{background-color:#8fb5ff;border-color:#000}.cnetChatBox-conversation--active:hover{background-color:#8fb5ff}.cnetChatBox-conversation-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:0.1rem}.cnetChatBox-conversation-title{font-size:0.85rem;font-weight:600;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnetChatBox-conversation-snippet{font-size:0.75rem;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnetChatBox-conversation-time{font-size:0.7rem;color:#000;margin-top:0.1rem}.cnetChatBox-conversation-remove{flex:0 0 auto;background:transparent;border:none;color:#000;cursor:pointer;font-size:1rem;line-height:1;padding:0.1rem 0.35rem;border-radius:0.25rem;opacity:0;transition:opacity .15s ease,background-color .15s ease}.cnetChatBox-conversation:hover .cnetChatBox-conversation-remove,.cnetChatBox-conversation:focus-within .cnetChatBox-conversation-remove,.cnetChatBox-conversation--active .cnetChatBox-conversation-remove{opacity:1}.cnetChatBox-conversation-remove:hover,.cnetChatBox-conversation-remove:focus-visible{background-color:#ec8b46;color:#000;outline:none}.cnetChatBox-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.cnetChatBox-header{flex:0 0 auto;display:flex;align-items:center;gap:0.75rem;padding:0.5rem 0.75rem;border-bottom:1px solid #000;background-color:#fff}.cnetChatBox-header-title{flex:1 1 auto;min-width:0;font-size:0.95rem;font-weight:600;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cnetChatBox-newChatButton{flex:0 0 auto;display:inline-flex;align-items:center;gap:0.4rem;padding:0.3rem 0.75rem;background-color:#fff;color:#000;border:none;border-radius:0.4rem;cursor:pointer;font-family:inherit;font-size:0.85rem;line-height:1.2;transition:background-color .15s ease}.cnetChatBox-newChatButton:hover:not(:disabled){background-color:#f2f2f2}.cnetChatBox-newChatButton:focus-visible{outline:none;box-shadow:0 0 0 2px #000}.cnetChatBox-newChatButton:disabled{cursor:not-allowed;opacity:0.5}.cnetChatBox-newChatButton .cnetChatBox-icon{font-size:0.95rem}.cnetChatBox-textarea:disabled{cursor:wait;opacity:0.6}.cnetChatBox-messages{flex:1 1 auto;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:0.75rem;scroll-behavior:smooth}.cnetChatBox-empty{margin:auto;padding:1.5rem;color:#000;text-align:center;font-style:italic}.cnetChatBox-message{display:flex;max-width:100%}.cnetChatBox-message--user{flex-direction:column;align-items:flex-end}.cnetChatBox-message--assistant{flex-direction:column;align-items:flex-start}.cnetChatBox-bubble{max-width:85%;padding:0.55rem 0.85rem;border-radius:0.75rem;line-height:1.4;word-wrap:break-word;white-space:pre-wrap;box-shadow:0 1px 2px rgba(0,0,0,0.05)}.cnetChatBox-message--user .cnetChatBox-bubble{background-color:#fff;color:#000;border-bottom-left-radius:0.15rem}.cnetChatBox-message--assistant .cnetChatBox-bubble{background-color:#fff;color:#000;border:1px solid #585858;border-bottom-right-radius:0.15rem;white-space:normal}.cnetChatBox-bubble p{margin:0 0 0.5rem 0}.cnetChatBox-bubble p:last-child{margin-bottom:0}.cnetChatBox-bubble h1,.cnetChatBox-bubble h2,.cnetChatBox-bubble h3,.cnetChatBox-bubble h4,.cnetChatBox-bubble h5,.cnetChatBox-bubble h6{margin:0.4rem 0 0.3rem 0;font-weight:bold;line-height:1.25}.cnetChatBox-bubble ul{margin:0.25rem 1.25rem 0.5rem 0;padding:0}.cnetChatBox-bubble code{font-family:Lucida Console;font-size:0.9em;background-color:#fff;padding:0.05rem 0.3rem;border-radius:0.25rem}.cnetChatBox-bubble pre{margin:0.4rem 0;padding:0.6rem;background-color:#fff;border:1px solid #000;border-radius:0.35rem;overflow-x:auto}.cnetChatBox-bubble pre code{background:transparent;padding:0}.cnetChatBox-table{border-collapse:collapse;margin:0.4rem 0;font-size:0.95em}.cnetChatBox-table th,.cnetChatBox-table td{border:1px solid #585858;padding:0.25rem 0.5rem;text-align:left}.cnetChatBox-table th{background-color:#fff}.cnetChatBox-actions{display:flex;gap:0.25rem;margin-top:0.15rem;padding-right:0.15rem;opacity:0;transition:opacity 0.15s ease}.cnetChatBox-message:hover .cnetChatBox-actions,.cnetChatBox-message:focus-within .cnetChatBox-actions{opacity:1}.cnetChatBox-bubble--pending+.cnetChatBox-actions{display:none}.cnetChatBox-action{background:transparent;border:1px solid transparent;border-radius:0.35rem;padding:0.15rem 0.35rem;color:#000;cursor:pointer;line-height:1;transition:background-color .15s ease,color .15s ease}.cnetChatBox-action:hover,.cnetChatBox-action:focus-visible{background-color:#ec8b46;color:#000;outline:none}.cnetChatBox-action--done{color:#b5e7a8}.cnetChatBox-action .cnetChatBox-icon{font-size:0.85rem}.cnetChatBox-message--assistant .cnetChatBox-bubble.cnetChatBox-bubble--rich{max-width:100%;width:100%;padding:0.35rem;background-color:#fff;overflow:hidden}.cnetChatBox-bubble--rich>.sapUiVlt,.cnetChatBox-bubble--rich>*{max-width:100%}.cnetChatBox-bubble--pending .cnetChatBox-dots{display:inline-flex;gap:0.25rem;align-items:center;height:1em}.cnetChatBox-bubble--pending .cnetChatBox-dots span{display:inline-block;width:0.4rem;height:0.4rem;border-radius:50%;background-color:#000;opacity:0.4;animation:cnetChatBoxDots 1.2s infinite ease-in-out}.cnetChatBox-bubble--pending .cnetChatBox-dots span:nth-child(2){animation-delay:0.2s}.cnetChatBox-bubble--pending .cnetChatBox-dots span:nth-child(3){animation-delay:0.4s}@keyframes cnetChatBoxDots{0%,60%,100%{opacity:0.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}.cnetChatBox-inputArea{display:flex;flex-direction:column;padding:0.5rem 0.75rem 0.75rem;border-top:1px solid #000;background-color:#fff}.cnetChatBox-composer{display:flex;flex-direction:column;gap:0.35rem;padding:0.5rem 0.5rem 0.4rem;background-color:#fff;border:1px solid #000;border-radius:0.75rem;transition:border-color .15s ease,box-shadow .15s ease}.cnetChatBox-composer:focus-within{border-color:#000;box-shadow:0 0 0 1px #000}.cnetChatBox-attachmentsPending{display:none;flex-wrap:wrap;gap:0.4rem}.cnetChatBox-attachmentsPending--hasItems{display:flex}.cnetChatBox-fileinput{display:none}.cnetChatBox-textarea{resize:none;min-height:1.75rem;max-height:10rem;padding:0.25rem 0.35rem;font-family:inherit;font-size:inherit;color:#000;background-color:transparent;border:none;outline:none;line-height:1.4;width:100%;box-sizing:border-box}.cnetChatBox-composerBar{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}.cnetChatBox-composerBar-left{display:flex;align-items:center;gap:0.15rem}.cnetChatBox-toolButton{flex:0 0 auto;width:1.9rem;height:1.9rem;display:inline-flex;align-items:center;justify-content:center;background-color:transparent;color:#000;border:none;border-radius:0.4rem;cursor:pointer;transition:background-color .15s ease,color .15s ease}.cnetChatBox-toolButton:hover:not(:disabled),.cnetChatBox-toolButton:focus-visible{background-color:#ec8b46;color:#000;outline:none}.cnetChatBox-send{flex:0 0 auto;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;background-color:#fff;color:#000;border:none;border-radius:0.5rem;cursor:pointer;transition:background-color .15s ease}.cnetChatBox-send:hover:not(:disabled){background-color:#f2f2f2}.cnetChatBox-send:focus-visible{outline:none;box-shadow:0 0 0 2px #000}.cnetChatBox-send:disabled,.cnetChatBox-toolButton:disabled{cursor:not-allowed;opacity:0.5}.cnetChatBox-icon{font-size:1rem;line-height:1}.cnetChatBox-attachments{display:flex;flex-wrap:wrap;gap:0.4rem}.cnetChatBox-message--user .cnetChatBox-bubble .cnetChatBox-attachments{margin-bottom:0.35rem}.cnetChatBox-message--user .cnetChatBox-bubble .cnetChatBox-attachments:last-child{margin-bottom:0}.cnetChatBox-attachment{display:inline-flex;align-items:center;gap:0.35rem;max-width:14rem;padding:0.25rem 0.4rem;background-color:#fff;border:1px solid #000;border-radius:0.35rem;color:#000;font-size:0.85rem;line-height:1.2}.cnetChatBox-attachment--image{padding:0.2rem}.cnetChatBox-attachment-thumb{max-width:6rem;max-height:4rem;border-radius:0.25rem;display:block;object-fit:cover}.cnetChatBox-attachment-icon{color:#000}.cnetChatBox-attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cnetChatBox-attachment-remove{background:transparent;border:none;color:#000;cursor:pointer;font-size:1rem;line-height:1;padding:0 0.15rem;border-radius:0.2rem}.cnetChatBox-attachment-remove:hover,.cnetChatBox-attachment-remove:focus-visible{background-color:#ec8b46;color:#000;outline:none}.cnetChatBox-dropOverlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background-color:rgba(236,139,70,0.15);border:2px dashed #ec8b46;border-radius:0.5rem;pointer-events:none;z-index:2}.cnetChatBox--dragOver .cnetChatBox-dropOverlay{display:flex}.cnetChatBox-dropLabel{padding:0.5rem 1rem;background-color:#fff;color:#ec8b46;border-radius:0.35rem;font-weight:bold}.cnetChatBox-bubble-text{white-space:pre-wrap;word-wrap:break-word}.cnetChatBox-message--user .cnetChatBox-bubble.cnetChatBox-bubble--editing{background-color:#fff;color:#000;border:1px solid #000;max-width:32rem;min-width:16rem;display:flex;flex-direction:column;gap:0.4rem;padding:0.5rem}.cnetChatBox-editTextarea{resize:vertical;min-height:2.5rem;max-height:12rem;padding:0.35rem 0.5rem;font-family:inherit;font-size:inherit;color:#000;background-color:#fff;border:1px solid #000;border-radius:0.35rem;outline:none;line-height:1.35}.cnetChatBox-editTextarea:focus{border-color:#000;box-shadow:0 0 0 1px #000}.cnetChatBox-editActions{display:flex;justify-content:flex-end;gap:0.35rem}.cnetChatBox-editCancel,.cnetChatBox-editSave{padding:0.25rem 0.75rem;border-radius:0.35rem;border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:inherit;line-height:1.35}.cnetChatBox-editCancel{background-color:transparent;color:#000;border-color:#000}.cnetChatBox-editCancel:hover{background-color:#ec8b46}.cnetChatBox-editSave{background-color:#fff;color:#000}.cnetChatBox-editSave:hover{background-color:#f2f2f2}
2
+ /* Inline theming parameters */
3
+ #sap-ui-theme-chatui{background-image:url('data:text/plain;utf-8,%7B%7D')}