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,66 +0,0 @@
1
- /* ProfileCard.css */
2
- /* Uses utilities: .action-button-focus, .btn-primary, .flex-column-center, .text-truncate, .text-center, .text-wrap-anywhere, .section-centered, .btn-transparent */
3
-
4
- .profileCard {
5
- /* Component container */
6
- }
7
-
8
- .name {
9
- font-size: var(--font-size-xl);
10
- font-weight: 700;
11
- line-height: var(--line-height-tight);
12
- text-decoration: underline;
13
- text-underline-offset: 0.2em;
14
- margin: 0;
15
- letter-spacing: var(--letter-spacing-wide);
16
- }
17
-
18
- .profile__actions {
19
- color: var(--color-text-secondary);
20
- font-size: var(--font-size-base, 1rem);
21
- margin-bottom: var(--spacing-xs);
22
- }
23
-
24
- .buttonSubSection {
25
- width: 100%;
26
- min-width: 0;
27
- display: grid;
28
- }
29
-
30
- .buttonSubSection button {
31
- width: 100%;
32
- min-width: 0;
33
- }
34
-
35
- /* Ensure prompt inputs stretch to fit their container */
36
- .add-friend-button-container input[type="text"] {
37
- width: 100%;
38
- box-sizing: border-box;
39
- }
40
-
41
- .profile__qr-code {
42
- display: flex;
43
- flex-direction: column;
44
- align-items: center;
45
- gap: 20px;
46
- align-self: stretch;
47
- /* OLD color: var(--color-text-secondary);
48
- font-size: 1em;
49
- margin-bottom: var(--spacing-xs); */
50
- }
51
-
52
- .details {
53
- color: var(--color-text-muted);
54
- font-size: var(--font-size-base);
55
- line-height: var(--line-height-base);
56
- max-width: 45ch;
57
- margin-left: auto;
58
- margin-right: auto;
59
- }
60
-
61
- /* ProfileCard styles as regular CSS */
62
- .profile-card {
63
- border: 1px solid #ccc;
64
- padding: 16px;
65
- background: white;
66
- }
@@ -1,65 +0,0 @@
1
- /* ProfileView.css */
2
- /* Uses utilities: .section-bg, .text-center */
3
-
4
-
5
- .profile-grid .profile__main {
6
- width: 100%;
7
- max-width: 100%;
8
- min-width: 0;
9
- box-sizing: border-box;
10
- margin-bottom: 0;
11
- overflow-wrap: anywhere;
12
- align-items: flex-start;
13
- }
14
-
15
- .profile-grid .profile__sidebar {
16
- display: flex;
17
- flex-direction: column;
18
- align-items: stretch;
19
- text-align: left;
20
- border-radius: var(--border-radius-base);
21
- background: var(--color-background, #F8F9FB);
22
- width: 100%;
23
- max-width: 100%;
24
- min-width: 0;
25
- box-sizing: border-box;
26
- overflow-x: clip;
27
- }
28
-
29
- .profile-grid .profile__section {
30
- padding: var(--spacing-lg);
31
- border-radius: var(--border-radius-base);
32
- background: var(--white, #FFF);
33
- box-sizing: border-box;
34
- width: 100%;
35
- max-width: 100%;
36
- min-width: 0;
37
- overflow-x: clip;
38
- }
39
-
40
- .profile-grid .profile__section--empty {
41
- box-sizing: border-box;
42
- width: 100%;
43
- max-width: 100%;
44
- min-width: 0;
45
- overflow-x: clip;
46
- }
47
-
48
-
49
- /* SAM Not sure this is needed, and potentially should be moved somewhere else */
50
- .profile-grid .phone-type {
51
- font-size: var(--font-size-sm);
52
- line-height: var(--line-height-base);
53
- color: var(--color-text-secondary);
54
- }
55
-
56
- @container profile-pane (max-width: 1000px) {
57
- #main-content.profile-grid {
58
- width: 100%;
59
- max-width: 100%;
60
- box-sizing: border-box;
61
- margin-inline: auto !important;
62
- padding-inline: var(--spacing-sm, 0.75rem) !important;
63
- }
64
- }
65
-
@@ -1,206 +0,0 @@
1
- /* The following are the original styles for the ProjectsCard section. */
2
- .project-card__rail {
3
- display: flex;
4
- gap: 1rem;
5
- overflow-x: auto;
6
- padding: 0;
7
- margin: 0;
8
- list-style: none;
9
- scroll-snap-type: x proximity;
10
- }
11
- .project-card__follow-button {
12
- width: auto;
13
- border-radius: var(--border-radius-md, 0.5rem);
14
- border: var(--border-width-sm, 0.1rem) solid var(--color-primary, #7C4DFF);
15
- padding: 0.5rem 0.625rem; /* ~8px 10px, increased by ~2px in rem */
16
- color: var(--color-primary, #7C4DFF);
17
- font-size: var(--font-size-sm, 0.875rem); /* 14px */
18
- font-weight: var(--font-weight-md, 500);
19
- background: var(--white, #FFF);
20
- cursor: pointer;
21
- }
22
-
23
- .project-card__follow-button:hover {
24
- background: var(--lavender-400, #cbb9ff);
25
- }
26
-
27
- .project-card__rail::-webkit-scrollbar {
28
- height: 8px;
29
- }
30
-
31
- .project-card__rail::-webkit-scrollbar-thumb {
32
- background: #b0b7c3;
33
- border-radius: 999px;
34
- }
35
-
36
- .project-card {
37
- flex: 0 0 min(420px, 88vw);
38
- scroll-snap-align: start;
39
- border-radius: var(--border-radius-md, 0.5rem);
40
- border: var(--border-width-sm, 0.1rem) solid var(--gray-200, #E5E7EB);
41
- padding: var(--spacing-md, 1.25rem);
42
- justify-content: center;
43
- align-items: flex-start;
44
- gap: var(--spacing-sm, 0.938rem);
45
- flex-shrink: 0;
46
- }
47
-
48
- .project-card__link {
49
- display: block;
50
- color: inherit;
51
- text-decoration: none;
52
- }
53
-
54
- .project-card__link:hover .project-card__title,
55
- .project-card__link:focus-visible .project-card__title {
56
- text-decoration: underline;
57
- }
58
-
59
- .project-card__wrapper {
60
- display: grid;
61
- grid-template-columns: 88px 1fr;
62
- gap: 0.9rem;
63
- align-items: start;
64
- padding-bottom: 0.563rem;
65
- border-radius: var(--border-radius-md, 0.5rem);
66
- border-bottom: 1px solid var(--gray-200, #E5E7EB);
67
- }
68
-
69
- .project-card__thumb {
70
- width: 66px;
71
- height: 66px;
72
- overflow: hidden;
73
- border-radius: var(--border-radius-base, 0.3125rem);
74
- background: var(--gray-200, #E5E7EB);
75
- padding: 0.656rem var(--spacing-2xs, 0.625rem);
76
- aspect-ratio: 1/1;
77
- }
78
-
79
- .project-card__thumb-image {
80
- width: 100%;
81
- height: 100%;
82
- object-fit: cover;
83
- display: block;
84
- }
85
-
86
- .project-card__thumb-fallback {
87
- width: 100%;
88
- height: 100%;
89
- font-size: 0.72rem;
90
- color: #5a6476;
91
- text-transform: uppercase;
92
- letter-spacing: 0.04em;
93
- }
94
-
95
- .project-card__content {
96
- min-width: 0;
97
- }
98
-
99
- .project-card__title,
100
- .project-card__organization,
101
- .project-card__category,
102
- .project-card__meta,
103
- .project-card__description {
104
- margin: 0;
105
- }
106
-
107
- .project-card__title {
108
- overflow: hidden;
109
- color: var(--gray-900, #101828);
110
- text-overflow: ellipsis;
111
- white-space: nowrap;
112
- font-size: var(--font-size-lg, 1.125rem);
113
- font-weight: var(--font-weight-bold, 600);
114
- align-self: stretch;
115
- }
116
-
117
- .project-card__organization {
118
- margin-top: 0.35rem;
119
- color: var(--gray-700, #364153);
120
- font-size: var(--font-size-sm, 0.875rem);
121
- font-weight: var(--font-weight-md, 500);
122
- overflow: hidden;
123
- text-overflow: ellipsis;
124
- display: block;
125
- line-height: 1.35;
126
- max-height: calc(1.35em * 2);
127
- align-self: stretch;
128
- }
129
-
130
- .project-card__category {
131
- font-size: var(--font-size-xxs, 0.75rem);
132
- font-weight: var(--font-weight-md, 500);
133
- }
134
-
135
- .project-card__category--project {
136
- color: var(--purple-500, #AD46FF);
137
-
138
- }
139
-
140
- .project-card__category--community {
141
- color: var(--yellow-700, #A65F00);
142
- }
143
-
144
- .project-card__category--unknown {
145
- color: var(--slate-700, #314158);
146
- }
147
-
148
- .project-card__meta {
149
- margin-top: 0.55rem;
150
- overflow-wrap: anywhere;
151
- font-size: 0.86rem;
152
- }
153
-
154
- .project-card__footer {
155
- margin-top: 0.8rem;
156
- padding: 0.75rem;
157
-
158
- }
159
-
160
- .project-card__more-button {
161
- display: none;
162
- }
163
-
164
- @media (max-width: 640px) {
165
- .project-card__rail {
166
- flex-wrap: wrap;
167
- overflow-x: visible;
168
- scroll-snap-type: none;
169
- }
170
-
171
- .project-card {
172
- flex: 1 1 100%;
173
- max-width: 100%;
174
- }
175
-
176
- .profile-section-collapsible[data-mobile-expanded="false"] .project-card:nth-child(n + 3) {
177
- display: none;
178
- }
179
-
180
- .project-card__more-button {
181
- display: inline-flex;
182
- align-items: center;
183
- justify-content: center;
184
- gap: 0.375rem;
185
- width: 100%;
186
- margin-top: 0.75rem;
187
- padding: 0;
188
- border: 0;
189
- background: transparent;
190
- color: var(--color-primary, #7C4DFF);
191
- font-size: var(--font-size-sm, 0.875rem);
192
- font-weight: var(--font-weight-bold, 600);
193
- cursor: pointer;
194
- }
195
-
196
- .project-card__more-button[data-mobile-expanded="true"] .project-card__more-icon {
197
- transform: rotate(180deg);
198
- }
199
-
200
- .project-card__more-icon {
201
- display: inline-flex;
202
- align-items: center;
203
- justify-content: center;
204
- transition: transform var(--animation-duration, 0.2s) ease;
205
- }
206
- }
@@ -1,43 +0,0 @@
1
- /* QRCodeCard.css */
2
- /* Note: Uses utilities: .text-center */
3
-
4
- /* Caption under the QR code */
5
- .qrcode-card__caption {
6
- text-align: center;
7
- margin-top: 0;
8
- padding-bottom: 0.25rem;
9
- color: var(--gray-800, #1E2939);
10
- font-size: var(--font-size-md, 1rem); /* 16px */
11
- font-weight: var(--font-weight-md, 500);
12
- }
13
-
14
- .qrcode-card {
15
- width: 136px;
16
- margin: 0 auto;
17
- height: auto;
18
- flex-shrink: 0;
19
- }
20
-
21
- .qrcode-card__frame {
22
- padding: 1rem 1rem 1.25rem 1.063rem; /* 16px 16px 20px 17px */
23
- border-radius: var(--border-radius-base, 0.3125rem); /* 5px */
24
- border: var(--border-width-thin, 0.1rem) solid var(--gray-200, #E5E7EB);
25
- background: var(--gray-100, #F3F4F6);
26
- }
27
-
28
- .qrcode-card [role="img"]:focus {
29
- outline: var(--border-width-medium, 2px) solid var(--color-primary, #7C4DFF);
30
- outline-offset: 2px;
31
- box-shadow: 0 0 0 2px rgba(124,77,255,0.2);
32
- }
33
-
34
- .qrcode-card [role="img"] {
35
- width: 136px;
36
- height: 136px;
37
- }
38
-
39
- .qrcode-card [role="img"] svg {
40
- width: 100%;
41
- height: 100%;
42
- display: block;
43
- }
@@ -1,89 +0,0 @@
1
- /* SocialCard.css */
2
- /* Uses utilities: .list-reset, .text-wrap-anywhere, .flex, .gap-sm, .gap-lg, .rounded-sm */
3
-
4
- .socialList {
5
- display: flex;
6
- flex-direction: row;
7
- flex-wrap: wrap;
8
- gap: var(--spacing-xxs);
9
- justify-content: flex-start;
10
- }
11
-
12
- .socialItem {
13
- display: flex;
14
- align-items: center;
15
- }
16
-
17
- .socialItem a {
18
- color: var(--color-primary);
19
- text-decoration: none;
20
- display: flex;
21
- align-items: center;
22
- min-height: var(--min-touch-target);
23
- padding: var(--spacing-xxs);
24
- border-radius: var(--border-radius-base);
25
- transition: background-color var(--animation-duration) ease;
26
- position: relative;
27
- flex: 1;
28
- min-width: 0;
29
- }
30
-
31
- .socialItem a:hover,
32
- .socialItem a:focus {
33
- text-decoration: underline;
34
- background-color: rgba(124, 77, 255, 0.1);
35
- }
36
-
37
- /* Screen reader only external link indication */
38
- .socialItem a[href^="http"]:after {
39
- content: " (external link)";
40
- position: absolute;
41
- left: -10000px;
42
- width: 1px;
43
- height: 1px;
44
- overflow: hidden;
45
- }
46
-
47
- .socialIcon {
48
- width: var(--icon-base);
49
- height: var(--icon-base);
50
- border-radius: var(--border-radius-base);
51
- background: var(--color-card-bg);
52
- flex-shrink: 0;
53
- }
54
-
55
- .socialCard__more-button {
56
- display: none;
57
- }
58
-
59
- @media (max-width: 1000px) {
60
- .socialCard .socialList {
61
- display: grid;
62
- grid-template-columns: repeat(5, max-content);
63
- justify-content: flex-start;
64
- }
65
-
66
- .socialCard[data-mobile-expanded="true"] .socialList {
67
- grid-template-columns: repeat(3, max-content);
68
- }
69
-
70
- .socialCard[data-mobile-expanded="false"] .socialItem:nth-child(n + 11) {
71
- display: none;
72
- }
73
-
74
- .socialCard__more-button {
75
- display: inline-flex;
76
- margin-top: var(--spacing-xs);
77
- padding: 0;
78
- border: 0;
79
- background: transparent;
80
- color: var(--color-primary, #7C4DFF);
81
- font: inherit;
82
- font-weight: 600;
83
- cursor: pointer;
84
- }
85
-
86
- .socialCard[data-mobile-expanded="true"] .socialCard__more-button {
87
- display: none;
88
- }
89
- }
@@ -1,209 +0,0 @@
1
- /* CSS for the accessible modal dialogs created by dialog.ts */
2
- /* dialog host */
3
- #profile-modal {
4
- margin: 0;
5
- padding: 0;
6
- border: none;
7
- background: rgba(0, 0, 0, 0.5);
8
- max-width: none;
9
- max-height: none;
10
- width: 100%;
11
- height: 100%;
12
- overflow: hidden;
13
- position: fixed;
14
- inset: 0;
15
- display: grid;
16
- place-items: center;
17
- z-index: 9999;
18
- }
19
-
20
- #profile-modal:not([open]) {
21
- display: none;
22
- }
23
-
24
- #profile-modal::backdrop {
25
- background: rgba(0, 0, 0, 0.5);
26
- }
27
-
28
- #profile-modal .modal {
29
- box-sizing: border-box;
30
- margin: 0;
31
- background: var(--color-background);
32
- padding: var(--spacing-lg);
33
- border-radius: var(--border-radius-base);
34
- max-width: 100%;
35
- width: min(640px, 92vw);
36
- max-height: 85vh;
37
- overflow: auto;
38
- box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
39
- }
40
-
41
- #profile-modal .modal .modal-header {
42
- display: flex;
43
- align-items: center;
44
- justify-content: space-between;
45
- gap: var(--spacing-lg);
46
- margin: calc(-1 * var(--spacing-lg)) calc(-1 * var(--spacing-lg)) var(--spacing-sm) calc(-1 * var(--spacing-lg));
47
- padding: var(--spacing-lg);
48
- border-radius: var(--border-radius-base, 0.3125rem) var(--border-radius-base, 0.3125rem) 0 0;
49
- border: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);
50
- background: var(--slate-50, #F8FAFC);
51
- }
52
-
53
- #profile-modal .modal #modal-title {
54
- margin: 0;
55
- }
56
-
57
- #profile-modal .modal #modal-header-action > button[aria-label="Close dialog"] {
58
- min-height: 2rem;
59
- min-width: 2rem;
60
- padding: 0;
61
- border: none;
62
- background: transparent;
63
- color: var(--color-text);
64
- font-size: 1.5rem;
65
- line-height: 1;
66
- cursor: pointer;
67
- }
68
-
69
- #profile-modal .modal #modal-header-action > button[aria-label="Close dialog"]:hover {
70
- color: var(--color-primary);
71
- }
72
-
73
- #profile-modal .modal #modal-header-action {
74
- display: flex;
75
- align-items: center;
76
- }
77
-
78
- #profile-modal .modal .modal__header-action-button {
79
- min-height: auto;
80
- padding: var(--spacing-xxs);
81
- border: none;
82
- background: none;
83
- color: var(--color-primary);
84
- font-weight: 500;
85
- }
86
-
87
- #profile-modal .modal .modal__header-action-button:hover {
88
- text-decoration: underline;
89
- }
90
-
91
- /* button container: center buttons horizontally (uses id in markup) */
92
- #profile-modal #modal-buttons {
93
- display: flex;
94
- padding: 20px 0 20px 30px;
95
- justify-content: flex-end;
96
- align-items: center;
97
- gap: 15px;
98
- align-self: stretch;
99
- border-top: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);
100
- background: var(--gray-50, #F9FAFB);
101
- }
102
-
103
- #profile-modal #modal-buttons button {
104
- width: 10.8rem;
105
- }
106
-
107
- #profile-modal .modal__error-section {
108
- margin-top: var(--spacing-sm);
109
- }
110
-
111
- #profile-modal .modal__error-section[hidden] {
112
- display: none !important;
113
- }
114
-
115
-
116
- /* buttons themselves use the shared btn-primary rules */
117
- #profile-modal .modal button {
118
- min-height: var(--min-touch-target);
119
- padding: var(--spacing-sm) var(--spacing-md);
120
- border: 1px solid var(--color-primary);
121
- border-radius: var(--border-radius-base);
122
- font-weight: 600;
123
- cursor: pointer;
124
- transition: all var(--animation-duration) ease;
125
- }
126
-
127
- #profile-modal .modal button.btn-primary {
128
- background: var(--color-primary);
129
- color: var(--white, #FFF);
130
- font-size: var(--font-size-lg, 1.125rem); /* 18px */
131
- font-weight: var(--font-weight-bold, 600);
132
- }
133
-
134
- #profile-modal .modal button.btn-primary:hover {
135
- background: color-mix(in srgb, var(--color-primary) 90%, black);
136
- box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);
137
- }
138
-
139
- #profile-modal .modal button.btn-primary:active {
140
- box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);
141
- }
142
-
143
- #profile-modal .modal button:disabled {
144
- opacity: var(--opacity-disabled, 0.6);
145
- cursor: not-allowed;
146
- transform: none;
147
- }
148
-
149
- /* Keep text-style actions in section headers while preserving footer button styling. */
150
- #profile-modal .modal .profile__section-header .profile__action-button {
151
- min-height: auto;
152
- padding: var(--spacing-xxs);
153
- border: none;
154
- background: none;
155
- color: var(--color-primary);
156
- font-weight: 500;
157
- }
158
-
159
- #profile-modal .modal .profile__section-header .profile__action-button:hover {
160
- text-decoration: underline;
161
- }
162
-
163
- @media (max-width: 640px) {
164
- #profile-modal {
165
- padding-top: max(var(--spacing-sm), env(safe-area-inset-top));
166
- padding-right: var(--spacing-sm);
167
- padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom));
168
- padding-left: var(--spacing-sm);
169
- place-items: center;
170
- }
171
-
172
- #profile-modal .modal {
173
- width: min(420px, calc(100% - 2 * var(--spacing-sm)));
174
- max-width: 420px;
175
- max-height: calc(100dvh - 2 * var(--spacing-sm));
176
- padding: var(--spacing-md);
177
- border-radius: calc(var(--border-radius-base) * 0.75);
178
- overscroll-behavior: contain;
179
- justify-self: center;
180
- align-self: center;
181
- margin: 0;
182
- }
183
-
184
- #profile-modal .modal .modal-header {
185
- gap: var(--spacing-md);
186
- margin: calc(-1 * var(--spacing-md)) calc(-1 * var(--spacing-md)) var(--spacing-sm) calc(-1 * var(--spacing-md));
187
- padding: var(--spacing-md);
188
- }
189
-
190
- #profile-modal #modal-buttons {
191
- flex-direction: row;
192
- align-items: center;
193
- justify-content: center;
194
- gap: var(--spacing-sm, 0.938rem);
195
- padding: var(--spacing-md) 0 0;
196
- margin: var(--spacing-md) auto 0;
197
- box-sizing: border-box;
198
- width: 100%;
199
- }
200
-
201
- #profile-modal #modal-buttons button {
202
- flex: 0 0 auto;
203
- width: 10.8rem;
204
- min-width: 8.5rem;
205
- padding: var(--spacing-sm) var(--spacing-md);
206
- font-size: var(--font-size-md, 1rem);
207
- }
208
-
209
- }