@pubuduth-aplicy/chat-ui 2.1.69 → 2.1.71

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.
@@ -36,8 +36,8 @@
36
36
  display: inline-flex;
37
37
  padding-top: 2.4125rem;
38
38
  padding-bottom: 2.45rem;
39
- /* padding-left: 1rem; */
40
39
  padding-right: 1rem;
40
+ padding-left: 1rem;
41
41
  gap: 1rem;
42
42
  border-bottom: 0.5px solid lightgray;
43
43
  width: 100%;
@@ -49,16 +49,15 @@
49
49
 
50
50
  .chatSidebarSearchbarContainer {
51
51
  display: flex;
52
- padding-top: 0.5rem;
53
- padding-bottom: 0.5rem;
52
+ padding: 0.5rem 1rem;
54
53
  width: 100%;
55
- padding-left: 1rem;
56
- /* flex-basis: 0px; */
57
- shrink: 1;
54
+ border: 1px solid #ccc; /* Consistent border color */
55
+ border-radius: 4px;
58
56
  gap: 1rem;
59
57
  justify-content: flex-start;
60
58
  align-items: center;
61
59
  height: 2.5rem;
60
+ background-color: rgb(248, 249, 249); /* Move bg color here */
62
61
  }
63
62
 
64
63
  .chatSidebarSearchbarImg {
@@ -67,42 +66,36 @@
67
66
  align-items: center;
68
67
  width: 1.5rem;
69
68
  height: 1.5rem;
70
- padding-left: 2.50px;
71
- padding-right: 3px;
72
- padding-top: 2.50px;
73
- padding-bottom: 3px;
74
- }
75
-
76
- .loader-wrapper {
77
- display: flex;
78
- align-items: center;
79
- justify-content: center;
80
- height: 100%;
81
- width: 100%;
69
+ padding: 2.5px 3px;
82
70
  }
83
71
 
84
72
  .chatSidebarInput {
85
73
  outline: none;
86
74
  padding: 8px 4px;
87
- /* Keep original padding */
88
75
  font-size: 1rem;
89
- border-radius: 4px;
90
76
  line-height: 1.5rem;
91
77
  font-weight: 400;
92
- border: 1px solid #ccc;
93
78
  width: 100%;
94
- /* Ensure full width */
95
- /* min-width: 400px; */
96
79
  max-width: 600px;
97
- background-color: rgb(248, 249, 249);
80
+ border: none !important; /* Force no border */
81
+ background: transparent; /* Inherit from container */
82
+ box-shadow: none !important; /* Remove any shadow */
98
83
  }
99
84
 
100
- .chatSidebarInput:focus {
101
- border: 1px solid #12bbb5 !important;
85
+ .chatSidebarSearchbarContainer:focus-within {
86
+ border: 1px solid #12bbb5;
102
87
  box-shadow: 0 0 5px rgba(18, 187, 181, 0.5);
103
88
  transition: border-color 0.3s ease-in-out;
104
89
  }
105
90
 
91
+ .loader-wrapper {
92
+ display: flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ height: 100%;
96
+ width: 100%;
97
+ }
98
+
106
99
  .chatSidebarConversations {
107
100
  display: flex;
108
101
  overflow: auto;
@@ -381,19 +374,38 @@
381
374
  }
382
375
 
383
376
  .chatMessageInputSubmit {
384
- /* display: flex;
385
- position: absolute;
386
- top: 0;
387
- bottom: 0;
388
- align-items: center; */
389
- padding: 8px;
390
- border-radius: 100%;
391
- background: #12bbb5;
377
+ background-color: #12bbb5;
378
+ border: none;
379
+ width: 40px;
380
+ height: 40px;
381
+ padding: 0;
382
+ border-radius: 6px; /* or 0px for sharp corners */
383
+ cursor: pointer;
384
+ display: inline-flex;
385
+ align-items: center;
386
+ justify-content: center;
387
+ transition: background-color 0.3s ease;
392
388
  }
393
389
 
390
+ .chatMessageInputSubmit:hover {
391
+ background-color: #0d9a94;
392
+ }
393
+
394
+ /* .chatMessageInputSubmit:disabled {
395
+ background-color: #cbd5e1;
396
+ cursor: not-allowed;
397
+ } */
398
+
399
+ .icon {
400
+ height: 18px;
401
+ width: 18px;
402
+ }
403
+
404
+
394
405
  .chat-container {
395
406
  width: 100%;
396
407
  font-family: Arial, sans-serif;
408
+ margin-bottom: 8px;
397
409
  }
398
410
 
399
411
  .message-row {
@@ -403,6 +415,7 @@
403
415
  gap: 10px;
404
416
  word-break: break-all;
405
417
  max-width: 100%;
418
+ width: 100%;
406
419
 
407
420
  }
408
421
 
@@ -419,6 +432,7 @@
419
432
  display: flex;
420
433
  flex-direction: column;
421
434
  max-width: 70%;
435
+ position: relative;
422
436
  }
423
437
 
424
438
  .amk7{
@@ -438,21 +452,24 @@ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe U
438
452
 
439
453
  background-color: #f3f4f6;
440
454
  border-radius: 0.5rem ;
441
- padding: 0.5rem;
455
+ /* padding: 0.5rem; */
442
456
  font-size: 14px;
443
457
  max-width: 20rem;
444
458
  margin-bottom: 5px;
459
+ position: relative;
460
+ word-break: break-word;
461
+ padding: 8px 12px;
445
462
  }
446
463
 
447
464
  .outgoing .chat-bubble {
448
- background-color: #12bbb5;
449
- color: white;
465
+ background-color: #aef7e883;
466
+ color: #595c61;
450
467
 
451
468
  }
452
469
 
453
470
  .incoming .chat-bubble {
454
471
  background-color: #EBEDF0;
455
- color: black;
472
+ color: #595c61;
456
473
  }
457
474
 
458
475
  .timestamp_incomeing {
@@ -477,7 +494,7 @@ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe U
477
494
  align-items: center;
478
495
  float: right;
479
496
  position: relative;
480
- justify-content: end;
497
+ justify-content: flex-end;
481
498
  }
482
499
 
483
500
  .status-icon {
@@ -486,6 +503,7 @@ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe U
486
503
  margin-left: 10px;
487
504
  right: 10px;
488
505
  font-size: 12px;
506
+ display: inline-flex;
489
507
  }
490
508
 
491
509
  .read {
@@ -1173,16 +1191,113 @@ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe U
1173
1191
  /* margin-top: 0.5rem; */
1174
1192
  }
1175
1193
 
1176
- .media-item {
1194
+ .media-item {
1177
1195
  background: #f3f4f6;
1178
1196
  border-radius: 0.375rem;
1179
1197
  /* reduced from 0.75rem */
1180
- padding: 0.5rem;
1198
+ padding: 0.5rem;
1181
1199
  overflow: hidden;
1182
1200
  display: flex;
1183
1201
  flex-direction: column;
1184
1202
  align-items: start;
1185
1203
  width: 246px;
1204
+ }
1205
+
1206
+ /* .media-grid {
1207
+ display: grid;
1208
+ gap: 2px;
1209
+ border-radius: 8px;
1210
+ overflow: hidden;
1211
+ width: 246px;
1212
+ margin: 4px 0;
1213
+ }
1214
+
1215
+ /* Single media item */
1216
+ /* .media-grid.single-media {
1217
+ grid-template-columns: 1fr;
1218
+ } */
1219
+
1220
+ /* Two media items */
1221
+ /* .media-grid.two-media {
1222
+ grid-template-columns: 1fr 1fr;
1223
+ } */
1224
+
1225
+ /* Three media items */
1226
+ /* .media-grid.three-media {
1227
+ grid-template-columns: 1fr 1fr;
1228
+ grid-template-rows: 1fr 1fr;
1229
+ } */
1230
+
1231
+ /* .media-grid.three-media .media-item:first-child {
1232
+ grid-row: span 2;
1233
+ } */
1234
+
1235
+ /* Four media items */
1236
+ /* .media-grid.four-media {
1237
+ grid-template-columns: 1fr 1fr;
1238
+ grid-template-rows: 1fr 1fr;
1239
+ } */
1240
+
1241
+ /* Media item styling */
1242
+ /* .media-item {
1243
+ position: relative;
1244
+ width: 246px;
1245
+ height: 100%; */
1246
+ /* aspect-ratio: 1; */
1247
+ /* overflow: hidden;
1248
+ } */
1249
+
1250
+ /* .media-item img {
1251
+ width: 100%;
1252
+ height: 100%;
1253
+ object-fit: cover; */
1254
+ /* display: block; */
1255
+ /* } */
1256
+
1257
+ /* Adjust aspect ratio for single media */
1258
+ /* .single-media .media-item {
1259
+ aspect-ratio: auto;
1260
+ max-height: 300px;
1261
+ } */
1262
+
1263
+ /* For more than 4 items */
1264
+ /* .media-grid.multi-media:not(.two-media):not(.three-media):not(.four-media) {
1265
+ grid-template-columns: repeat(2, 1fr);
1266
+ }
1267
+
1268
+ .two-media-item{
1269
+ width: 123px;
1270
+ }
1271
+
1272
+ .three-media-item
1273
+ {
1274
+ width: 82px;
1275
+ }
1276
+
1277
+ .four-media-item
1278
+ {
1279
+ width: 100%;
1280
+ } */ */
1281
+
1282
+ /* Optional: Add overlay for additional items count */
1283
+ .media-item.count-overlay {
1284
+ position: relative;
1285
+ }
1286
+
1287
+ .media-item.count-overlay::after {
1288
+ content: "+" attr(data-count);
1289
+ position: absolute;
1290
+ top: 0;
1291
+ left: 0;
1292
+ right: 0;
1293
+ bottom: 0;
1294
+ background: rgba(0, 0, 0, 0.5);
1295
+ color: white;
1296
+ display: flex;
1297
+ align-items: center;
1298
+ justify-content: center;
1299
+ font-size: 24px;
1300
+ font-weight: bold;
1186
1301
  }
1187
1302
 
1188
1303
  .media-content {
@@ -1331,78 +1446,195 @@ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe U
1331
1446
  background: rgba(255, 255, 255, 1);
1332
1447
  }
1333
1448
 
1449
+ .message-options {
1450
+ position: absolute;
1451
+ top: 24px;
1452
+ right: 8px;
1453
+ display: flex;
1454
+ gap: 8px;
1455
+ background-color: #ffffff;
1456
+ border-radius: 18px;
1457
+ padding: 4px;
1458
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
1459
+ z-index: 10;
1460
+ transition: opacity 0.2s ease;
1461
+ }
1334
1462
 
1335
-
1336
- .circular-progress-container {
1337
- position: relative;
1338
- width: 100%;
1339
- height: 200px;
1463
+ .message-option-btn {
1340
1464
  display: flex;
1341
- justify-content: center;
1342
1465
  align-items: center;
1466
+ justify-content: center;
1467
+ width: 28px;
1468
+ height: 28px;
1469
+ border-radius: 50%;
1470
+ border: none;
1471
+ background-color: transparent;
1472
+ color: #54656f;
1473
+ cursor: pointer;
1474
+ transition: background-color 0.2s ease;
1343
1475
  }
1344
1476
 
1345
- .media-preview-background {
1477
+ .message-option-btn:hover {
1478
+ background-color: #f0f2f5;
1479
+ }
1480
+
1481
+ .more-options-container {
1482
+ position: relative;
1483
+ }
1484
+
1485
+ .delete-option {
1346
1486
  position: absolute;
1347
- width: 100%;
1348
- height: 100%;
1349
- filter: blur(5px);
1350
- opacity: 0.7;
1487
+ top: -36px;
1488
+ right: 0;
1489
+ background-color: #ffffff;
1490
+ border-radius: 8px;
1491
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
1492
+ padding: 8px;
1493
+ z-index: 20;
1494
+ min-width: 120px;
1351
1495
  }
1352
1496
 
1353
- .blurred-preview {
1497
+ .delete-btn {
1498
+ display: flex;
1499
+ align-items: center;
1500
+ gap: 8px;
1354
1501
  width: 100%;
1355
- height: 100%;
1356
- object-fit: cover;
1502
+ padding: 8px;
1503
+ border: none;
1504
+ background-color: transparent;
1505
+ color: #ea4335;
1506
+ cursor: pointer;
1507
+ border-radius: 4px;
1508
+ transition: background-color 0.2s ease;
1357
1509
  }
1358
1510
 
1359
- .circular-progress {
1360
- position: relative;
1361
- width: 80px;
1362
- height: 80px;
1511
+ .delete-btn:hover {
1512
+ background-color: #f0f2f5;
1363
1513
  }
1364
1514
 
1365
- .circular-progress-svg {
1515
+
1516
+ .edited-label {
1517
+ color: #999;
1518
+ font-size: 0.8em;
1519
+ margin-left: 5px;
1520
+ font-style: italic;
1521
+ }
1522
+
1523
+ .deleted-message {
1524
+ color: #999;
1525
+ font-style: italic;
1526
+ }
1527
+
1528
+ .edit-message-container {
1366
1529
  width: 100%;
1367
- height: 100%;
1368
- transform: rotate(-90deg);
1530
+ margin-bottom: 8px;
1369
1531
  }
1370
1532
 
1371
- .circular-progress-track {
1372
- fill: none;
1373
- stroke: #eee;
1374
- stroke-width: 4;
1533
+ .edit-message-input {
1534
+ width: 100%;
1535
+ padding: 8px;
1536
+ border: 1px solid #ddd;
1537
+ border-radius: 4px;
1538
+ margin-bottom: 5px;
1375
1539
  }
1376
1540
 
1377
- .circular-progress-bar {
1378
- fill: none;
1379
- stroke: #4CAF50;
1380
- stroke-width: 4;
1381
- stroke-linecap: round;
1382
- transition: stroke-dasharray 0.3s ease;
1541
+ .edit-actions {
1542
+ display: flex;
1543
+ gap: 5px;
1383
1544
  }
1384
1545
 
1385
- .circular-progress-text {
1386
- position: absolute;
1387
- top: 50%;
1388
- left: 50%;
1389
- transform: translate(-50%, -50%);
1390
- font-size: 16px;
1391
- font-weight: bold;
1392
- color: #333;
1546
+ .save-edit,
1547
+ .cancel-edit {
1548
+ padding: 4px 8px;
1549
+ border: none;
1550
+ border-radius: 4px;
1551
+ cursor: pointer;
1393
1552
  }
1394
1553
 
1395
- /* Error message (on top of blurred background) */
1396
- .upload-error {
1397
- position: relative;
1554
+ .save-edit {
1555
+ background-color: #4CAF50;
1556
+ color: white;
1557
+ }
1558
+
1559
+ .cancel-edit {
1560
+ background-color: #f44336;
1561
+ color: white;
1562
+ }
1563
+ .system-message.booking-details {
1398
1564
  display: flex;
1565
+ flex-direction: column;
1566
+ align-items: center;
1399
1567
  justify-content: center;
1568
+ max-width: 400px;
1569
+ margin: 20px auto;
1570
+ padding: 24px;
1571
+ background: #f8f9fa;
1572
+ border: 1px solid #e9ecef;
1573
+ border-radius: 12px;
1574
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1575
+ text-align: center;
1576
+ }
1577
+
1578
+ .system-message.booking-details h4 {
1579
+ margin: 0 0 16px 0;
1580
+ font-size: 18px;
1581
+ font-weight: 600;
1582
+ color: #2c3e50;
1583
+ display: flex;
1400
1584
  align-items: center;
1401
- width: 100%;
1402
- height: 100%;
1403
- color: #f44336;
1585
+ gap: 8px;
1586
+ }
1587
+
1588
+ .system-message.booking-details h4::before {
1589
+ content: "✓";
1590
+ display: inline-block;
1591
+ width: 24px;
1592
+ height: 24px;
1593
+ background: #2cb1aa;
1594
+ color: white;
1595
+ border-radius: 50%;
1596
+ font-size: 14px;
1597
+ line-height: 24px;
1598
+ text-align: center;
1404
1599
  font-weight: bold;
1405
- background-color: rgba(0, 0, 0, 0.3);
1406
1600
  }
1407
1601
 
1408
- /* Rest of the CSS remains the same as previous implementation */
1602
+ .system-message.booking-details .details {
1603
+ width: 100%;
1604
+ background: white;
1605
+ border-radius: 8px;
1606
+ padding: 16px;
1607
+ border: 1px solid #dee2e6;
1608
+ }
1609
+
1610
+ .system-message.booking-details .details p {
1611
+ margin: 8px 0;
1612
+ padding: 8px 0;
1613
+ border-bottom: 1px solid #f1f3f4;
1614
+ font-size: 14px;
1615
+ color: #495057;
1616
+ display: flex;
1617
+ justify-content: space-between;
1618
+ align-items: center;
1619
+ }
1620
+
1621
+ .system-message.booking-details .details p:last-child {
1622
+ border-bottom: none;
1623
+ font-weight: 600;
1624
+ color: #2cb1aa;
1625
+ font-size: 16px;
1626
+ }
1627
+
1628
+ .system-message.booking-details .details p strong {
1629
+ color: #2c3e50;
1630
+ font-weight: 500;
1631
+ }
1632
+
1633
+ /* Responsive design */
1634
+ @media (max-width: 480px) {
1635
+ .system-message.booking-details {
1636
+ max-width: 90%;
1637
+ margin: 16px auto;
1638
+ padding: 20px;
1639
+ }
1640
+ }
package/src/types/type.ts CHANGED
@@ -52,6 +52,8 @@ export interface ConversationProps {
52
52
  senderId: string;
53
53
  message: string;
54
54
  media:string[];
55
+ type?:'user' | 'system' | 'system-completion';
56
+ status: MessageStatus;
55
57
  chatId: string;
56
58
  createdAt: string;
57
59
  updatedAt: string;
@@ -70,4 +72,4 @@ export interface ConversationProps {
70
72
  lastIdx: boolean;
71
73
  }
72
74
 
73
- export type MessageStatus = 'sent' | 'delivered' | 'read' | 'sending' | 'failed';
75
+ export type MessageStatus = 'sent' | 'delivered' | 'read' | 'sending' | 'failed' | 'edited' | 'deleted';