@dialpad/dialtone 9.70.0-beta.1 → 9.70.0-beta.2

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 (106) hide show
  1. package/dist/css/dialtone-default-theme.css +4 -4
  2. package/dist/css/dialtone-default-theme.min.css +1 -1
  3. package/dist/css/tokens/tokens-dp-dark.css +3 -3
  4. package/dist/css/tokens/tokens-dp-light.css +4 -4
  5. package/dist/css/tokens/tokens-expressive-dark.css +3 -3
  6. package/dist/css/tokens/tokens-expressive-light.css +4 -4
  7. package/dist/css/tokens/tokens-expressive-sm-dark.css +3 -3
  8. package/dist/css/tokens/tokens-expressive-sm-light.css +4 -4
  9. package/dist/css/tokens/tokens-tmo-dark.css +3 -3
  10. package/dist/css/tokens/tokens-tmo-light.css +4 -4
  11. package/dist/tokens/css/tokens-dp-dark.css +3 -3
  12. package/dist/tokens/css/tokens-dp-light.css +4 -4
  13. package/dist/tokens/css/tokens-expressive-dark.css +3 -3
  14. package/dist/tokens/css/tokens-expressive-light.css +4 -4
  15. package/dist/tokens/css/tokens-expressive-sm-dark.css +3 -3
  16. package/dist/tokens/css/tokens-expressive-sm-light.css +4 -4
  17. package/dist/tokens/css/tokens-tmo-dark.css +3 -3
  18. package/dist/tokens/css/tokens-tmo-light.css +4 -4
  19. package/dist/tokens/doc.json +9632 -9632
  20. package/dist/tokens/less/tokens-dp-dark.less +2 -2
  21. package/dist/tokens/less/tokens-dp-light.less +2 -2
  22. package/dist/tokens/less/tokens-expressive-dark.less +2 -2
  23. package/dist/tokens/less/tokens-expressive-light.less +2 -2
  24. package/dist/tokens/less/tokens-expressive-sm-dark.less +2 -2
  25. package/dist/tokens/less/tokens-expressive-sm-light.less +2 -2
  26. package/dist/tokens/less/tokens-tmo-dark.less +2 -2
  27. package/dist/tokens/less/tokens-tmo-light.less +2 -2
  28. package/dist/{themes/tmo-dark.cjs → tokens/themes/dp-dark.cjs} +1 -1
  29. package/dist/{themes/tmo-dark.js → tokens/themes/dp-dark.js} +2 -2
  30. package/dist/{themes/tmo-light.cjs → tokens/themes/dp-light.cjs} +1 -1
  31. package/dist/{themes/tmo-light.js → tokens/themes/dp-light.js} +2 -2
  32. package/dist/{themes → tokens/themes}/expressive-dark.cjs +1 -1
  33. package/dist/{themes → tokens/themes}/expressive-dark.js +1 -1
  34. package/dist/{themes → tokens/themes}/expressive-light.cjs +1 -1
  35. package/dist/{themes → tokens/themes}/expressive-light.js +1 -1
  36. package/dist/{themes → tokens/themes}/expressive-sm-dark.cjs +1 -1
  37. package/dist/{themes → tokens/themes}/expressive-sm-dark.js +1 -1
  38. package/dist/{themes → tokens/themes}/expressive-sm-light.cjs +1 -1
  39. package/dist/{themes → tokens/themes}/expressive-sm-light.js +1 -1
  40. package/dist/{themes/dp-dark.cjs → tokens/themes/tmo-dark.cjs} +1 -1
  41. package/dist/{themes/dp-dark.js → tokens/themes/tmo-dark.js} +2 -2
  42. package/dist/{themes/dp-light.cjs → tokens/themes/tmo-light.cjs} +1 -1
  43. package/dist/{themes/dp-light.js → tokens/themes/tmo-light.js} +2 -2
  44. package/dist/tokens/themes/types/config.d.ts +2 -0
  45. package/dist/tokens/themes/types/config.d.ts.map +1 -0
  46. package/dist/{themes → tokens/themes}/types/dp-dark.d.ts.map +1 -1
  47. package/dist/{themes → tokens/themes}/types/dp-light.d.ts.map +1 -1
  48. package/dist/tokens/themes/types/expressive-dark.d.ts.map +1 -0
  49. package/dist/tokens/themes/types/expressive-light.d.ts.map +1 -0
  50. package/dist/tokens/themes/types/expressive-sm-dark.d.ts.map +1 -0
  51. package/dist/tokens/themes/types/expressive-sm-light.d.ts.map +1 -0
  52. package/dist/{themes → tokens/themes}/types/tmo-dark.d.ts.map +1 -1
  53. package/dist/{themes → tokens/themes}/types/tmo-light.d.ts.map +1 -1
  54. package/dist/tokens/tokens-dp-dark.json +1 -1
  55. package/dist/tokens/tokens-dp-light.json +2 -2
  56. package/dist/tokens/tokens-expressive-dark.json +1 -1
  57. package/dist/tokens/tokens-expressive-light.json +2 -2
  58. package/dist/tokens/tokens-expressive-sm-dark.json +1 -1
  59. package/dist/tokens/tokens-expressive-sm-light.json +2 -2
  60. package/dist/tokens/tokens-tmo-dark.json +1 -1
  61. package/dist/tokens/tokens-tmo-light.json +2 -2
  62. package/dist/vue2/lib/contact-centers-row.cjs +5 -5
  63. package/dist/vue2/lib/contact-centers-row.cjs.map +1 -1
  64. package/dist/vue2/lib/contact-centers-row.js +5 -5
  65. package/dist/vue2/lib/contact-centers-row.js.map +1 -1
  66. package/dist/vue2/lib/contact-row.cjs +9 -2
  67. package/dist/vue2/lib/contact-row.cjs.map +1 -1
  68. package/dist/vue2/lib/contact-row.js +9 -2
  69. package/dist/vue2/lib/contact-row.js.map +1 -1
  70. package/dist/vue2/style.css +57 -57
  71. package/dist/vue2/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +7 -7
  72. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +15 -0
  73. package/dist/vue2/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  74. package/dist/vue3/lib/contact-centers-row.cjs +5 -5
  75. package/dist/vue3/lib/contact-centers-row.cjs.map +1 -1
  76. package/dist/vue3/lib/contact-centers-row.js +5 -5
  77. package/dist/vue3/lib/contact-centers-row.js.map +1 -1
  78. package/dist/vue3/lib/contact-row.cjs +10 -2
  79. package/dist/vue3/lib/contact-row.cjs.map +1 -1
  80. package/dist/vue3/lib/contact-row.js +10 -2
  81. package/dist/vue3/lib/contact-row.js.map +1 -1
  82. package/dist/vue3/style.css +57 -57
  83. package/dist/vue3/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +7 -7
  84. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +15 -0
  85. package/dist/vue3/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  86. package/package.json +5 -6
  87. package/dist/themes/types/config.d.ts +0 -6
  88. package/dist/themes/types/config.d.ts.map +0 -1
  89. package/dist/themes/types/expressive-dark.d.ts.map +0 -1
  90. package/dist/themes/types/expressive-light.d.ts.map +0 -1
  91. package/dist/themes/types/expressive-sm-dark.d.ts.map +0 -1
  92. package/dist/themes/types/expressive-sm-light.d.ts.map +0 -1
  93. /package/dist/{themes → tokens/themes}/chunks/tokens-base-dark--ozK7f0P.js +0 -0
  94. /package/dist/{themes → tokens/themes}/chunks/tokens-base-dark-V8E4WaJI.js +0 -0
  95. /package/dist/{themes → tokens/themes}/chunks/tokens-base-light-LYlvM3eZ.js +0 -0
  96. /package/dist/{themes → tokens/themes}/chunks/tokens-base-light-ljPrpLe2.js +0 -0
  97. /package/dist/{themes → tokens/themes}/config.cjs +0 -0
  98. /package/dist/{themes → tokens/themes}/config.js +0 -0
  99. /package/dist/{themes → tokens/themes}/types/dp-dark.d.ts +0 -0
  100. /package/dist/{themes → tokens/themes}/types/dp-light.d.ts +0 -0
  101. /package/dist/{themes → tokens/themes}/types/expressive-dark.d.ts +0 -0
  102. /package/dist/{themes → tokens/themes}/types/expressive-light.d.ts +0 -0
  103. /package/dist/{themes → tokens/themes}/types/expressive-sm-dark.d.ts +0 -0
  104. /package/dist/{themes → tokens/themes}/types/expressive-sm-light.d.ts +0 -0
  105. /package/dist/{themes → tokens/themes}/types/tmo-dark.d.ts +0 -0
  106. /package/dist/{themes → tokens/themes}/types/tmo-light.d.ts +0 -0
@@ -1230,7 +1230,7 @@ body > .os-scrollbar {
1230
1230
  }
1231
1231
  }
1232
1232
  /* stylelint-disable selector-pseudo-class-no-unknown */
1233
- .dt-leftbar-row[data-v-aeb8c657] {
1233
+ .dt-leftbar-row[data-v-17c77b19] {
1234
1234
  --leftbar-row-color-foreground: var(--dt-theme-sidebar-color-foreground);
1235
1235
  --leftbar-row-color-background: var(--dt-theme-sidebar-row-color-background);
1236
1236
  --leftbar-row-radius: var(--dt-size-radius-pill);
@@ -1261,49 +1261,49 @@ body > .os-scrollbar {
1261
1261
  transition-duration: var(--td200);
1262
1262
  transition-property: background-color, border, box-shadow;
1263
1263
  }
1264
- .dt-leftbar-row[data-v-aeb8c657]:not(.dt-leftbar-row--no-action):hover,
1265
- .dt-leftbar-row[data-v-aeb8c657]:not(.dt-leftbar-row--no-action):focus-within {
1264
+ .dt-leftbar-row[data-v-17c77b19]:not(.dt-leftbar-row--no-action):hover,
1265
+ .dt-leftbar-row[data-v-17c77b19]:not(.dt-leftbar-row--no-action):focus-within {
1266
1266
  --leftbar-row-unread-badge-display: none;
1267
1267
  }
1268
- .dt-leftbar-row[data-v-aeb8c657]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action,
1269
- .dt-leftbar-row[data-v-aeb8c657]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action {
1268
+ .dt-leftbar-row[data-v-17c77b19]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action,
1269
+ .dt-leftbar-row[data-v-17c77b19]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action {
1270
1270
  display: inline-flex;
1271
1271
  }
1272
- .dt-leftbar-row[data-v-aeb8c657]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action-button,
1273
- .dt-leftbar-row[data-v-aeb8c657]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action-button {
1272
+ .dt-leftbar-row[data-v-17c77b19]:not(.dt-leftbar-row--no-action):hover .dt-leftbar-row__action-button,
1273
+ .dt-leftbar-row[data-v-17c77b19]:not(.dt-leftbar-row--no-action):focus-within .dt-leftbar-row__action-button {
1274
1274
  opacity: 1;
1275
1275
  }
1276
- .dt-leftbar-row[data-v-aeb8c657]:hover,
1277
- .dt-leftbar-row[data-v-aeb8c657]:focus-within {
1276
+ .dt-leftbar-row[data-v-17c77b19]:hover,
1277
+ .dt-leftbar-row[data-v-17c77b19]:focus-within {
1278
1278
  --leftbar-row-color-background: var(--dt-theme-sidebar-row-color-background-hover);
1279
1279
  }
1280
- .dt-leftbar-row[data-v-aeb8c657]:hover .d-presence,
1281
- .dt-leftbar-row[data-v-aeb8c657]:focus-within .d-presence {
1280
+ .dt-leftbar-row[data-v-17c77b19]:hover .d-presence,
1281
+ .dt-leftbar-row[data-v-17c77b19]:focus-within .d-presence {
1282
1282
  --presence-color-border-base: var(--dt-color-black-200);
1283
1283
  }
1284
- .dt-leftbar-row[data-v-aeb8c657]:hover .d-avatar__count,
1285
- .dt-leftbar-row[data-v-aeb8c657]:focus-within .d-avatar__count {
1284
+ .dt-leftbar-row[data-v-17c77b19]:hover .d-avatar__count,
1285
+ .dt-leftbar-row[data-v-17c77b19]:focus-within .d-avatar__count {
1286
1286
  --avatar-count-color-shadow: var(--dt-theme-sidebar-selected-row-color-background);
1287
1287
  }
1288
- .dt-leftbar-row--has-unread[data-v-aeb8c657] {
1288
+ .dt-leftbar-row--has-unread[data-v-17c77b19] {
1289
1289
  --leftbar-row-description-font-weight: var(--dt-font-weight-bold);
1290
1290
  --leftbar-row-description-color-foreground: var(--dt-theme-sidebar-color-foreground-unread);
1291
1291
  --leftbar-row-alpha-color-foreground: var(--dt-theme-sidebar-color-foreground-unread);
1292
1292
  }
1293
- .dt-leftbar-row--muted[data-v-aeb8c657] {
1293
+ .dt-leftbar-row--muted[data-v-17c77b19] {
1294
1294
  --leftbar-row-opacity: 60%;
1295
1295
  }
1296
- .dt-leftbar-row--selected[data-v-aeb8c657] {
1296
+ .dt-leftbar-row--selected[data-v-17c77b19] {
1297
1297
  --leftbar-row-color-background: var(--dt-theme-sidebar-selected-row-color-background);
1298
1298
  --leftbar-row-description-color-foreground: var(--dt-theme-sidebar-selected-row-color-foreground);
1299
1299
  }
1300
- .dt-leftbar-row--selected[data-v-aeb8c657] .d-presence {
1300
+ .dt-leftbar-row--selected[data-v-17c77b19] .d-presence {
1301
1301
  --presence-color-border-base: var(--dt-color-black-200);
1302
1302
  }
1303
- .dt-leftbar-row--selected[data-v-aeb8c657] .d-avatar__count {
1303
+ .dt-leftbar-row--selected[data-v-17c77b19] .d-avatar__count {
1304
1304
  --avatar-count-color-shadow: var(--dt-theme-sidebar-selected-row-color-background);
1305
1305
  }
1306
- .dt-leftbar-row__is-typing[data-v-aeb8c657] {
1306
+ .dt-leftbar-row__is-typing[data-v-17c77b19] {
1307
1307
  --is-typing-size-shape: var(--dt-size-550);
1308
1308
  position: absolute;
1309
1309
  display: flex;
@@ -1315,7 +1315,7 @@ body > .os-scrollbar {
1315
1315
  border-radius: var(--dt-size-radius-pill);
1316
1316
  opacity: 0.75;
1317
1317
  }
1318
- .dt-leftbar-row__is-typing span[data-v-aeb8c657] {
1318
+ .dt-leftbar-row__is-typing span[data-v-17c77b19] {
1319
1319
  display: inline-block;
1320
1320
  width: var(--dt-size-300);
1321
1321
  height: var(--dt-size-300);
@@ -1324,18 +1324,18 @@ body > .os-scrollbar {
1324
1324
  border-radius: var(--dt-size-radius-pill);
1325
1325
  opacity: 0.3;
1326
1326
  transition: all 500ms ease;
1327
- animation: wave-aeb8c657 1.5s ease infinite;
1327
+ animation: wave-17c77b19 1.5s ease infinite;
1328
1328
  }
1329
- .dt-leftbar-row__is-typing span[data-v-aeb8c657]:nth-child(1) {
1329
+ .dt-leftbar-row__is-typing span[data-v-17c77b19]:nth-child(1) {
1330
1330
  animation-delay: 0ms;
1331
1331
  }
1332
- .dt-leftbar-row__is-typing span[data-v-aeb8c657]:nth-child(2) {
1332
+ .dt-leftbar-row__is-typing span[data-v-17c77b19]:nth-child(2) {
1333
1333
  animation-delay: var(--td100);
1334
1334
  }
1335
- .dt-leftbar-row__is-typing span[data-v-aeb8c657]:nth-child(3) {
1335
+ .dt-leftbar-row__is-typing span[data-v-17c77b19]:nth-child(3) {
1336
1336
  animation-delay: var(--td200);
1337
1337
  }
1338
- .dt-leftbar-row__primary[data-v-aeb8c657] {
1338
+ .dt-leftbar-row__primary[data-v-17c77b19] {
1339
1339
  display: flex;
1340
1340
  flex: 1;
1341
1341
  align-items: center;
@@ -1352,18 +1352,18 @@ body > .os-scrollbar {
1352
1352
  border-radius: var(--leftbar-row-radius);
1353
1353
  appearance: none;
1354
1354
  }
1355
- .dt-leftbar-row__primary[data-v-aeb8c657]:active {
1355
+ .dt-leftbar-row__primary[data-v-17c77b19]:active {
1356
1356
  --leftbar-row-color-background: var(--dt-theme-sidebar-row-color-background-active);
1357
1357
  }
1358
- .dt-leftbar-row__primary[data-v-aeb8c657]:focus-visible {
1358
+ .dt-leftbar-row__primary[data-v-17c77b19]:focus-visible {
1359
1359
  box-shadow: var(--dt-shadow-focus-inset);
1360
1360
  }
1361
- .dt-leftbar-row__action-button[data-v-aeb8c657] {
1361
+ .dt-leftbar-row__action-button[data-v-17c77b19] {
1362
1362
  width: var(--leftbar-row-action-width);
1363
1363
  height: var(--leftbar-row-action-height);
1364
1364
  opacity: 0;
1365
1365
  }
1366
- .dt-leftbar-row__alpha[data-v-aeb8c657] {
1366
+ .dt-leftbar-row__alpha[data-v-17c77b19] {
1367
1367
  display: flex;
1368
1368
  align-items: center;
1369
1369
  justify-content: center;
@@ -1375,11 +1375,11 @@ body > .os-scrollbar {
1375
1375
  color: var(--leftbar-row-alpha-color-foreground);
1376
1376
  border-radius: var(--leftbar-row-radius) 0 0 var(--leftbar-row-radius);
1377
1377
  }
1378
- .dt-leftbar-row__label[data-v-aeb8c657] {
1378
+ .dt-leftbar-row__label[data-v-17c77b19] {
1379
1379
  flex: 0 1;
1380
1380
  min-width: 0;
1381
1381
  }
1382
- .dt-leftbar-row__omega[data-v-aeb8c657] {
1382
+ .dt-leftbar-row__omega[data-v-17c77b19] {
1383
1383
  position: absolute;
1384
1384
  top: var(--leftbar-row-action-position-bottom);
1385
1385
  right: var(--leftbar-row-action-position-right);
@@ -1391,34 +1391,34 @@ body > .os-scrollbar {
1391
1391
  border-radius: var(--leftbar-row-radius);
1392
1392
  transform: translateY(calc(var(--leftbar-row-action-position-bottom) * -1));
1393
1393
  }
1394
- .dt-leftbar-row__unread-badge[data-v-aeb8c657] {
1394
+ .dt-leftbar-row__unread-badge[data-v-17c77b19] {
1395
1395
  display: var(--leftbar-row-unread-badge-display);
1396
1396
  color: var(--dt-theme-mention-color-foreground);
1397
1397
  background-color: var(--dt-theme-mention-color-background);
1398
1398
  }
1399
- .dt-leftbar-row--unread-count[data-v-aeb8c657] .dt-leftbar-row__action {
1399
+ .dt-leftbar-row--unread-count[data-v-17c77b19] .dt-leftbar-row__action {
1400
1400
  display: none;
1401
1401
  }
1402
- .dt-leftbar-row__unread-count-badge[data-v-aeb8c657] {
1402
+ .dt-leftbar-row__unread-count-badge[data-v-17c77b19] {
1403
1403
  border-top-right-radius: var(--dt-size-radius-0);
1404
1404
  border-bottom-right-radius: var(--dt-size-radius-0);
1405
1405
  }
1406
- .dt-leftbar-row__unread-mention-count-badge[data-v-aeb8c657] {
1406
+ .dt-leftbar-row__unread-mention-count-badge[data-v-17c77b19] {
1407
1407
  color: var(--dt-theme-mention-color-foreground-strong);
1408
1408
  background-color: var(--dt-theme-mention-color-background-strong);
1409
1409
  border-top-left-radius: var(--dt-size-radius-0);
1410
1410
  border-bottom-left-radius: var(--dt-size-radius-0);
1411
1411
  }
1412
- .dt-leftbar-row__unread-mention-only-count-badge[data-v-aeb8c657] {
1412
+ .dt-leftbar-row__unread-mention-only-count-badge[data-v-17c77b19] {
1413
1413
  color: var(--dt-theme-mention-color-foreground-strong);
1414
1414
  background-color: var(--dt-theme-mention-color-background-strong);
1415
1415
  }
1416
- .dt-leftbar-row__active-voice[data-v-aeb8c657] {
1416
+ .dt-leftbar-row__active-voice[data-v-17c77b19] {
1417
1417
  display: inline-flex;
1418
1418
  color: var(--dt-color-purple-400);
1419
- -webkit-animation-name: opacity-pulsate-aeb8c657;
1420
- -moz-animation-name: opacity-pulsate-aeb8c657;
1421
- animation-name: opacity-pulsate-aeb8c657;
1419
+ -webkit-animation-name: opacity-pulsate-17c77b19;
1420
+ -moz-animation-name: opacity-pulsate-17c77b19;
1421
+ animation-name: opacity-pulsate-17c77b19;
1422
1422
  -webkit-animation-duration: 1s;
1423
1423
  -moz-animation-duration: 1s;
1424
1424
  animation-duration: 1s;
@@ -1429,7 +1429,7 @@ body > .os-scrollbar {
1429
1429
  -moz-animation-fill-mode: both;
1430
1430
  animation-fill-mode: both;
1431
1431
  }
1432
- .dt-leftbar-row__dnd[data-v-aeb8c657] {
1432
+ .dt-leftbar-row__dnd[data-v-17c77b19] {
1433
1433
  padding-top: var(--dt-space-200);
1434
1434
  padding-right: var(--dt-space-300);
1435
1435
  color: var(--dt-color-foreground-tertiary);
@@ -1437,26 +1437,26 @@ body > .os-scrollbar {
1437
1437
  font-size: var(--dt-font-size-100);
1438
1438
  line-height: var(--dt-font-line-height-400);
1439
1439
  }
1440
- .dt-leftbar-row__container--off-duty[data-v-aeb8c657] {
1440
+ .dt-leftbar-row__container--off-duty[data-v-17c77b19] {
1441
1441
  background-color: var(--dt-badge-color-background-critical);
1442
1442
  border: var(--dt-size-100) solid var(--dt-color-border-subtle);
1443
1443
  border-radius: var(--dt-size-radius-500);
1444
1444
  }
1445
- .dt-leftbar-row__container--off-duty[data-v-aeb8c657] .dt-leftbar-row__primary {
1445
+ .dt-leftbar-row__container--off-duty[data-v-17c77b19] .dt-leftbar-row__primary {
1446
1446
  margin: calc(var(--dt-size-100) * -1);
1447
1447
  }
1448
- .dt-leftbar-row--contact-centers[data-v-aeb8c657] .dt-leftbar-row__alpha {
1448
+ .dt-leftbar-row--contact-centers[data-v-17c77b19] .dt-leftbar-row__alpha {
1449
1449
  padding-right: var(--dt-space-450);
1450
1450
  padding-left: var(--dt-space-450);
1451
1451
  }
1452
- .dt-leftbar-row--contact-centers .dt-leftbar-row__action-container[data-v-aeb8c657] {
1452
+ .dt-leftbar-row--contact-centers .dt-leftbar-row__action-container[data-v-17c77b19] {
1453
1453
  display: inline-flex;
1454
1454
  align-items: center;
1455
1455
  justify-content: flex-end;
1456
1456
  min-width: var(--dt-size-600);
1457
1457
  height: var(--dt-size-500);
1458
1458
  }
1459
- .dt-leftbar-row[data-v-aeb8c657] .dt-leftbar-row__description {
1459
+ .dt-leftbar-row[data-v-17c77b19] .dt-leftbar-row__description {
1460
1460
  overflow: hidden;
1461
1461
  color: var(--leftbar-row-description-color-foreground);
1462
1462
  font-weight: var(--leftbar-row-description-font-weight);
@@ -1465,7 +1465,7 @@ body > .os-scrollbar {
1465
1465
  white-space: nowrap;
1466
1466
  text-overflow: ellipsis;
1467
1467
  }
1468
- .dt-leftbar-row[data-v-aeb8c657] .dt-leftbar-row__status {
1468
+ .dt-leftbar-row[data-v-17c77b19] .dt-leftbar-row__status {
1469
1469
  padding-bottom: var(--dt-space-100);
1470
1470
  overflow: hidden;
1471
1471
  color: var(--leftbar-row-status-color-foreground);
@@ -1474,19 +1474,19 @@ body > .os-scrollbar {
1474
1474
  white-space: nowrap;
1475
1475
  text-overflow: ellipsis;
1476
1476
  }
1477
- .dt-leftbar-row[data-v-aeb8c657] .dt-leftbar-row__meta-context ~ .dt-leftbar-row__meta-custom:not(:empty)::before {
1477
+ .dt-leftbar-row[data-v-17c77b19] .dt-leftbar-row__meta-context ~ .dt-leftbar-row__meta-custom:not(:empty)::before {
1478
1478
  color: var(--dt-theme-sidebar-status-color-foreground);
1479
1479
  content: " • ";
1480
1480
  }
1481
- .dt-leftbar-row__icon-cc[data-v-aeb8c657] {
1481
+ .dt-leftbar-row__icon-cc[data-v-17c77b19] {
1482
1482
  width: calc(var(--dt-size-300) * 3.5);
1483
1483
  height: calc(var(--dt-size-300) * 3.5);
1484
1484
  border-radius: var(--dt-size-200);
1485
1485
  }
1486
- .opacity-pulsate[data-v-aeb8c657] {
1487
- -webkit-animation-name: opacity-pulsate-aeb8c657;
1488
- -moz-animation-name: opacity-pulsate-aeb8c657;
1489
- animation-name: opacity-pulsate-aeb8c657;
1486
+ .opacity-pulsate[data-v-17c77b19] {
1487
+ -webkit-animation-name: opacity-pulsate-17c77b19;
1488
+ -moz-animation-name: opacity-pulsate-17c77b19;
1489
+ animation-name: opacity-pulsate-17c77b19;
1490
1490
  -webkit-animation-duration: 1s;
1491
1491
  -moz-animation-duration: 1s;
1492
1492
  animation-duration: 1s;
@@ -1497,7 +1497,7 @@ body > .os-scrollbar {
1497
1497
  -moz-animation-fill-mode: both;
1498
1498
  animation-fill-mode: both;
1499
1499
  }
1500
- @keyframes opacity-pulsate-aeb8c657 {
1500
+ @keyframes opacity-pulsate-17c77b19 {
1501
1501
  0%,
1502
1502
  100% {
1503
1503
  opacity: 0.2;
@@ -1506,7 +1506,7 @@ body > .os-scrollbar {
1506
1506
  opacity: 1;
1507
1507
  }
1508
1508
  }
1509
- @keyframes opacity-pulsate-aeb8c657 {
1509
+ @keyframes opacity-pulsate-17c77b19 {
1510
1510
  0%,
1511
1511
  100% {
1512
1512
  opacity: 0.2;
@@ -1515,7 +1515,7 @@ body > .os-scrollbar {
1515
1515
  opacity: 1;
1516
1516
  }
1517
1517
  }
1518
- @keyframes opacity-pulsate-aeb8c657 {
1518
+ @keyframes opacity-pulsate-17c77b19 {
1519
1519
  0%,
1520
1520
  100% {
1521
1521
  opacity: 0.2;
@@ -1524,7 +1524,7 @@ body > .os-scrollbar {
1524
1524
  opacity: 1;
1525
1525
  }
1526
1526
  }
1527
- @keyframes wave-aeb8c657 {
1527
+ @keyframes wave-17c77b19 {
1528
1528
  0%,
1529
1529
  50%,
1530
1530
  100% {
@@ -28,11 +28,11 @@ declare const _default: import("vue").DefineComponent<{
28
28
  default: boolean;
29
29
  };
30
30
  /**
31
- * Number of unread messages
31
+ * Number of unread messages, could be a string to support '99+'
32
32
  */
33
33
  unreadCount: {
34
- type: NumberConstructor;
35
- default: number;
34
+ type: StringConstructor;
35
+ default: null;
36
36
  };
37
37
  /**
38
38
  * Aria label for the menu button.
@@ -82,11 +82,11 @@ declare const _default: import("vue").DefineComponent<{
82
82
  default: boolean;
83
83
  };
84
84
  /**
85
- * Number of unread messages
85
+ * Number of unread messages, could be a string to support '99+'
86
86
  */
87
87
  unreadCount: {
88
- type: NumberConstructor;
89
- default: number;
88
+ type: StringConstructor;
89
+ default: null;
90
90
  };
91
91
  /**
92
92
  * Aria label for the menu button.
@@ -99,7 +99,7 @@ declare const _default: import("vue").DefineComponent<{
99
99
  ariaLabel: string;
100
100
  selected: boolean;
101
101
  hideActions: boolean;
102
- unreadCount: number;
102
+ unreadCount: string;
103
103
  }>;
104
104
  export default _default;
105
105
  //# sourceMappingURL=contact_centers_row.vue.d.ts.map
@@ -25,6 +25,13 @@ declare const _default: import("vue").DefineComponent<{
25
25
  type: StringConstructor;
26
26
  default: null;
27
27
  };
28
+ /**
29
+ * Avatar color to display if `avatarSrc` is empty.
30
+ */
31
+ avatarColor: {
32
+ type: StringConstructor;
33
+ default: null;
34
+ };
28
35
  /**
29
36
  * Text describing the user's presence, such as "in a meeting"
30
37
  */
@@ -141,6 +148,13 @@ declare const _default: import("vue").DefineComponent<{
141
148
  type: StringConstructor;
142
149
  default: null;
143
150
  };
151
+ /**
152
+ * Avatar color to display if `avatarSrc` is empty.
153
+ */
154
+ avatarColor: {
155
+ type: StringConstructor;
156
+ default: null;
157
+ };
144
158
  /**
145
159
  * Text describing the user's presence, such as "in a meeting"
146
160
  */
@@ -232,6 +246,7 @@ declare const _default: import("vue").DefineComponent<{
232
246
  avatarSrc: string;
233
247
  avatarSeed: string;
234
248
  noInitials: boolean;
249
+ avatarColor: string;
235
250
  unreadCount: string;
236
251
  unreadCountTooltip: string;
237
252
  hasUnreads: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"contact_row.vue.d.ts","sourceRoot":"","sources":["../../../../../recipes/leftbar/contact_row/contact_row.vue.js"],"names":[],"mappings":";IAmBI;;;OAGG;;;;;IAMH;;;;;;OAMG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;;OAGG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;;;;;;IAxHH;;;OAGG;;;;;IAMH;;;;;;OAMG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;;OAGG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG"}
1
+ {"version":3,"file":"contact_row.vue.d.ts","sourceRoot":"","sources":["../../../../../recipes/leftbar/contact_row/contact_row.vue.js"],"names":[],"mappings":";IAmBI;;;OAGG;;;;;IAMH;;;;;;OAMG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;;OAGG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;;;;;;IAhIH;;;OAGG;;;;;IAMH;;;;;;OAMG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;;OAGG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG;;;;;IAMH;;OAEG"}
@@ -58,11 +58,11 @@ const _sfc_main = {
58
58
  default: false
59
59
  },
60
60
  /**
61
- * Number of unread messages
61
+ * Number of unread messages, could be a string to support '99+'
62
62
  */
63
63
  unreadCount: {
64
- type: Number,
65
- default: 0
64
+ type: String,
65
+ default: null
66
66
  },
67
67
  /**
68
68
  * Aria label for the menu button.
@@ -111,7 +111,7 @@ const _sfc_main = {
111
111
  return common_utils.extractVueListeners(this.$attrs);
112
112
  },
113
113
  showUnreadCount() {
114
- return this.unreadCount > 0;
114
+ return !!this.unreadCount;
115
115
  }
116
116
  },
117
117
  watch: {
@@ -234,6 +234,6 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
234
234
  ])
235
235
  ], 2);
236
236
  }
237
- const contact_centers_row = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-cc2f5ae8"]]);
237
+ const contact_centers_row = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-0f361db5"]]);
238
238
  exports.DtRecipeContactCentersRow = contact_centers_row;
239
239
  //# sourceMappingURL=contact-centers-row.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact-centers-row.cjs","sources":["../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'dt-leftbar-row__container',\n { 'dt-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"dt-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"dt-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"dt-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"dt-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"dt-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"dt-leftbar-row__unread-badge\"\n data-qa=\"dt-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"dt-leftbar-row__action\"\n data-qa=\"dt-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"dt-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: Number,\n default: 0,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'dt-leftbar-row',\n 'dt-leftbar-row--contact-centers',\n {\n 'dt-leftbar-row--unread-count': this.showUnreadCount,\n 'dt-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return this.unreadCount > 0;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.dt-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.dt-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.dt-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n@import \"../style/leftbar_row.less\";\n</style>\n"],"names":["DtButton","DtBadge","DtEmojiTextWrapper","safeConcatStrings","extractVueListeners","_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toHandlers","_createVNode","_openBlock","_renderSlot","_createBlock","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"contact-centers-row.cjs","sources":["../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'dt-leftbar-row__container',\n { 'dt-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"dt-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"dt-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"dt-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"dt-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"dt-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"dt-leftbar-row__unread-badge\"\n data-qa=\"dt-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"dt-leftbar-row__action\"\n data-qa=\"dt-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"dt-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'dt-leftbar-row',\n 'dt-leftbar-row--contact-centers',\n {\n 'dt-leftbar-row--unread-count': this.showUnreadCount,\n 'dt-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.dt-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.dt-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.dt-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n@import \"../style/leftbar_row.less\";\n</style>\n"],"names":["DtButton","DtBadge","DtEmojiTextWrapper","safeConcatStrings","extractVueListeners","_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toHandlers","_createVNode","_openBlock","_renderSlot","_createBlock","_withModifiers"],"mappings":"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"}
@@ -56,11 +56,11 @@ const _sfc_main = {
56
56
  default: false
57
57
  },
58
58
  /**
59
- * Number of unread messages
59
+ * Number of unread messages, could be a string to support '99+'
60
60
  */
61
61
  unreadCount: {
62
- type: Number,
63
- default: 0
62
+ type: String,
63
+ default: null
64
64
  },
65
65
  /**
66
66
  * Aria label for the menu button.
@@ -109,7 +109,7 @@ const _sfc_main = {
109
109
  return extractVueListeners(this.$attrs);
110
110
  },
111
111
  showUnreadCount() {
112
- return this.unreadCount > 0;
112
+ return !!this.unreadCount;
113
113
  }
114
114
  },
115
115
  watch: {
@@ -232,7 +232,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
232
232
  ])
233
233
  ], 2);
234
234
  }
235
- const contact_centers_row = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-cc2f5ae8"]]);
235
+ const contact_centers_row = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-0f361db5"]]);
236
236
  export {
237
237
  contact_centers_row as DtRecipeContactCentersRow
238
238
  };
@@ -1 +1 @@
1
- {"version":3,"file":"contact-centers-row.js","sources":["../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'dt-leftbar-row__container',\n { 'dt-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"dt-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"dt-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"dt-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"dt-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"dt-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"dt-leftbar-row__unread-badge\"\n data-qa=\"dt-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"dt-leftbar-row__action\"\n data-qa=\"dt-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"dt-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: Number,\n default: 0,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'dt-leftbar-row',\n 'dt-leftbar-row--contact-centers',\n {\n 'dt-leftbar-row--unread-count': this.showUnreadCount,\n 'dt-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return this.unreadCount > 0;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.dt-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.dt-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.dt-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n@import \"../style/leftbar_row.less\";\n</style>\n"],"names":["DtEmojiTextWrapper","_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toHandlers","_createVNode","_openBlock","_renderSlot","_createBlock","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"contact-centers-row.js","sources":["../../recipes/leftbar/contact_centers_row/contact_centers_row.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'dt-leftbar-row__container',\n { 'dt-leftbar-row__container--off-duty': $slots.timer },\n ]\"\n >\n <div\n :class=\"leftbarContactCentersRowClasses\"\n data-qa=\"dt-recipe-contact-centers-row\"\n >\n <a\n class=\"dt-leftbar-row__primary\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-leftbar-row-link'\"\n :aria-label=\"getAriaLabel\"\n :title=\"description\"\n :href=\"$attrs.href ?? 'javascript:void(0)'\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @click=\"$emit('click', $event)\"\n >\n <div class=\"dt-leftbar-row__alpha\">\n <dt-icon-headphones\n size=\"300\"\n data-qa=\"dt-leftbar-row-icon\"\n />\n </div>\n <div\n class=\"dt-leftbar-row__label\"\n :style=\"`flex-basis: ${labelWidth}`\"\n >\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ description }}\n </dt-emoji-text-wrapper>\n </div>\n </a>\n <div\n v-if=\"!hideActions\"\n class=\"dt-leftbar-row__omega\"\n >\n <slot name=\"right\" />\n <div class=\"dt-leftbar-row__action-container\">\n <dt-badge\n v-if=\"showUnreadCount\"\n class=\"dt-leftbar-row__unread-badge\"\n data-qa=\"dt-leftbar-row-unread-badge\"\n kind=\"count\"\n type=\"bulletin\"\n >\n {{ unreadCount }}\n </dt-badge>\n <dt-button\n class=\"dt-leftbar-row__action\"\n data-qa=\"dt-leftbar-row-action-button\"\n :aria-label=\"menuButtonAriaLabel\"\n importance=\"clear\"\n size=\"xs\"\n circle\n @click.stop=\"$emit('click-menu', $event)\"\n >\n <template #icon>\n <dt-icon-chevron-down size=\"100\" />\n </template>\n </dt-button>\n </div>\n </div>\n </div>\n <div class=\"dt-leftbar-row__bottom\">\n <slot name=\"timer\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtBadge } from '@/components/badge';\nimport { DtButton } from '@/components/button';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtIconChevronDown from '@dialpad/dialtone-icons/vue3/chevron-down';\nimport DtIconHeadphones from '@dialpad/dialtone-icons/vue3/headphones';\n\nexport default {\n name: 'DtRecipeContactCentersRow',\n\n components: {\n DtButton,\n DtBadge,\n DtEmojiTextWrapper,\n DtIconHeadphones,\n DtIconChevronDown,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Will be read out by a screen reader upon focus of this row. If not defined \"description\" will be read.\n */\n ariaLabel: {\n type: String,\n default: '',\n },\n\n /**\n * Text displayed next to the icon. Required.\n */\n description: {\n type: String,\n required: true,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Making this true will hide the unread count badge, the chevron button, and the right slot\n */\n hideActions: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages, could be a string to support '99+'\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Aria label for the menu button.\n */\n menuButtonAriaLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Native click event on the row itself\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Menu button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click-menu',\n ],\n\n data () {\n return {\n labelWidth: 'auto',\n };\n },\n\n computed: {\n leftbarContactCentersRowClasses () {\n return [\n 'dt-leftbar-row',\n 'dt-leftbar-row--contact-centers',\n {\n 'dt-leftbar-row--unread-count': this.showUnreadCount,\n 'dt-leftbar-row--selected': this.selected,\n },\n ];\n },\n\n getAriaLabel () {\n return this.ariaLabel\n ? this.ariaLabel\n : safeConcatStrings([this.description, this.unreadCountTooltip]);\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n showUnreadCount () {\n return !!this.unreadCount;\n },\n },\n\n watch: {\n $props: {\n deep: true,\n async handler () {\n await this.$nextTick();\n this.adjustLabelWidth();\n },\n },\n },\n\n mounted () {\n this.resizeObserver = new ResizeObserver(this.adjustLabelWidth);\n this.resizeObserver.observe(this.$el);\n this.adjustLabelWidth();\n },\n\n beforeUnmount: function () {\n this.resizeObserver.disconnect();\n },\n\n methods: {\n adjustLabelWidth () {\n const labelWidth = this.$el?.querySelector('.dt-leftbar-row__primary')?.clientWidth || 0;\n const omegaWidth = this.$el?.querySelector('.dt-leftbar-row__omega')?.clientWidth || 0;\n const alphaWidth = this.$el?.querySelector('.dt-leftbar-row__alpha')?.clientWidth || 0;\n const paddings = 12;\n this.labelWidth = labelWidth - (omegaWidth + alphaWidth + paddings) + 'px';\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n@import \"../style/leftbar_row.less\";\n</style>\n"],"names":["DtEmojiTextWrapper","_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_toHandlers","_createVNode","_openBlock","_renderSlot","_createBlock","_withModifiers"],"mappings":";;;;;;;;;;;;;;;;;;AAqFA,MAAK,YAAU;AAAA,EACb,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA,oBAAAA;AAAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAED,cAAc;AAAA,EAEd,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKD,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,qBAAqB;AAAA,MACnB,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,EACF;AAAA,EAED,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA;AAAA,EACD;AAAA,EAED,OAAQ;AACN,WAAO;AAAA,MACL,YAAY;AAAA;EAEf;AAAA,EAED,UAAU;AAAA,IACR,kCAAmC;AACjC,aAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,UACE,gCAAgC,KAAK;AAAA,UACrC,4BAA4B,KAAK;AAAA,QAClC;AAAA;IAEJ;AAAA,IAED,eAAgB;AACd,aAAO,KAAK,YACR,KAAK,YACL,kBAAkB,CAAC,KAAK,aAAa,KAAK,kBAAkB,CAAC;AAAA,IAClE;AAAA,IAED,sBAAuB;AACrB,aAAO,oBAAoB,KAAK,MAAM;AAAA,IACvC;AAAA,IAED,kBAAmB;AACjB,aAAO,CAAC,CAAC,KAAK;AAAA,IACf;AAAA,EACF;AAAA,EAED,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,MAAM,UAAW;AACf,cAAM,KAAK;AACX,aAAK,iBAAgB;AAAA,MACtB;AAAA,IACF;AAAA,EACF;AAAA,EAED,UAAW;AACT,SAAK,iBAAiB,IAAI,eAAe,KAAK,gBAAgB;AAC9D,SAAK,eAAe,QAAQ,KAAK,GAAG;AACpC,SAAK,iBAAgB;AAAA,EACtB;AAAA,EAED,eAAe,WAAY;AACzB,SAAK,eAAe;EACrB;AAAA,EAED,SAAS;AAAA,IACP,mBAAoB;;AAClB,YAAM,eAAa,gBAAK,QAAL,mBAAU,cAAc,gCAAxB,mBAAqD,gBAAe;AACvF,YAAM,eAAa,gBAAK,QAAL,mBAAU,cAAc,8BAAxB,mBAAmD,gBAAe;AACrF,YAAM,eAAa,gBAAK,QAAL,mBAAU,cAAc,8BAAxB,mBAAmD,gBAAe;AACrF,YAAM,WAAW;AACjB,WAAK,aAAa,cAAc,aAAa,aAAa,YAAY;AAAA,IACvE;AAAA,EACF;AACH;;AA/Ma,MAAA,aAAA,EAAA,OAAM,wBAAuB;;;EAqBlC,OAAM;;AAGD,MAAA,aAAA,EAAA,OAAM,mCAAkC;AA0B5C,MAAA,aAAA,EAAA,OAAM,yBAAwB;;;;;;;sBAtErCC,mBAyEM,OAAA;AAAA,IAxEH,OAAKC,eAAA;AAAA;MAAsF,EAAA,uCAAA,KAAA,OAAO,MAAK;AAAA;;IAKxGC,mBA+DM,OAAA;AAAA,MA9DH,sBAAO,SAA+B,+BAAA;AAAA,MACvC,WAAQ;AAAA;MAERA,mBA4BI,KA5BJC,WA4BI;AAAA,QA3BF,OAAM;AAAA,QACL,WAAS,KAAM,OAAA,SAAA,KAAA;AAAA,QACf,cAAY,SAAY;AAAA,QACxB,OAAO,OAAW;AAAA,QAClB,MAAM,KAAM,OAAC,QAAI;AAAA,SACV,KAAM,QACdC,WAA0B,SAAD,qBAAA,IAAA,GAAA;AAAA,QACxB,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,YAAE,KAAK,MAAA,SAAU,MAAM;AAAA;QAE7BF,mBAKM,OALN,YAKM;AAAA,UAJJG,YAGE,+BAAA;AAAA,YAFA,MAAK;AAAA,YACL,WAAQ;AAAA;;QAGZH,mBAWM,OAAA;AAAA,UAVJ,OAAM;AAAA,UACL,qCAAsB,MAAU,UAAA,EAAA;AAAA;UAEjCG,YAMwB,kCAAA;AAAA,YALtB,OAAM;AAAA,YACN,WAAQ;AAAA,YACR,MAAK;AAAA;6BAEL,MAAiB;AAAA,8CAAd,OAAW,WAAA,GAAA,CAAA;AAAA;;;;;OAKX,OAAW,eADpBC,aAAAN,mBA6BM,OA7BN,YA6BM;AAAA,QAzBJO,WAAqB,KAAA,QAAA,SAAA,CAAA,GAAA,QAAA,IAAA;AAAA,QACrBL,mBAuBM,OAvBN,YAuBM;AAAA,UArBI,SAAe,gCADvBM,YAQW,qBAAA;AAAA;YANT,OAAM;AAAA,YACN,WAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA;6BAEL,MAAiB;AAAA,8CAAd,OAAW,WAAA,GAAA,CAAA;AAAA;;;UAEhBH,YAYY,sBAAA;AAAA,YAXV,OAAM;AAAA,YACN,WAAQ;AAAA,YACP,cAAY,OAAmB;AAAA,YAChC,YAAW;AAAA,YACX,MAAK;AAAA,YACL,QAAA;AAAA,YACC,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAI,cAAA,YAAO,KAAK,MAAA,cAAe,MAAM,GAAA,CAAA,MAAA,CAAA;AAAA;YAE5B,cACT,MAAmC;AAAA,cAAnCJ,YAAmC,iCAAA,EAAb,MAAK,MAAK,CAAA;AAAA;;;;;;IAM1CH,mBAEM,OAFN,YAEM;AAAA,MADJK,WAAqB,KAAA,QAAA,SAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;;;"}
@@ -58,6 +58,13 @@ const _sfc_main = {
58
58
  type: String,
59
59
  default: null
60
60
  },
61
+ /**
62
+ * Avatar color to display if `avatarSrc` is empty.
63
+ */
64
+ avatarColor: {
65
+ type: String,
66
+ default: null
67
+ },
61
68
  /**
62
69
  * Text describing the user's presence, such as "in a meeting"
63
70
  */
@@ -190,13 +197,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
190
197
  "is-typing": $props.isTyping,
191
198
  "call-button-tooltip": $props.callButtonTooltip,
192
199
  "unread-count-tooltip": $props.unreadCountTooltip
193
- }, _ctx.$attrs, vue.toHandlers($options.contactRowListeners), {
200
+ }, _ctx.$attrs, { "data-qa": "contact-row" }, vue.toHandlers($options.contactRowListeners), {
194
201
  onCall: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("call", $event))
195
202
  }), {
196
203
  left: vue.withCtx(() => [
197
204
  vue.createVNode(_component_dt_avatar, {
198
205
  "full-name": $props.name,
199
206
  "image-src": $props.avatarSrc,
207
+ color: $props.avatarColor,
200
208
  "image-alt": "",
201
209
  size: "sm",
202
210
  seed: $props.avatarSeed,
@@ -209,7 +217,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
209
217
  ]),
210
218
  key: "0"
211
219
  } : void 0
212
- ]), 1032, ["full-name", "image-src", "seed", "presence"])
220
+ ]), 1032, ["full-name", "image-src", "color", "seed", "presence"])
213
221
  ]),
214
222
  label: vue.withCtx(() => [
215
223
  vue.createVNode(_component_dt_emoji_text_wrapper, {
@@ -1 +1 @@
1
- {"version":3,"file":"contact-row.cjs","sources":["../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n :call-button-tooltip=\"callButtonTooltip\"\n :unread-count-tooltip=\"unreadCountTooltip\"\n v-bind=\"$attrs\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n image-alt=\"\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n >\n <template\n v-if=\"noInitials\"\n #icon\n >\n <dt-icon-user\n :size=\"200\"\n />\n </template>\n </dt-avatar>\n </template>\n <template #label>\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"dt-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-leftbar-row-presence-text\"\n :class=\"['dt-leftbar-row__meta-context', presenceColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-leftbar-row-user-status\"\n class=\"dt-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n DtIconUser,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceColorClass () {\n switch (this.avatarPresence) {\n case 'active':\n return 'd-fc-success';\n case 'busy':\n return 'd-fc-critical';\n case 'away':\n return 'd-fc-warning';\n default:\n return undefined;\n }\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n },\n};\n</script>\n"],"names":["DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","DtIconUser","extractVueListeners","safeConcatStrings","_openBlock","_createBlock","_mergeProps","_toHandlers","_createVNode","_createElementVNode","_createElementBlock"],"mappings":"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"}
1
+ {"version":3,"file":"contact-row.cjs","sources":["../../recipes/leftbar/contact_row/contact_row.vue"],"sourcesContent":["<template>\n <dt-recipe-general-row\n :unread-count=\"unreadCount\"\n :description=\"contactDescription\"\n :has-unreads=\"hasUnreads\"\n :selected=\"selected\"\n :has-call-button=\"hasCallButton\"\n :muted=\"muted\"\n :is-typing=\"isTyping\"\n :call-button-tooltip=\"callButtonTooltip\"\n :unread-count-tooltip=\"unreadCountTooltip\"\n v-bind=\"$attrs\"\n data-qa=\"contact-row\"\n v-on=\"contactRowListeners\"\n @call=\"$emit('call', $event)\"\n >\n <template #left>\n <dt-avatar\n :full-name=\"name\"\n :image-src=\"avatarSrc\"\n :color=\"avatarColor\"\n image-alt=\"\"\n size=\"sm\"\n :seed=\"avatarSeed\"\n :presence=\"avatarPresence\"\n >\n <template\n v-if=\"noInitials\"\n #icon\n >\n <dt-icon-user\n :size=\"200\"\n />\n </template>\n </dt-avatar>\n </template>\n <template #label>\n <dt-emoji-text-wrapper\n class=\"dt-leftbar-row__description\"\n data-qa=\"dt-leftbar-row-description\"\n size=\"200\"\n >\n {{ name }}\n </dt-emoji-text-wrapper>\n <div class=\"dt-leftbar-row__status\">\n <span\n v-if=\"presenceText\"\n data-qa=\"dt-leftbar-row-presence-text\"\n :class=\"['dt-leftbar-row__meta-context', presenceColorClass]\"\n >\n {{ presenceText }}\n </span>\n <dt-emoji-text-wrapper\n v-if=\"userStatus\"\n size=\"100\"\n element-type=\"span\"\n data-qa=\"dt-leftbar-row-user-status\"\n class=\"dt-leftbar-row__meta-custom\"\n >\n {{ userStatus }}\n </dt-emoji-text-wrapper>\n </div>\n </template>\n </dt-recipe-general-row>\n</template>\n\n<script>\nimport { DtRecipeGeneralRow } from '@/recipes/leftbar/general_row';\nimport DtEmojiTextWrapper from '@/components/emoji_text_wrapper/emoji_text_wrapper.vue';\nimport DtAvatar from '@/components/avatar/avatar.vue';\nimport { extractVueListeners, safeConcatStrings } from '@/common/utils';\nimport { DtIconUser } from '@dialpad/dialtone-icons/vue3';\n\nexport default {\n name: 'DtRecipeContactRow',\n\n components: {\n DtAvatar,\n DtRecipeGeneralRow,\n DtEmojiTextWrapper,\n DtIconUser,\n },\n\n inheritAttrs: false,\n\n props: {\n /**\n * Optional avatar image url.\n * If not provided it will use the initial of the name.\n */\n avatarSrc: {\n type: String,\n default: '',\n },\n\n /**\n * Determines whether to show the presence indicator for\n * Avatar - accepts PRESENCE_STATES values: 'busy', 'away', 'offline',\n * or 'active'. By default, it's null and nothing is shown.\n * defer validation to avatar component.\n * @values null, busy, away, offline, active\n */\n avatarPresence: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.\n */\n avatarSeed: {\n type: String,\n default: null,\n },\n\n /**\n * Avatar color to display if `avatarSrc` is empty.\n */\n avatarColor: {\n type: String,\n default: null,\n },\n\n /**\n * Text describing the user's presence, such as \"in a meeting\"\n */\n presenceText: {\n type: String,\n default: '',\n },\n\n /**\n * Name of the contact\n */\n name: {\n type: String,\n required: true,\n },\n\n /**\n * Status as set by the user.\n */\n userStatus: {\n type: String,\n default: '',\n },\n\n /**\n * Gives a faded style to be used when muted\n */\n muted: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Number of unread messages\n */\n unreadCount: {\n type: String,\n default: null,\n },\n\n /**\n * Styles the row with an increased font weight to convey it has unreads. This must be true to see\n * the unread count badge.\n */\n hasUnreads: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines if the row is selected\n */\n selected: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Initials will never be shown. Instead it will show a \"User\" icon.\n */\n noInitials: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows an \"is typing\" animation over the avatar when true.\n */\n isTyping: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the contact row should display a call button when hovered.\n */\n hasCallButton: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Text shown when the call button is hovered.\n */\n callButtonTooltip: {\n type: String,\n default: '',\n },\n\n /**\n * Text shown when the unread count is hovered.\n */\n unreadCountTooltip: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Call button clicked\n *\n * @event call\n * @type {PointerEvent | KeyboardEvent}\n */\n 'call',\n ],\n\n computed: {\n presenceColorClass () {\n switch (this.avatarPresence) {\n case 'active':\n return 'd-fc-success';\n case 'busy':\n return 'd-fc-critical';\n case 'away':\n return 'd-fc-warning';\n default:\n return undefined;\n }\n },\n\n contactRowListeners () {\n return extractVueListeners(this.$attrs);\n },\n\n contactDescription () {\n return safeConcatStrings([this.name, this.presenceText, this.userStatus]);\n },\n },\n};\n</script>\n"],"names":["DtAvatar","DtRecipeGeneralRow","DtEmojiTextWrapper","DtIconUser","extractVueListeners","safeConcatStrings","_openBlock","_createBlock","_mergeProps","_toHandlers","_createVNode","_createElementVNode","_createElementBlock"],"mappings":"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"}