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,862 @@
1
+ .profile__avatar {
2
+ flex: 0 0 auto;
3
+ grid-area: avatar;
4
+ }
5
+
6
+ /* Header grid */
7
+ .profile__heading-top {
8
+ --profile-heading-header-bar-gap: 0.125rem;
9
+ --profile-heading-desktop-details-offset: var(--spacing-lg, 1.5625rem);
10
+ --profile-heading-desktop-detail-row-gap: var(--spacing-xxs, 0.3125rem);
11
+ --profile-heading-identity-inline-gap: 0.4375rem;
12
+ --profile-heading-name-offset-x: -4px;
13
+ --profile-heading-detail-column-gap: 2rem;
14
+ --profile-heading-detail-grid-column-gap: clamp(0.75rem, 2vw, 1.5rem);
15
+ --profile-heading-detail-grid-max-width: 34rem;
16
+ --profile-heading-detail-icon-size: var(--icon-xxs, 1rem);
17
+ --profile-heading-prefix-icon-gap: 0.125rem;
18
+ --profile-heading-action-item-flex: 0 0 auto;
19
+ --profile-heading-action-label-font-size: inherit;
20
+ --profile-heading-action-label-white-space: normal;
21
+ --profile-heading-action-contact-icon-size: var(--icon-xxs, 1rem);
22
+ --profile-heading-action-contact-icon-gap: var(--spacing-xxs, 0.3125rem);
23
+ --profile-heading-action-full-label-display: inline;
24
+ --profile-heading-action-short-label-display: none;
25
+ --profile-heading-medium-column-gap: var(--spacing-sm, 0.75rem);
26
+ --profile-heading-hero-size: 8.75rem;
27
+ --profile-heading-hero-alt-padding-inline: 2.275rem;
28
+ --profile-heading-medium-hero-size: 6.5rem;
29
+ --profile-heading-medium-hero-alt-padding-inline: 1.6875rem;
30
+ --profile-heading-medium-action-gap: 0.25rem;
31
+ --profile-heading-medium-button-padding: 0.3125rem 0.5625rem;
32
+ --profile-heading-medium-button-padding-x: 0.5625rem;
33
+ --profile-heading-medium-button-font-size: var(--font-size-xs, 0.8125rem);
34
+ --profile-heading-medium-contact-icon-size: 0.6875rem;
35
+ --profile-heading-medium-contact-icon-gap: 0.25rem;
36
+ --profile-heading-medium-actions-max-inline-size: 10.5rem;
37
+ --profile-heading-narrow-column-gap: 0.5rem;
38
+ --profile-heading-narrow-action-gap: 0.25rem;
39
+ --profile-heading-narrow-actions-justify-self: center;
40
+ --profile-heading-narrow-actions-margin-left: auto;
41
+ --profile-heading-narrow-actions-margin-right: auto;
42
+ --profile-heading-narrow-actions-justify-content: center;
43
+ --profile-heading-compact-column-gap: 0.5rem;
44
+ --profile-heading-compact-row-gap: var(--spacing-sm, 0.75rem);
45
+ --profile-heading-compact-action-gap: 0.25rem;
46
+ --profile-heading-compact-actions-justify-self: start;
47
+ --profile-heading-compact-actions-margin-left: 0;
48
+ --profile-heading-compact-actions-margin-right: auto;
49
+ --profile-heading-compact-actions-justify-content: flex-start;
50
+ --profile-heading-secondary-edit-justify-self: end;
51
+ --profile-heading-secondary-edit-align-self: flex-start;
52
+ --profile-heading-secondary-edit-margin-left: auto;
53
+ --profile-heading-secondary-edit-margin-right: 0;
54
+ --profile-heading-secondary-edit-justify-content: flex-end;
55
+ --profile-heading-compact-button-padding: 0.25rem 0.3125rem;
56
+ --profile-heading-compact-button-padding-x: 0.3125rem;
57
+ --profile-heading-compact-button-font-size: var(--font-size-xxs, 0.75rem);
58
+ --profile-heading-compact-contact-icon-size: 0.625rem;
59
+ --profile-heading-compact-contact-icon-gap: 0.1875rem;
60
+ --profile-heading-compact-button-hover-background: var(--color-primary, #7C4DFF);
61
+ --profile-heading-compact-button-hover-border: var(--color-primary, #7C4DFF);
62
+ --profile-heading-compact-button-hover-text: var(--color-text-on-action, var(--white, #FFF));
63
+ --profile-heading-compact-detail-column-gap: 0.25rem;
64
+ --profile-heading-compact-detail-size: var(--profile-mobile-header-detail-size, var(--font-size-xxs, 0.75rem));
65
+ --profile-heading-compact-details-gap: var(--spacing-xs, 0.5rem);
66
+ --profile-heading-compact-identity-gap: 0.125rem;
67
+ --profile-heading-compact-hero-icon-size: 3rem;
68
+ --profile-heading-compact-image-size: var(--profile-mobile-header-image-size, 4.375rem);
69
+ --profile-heading-compact-name-size: var(--profile-mobile-header-name-size, var(--font-size-xl, 1.375rem));
70
+ --profile-heading-compact-name-line-height: 1.15;
71
+ --profile-heading-compact-pronouns-size: var(--profile-mobile-header-pronouns-size, var(--font-size-2xs, 0.6875rem));
72
+ --profile-heading-compact-pronouns-line-height: 1.1;
73
+ --profile-heading-compact-role-size: var(--profile-mobile-header-job-title-size, var(--font-size-md, 1rem));
74
+ display: grid;
75
+ grid-template-columns: auto minmax(0, 1fr) auto auto;
76
+ grid-template-areas:
77
+ "avatar info actions edit"
78
+ "avatar details details details";
79
+ column-gap: var(--spacing-md, 1.25rem);
80
+ row-gap: var(--profile-heading-desktop-details-offset, var(--spacing-lg, 1.5625rem));
81
+ align-items: start;
82
+ width: 100%;
83
+ }
84
+
85
+ .profile__name {
86
+ display: block;
87
+ color: var(--color-text-heading, #000);
88
+ font-size: var(--font-size-xxl, 1.75rem); /* 28px */
89
+ font-weight: var(--font-weight-bold, 600);
90
+ margin: 0;
91
+ padding: 0;
92
+ text-indent: 0;
93
+ line-height: 1.2;
94
+ text-align: left;
95
+ overflow-wrap: anywhere;
96
+ transform: translateX(var(--profile-heading-name-offset-x, -4px));
97
+ }
98
+
99
+ .profile__info {
100
+ display: flex;
101
+ flex-direction: column;
102
+ grid-area: info;
103
+ flex: 1 1 auto;
104
+ min-width: 0;
105
+ align-items: flex-start;
106
+ }
107
+
108
+ .profile__details {
109
+ grid-area: details;
110
+ color: var(--color-text-secondary, #4A5565);
111
+ font-size: var(--font-size-sm, 0.875rem); /* 14px */
112
+ display: flex;
113
+ width: 100%;
114
+ align-content: flex-start;
115
+ align-items: flex-start;
116
+ flex-wrap: wrap;
117
+ gap: var(--profile-heading-desktop-detail-row-gap, var(--spacing-xxs, 0.3125rem)) var(--profile-heading-detail-column-gap, 2rem);
118
+ }
119
+
120
+ .profile__info > .profile__header-bar {
121
+ margin-left: 0;
122
+ padding-left: 0;
123
+ align-self: stretch;
124
+ }
125
+
126
+ .profile__header-bar {
127
+ display: flex;
128
+ flex-direction: column;
129
+ align-items: flex-start;
130
+ gap: var(--profile-heading-header-bar-gap, 0.125rem);
131
+ width: 100%;
132
+ margin: 0;
133
+ padding: 0;
134
+ }
135
+
136
+ .profile__actions {
137
+ color: var(--color-text-secondary, #4A5565);
138
+ font-size: var(--font-size-base, 1rem);
139
+ margin-bottom: var(--spacing-xs, 0.75rem);
140
+ }
141
+
142
+ .profile__heading-actions {
143
+ grid-area: actions;
144
+ margin-left: auto;
145
+ margin-bottom: 0;
146
+ align-self: flex-start;
147
+ justify-self: end;
148
+ display: flex;
149
+ align-items: flex-start;
150
+ gap: var(--spacing-xs, 0.5rem);
151
+ flex-wrap: wrap;
152
+ }
153
+
154
+ .profile__heading-actions .profile__btn-friends-label,
155
+ .profile__heading-actions #add-to-contacts-button-container .profile__btn-contacts-label {
156
+ font-size: var(--profile-heading-action-label-font-size, inherit);
157
+ white-space: var(--profile-heading-action-label-white-space, normal);
158
+ }
159
+
160
+ .profile__heading-actions #add-to-contacts-button-container .profile__btn-contacts-icon,
161
+ .profile__heading-actions #add-to-contacts-button-container .profile__btn-contacts-icon svg {
162
+ width: var(--profile-heading-action-contact-icon-size, var(--icon-xxs, 1rem));
163
+ height: var(--profile-heading-action-contact-icon-size, var(--icon-xxs, 1rem));
164
+ }
165
+
166
+ .profile__heading-actions #add-to-contacts-button-container .profile__btn-contacts-icon {
167
+ margin-right: var(--profile-heading-action-contact-icon-gap, var(--spacing-xxs, 0.3125rem));
168
+ }
169
+
170
+ .profile__heading-actions solid-ui-button.profile__btn-friends[data-friends-short-label='true'] .profile__btn-friends-label--full {
171
+ display: var(--profile-heading-action-full-label-display, inline);
172
+ }
173
+
174
+ .profile__heading-actions solid-ui-button.profile__btn-friends[data-friends-short-label='true'] .profile__btn-friends-label--short {
175
+ display: var(--profile-heading-action-short-label-display, none);
176
+ }
177
+
178
+ .profile__heading-edit-action {
179
+ grid-area: edit;
180
+ margin-left: auto;
181
+ margin-right: var(--profile-heading-secondary-edit-margin-right, 0);
182
+ margin-bottom: 0;
183
+ align-self: flex-start;
184
+ justify-self: end;
185
+ display: flex;
186
+ justify-content: var(--profile-heading-secondary-edit-justify-content, flex-end);
187
+ align-items: flex-start;
188
+ padding: 0;
189
+ }
190
+
191
+ .profile__heading-actions > .profile-friends-button__section,
192
+ .profile__heading-actions > #add-to-contacts-button-container {
193
+ width: auto;
194
+ min-width: 0;
195
+ flex: var(--profile-heading-action-item-flex, 0 0 auto);
196
+ }
197
+
198
+ .profile__heading-actions > #add-to-contacts-button-container {
199
+ display: none !important;
200
+ }
201
+
202
+ .profile__heading-actions > .profile-friends-button__section > solid-ui-button.profile__btn-friends,
203
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
204
+ width: auto;
205
+ max-width: 100%;
206
+ }
207
+
208
+ .profile__heading-action-button {
209
+ position: static;
210
+ min-width: 0;
211
+ width: auto;
212
+ max-width: none;
213
+ padding: 0;
214
+ --button-padding-sm: 0;
215
+ }
216
+
217
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button) {
218
+ padding: 0;
219
+ }
220
+
221
+ /* Identity details */
222
+ .profile__identity {
223
+ display: flex;
224
+ flex-direction: row;
225
+ align-items: baseline;
226
+ gap: var(--profile-heading-identity-inline-gap, 0.4375rem);
227
+ justify-content: flex-start;
228
+ width: 100%;
229
+ flex-wrap: nowrap;
230
+ }
231
+
232
+ .profile__pronouns {
233
+ color: var(--color-text-secondary, #4A5565);
234
+ font-size: var(--font-size-sm, 0.875rem); /* 14px */
235
+ font-weight: var(--font-weight-regular, 400);
236
+ line-height: 1.2;
237
+ }
238
+
239
+ .profile__role-org {
240
+ margin: 0;
241
+ width: 100%;
242
+ white-space: normal;
243
+ color: var(--color-text-subheading, #101828);
244
+ font-size: var(--font-size-lg, 1.125rem);
245
+ font-weight: var(--font-weight-md, 500);
246
+ line-height: 1.25;
247
+ text-align: left;
248
+ }
249
+
250
+ .profile__meta-row,
251
+ .profile__contact-row {
252
+ display: grid;
253
+ grid-template-columns: repeat(2, minmax(0, 1fr));
254
+ justify-content: flex-start;
255
+ column-gap: var(--profile-heading-detail-grid-column-gap, clamp(0.75rem, 2vw, 1.5rem));
256
+ row-gap: var(--spacing-xs, 0.5rem);
257
+ align-items: start;
258
+ margin: 0;
259
+ padding: 0;
260
+ width: min(100%, var(--profile-heading-detail-grid-max-width, 34rem));
261
+ max-width: 100%;
262
+ }
263
+
264
+ .profile__meta-row .profile__item,
265
+ .profile__contact-row .profile__item {
266
+ display: flex;
267
+ align-items: center;
268
+ gap: var(--spacing-2xs, 0.625rem);
269
+ min-width: 0;
270
+ }
271
+
272
+ .profile__meta-row .profile__value,
273
+ .profile__contact-row .profile__value,
274
+ .profile__meta-row .profile__value-text,
275
+ .profile__contact-row .profile__value-text {
276
+ min-width: 0;
277
+ white-space: normal !important;
278
+ overflow-wrap: anywhere;
279
+ word-break: break-word;
280
+ }
281
+
282
+ .profile__meta-row .profile__value,
283
+ .profile__contact-row .profile__value {
284
+ display: flex;
285
+ align-items: flex-start;
286
+ gap: var(--spacing-xxs, 0.3125rem);
287
+ }
288
+
289
+ .profile__prefix-icon {
290
+ display: inline-flex;
291
+ align-items: center;
292
+ margin-right: var(--profile-heading-prefix-icon-gap, 0.125rem);
293
+ }
294
+
295
+ .profile__detail-icon {
296
+ display: block;
297
+ width: var(--profile-heading-detail-icon-size, var(--icon-xxs, 1rem));
298
+ height: var(--profile-heading-detail-icon-size, var(--icon-xxs, 1rem));
299
+ }
300
+
301
+ .profile__hero,
302
+ .profile__hero-alt {
303
+ width: var(--profile-heading-hero-size, 8.75rem);
304
+ height: var(--profile-heading-hero-size, 8.75rem);
305
+ border-radius: var(--border-radius-full, 0.625rem); /* 10px */
306
+ }
307
+
308
+ .profile__image-frame:not(.profile__image-frame--fallback) .profile__hero-alt {
309
+ display: none;
310
+ }
311
+
312
+ .profile__image-frame--fallback .profile__hero {
313
+ display: none;
314
+ }
315
+
316
+ /* Profile image */
317
+ .profile__hero {
318
+ border: var(--border-width-sm, 0.1rem) solid var(--color-primary, #7C4DFF);
319
+ background: var(--color-surface-placeholder, var(--gray-300, #D1D5DC)) 50% / cover no-repeat;
320
+ background-position: 50%;
321
+ object-fit: cover;
322
+ object-position: center;
323
+ }
324
+
325
+ .profile__hero-alt {
326
+ display: flex;
327
+ align-items: center;
328
+ justify-content: center;
329
+ padding: 0 var(--profile-heading-hero-alt-padding-inline, 2.275rem);
330
+ border: var(--border-width-sm, 0.1rem) dashed var(--color-border-lighter, var(--slate-200, #E2E8F0));
331
+ background: var(--color-surface-overlay-header, #F8FAFC);
332
+ box-sizing: border-box;
333
+ }
334
+
335
+ /* Counteracts mashlib alignment so the placeholder icon stays centered. */
336
+ .profile__hero-alt .profile__hero-icon {
337
+ display: inline-flex;
338
+ align-items: center;
339
+ justify-content: center;
340
+ line-height: 0;
341
+ }
342
+
343
+ .profile__hero-alt .profile__hero-icon svg {
344
+ display: block;
345
+ width: 100%;
346
+ height: 100%;
347
+ }
348
+
349
+ /* Responsive: medium widths */
350
+ @media (max-width: 1200px) {
351
+ .profile__heading-top {
352
+ column-gap: var(--profile-heading-medium-column-gap, var(--spacing-sm, 0.75rem));
353
+ }
354
+
355
+ .profile__hero,
356
+ .profile__hero-alt {
357
+ width: var(--profile-heading-medium-hero-size, 6.5rem);
358
+ height: var(--profile-heading-medium-hero-size, 6.5rem);
359
+ }
360
+
361
+ .profile__hero-alt {
362
+ padding: 0 var(--profile-heading-medium-hero-alt-padding-inline, 1.6875rem);
363
+ }
364
+
365
+ .profile__heading-actions {
366
+ --profile-heading-action-item-flex: 0 1 auto;
367
+ --profile-heading-action-label-font-size: var(--profile-heading-medium-button-font-size);
368
+ --profile-heading-action-contact-icon-size: var(--profile-heading-medium-contact-icon-size);
369
+ --profile-heading-action-contact-icon-gap: var(--profile-heading-medium-contact-icon-gap);
370
+ justify-self: end;
371
+ margin-bottom: 0;
372
+ max-inline-size: var(--profile-heading-medium-actions-max-inline-size, 10.5rem);
373
+ justify-content: flex-end;
374
+ align-items: flex-start;
375
+ align-content: flex-end;
376
+ gap: var(--profile-heading-medium-action-gap, 0.25rem);
377
+ }
378
+ .profile__heading-actions > .profile-friends-button__section > solid-ui-button.profile__btn-friends,
379
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
380
+ --button-padding-sm: var(--profile-heading-medium-button-padding, 0.3125rem 0.5625rem);
381
+ --button-padding-x-sm: var(--profile-heading-medium-button-padding-x, 0.5625rem);
382
+ --button-font-size-sm: var(--profile-heading-medium-button-font-size, var(--font-size-xs, 0.8125rem));
383
+ }
384
+
385
+ }
386
+
387
+ @container profile-pane (max-width: 1200px) {
388
+ .profile__heading-top {
389
+ column-gap: var(--profile-heading-medium-column-gap, var(--spacing-sm, 0.75rem));
390
+ }
391
+
392
+ .profile__hero,
393
+ .profile__hero-alt {
394
+ width: var(--profile-heading-medium-hero-size, 6.5rem);
395
+ height: var(--profile-heading-medium-hero-size, 6.5rem);
396
+ }
397
+
398
+ .profile__hero-alt {
399
+ padding: 0 var(--profile-heading-medium-hero-alt-padding-inline, 1.6875rem);
400
+ }
401
+
402
+ .profile__heading-actions {
403
+ --profile-heading-action-item-flex: 0 1 auto;
404
+ --profile-heading-action-label-font-size: var(--profile-heading-medium-button-font-size);
405
+ --profile-heading-action-contact-icon-size: var(--profile-heading-medium-contact-icon-size);
406
+ --profile-heading-action-contact-icon-gap: var(--profile-heading-medium-contact-icon-gap);
407
+ justify-self: end;
408
+ margin-bottom: 0;
409
+ max-inline-size: var(--profile-heading-medium-actions-max-inline-size, 10.5rem);
410
+ justify-content: flex-end;
411
+ align-items: flex-start;
412
+ align-content: flex-end;
413
+ gap: var(--profile-heading-medium-action-gap, 0.25rem);
414
+ }
415
+ .profile__heading-actions > .profile-friends-button__section > solid-ui-button.profile__btn-friends,
416
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
417
+ --button-padding-sm: var(--profile-heading-medium-button-padding, 0.3125rem 0.5625rem);
418
+ --button-padding-x-sm: var(--profile-heading-medium-button-padding-x, 0.5625rem);
419
+ --button-font-size-sm: var(--profile-heading-medium-button-font-size, var(--font-size-xs, 0.8125rem));
420
+ }
421
+
422
+ }
423
+
424
+ @media (max-width: 768px) {
425
+ .profile__heading-top {
426
+ grid-template-columns: auto minmax(0, 1fr) auto;
427
+ grid-template-areas:
428
+ "avatar info edit"
429
+ "details details details"
430
+ "actions actions actions";
431
+ column-gap: var(--profile-heading-narrow-column-gap, 0.5rem);
432
+ row-gap: var(--spacing-sm, 0.75rem);
433
+ }
434
+
435
+ .profile__heading-actions {
436
+ justify-self: var(--profile-heading-narrow-actions-justify-self, center);
437
+ margin-left: var(--profile-heading-narrow-actions-margin-left, auto);
438
+ margin-right: var(--profile-heading-narrow-actions-margin-right, auto);
439
+ max-inline-size: none;
440
+ justify-content: var(--profile-heading-narrow-actions-justify-content, center);
441
+ align-items: center;
442
+ align-content: center;
443
+ gap: var(--profile-heading-narrow-action-gap, 0.25rem);
444
+ flex-wrap: nowrap;
445
+ }
446
+
447
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button {
448
+ min-width: var(--min-touch-target, 44px);
449
+ min-height: var(--min-touch-target, 44px);
450
+ --button-width-sm: var(--min-touch-target, 44px);
451
+ --button-height-sm: var(--min-touch-target, 44px);
452
+ --button-background: transparent;
453
+ --button-border-width: 0;
454
+ --button-border: transparent;
455
+ --button-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
456
+ --button-hover-background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
457
+ --button-hover-border: transparent;
458
+ --button-hover-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
459
+ }
460
+
461
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):hover,
462
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):focus,
463
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):focus-visible {
464
+ background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
465
+ text-decoration: none;
466
+ }
467
+
468
+ }
469
+
470
+ @container profile-pane (max-width: 768px) {
471
+ .profile__heading-top {
472
+ grid-template-columns: auto minmax(0, 1fr) auto;
473
+ grid-template-areas:
474
+ "avatar info edit"
475
+ "details details details"
476
+ "actions actions actions";
477
+ column-gap: var(--profile-heading-narrow-column-gap, 0.5rem);
478
+ row-gap: var(--spacing-sm, 0.75rem);
479
+ }
480
+
481
+ .profile__heading-actions {
482
+ justify-self: var(--profile-heading-narrow-actions-justify-self, center);
483
+ margin-left: var(--profile-heading-narrow-actions-margin-left, auto);
484
+ margin-right: var(--profile-heading-narrow-actions-margin-right, auto);
485
+ max-inline-size: none;
486
+ justify-content: var(--profile-heading-narrow-actions-justify-content, center);
487
+ align-items: center;
488
+ align-content: center;
489
+ gap: var(--profile-heading-narrow-action-gap, 0.25rem);
490
+ flex-wrap: nowrap;
491
+ }
492
+
493
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button {
494
+ min-width: var(--min-touch-target, 44px);
495
+ min-height: var(--min-touch-target, 44px);
496
+ --button-width-sm: var(--min-touch-target, 44px);
497
+ --button-height-sm: var(--min-touch-target, 44px);
498
+ --button-background: transparent;
499
+ --button-border-width: 0;
500
+ --button-border: transparent;
501
+ --button-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
502
+ --button-hover-background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
503
+ --button-hover-border: transparent;
504
+ --button-hover-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
505
+ }
506
+
507
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):hover,
508
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):focus,
509
+ .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):focus-visible {
510
+ background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
511
+ text-decoration: none;
512
+ }
513
+
514
+ }
515
+ /* Responsive: compact widths */
516
+ /* layout = mobile */
517
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-top {
518
+ grid-template-columns: auto minmax(0, 1fr) auto;
519
+ grid-template-areas:
520
+ "avatar info edit"
521
+ "details details details"
522
+ "actions actions actions";
523
+ column-gap: var(--profile-heading-compact-column-gap, 0.5rem);
524
+ row-gap: var(--profile-heading-compact-row-gap, var(--spacing-sm, 0.75rem));
525
+ }
526
+
527
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__info {
528
+ grid-column: 2 / -1;
529
+ align-self: stretch;
530
+ justify-content: flex-end;
531
+ }
532
+
533
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__avatar {
534
+ align-self: flex-end;
535
+ }
536
+
537
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-actions {
538
+ --profile-heading-action-item-flex: 0 1 auto;
539
+ --profile-heading-action-label-font-size: var(--profile-heading-compact-button-font-size);
540
+ --profile-heading-action-label-white-space: nowrap;
541
+ --profile-heading-action-contact-icon-size: var(--profile-heading-compact-contact-icon-size);
542
+ --profile-heading-action-contact-icon-gap: var(--profile-heading-compact-contact-icon-gap);
543
+ --profile-heading-action-full-label-display: none;
544
+ --profile-heading-action-short-label-display: inline;
545
+ justify-self: var(--profile-heading-compact-actions-justify-self, start);
546
+ margin-left: var(--profile-heading-compact-actions-margin-left, 0);
547
+ margin-right: var(--profile-heading-compact-actions-margin-right, auto);
548
+ max-inline-size: none;
549
+ justify-content: var(--profile-heading-compact-actions-justify-content, flex-start);
550
+ align-items: center;
551
+ align-content: center;
552
+ gap: var(--profile-heading-compact-action-gap, 0.25rem);
553
+ flex-wrap: nowrap;
554
+ }
555
+
556
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-edit-action > solid-ui-button.profile__heading-action-button {
557
+ min-width: var(--min-touch-target, 44px);
558
+ min-height: var(--min-touch-target, 44px);
559
+ --button-width-sm: var(--min-touch-target, 44px);
560
+ --button-height-sm: var(--min-touch-target, 44px);
561
+ --button-background: transparent;
562
+ --button-border-width: 0;
563
+ --button-border: transparent;
564
+ --button-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
565
+ --button-hover-background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
566
+ --button-hover-border: transparent;
567
+ --button-hover-text: var(--profile-section-collapsible-action-button-text, var(--color-primary, #7C4DFF));
568
+ }
569
+
570
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):hover,
571
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):focus,
572
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-edit-action > solid-ui-button.profile__heading-action-button::part(button):focus-visible {
573
+ background: var(--profile-section-collapsible-action-button-hover-background, var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff)));
574
+ text-decoration: none;
575
+ }
576
+
577
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-actions > .profile-friends-button__section > solid-ui-button.profile__btn-friends,
578
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
579
+ min-width: 0;
580
+ inline-size: auto;
581
+ min-height: var(--button-height-sm, 1.75rem);
582
+ --button-padding-sm: var(--profile-heading-compact-button-padding, 0.25rem 0.3125rem);
583
+ --button-padding-x-sm: var(--profile-heading-compact-button-padding-x, 0.3125rem);
584
+ --button-font-size-sm: var(--profile-heading-compact-button-font-size, var(--font-size-xxs, 0.75rem));
585
+ --button-hover-background: var(--profile-heading-compact-button-hover-background, var(--color-primary, #7C4DFF));
586
+ --button-hover-border: var(--profile-heading-compact-button-hover-border, var(--color-primary, #7C4DFF));
587
+ --button-hover-text: var(--profile-heading-compact-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
588
+ }
589
+
590
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
591
+ --button-hover-background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
592
+ --button-hover-border: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
593
+ --button-hover-text: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
594
+ }
595
+
596
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__name {
597
+ display: inline;
598
+ font-size: var(--profile-heading-compact-name-size, var(--profile-mobile-header-name-size, var(--font-size-xl, 1.375rem)));
599
+ line-height: var(--profile-heading-compact-name-line-height, 1.15);
600
+ }
601
+
602
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__identity {
603
+ display: flow-root;
604
+ }
605
+
606
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__identity::before {
607
+ content: '';
608
+ float: right;
609
+ width: calc(var(--profile-heading-mobile-edit-rail-width, 2.75rem) + var(--profile-heading-mobile-edit-rail-gap, var(--spacing-xxs, 0.3125rem)));
610
+ height: var(--profile-heading-mobile-identity-rail-height, 2rem);
611
+ }
612
+
613
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__pronouns {
614
+ font-size: var(--profile-heading-compact-pronouns-size, var(--profile-mobile-header-pronouns-size, 0.6875rem));
615
+ line-height: var(--profile-heading-compact-pronouns-line-height, 1.1);
616
+ margin-left: var(--profile-heading-compact-identity-gap, 0.125rem);
617
+ white-space: nowrap;
618
+ }
619
+
620
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__role-org {
621
+ font-size: var(--profile-heading-compact-role-size, var(--profile-mobile-header-job-title-size, var(--font-size-md, 1rem)));
622
+ }
623
+
624
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__hero,
625
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__hero-alt {
626
+ width: var(--profile-heading-compact-image-size, var(--profile-mobile-header-image-size, 4.375rem));
627
+ height: var(--profile-heading-compact-image-size, var(--profile-mobile-header-image-size, 4.375rem));
628
+ aspect-ratio: 1 / 1;
629
+ }
630
+
631
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__hero-alt {
632
+ padding: 0;
633
+ }
634
+
635
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__image-frame--fallback .profile__hero-alt {
636
+ display: flex;
637
+ align-items: center;
638
+ justify-content: center;
639
+ }
640
+
641
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__hero-icon {
642
+ display: block;
643
+ margin: 0 auto;
644
+ width: var(--profile-heading-compact-hero-icon-size, 3rem);
645
+ height: var(--profile-heading-compact-hero-icon-size, 3rem);
646
+ }
647
+
648
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__details {
649
+ font-size: var(--profile-heading-compact-detail-size, var(--profile-mobile-header-detail-size, var(--font-size-xxs, 0.75rem)));
650
+ gap: var(--profile-heading-compact-details-gap, var(--spacing-xs, 0.5rem));
651
+ }
652
+
653
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__meta-row,
654
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__contact-row {
655
+ grid-template-columns: repeat(2, minmax(0, 1fr));
656
+ column-gap: var(--profile-heading-compact-detail-column-gap, 0.25rem);
657
+ }
658
+
659
+ @media (max-width: 576px) {
660
+ .profile__heading-top {
661
+ grid-template-columns: auto minmax(0, 1fr) auto;
662
+ grid-template-areas:
663
+ "avatar info edit"
664
+ "details details details"
665
+ "actions actions actions";
666
+ column-gap: var(--profile-heading-compact-column-gap, 0.5rem);
667
+ row-gap: var(--profile-heading-compact-row-gap, var(--spacing-sm, 0.75rem));
668
+ }
669
+
670
+ .profile__info {
671
+ grid-column: 2 / -1;
672
+ align-self: stretch;
673
+ justify-content: flex-end;
674
+ }
675
+
676
+ .profile__avatar {
677
+ align-self: flex-end;
678
+ }
679
+
680
+ .profile__heading-actions {
681
+ --profile-heading-action-item-flex: 0 1 auto;
682
+ --profile-heading-action-label-font-size: var(--profile-heading-compact-button-font-size);
683
+ --profile-heading-action-label-white-space: nowrap;
684
+ --profile-heading-action-contact-icon-size: var(--profile-heading-compact-contact-icon-size);
685
+ --profile-heading-action-contact-icon-gap: var(--profile-heading-compact-contact-icon-gap);
686
+ --profile-heading-action-full-label-display: none;
687
+ --profile-heading-action-short-label-display: inline;
688
+ justify-self: var(--profile-heading-compact-actions-justify-self, start);
689
+ margin-left: var(--profile-heading-compact-actions-margin-left, 0);
690
+ margin-right: var(--profile-heading-compact-actions-margin-right, auto);
691
+ max-inline-size: none;
692
+ justify-content: var(--profile-heading-compact-actions-justify-content, flex-start);
693
+ align-items: center;
694
+ align-content: center;
695
+ gap: var(--profile-heading-compact-action-gap, 0.25rem);
696
+ flex-wrap: nowrap;
697
+ }
698
+
699
+ .profile__heading-actions > .profile-friends-button__section > solid-ui-button.profile__btn-friends,
700
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
701
+ min-width: 0;
702
+ inline-size: auto;
703
+ min-height: var(--button-height-sm, 1.75rem);
704
+ --button-padding-sm: var(--profile-heading-compact-button-padding, 0.25rem 0.3125rem);
705
+ --button-padding-x-sm: var(--profile-heading-compact-button-padding-x, 0.3125rem);
706
+ --button-font-size-sm: var(--profile-heading-compact-button-font-size, var(--font-size-xxs, 0.75rem));
707
+ --button-hover-background: var(--profile-heading-compact-button-hover-background, var(--color-primary, #7C4DFF));
708
+ --button-hover-border: var(--profile-heading-compact-button-hover-border, var(--color-primary, #7C4DFF));
709
+ --button-hover-text: var(--profile-heading-compact-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
710
+ }
711
+
712
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
713
+ --button-hover-background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
714
+ --button-hover-border: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
715
+ --button-hover-text: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
716
+ }
717
+
718
+ .profile__name {
719
+ display: inline;
720
+ font-size: var(--profile-heading-compact-name-size, var(--profile-mobile-header-name-size, var(--font-size-xl, 1.375rem)));
721
+ line-height: var(--profile-heading-compact-name-line-height, 1.15);
722
+ }
723
+
724
+ .profile__identity {
725
+ display: flow-root;
726
+ }
727
+
728
+ .profile__role-org {
729
+ font-size: var(--profile-heading-compact-role-size, var(--profile-mobile-header-job-title-size, var(--font-size-md, 1rem)));
730
+ }
731
+
732
+ .profile__hero-alt {
733
+ padding: 0;
734
+ }
735
+
736
+ .profile__image-frame--fallback .profile__hero-alt {
737
+ display: flex;
738
+ align-items: center;
739
+ justify-content: center;
740
+ }
741
+
742
+ .profile__hero-icon {
743
+ display: block;
744
+ margin: 0 auto;
745
+ width: var(--profile-heading-compact-hero-icon-size, 3rem);
746
+ height: var(--profile-heading-compact-hero-icon-size, 3rem);
747
+ }
748
+
749
+ .profile__details {
750
+ font-size: var(--profile-heading-compact-detail-size, var(--profile-mobile-header-detail-size, var(--font-size-xxs, 0.75rem)));
751
+ gap: var(--profile-heading-compact-details-gap, var(--spacing-xs, 0.5rem));
752
+ }
753
+
754
+ .profile__meta-row,
755
+ .profile__contact-row {
756
+ grid-template-columns: repeat(2, minmax(0, 1fr));
757
+ column-gap: var(--profile-heading-compact-detail-column-gap, 0.25rem);
758
+ }
759
+ }
760
+
761
+ @container profile-pane (max-width: 576px) {
762
+ .profile__heading-top {
763
+ grid-template-columns: auto minmax(0, 1fr) auto;
764
+ grid-template-areas:
765
+ "avatar info edit"
766
+ "details details details"
767
+ "actions actions actions";
768
+ column-gap: var(--profile-heading-compact-column-gap, 0.5rem);
769
+ row-gap: var(--profile-heading-compact-row-gap, var(--spacing-sm, 0.75rem));
770
+ }
771
+
772
+ .profile__info {
773
+ grid-column: 2 / -1;
774
+ align-self: stretch;
775
+ justify-content: flex-end;
776
+ }
777
+
778
+ .profile__avatar {
779
+ align-self: flex-end;
780
+ }
781
+
782
+ .profile__heading-actions {
783
+ --profile-heading-action-item-flex: 0 1 auto;
784
+ --profile-heading-action-label-font-size: var(--profile-heading-compact-button-font-size);
785
+ --profile-heading-action-label-white-space: nowrap;
786
+ --profile-heading-action-contact-icon-size: var(--profile-heading-compact-contact-icon-size);
787
+ --profile-heading-action-contact-icon-gap: var(--profile-heading-compact-contact-icon-gap);
788
+ --profile-heading-action-full-label-display: none;
789
+ --profile-heading-action-short-label-display: inline;
790
+ justify-self: var(--profile-heading-compact-actions-justify-self, start);
791
+ margin-left: var(--profile-heading-compact-actions-margin-left, 0);
792
+ margin-right: var(--profile-heading-compact-actions-margin-right, auto);
793
+ max-inline-size: none;
794
+ justify-content: var(--profile-heading-compact-actions-justify-content, flex-start);
795
+ align-items: center;
796
+ align-content: center;
797
+ gap: var(--profile-heading-compact-action-gap, 0.25rem);
798
+ flex-wrap: nowrap;
799
+ }
800
+
801
+ .profile__heading-actions > .profile-friends-button__section > solid-ui-button.profile__btn-friends,
802
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
803
+ min-width: 0;
804
+ inline-size: auto;
805
+ min-height: var(--button-height-sm, 1.75rem);
806
+ --button-padding-sm: var(--profile-heading-compact-button-padding, 0.25rem 0.3125rem);
807
+ --button-padding-x-sm: var(--profile-heading-compact-button-padding-x, 0.3125rem);
808
+ --button-font-size-sm: var(--profile-heading-compact-button-font-size, var(--font-size-xxs, 0.75rem));
809
+ --button-hover-background: var(--profile-heading-compact-button-hover-background, var(--color-primary, #7C4DFF));
810
+ --button-hover-border: var(--profile-heading-compact-button-hover-border, var(--color-primary, #7C4DFF));
811
+ --button-hover-text: var(--profile-heading-compact-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
812
+ }
813
+
814
+ .profile__heading-actions > #add-to-contacts-button-container > solid-ui-button.profile__btn-contacts {
815
+ --button-hover-background: var(--dialog-cancel-button-hover-background, var(--blue-900, #083575));
816
+ --button-hover-border: var(--dialog-cancel-button-hover-border, var(--blue-900, #083575));
817
+ --button-hover-text: var(--dialog-cancel-button-hover-text, var(--color-text-on-action, var(--white, #FFF)));
818
+ }
819
+
820
+ .profile__name {
821
+ display: inline;
822
+ font-size: var(--profile-heading-compact-name-size, var(--profile-mobile-header-name-size, var(--font-size-xl, 1.375rem)));
823
+ line-height: var(--profile-heading-compact-name-line-height, 1.15);
824
+ }
825
+
826
+ .profile__identity {
827
+ display: flow-root;
828
+ }
829
+
830
+ .profile__role-org {
831
+ font-size: var(--profile-heading-compact-role-size, var(--profile-mobile-header-job-title-size, var(--font-size-md, 1rem)));
832
+ }
833
+
834
+ .profile__hero-alt {
835
+ padding: 0;
836
+ }
837
+
838
+ .profile__image-frame--fallback .profile__hero-alt {
839
+ display: flex;
840
+ align-items: center;
841
+ justify-content: center;
842
+ }
843
+
844
+ .profile__hero-icon {
845
+ display: block;
846
+ margin: 0 auto;
847
+ width: var(--profile-heading-compact-hero-icon-size, 3rem);
848
+ height: var(--profile-heading-compact-hero-icon-size, 3rem);
849
+ }
850
+
851
+ .profile__details {
852
+ font-size: var(--profile-heading-compact-detail-size, var(--profile-mobile-header-detail-size, var(--font-size-xxs, 0.75rem)));
853
+ gap: var(--profile-heading-compact-details-gap, var(--spacing-xs, 0.5rem));
854
+ }
855
+
856
+ .profile__meta-row,
857
+ .profile__contact-row {
858
+ grid-template-columns: repeat(2, minmax(0, 1fr));
859
+ column-gap: var(--profile-heading-compact-detail-column-gap, 0.25rem);
860
+ }
861
+ }
862
+