profile-pane 3.2.3-1 → 3.2.3-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/lib/ProfileView.css +73 -236
  2. package/lib/ProfileView.d.ts +2 -1
  3. package/lib/ProfileView.d.ts.map +1 -1
  4. package/lib/ProfileView.js +19 -18
  5. package/lib/index.d.ts.map +1 -1
  6. package/lib/index.js +35 -35
  7. package/lib/profile-pane.js +16896 -25053
  8. package/lib/profile-pane.js.map +1 -1
  9. package/lib/profile-pane.min.js +826 -1185
  10. package/lib/profile-pane.min.js.map +1 -1
  11. package/lib/sections/bio/BioSection.css +16 -123
  12. package/lib/sections/bio/BioSection.d.ts +2 -2
  13. package/lib/sections/bio/BioSection.d.ts.map +1 -1
  14. package/lib/sections/bio/BioSection.js +23 -32
  15. package/lib/sections/contactInfo/ContactInfoEditDialog.css +33 -66
  16. package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
  17. package/lib/sections/contactInfo/ContactInfoEditDialog.js +15 -39
  18. package/lib/sections/contactInfo/ContactInfoSection.css +7 -7
  19. package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -2
  20. package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
  21. package/lib/sections/contactInfo/ContactInfoSection.js +34 -49
  22. package/lib/sections/education/EducationSection.d.ts +1 -1
  23. package/lib/sections/education/EducationSection.d.ts.map +1 -1
  24. package/lib/sections/education/EducationSection.js +2 -3
  25. package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
  26. package/lib/sections/heading/HeadingEditDialog.js +1 -9
  27. package/lib/sections/heading/HeadingSection.css +122 -346
  28. package/lib/sections/heading/HeadingSection.d.ts +2 -3
  29. package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
  30. package/lib/sections/heading/HeadingSection.js +13 -19
  31. package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
  32. package/lib/sections/languages/LanguageEditDialog.js +7 -8
  33. package/lib/sections/languages/LanguageSection.css +6 -6
  34. package/lib/sections/languages/LanguageSection.d.ts +2 -2
  35. package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
  36. package/lib/sections/languages/LanguageSection.js +33 -49
  37. package/lib/sections/projects/ProjectEditDialog.d.ts +0 -1
  38. package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
  39. package/lib/sections/projects/ProjectEditDialog.js +2 -6
  40. package/lib/sections/projects/ProjectSection.css +36 -94
  41. package/lib/sections/projects/ProjectSection.d.ts +2 -2
  42. package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
  43. package/lib/sections/projects/ProjectSection.js +28 -49
  44. package/lib/sections/resume/ResumeEditDialog.d.ts +0 -1
  45. package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
  46. package/lib/sections/resume/ResumeEditDialog.js +20 -40
  47. package/lib/sections/resume/ResumeSection.css +51 -133
  48. package/lib/sections/resume/ResumeSection.d.ts +3 -3
  49. package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
  50. package/lib/sections/resume/ResumeSection.js +28 -42
  51. package/lib/sections/shared/sectionCardHelpers.js +15 -15
  52. package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
  53. package/lib/sections/skills/SkillsEditDialog.js +1 -3
  54. package/lib/sections/skills/SkillsSection.css +20 -67
  55. package/lib/sections/skills/SkillsSection.d.ts +2 -2
  56. package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
  57. package/lib/sections/skills/SkillsSection.js +36 -55
  58. package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
  59. package/lib/sections/social/SocialEditDialog.js +4 -9
  60. package/lib/sections/social/SocialSection.css +19 -70
  61. package/lib/sections/social/SocialSection.d.ts +2 -2
  62. package/lib/sections/social/SocialSection.d.ts.map +1 -1
  63. package/lib/sections/social/SocialSection.js +37 -61
  64. package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -1
  65. package/lib/specialButtons/addMeToYourFriends.js +0 -2
  66. package/lib/styles/CollapsibleSection.css +39 -223
  67. package/lib/styles/EditDialogs.css +90 -284
  68. package/lib/styles/EditDialogs.responsive.css +72 -147
  69. package/lib/types.d.ts +1 -0
  70. package/lib/types.d.ts.map +1 -1
  71. package/lib/ui/dialog.css +18 -89
  72. package/lib/ui/dialog.d.ts.map +1 -1
  73. package/lib/ui/dialog.js +5 -9
  74. package/lib/ui/dialog.responsive.css +31 -34
  75. package/lib/ui/responsiveActionButton.d.ts +19 -0
  76. package/lib/ui/responsiveActionButton.d.ts.map +1 -0
  77. package/lib/ui/responsiveActionButton.js +34 -0
  78. package/lib/utils/resize.d.ts +2 -0
  79. package/lib/utils/resize.d.ts.map +1 -0
  80. package/lib/utils/resize.js +40 -0
  81. package/package.json +11 -13
  82. package/lib/303.profile-pane.js +0 -1362
  83. package/lib/303.profile-pane.js.map +0 -1
  84. package/lib/303.profile-pane.min.js +0 -2
  85. package/lib/303.profile-pane.min.js.map +0 -1
  86. package/lib/specialButtons/addContact/AddMeToYourContacts.css +0 -1118
  87. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +0 -10
  88. package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +0 -1
  89. package/lib/specialButtons/addContact/ContactCreationDialog.js +0 -1123
  90. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +0 -16
  91. package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +0 -1
  92. package/lib/specialButtons/addContact/addMeToYourContacts.js +0 -136
  93. package/lib/specialButtons/addContact/contactsErrors.d.ts +0 -8
  94. package/lib/specialButtons/addContact/contactsErrors.d.ts.map +0 -1
  95. package/lib/specialButtons/addContact/contactsErrors.js +0 -106
  96. package/lib/specialButtons/addContact/contactsTypes.d.ts +0 -43
  97. package/lib/specialButtons/addContact/contactsTypes.d.ts.map +0 -1
  98. package/lib/specialButtons/addContact/contactsTypes.js +0 -5
  99. package/lib/specialButtons/addContact/helpers.d.ts +0 -7
  100. package/lib/specialButtons/addContact/helpers.d.ts.map +0 -1
  101. package/lib/specialButtons/addContact/helpers.js +0 -103
  102. package/lib/specialButtons/addContact/mutations.d.ts +0 -16
  103. package/lib/specialButtons/addContact/mutations.d.ts.map +0 -1
  104. package/lib/specialButtons/addContact/mutations.js +0 -300
  105. package/lib/specialButtons/addContact/selectors.d.ts +0 -10
  106. package/lib/specialButtons/addContact/selectors.d.ts.map +0 -1
  107. package/lib/specialButtons/addContact/selectors.js +0 -163
@@ -12,6 +12,7 @@ var _texts = require("../../texts");
12
12
  var _SocialEditDialog = require("./SocialEditDialog");
13
13
  var _collapsibleSection = require("../shared/collapsibleSection");
14
14
  var _profileIcons = require("../../icons-svg/profileIcons");
15
+ var _responsiveActionButton = require("../../ui/responsiveActionButton");
15
16
  const MAX_VISIBLE_SOCIAL_ACCOUNTS_MOBILE = 10;
16
17
  function isRenderableAccount(account) {
17
18
  return Boolean(account?.homepage && account?.name && account?.icon);
@@ -42,10 +43,7 @@ const SocialCard = (SocialData, _viewerMode) => {
42
43
  </nav>
43
44
  ${hiddenAccountsCount > 0 ? (0, _litHtml.html)`
44
45
  <solid-ui-button
45
- type="button"
46
- variant="secondary"
47
- size="sm"
48
- label=${`${hiddenAccountsCount} more`}
46
+ variant="tertiary"
49
47
  class="social-card__more-button"
50
48
  aria-controls="social-media"
51
49
  aria-expanded="false"
@@ -88,14 +86,9 @@ function renderSocialSectionContent(socialData, viewerMode) {
88
86
  ${hasAccounts ? SocialCard(socialData, viewerMode) : (0, _litHtml.html)`<p>No social accounts added yet.</p>`}
89
87
  `;
90
88
  }
91
- function renderSocialSectionDefault(store, subject, socialData, viewerMode, onSaved) {
92
- // const hasAccounts = socialData.accounts && socialData.accounts.length > 0
93
- const showSection = true;
89
+ function renderSocialSectionDefault(store, subject, socialData, viewerMode, layout, onSaved) {
94
90
  const isOwner = viewerMode === 'owner';
95
- const handleEdit = event => {
96
- return (0, _SocialEditDialog.createSocialEditDialog)(event, store, subject, socialData.accounts, viewerMode, onSaved);
97
- };
98
- return showSection ? (0, _litHtml.html)`
91
+ return (0, _litHtml.html)`
99
92
  <section
100
93
  aria-labelledby="social-heading"
101
94
  data-profile-section="social"
@@ -107,26 +100,19 @@ function renderSocialSectionDefault(store, subject, socialData, viewerMode, onSa
107
100
  <header class="profile__section-header profile-section-collapsible__header">
108
101
  <h3 id="social-heading" tabindex="-1">${_texts.socialAccountsHeadingText}</h3>
109
102
  <div class="profile-section-collapsible__actions">
110
- ${isOwner ? (0, _litHtml.html)`
111
- <solid-ui-button
112
- type="button"
113
- variant="secondary"
114
- size="sm"
115
- class="profile__action-button profile-action-text profile-section-collapsible__edit-button"
116
- aria-label="Edit social accounts"
117
- @click=${handleEdit}
118
- >
119
- <span class="profile-section-collapsible__edit-label profile__add-more-content">
120
- <span class="profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>
121
- <span>Add More</span>
122
- </span>
123
- <span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
124
- </solid-ui-button>
125
- ` : (0, _litHtml.html)``}
103
+ ${isOwner ? (0, _litHtml.html)`
104
+ ${(0, _responsiveActionButton.renderResponsiveActionButton)({
105
+ layout,
106
+ className: 'profile-section-collapsible__edit-button',
107
+ ariaLabel: 'Edit social accounts',
108
+ onClick: event => (0, _SocialEditDialog.createSocialEditDialog)(event, store, subject, socialData.accounts, viewerMode, onSaved),
109
+ desktopIcon: (0, _litHtml.html)`<span slot="left-icon" class="profile-section-collapsible__action-label profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>`,
110
+ desktopLabel: 'Add More',
111
+ mobileIcon: (0, _litHtml.html)`<span slot="icon" class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`
112
+ })}
113
+ ` : _litHtml.nothing}
126
114
  <solid-ui-button
127
- type="button"
128
- variant="icon"
129
- size="sm"
115
+ variant="ghost"
130
116
  class="profile-section-collapsible__toggle-button"
131
117
  aria-label="Toggle social accounts section"
132
118
  aria-controls="social-panel"
@@ -141,21 +127,18 @@ function renderSocialSectionDefault(store, subject, socialData, viewerMode, onSa
141
127
  ${renderSocialSectionContent(socialData, viewerMode)}
142
128
  </div>
143
129
  </section>
144
- ` : (0, _litHtml.html)``;
130
+ `;
145
131
  }
146
- function renderOwnerEmptySocialContent(_store, _subject, _socialData, _viewerMode, _onSaved) {
132
+ function renderOwnerEmptySocialContent() {
147
133
  return (0, _litHtml.html)`
148
134
  <div class="profile__empty-state-content" role="group" aria-label="Empty social accounts section">
149
135
  <div class="social__empty-icon-wrapper">
150
136
  <span class="social__empty-icon">${_profileIcons.globeIcon}</span>
151
137
  </div>
152
- <p class="profile__empty-state-message social__empty-message">
153
- No social media links added yet.
154
- </p>
155
138
  </div>
156
139
  `;
157
140
  }
158
- function renderOwnerEmptySocialSection(store, subject, socialData, viewerMode, onSaved) {
141
+ function renderOwnerEmptySocialSection(store, subject, socialData, viewerMode, layout, onSaved) {
159
142
  return (0, _litHtml.html)`
160
143
  <section
161
144
  aria-labelledby="social-heading"
@@ -168,26 +151,19 @@ function renderOwnerEmptySocialSection(store, subject, socialData, viewerMode, o
168
151
  <header class="profile__section-header profile-section-collapsible__header">
169
152
  <h3 id="social-heading" tabindex="-1">${_texts.socialAccountsHeadingText}</h3>
170
153
  <div class="profile-section-collapsible__actions">
154
+ ${(0, _responsiveActionButton.renderResponsiveActionButton)({
155
+ layout,
156
+ className: 'profile-section-collapsible__edit-button',
157
+ ariaLabel: 'Add social accounts',
158
+ onClick: event => {
159
+ return (0, _SocialEditDialog.createSocialEditDialog)(event, store, subject, socialData.accounts, viewerMode, onSaved);
160
+ },
161
+ desktopIcon: (0, _litHtml.html)`<span slot="left-icon" class="profile-section-collapsible__action-label profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>`,
162
+ desktopLabel: 'Add More',
163
+ mobileIcon: (0, _litHtml.html)`<span slot="icon" class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`
164
+ })}
171
165
  <solid-ui-button
172
- type="button"
173
- variant="secondary"
174
- size="sm"
175
- class="profile__action-button profile-action-text profile-section-collapsible__edit-button"
176
- aria-label="Add social accounts"
177
- @click=${event => {
178
- return (0, _SocialEditDialog.createSocialEditDialog)(event, store, subject, socialData.accounts, viewerMode, onSaved);
179
- }}
180
- >
181
- <span class="profile-section-collapsible__edit-label profile__add-more-content">
182
- <span class="profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>
183
- <span>Add More</span>
184
- </span>
185
- <span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
186
- </solid-ui-button>
187
- <solid-ui-button
188
- type="button"
189
- variant="icon"
190
- size="sm"
166
+ variant="ghost"
191
167
  class="profile-section-collapsible__toggle-button"
192
168
  aria-label="Toggle social accounts section"
193
169
  aria-controls="social-panel"
@@ -199,19 +175,19 @@ function renderOwnerEmptySocialSection(store, subject, socialData, viewerMode, o
199
175
  </div>
200
176
  </header>
201
177
  <div id="social-panel" class="profile-section-collapsible__content">
202
- ${renderOwnerEmptySocialContent(store, subject, socialData, viewerMode, onSaved)}
178
+ ${renderOwnerEmptySocialContent()}
203
179
  </div>
204
180
  </section>
205
181
  `;
206
182
  }
207
- function renderSocialSection(store, subject, socialData, viewerMode, onSaved) {
183
+ function renderSocialSection(store, subject, socialData, viewerMode, layout, onSaved) {
184
+ const currentLayout = layout || 'desktop';
208
185
  const safeSocialData = socialData || {
209
186
  accounts: []
210
187
  };
211
188
  const hasAccounts = Array.isArray(safeSocialData.accounts) && safeSocialData.accounts.length > 0;
212
189
  const showOwnerEmptyAccounts = !hasAccounts && viewerMode === 'owner';
213
- const showSection = true;
214
- return showSection ? (0, _litHtml.html)`
215
- ${showOwnerEmptyAccounts ? renderOwnerEmptySocialSection(store, subject, safeSocialData, viewerMode, onSaved) : renderSocialSectionDefault(store, subject, safeSocialData, viewerMode, onSaved)}
216
- ` : '';
190
+ return (0, _litHtml.html)`
191
+ ${showOwnerEmptyAccounts ? renderOwnerEmptySocialSection(store, subject, safeSocialData, viewerMode, currentLayout, onSaved) : renderSocialSectionDefault(store, subject, safeSocialData, viewerMode, currentLayout, onSaved)}
192
+ `;
217
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addMeToYourFriends.d.ts","sourceRoot":"","sources":["../../src/specialButtons/addMeToYourFriends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAM,MAAM,QAAQ,CAAA;AASjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,0BAA0B,CAAA;AAyBjC,QAAA,MAAM,qBAAqB,GACzB,SAAS,SAAS,EAClB,SAAS,kBAAkB,EAC3B,aAAa,UAAU,KACtB,cAkBF,CAAA;AAED,QAAA,MAAM,8BAA8B,GAClC,SAAS,SAAS,EAClB,SAAS,kBAAkB,KAC1B,oBA8DF,CAAA;AAED,iBAAe,YAAY,CACzB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAOD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,YAAY,EACZ,kBAAkB,EACnB,CAAA"}
1
+ {"version":3,"file":"addMeToYourFriends.d.ts","sourceRoot":"","sources":["../../src/specialButtons/addMeToYourFriends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAM,MAAM,QAAQ,CAAA;AASjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,0BAA0B,CAAA;AAyBjC,QAAA,MAAM,qBAAqB,GACzB,SAAS,SAAS,EAClB,SAAS,kBAAkB,EAC3B,aAAa,UAAU,KACtB,cAkBF,CAAA;AAED,QAAA,MAAM,8BAA8B,GAClC,SAAS,SAAS,EAClB,SAAS,kBAAkB,KAC1B,oBA4DF,CAAA;AAED,iBAAe,YAAY,CACzB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAOD,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,OAAO,EACL,qBAAqB,EACrB,8BAA8B,EAC9B,YAAY,EACZ,kBAAkB,EACnB,CAAA"}
@@ -56,9 +56,7 @@ exports.addMeToYourFriendsDiv = addMeToYourFriendsDiv;
56
56
  const createAddMeToYourFriendsButton = (subject, context) => {
57
57
  let label = _texts.addMeToYourFriendsButtonText;
58
58
  const button = context.dom.createElement('solid-ui-button');
59
- button.setAttribute('type', 'button');
60
59
  button.setAttribute('variant', 'secondary');
61
- button.setAttribute('size', 'sm');
62
60
  setAddToFriendsButtonLabel(button, label);
63
61
  button.addEventListener('click', setButtonHandler);
64
62
  function setButtonHandler(event) {
@@ -1,13 +1,10 @@
1
- /* Collapsible section styles for the main profile pane. */
2
-
3
- /* Base structure */
4
1
  .profile-section-collapsible {
5
2
  display: block;
6
3
  }
7
4
 
8
5
  .profile__section--empty.profile-section-collapsible {
9
- gap: var(--spacing-lg, 1.5625rem);
10
- border-radius: var(--border-radius-md, 0.5rem);
6
+ gap: 25px;
7
+ border-radius: 8px;
11
8
  }
12
9
 
13
10
  .profile-section-collapsible__header {
@@ -31,49 +28,22 @@
31
28
 
32
29
  /* Actions */
33
30
  .profile-section-collapsible__actions {
34
- --profile-section-collapsible-action-button-text: var(--color-primary, #7C4DFF);
35
- --profile-section-collapsible-action-button-hover-background: var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff));
36
- --profile-section-collapsible-edit-icon-size: 0.75rem;
37
- --profile-section-collapsible-mobile-action-gap: 0.25rem;
38
- --profile-section-collapsible-chevron-width: 0.75rem;
39
- --profile-section-collapsible-chevron-height: 0.4375rem;
31
+ --profile-section-collapsible-mobile-action-gap: 4px;
40
32
  display: flex;
41
33
  flex-direction: column;
42
34
  align-items: flex-end;
43
- gap: var(--spacing-xs, 0.75rem);
44
- margin-top: -0.25rem;
35
+ gap: 12px;
36
+ margin-top: -4px;
45
37
  }
46
38
 
47
39
  .profile-section-collapsible__edit-button {
48
40
  min-width: 0;
49
- align-items: center;
50
- justify-content: center;
51
- border-radius: var(--border-radius-sm, 0.2rem);
52
- --button-border-radius: var(--border-radius-sm, 0.2rem);
53
41
  }
54
42
 
55
43
  .profile-section-collapsible__toggle-button {
56
44
  display: none !important;
57
- align-items: center;
58
- justify-content: center;
59
- min-height: auto;
60
- min-width: auto;
61
- padding: var(--spacing-xxs, 0.3125rem);
62
- border-radius: var(--border-radius-sm, 0.2rem);
63
- border: none;
64
- background: none;
65
- color: var(--profile-section-collapsible-action-button-text);
66
- cursor: var(--profile-interactive-cursor, pointer);
67
- --button-border-radius: var(--border-radius-sm, 0.2rem);
68
- --button-height-sm: 0;
69
- --button-padding-sm: var(--spacing-xxs, 0.3125rem);
70
- --button-background: transparent;
71
- --button-border-width: 0;
72
- --button-border: transparent;
73
- --button-text: var(--profile-section-collapsible-action-button-text);
74
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
75
- --button-hover-border: transparent;
76
- --button-hover-text: var(--profile-section-collapsible-action-button-text);
45
+ width: var(--solid-ui-clickable-area, 42px);
46
+ height: var(--solid-ui-clickable-area, 42px);
77
47
  }
78
48
 
79
49
  /* Icons */
@@ -81,18 +51,10 @@
81
51
  display: none;
82
52
  }
83
53
 
84
- .profile-section-collapsible__edit-icon,
85
- .profile-section-collapsible__edit-icon svg {
86
- line-height: 0;
87
- }
88
-
89
54
  .profile-section-collapsible__chevron {
90
- display: inline-flex;
91
55
  flex: 0 0 auto;
92
- align-items: center;
93
- justify-content: center;
94
- width: var(--profile-section-collapsible-chevron-width);
95
- height: var(--profile-section-collapsible-chevron-height);
56
+ width: 0.75rem;
57
+ height: 0.4375rem;
96
58
  line-height: 0;
97
59
  transition: transform var(--animation-duration, 0.2s) ease;
98
60
  }
@@ -104,14 +66,7 @@
104
66
  }
105
67
 
106
68
  .profile-section-collapsible__edit-icon--add svg path {
107
- fill: var(--color-text-strong, var(--gray-800, #1E2939)) !important;
108
- stroke: var(--color-text-strong, var(--gray-800, #1E2939)) !important;
109
- }
110
-
111
- .profile-section-collapsible__edit-icon--projects svg path {
112
- stroke-width: 1.714px !important;
113
- stroke: var(--color-text-strong, var(--gray-800, #1E2939)) !important;
114
- fill: none !important;
69
+ fill: var(--solid-ui-color-gray-800, #1E2939) !important;
115
70
  }
116
71
 
117
72
  /* App-driven mobile layout when the host/root explicitly sets data-layout. */
@@ -129,82 +84,39 @@
129
84
  flex: 0 0 auto;
130
85
  }
131
86
 
132
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__edit-button,
133
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {
134
- --button-background: transparent;
135
- --button-border-width: 0;
136
- --button-border: transparent;
137
- --button-text: var(--profile-section-collapsible-action-button-text);
138
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
139
- --button-hover-border: transparent;
140
- --button-hover-text: var(--profile-section-collapsible-action-button-text);
141
- }
142
-
143
87
  :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {
144
88
  display: inline-flex !important;
145
89
  order: 1;
146
90
  }
147
91
 
148
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button,
149
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button,
150
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__toggle-button {
151
- min-width: var(--min-touch-target, 44px);
152
- min-height: var(--min-touch-target, 44px);
153
- --button-width-sm: var(--min-touch-target, 44px);
154
- --button-height-sm: var(--min-touch-target, 44px);
155
- }
156
-
157
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.profile-section-collapsible__edit-button::part(button) {
158
- width: var(--min-touch-target, 44px);
159
- min-width: var(--min-touch-target, 44px);
160
- }
161
-
162
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):hover,
163
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):focus,
164
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):focus-visible {
165
- background: var(--profile-section-collapsible-action-button-hover-background);
166
- text-decoration: none;
167
- }
168
-
169
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.profile-action-text.profile-section-collapsible__edit-button {
170
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
171
- }
172
-
173
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,
174
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,
175
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {
176
- border: none !important;
177
- outline: none !important;
178
- box-shadow: none !important;
179
- background: transparent !important;
92
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__actions.flex-column {
93
+ gap: var(--profile-section-collapsible-mobile-action-gap);
180
94
  }
181
95
 
182
96
  :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__toggle-button {
183
97
  order: 2;
184
98
  }
185
99
 
186
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {
187
- display: none;
100
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__edit-button,
101
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__toggle-button {
102
+ width: var(--solid-ui-clickable-area, 42px);
103
+ height: var(--solid-ui-clickable-area, 42px);
188
104
  }
189
105
 
190
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__actions.flex-column {
191
- gap: var(--profile-section-collapsible-mobile-action-gap);
106
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {
107
+ display: none;
192
108
  }
193
109
 
194
110
  :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__chevron {
195
111
  transform: rotate(180deg);
196
112
  }
197
113
 
198
- :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__edit-label {
114
+ :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__action-label {
199
115
  display: none !important;
200
116
  }
201
117
 
202
118
  :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible__edit-icon {
203
119
  display: inline-flex;
204
- align-items: center;
205
- justify-content: center;
206
- width: var(--profile-section-collapsible-edit-icon-size);
207
- height: var(--profile-section-collapsible-edit-icon-size);
208
120
  }
209
121
 
210
122
  :is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile-section-collapsible .profile-section-collapsible__edit-button {
@@ -230,7 +142,7 @@
230
142
  display: block;
231
143
  }
232
144
 
233
- .profile-section-collapsible__edit-label svg,
145
+ .profile-section-collapsible__action-label svg,
234
146
  .profile__action-icon svg {
235
147
  width: 0.75rem;
236
148
  height: 0.75rem;
@@ -238,15 +150,11 @@
238
150
  top: 0;
239
151
  }
240
152
 
241
- .profile-section-collapsible__edit-label {
242
- color: var(--profile-section-collapsible-action-button-text);
243
- }
244
-
245
- .profile-section-collapsible__edit-label svg path {
153
+ .profile-section-collapsible__action-label svg path {
246
154
  fill: currentColor;
247
155
  }
248
156
 
249
- .profile-section-collapsible__edit-label {
157
+ .profile-section-collapsible__action-label {
250
158
  display: inline-flex;
251
159
  align-items: center;
252
160
  gap: var(--spacing-xxs, 0.3125rem);
@@ -264,7 +172,7 @@
264
172
  display: block;
265
173
  }
266
174
 
267
- .profile-section-collapsible__edit-label svg,
175
+ .profile-section-collapsible__action-label svg,
268
176
  .profile__action-icon svg {
269
177
  width: 0.75rem;
270
178
  height: 0.75rem;
@@ -272,15 +180,11 @@
272
180
  top: 0;
273
181
  }
274
182
 
275
- .profile-section-collapsible__edit-label {
276
- color: var(--profile-section-collapsible-action-button-text);
277
- }
278
-
279
- .profile-section-collapsible__edit-label svg path {
183
+ .profile-section-collapsible__action-label svg path {
280
184
  fill: currentColor;
281
185
  }
282
186
 
283
- .profile-section-collapsible__edit-label {
187
+ .profile-section-collapsible__action-label {
284
188
  display: inline-flex;
285
189
  align-items: center;
286
190
  gap: var(--spacing-xxs, 0.3125rem);
@@ -308,61 +212,21 @@
308
212
  flex: 0 0 auto;
309
213
  }
310
214
 
311
- .profile-section-collapsible__edit-button,
312
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {
313
- --button-background: transparent;
314
- --button-border-width: 0;
315
- --button-border: transparent;
316
- --button-text: var(--profile-section-collapsible-action-button-text);
317
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
318
- --button-hover-border: transparent;
319
- --button-hover-text: var(--profile-section-collapsible-action-button-text);
320
- }
321
-
322
215
  .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {
323
216
  display: inline-flex !important;
324
217
  order: 1;
325
218
  }
326
219
 
327
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button,
328
- .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button,
329
- .profile-section-collapsible__toggle-button {
330
- min-width: var(--min-touch-target, 44px);
331
- min-height: var(--min-touch-target, 44px);
332
- --button-width-sm: var(--min-touch-target, 44px);
333
- --button-height-sm: var(--min-touch-target, 44px);
334
- }
335
-
336
- .profile-section-collapsible--inline-mobile-actions solid-ui-button.profile-section-collapsible__edit-button::part(button),
337
- .profile-section-collapsible[data-expanded="true"] solid-ui-button.profile-section-collapsible__edit-button::part(button) {
338
- width: var(--min-touch-target, 44px);
339
- min-width: var(--min-touch-target, 44px);
340
- }
341
-
342
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):hover,
343
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):focus,
344
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):focus-visible {
345
- background: var(--profile-section-collapsible-action-button-hover-background);
346
- text-decoration: none;
347
- }
348
-
349
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button {
350
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
351
- }
352
-
353
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,
354
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,
355
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {
356
- border: none !important;
357
- outline: none !important;
358
- box-shadow: none !important;
359
- background: transparent !important;
360
- }
361
-
362
220
  .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__toggle-button {
363
221
  order: 2;
364
222
  }
365
223
 
224
+ .profile-section-collapsible__edit-button,
225
+ .profile-section-collapsible__toggle-button {
226
+ width: var(--solid-ui-clickable-area, 42px);
227
+ height: var(--solid-ui-clickable-area, 42px);
228
+ }
229
+
366
230
  .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {
367
231
  display: none;
368
232
  }
@@ -375,16 +239,12 @@
375
239
  transform: rotate(180deg);
376
240
  }
377
241
 
378
- .profile-section-collapsible__edit-label {
242
+ .profile-section-collapsible__action-label {
379
243
  display: none !important;
380
244
  }
381
245
 
382
246
  .profile-section-collapsible__edit-icon {
383
247
  display: inline-flex;
384
- align-items: center;
385
- justify-content: center;
386
- width: var(--profile-section-collapsible-edit-icon-size);
387
- height: var(--profile-section-collapsible-edit-icon-size);
388
248
  }
389
249
 
390
250
  .profile-section-collapsible .profile-section-collapsible__edit-button {
@@ -421,61 +281,21 @@
421
281
  flex: 0 0 auto;
422
282
  }
423
283
 
424
- .profile-section-collapsible__edit-button,
425
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {
426
- --button-background: transparent;
427
- --button-border-width: 0;
428
- --button-border: transparent;
429
- --button-text: var(--profile-section-collapsible-action-button-text);
430
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
431
- --button-hover-border: transparent;
432
- --button-hover-text: var(--profile-section-collapsible-action-button-text);
433
- }
434
-
435
284
  .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {
436
285
  display: inline-flex !important;
437
286
  order: 1;
438
287
  }
439
288
 
440
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button,
441
- .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button,
442
- .profile-section-collapsible__toggle-button {
443
- min-width: var(--min-touch-target, 44px);
444
- min-height: var(--min-touch-target, 44px);
445
- --button-width-sm: var(--min-touch-target, 44px);
446
- --button-height-sm: var(--min-touch-target, 44px);
447
- }
448
-
449
- .profile-section-collapsible--inline-mobile-actions solid-ui-button.profile-section-collapsible__edit-button::part(button),
450
- .profile-section-collapsible[data-expanded="true"] solid-ui-button.profile-section-collapsible__edit-button::part(button) {
451
- width: var(--min-touch-target, 44px);
452
- min-width: var(--min-touch-target, 44px);
453
- }
454
-
455
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):hover,
456
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):focus,
457
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button::part(button):focus-visible {
458
- background: var(--profile-section-collapsible-action-button-hover-background);
459
- text-decoration: none;
460
- }
461
-
462
- solid-ui-button.profile-action-text.profile-section-collapsible__edit-button {
463
- --button-hover-background: var(--profile-section-collapsible-action-button-hover-background);
464
- }
465
-
466
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,
467
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,
468
- .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {
469
- border: none !important;
470
- outline: none !important;
471
- box-shadow: none !important;
472
- background: transparent !important;
473
- }
474
-
475
289
  .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__toggle-button {
476
290
  order: 2;
477
291
  }
478
292
 
293
+ .profile-section-collapsible__edit-button,
294
+ .profile-section-collapsible__toggle-button {
295
+ width: var(--solid-ui-clickable-area, 42px);
296
+ height: var(--solid-ui-clickable-area, 42px);
297
+ }
298
+
479
299
  .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {
480
300
  display: none;
481
301
  }
@@ -488,16 +308,12 @@
488
308
  transform: rotate(180deg);
489
309
  }
490
310
 
491
- .profile-section-collapsible__edit-label {
311
+ .profile-section-collapsible__action-label {
492
312
  display: none !important;
493
313
  }
494
314
 
495
315
  .profile-section-collapsible__edit-icon {
496
316
  display: inline-flex;
497
- align-items: center;
498
- justify-content: center;
499
- width: var(--profile-section-collapsible-edit-icon-size);
500
- height: var(--profile-section-collapsible-edit-icon-size);
501
317
  }
502
318
 
503
319
  .profile-section-collapsible .profile-section-collapsible__edit-button {