@nyaruka/temba-components 0.157.0 → 0.157.1

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 (38) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/temba-components.js +1450 -1370
  3. package/dist/temba-components.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/display/Button.ts +102 -121
  6. package/src/display/Chat.ts +60 -9
  7. package/src/display/Dropdown.ts +11 -0
  8. package/src/display/Label.ts +1 -3
  9. package/src/display/LeafletMap.ts +4 -3
  10. package/src/display/TembaUser.ts +9 -3
  11. package/src/events/eventRenderers.ts +152 -67
  12. package/src/flow/AutoTranslate.ts +2 -2
  13. package/src/flow/Editor.ts +4 -4
  14. package/src/flow/NodeEditor.ts +2 -2
  15. package/src/flow/NodeTypeSelector.ts +0 -5
  16. package/src/flow/actions/set_contact_language.ts +5 -4
  17. package/src/flow/nodes/split_by_llm_categorize.ts +1 -6
  18. package/src/flow/utils.ts +1 -20
  19. package/src/form/ColorPicker.ts +5 -3
  20. package/src/form/select/Omnibox.ts +1 -3
  21. package/src/form/select/Select.ts +5 -4
  22. package/src/interfaces.ts +1 -0
  23. package/src/languages.ts +56 -0
  24. package/src/layout/Dialog.ts +1 -3
  25. package/src/list/ContentMenu.ts +1 -2
  26. package/src/list/SortableList.ts +1 -4
  27. package/src/list/TembaMenu.ts +159 -113
  28. package/src/live/ContactBadges.ts +2 -1
  29. package/src/live/ContactChat.ts +16 -1
  30. package/src/live/ContactDetails.ts +2 -1
  31. package/src/live/ContactFieldEditor.ts +0 -2
  32. package/src/store/AppState.ts +3 -21
  33. package/src/store/Store.ts +0 -29
  34. package/src/styles/designTokens.ts +31 -18
  35. package/src/styles/pillVariants.ts +24 -13
  36. package/static/css/temba-components.css +82 -55
  37. package/web-dev-server.config.mjs +0 -1
  38. package/web-test-runner.config.mjs +0 -1
@@ -39,8 +39,6 @@ export class ContentMenu extends RapidElement {
39
39
  z-index: 5000;
40
40
  }
41
41
  .container {
42
- --button-y: 0.4em;
43
- --button-x: 1em;
44
42
  display: flex;
45
43
  align-items: center;
46
44
  }
@@ -52,6 +50,7 @@ export class ContentMenu extends RapidElement {
52
50
 
53
51
  temba-button {
54
52
  margin-right: 0.5rem;
53
+ align-self: center;
55
54
  }
56
55
  .toggle {
57
56
  --icon-color: rgb(102, 102, 102);
@@ -372,10 +372,7 @@ export class SortableList extends RapidElement {
372
372
  ];
373
373
 
374
374
  private inlineComputedStyles(original: Element, clone: Element): void {
375
- if (
376
- !(original instanceof HTMLElement) ||
377
- !(clone instanceof HTMLElement)
378
- ) {
375
+ if (!(original instanceof HTMLElement) || !(clone instanceof HTMLElement)) {
379
376
  return;
380
377
  }
381
378
 
@@ -8,6 +8,7 @@ import { Dropdown } from '../display/Dropdown';
8
8
  import { NotificationList } from './NotificationList';
9
9
  import { ResizeElement } from '../ResizeElement';
10
10
  import { Store } from '../store/Store';
11
+ import { designTokens } from '../styles/designTokens';
11
12
 
12
13
  export interface MenuItem {
13
14
  id?: string;
@@ -61,11 +62,17 @@ const findItem = (
61
62
  export class TembaMenu extends ResizeElement {
62
63
  static get styles() {
63
64
  return css`
65
+ ${designTokens}
66
+
64
67
  :host {
65
68
  width: 100%;
66
69
  display: block;
70
+ font-family: var(--font);
71
+ color: var(--text-1);
67
72
  --color-widget-bg-focused: transparent;
68
73
  --options-block-shadow: none;
74
+ --menu-rail: var(--accent-400);
75
+ --menu-rail-selected: rgba(0, 0, 0, 0.15);
69
76
  }
70
77
 
71
78
  .bubble {
@@ -92,9 +99,9 @@ export class TembaMenu extends ResizeElement {
92
99
  }
93
100
 
94
101
  .section {
95
- font-size: 1.5em;
96
- margin-bottom: 0.2em;
97
- color: var(--color-text-dark);
102
+ font-size: 15px;
103
+ font-weight: var(--w-medium);
104
+ color: var(--text-1);
98
105
  }
99
106
 
100
107
  .collapse-toggle {
@@ -107,7 +114,7 @@ export class TembaMenu extends ResizeElement {
107
114
  }
108
115
 
109
116
  .collapse-toggle:hover {
110
- background: rgb(100, 100, 100, 0.05);
117
+ background: rgba(0, 0, 0, 0.04);
111
118
  }
112
119
 
113
120
  .item {
@@ -115,14 +122,29 @@ export class TembaMenu extends ResizeElement {
115
122
  user-select: none;
116
123
  -webkit-user-select: none;
117
124
  display: flex;
118
- --icon-color: var(--color-text-dark);
125
+ align-items: center;
126
+ gap: 10px;
127
+ color: var(--text-2);
128
+ font-weight: var(--w-regular);
129
+ --icon-color: var(--text-2);
130
+ transition:
131
+ background-color 120ms ease,
132
+ color 120ms ease;
133
+ }
134
+
135
+ .item:hover {
136
+ background: var(--sunken);
137
+ color: var(--text-1);
138
+ --icon-color: var(--text-1);
119
139
  }
120
140
 
121
141
  .item.selected,
122
- .item.pressed {
123
- background: var(--color-selection);
124
- color: var(--color-primary-dark);
125
- --icon-color: var(--color-primary-dark);
142
+ .item.pressed,
143
+ .item.selected:hover,
144
+ .item.pressed:hover {
145
+ background: var(--focus-50);
146
+ color: var(--focus-700);
147
+ --icon-color: var(--focus-600);
126
148
  }
127
149
 
128
150
  .root {
@@ -140,40 +162,40 @@ export class TembaMenu extends ResizeElement {
140
162
  display: none;
141
163
  }
142
164
 
143
- .popup {
144
- --icon-color: rgba(255, 255, 255, 0.7);
145
- }
146
-
147
165
  .level-0 > .item,
148
- .level-0 > temba-dropdown > div[slot='toggle'] > .avatar {
166
+ .level-0 > temba-dropdown > div[slot='toggle'] > .avatar,
167
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item {
149
168
  padding: 0px;
150
- --icon-color: rgba(255, 255, 255, 0.7);
169
+ color: rgba(255, 255, 255, 0.92);
170
+ --icon-color: rgba(255, 255, 255, 0.92);
151
171
  flex-direction: column;
152
- border: 0px solid green;
153
- width: 100%;
172
+ justify-content: center;
173
+ border: 0px solid transparent;
174
+ width: 36px;
175
+ height: 36px;
176
+ margin: 4px 8px;
177
+ box-sizing: border-box;
178
+ border-radius: var(--r);
154
179
  display: flex;
155
180
  align-items: center;
156
- }
157
-
158
- .level-0 > .item.selected::before,
159
- .level-0 > .item.selected::after {
160
- content: ' ';
161
- height: var(--curvature);
162
- background: var(--color-primary-dark);
163
- display: block;
164
- width: 100%;
165
- }
166
-
167
- .level-0 > .item.selected::before {
168
- border-bottom-right-radius: var(--curvature);
181
+ position: relative;
169
182
  }
170
183
 
171
184
  .level-0 .item > temba-tip {
172
- padding: 0.5em 0em;
185
+ padding: 0;
173
186
  }
174
187
 
175
- .level-0 > .item.selected::after {
176
- border-top-right-radius: var(--curvature);
188
+ .level-0 > .item.selected::after,
189
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item.selected::after {
190
+ content: '';
191
+ position: absolute;
192
+ left: -8px;
193
+ top: 50%;
194
+ width: 3px;
195
+ height: 22px;
196
+ background: #fff;
197
+ border-radius: 0 2px 2px 0;
198
+ transform: translateY(-50%);
177
199
  }
178
200
 
179
201
  .level-0 {
@@ -181,14 +203,14 @@ export class TembaMenu extends ResizeElement {
181
203
  }
182
204
 
183
205
  .level-0 > .empty {
184
- background: var(--color-primary-dark);
206
+ background: var(--menu-rail);
185
207
  align-self: stretch;
186
208
  flex-grow: 1;
187
209
  }
188
210
 
189
211
  .level-0 > .bottom {
190
212
  height: 1em;
191
- background: var(--color-primary-dark);
213
+ background: var(--menu-rail);
192
214
  }
193
215
 
194
216
  .level-0 > temba-dropdown.open > div[slot='toggle'] > .avatar {
@@ -196,13 +218,19 @@ export class TembaMenu extends ResizeElement {
196
218
  }
197
219
 
198
220
  .level-0 {
199
- background: var(--color-primary-dark);
221
+ background: var(--menu-rail);
200
222
  }
201
223
 
202
224
  temba-dropdown {
203
225
  margin: 0 0.25em;
204
226
  }
205
227
 
228
+ .level-0 > temba-dropdown {
229
+ margin: 0;
230
+ display: block;
231
+ width: 100%;
232
+ }
233
+
206
234
  temba-dropdown > div[slot='dropdown'] {
207
235
  width: 300px;
208
236
  overflow: hidden;
@@ -237,17 +265,21 @@ export class TembaMenu extends ResizeElement {
237
265
  background: inherit;
238
266
  }
239
267
 
240
- .level-0 > .item.selected {
241
- background: white;
242
- --icon-color: var(--color-primary-dark);
268
+ .level-0 > .item.selected,
269
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item.selected {
270
+ background: var(--menu-rail-selected);
271
+ color: #fff;
272
+ --icon-color: #fff;
243
273
  }
244
274
 
245
275
  .level {
246
- padding: var(--menu-padding);
276
+ padding: 8px;
277
+ gap: 1px;
247
278
  }
248
279
 
249
280
  .level-0 {
250
281
  padding: 0px;
282
+ gap: 0;
251
283
  }
252
284
 
253
285
  .top {
@@ -257,16 +289,14 @@ export class TembaMenu extends ResizeElement {
257
289
  }
258
290
 
259
291
  .item {
260
- padding: 0.2em 0.75em;
261
- margin-top: 0.1em;
262
- border-radius: var(--curvature);
292
+ padding: 0 8px;
293
+ height: 28px;
294
+ flex-shrink: 0;
295
+ border-radius: var(--r-sm);
263
296
  display: flex;
264
297
  min-width: 12em;
265
298
  position: relative;
266
- }
267
-
268
- .item > temba-icon {
269
- margin-right: 0.5em;
299
+ font-size: 13.5px;
270
300
  }
271
301
 
272
302
  .item > .details > .name {
@@ -277,58 +307,62 @@ export class TembaMenu extends ResizeElement {
277
307
  width: 0;
278
308
  }
279
309
 
280
- .level-0 .item {
310
+ .level-0 > .item,
311
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item {
281
312
  margin-top: 0em;
282
- border-radius: 0px;
283
313
  min-width: inherit;
284
314
  max-width: inherit;
315
+ color: rgba(255, 255, 255, 0.92);
285
316
  }
286
317
 
287
- .popup:hover {
318
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item.popup:hover {
288
319
  --icon-color: #fff;
289
320
  }
290
321
 
291
- .level-0 > .item > temba-icon {
292
- margin-right: 0px;
293
- }
294
-
295
322
  .level-0 > .item > .name {
296
323
  min-width: 0px;
297
324
  }
298
325
 
299
326
  .count {
300
327
  align-self: center;
301
- margin-left: 1em;
302
- font-size: 0.8em;
303
- font-weight: 400;
304
- }
305
-
306
- .level-0 > .item-top {
307
- background: var(--color-primary-dark);
308
- min-height: var(--curvature);
328
+ margin-left: 10px;
329
+ font-size: 11.5px;
330
+ font-weight: var(--w-regular);
331
+ color: var(--text-3);
332
+ background: var(--sunken);
333
+ padding: 1px 6px;
334
+ border-radius: 999px;
335
+ font-variant-numeric: tabular-nums;
309
336
  }
310
337
 
311
- .level-0 > .item-bottom {
312
- background: var(--color-primary-dark);
313
- min-height: var(--curvature);
338
+ .count:empty {
339
+ display: none;
314
340
  }
315
341
 
316
- .level-0 > .item-bottom.selected {
317
- border-top-right-radius: var(--curvature);
342
+ .item.selected .count,
343
+ .item.pressed .count {
344
+ background: var(--focus-200);
345
+ color: var(--focus-700);
318
346
  }
319
347
 
320
- .level-0 > .item-top.selected {
321
- border-bottom-right-radius: var(--curvature);
348
+ .level-0 > .item-top,
349
+ .level-0 > .item-bottom {
350
+ background: var(--menu-rail);
351
+ min-height: var(--r);
322
352
  }
323
353
 
324
- .level-0 > .item:hover {
325
- background: rgba(255, 255, 255, 0.15);
354
+ .level-0 > .item:hover,
355
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item:hover {
356
+ background: rgba(255, 255, 255, 0.12);
357
+ color: #fff;
326
358
  --icon-color: #fff;
327
359
  }
328
360
 
329
- .level-0 > .item.selected:hover {
330
- background: white;
331
- --icon-color: var(--color-primary-dark);
361
+ .level-0 > .item.selected:hover,
362
+ .level-0 > temba-dropdown > div[slot='toggle'] > .item.selected:hover {
363
+ background: var(--menu-rail-selected);
364
+ color: #fff;
365
+ --icon-color: #fff;
332
366
  cursor: default;
333
367
  }
334
368
 
@@ -338,14 +372,16 @@ export class TembaMenu extends ResizeElement {
338
372
 
339
373
  .level-1,
340
374
  .level-2 {
341
- border-right: 1px solid rgba(0 0 0 / 8%);
342
- box-shadow: rgb(0 0 0 / 6%) 4px 0px 6px 1px;
375
+ border-right: 1px solid var(--border);
376
+ box-shadow: var(--shadow-2);
343
377
  }
344
378
 
345
379
  .level-1 {
346
380
  transition:
347
381
  opacity 100ms linear,
348
- margin 200ms linear;
382
+ width 200ms linear,
383
+ min-width 200ms linear,
384
+ max-width 200ms linear;
349
385
  overflow-y: scroll;
350
386
  }
351
387
 
@@ -444,8 +480,12 @@ export class TembaMenu extends ResizeElement {
444
480
  transform: none;
445
481
  }
446
482
 
483
+ .level-1 {
484
+ background: var(--surface);
485
+ }
486
+
447
487
  .level-2 {
448
- background: #fbfbfb;
488
+ background: var(--bg);
449
489
  overflow-y: auto;
450
490
  }
451
491
 
@@ -454,16 +494,14 @@ export class TembaMenu extends ResizeElement {
454
494
  }
455
495
 
456
496
  .level-2 .item {
457
- min-width: 12em;
458
- max-width: 12em;
497
+ min-width: 16em;
498
+ max-width: 16em;
459
499
  }
460
500
 
461
501
  .level-1 .item {
462
502
  overflow: hidden;
463
- max-width: 12em;
464
- min-width: 12em;
465
- min-height: 1.5em;
466
- max-height: 1.5em;
503
+ max-width: 16em;
504
+ min-width: 16em;
467
505
  transition: min-width var(--transition-speed) !important;
468
506
  }
469
507
 
@@ -499,7 +537,7 @@ export class TembaMenu extends ResizeElement {
499
537
  }
500
538
 
501
539
  .section {
502
- max-width: 12em;
540
+ max-width: 16em;
503
541
  }
504
542
 
505
543
  .collapsed .section {
@@ -511,10 +549,15 @@ export class TembaMenu extends ResizeElement {
511
549
  .collapsed.level-1 {
512
550
  overflow: hidden;
513
551
  padding: 0.5em;
514
- --icon-color: #999;
552
+ --icon-color: var(--text-3);
553
+ }
554
+
555
+ .item .right {
556
+ display: none;
515
557
  }
516
558
 
517
559
  .collapsed .item .right {
560
+ display: block;
518
561
  flex-grow: 1;
519
562
  }
520
563
 
@@ -523,7 +566,7 @@ export class TembaMenu extends ResizeElement {
523
566
  }
524
567
 
525
568
  .collapsed .collapse-icon {
526
- --icon-color: #ccc;
569
+ --icon-color: var(--text-4);
527
570
  display: block;
528
571
  }
529
572
 
@@ -536,9 +579,10 @@ export class TembaMenu extends ResizeElement {
536
579
 
537
580
  .divider {
538
581
  height: 1px;
539
- background: #f3f3f3;
540
- margin: 0.5em 0.75em;
582
+ background: var(--border);
583
+ margin: 0.5em var(--pad);
541
584
  min-height: 1px;
585
+ flex-shrink: 0;
542
586
  }
543
587
 
544
588
  .space {
@@ -553,28 +597,26 @@ export class TembaMenu extends ResizeElement {
553
597
  }
554
598
 
555
599
  .sub-section {
556
- font-size: 0.9rem;
557
- color: #888;
558
- margin-top: 1rem;
559
- margin-left: 0.3rem;
600
+ font-size: 11px;
601
+ font-weight: var(--w-semibold);
602
+ text-transform: uppercase;
603
+ letter-spacing: 0.06em;
604
+ color: var(--text-3);
605
+ padding: 14px 10px 4px;
606
+ flex-shrink: 0;
560
607
  }
561
608
 
562
609
  .fully-collapsed .level-1 {
563
- margin-left: -208px;
610
+ width: 0;
611
+ min-width: 0;
612
+ max-width: 0;
613
+ padding: 0;
564
614
  pointer-events: none;
565
615
  border: none;
616
+ box-shadow: none;
566
617
  overflow: hidden;
567
618
  }
568
619
 
569
- .fully-collapsed .level-1 > * {
570
- opacity: 0;
571
- }
572
-
573
- .fully-collapsed .level-1 .item,
574
- .fully-collapsed .level-1 .divider {
575
- opacity: 0;
576
- }
577
-
578
620
  .fully-collapsed .level-2,
579
621
  .fully-collapsed .level-3 {
580
622
  display: none;
@@ -585,11 +627,12 @@ export class TembaMenu extends ResizeElement {
585
627
  margin-bottom: 0.2em;
586
628
  margin-left: 0.75em;
587
629
  margin-right: 0.75em;
630
+ --button-justify: flex-start;
588
631
  }
589
632
 
590
633
  .expand-icon {
591
634
  transform: rotate(180deg);
592
- --icon-color: rgba(255, 255, 255, 0.5);
635
+ --icon-color: rgba(255, 255, 255, 0.6);
593
636
  cursor: pointer;
594
637
  max-height: 0px;
595
638
  overflow: hidden;
@@ -610,6 +653,10 @@ export class TembaMenu extends ResizeElement {
610
653
  .section-header {
611
654
  display: flex;
612
655
  align-items: center;
656
+ flex-shrink: 0;
657
+ margin: -8px -8px 8px;
658
+ padding: 8px 8px 8px 16px;
659
+ border-bottom: 1px solid var(--border);
613
660
  }
614
661
 
615
662
  .section-header .section {
@@ -617,19 +664,19 @@ export class TembaMenu extends ResizeElement {
617
664
  }
618
665
 
619
666
  .section-header temba-icon {
620
- --icon-color: #ddd;
667
+ --icon-color: var(--border-strong);
621
668
  cursor: pointer;
622
- padding-bottom: 0.5em;
623
- padding-right: 0.5em;
669
+ padding: 4px;
670
+ transition: --icon-color 120ms ease;
624
671
  }
625
672
 
626
673
  .section-header temba-icon:hover {
627
- --icon-color: var(--color-link-primary);
674
+ --icon-color: var(--accent);
628
675
  }
629
676
 
630
677
  a {
631
678
  text-decoration: none;
632
- color: var(--color-text-dark);
679
+ color: inherit;
633
680
  }
634
681
 
635
682
  slot[name='header'] {
@@ -642,7 +689,6 @@ export class TembaMenu extends ResizeElement {
642
689
 
643
690
  .icon-wrapper {
644
691
  position: relative;
645
- padding: 0.2em 0.4em 0.2em 0em;
646
692
  }
647
693
 
648
694
  .level-0 .icon-wrapper {
@@ -1126,7 +1172,7 @@ export class TembaMenu extends ResizeElement {
1126
1172
  let icon = menuItem.icon
1127
1173
  ? html`<div class="icon-wrapper">
1128
1174
  <temba-icon
1129
- size="${menuItem.level === 0 ? '1.5' : '1'}"
1175
+ size="${menuItem.level === 0 ? '1.35' : '1'}"
1130
1176
  name="${menuItem.icon}"
1131
1177
  ></temba-icon
1132
1178
  >${menuItem.bubble && !menuItem.count
@@ -1140,7 +1186,7 @@ export class TembaMenu extends ResizeElement {
1140
1186
 
1141
1187
  const collapsedIcon = menuItem.collapsed_icon
1142
1188
  ? html`<temba-icon
1143
- size="${menuItem.level === 0 ? '1.5' : '1'}"
1189
+ size="${menuItem.level === 0 ? '1.35' : '1'}"
1144
1190
  name="${menuItem.collapsed_icon}"
1145
1191
  class="collapse-icon"
1146
1192
  ></temba-icon>`
@@ -1341,7 +1387,7 @@ export class TembaMenu extends ResizeElement {
1341
1387
  ${index == 0 && !this.collapsed
1342
1388
  ? html`<temba-icon
1343
1389
  name=${collapseIcon}
1344
- size="1.5"
1390
+ size="1"
1345
1391
  @click=${this.handleCollapse}
1346
1392
  ></temba-icon>`
1347
1393
  : null}
@@ -3,6 +3,7 @@ import { property } from 'lit/decorators.js';
3
3
  import { Group } from '../interfaces';
4
4
  import { debounce, getClasses } from '../utils';
5
5
  import { Icon } from '../Icons';
6
+ import { getLanguageName } from '../languages';
6
7
  import { ContactStoreElement } from './ContactStoreElement';
7
8
 
8
9
  const STATUS = {
@@ -166,7 +167,7 @@ export class ContactBadges extends ContactStoreElement {
166
167
  primary
167
168
  shadow
168
169
  >
169
- ${this.store.getLanguageName(this.data.language)}
170
+ ${getLanguageName(this.data.language)}
170
171
  </temba-label>
171
172
  `
172
173
  : null}
@@ -396,6 +396,18 @@ export class ContactChat extends ContactStoreElement {
396
396
  background: rgba(0, 0, 0, 0.03);
397
397
  }
398
398
 
399
+ /* Keep the assignment + topic controls the same height as the
400
+ Close button so the row reads as one strip. Shrink the user
401
+ avatars (--temba-scale) so they fit in the smaller box. */
402
+ .in-ticket temba-user-select,
403
+ .in-ticket temba-select {
404
+ --temba-select-min-height: 28px;
405
+ }
406
+
407
+ .in-ticket temba-user-select {
408
+ --temba-scale: 0.75;
409
+ }
410
+
399
411
  temba-user {
400
412
  border: 1px solid #ddd;
401
413
  padding: 0.2em 0.5em;
@@ -1010,8 +1022,11 @@ export class ContactChat extends ContactStoreElement {
1010
1022
  if (
1011
1023
  event.type === 'msg_created' ||
1012
1024
  event.type === 'msg_received' ||
1013
- event.type === 'ivr_created'
1025
+ event.type === 'ivr_created' ||
1026
+ event.type === 'ticket_note_added'
1014
1027
  ) {
1028
+ // Notes render as chat-style bubbles (see Chat.ts), so push them
1029
+ // through directly rather than prerendering into an inline event.
1015
1030
  messages.push(event);
1016
1031
  } else {
1017
1032
  this.prerender(event);
@@ -2,6 +2,7 @@ import { css, html, TemplateResult } from 'lit';
2
2
  import { ContactStoreElement } from './ContactStoreElement';
3
3
  import { Icon } from '../Icons';
4
4
  import { capitalize } from '../utils';
5
+ import { getLanguageName } from '../languages';
5
6
 
6
7
  const STATUS = {
7
8
  active: 'Active',
@@ -62,7 +63,7 @@ export class ContactDetails extends ContactStoreElement {
62
63
  return;
63
64
  }
64
65
 
65
- const lang = this.store.getLanguageName(this.data.language);
66
+ const lang = getLanguageName(this.data.language);
66
67
 
67
68
  return html`
68
69
  <div class="wrapper">
@@ -242,8 +242,6 @@ export class ContactFieldEditor extends RapidElement {
242
242
  min-height: 22px !important;
243
243
  max-height: 22px !important;
244
244
  margin: 5px 6px;
245
- --button-y: 0;
246
- --button-x: 10px;
247
245
  font-size: 12px;
248
246
  }
249
247