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
@@ -1,4 +1,16 @@
1
- /** Project-local: currently unused component. Keep temporarily; do not add new usage. */
1
+ /**
2
+ * Solid-UI form bridge used by the edit-profile flows and by shared helpers that
3
+ * need ontology/form documents loaded into an RDF store.
4
+ *
5
+ * This file is intentionally kept in src because it is still active production
6
+ * code, even though the main form rendering path is currently concentrated in
7
+ * editProfilePane. In particular:
8
+ * - editProfilePane imports renderForm and skipLabelsFromTabbing
9
+ * - social helpers import loadDocument for ontology-backed option loading
10
+ *
11
+ * If forms are reworked later, this module is the current integration boundary
12
+ * to replace rather than dormant legacy code to remove blindly.
13
+ */
2
14
  import { NamedNode, Store } from 'rdflib';
3
15
  export default function renderForm(div: HTMLElement, subject: NamedNode, // Represents the RDF that fills the form
4
16
  formSource: string, // The imported form Turtle source
@@ -1 +1 @@
1
- {"version":3,"file":"rdfFormsHelper.d.ts","sourceRoot":"","sources":["../src/rdfFormsHelper.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAyB,MAAM,QAAQ,CAAA;AAKhE,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,SAAS,EAAE,yCAAyC;AAC7D,UAAU,EAAE,MAAM,EAAE,kCAAkC;AACtD,QAAQ,EAAE,MAAM,EAAI,sDAAsD;AAC1E,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,QAAQ,EACb,eAAe,EAAE,SAAS,GAAG,IAAI,EACjC,SAAS,CAAC,EAAE,MAAM,QAqFjB;AA0DH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,QAUrB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA2B7D"}
1
+ {"version":3,"file":"rdfFormsHelper.d.ts","sourceRoot":"","sources":["../src/rdfFormsHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAyB,MAAM,QAAQ,CAAA;AAKhE,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,SAAS,EAAE,yCAAyC;AAC7D,UAAU,EAAE,MAAM,EAAE,kCAAkC;AACtD,QAAQ,EAAE,MAAM,EAAI,sDAAsD;AAC1E,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,QAAQ,EACb,eAAe,EAAE,SAAS,GAAG,IAAI,EACjC,SAAS,CAAC,EAAE,MAAM,QAqFjB;AA0DH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,QAUrB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CA2B7D"}
@@ -8,7 +8,19 @@ exports.loadDocument = loadDocument;
8
8
  exports.skipLabelsFromTabbing = skipLabelsFromTabbing;
9
9
  var _rdflib = require("rdflib");
10
10
  var _solidUi = require("solid-ui");
11
- /** Project-local: currently unused component. Keep temporarily; do not add new usage. */
11
+ /**
12
+ * Solid-UI form bridge used by the edit-profile flows and by shared helpers that
13
+ * need ontology/form documents loaded into an RDF store.
14
+ *
15
+ * This file is intentionally kept in src because it is still active production
16
+ * code, even though the main form rendering path is currently concentrated in
17
+ * editProfilePane. In particular:
18
+ * - editProfilePane imports renderForm and skipLabelsFromTabbing
19
+ * - social helpers import loadDocument for ontology-backed option loading
20
+ *
21
+ * If forms are reworked later, this module is the current integration boundary
22
+ * to replace rather than dormant legacy code to remove blindly.
23
+ */
12
24
 
13
25
  const baseUri = 'https://solidos.github.io/profile-pane/src/ontology/';
14
26
  function renderForm(div, subject,
@@ -1 +1 @@
1
- {"version":3,"file":"BioEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/bio/BioEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,SAAS,CAAA;AACjD,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA2FxC,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAqCrC"}
1
+ {"version":3,"file":"BioEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/bio/BioEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAU,MAAM,SAAS,CAAA;AACjD,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA4FxC,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAqCrC"}
@@ -71,7 +71,7 @@ function renderBioEditTemplate(form, formState, viewerMode) {
71
71
  }
72
72
  function createBioEditForm(bioData, viewerMode) {
73
73
  const form = document.createElement('form');
74
- form.classList.add('profile__edit-form');
74
+ form.classList.add('profile__edit-form', 'profile__edit-form--bio');
75
75
  const formState = toFormState(bioData);
76
76
  renderBioEditTemplate(form, formState, viewerMode);
77
77
  return {
@@ -86,7 +86,7 @@ async function createBioEditDialog(event, store, subject, bioData, viewerMode, o
86
86
  formState
87
87
  } = createBioEditForm(bioData, viewerMode);
88
88
  const result = await (0, _dialog.openInputDialog)({
89
- title: 'Edit Bio',
89
+ title: _texts.editBioDialogTitleText,
90
90
  dom,
91
91
  form,
92
92
  headerAction: {
@@ -94,13 +94,14 @@ async function createBioEditDialog(event, store, subject, bioData, viewerMode, o
94
94
  },
95
95
  submitLabel: _texts.dialogSubmitLabelText,
96
96
  cancelLabel: _texts.dialogCancelLabelText,
97
+ shouldCloseWithoutSave: () => {
98
+ const bioOps = (0, _rowState.summarizeRowOps)([formState.bio], rowHasContent);
99
+ return bioOps.create.length === 0 && bioOps.update.length === 0 && bioOps.remove.length === 0;
100
+ },
97
101
  validate: () => {
98
102
  if (viewerMode !== 'owner') {
99
103
  return _texts.ownerLoginRequiredDialogMessageText;
100
104
  }
101
- const bioOps = (0, _rowState.summarizeRowOps)([formState.bio], rowHasContent);
102
- const hasChanges = bioOps.create.length > 0 || bioOps.update.length > 0 || bioOps.remove.length > 0;
103
- if (!hasChanges) return 'No bio changes detected.';
104
105
  return null;
105
106
  },
106
107
  onSave: async () => {
@@ -108,8 +109,7 @@ async function createBioEditDialog(event, store, subject, bioData, viewerMode, o
108
109
  await (0, _mutations.processBioMutations)(store, subject, bioOps);
109
110
  },
110
111
  formatSaveError: error => {
111
- const message = error instanceof Error ? error.message : String(error);
112
- return `${_texts.saveBioUpdatesFailedPrefixText} ${message}`;
112
+ return error instanceof Error ? error.message : _texts.saveBioUpdatesFailedMessageText;
113
113
  }
114
114
  });
115
115
  if (!result) return;
@@ -0,0 +1,300 @@
1
+ .bio-card,
2
+ .bio-card__section {
3
+ width: 100%;
4
+ max-width: 100%;
5
+ min-width: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ .profile-grid [data-profile-section='bio'].profile__section,
10
+ .profile-grid [data-profile-section='bio'].profile__section--empty {
11
+ --bio-section-content-gap-desktop: var(--spacing-lg, 1.5625rem);
12
+ --bio-section-content-gap-mobile: var(--spacing-sm, 0.9375rem);
13
+ }
14
+
15
+ .bio-card__description-wrap {
16
+ margin: 0;
17
+ position: relative;
18
+ isolation: isolate;
19
+ --bio-description-toggle-top: calc(100% - 1.5em + 0.28em - 11px);
20
+ --bio-description-toggle-transform: translateY(7px);
21
+ }
22
+
23
+ .bio-section__edit-button,
24
+ solid-ui-button.bio-section__edit-button {
25
+ display: inline-flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ }
29
+
30
+ .bio-section--empty {
31
+ border-radius: var(--border-radius-md, 0.5rem);
32
+ gap: var(--bio-section-content-gap-desktop);
33
+ }
34
+
35
+ .profile-grid [data-profile-section='bio'].profile__section .profile-section-collapsible__header + .profile-section-collapsible__content {
36
+ margin-top: var(--bio-section-content-gap-desktop);
37
+ }
38
+
39
+ .profile-grid [data-profile-section='bio'].profile__section--empty .profile__empty-state-content {
40
+ gap: var(--spacing-2xs, 0.625rem);
41
+ }
42
+
43
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .bio-section--empty {
44
+ gap: var(--bio-section-content-gap-mobile);
45
+ }
46
+
47
+
48
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-grid [data-profile-section='bio'].profile__section .profile-section-collapsible__header + .profile-section-collapsible__content {
49
+ margin-top: var(--bio-section-content-gap-mobile);
50
+ }
51
+
52
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-grid [data-profile-section='bio'].profile__section--empty .profile__empty-state-content {
53
+ gap: var(--bio-section-content-gap-mobile);
54
+ }
55
+
56
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .bio-section__edit-button.profile-section-collapsible__edit-button,
57
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button {
58
+ min-width: var(--min-touch-target, 44px);
59
+ min-height: var(--min-touch-target, 44px);
60
+ --button-width-sm: var(--min-touch-target, 44px);
61
+ --button-height-sm: var(--min-touch-target, 44px);
62
+ --button-background: transparent;
63
+ --button-border-width: 0;
64
+ --button-border: transparent;
65
+ --button-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
66
+ --button-hover-background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
67
+ --button-hover-border: transparent;
68
+ --button-hover-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
69
+ }
70
+
71
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button) {
72
+ width: var(--min-touch-target, 44px);
73
+ min-width: var(--min-touch-target, 44px);
74
+ }
75
+
76
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):hover,
77
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):focus,
78
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):focus-visible {
79
+ background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
80
+ text-decoration: none;
81
+ }
82
+
83
+ .bio-card__description-text {
84
+ margin: 0;
85
+ width: 100%;
86
+ max-width: none;
87
+ display: -webkit-box;
88
+ -webkit-box-orient: vertical;
89
+ -webkit-line-clamp: 2;
90
+ line-clamp: 2;
91
+ line-height: var(--line-height-base, 1.5);
92
+ overflow: hidden;
93
+ }
94
+
95
+ .bio-card__description-text--overflowing {
96
+ padding-right: 4.5rem;
97
+ }
98
+
99
+ .bio-card__description-text--expanded {
100
+ display: block;
101
+ -webkit-line-clamp: unset;
102
+ line-clamp: unset;
103
+ padding-right: 0;
104
+ overflow: visible;
105
+ }
106
+
107
+ .bio-card__description-toggle,
108
+ solid-ui-button.bio-card__description-toggle {
109
+ margin: 0;
110
+ padding: 0;
111
+ position: absolute;
112
+ right: 0;
113
+ bottom: 0;
114
+ background-color: var(--color-card-bg, #FFFFFF);
115
+ white-space: nowrap;
116
+ z-index: 0;
117
+ }
118
+
119
+ .bio-card__description-toggle {
120
+ border: 0;
121
+ background: none;
122
+ color: var(--color-primary, #7C4DFF);
123
+ cursor: var(--profile-interactive-cursor, pointer);
124
+ font: inherit;
125
+ font-size: var(--font-size-sm, 0.875rem);
126
+ line-height: var(--line-height-base, 1.5);
127
+ min-height: auto;
128
+ min-width: auto;
129
+ padding-left: 0;
130
+ padding-right: 0;
131
+ padding-top: 0;
132
+ padding-bottom: 0;
133
+ margin-left: 0;
134
+ margin-right: 0;
135
+ }
136
+
137
+ solid-ui-button.bio-card__description-toggle {
138
+ min-height: 0;
139
+ min-width: 0;
140
+ --button-height-sm: 0;
141
+ --button-padding-sm: 0;
142
+ --button-font-size-sm: var(--font-size-sm, 0.875rem);
143
+ --button-line-height: var(--line-height-base, 1.5);
144
+ --button-background: none;
145
+ --button-border-width: 0;
146
+ --button-border: transparent;
147
+ --button-text: var(--color-primary, #7C4DFF);
148
+ --button-hover-background: none;
149
+ --button-hover-border: transparent;
150
+ --button-hover-text: var(--color-primary, #7C4DFF);
151
+ }
152
+
153
+ .bio-card__description-wrap .bio-card__description-text:not(.bio-card__description-text--expanded) + .bio-card__description-toggle {
154
+ top: var(--bio-description-toggle-top);
155
+ bottom: auto;
156
+ transform: var(--bio-description-toggle-transform);
157
+ }
158
+
159
+ .bio-card__description-text--expanded + .bio-card__description-toggle,
160
+ .bio-card__description-text--expanded + solid-ui-button.bio-card__description-toggle {
161
+ position: static;
162
+ display: block;
163
+ width: fit-content;
164
+ margin-left: auto;
165
+ padding-left: 0;
166
+ top: auto;
167
+ bottom: auto;
168
+ transform: none;
169
+ }
170
+
171
+ .bio-card__description-text--expanded + solid-ui-button.bio-card__description-toggle::part(button) {
172
+ position: static;
173
+ display: inline-flex;
174
+ padding-left: 0;
175
+ top: auto;
176
+ bottom: auto;
177
+ transform: none;
178
+ }
179
+
180
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .bio-card__description-text {
181
+ font-size: var(--font-size-sm, 0.875rem);
182
+ line-height: var(--line-height-base, 1.5);
183
+ -webkit-line-clamp: 2;
184
+ line-clamp: 2;
185
+ }
186
+
187
+ @container profile-pane (max-width: 576px) {
188
+ .bio-section--empty {
189
+ gap: var(--bio-section-content-gap-mobile);
190
+ }
191
+
192
+ .profile-grid [data-profile-section='bio'].profile__section .profile-section-collapsible__header + .profile-section-collapsible__content {
193
+ margin-top: var(--bio-section-content-gap-mobile);
194
+ }
195
+
196
+ .profile-grid [data-profile-section='bio'].profile__section--empty .profile__empty-state-content {
197
+ gap: var(--bio-section-content-gap-mobile);
198
+ }
199
+
200
+ .bio-card__description-text {
201
+ font-size: var(--font-size-sm, 0.875rem);
202
+ line-height: var(--line-height-base, 1.5);
203
+ -webkit-line-clamp: 2;
204
+ line-clamp: 2;
205
+ }
206
+
207
+ .bio-card__description-wrap {
208
+ --bio-description-toggle-top: calc(100% - 1.5em);
209
+ --bio-description-toggle-transform: none;
210
+ }
211
+ }
212
+
213
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .bio-card__description-wrap {
214
+ --bio-description-toggle-top: calc(100% - 1.5em);
215
+ --bio-description-toggle-transform: none;
216
+ }
217
+
218
+ @media (max-width: 576px) {
219
+ .bio-section--empty {
220
+ gap: var(--bio-section-content-gap-mobile);
221
+ }
222
+
223
+ .profile-grid [data-profile-section='bio'].profile__section .profile-section-collapsible__header + .profile-section-collapsible__content {
224
+ margin-top: var(--bio-section-content-gap-mobile);
225
+ }
226
+
227
+ .profile-grid [data-profile-section='bio'].profile__section--empty .profile__empty-state-content {
228
+ gap: var(--bio-section-content-gap-mobile);
229
+ }
230
+
231
+ .bio-card__description-text {
232
+ font-size: var(--font-size-sm, 0.875rem);
233
+ line-height: var(--line-height-base, 1.5);
234
+ -webkit-line-clamp: 2;
235
+ line-clamp: 2;
236
+ }
237
+
238
+ .bio-card__description-wrap {
239
+ --bio-description-toggle-top: calc(100% - 1.5em);
240
+ --bio-description-toggle-transform: none;
241
+ }
242
+ }
243
+
244
+ @media (max-width: 768px) {
245
+ .bio-section__edit-button.profile-section-collapsible__edit-button,
246
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button {
247
+ min-width: var(--min-touch-target, 44px);
248
+ min-height: var(--min-touch-target, 44px);
249
+ --button-width-sm: var(--min-touch-target, 44px);
250
+ --button-height-sm: var(--min-touch-target, 44px);
251
+ --button-background: transparent;
252
+ --button-border-width: 0;
253
+ --button-border: transparent;
254
+ --button-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
255
+ --button-hover-background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
256
+ --button-hover-border: transparent;
257
+ --button-hover-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
258
+ }
259
+
260
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button) {
261
+ width: var(--min-touch-target, 44px);
262
+ min-width: var(--min-touch-target, 44px);
263
+ }
264
+
265
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):hover,
266
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):focus,
267
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):focus-visible {
268
+ background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
269
+ text-decoration: none;
270
+ }
271
+ }
272
+
273
+ @container profile-pane (max-width: 768px) {
274
+ .bio-section__edit-button.profile-section-collapsible__edit-button,
275
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button {
276
+ min-width: var(--min-touch-target, 44px);
277
+ min-height: var(--min-touch-target, 44px);
278
+ --button-width-sm: var(--min-touch-target, 44px);
279
+ --button-height-sm: var(--min-touch-target, 44px);
280
+ --button-background: transparent;
281
+ --button-border-width: 0;
282
+ --button-border: transparent;
283
+ --button-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
284
+ --button-hover-background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
285
+ --button-hover-border: transparent;
286
+ --button-hover-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
287
+ }
288
+
289
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button) {
290
+ width: var(--min-touch-target, 44px);
291
+ min-width: var(--min-touch-target, 44px);
292
+ }
293
+
294
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):hover,
295
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):focus,
296
+ solid-ui-button.bio-section__edit-button.profile-section-collapsible__edit-button::part(button):focus-visible {
297
+ background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
298
+ text-decoration: none;
299
+ }
300
+ }
@@ -1,7 +1,8 @@
1
+ import 'solid-ui/components/actions/button';
1
2
  import { BioDetails } from './types';
2
3
  import { ViewerMode } from '../../types';
3
- import '../../styles/BioSection.css';
4
+ import './BioSection.css';
4
5
  import { LiveStore, NamedNode } from 'rdflib';
5
- export declare const BioCard: (bioData: BioDetails, viewerMode: ViewerMode) => import("lit-html").TemplateResult<1>;
6
+ export declare const BioCard: (bioData: BioDetails) => import("lit-html").TemplateResult<1>;
6
7
  export declare function renderBioSection(store: LiveStore, subject: NamedNode, bioData: BioDetails, viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1> | "";
7
8
  //# sourceMappingURL=BioSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BioSection.d.ts","sourceRoot":"","sources":["../../../src/sections/bio/BioSection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,6BAA6B,CAAA;AAEpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAqC7C,eAAO,MAAM,OAAO,GAClB,SAAS,UAAU,EACnB,YAAY,UAAU,yCAWvB,CAAA;AAwHD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,6CAcrC"}
1
+ {"version":3,"file":"BioSection.d.ts","sourceRoot":"","sources":["../../../src/sections/bio/BioSection.ts"],"names":[],"mappings":"AACA,OAAO,oCAAoC,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAwC7C,eAAO,MAAM,OAAO,GAClB,SAAS,UAAU,yCASpB,CAAA;AA4HD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,6CAcrC"}
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.BioCard = void 0;
7
7
  exports.renderBioSection = renderBioSection;
8
8
  var _litHtml = require("lit-html");
9
- require("../../styles/BioSection.css");
9
+ require("solid-ui/components/actions/button");
10
+ require("./BioSection.css");
10
11
  var _texts = require("../../texts");
11
12
  var _sectionCardHelpers = require("../shared/sectionCardHelpers");
12
13
  var _BioEditDialog = require("./BioEditDialog");
@@ -16,18 +17,21 @@ function renderBio(bioData) {
16
17
  const bioDescriptionId = 'bio-description';
17
18
  return (0, _litHtml.html)`
18
19
  ${bioData.description ? (0, _litHtml.html)`
19
- <div class="bioDescriptionWrap">
20
- <p class="bioDescriptionText" id=${bioDescriptionId}>${bioData.description}</p>
21
- <button
20
+ <div class="bio-card__description-wrap">
21
+ <p class="bio-card__description-text" id=${bioDescriptionId}>${bioData.description}</p>
22
+ <solid-ui-button
22
23
  type="button"
23
- class="bioDescriptionToggle"
24
+ variant="secondary"
25
+ size="sm"
26
+ label="...more"
27
+ class="bio-card__description-toggle"
24
28
  aria-controls=${bioDescriptionId}
25
29
  aria-expanded="false"
26
30
  hidden
27
31
  @click=${_sectionCardHelpers.toggleDescription}
28
32
  >
29
33
  ...more
30
- </button>
34
+ </solid-ui-button>
31
35
  </div>
32
36
  ` : ''}
33
37
  `;
@@ -35,11 +39,10 @@ function renderBio(bioData) {
35
39
  function hasBioContent(bioData) {
36
40
  return Boolean((bioData?.description || '').trim());
37
41
  }
38
- const BioCard = (bioData, viewerMode) => {
39
- void viewerMode;
42
+ const BioCard = bioData => {
40
43
  return (0, _litHtml.html)`
41
- <article class="bioCard" aria-label="Bio" data-testid="bio-card">
42
- <section class="bioSection">
44
+ <article class="bio-card" aria-label="Bio" data-testid="bio-card">
45
+ <section class="bio-card__section">
43
46
  ${renderBio(bioData)}
44
47
  </section>
45
48
  </article>
@@ -47,16 +50,18 @@ const BioCard = (bioData, viewerMode) => {
47
50
  };
48
51
  exports.BioCard = BioCard;
49
52
  function renderBioSectionContent(store, subject, bioData, viewerMode, onSaved) {
50
- const bio = BioCard(bioData, viewerMode);
53
+ const bio = BioCard(bioData);
51
54
  const bioDetails = bioData;
52
55
  const isOwner = viewerMode === 'owner';
53
56
  return (0, _litHtml.html)`
54
57
  <header class="profile__section-header profile-section-collapsible__header">
55
58
  <h2 id="bio-heading" tabindex="-1">${_texts.bioHeadingText}</h2>
56
59
  ${isOwner ? (0, _litHtml.html)`
57
- <button
60
+ <solid-ui-button
58
61
  type="button"
59
- class="profile__action-button profile-action-text flex-center"
62
+ variant="secondary"
63
+ size="sm"
64
+ class="profile__action-button profile-action-text bio-section__edit-button profile-section-collapsible__edit-button"
60
65
  aria-label="Edit bio details"
61
66
  @click=${event => {
62
67
  return (0, _BioEditDialog.createBioEditDialog)(event, store, subject, bioDetails, viewerMode, onSaved);
@@ -64,7 +69,7 @@ function renderBioSectionContent(store, subject, bioData, viewerMode, onSaved) {
64
69
  >
65
70
  <span class="profile-section-collapsible__edit-label profile__action-icon">${_profileIcons.editIcon} Edit</span>
66
71
  <span class="profile-section-collapsible__edit-icon profile__action-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
67
- </button>
72
+ </solid-ui-button>
68
73
  ` : (0, _litHtml.html)``}
69
74
  </header>
70
75
  <div class="profile-section-collapsible__content">
@@ -77,7 +82,7 @@ function renderBioSectionDefault(store, subject, bioData, viewerMode, onSaved) {
77
82
  <section
78
83
  aria-labelledby="bio-heading"
79
84
  data-profile-section="bio"
80
- class="profile__section border-lighter"
85
+ class="profile__section"
81
86
  role="region"
82
87
  tabindex="-1"
83
88
  >
@@ -88,14 +93,16 @@ function renderBioSectionDefault(store, subject, bioData, viewerMode, onSaved) {
88
93
  function renderOwnerEmptyBioContent(store, subject, bioData, viewerMode, onSaved) {
89
94
  const bioDetails = bioData;
90
95
  return (0, _litHtml.html)`
91
- <div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty bio section">
96
+ <div class="profile__empty-state-content" role="group" aria-label="Empty bio section">
92
97
  <h2 id="bio-heading" tabindex="-1">${_texts.bioHeadingText}</h2>
93
98
  <p class="profile__empty-state-message">
94
99
  You haven't added any professional experience yet. Adding work history can boost your Bio.
95
100
  </p>
96
101
  </div>
97
- <button
102
+ <solid-ui-button
98
103
  type="button"
104
+ variant="secondary"
105
+ size="sm"
99
106
  class="profile__action-button--empty"
100
107
  aria-label="Add bio details"
101
108
  @click=${event => {
@@ -103,7 +110,7 @@ function renderOwnerEmptyBioContent(store, subject, bioData, viewerMode, onSaved
103
110
  }}
104
111
  >
105
112
  <span class="profile__action-icon" aria-hidden="true">${_profileIcons.plusDarkIcon} Add Bio</span>
106
- </button>
113
+ </solid-ui-button>
107
114
 
108
115
  `;
109
116
  }
@@ -112,7 +119,7 @@ function renderOwnerEmptyBioSection(store, subject, bioData, viewerMode, onSaved
112
119
  <section
113
120
  aria-labelledby="bio-heading"
114
121
  data-profile-section="bio"
115
- class="profile__section--empty border-lighter flex-column-center rounded-md gap-lg"
122
+ class="profile__section--empty profile__section--empty-main bio-section--empty"
116
123
  role="region"
117
124
  tabindex="-1"
118
125
  >
@@ -1 +1 @@
1
- {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/sections/bio/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,QAAQ,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAU,MAAM,SAAS,CAAA;AAsCjD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,iBAO5G"}
1
+ {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/sections/bio/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAW,MAAM,QAAQ,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAU,MAAM,SAAS,CAAA;AA+CjD,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,iBAQ5G"}
@@ -8,6 +8,7 @@ var _rdflib = require("rdflib");
8
8
  var _solidUi = require("solid-ui");
9
9
  var _rdfMutationHelpers = require("../shared/rdfMutationHelpers");
10
10
  var _texts = require("../../texts");
11
+ var _debug = require("../../utils/debug");
11
12
  // Need to find out if this is really how we should store the data
12
13
  async function mutateBioEntry(store, subject, bioOps) {
13
14
  const doc = subject.doc();
@@ -31,13 +32,23 @@ async function mutateBioEntry(store, subject, bioOps) {
31
32
  if (selectedBio) {
32
33
  applyBasics(selectedBio, Boolean(removeBio && !updateBio && !createBio));
33
34
  }
34
- await (0, _rdfMutationHelpers.applyUpdaterPatch)(store, deletions, insertions);
35
+ const shouldSerializeDocument = await (0, _rdfMutationHelpers.shouldForceDocumentPutForStatements)(store, doc, insertions);
36
+ await (0, _rdfMutationHelpers.runUpdateTransport)(store, doc, deletions, insertions, {
37
+ unsupportedMessage: _texts.updaterUnsupportedStoreErrorMessageText,
38
+ failureMessage: 'Failed to save bio updates',
39
+ useDavFallback: false,
40
+ usePutFallback: shouldSerializeDocument,
41
+ forcePut: shouldSerializeDocument
42
+ });
35
43
  }
36
44
  async function processBioMutations(store, subject, mutationPlan) {
37
45
  try {
38
46
  await mutateBioEntry(store, subject, mutationPlan);
39
47
  } catch (error) {
40
- const message = error instanceof Error ? error.message : String(error);
41
- throw new Error(`${_texts.saveBioUpdatesFailedPrefixText} ${message}`);
48
+ const rootError = error instanceof Error ? error : new Error(String(error));
49
+ (0, _debug.error)(_texts.bioMutationSaveFailedDebugText, rootError);
50
+ throw new Error(_texts.saveBioUpdatesFailedMessageText, {
51
+ cause: rootError
52
+ });
42
53
  }
43
54
  }