profile-pane 3.2.0 → 3.2.2-test.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.
Files changed (256) hide show
  1. package/README.md +50 -0
  2. package/icons-png/discord.png +0 -0
  3. package/icons-png/dribbble.png +0 -0
  4. package/icons-png/facebook.png +0 -0
  5. package/icons-png/instagram.png +0 -0
  6. package/icons-png/linkedin.png +0 -0
  7. package/icons-png/pinterest.png +0 -0
  8. package/icons-png/sharechat.png +0 -0
  9. package/icons-png/signup.png +0 -0
  10. package/icons-png/snapchat.png +0 -0
  11. package/icons-png/spotify.png +0 -0
  12. package/icons-png/telegram.png +0 -0
  13. package/icons-png/tiktok.png +0 -0
  14. package/icons-png/whatsapp.png +0 -0
  15. package/icons-png/x.png +0 -0
  16. package/icons-png/youtube.png +0 -0
  17. package/lib/303.profile-pane.js +1362 -0
  18. package/lib/303.profile-pane.js.map +1 -0
  19. package/lib/303.profile-pane.min.js +2 -0
  20. package/lib/303.profile-pane.min.js.map +1 -0
  21. package/lib/ProfileView.css +1090 -0
  22. package/lib/ProfileView.d.ts +2 -1
  23. package/lib/ProfileView.d.ts.map +1 -1
  24. package/lib/ProfileView.js +64 -36
  25. package/lib/buttonsHelper.d.ts +1 -1
  26. package/lib/buttonsHelper.d.ts.map +1 -1
  27. package/lib/buttonsHelper.js +2 -1
  28. package/lib/editProfilePane/EditCVCard.js +1 -1
  29. package/lib/editProfilePane/EditCommunitiesCard.js +1 -1
  30. package/lib/editProfilePane/EditFriendsCard.js +1 -1
  31. package/lib/editProfilePane/EditProfileView.d.ts +1 -1
  32. package/lib/editProfilePane/EditProfileView.d.ts.map +1 -1
  33. package/lib/editProfilePane/EditProfileView.js +4 -5
  34. package/lib/editProfilePane/editProfilePresenter.d.ts.map +1 -1
  35. package/lib/editProfilePane/editProfilePresenter.js +5 -4
  36. package/lib/icons-svg/profileIcons.d.ts +1 -1
  37. package/lib/icons-svg/profileIcons.d.ts.map +1 -1
  38. package/lib/icons-svg/profileIcons.js +9 -17
  39. package/lib/index.d.ts +1 -8
  40. package/lib/index.d.ts.map +1 -1
  41. package/lib/index.js +74 -40
  42. package/lib/ontology/otherPreferencesForm.ttl +32 -0
  43. package/lib/ontology/resumeForm.ttl +349 -0
  44. package/lib/ontology/socialMedia.ttl +433 -0
  45. package/lib/profile-pane.js +32266 -13247
  46. package/lib/profile-pane.js.map +1 -1
  47. package/lib/profile-pane.min.js +2315 -935
  48. package/lib/profile-pane.min.js.map +1 -1
  49. package/lib/rdfFormsHelper.d.ts +13 -1
  50. package/lib/rdfFormsHelper.d.ts.map +1 -1
  51. package/lib/rdfFormsHelper.js +13 -1
  52. package/lib/sections/bio/BioEditDialog.d.ts.map +1 -1
  53. package/lib/sections/bio/BioEditDialog.js +7 -7
  54. package/lib/sections/bio/BioSection.css +300 -0
  55. package/lib/sections/bio/BioSection.d.ts +3 -2
  56. package/lib/sections/bio/BioSection.d.ts.map +1 -1
  57. package/lib/sections/bio/BioSection.js +26 -19
  58. package/lib/sections/bio/mutations.d.ts.map +1 -1
  59. package/lib/sections/bio/mutations.js +14 -3
  60. package/lib/sections/contactInfo/ContactInfoEditDialog.css +354 -0
  61. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts +3 -1
  62. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
  63. package/lib/sections/contactInfo/ContactInfoEditDialog.js +183 -98
  64. package/lib/sections/contactInfo/ContactInfoSection.css +125 -0
  65. package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -0
  66. package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
  67. package/lib/sections/contactInfo/ContactInfoSection.js +64 -41
  68. package/lib/sections/contactInfo/mutations.d.ts.map +1 -1
  69. package/lib/sections/contactInfo/mutations.js +51 -16
  70. package/lib/sections/education/EducationEditDialog.d.ts +3 -1
  71. package/lib/sections/education/EducationEditDialog.d.ts.map +1 -1
  72. package/lib/sections/education/EducationEditDialog.js +170 -92
  73. package/lib/sections/education/EducationSection.css +133 -0
  74. package/lib/sections/education/EducationSection.d.ts +3 -2
  75. package/lib/sections/education/EducationSection.d.ts.map +1 -1
  76. package/lib/sections/education/EducationSection.js +32 -25
  77. package/lib/sections/education/mutations.d.ts.map +1 -1
  78. package/lib/sections/education/mutations.js +14 -3
  79. package/lib/sections/heading/HeadingEditDialog.d.ts +4 -1
  80. package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
  81. package/lib/sections/heading/HeadingEditDialog.js +287 -162
  82. package/lib/sections/heading/HeadingSection.css +862 -0
  83. package/lib/sections/heading/HeadingSection.d.ts +3 -2
  84. package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
  85. package/lib/sections/heading/HeadingSection.js +63 -32
  86. package/lib/sections/heading/imageHelpers.d.ts +1 -0
  87. package/lib/sections/heading/imageHelpers.d.ts.map +1 -1
  88. package/lib/sections/heading/imageHelpers.js +40 -1
  89. package/lib/sections/heading/mutations.d.ts.map +1 -1
  90. package/lib/sections/heading/mutations.js +86 -23
  91. package/lib/sections/heading/selectors.d.ts.map +1 -1
  92. package/lib/sections/heading/selectors.js +14 -3
  93. package/lib/sections/heading/types.d.ts +1 -2
  94. package/lib/sections/heading/types.d.ts.map +1 -1
  95. package/lib/sections/languages/LanguageEditDialog.d.ts +3 -1
  96. package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
  97. package/lib/sections/languages/LanguageEditDialog.js +202 -119
  98. package/lib/sections/languages/LanguageSection.css +53 -0
  99. package/lib/sections/languages/LanguageSection.d.ts +2 -0
  100. package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
  101. package/lib/sections/languages/LanguageSection.js +42 -31
  102. package/lib/sections/languages/mutations.d.ts.map +1 -1
  103. package/lib/sections/languages/mutations.js +60 -161
  104. package/lib/sections/languages/selectors.d.ts.map +1 -1
  105. package/lib/sections/languages/selectors.js +1 -2
  106. package/lib/sections/projects/ProjectEditDialog.d.ts +2 -1
  107. package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
  108. package/lib/sections/projects/ProjectEditDialog.js +13 -24
  109. package/lib/sections/projects/ProjectSection.css +368 -0
  110. package/lib/sections/projects/ProjectSection.d.ts +2 -1
  111. package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
  112. package/lib/sections/projects/ProjectSection.js +116 -34
  113. package/lib/sections/projects/mutations.d.ts.map +1 -1
  114. package/lib/sections/projects/mutations.js +109 -132
  115. package/lib/sections/projects/selectors.d.ts.map +1 -1
  116. package/lib/sections/projects/selectors.js +4 -45
  117. package/lib/{QRCodeCard.d.ts → sections/qrcode/QRCodeCard.d.ts} +2 -1
  118. package/lib/sections/qrcode/QRCodeCard.d.ts.map +1 -0
  119. package/lib/{QRCodeCard.js → sections/qrcode/QRCodeCard.js} +59 -11
  120. package/lib/sections/qrcode/QRCodeSection.css +108 -0
  121. package/lib/sections/qrcode/QRCodeSection.d.ts +4 -0
  122. package/lib/sections/qrcode/QRCodeSection.d.ts.map +1 -0
  123. package/lib/sections/qrcode/QRCodeSection.js +17 -0
  124. package/lib/sections/resume/ResumeEditDialog.d.ts +10 -1
  125. package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
  126. package/lib/sections/resume/ResumeEditDialog.js +531 -149
  127. package/lib/sections/resume/ResumeSection.css +350 -0
  128. package/lib/sections/resume/ResumeSection.d.ts +3 -2
  129. package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
  130. package/lib/sections/resume/ResumeSection.js +78 -49
  131. package/lib/sections/resume/mutations.d.ts.map +1 -1
  132. package/lib/sections/resume/mutations.js +17 -3
  133. package/lib/sections/resume/selectors.d.ts.map +1 -1
  134. package/lib/sections/resume/selectors.js +1 -0
  135. package/lib/sections/resume/types.d.ts +1 -0
  136. package/lib/sections/resume/types.d.ts.map +1 -1
  137. package/lib/sections/shared/collapsibleSection.d.ts.map +1 -1
  138. package/lib/sections/shared/collapsibleSection.js +1 -0
  139. package/lib/sections/shared/phoneCountries.d.ts +1 -1
  140. package/lib/sections/shared/phoneCountries.d.ts.map +1 -1
  141. package/lib/sections/shared/phoneCountries.js +2 -2
  142. package/lib/sections/shared/projectCommunityNodes.d.ts +6 -0
  143. package/lib/sections/shared/projectCommunityNodes.d.ts.map +1 -0
  144. package/lib/sections/shared/projectCommunityNodes.js +56 -0
  145. package/lib/sections/shared/rdfMutationHelpers.d.ts +35 -2
  146. package/lib/sections/shared/rdfMutationHelpers.d.ts.map +1 -1
  147. package/lib/sections/shared/rdfMutationHelpers.js +290 -14
  148. package/lib/sections/shared/sectionCardHelpers.d.ts.map +1 -1
  149. package/lib/sections/shared/sectionCardHelpers.js +80 -11
  150. package/lib/sections/shared/types.d.ts +24 -0
  151. package/lib/sections/shared/types.d.ts.map +1 -1
  152. package/lib/sections/skills/SkillsEditDialog.d.ts +3 -1
  153. package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
  154. package/lib/sections/skills/SkillsEditDialog.js +136 -115
  155. package/lib/sections/skills/SkillsSection.css +173 -0
  156. package/lib/sections/skills/SkillsSection.d.ts +2 -0
  157. package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
  158. package/lib/sections/skills/SkillsSection.js +107 -47
  159. package/lib/sections/skills/mutations.d.ts.map +1 -1
  160. package/lib/sections/skills/mutations.js +25 -21
  161. package/lib/sections/skills/selectors.d.ts.map +1 -1
  162. package/lib/sections/skills/selectors.js +5 -3
  163. package/lib/sections/social/SocialEditDialog.d.ts +3 -1
  164. package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
  165. package/lib/sections/social/SocialEditDialog.js +170 -62
  166. package/lib/sections/social/SocialSection.css +194 -0
  167. package/lib/sections/social/SocialSection.d.ts +4 -3
  168. package/lib/sections/social/SocialSection.d.ts.map +1 -1
  169. package/lib/sections/social/SocialSection.js +59 -43
  170. package/lib/sections/social/mutations.d.ts.map +1 -1
  171. package/lib/sections/social/mutations.js +23 -132
  172. package/lib/specialButtons/AddMeToYourFriends.css +54 -0
  173. package/lib/specialButtons/addContact/AddMeToYourContacts.css +1118 -0
  174. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +10 -0
  175. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +1 -0
  176. package/lib/specialButtons/addContact/ContactCreationDialog.js +1123 -0
  177. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +16 -0
  178. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +1 -0
  179. package/lib/specialButtons/addContact/addMeToYourContacts.js +136 -0
  180. package/lib/specialButtons/addContact/contactsErrors.d.ts +8 -0
  181. package/lib/specialButtons/addContact/contactsErrors.d.ts.map +1 -0
  182. package/lib/specialButtons/addContact/contactsErrors.js +106 -0
  183. package/lib/specialButtons/addContact/contactsTypes.d.ts +43 -0
  184. package/lib/specialButtons/addContact/contactsTypes.d.ts.map +1 -0
  185. package/lib/specialButtons/addContact/contactsTypes.js +5 -0
  186. package/lib/specialButtons/addContact/helpers.d.ts +7 -0
  187. package/lib/specialButtons/addContact/helpers.d.ts.map +1 -0
  188. package/lib/specialButtons/addContact/helpers.js +103 -0
  189. package/lib/specialButtons/addContact/mutations.d.ts +16 -0
  190. package/lib/specialButtons/addContact/mutations.d.ts.map +1 -0
  191. package/lib/specialButtons/addContact/mutations.js +300 -0
  192. package/lib/specialButtons/addContact/selectors.d.ts +10 -0
  193. package/lib/specialButtons/addContact/selectors.d.ts.map +1 -0
  194. package/lib/specialButtons/addContact/selectors.js +163 -0
  195. package/lib/{addMeToYourFriends.d.ts → specialButtons/addMeToYourFriends.d.ts} +6 -4
  196. package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -0
  197. package/lib/{addMeToYourFriends.js → specialButtons/addMeToYourFriends.js} +46 -11
  198. package/lib/styles/CollapsibleSection.css +519 -0
  199. package/lib/styles/EditDialogs.css +506 -686
  200. package/lib/styles/EditDialogs.responsive.css +989 -0
  201. package/lib/texts/buttonTexts.d.ts +9 -0
  202. package/lib/texts/buttonTexts.d.ts.map +1 -0
  203. package/lib/texts/buttonTexts.js +14 -0
  204. package/lib/texts/dialogTexts.d.ts +14 -0
  205. package/lib/texts/dialogTexts.d.ts.map +1 -0
  206. package/lib/texts/dialogTexts.js +19 -0
  207. package/lib/texts/messageTexts.d.ts +42 -0
  208. package/lib/texts/messageTexts.d.ts.map +1 -0
  209. package/lib/texts/messageTexts.js +47 -0
  210. package/lib/texts/profileTexts.d.ts +14 -0
  211. package/lib/texts/profileTexts.d.ts.map +1 -0
  212. package/lib/texts/profileTexts.js +19 -0
  213. package/lib/texts/qrCodeTexts.d.ts +2 -0
  214. package/lib/texts/qrCodeTexts.d.ts.map +1 -0
  215. package/lib/texts/qrCodeTexts.js +7 -0
  216. package/lib/texts.d.ts +5 -60
  217. package/lib/texts.d.ts.map +1 -1
  218. package/lib/texts.js +55 -70
  219. package/lib/ui/dialog.css +233 -0
  220. package/lib/ui/dialog.d.ts +15 -1
  221. package/lib/ui/dialog.d.ts.map +1 -1
  222. package/lib/ui/dialog.js +245 -45
  223. package/lib/ui/dialog.responsive.css +195 -0
  224. package/lib/ui/errors.d.ts.map +1 -1
  225. package/lib/ui/errors.js +2 -1
  226. package/lib/ui/spinner.d.ts +3 -0
  227. package/lib/ui/spinner.d.ts.map +1 -0
  228. package/lib/ui/spinner.js +13 -0
  229. package/lib/utils/debug.d.ts +5 -0
  230. package/lib/utils/debug.d.ts.map +1 -0
  231. package/lib/utils/debug.js +23 -0
  232. package/lib/utils/errorDisplay.d.ts +2 -0
  233. package/lib/utils/errorDisplay.d.ts.map +1 -0
  234. package/lib/utils/errorDisplay.js +19 -0
  235. package/package.json +34 -26
  236. package/lib/ChatWithMe.d.ts +0 -7
  237. package/lib/ChatWithMe.d.ts.map +0 -1
  238. package/lib/ChatWithMe.js +0 -90
  239. package/lib/QRCodeCard.d.ts.map +0 -1
  240. package/lib/addMeToYourFriends.d.ts.map +0 -1
  241. package/lib/sections/heading/camera.d.ts +0 -19
  242. package/lib/sections/heading/camera.d.ts.map +0 -1
  243. package/lib/sections/heading/camera.js +0 -199
  244. package/lib/styles/BioSection.css +0 -77
  245. package/lib/styles/CVCard.css +0 -142
  246. package/lib/styles/ChatWithMe.css +0 -6
  247. package/lib/styles/ContactInfoEditDialog.css +0 -153
  248. package/lib/styles/EducationCard.css +0 -103
  249. package/lib/styles/HeadingSection.css +0 -309
  250. package/lib/styles/ProfileCard.css +0 -66
  251. package/lib/styles/ProfileView.css +0 -65
  252. package/lib/styles/ProjectsCard.css +0 -206
  253. package/lib/styles/QRCodeCard.css +0 -43
  254. package/lib/styles/SocialCard.css +0 -89
  255. package/lib/styles/dialog.css +0 -209
  256. package/lib/styles/utilities.css +0 -740
@@ -0,0 +1,350 @@
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
+ .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);
65
+ }
66
+
67
+ /* Section layout */
68
+ .resume-card__section {
69
+ margin-bottom: var(--resume-card-section-gap);
70
+ }
71
+
72
+ .resume-card__section > ul {
73
+ list-style: none;
74
+ margin: 0;
75
+ padding: 0;
76
+ }
77
+
78
+ .resume-card__item {
79
+ display: grid;
80
+ grid-template-columns: minmax(0, 1fr) auto;
81
+ grid-template-areas:
82
+ "title period"
83
+ "organization organization"
84
+ "description description";
85
+ column-gap: var(--resume-card-column-gap);
86
+ row-gap: var(--resume-card-row-gap);
87
+ align-items: start;
88
+ 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);
91
+ gap: 0;
92
+ }
93
+
94
+ .resume-card__item:last-child {
95
+ margin-bottom: 0;
96
+ }
97
+
98
+ .resume-card__item-header {
99
+ grid-area: title;
100
+ display: flex;
101
+ align-items: baseline;
102
+ gap: var(--resume-card-header-gap);
103
+ min-width: 0;
104
+ }
105
+
106
+ .resume-card__item-header h3,
107
+ .resume-card__item-header h4,
108
+ .resume-card__item-header time {
109
+ margin: 0;
110
+ }
111
+
112
+ .resume-card__item-header h3,
113
+ .resume-card__item-header h4 {
114
+ min-width: 0;
115
+ color: var(--resume-card-title-color);
116
+ font-size: var(--resume-card-title-size);
117
+ font-weight: var(--resume-card-title-weight);
118
+ line-height: var(--line-height-tight, 1.4);
119
+ }
120
+
121
+ .resume-card__item-period {
122
+ grid-area: period;
123
+ justify-self: end;
124
+ text-align: right;
125
+ margin: 0;
126
+ color: var(--resume-card-period-color);
127
+ font-size: var(--resume-card-period-size);
128
+ font-weight: var(--resume-card-period-weight);
129
+ line-height: var(--line-height-tight, 1.4);
130
+ }
131
+
132
+ .resume-card__organization {
133
+ grid-area: organization;
134
+ margin: 0;
135
+ line-height: var(--line-height-base, 1.5);
136
+ }
137
+
138
+ .resume-card__organization-name {
139
+ color: var(--resume-card-organization-color);
140
+ font-size: var(--resume-card-organization-size);
141
+ font-weight: var(--resume-card-organization-weight);
142
+ }
143
+
144
+ .resume-card__organization-separator,
145
+ .resume-card__organization-location {
146
+ color: var(--resume-card-location-color);
147
+ font-size: var(--resume-card-location-size);
148
+ font-weight: var(--resume-card-location-weight);
149
+ }
150
+
151
+ /* Description toggle */
152
+ .resume-card__description-wrap {
153
+ 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
+ margin: var(--resume-card-description-offset) 0 0;
160
+ position: relative;
161
+ isolation: isolate;
162
+ }
163
+
164
+ .resume-card__description-text {
165
+ margin: 0;
166
+ width: 100%;
167
+ max-width: none;
168
+ display: -webkit-box;
169
+ -webkit-box-orient: vertical;
170
+ -webkit-line-clamp: 2;
171
+ line-clamp: 2;
172
+ color: var(--resume-card-description-color);
173
+ font-size: var(--resume-card-description-size);
174
+ font-weight: var(--resume-card-description-weight);
175
+ line-height: var(--line-height-base, 1.5);
176
+ overflow: hidden;
177
+ }
178
+
179
+ .resume-card__description-text--overflowing {
180
+ padding-right: var(--resume-description-overflow-padding-inline-end);
181
+ }
182
+
183
+ .resume-card__description-text--expanded {
184
+ display: block;
185
+ -webkit-line-clamp: unset;
186
+ line-clamp: unset;
187
+ padding-right: 0;
188
+ overflow: visible;
189
+ }
190
+
191
+ .resume-card__description-toggle,
192
+ solid-ui-button.resume-card__description-toggle {
193
+ margin: 0;
194
+ padding: 0;
195
+ position: absolute;
196
+ right: var(--resume-description-toggle-inline-offset);
197
+ bottom: 0;
198
+ background-color: var(--color-card-bg, #FFF);
199
+ white-space: nowrap;
200
+ z-index: 0;
201
+ }
202
+
203
+ .resume-card__description-toggle {
204
+ border: 0;
205
+ background: transparent;
206
+ color: var(--color-primary, #7C4DFF);
207
+ cursor: var(--profile-interactive-cursor, pointer);
208
+ font: inherit;
209
+ font-size: var(--font-size-sm, 0.875rem);
210
+ line-height: var(--line-height-base, 1.5);
211
+ min-height: auto;
212
+ min-width: auto;
213
+ }
214
+
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);
229
+ }
230
+
231
+ .resume-card__description-wrap .resume-card__description-text:not(.resume-card__description-text--expanded) + .resume-card__description-toggle,
232
+ .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);
234
+ bottom: auto;
235
+ transform: translateY(var(--resume-description-toggle-line-translate-y));
236
+ }
237
+
238
+ .resume-card__description-text--expanded + .resume-card__description-toggle,
239
+ .resume-card__description-text--expanded + solid-ui-button.resume-card__description-toggle {
240
+ position: static;
241
+ display: block;
242
+ width: fit-content;
243
+ margin-left: auto;
244
+ top: auto;
245
+ bottom: auto;
246
+ transform: none;
247
+ }
248
+
249
+ .resume-card__description-text--expanded + solid-ui-button.resume-card__description-toggle::part(button) {
250
+ position: static;
251
+ display: inline-flex;
252
+ top: auto;
253
+ bottom: auto;
254
+ transform: none;
255
+ }
256
+
257
+ .resume-card__skill,
258
+ .resume-card__language {
259
+ text-align: left;
260
+ margin: var(--resume-card-item-gap) 0;
261
+ font-size: var(--font-size-base, 1rem);
262
+ line-height: var(--line-height-base, 1.5);
263
+ }
264
+
265
+ .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);
270
+ margin-bottom: var(--resume-card-item-gap);
271
+ border-bottom: 1px solid var(--resume-card-heading-border);
272
+ padding-bottom: var(--resume-card-item-gap);
273
+ }
274
+
275
+ /* Compact layout */
276
+ :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);
282
+ --resume-card-description-offset: 0rem;
283
+ grid-template-columns: minmax(0, 1fr);
284
+ grid-template-areas:
285
+ "title"
286
+ "organization"
287
+ "period"
288
+ "description";
289
+ }
290
+
291
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .resume-card__item-header {
292
+ align-items: flex-start;
293
+ }
294
+
295
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .resume-card__item-period {
296
+ justify-self: start;
297
+ text-align: left;
298
+ }
299
+
300
+ @media (max-width: 576px) {
301
+ .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);
307
+ --resume-card-description-offset: 0rem;
308
+ grid-template-columns: minmax(0, 1fr);
309
+ grid-template-areas:
310
+ "title"
311
+ "organization"
312
+ "period"
313
+ "description";
314
+ }
315
+
316
+ .resume-card__item-header {
317
+ align-items: flex-start;
318
+ }
319
+
320
+ .resume-card__item-period {
321
+ justify-self: start;
322
+ text-align: left;
323
+ }
324
+ }
325
+
326
+ @container profile-pane (max-width: 576px) {
327
+ .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);
333
+ --resume-card-description-offset: 0rem;
334
+ grid-template-columns: minmax(0, 1fr);
335
+ grid-template-areas:
336
+ "title"
337
+ "organization"
338
+ "period"
339
+ "description";
340
+ }
341
+
342
+ .resume-card__item-header {
343
+ align-items: flex-start;
344
+ }
345
+
346
+ .resume-card__item-period {
347
+ justify-self: start;
348
+ text-align: left;
349
+ }
350
+ }
@@ -1,7 +1,8 @@
1
+ import 'solid-ui/components/actions/button';
1
2
  import { RoleDetails } from './types';
2
3
  import { ViewerMode } from '../../types';
3
- import '../../styles/CVCard.css';
4
+ import './ResumeSection.css';
4
5
  import { LiveStore, NamedNode } from 'rdflib';
5
- export declare const CVCard: (cvData: RoleDetails[], viewerMode: ViewerMode) => import("lit-html").TemplateResult<1>;
6
+ export declare const CVCard: (cvData: RoleDetails[], _viewerMode: ViewerMode) => import("lit-html").TemplateResult<1>;
6
7
  export declare function renderCVSection(store: LiveStore, subject: NamedNode, roles: RoleDetails[], viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1> | "";
7
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,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,yBAAyB,CAAA;AAEhC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AA6D7C,eAAO,MAAM,MAAM,GACjB,QAAQ,WAAW,EAAE,EACrB,YAAY,UAAU,yCAevB,CAAA;AA+GD,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,oCAAoC,CAAA;AAC3C,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"}
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.CVCard = void 0;
7
7
  exports.renderCVSection = renderCVSection;
8
8
  var _litHtml = require("lit-html");
9
- require("../../styles/CVCard.css");
9
+ require("solid-ui/components/actions/button");
10
+ require("./ResumeSection.css");
10
11
  var _texts = require("../../texts");
11
12
  var _ResumeEditDialog = require("./ResumeEditDialog");
12
13
  var _sectionCardHelpers = require("../shared/sectionCardHelpers");
@@ -18,35 +19,38 @@ function renderRole(role, index) {
18
19
  const rolePeriodId = `cv-role-period-${index}`;
19
20
  const roleOrgId = `cv-role-org-${index}`;
20
21
  const roleDescriptionId = `cv-role-description-${index}`;
21
- const ariaDescribedBy = role.description ? `${rolePeriodId} ${roleOrgId} ${roleDescriptionId}` : `${rolePeriodId} ${roleOrgId}`;
22
+ const ariaDescribedBy = role.description ? `${roleOrgId} ${rolePeriodId} ${roleDescriptionId}` : `${roleOrgId} ${rolePeriodId}`;
22
23
  return (0, _litHtml.html)`
23
- <li class="cvRole" role="listitem" aria-labelledby=${roleTitleId} aria-describedby=${ariaDescribedBy}>
24
- <div class="cvRoleHeader">
25
- <h4 id=${roleTitleId}>${role.title}</h4>
26
- <p id=${rolePeriodId} class="cvRolePeriod">
27
- <time datetime=${(0, _sectionCardHelpers.toMonthDateTime)(role.startDate)}>${(0, _sectionCardHelpers.formatMonthYear)(role.startDate)}</time>
28
- <span aria-hidden="true"> to </span>
29
- ${role.endDate ? (0, _litHtml.html)`<time datetime=${(0, _sectionCardHelpers.toMonthDateTime)(role.endDate)}>${(0, _sectionCardHelpers.formatMonthYear)(role.endDate)}</time>` : (0, _litHtml.html)`<span>Present</span>`}
30
- </p>
24
+ <li class="resume-card__item" role="listitem" aria-labelledby=${roleTitleId} aria-describedby=${ariaDescribedBy}>
25
+ <div class="resume-card__item-header">
26
+ <h3 id=${roleTitleId}>${role.title}</h3>
31
27
  </div>
32
- <p class="cvOrg" id=${roleOrgId}>
33
- <strong>${role.orgName}</strong>${role.orgLocation ? (0, _litHtml.html)` | ${role.orgLocation}` : ''}
34
- </p>
35
- ${role.description ? (0, _litHtml.html)`
36
- <div class="cvDescriptionWrap">
37
- <p class="cvDescriptionText" id=${roleDescriptionId}>${role.description}</p>
38
- <button
39
- type="button"
40
- class="cvDescriptionToggle"
41
- aria-controls=${roleDescriptionId}
42
- aria-expanded="false"
43
- hidden
44
- @click=${_sectionCardHelpers.toggleDescription}
45
- >
46
- ...more
47
- </button>
48
- </div>
49
- ` : ''}
28
+ <p class="resume-card__organization" id=${roleOrgId}>
29
+ <strong class="resume-card__organization-name">${role.orgName}</strong>${role.orgLocation ? (0, _litHtml.html)`<span class="resume-card__organization-separator" aria-hidden="true"> | </span><span class="resume-card__organization-location">${role.orgLocation}</span>` : ''}
30
+ </p>
31
+ <p id=${rolePeriodId} class="resume-card__item-period">
32
+ <time datetime=${(0, _sectionCardHelpers.toMonthDateTime)(role.startDate)}>${(0, _sectionCardHelpers.formatMonthYear)(role.startDate)}</time>
33
+ <span> to </span>
34
+ ${role.endDate ? (0, _litHtml.html)`<time datetime=${(0, _sectionCardHelpers.toMonthDateTime)(role.endDate)}>${(0, _sectionCardHelpers.formatMonthYear)(role.endDate)}</time>` : (0, _litHtml.html)`<span>Present</span>`}
35
+ </p>
36
+ ${role.description ? (0, _litHtml.html)`
37
+ <div class="resume-card__description-wrap">
38
+ <p class="resume-card__description-text" id=${roleDescriptionId}>${role.description}</p>
39
+ <solid-ui-button
40
+ type="button"
41
+ variant="secondary"
42
+ size="sm"
43
+ label="...more"
44
+ class="resume-card__description-toggle"
45
+ aria-controls=${roleDescriptionId}
46
+ aria-expanded="false"
47
+ hidden
48
+ @click=${_sectionCardHelpers.toggleDescription}
49
+ >
50
+ ...more
51
+ </solid-ui-button>
52
+ </div>
53
+ ` : ''}
50
54
  </li>
51
55
  `;
52
56
  }
@@ -54,13 +58,12 @@ function renderRoles(roles) {
54
58
  if (!roles || !roles.length) return (0, _litHtml.html)``;
55
59
  return (0, _litHtml.html)`${roles.map((role, index) => renderRole(role, index))}`;
56
60
  }
57
- const CVCard = (cvData, viewerMode) => {
58
- void viewerMode;
61
+ const CVCard = (cvData, _viewerMode) => {
59
62
  const hasRoles = Array.isArray(cvData) && cvData.length > 0;
60
63
  if (!hasRoles) return (0, _litHtml.html)``;
61
64
  return (0, _litHtml.html)`
62
- <article class="cvCard" aria-label="Resume" data-testid="curriculum-vitae">
63
- <section class="cvSection">
65
+ <article class="resume-card" aria-label="Resume" data-testid="curriculum-vitae">
66
+ <section class="resume-card__section">
64
67
  <ul role="list" aria-label="Work experience in chronological order">
65
68
  ${renderRoles(cvData)}
66
69
  </ul>
@@ -78,38 +81,43 @@ function renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, o
78
81
  return showSection ? (0, _litHtml.html)`
79
82
  <section
80
83
  aria-labelledby="cv-heading"
81
- class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
84
+ data-profile-section="resume"
85
+ class="profile__section profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
82
86
  role="region"
83
87
  tabindex="-1"
84
88
  data-expanded="false"
85
89
  >
86
90
  <header class="profile__section-header profile-section-collapsible__header">
87
91
  <h2 id="cv-heading" tabindex="-1">${_texts.resumeHeadingText}</h2>
88
- <div class="profile-section-collapsible__actions flex-column">
92
+ <div class="profile-section-collapsible__actions">
89
93
  ${isOwner ? (0, _litHtml.html)`
90
- <button
94
+ <solid-ui-button
91
95
  type="button"
92
- class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
96
+ variant="secondary"
97
+ size="sm"
98
+ class="profile__action-button resume__edit-button profile-section-collapsible__edit-button"
93
99
  aria-label="Edit resume details"
94
100
  @click=${event => (0, _ResumeEditDialog.createResumeEditDialog)(event, store, subject, resumeDetails, viewerMode, onSaved)}
95
101
  >
96
102
  <span class="profile-section-collapsible__edit-label">${_profileIcons.editIcon} Edit</span>
97
103
  <span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
98
- </button>
104
+ </solid-ui-button>
99
105
  ` : (0, _litHtml.html)``}
100
- <button
106
+ <solid-ui-button
101
107
  type="button"
102
- class="inline-flex-row"
108
+ variant="icon"
109
+ size="sm"
110
+ class="profile-section-collapsible__toggle-button"
103
111
  aria-label="Toggle resume section"
104
112
  aria-controls="cv-panel"
105
113
  aria-expanded="false"
106
114
  @click=${_collapsibleSection.toggleCollapsibleSection}
107
115
  >
108
- <span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
109
- </button>
116
+ <span slot="icon" class="profile-section-collapsible__chevron" aria-hidden="true">${_profileIcons.chevronDownIcon}</span>
117
+ </solid-ui-button>
110
118
  </div>
111
119
  </header>
112
- <div id="cv-panel" class="profile-section-collapsible__content" aria-hidden="true">
120
+ <div id="cv-panel" class="profile-section-collapsible__content">
113
121
  ${hasResume ? cv : (0, _litHtml.html)`<p>No resume details added yet.</p>`}
114
122
  </div>
115
123
  </section>
@@ -117,35 +125,56 @@ function renderResumeSectionDefault(store, subject, resumeDetails, viewerMode, o
117
125
  }
118
126
  function renderOwnerEmptyResumeContent(store, subject, resumeDetails, viewerMode, onSaved) {
119
127
  return (0, _litHtml.html)`
120
- <div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty resume section">
128
+ <div class="profile__empty-state-content" role="group" aria-label="Empty resume section">
121
129
  <h2 id="resume-heading" tabindex="-1">${_texts.resumeHeadingText}</h2>
122
130
  <p class="profile__empty-state-message">
123
131
  You haven't included any professional experience yet. Consider adding your work history to enhance your resume.
124
132
  </p>
125
133
  </div>
126
- <button
134
+ <solid-ui-button
127
135
  type="button"
136
+ variant="secondary"
137
+ size="sm"
128
138
  class="profile__action-button--empty"
129
- aria-label="Add resume details"
130
139
  @click=${event => {
131
140
  return (0, _ResumeEditDialog.createResumeEditDialog)(event, store, subject, resumeDetails, viewerMode, onSaved);
132
141
  }}
133
142
  >
134
143
  <span class="profile__action-icon" aria-hidden="true">${_profileIcons.plusDarkIcon} Add Resume</span>
135
- </button>
144
+ </solid-ui-button>
136
145
 
137
146
  `;
138
147
  }
139
148
  function renderOwnerEmptyResumeSection(store, subject, resumeDetails, viewerMode, onSaved) {
140
149
  return (0, _litHtml.html)`
141
- <section
150
+ <section
142
151
  aria-labelledby="resume-heading"
143
152
  data-profile-section="resume"
144
- class="profile__section--empty border-lighter flex-column-center rounded-md gap-lg"
153
+ class="profile__section--empty profile__section--empty-main profile-section-collapsible profile-section-collapsible--inline-mobile-actions profile-section-collapsible--empty-mobile-no-edit"
145
154
  role="region"
146
155
  tabindex="-1"
156
+ data-expanded="false"
147
157
  >
148
- ${renderOwnerEmptyResumeContent(store, subject, resumeDetails, viewerMode, onSaved)}
158
+ <header class="profile__section-header profile-section-collapsible__header">
159
+ <h2 id="resume-heading" tabindex="-1">${_texts.resumeHeadingText}</h2>
160
+ <div class="profile-section-collapsible__actions">
161
+ <solid-ui-button
162
+ type="button"
163
+ variant="icon"
164
+ size="sm"
165
+ class="profile-section-collapsible__toggle-button"
166
+ aria-label="Toggle resume section"
167
+ aria-controls="cv-panel"
168
+ aria-expanded="false"
169
+ @click=${_collapsibleSection.toggleCollapsibleSection}
170
+ >
171
+ <span slot="icon" class="profile-section-collapsible__chevron" aria-hidden="true">${_profileIcons.chevronDownIcon}</span>
172
+ </solid-ui-button>
173
+ </div>
174
+ </header>
175
+ <div id="cv-panel" class="profile-section-collapsible__content">
176
+ ${renderOwnerEmptyResumeContent(store, subject, resumeDetails, viewerMode, onSaved)}
177
+ </div>
149
178
  </section>
150
179
  `;
151
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAA0B,MAAM,QAAQ,CAAA;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAkM7C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAEvD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,iBAQlH"}
1
+ {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAA0B,MAAM,QAAQ,CAAA;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAmN7C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,SAAS,CAAC,CAAA;AAEvD,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,iBASlH"}
@@ -9,6 +9,7 @@ var _solidUi = require("solid-ui");
9
9
  var _rdfMutationHelpers = require("../shared/rdfMutationHelpers");
10
10
  var _idNodeFactory = require("../shared/idNodeFactory");
11
11
  var _texts = require("../../texts");
12
+ var _debug = require("../../utils/debug");
12
13
  function asXsdDateLiteral(dateLike) {
13
14
  const value = (dateLike?.value || '').trim();
14
15
  if (!value) return null;
@@ -91,6 +92,9 @@ function buildOrganizationStatements(doc, membershipNode, resumeData) {
91
92
  if (resumeData.orgHomePage) {
92
93
  inserts.push((0, _rdflib.st)(organizationNode, _solidUi.ns.schema('uri'), (0, _rdflib.literal)(resumeData.orgHomePage), doc));
93
94
  }
95
+ if ((resumeData.orgPublicId || '').trim()) {
96
+ inserts.push((0, _rdflib.st)(organizationNode, _solidUi.ns.solid('publicId'), (0, _rdflib.sym)((resumeData.orgPublicId || '').trim()), doc));
97
+ }
94
98
  return inserts;
95
99
  }
96
100
  function buildResumeStatements(subject, doc, node, resumeData, includeMembershipLink = true) {
@@ -160,13 +164,23 @@ async function mutateResumeEntries(store, subject, resumeOps) {
160
164
  resumeOps.create.forEach(resume => {
161
165
  insertions.push(...buildResumeStatements(subject, doc, (0, _idNodeFactory.createIdNode)(doc), resume));
162
166
  });
163
- await (0, _rdfMutationHelpers.applyUpdaterPatch)(store, deletions, insertions);
167
+ const shouldSerializeDocument = await (0, _rdfMutationHelpers.shouldForceDocumentPutForStatements)(store, doc, insertions);
168
+ await (0, _rdfMutationHelpers.runUpdateTransport)(store, doc, deletions, insertions, {
169
+ unsupportedMessage: _texts.updaterUnsupportedStoreErrorMessageText,
170
+ failureMessage: 'Failed to save resume updates',
171
+ useDavFallback: false,
172
+ usePutFallback: shouldSerializeDocument,
173
+ forcePut: shouldSerializeDocument
174
+ });
164
175
  }
165
176
  async function processResumeMutations(store, subject, mutationPlan) {
166
177
  try {
167
178
  await mutateResumeEntries(store, subject, mutationPlan);
168
179
  } catch (error) {
169
- const message = error instanceof Error ? error.message : String(error);
170
- throw new Error(`${_texts.mutationSaveResumeFailedPrefixText} ${message}`);
180
+ const rootError = error instanceof Error ? error : new Error(String(error));
181
+ (0, _debug.error)(_texts.resumeMutationSaveFailedDebugText, rootError);
182
+ throw new Error(_texts.saveResumeUpdatesFailedMessageText, {
183
+ cause: rootError
184
+ });
171
185
  }
172
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAiB,MAAM,QAAQ,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAwKrC,wBAAgB,SAAS,CACvB,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,SAAS,GACf,WAAW,EAAE,CAOf"}
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAiB,MAAM,QAAQ,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAyKrC,wBAAgB,SAAS,CACvB,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,SAAS,GACf,WAAW,EAAE,CAOf"}
@@ -100,6 +100,7 @@ function getRoles(store, subject) {
100
100
  endDate,
101
101
  isCurrentRole,
102
102
  orgName,
103
+ orgPublicId: publicId?.value || '',
103
104
  orgType,
104
105
  orgLocation,
105
106
  orgHomePage,
@@ -16,6 +16,7 @@ export interface Role {
16
16
  endDate?: Literal;
17
17
  isCurrentRole?: boolean;
18
18
  orgName: string;
19
+ orgPublicId?: string;
19
20
  orgType?: string;
20
21
  orgLocation?: string;
21
22
  orgHomePage?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,WAAW,aAAc,SAAQ,WAAW;CAAG;AAErD,MAAM,WAAW,WAAY,SAAQ,IAAI;IACvC,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,eAAO,MAAM,WAAW,UAA4C,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,UAAU,EAAE,WAAW,EAAE,CAAC;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sections/resume/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,WAAW,aAAc,SAAQ,WAAW;CAAG;AAErD,MAAM,WAAW,WAAY,SAAQ,IAAI;IACvC,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAGD,eAAO,MAAM,WAAW,UAA4C,CAAA;AAEpE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,UAAU,EAAE,WAAW,EAAE,CAAC;CAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"collapsibleSection.d.ts","sourceRoot":"","sources":["../../../src/sections/shared/collapsibleSection.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAkB3D"}
1
+ {"version":3,"file":"collapsibleSection.d.ts","sourceRoot":"","sources":["../../../src/sections/shared/collapsibleSection.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAmB3D"}