@consilioweb/payload-support 0.10.0 → 0.11.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.
- package/dist/components/TicketConversation/locales/en.json +25 -1
- package/dist/components/TicketConversation/locales/fr.json +25 -1
- package/dist/index.cjs +799 -4
- package/dist/index.d.cts +15 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.js +800 -6
- package/dist/styles/TicketDetail.module.scss +294 -0
- package/dist/views/TicketDetailView/client.cjs +455 -249
- package/dist/views/TicketDetailView/client.js +456 -250
- package/dist/views/TicketInboxView/client.cjs +10 -9
- package/dist/views/TicketInboxView/client.js +2 -1
- package/package.json +1 -1
- package/src/collections/ClientSummaries.ts +16 -0
- package/src/collections/TicketCollaborators.ts +93 -0
- package/src/collections/TicketFeedback.ts +116 -0
- package/src/collections/TicketMessages.ts +9 -0
- package/src/collections/Tickets.ts +31 -1
- package/src/collections/index.ts +2 -0
- package/src/components/TicketConversation/locales/en.json +25 -1
- package/src/components/TicketConversation/locales/fr.json +25 -1
- package/src/endpoints/escalate.ts +44 -0
- package/src/endpoints/index.ts +15 -0
- package/src/endpoints/invite-collaborator.ts +215 -0
- package/src/endpoints/kb-search.ts +156 -0
- package/src/endpoints/ticket-feedback.ts +104 -0
- package/src/endpoints/transfer-ticket.ts +248 -0
- package/src/index.ts +1 -0
- package/src/plugin.ts +4 -0
- package/src/portal/auth/ChatWidget.tsx +11 -0
- package/src/portal/auth/dashboard/DashboardClient.tsx +85 -99
- package/src/portal/auth/dashboard/page.tsx +11 -2
- package/src/portal/auth/tickets/detail/TransferAndInviteActions.tsx +402 -0
- package/src/portal/auth/tickets/detail/page.tsx +122 -23
- package/src/portal/auth/tickets/new/KbDeflection.tsx +128 -0
- package/src/portal/auth/tickets/new/page.tsx +203 -100
- package/src/portal/locales/en.json +5 -0
- package/src/portal/locales/fr.json +5 -0
- package/src/styles/TicketDetail.module.scss +294 -0
- package/src/types.ts +19 -0
- package/src/utils/slugs.ts +2 -0
- package/src/views/TicketDetailView/client.tsx +346 -89
- package/src/views/TicketInboxView/client.tsx +2 -1
|
@@ -1298,3 +1298,297 @@
|
|
|
1298
1298
|
background: var(--theme-accent-500, #6b46e8);
|
|
1299
1299
|
flex-shrink: 0;
|
|
1300
1300
|
}
|
|
1301
|
+
|
|
1302
|
+
// ─── SIDEBAR TABS (Overview / Client / Activity) ───
|
|
1303
|
+
// Sticky tab bar at the top of the sidebar. Active tab gets a 2px
|
|
1304
|
+
// underline using the primary text color; inactive tabs use the secondary
|
|
1305
|
+
// text color and lift to primary on hover. All colors come from
|
|
1306
|
+
// --theme-* tokens to stay coherent with light/dark themes.
|
|
1307
|
+
.sidebarTabs {
|
|
1308
|
+
position: sticky;
|
|
1309
|
+
top: 0;
|
|
1310
|
+
z-index: 2;
|
|
1311
|
+
display: flex;
|
|
1312
|
+
gap: 0;
|
|
1313
|
+
background: var(--theme-bg);
|
|
1314
|
+
border-bottom: 1px solid var(--theme-elevation-150, #f1f5f9);
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
.sidebarTab {
|
|
1318
|
+
flex: 1;
|
|
1319
|
+
appearance: none;
|
|
1320
|
+
background: transparent;
|
|
1321
|
+
border: 0;
|
|
1322
|
+
border-bottom: 2px solid transparent;
|
|
1323
|
+
padding: 10px 8px;
|
|
1324
|
+
font-size: 12px;
|
|
1325
|
+
font-weight: 600;
|
|
1326
|
+
color: var(--theme-text-secondary, var(--theme-elevation-500));
|
|
1327
|
+
cursor: pointer;
|
|
1328
|
+
transition: color 120ms ease, border-color 120ms ease;
|
|
1329
|
+
text-align: center;
|
|
1330
|
+
line-height: 1.2;
|
|
1331
|
+
|
|
1332
|
+
&:hover {
|
|
1333
|
+
color: var(--theme-text);
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
&:focus-visible {
|
|
1337
|
+
outline: 2px solid var(--theme-accent-500, #6b46e8);
|
|
1338
|
+
outline-offset: -2px;
|
|
1339
|
+
}
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
.sidebarTabActive {
|
|
1343
|
+
color: var(--theme-text);
|
|
1344
|
+
border-bottom-color: var(--theme-text);
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
// ─── PREVIOUS TICKETS (Client tab) ───
|
|
1348
|
+
.previousTicketsList {
|
|
1349
|
+
list-style: none;
|
|
1350
|
+
margin: 0;
|
|
1351
|
+
padding: 0;
|
|
1352
|
+
display: flex;
|
|
1353
|
+
flex-direction: column;
|
|
1354
|
+
gap: 4px;
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
.previousTicketsItem {
|
|
1358
|
+
margin: 0;
|
|
1359
|
+
}
|
|
1360
|
+
|
|
1361
|
+
.previousTicketsLink {
|
|
1362
|
+
display: flex;
|
|
1363
|
+
flex-direction: column;
|
|
1364
|
+
gap: 2px;
|
|
1365
|
+
padding: 8px 10px;
|
|
1366
|
+
border-radius: 8px;
|
|
1367
|
+
border: 1px solid var(--theme-elevation-150, #f1f5f9);
|
|
1368
|
+
background: var(--theme-elevation-0);
|
|
1369
|
+
color: var(--theme-text);
|
|
1370
|
+
text-decoration: none;
|
|
1371
|
+
transition: background 120ms ease, border-color 120ms ease;
|
|
1372
|
+
|
|
1373
|
+
&:hover {
|
|
1374
|
+
background: var(--theme-elevation-50);
|
|
1375
|
+
border-color: var(--theme-elevation-200);
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
|
|
1379
|
+
.previousTicketsSubject {
|
|
1380
|
+
font-size: 12px;
|
|
1381
|
+
font-weight: 600;
|
|
1382
|
+
color: var(--theme-text);
|
|
1383
|
+
overflow: hidden;
|
|
1384
|
+
text-overflow: ellipsis;
|
|
1385
|
+
white-space: nowrap;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
.previousTicketsMeta {
|
|
1389
|
+
display: flex;
|
|
1390
|
+
justify-content: space-between;
|
|
1391
|
+
align-items: center;
|
|
1392
|
+
gap: 6px;
|
|
1393
|
+
font-size: 10px;
|
|
1394
|
+
color: var(--theme-elevation-500);
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
.previousTicketsStatus {
|
|
1398
|
+
text-transform: uppercase;
|
|
1399
|
+
letter-spacing: 0.04em;
|
|
1400
|
+
font-weight: 700;
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
.previousTicketsDate {
|
|
1404
|
+
font-weight: 500;
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
.previousTicketsEmpty {
|
|
1408
|
+
font-size: 12px;
|
|
1409
|
+
color: var(--theme-elevation-400);
|
|
1410
|
+
text-align: center;
|
|
1411
|
+
padding: 8px 0;
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
// AI suggestion preview bandeau (au-dessus du composer)
|
|
1415
|
+
.aiSuggestionPreview {
|
|
1416
|
+
margin-top: 16px;
|
|
1417
|
+
padding: 12px 16px;
|
|
1418
|
+
border-radius: 10px;
|
|
1419
|
+
background: linear-gradient(180deg,
|
|
1420
|
+
color-mix(in srgb, var(--theme-accent-500, #6b46e8) 10%, transparent) 0%,
|
|
1421
|
+
color-mix(in srgb, var(--theme-accent-500, #6b46e8) 4%, transparent) 100%);
|
|
1422
|
+
border: 1px solid color-mix(in srgb, var(--theme-accent-500, #6b46e8) 30%, transparent);
|
|
1423
|
+
animation: ai-suggest-in 200ms ease-out;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
@keyframes ai-suggest-in {
|
|
1427
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
1428
|
+
to { opacity: 1; transform: translateY(0); }
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
.aiSuggestionPreviewHeader {
|
|
1432
|
+
display: flex;
|
|
1433
|
+
align-items: center;
|
|
1434
|
+
gap: 8px;
|
|
1435
|
+
margin-bottom: 8px;
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
.aiSuggestionIcon {
|
|
1439
|
+
width: 20px;
|
|
1440
|
+
height: 20px;
|
|
1441
|
+
border-radius: 50%;
|
|
1442
|
+
background: var(--theme-accent-500, #6b46e8);
|
|
1443
|
+
color: #fff;
|
|
1444
|
+
display: inline-flex;
|
|
1445
|
+
align-items: center;
|
|
1446
|
+
justify-content: center;
|
|
1447
|
+
font-size: 11px;
|
|
1448
|
+
font-weight: 700;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
.aiSuggestionLabel {
|
|
1452
|
+
font-size: 11px;
|
|
1453
|
+
font-weight: 700;
|
|
1454
|
+
text-transform: uppercase;
|
|
1455
|
+
letter-spacing: 0.06em;
|
|
1456
|
+
color: var(--theme-accent-500, #6b46e8);
|
|
1457
|
+
flex: 1;
|
|
1458
|
+
}
|
|
1459
|
+
|
|
1460
|
+
.aiSuggestionDismiss {
|
|
1461
|
+
width: 24px;
|
|
1462
|
+
height: 24px;
|
|
1463
|
+
border-radius: 6px;
|
|
1464
|
+
border: 0;
|
|
1465
|
+
background: none;
|
|
1466
|
+
cursor: pointer;
|
|
1467
|
+
color: var(--theme-text-tertiary);
|
|
1468
|
+
font-size: 18px;
|
|
1469
|
+
line-height: 1;
|
|
1470
|
+
|
|
1471
|
+
&:hover {
|
|
1472
|
+
background: var(--theme-elevation-100);
|
|
1473
|
+
color: var(--theme-text);
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
|
|
1477
|
+
.aiSuggestionBody {
|
|
1478
|
+
font-size: 13px;
|
|
1479
|
+
line-height: 1.55;
|
|
1480
|
+
color: var(--theme-text);
|
|
1481
|
+
white-space: pre-wrap;
|
|
1482
|
+
max-height: 120px;
|
|
1483
|
+
overflow-y: auto;
|
|
1484
|
+
margin-bottom: 12px;
|
|
1485
|
+
padding: 8px 10px;
|
|
1486
|
+
background: var(--theme-elevation-0, #fff);
|
|
1487
|
+
border-radius: 6px;
|
|
1488
|
+
border: 1px solid var(--theme-elevation-200);
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
.aiSuggestionActions {
|
|
1492
|
+
display: flex;
|
|
1493
|
+
justify-content: flex-end;
|
|
1494
|
+
gap: 8px;
|
|
1495
|
+
}
|
|
1496
|
+
|
|
1497
|
+
.aiSuggestionIgnore {
|
|
1498
|
+
padding: 6px 14px;
|
|
1499
|
+
border-radius: 6px;
|
|
1500
|
+
border: 1px solid var(--theme-elevation-200);
|
|
1501
|
+
background: var(--theme-elevation-0, #fff);
|
|
1502
|
+
color: var(--theme-text-secondary);
|
|
1503
|
+
font-size: 12px;
|
|
1504
|
+
font-weight: 600;
|
|
1505
|
+
cursor: pointer;
|
|
1506
|
+
|
|
1507
|
+
&:hover {
|
|
1508
|
+
background: var(--theme-elevation-100);
|
|
1509
|
+
color: var(--theme-text);
|
|
1510
|
+
}
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
.aiSuggestionInsert {
|
|
1514
|
+
padding: 6px 14px;
|
|
1515
|
+
border-radius: 6px;
|
|
1516
|
+
border: 1px solid var(--theme-accent-500, #6b46e8);
|
|
1517
|
+
background: var(--theme-accent-500, #6b46e8);
|
|
1518
|
+
color: #fff;
|
|
1519
|
+
font-size: 12px;
|
|
1520
|
+
font-weight: 600;
|
|
1521
|
+
cursor: pointer;
|
|
1522
|
+
|
|
1523
|
+
&:hover {
|
|
1524
|
+
background: color-mix(in srgb, var(--theme-accent-500, #6b46e8) 80%, black);
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1528
|
+
.aiCardNextTitle {
|
|
1529
|
+
font-size: 10px;
|
|
1530
|
+
font-weight: 700;
|
|
1531
|
+
text-transform: uppercase;
|
|
1532
|
+
letter-spacing: 0.06em;
|
|
1533
|
+
color: var(--theme-elevation-500);
|
|
1534
|
+
margin: 12px 0 6px;
|
|
1535
|
+
}
|
|
1536
|
+
.aiCardNextActions {
|
|
1537
|
+
list-style: none; padding: 0; margin: 0;
|
|
1538
|
+
display: flex; flex-direction: column; gap: 4px;
|
|
1539
|
+
}
|
|
1540
|
+
.aiCardNextAction {
|
|
1541
|
+
display: flex; align-items: center; gap: 8px;
|
|
1542
|
+
padding: 6px 8px;
|
|
1543
|
+
border-radius: 6px;
|
|
1544
|
+
background: var(--theme-elevation-0, #fff);
|
|
1545
|
+
border: 1px solid var(--theme-elevation-200);
|
|
1546
|
+
font-size: 12px;
|
|
1547
|
+
}
|
|
1548
|
+
.aiCardNextCheck {
|
|
1549
|
+
width: 16px; height: 16px;
|
|
1550
|
+
border-radius: 4px;
|
|
1551
|
+
border: 1.5px solid var(--theme-elevation-300);
|
|
1552
|
+
background: var(--theme-elevation-0, #fff);
|
|
1553
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
1554
|
+
flex-shrink: 0;
|
|
1555
|
+
cursor: pointer;
|
|
1556
|
+
font-size: 10px; font-weight: 700;
|
|
1557
|
+
color: transparent;
|
|
1558
|
+
transition: all 100ms;
|
|
1559
|
+
&:hover { border-color: var(--theme-accent-500, #6b46e8); }
|
|
1560
|
+
&:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
1561
|
+
}
|
|
1562
|
+
.aiCardNextCheckDone {
|
|
1563
|
+
background: var(--theme-accent-500, #6b46e8);
|
|
1564
|
+
border-color: var(--theme-accent-500, #6b46e8);
|
|
1565
|
+
color: #fff;
|
|
1566
|
+
}
|
|
1567
|
+
.aiCardNextLabel { flex: 1; color: var(--theme-text); line-height: 1.4; }
|
|
1568
|
+
.aiCardNextLabelDone {
|
|
1569
|
+
text-decoration: line-through;
|
|
1570
|
+
color: var(--theme-text-tertiary);
|
|
1571
|
+
}
|
|
1572
|
+
.aiCardNextWhen {
|
|
1573
|
+
font-size: 10px; font-weight: 600;
|
|
1574
|
+
color: var(--theme-text-tertiary);
|
|
1575
|
+
text-transform: uppercase; letter-spacing: 0.04em;
|
|
1576
|
+
flex-shrink: 0;
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
.composerAliasSelect {
|
|
1580
|
+
height: 28px;
|
|
1581
|
+
padding: 0 8px;
|
|
1582
|
+
font-size: 12px; font-weight: 500;
|
|
1583
|
+
border-radius: 6px;
|
|
1584
|
+
border: 1px solid var(--theme-elevation-200);
|
|
1585
|
+
background: var(--theme-elevation-0, #fff);
|
|
1586
|
+
color: var(--theme-text);
|
|
1587
|
+
cursor: pointer;
|
|
1588
|
+
&:hover { background: var(--theme-elevation-50); }
|
|
1589
|
+
&:focus-visible {
|
|
1590
|
+
outline: 0;
|
|
1591
|
+
border-color: var(--theme-info-500, #2a6bd8);
|
|
1592
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--theme-info-500, #2a6bd8) 18%, transparent);
|
|
1593
|
+
}
|
|
1594
|
+
}
|