profile-pane 3.2.3-0 → 3.2.3-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 (107) hide show
  1. package/lib/ProfileView.css +73 -236
  2. package/lib/ProfileView.d.ts +2 -1
  3. package/lib/ProfileView.d.ts.map +1 -1
  4. package/lib/ProfileView.js +19 -18
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +35 -35
  7. package/lib/profile-pane.js +17229 -25377
  8. package/lib/profile-pane.js.map +1 -1
  9. package/lib/profile-pane.min.js +809 -1579
  10. package/lib/profile-pane.min.js.map +1 -1
  11. package/lib/sections/bio/BioSection.css +16 -123
  12. package/lib/sections/bio/BioSection.d.ts +2 -2
  13. package/lib/sections/bio/BioSection.d.ts.map +1 -1
  14. package/lib/sections/bio/BioSection.js +23 -32
  15. package/lib/sections/contactInfo/ContactInfoEditDialog.css +33 -66
  16. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
  17. package/lib/sections/contactInfo/ContactInfoEditDialog.js +15 -39
  18. package/lib/sections/contactInfo/ContactInfoSection.css +7 -7
  19. package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -2
  20. package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
  21. package/lib/sections/contactInfo/ContactInfoSection.js +34 -49
  22. package/lib/sections/education/EducationSection.d.ts +1 -1
  23. package/lib/sections/education/EducationSection.d.ts.map +1 -1
  24. package/lib/sections/education/EducationSection.js +2 -3
  25. package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
  26. package/lib/sections/heading/HeadingEditDialog.js +1 -9
  27. package/lib/sections/heading/HeadingSection.css +122 -346
  28. package/lib/sections/heading/HeadingSection.d.ts +2 -3
  29. package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
  30. package/lib/sections/heading/HeadingSection.js +13 -19
  31. package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
  32. package/lib/sections/languages/LanguageEditDialog.js +7 -8
  33. package/lib/sections/languages/LanguageSection.css +6 -6
  34. package/lib/sections/languages/LanguageSection.d.ts +2 -2
  35. package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
  36. package/lib/sections/languages/LanguageSection.js +33 -49
  37. package/lib/sections/projects/ProjectEditDialog.d.ts +0 -1
  38. package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
  39. package/lib/sections/projects/ProjectEditDialog.js +2 -6
  40. package/lib/sections/projects/ProjectSection.css +36 -94
  41. package/lib/sections/projects/ProjectSection.d.ts +2 -2
  42. package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
  43. package/lib/sections/projects/ProjectSection.js +28 -49
  44. package/lib/sections/resume/ResumeEditDialog.d.ts +0 -1
  45. package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
  46. package/lib/sections/resume/ResumeEditDialog.js +20 -40
  47. package/lib/sections/resume/ResumeSection.css +51 -133
  48. package/lib/sections/resume/ResumeSection.d.ts +3 -3
  49. package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
  50. package/lib/sections/resume/ResumeSection.js +28 -42
  51. package/lib/sections/shared/sectionCardHelpers.js +15 -15
  52. package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
  53. package/lib/sections/skills/SkillsEditDialog.js +1 -3
  54. package/lib/sections/skills/SkillsSection.css +20 -67
  55. package/lib/sections/skills/SkillsSection.d.ts +2 -2
  56. package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
  57. package/lib/sections/skills/SkillsSection.js +36 -55
  58. package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
  59. package/lib/sections/social/SocialEditDialog.js +4 -9
  60. package/lib/sections/social/SocialSection.css +19 -70
  61. package/lib/sections/social/SocialSection.d.ts +2 -2
  62. package/lib/sections/social/SocialSection.d.ts.map +1 -1
  63. package/lib/sections/social/SocialSection.js +37 -61
  64. package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -1
  65. package/lib/specialButtons/addMeToYourFriends.js +0 -2
  66. package/lib/styles/CollapsibleSection.css +39 -223
  67. package/lib/styles/EditDialogs.css +90 -284
  68. package/lib/styles/EditDialogs.responsive.css +72 -147
  69. package/lib/types.d.ts +1 -0
  70. package/lib/types.d.ts.map +1 -1
  71. package/lib/ui/dialog.css +18 -89
  72. package/lib/ui/dialog.d.ts.map +1 -1
  73. package/lib/ui/dialog.js +5 -9
  74. package/lib/ui/dialog.responsive.css +31 -34
  75. package/lib/ui/responsiveActionButton.d.ts +19 -0
  76. package/lib/ui/responsiveActionButton.d.ts.map +1 -0
  77. package/lib/ui/responsiveActionButton.js +34 -0
  78. package/lib/utils/resize.d.ts +2 -0
  79. package/lib/utils/resize.d.ts.map +1 -0
  80. package/lib/utils/resize.js +40 -0
  81. package/package.json +19 -19
  82. package/lib/303.profile-pane.js +0 -1362
  83. package/lib/303.profile-pane.js.map +0 -1
  84. package/lib/303.profile-pane.min.js +0 -2
  85. package/lib/303.profile-pane.min.js.map +0 -1
  86. package/lib/specialButtons/addContact/AddMeToYourContacts.css +0 -1118
  87. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +0 -10
  88. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +0 -1
  89. package/lib/specialButtons/addContact/ContactCreationDialog.js +0 -1123
  90. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +0 -16
  91. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +0 -1
  92. package/lib/specialButtons/addContact/addMeToYourContacts.js +0 -136
  93. package/lib/specialButtons/addContact/contactsErrors.d.ts +0 -8
  94. package/lib/specialButtons/addContact/contactsErrors.d.ts.map +0 -1
  95. package/lib/specialButtons/addContact/contactsErrors.js +0 -106
  96. package/lib/specialButtons/addContact/contactsTypes.d.ts +0 -43
  97. package/lib/specialButtons/addContact/contactsTypes.d.ts.map +0 -1
  98. package/lib/specialButtons/addContact/contactsTypes.js +0 -5
  99. package/lib/specialButtons/addContact/helpers.d.ts +0 -7
  100. package/lib/specialButtons/addContact/helpers.d.ts.map +0 -1
  101. package/lib/specialButtons/addContact/helpers.js +0 -103
  102. package/lib/specialButtons/addContact/mutations.d.ts +0 -16
  103. package/lib/specialButtons/addContact/mutations.d.ts.map +0 -1
  104. package/lib/specialButtons/addContact/mutations.js +0 -300
  105. package/lib/specialButtons/addContact/selectors.d.ts +0 -10
  106. package/lib/specialButtons/addContact/selectors.d.ts.map +0 -1
  107. package/lib/specialButtons/addContact/selectors.js +0 -163
@@ -1,72 +1,14 @@
1
- /* Resume section styles. */
2
-
3
- /* Section actions */
4
- .resume__edit-button {
5
- width: auto;
6
- min-width: 0;
7
- max-width: none;
8
- padding: var(--spacing-xxs, 0.3125rem);
9
- border: none;
10
- background: none;
11
- color: var(--color-primary, #7C4DFF);
12
- cursor: var(--profile-interactive-cursor, pointer);
13
- font-size: var(--font-size-sm, 0.875rem);
14
- }
15
-
16
- solid-ui-button.resume__edit-button {
17
- width: auto;
18
- min-width: 0;
19
- max-width: none;
20
- --button-height-sm: 0;
21
- --button-padding-sm: var(--spacing-xxs, 0.3125rem);
22
- --button-font-size-sm: var(--font-size-sm, 0.875rem);
23
- --button-font-weight: var(--font-weight-regular, 400);
24
- --button-background: transparent;
25
- --button-border-width: 0;
26
- --button-border: transparent;
27
- --button-text: var(--color-primary, #7C4DFF);
28
- --button-hover-background: transparent;
29
- --button-hover-border: transparent;
30
- --button-hover-text: var(--color-primary, #7C4DFF);
31
- }
32
-
33
- .resume__edit-button:hover {
34
- text-decoration: underline;
35
- }
36
-
37
- solid-ui-button.resume__edit-button:hover::part(button),
38
- solid-ui-button.resume__edit-button:focus-visible::part(button) {
39
- text-decoration: underline;
40
- }
41
-
42
1
  .resume-card {
43
- --resume-card-section-gap: var(--spacing-md, 1.25rem);
44
- --resume-card-item-gap: var(--spacing-xs, 0.75rem);
45
- --resume-card-header-gap: var(--spacing-sm, 0.75rem);
46
- --resume-card-column-gap: var(--spacing-md, 1.25rem);
47
- --resume-card-row-gap: var(--spacing-2xs, 0.625rem);
48
- --resume-card-title-color: var(--color-text-subheading, var(--gray-900, #101828));
49
- --resume-card-title-size: var(--font-size-lg, 1.125rem);
50
- --resume-card-title-weight: var(--font-weight-bold, 600);
51
- --resume-card-organization-color: var(--color-text-secondary, var(--gray-600, #4A5565));
52
- --resume-card-organization-size: var(--font-size-md, 1rem);
53
- --resume-card-organization-weight: var(--font-weight-md, 500);
54
- --resume-card-location-color: var(--color-text-secondary, var(--gray-600, #4A5565));
55
- --resume-card-location-size: var(--font-size-sm, 0.875rem);
56
- --resume-card-location-weight: var(--font-weight-normal, 400);
57
- --resume-card-period-color: var(--color-text-secondary, var(--gray-600, #4A5565));
58
- --resume-card-period-size: var(--font-size-sm, 0.875rem);
59
- --resume-card-period-weight: var(--font-weight-normal, 400);
60
- --resume-card-description-color: var(--color-text-primary, var(--gray-700, #364153));
61
- --resume-card-description-size: var(--font-size-sm, 0.875rem);
62
- --resume-card-description-weight: var(--font-weight-normal, 400);
63
- --resume-card-heading-color: var(--color-text-subheading, #101828);
64
- --resume-card-heading-border: var(--color-border-pale, #eee);
2
+ --resume-card-item-gap: 12px;
3
+ --resume-card-title-size: var(--solid-ui-font-size-lg, 1.125rem);
4
+ --resume-card-organization-size: var(--solid-ui-font-size-md, 1rem);
5
+ --resume-card-location-size: var(--solid-ui-font-size-sm, 0.875rem);
6
+ --resume-card-period-size: var(--solid-ui-font-size-sm, 0.875rem);
7
+ --resume-card-description-size: var(--solid-ui-font-size-sm, 0.875rem);
65
8
  }
66
9
 
67
- /* Section layout */
68
10
  .resume-card__section {
69
- margin-bottom: var(--resume-card-section-gap);
11
+ margin-bottom: 20px;
70
12
  }
71
13
 
72
14
  .resume-card__section > ul {
@@ -82,12 +24,12 @@ solid-ui-button.resume__edit-button:focus-visible::part(button) {
82
24
  "title period"
83
25
  "organization organization"
84
26
  "description description";
85
- column-gap: var(--resume-card-column-gap);
86
- row-gap: var(--resume-card-row-gap);
27
+ column-gap: 20px;
28
+ row-gap: 10px;
87
29
  align-items: start;
88
30
  margin: 0 0 var(--resume-card-item-gap) 0;
89
- font-size: var(--font-size-base, 1rem);
90
- line-height: var(--line-height-base, 1.5);
31
+ font-size: var(--solid-ui-font-size-md, 1rem);
32
+ line-height: 1.5;
91
33
  gap: 0;
92
34
  }
93
35
 
@@ -99,7 +41,7 @@ solid-ui-button.resume__edit-button:focus-visible::part(button) {
99
41
  grid-area: title;
100
42
  display: flex;
101
43
  align-items: baseline;
102
- gap: var(--resume-card-header-gap);
44
+ gap: 15px;
103
45
  min-width: 0;
104
46
  }
105
47
 
@@ -112,10 +54,10 @@ solid-ui-button.resume__edit-button:focus-visible::part(button) {
112
54
  .resume-card__item-header h3,
113
55
  .resume-card__item-header h4 {
114
56
  min-width: 0;
115
- color: var(--resume-card-title-color);
57
+ color: var(--color-text-subheading, var(--gray-900, #101828));
116
58
  font-size: var(--resume-card-title-size);
117
- font-weight: var(--resume-card-title-weight);
118
- line-height: var(--line-height-tight, 1.4);
59
+ font-weight: 600;
60
+ line-height: 1.4;
119
61
  }
120
62
 
121
63
  .resume-card__item-period {
@@ -123,39 +65,35 @@ solid-ui-button.resume__edit-button:focus-visible::part(button) {
123
65
  justify-self: end;
124
66
  text-align: right;
125
67
  margin: 0;
126
- color: var(--resume-card-period-color);
68
+ color: var(--solid-ui-color-gray-600, #4A5565);
127
69
  font-size: var(--resume-card-period-size);
128
- font-weight: var(--resume-card-period-weight);
129
- line-height: var(--line-height-tight, 1.4);
70
+ font-weight: 400;
71
+ line-height: 1.4;
130
72
  }
131
73
 
132
74
  .resume-card__organization {
133
75
  grid-area: organization;
134
76
  margin: 0;
135
- line-height: var(--line-height-base, 1.5);
77
+ line-height: 1.5;
136
78
  }
137
79
 
138
80
  .resume-card__organization-name {
139
- color: var(--resume-card-organization-color);
81
+ color: var(--solid-ui-color-gray-600, #4A5565);
140
82
  font-size: var(--resume-card-organization-size);
141
- font-weight: var(--resume-card-organization-weight);
83
+ font-weight: 500;
142
84
  }
143
85
 
144
86
  .resume-card__organization-separator,
145
87
  .resume-card__organization-location {
146
- color: var(--resume-card-location-color);
88
+ color: var(--solid-ui-color-gray-600, #4A5565);
147
89
  font-size: var(--resume-card-location-size);
148
- font-weight: var(--resume-card-location-weight);
90
+ font-weight: 400;
149
91
  }
150
92
 
151
93
  /* Description toggle */
152
94
  .resume-card__description-wrap {
95
+ --resume-card-description-offset: 15px;
153
96
  grid-area: description;
154
- --resume-card-description-offset: var(--spacing-sm, 0.938rem);
155
- --resume-description-toggle-inline-offset: 0;
156
- --resume-description-toggle-line-top: calc(100% - 1.5em + 0.28em - 11px);
157
- --resume-description-toggle-line-translate-y: 7px;
158
- --resume-description-overflow-padding-inline-end: 4.5rem;
159
97
  margin: var(--resume-card-description-offset) 0 0;
160
98
  position: relative;
161
99
  isolation: isolate;
@@ -169,15 +107,15 @@ solid-ui-button.resume__edit-button:focus-visible::part(button) {
169
107
  -webkit-box-orient: vertical;
170
108
  -webkit-line-clamp: 2;
171
109
  line-clamp: 2;
172
- color: var(--resume-card-description-color);
110
+ color: var(--solid-ui-color-gray-700, #364153);
173
111
  font-size: var(--resume-card-description-size);
174
- font-weight: var(--resume-card-description-weight);
175
- line-height: var(--line-height-base, 1.5);
112
+ font-weight: 400;
113
+ line-height: 1.5;
176
114
  overflow: hidden;
177
115
  }
178
116
 
179
117
  .resume-card__description-text--overflowing {
180
- padding-right: var(--resume-description-overflow-padding-inline-end);
118
+ padding-right: 72px;
181
119
  }
182
120
 
183
121
  .resume-card__description-text--expanded {
@@ -193,9 +131,9 @@ solid-ui-button.resume-card__description-toggle {
193
131
  margin: 0;
194
132
  padding: 0;
195
133
  position: absolute;
196
- right: var(--resume-description-toggle-inline-offset);
134
+ right: 0;
197
135
  bottom: 0;
198
- background-color: var(--color-card-bg, #FFF);
136
+ background-color: var(--solid-ui-color-white, #FFF);
199
137
  white-space: nowrap;
200
138
  z-index: 0;
201
139
  }
@@ -203,36 +141,25 @@ solid-ui-button.resume-card__description-toggle {
203
141
  .resume-card__description-toggle {
204
142
  border: 0;
205
143
  background: transparent;
206
- color: var(--color-primary, #7C4DFF);
144
+ color: var(--solid-ui-color-primary, #7C4DFF);
207
145
  cursor: var(--profile-interactive-cursor, pointer);
208
146
  font: inherit;
209
- font-size: var(--font-size-sm, 0.875rem);
210
- line-height: var(--line-height-base, 1.5);
147
+ font-size: var(--solid-ui-font-size-sm, 0.875rem);
148
+ line-height: 1.5;
211
149
  min-height: auto;
212
150
  min-width: auto;
213
151
  }
214
152
 
215
- solid-ui-button.resume-card__description-toggle {
216
- min-height: 0;
217
- min-width: 0;
218
- --button-height-sm: 0;
219
- --button-padding-sm: 0;
220
- --button-font-size-sm: var(--font-size-sm, 0.875rem);
221
- --button-line-height: var(--line-height-base, 1.5);
222
- --button-background: transparent;
223
- --button-border-width: 0;
224
- --button-border: transparent;
225
- --button-text: var(--color-primary, #7C4DFF);
226
- --button-hover-background: transparent;
227
- --button-hover-border: transparent;
228
- --button-hover-text: var(--color-primary, #7C4DFF);
153
+ solid-ui-button.resume-card__description-toggle[hidden],
154
+ .resume-card__description-toggle[hidden] {
155
+ display: none !important;
229
156
  }
230
157
 
231
158
  .resume-card__description-wrap .resume-card__description-text:not(.resume-card__description-text--expanded) + .resume-card__description-toggle,
232
159
  .resume-card__description-wrap .resume-card__description-text:not(.resume-card__description-text--expanded) + solid-ui-button.resume-card__description-toggle {
233
- top: var(--resume-description-toggle-line-top);
160
+ top: calc(100% - 1.5em + 0.28em - 11px);
234
161
  bottom: auto;
235
- transform: translateY(var(--resume-description-toggle-line-translate-y));
162
+ transform: translateY(7px);
236
163
  }
237
164
 
238
165
  .resume-card__description-text--expanded + .resume-card__description-toggle,
@@ -258,27 +185,24 @@ solid-ui-button.resume-card__description-toggle {
258
185
  .resume-card__language {
259
186
  text-align: left;
260
187
  margin: var(--resume-card-item-gap) 0;
261
- font-size: var(--font-size-base, 1rem);
262
- line-height: var(--line-height-base, 1.5);
188
+ font-size: var(--solid-ui-font-size-md, 1rem);
189
+ line-height: 1.5;
263
190
  }
264
191
 
265
192
  .resume-card__section > h3 {
266
- color: var(--resume-card-heading-color);
267
- font-size: var(--font-size-xl, 1.375rem);
268
- font-weight: var(--font-weight-md, 500);
269
- line-height: var(--line-height-tight, 1.4);
193
+ color: var(--solid-ui-color-gray-800, #101828);
194
+ font-size: 1.375rem;
195
+ font-weight: 500;
196
+ line-height: 1.4;
270
197
  margin-bottom: var(--resume-card-item-gap);
271
- border-bottom: 1px solid var(--resume-card-heading-border);
198
+ border-bottom: 1px solid var(--color-border-pale, #eee);
272
199
  padding-bottom: var(--resume-card-item-gap);
273
200
  }
274
201
 
275
202
  /* Compact layout */
276
203
  :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .resume-card__item {
277
- --resume-card-title-size: var(--font-size-lg, 1.125rem);
278
- --resume-card-organization-size: var(--font-size-md, 1rem);
279
- --resume-card-location-size: var(--font-size-sm, 0.875rem);
280
- --resume-card-period-size: var(--font-size-xxs, 0.75rem);
281
- --resume-card-description-size: var(--font-size-sm, 0.875rem);
204
+ --resume-card-location-size: var(--solid-ui-font-size-sm, 0.875rem);
205
+ --resume-card-period-size: 0.75rem;
282
206
  --resume-card-description-offset: 0rem;
283
207
  grid-template-columns: minmax(0, 1fr);
284
208
  grid-template-areas:
@@ -299,11 +223,8 @@ solid-ui-button.resume-card__description-toggle {
299
223
 
300
224
  @media (max-width: 576px) {
301
225
  .resume-card__item {
302
- --resume-card-title-size: var(--font-size-lg, 1.125rem);
303
- --resume-card-organization-size: var(--font-size-md, 1rem);
304
- --resume-card-location-size: var(--font-size-sm, 0.875rem);
305
- --resume-card-period-size: var(--font-size-xxs, 0.75rem);
306
- --resume-card-description-size: var(--font-size-sm, 0.875rem);
226
+ --resume-card-location-size: var(--solid-ui-font-size-sm, 0.875rem);
227
+ --resume-card-period-size: 0.75rem;
307
228
  --resume-card-description-offset: 0rem;
308
229
  grid-template-columns: minmax(0, 1fr);
309
230
  grid-template-areas:
@@ -325,11 +246,8 @@ solid-ui-button.resume-card__description-toggle {
325
246
 
326
247
  @container profile-pane (max-width: 576px) {
327
248
  .resume-card__item {
328
- --resume-card-title-size: var(--font-size-lg, 1.125rem);
329
- --resume-card-organization-size: var(--font-size-md, 1rem);
330
- --resume-card-location-size: var(--font-size-sm, 0.875rem);
331
- --resume-card-period-size: var(--font-size-xxs, 0.75rem);
332
- --resume-card-description-size: var(--font-size-sm, 0.875rem);
249
+ --resume-card-location-size: var(--solid-ui-font-size-sm, 0.875rem);
250
+ --resume-card-period-size: 0.75rem;
333
251
  --resume-card-description-offset: 0rem;
334
252
  grid-template-columns: minmax(0, 1fr);
335
253
  grid-template-areas:
@@ -1,8 +1,8 @@
1
1
  import 'solid-ui/components/button';
2
2
  import { RoleDetails } from './types';
3
- import { ViewerMode } from '../../types';
3
+ import { Layout, ViewerMode } from '../../types';
4
4
  import './ResumeSection.css';
5
5
  import { LiveStore, NamedNode } from 'rdflib';
6
- export declare const CVCard: (cvData: RoleDetails[], _viewerMode: ViewerMode) => import("lit-html").TemplateResult<1>;
7
- export declare function renderCVSection(store: LiveStore, subject: NamedNode, roles: RoleDetails[], viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1> | "";
6
+ export declare const CVCard: (cvData: RoleDetails[]) => import("lit-html").TemplateResult<1>;
7
+ export declare function renderCVSection(store: LiveStore, subject: NamedNode, roles: RoleDetails[], viewerMode: ViewerMode, layout: Layout, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1>;
8
8
  //# sourceMappingURL=ResumeSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResumeSection.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/ResumeSection.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,qBAAqB,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAgE7C,eAAO,MAAM,MAAM,GACjB,QAAQ,WAAW,EAAE,EACrB,aAAa,UAAU,yCAcxB,CAAA;AA0ID,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,6CAarC"}
1
+ {"version":3,"file":"ResumeSection.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/ResumeSection.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,qBAAqB,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AA8D7C,eAAO,MAAM,MAAM,GACjB,QAAQ,WAAW,EAAE,yCActB,CAAA;AA+HD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,wCAYrC"}
@@ -13,6 +13,7 @@ var _ResumeEditDialog = require("./ResumeEditDialog");
13
13
  var _sectionCardHelpers = require("../shared/sectionCardHelpers");
14
14
  var _collapsibleSection = require("../shared/collapsibleSection");
15
15
  var _profileIcons = require("../../icons-svg/profileIcons");
16
+ var _responsiveActionButton = require("../../ui/responsiveActionButton");
16
17
  function renderRole(role, index) {
17
18
  if (!role) return (0, _litHtml.html)``;
18
19
  const roleTitleId = `cv-role-title-${index}`;
@@ -37,20 +38,17 @@ function renderRole(role, index) {
37
38
  <div class="resume-card__description-wrap">
38
39
  <p class="resume-card__description-text" id=${roleDescriptionId}>${role.description}</p>
39
40
  <solid-ui-button
40
- type="button"
41
- variant="secondary"
42
- size="sm"
43
- label="...more"
41
+ variant="tertiary"
44
42
  class="resume-card__description-toggle"
45
43
  aria-controls=${roleDescriptionId}
46
- aria-expanded="false"
44
+ aria-expanded=${'false'}
47
45
  hidden
48
46
  @click=${_sectionCardHelpers.toggleDescription}
49
47
  >
50
48
  ...more
51
49
  </solid-ui-button>
52
50
  </div>
53
- ` : ''}
51
+ ` : _litHtml.nothing}
54
52
  </li>
55
53
  `;
56
54
  }
@@ -58,7 +56,7 @@ function renderRoles(roles) {
58
56
  if (!roles || !roles.length) return (0, _litHtml.html)``;
59
57
  return (0, _litHtml.html)`${roles.map((role, index) => renderRole(role, index))}`;
60
58
  }
61
- const CVCard = (cvData, _viewerMode) => {
59
+ const CVCard = cvData => {
62
60
  const hasRoles = Array.isArray(cvData) && cvData.length > 0;
63
61
  if (!hasRoles) return (0, _litHtml.html)``;
64
62
  return (0, _litHtml.html)`
@@ -72,13 +70,12 @@ const CVCard = (cvData, _viewerMode) => {
72
70
  `;
73
71
  };
74
72
  exports.CVCard = CVCard;
75
- function renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, onSaved) {
73
+ function renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, layout, onSaved) {
76
74
  (0, _sectionCardHelpers.scheduleDescriptionOverflowCheck)();
77
75
  const hasResume = resumeDetails.length > 0;
78
- const showSection = true;
79
- const cv = hasResume ? CVCard(resumeDetails, viewerMode) : (0, _litHtml.html)``;
76
+ const cv = hasResume ? CVCard(resumeDetails) : _litHtml.nothing;
80
77
  const isOwner = viewerMode === 'owner';
81
- return showSection ? (0, _litHtml.html)`
78
+ return (0, _litHtml.html)`
82
79
  <section
83
80
  aria-labelledby="cv-heading"
84
81
  data-profile-section="resume"
@@ -91,22 +88,18 @@ function renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, o
91
88
  <h2 id="cv-heading" tabindex="-1">${_texts.resumeHeadingText}</h2>
92
89
  <div class="profile-section-collapsible__actions">
93
90
  ${isOwner ? (0, _litHtml.html)`
94
- <solid-ui-button
95
- type="button"
96
- variant="secondary"
97
- size="sm"
98
- class="profile__action-button resume__edit-button profile-section-collapsible__edit-button"
99
- aria-label="Edit resume details"
100
- @click=${event => (0, _ResumeEditDialog.createResumeEditDialog)(event, store, subject, resumeDetails, viewerMode, onSaved)}
101
- >
102
- <span class="profile-section-collapsible__edit-label">${_profileIcons.editIcon} Edit</span>
103
- <span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
104
- </solid-ui-button>
105
- ` : (0, _litHtml.html)``}
91
+ ${(0, _responsiveActionButton.renderResponsiveActionButton)({
92
+ layout,
93
+ className: 'profile-section-collapsible__edit-button',
94
+ ariaLabel: 'Edit resume details',
95
+ onClick: event => (0, _ResumeEditDialog.createResumeEditDialog)(event, store, subject, resumeDetails, viewerMode, onSaved),
96
+ desktopIcon: (0, _litHtml.html)`<span slot="left-icon" class="profile-section-collapsible__action-label profile__add-more-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`,
97
+ desktopLabel: 'Edit',
98
+ mobileIcon: (0, _litHtml.html)`<span slot="icon" class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`
99
+ })}
100
+ ` : _litHtml.nothing}
106
101
  <solid-ui-button
107
- type="button"
108
- variant="icon"
109
- size="sm"
102
+ variant="ghost"
110
103
  class="profile-section-collapsible__toggle-button"
111
104
  aria-label="Toggle resume section"
112
105
  aria-controls="cv-panel"
@@ -121,28 +114,23 @@ function renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, o
121
114
  ${hasResume ? cv : (0, _litHtml.html)`<p>No resume details added yet.</p>`}
122
115
  </div>
123
116
  </section>
124
- ` : '';
117
+ `;
125
118
  }
126
119
  function renderOwnerEmptyResumeContent(store, subject, resumeDetails, viewerMode, onSaved) {
127
120
  return (0, _litHtml.html)`
128
121
  <div class="profile__empty-state-content" role="group" aria-label="Empty resume section">
129
122
  <h2 id="resume-heading" tabindex="-1">${_texts.resumeHeadingText}</h2>
130
- <p class="profile__empty-state-message">
131
- You haven't included any professional experience yet. Consider adding your work history to enhance your resume.
132
- </p>
133
123
  </div>
134
124
  <solid-ui-button
135
- type="button"
136
125
  variant="secondary"
137
- size="sm"
138
126
  class="profile__action-button--empty"
139
127
  @click=${event => {
140
128
  return (0, _ResumeEditDialog.createResumeEditDialog)(event, store, subject, resumeDetails, viewerMode, onSaved);
141
129
  }}
142
130
  >
143
- <span class="profile__action-icon" aria-hidden="true">${_profileIcons.plusDarkIcon} Add Resume</span>
131
+ <span slot="left-icon" class="profile__action-icon" aria-hidden="true">${_profileIcons.plusDarkIcon}</span>
132
+ Add Resume
144
133
  </solid-ui-button>
145
-
146
134
  `;
147
135
  }
148
136
  function renderOwnerEmptyResumeSection(store, subject, resumeDetails, viewerMode, onSaved) {
@@ -159,9 +147,7 @@ function renderOwnerEmptyResumeSection(store, subject, resumeDetails, viewerMode
159
147
  <h2 id="resume-heading" tabindex="-1">${_texts.resumeHeadingText}</h2>
160
148
  <div class="profile-section-collapsible__actions">
161
149
  <solid-ui-button
162
- type="button"
163
- variant="icon"
164
- size="sm"
150
+ variant="ghost"
165
151
  class="profile-section-collapsible__toggle-button"
166
152
  aria-label="Toggle resume section"
167
153
  aria-controls="cv-panel"
@@ -178,12 +164,12 @@ function renderOwnerEmptyResumeSection(store, subject, resumeDetails, viewerMode
178
164
  </section>
179
165
  `;
180
166
  }
181
- function renderCVSection(store, subject, roles, viewerMode, onSaved) {
167
+ function renderCVSection(store, subject, roles, viewerMode, layout, onSaved) {
168
+ const currentLayout = layout || 'desktop';
182
169
  const resumeDetails = roles || [];
183
170
  const hasResume = resumeDetails.length > 0;
184
171
  const showOwnerEmptyResume = !hasResume && viewerMode === 'owner';
185
- const showSection = true;
186
- return showSection ? (0, _litHtml.html)`
187
- ${showOwnerEmptyResume ? renderOwnerEmptyResumeSection(store, subject, resumeDetails, viewerMode, onSaved) : renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, onSaved)}
188
- ` : '';
172
+ return (0, _litHtml.html)`
173
+ ${showOwnerEmptyResume ? renderOwnerEmptyResumeSection(store, subject, resumeDetails, viewerMode, onSaved) : renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, currentLayout, onSaved)}
174
+ `;
189
175
  }
@@ -11,17 +11,6 @@ exports.toggleDescription = toggleDescription;
11
11
  exports.updateDescriptionOverflow = updateDescriptionOverflow;
12
12
  let descriptionResizeBound = false;
13
13
  const DESCRIPTION_MAX_LINES = 2;
14
- function getLineHeightPx(computed) {
15
- const parsedLineHeight = Number.parseFloat(computed.lineHeight);
16
- if (Number.isFinite(parsedLineHeight)) {
17
- return parsedLineHeight;
18
- }
19
- const parsedFontSize = Number.parseFloat(computed.fontSize);
20
- if (Number.isFinite(parsedFontSize)) {
21
- return parsedFontSize * 1.5;
22
- }
23
- return 24;
24
- }
25
14
  function getExpandedTextHeight(textEl) {
26
15
  const previousDisplay = textEl.style.display;
27
16
  const previousOverflow = textEl.style.overflow;
@@ -49,6 +38,17 @@ function getExpandedTextHeight(textEl) {
49
38
  }
50
39
  return naturalHeight;
51
40
  }
41
+ function getLineHeightPx(computed) {
42
+ const parsedLineHeight = Number.parseFloat(computed.lineHeight);
43
+ if (Number.isFinite(parsedLineHeight)) {
44
+ return parsedLineHeight;
45
+ }
46
+ const parsedFontSize = Number.parseFloat(computed.fontSize);
47
+ if (Number.isFinite(parsedFontSize)) {
48
+ return parsedFontSize * 1.5;
49
+ }
50
+ return 24;
51
+ }
52
52
  function isTextOverflowingClamp(textEl, maxLines) {
53
53
  const computed = window.getComputedStyle(textEl);
54
54
  const lineHeight = getLineHeightPx(computed);
@@ -137,10 +137,10 @@ function toggleDescription(event) {
137
137
  if (!button) return;
138
138
  const descriptionId = button.getAttribute('aria-controls');
139
139
  if (!descriptionId) return;
140
- const textEl = document.getElementById(descriptionId);
141
- if (!textEl) return;
142
- const expandedClass = textEl.matches('.resume-card__description-text') ? 'resume-card__description-text--expanded' : textEl.matches('.education-card__description-text') ? 'education-card__description-text--expanded' : textEl.matches('.bio-card__description-text') ? 'bio-card__description-text--expanded' : 'isExpanded';
143
- const isExpanded = textEl.classList.toggle(expandedClass);
140
+ const textElement = document.getElementById(descriptionId);
141
+ if (!textElement) return;
142
+ const expandedClass = textElement.matches('.resume-card__description-text') ? 'resume-card__description-text--expanded' : textElement.matches('.education-card__description-text') ? 'education-card__description-text--expanded' : textElement.matches('.bio-card__description-text') ? 'bio-card__description-text--expanded' : 'isExpanded';
143
+ const isExpanded = textElement.classList.toggle(expandedClass);
144
144
  button.setAttribute('aria-expanded', isExpanded ? 'true' : 'false');
145
145
  button.textContent = isExpanded ? '...less' : '...more';
146
146
  if (!isExpanded) {
@@ -1 +1 @@
1
- {"version":3,"file":"SkillsEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/skills/SkillsEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAY,MAAM,SAAS,CAAA;AAChD,OAAO,8BAA8B,CAAA;AACrC,OAAO,0CAA0C,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA8YxC,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAkDrC"}
1
+ {"version":3,"file":"SkillsEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/skills/SkillsEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,YAAY,EAAY,MAAM,SAAS,CAAA;AAChD,OAAO,8BAA8B,CAAA;AACrC,OAAO,0CAA0C,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA4YxC,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAkDrC"}
@@ -230,9 +230,7 @@ function renderSkillInputRow({
230
230
  </label>
231
231
  <div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
232
232
  <solid-ui-button
233
- type="button"
234
- variant="icon"
235
- size="md"
233
+ variant="ghost"
236
234
  class="profile-edit-dialog__delete-button"
237
235
  aria-label=${`Delete skill ${displayIndex + 1}`}
238
236
  title=${_texts.deleteEntryButtonTitleText}