contacts-pane 3.1.0 → 3.2.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.
@@ -19,22 +19,22 @@
19
19
  flex-direction: column;
20
20
  align-items: stretch;
21
21
  flex: 1 1 0; /* allow it to grow but not force wrap */
22
- min-width: 300px;
22
+ min-width: 0; /* allow sections to collapse when stacked */
23
23
  box-sizing: border-box;
24
24
  background: var(--color-section-bg);
25
25
  }
26
26
 
27
27
  .contactPane .detailsSectionContent {
28
28
  flex: 1 1 auto;
29
- min-height: 200px;
29
+ min-height: 12.5rem; /* 200px */
30
30
  padding: var(--spacing-lg);
31
- max-width: 900px;
31
+ max-width: 56.25rem; /* 900px */
32
32
  width: 100%;
33
33
  box-sizing: border-box;
34
34
  }
35
35
 
36
36
  .contactPane .detailsSectionContent--wide {
37
- max-width: 900px;
37
+ max-width: 56.25rem; /* 900px */
38
38
  }
39
39
 
40
40
  .contactPane .cardFooter {
@@ -56,7 +56,7 @@
56
56
  display: flex;
57
57
  flex-direction: column;
58
58
  gap: var(--spacing-sm);
59
- max-width: 360px;
59
+ max-width: 22.5rem; /* 360px */
60
60
  }
61
61
 
62
62
  .contactPane .contactTypeChooser h3 {
@@ -66,7 +66,7 @@
66
66
 
67
67
  .contactPane .contactTypeSelect {
68
68
  height: var(--min-touch-target);
69
- border: 1px solid var(--color-border-pale);
69
+ border: var(--border-width-sm, 1px) solid var(--color-border-pale);
70
70
  border-radius: var(--border-radius-base);
71
71
  padding: 0 var(--spacing-sm);
72
72
  font-size: var(--font-size-sm);
@@ -86,14 +86,14 @@
86
86
 
87
87
  .contactPane .searchInput {
88
88
  height: var(--min-touch-target);
89
- border: 1px solid var(--color-border-pale);
89
+ border: var(--border-width-sm, 1px) solid var(--color-border-pale);
90
90
  background-color: var(--color-section-bg);
91
91
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23999' viewBox='0 0 24 24' width='20' height='20'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99c.41.41 1.09.41 1.5 0s.41-1.09 0-1.5l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
92
92
  background-repeat: no-repeat;
93
- background-position: 8px center;
94
- background-size: 20px 20px;
93
+ background-position: 0.5rem center; /* 8px */
94
+ background-size: 1.25rem 1.25rem; /* 20px 20px */
95
95
  border-radius: var(--border-radius-base);
96
- padding: 0 var(--spacing-sm) 0 34px;
96
+ padding: 0 var(--spacing-sm) 0 2.125rem; /* 34px */
97
97
  font-size: var(--font-size-base);
98
98
  width: 100%;
99
99
  box-sizing: border-box;
@@ -132,20 +132,20 @@
132
132
  }
133
133
 
134
134
  .contactPane .contact-toolbar a {
135
- margin: 0.3em;
135
+ margin: 0.3rem;
136
136
  }
137
137
 
138
138
  .contactPane .contact-toolbar a img {
139
- width: 1.3em;
140
- height: 1em;
139
+ width: 1.3rem;
140
+ height: 1rem;
141
141
  margin: 0;
142
142
  }
143
143
 
144
144
  .contact-toolbar .deleteButton {
145
145
  margin-left: auto; /* keeps delete icon on the right */
146
- margin-right: 0.2em;
147
- width: 1em;
148
- height: 1em;
146
+ margin-right: var(--spacing-xxxs, 0.2rem);
147
+ width: var(--icon-xxs, 1rem);
148
+ height: var(--icon-xxs, 1rem);
149
149
  float: none; /* important: prevents overlap behavior */
150
150
  }
151
151
 
@@ -169,11 +169,6 @@
169
169
  background-color: var(--color-primary);
170
170
  }
171
171
 
172
- /* ── Selection & visibility states ───────────────────────────── */
173
-
174
- .contactPane .group-loading {
175
- }
176
-
177
172
  /* ── Mint new address book ───────────────────────────────────── */
178
173
 
179
174
  .contactPane .claimSuccess {
@@ -183,18 +178,18 @@
183
178
  .contactPane {
184
179
  display: flex;
185
180
  flex-direction: column;
186
- min-height: 100vh;
181
+ min-height: 0;
187
182
  }
188
183
 
189
184
  .contactPane .addressBook-grid {
190
185
  display: flex;
191
186
  flex-wrap: nowrap; /* keep sections side-by-side */
192
187
  flex: 1;
193
- min-width: 50%;
188
+ min-width: 0; /* allow it to shrink */
194
189
  align-items: stretch;
195
190
  width: 100%;
196
191
  box-sizing: border-box;
197
- overflow-x: auto; /* allow horizontal scroll if needed */
192
+ overflow-x: hidden;
198
193
  }
199
194
 
200
195
  @media ((min-width: 500px) and (max-width: 900px)) {
@@ -206,13 +201,15 @@
206
201
  }
207
202
  }
208
203
 
209
- .contactPane .contactPane--narrow .addressBook-grid {
204
+ .contactPane.contactPane--narrow .addressBook-grid {
210
205
  flex-direction: column !important;
211
- flex-wrap: wrap !important;
206
+ flex-wrap: nowrap !important;
207
+ min-width: 0 !important;
208
+ overflow-x: hidden !important;
212
209
  }
213
210
 
214
- .contactPane .contactPane--narrow .addressBookSection,
215
- .contactPane .contactPane--narrow .detailSection {
211
+ .contactPane.contactPane--narrow .addressBookSection,
212
+ .contactPane.contactPane--narrow .detailSection {
216
213
  flex: 1 1 100% !important;
217
214
  max-width: 100% !important;
218
215
  min-width: 0 !important;
@@ -241,11 +238,20 @@
241
238
  min-width: 0 !important;
242
239
  }
243
240
 
241
+
244
242
  .contactPane .addressBookSection {
245
- max-height: 60vh !important;
243
+ max-height: none !important;
246
244
  min-height: auto !important;
247
- overflow-y: auto !important;
245
+ overflow-y: visible !important;
248
246
  padding-bottom: var(--spacing-lg) !important;
247
+ display: flex !important;
248
+ flex-direction: column !important;
249
+ height: auto !important;
250
+ }
251
+
252
+ .contactPane .peopleSection ul {
253
+ max-height: 50vh;
254
+ overflow-y: auto;
249
255
  }
250
256
 
251
257
  .contactPane .detailSection {
@@ -270,10 +276,11 @@
270
276
  }
271
277
 
272
278
  /* Keep a normal mobile text scale while preserving comfortable touch targets */
273
- .contactPane,
274
- .contactPane * {
279
+ /* The following rule made all text much larger on mobile; comment out to restore normal font size for non-buttons.
280
+ .contactPane,
281
+ .contactPane * {
275
282
  font-size: 1.5rem !important;
276
- }
283
+ } */
277
284
 
278
285
  .contactPane .actionButton,
279
286
  .contactPane .searchInput,
@@ -296,7 +303,7 @@
296
303
 
297
304
 
298
305
  /* Card Section Background */
299
- .contactPane .section-bg {
306
+ .contactPane .addressBookSection.section-bg {
300
307
  background: var(--color-section-bg);
301
308
  padding: var(--spacing-md);
302
309
  box-sizing: border-box;
@@ -321,6 +328,7 @@
321
328
 
322
329
  /* ── Button section: horizontal scrollable row ──────────────── */
323
330
 
331
+
324
332
  .contactPane .buttonSection {
325
333
  display: flex;
326
334
  flex-wrap: nowrap;
@@ -334,6 +342,16 @@
334
342
  margin-bottom: 0;
335
343
  }
336
344
 
345
+ @media (max-width: 1000px) {
346
+ .contactPane .buttonSection {
347
+ position: sticky;
348
+ top: 0;
349
+ z-index: 2;
350
+ background: var(--color-section-bg);
351
+ box-shadow: 0 2px 4px -2px rgba(0,0,0,0.04);
352
+ }
353
+ }
354
+
337
355
  .contactPane .buttonSection::-webkit-scrollbar {
338
356
  height: 6px;
339
357
  }
@@ -510,7 +528,7 @@
510
528
 
511
529
  .contactPane .dottedHr {
512
530
  border: none;
513
- border-top: 1px dotted var(--color-text-muted);
531
+ border-top: var(--border-width-sm, 0.1rem) dotted var(--color-text-muted);
514
532
  margin: 0;
515
533
  }
516
534
 
@@ -541,7 +559,7 @@
541
559
  }
542
560
 
543
561
  .contactPane .peopleSection li {
544
- border-top: 1px solid var(--color-border-pale);
562
+ border-top: var(--border-width-sm, 0.1rem) solid var(--color-border-pale);
545
563
  padding: var(--spacing-xs);
546
564
  }
547
565
 
@@ -554,8 +572,8 @@
554
572
  }
555
573
 
556
574
  .contactPane .personLi-avatar {
557
- width: 45px;
558
- height: 45px;
575
+ width: 2.813rem /* 45px */;
576
+ height: 2.813rem /* 45px */;
559
577
  flex-shrink: 0;
560
578
  display: flex;
561
579
  align-items: center;
@@ -563,16 +581,16 @@
563
581
  }
564
582
 
565
583
  .contactPane .personLi-avatar .avatar-placeholder {
566
- width: 36px;
567
- height: 36px;
584
+ width: 2.25rem /* 36px */;
585
+ height: 2.25rem /* 36px */;
568
586
  display: flex;
569
587
  align-items: center;
570
588
  justify-content: center;
571
589
  }
572
590
 
573
591
  .contactPane .personLi-avatar img {
574
- width: 40px;
575
- height: 40px;
592
+ width: 2.5rem /* 40px */;
593
+ height: 2.5rem /* 40px */;
576
594
  border-radius: 50%;
577
595
  object-fit: cover;
578
596
  }
@@ -21,7 +21,7 @@
21
21
  Make the cell grow and keep the delete icon right-aligned (no overlap). */
22
22
  .contactPane td.hoverControl:has(> a) {
23
23
  width: auto !important;
24
- min-width: 4em !important;
24
+ min-width: 4rem !important;
25
25
  justify-content: space-between !important;
26
26
  }
27
27
 
@@ -86,8 +86,8 @@
86
86
  .contactPane img[src$="go-to-this.png"],
87
87
  .individualPane img[src$="red.svg"],
88
88
  .individualPane img[src$="go-to-this.png"] {
89
- width: 1.2em !important;
90
- height: 1.2em !important;
89
+ width: 1.2rem !important;
90
+ height: 1.2rem !important;
91
91
  max-width: none !important;
92
92
  max-height: none !important;
93
93
  object-fit: contain;
@@ -116,8 +116,8 @@
116
116
  }
117
117
 
118
118
  .contactPane .detailSection .detailsSectionContent img[title="Continue"] {
119
- width: 2em !important;
120
- height: 2em !important;
119
+ width: var(--icon-base, 2rem) !important;
120
+ height: var(--icon-base, 2rem) !important;
121
121
  }
122
122
 
123
123
  /* Allow “Continue” buttons inside contactFormContainer to be visible. */
@@ -151,7 +151,7 @@
151
151
  font: inherit;
152
152
  color: var(--color-text);
153
153
  background-color: var(--color-card-bg) !important;
154
- border: 1px solid var(--color-border-pale);
154
+ border: var(--border-width-sm) solid var(--color-border-pale);
155
155
  margin-left: 0 !important;
156
156
  margin-right: 0 !important;
157
157
  }
@@ -185,7 +185,7 @@
185
185
  font: inherit;
186
186
  color: var(--color-text);
187
187
  background-color: var(--color-card-bg) !important;
188
- border: 1px solid var(--color-border-pale);
188
+ border: var(--border-width-sm) solid var(--color-border-pale);
189
189
  }
190
190
 
191
191
  .individualPane input[type="date"],
@@ -322,7 +322,7 @@
322
322
 
323
323
  .individualPane .choiceBox .choiceBox-selectBox select,
324
324
  .contactPane .choiceBox .choiceBox-selectBox select {
325
- margin-left: 2.1em !important;
325
+ margin-left: 2.1rem !important;
326
326
  }
327
327
 
328
328
  /* for the Resume orga details */
@@ -331,7 +331,7 @@
331
331
  .contactPane .classifierBox .classifierBox-label {
332
332
  margin-right: 0;
333
333
  padding-left: var(--spacing-xxs);
334
- width: 8em;
334
+ width: 8rem;
335
335
  padding: var(--spacing-xxs);
336
336
  vertical-align: middle;
337
337
  }
@@ -489,8 +489,8 @@
489
489
  .individualPane .hoverControl [data-testid="deleteButtonWithCheck"] {
490
490
  position: absolute !important;
491
491
  right: var(--spacing-xxxs) !important;
492
- width: 1.5em !important;
493
- height: 1.5em !important;
492
+ width: var(--icon-xs, 1.5rem) !important;
493
+ height: var(--icon-xs, 1.5rem) !important;
494
494
  display: none !important;
495
495
  align-items: center;
496
496
  justify-content: center;
@@ -24,7 +24,7 @@
24
24
  display: flex;
25
25
  flex-direction: column;
26
26
  align-items: stretch;
27
- max-width: 256px;
27
+ max-width: 16rem; /* 256px */
28
28
  }
29
29
 
30
30
  .contactPane .group-membership-item > button {
@@ -45,13 +45,13 @@
45
45
  }
46
46
 
47
47
  .contactPane .group-membership-item .group-membership-toolbar a {
48
- margin: 0.3em;
49
- margin-left: 1em;
48
+ margin: 0.3rem;
49
+ margin-left: 1rem;
50
50
  }
51
51
 
52
52
  .contactPane .group-membership-item .group-membership-toolbar a img {
53
- width: 1.3em;
54
- height: 1em;
53
+ width: 1.3rem;
54
+ height: 1rem;
55
55
  margin: 0;
56
56
  }
57
57
 
@@ -74,8 +74,8 @@
74
74
  top: 0 !important;
75
75
  left: 50% !important;
76
76
  transform: translateX(-50%) !important;
77
- width: min(90vw, 440px) !important;
78
- min-width: 280px !important;
77
+ width: min(90vw, 27.5rem) !important; /* 440px */
78
+ min-width: 17.5rem !important; /* 280px */
79
79
  max-width: 90vw !important;
80
80
  display: flex;
81
81
  align-items: center;
@@ -86,7 +86,7 @@
86
86
  .contactPane .detailsSectionContent .group-membership-item .group-membership-toolbar > div[style*="position: relative"] > div {
87
87
  position: relative !important;
88
88
  top: auto !important;
89
- min-width: 280px !important;
89
+ min-width: 17.5rem !important; /* 280px */
90
90
  background: var(--color-background);
91
91
  border-radius: var(--border-radius-full);
92
92
  padding: var(--spacing-lg);
@@ -37,7 +37,7 @@
37
37
  padding: var(--spacing-sm) var(--spacing-md);
38
38
  border: 1px solid var(--color-primary);
39
39
  border-radius: var(--border-radius-base);
40
- font-weight: 600;
40
+ font-weight: var(--font-weight-bold, 600);
41
41
  cursor: pointer;
42
42
  transition: all var(--animation-duration) ease;
43
43
  }
@@ -4,7 +4,7 @@
4
4
  /* ── Mugshot image ───────────────────────────────────────────── */
5
5
 
6
6
  .contactPane .mugshotImage {
7
- max-height: 10em;
7
+ max-height: 10rem;
8
8
  border-radius: var(--border-radius-full);
9
9
  margin: var(--spacing-sm);
10
10
  }
@@ -4,66 +4,7 @@
4
4
  */
5
5
 
6
6
  /* Utility helper classes */
7
- .hidden {
8
- display: none !important;
9
- }
10
7
 
11
- .btn-primary {
12
- min-height: var(--min-touch-target);
13
- padding: var(--spacing-sm) var(--spacing-md);
14
- border: 1px solid var(--color-primary);
15
- border-radius: var(--border-radius-base);
16
- background: var(--color-primary);
17
- color: var(--color-background);
18
- font-weight: 600;
19
- cursor: pointer;
20
- transition: all var(--animation-duration) ease;
21
- }
22
-
23
- .btn-primary:hover {
24
- background: color-mix(in srgb, var(--color-primary) 90%, black);
25
- box-shadow: var(--box-shadow-hover);
26
- }
27
-
28
- .btn-primary:active {
8
+ /* different from mashlib .btn-primary:active {
29
9
  box-shadow: var(--box-shadow-active);
30
- }
31
-
32
- .btn-primary:disabled {
33
- opacity: var(--opacity-disabled);
34
- cursor: not-allowed;
35
- transform: none;
36
- }
37
-
38
- .btn-secondary {
39
- min-height: var(--min-touch-target);
40
- padding: var(--spacing-sm) var(--spacing-md);
41
- border: var(--border-width-thin) solid var(--color-secondary);
42
- border-radius: var(--border-radius-base);
43
- background: var(--color-secondary);
44
- color: var(--color-background);
45
- font-weight: var(--font-weight-bold);
46
- cursor: pointer;
47
- transition: all var(--animation-duration) ease;
48
- text-decoration: none;
49
- display: inline-flex;
50
- align-items: center;
51
- justify-content: center;
52
- }
53
-
54
- .btn-secondary:hover {
55
- background: color-mix(in srgb, var(--color-secondary) 85%, black);
56
- }
57
-
58
- .btn-secondary:disabled {
59
- opacity: var(--opacity-disabled);
60
- cursor: not-allowed;
61
- }
62
-
63
- .action-button-focus:focus,
64
- .action-button-focus:focus-visible {
65
- outline: 3px solid var(--color-primary) !important;
66
- outline-offset: 2px !important;
67
- box-shadow: 0 0 0 2px var(--color-background), var(--box-shadow-focus) !important;
68
- z-index: 1;
69
- }
10
+ } */
@@ -83,6 +83,168 @@
83
83
  white-space: pre-wrap;
84
84
  }
85
85
 
86
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane,
87
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) table td div.contactPane.namedPane {
88
+ display: block;
89
+ width: 100% !important;
90
+ max-width: none !important;
91
+ min-width: 0 !important;
92
+ box-sizing: border-box;
93
+ container-type: inline-size;
94
+ container-name: nested-profile-pane;
95
+ margin-top: var(--spacing-sm);
96
+ }
97
+
98
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile-grid,
99
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane #main-content.profile-grid {
100
+ display: flex !important;
101
+ flex-direction: column !important;
102
+ gap: var(--spacing-sm) !important;
103
+ }
104
+
105
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__main,
106
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__sidebar,
107
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__section {
108
+ width: 100% !important;
109
+ min-width: 0 !important;
110
+ max-width: 100% !important;
111
+ box-sizing: border-box;
112
+ overflow-wrap: anywhere;
113
+ }
114
+
115
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__sidebar,
116
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__section,
117
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__main {
118
+ padding: var(--spacing-sm) !important;
119
+ }
120
+
121
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible[data-expanded="false"] .profileSectionCollapsible__content {
122
+ display: none !important;
123
+ }
124
+
125
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible__toggle {
126
+ display: inline-flex !important;
127
+ align-items: center;
128
+ justify-content: center;
129
+ min-height: auto !important;
130
+ min-width: auto !important;
131
+ padding: var(--spacing-xxs) !important;
132
+ border: none !important;
133
+ background: none !important;
134
+ color: var(--color-text) !important;
135
+ }
136
+
137
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible[data-expanded="true"] .profileSectionCollapsible__chevron {
138
+ transform: rotate(180deg);
139
+ }
140
+
141
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible__editLabel {
142
+ display: none !important;
143
+ }
144
+
145
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible__editIcon {
146
+ display: inline !important;
147
+ }
148
+
149
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .socialItem {
150
+ display: flex !important;
151
+ align-items: center !important;
152
+ flex: 0 0 auto !important;
153
+ }
154
+
155
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .socialItem a {
156
+ display: inline-flex !important;
157
+ align-items: center !important;
158
+ justify-content: center !important;
159
+ flex: 0 0 auto !important;
160
+ width: auto !important;
161
+ min-width: var(--min-touch-target) !important;
162
+ min-height: var(--min-touch-target) !important;
163
+ line-height: 0 !important;
164
+ }
165
+
166
+ .contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .socialIcon {
167
+ display: block !important;
168
+ width: 40px !important;
169
+ height: 40px !important;
170
+ min-width: 40px !important;
171
+ min-height: 40px !important;
172
+ max-width: 40px !important;
173
+ max-height: 40px !important;
174
+ object-fit: contain !important;
175
+ flex-shrink: 0 !important;
176
+ }
177
+
178
+ @media (max-width: 1000px) {
179
+ .contactPane .webidControl,
180
+ .contactPane .webidControl table,
181
+ .contactPane .webidControl tbody,
182
+ .contactPane .webidControl tr,
183
+ .contactPane .webidControl td {
184
+ width: 100%;
185
+ max-width: 100%;
186
+ min-width: 0;
187
+ box-sizing: border-box;
188
+ }
189
+
190
+ .contactPane .webidControl table {
191
+ table-layout: fixed;
192
+ }
193
+
194
+ .contactPane .webidControl .personaRow--webid td {
195
+ vertical-align: top;
196
+ }
197
+
198
+ .contactPane .webidControl .contactPane,
199
+ .contactPane .webidControl .contactPane .addressBook-grid,
200
+ .contactPane .webidControl .contactPane .detailSection,
201
+ .contactPane .webidControl .contactPane .detailsSectionContent {
202
+ width: 100% !important;
203
+ max-width: 100% !important;
204
+ min-width: 0 !important;
205
+ box-sizing: border-box;
206
+ }
207
+
208
+ .contactPane .webidControl .contactPane .addressBook-grid {
209
+ flex-direction: column !important;
210
+ flex-wrap: nowrap !important;
211
+ }
212
+
213
+ .contactPane .webidControl .contactPane .detailSection,
214
+ .contactPane .webidControl .contactPane .addressBookSection {
215
+ flex: none !important;
216
+ }
217
+
218
+ .contactPane .webidControl .contactPane .detailsSectionContent,
219
+ .contactPane .webidControl .contactPane .detailsSectionContent--wide {
220
+ padding: var(--spacing-sm) !important;
221
+ overflow-y: visible !important;
222
+ }
223
+
224
+ }
225
+
226
+ @container nested-profile-pane (max-width: 900px) {
227
+ .contactPane .webidControl .profile-grid {
228
+ display: flex !important;
229
+ flex-direction: column !important;
230
+ gap: var(--spacing-sm) !important;
231
+ }
232
+
233
+ .contactPane .webidControl .profile-grid > * {
234
+ min-width: 0 !important;
235
+ max-width: 100% !important;
236
+ }
237
+
238
+ .contactPane .webidControl .profile__main,
239
+ .contactPane .webidControl .profile__sidebar,
240
+ .contactPane .webidControl .profile__section {
241
+ width: 100% !important;
242
+ min-width: 0 !important;
243
+ max-width: 100% !important;
244
+ overflow-wrap: anywhere;
245
+ }
246
+ }
247
+
86
248
  /* ── Visibility / display helpers ────────────────────────────── */
87
249
 
88
250
  .contactPane .collapsed {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contacts-pane",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "Contacts Pane: Contacts manager for Address Book, Groups, and Individuals.",
5
5
  "main": "dist/contactsPane.js",
6
6
  "files": [
@@ -12,6 +12,8 @@
12
12
  "clean": "rm -rf dist",
13
13
  "build": "npm run clean && npm run build-dist",
14
14
  "build-dist": "webpack --progress",
15
+ "watch-dist": "webpack --watch",
16
+ "watch": "npm run watch-dist",
15
17
  "lint": "eslint",
16
18
  "lint-fix": "eslint --fix",
17
19
  "typecheck-test": "tsc --noEmit -p tsconfig.test.json",
@@ -68,6 +70,7 @@
68
70
  "css-loader": "^7.1.4",
69
71
  "eslint": "^9.39.2",
70
72
  "eslint-plugin-import": "^2.32.0",
73
+ "file-loader": "^6.2.0",
71
74
  "globals": "^17.1.0",
72
75
  "html-webpack-plugin": "^5.6.6",
73
76
  "jest": "^30.2.0",