profile-pane 3.2.3-0 → 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.
- package/lib/ProfileView.css +73 -236
- package/lib/ProfileView.d.ts +2 -1
- package/lib/ProfileView.d.ts.map +1 -1
- package/lib/ProfileView.js +19 -18
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +35 -35
- package/lib/profile-pane.js +17229 -25377
- package/lib/profile-pane.js.map +1 -1
- package/lib/profile-pane.min.js +809 -1579
- package/lib/profile-pane.min.js.map +1 -1
- package/lib/sections/bio/BioSection.css +16 -123
- package/lib/sections/bio/BioSection.d.ts +2 -2
- package/lib/sections/bio/BioSection.d.ts.map +1 -1
- package/lib/sections/bio/BioSection.js +23 -32
- package/lib/sections/contactInfo/ContactInfoEditDialog.css +33 -66
- package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -1
- package/lib/sections/contactInfo/ContactInfoEditDialog.js +15 -39
- package/lib/sections/contactInfo/ContactInfoSection.css +7 -7
- package/lib/sections/contactInfo/ContactInfoSection.d.ts +2 -2
- package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -1
- package/lib/sections/contactInfo/ContactInfoSection.js +34 -49
- package/lib/sections/education/EducationSection.d.ts +1 -1
- package/lib/sections/education/EducationSection.d.ts.map +1 -1
- package/lib/sections/education/EducationSection.js +2 -3
- package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -1
- package/lib/sections/heading/HeadingEditDialog.js +1 -9
- package/lib/sections/heading/HeadingSection.css +122 -346
- package/lib/sections/heading/HeadingSection.d.ts +2 -3
- package/lib/sections/heading/HeadingSection.d.ts.map +1 -1
- package/lib/sections/heading/HeadingSection.js +13 -19
- package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -1
- package/lib/sections/languages/LanguageEditDialog.js +7 -8
- package/lib/sections/languages/LanguageSection.css +6 -6
- package/lib/sections/languages/LanguageSection.d.ts +2 -2
- package/lib/sections/languages/LanguageSection.d.ts.map +1 -1
- package/lib/sections/languages/LanguageSection.js +33 -49
- package/lib/sections/projects/ProjectEditDialog.d.ts +0 -1
- package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -1
- package/lib/sections/projects/ProjectEditDialog.js +2 -6
- package/lib/sections/projects/ProjectSection.css +36 -94
- package/lib/sections/projects/ProjectSection.d.ts +2 -2
- package/lib/sections/projects/ProjectSection.d.ts.map +1 -1
- package/lib/sections/projects/ProjectSection.js +28 -49
- package/lib/sections/resume/ResumeEditDialog.d.ts +0 -1
- package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -1
- package/lib/sections/resume/ResumeEditDialog.js +20 -40
- package/lib/sections/resume/ResumeSection.css +51 -133
- package/lib/sections/resume/ResumeSection.d.ts +3 -3
- package/lib/sections/resume/ResumeSection.d.ts.map +1 -1
- package/lib/sections/resume/ResumeSection.js +28 -42
- package/lib/sections/shared/sectionCardHelpers.js +15 -15
- package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -1
- package/lib/sections/skills/SkillsEditDialog.js +1 -3
- package/lib/sections/skills/SkillsSection.css +20 -67
- package/lib/sections/skills/SkillsSection.d.ts +2 -2
- package/lib/sections/skills/SkillsSection.d.ts.map +1 -1
- package/lib/sections/skills/SkillsSection.js +36 -55
- package/lib/sections/social/SocialEditDialog.d.ts.map +1 -1
- package/lib/sections/social/SocialEditDialog.js +4 -9
- package/lib/sections/social/SocialSection.css +19 -70
- package/lib/sections/social/SocialSection.d.ts +2 -2
- package/lib/sections/social/SocialSection.d.ts.map +1 -1
- package/lib/sections/social/SocialSection.js +37 -61
- package/lib/specialButtons/addMeToYourFriends.d.ts.map +1 -1
- package/lib/specialButtons/addMeToYourFriends.js +0 -2
- package/lib/styles/CollapsibleSection.css +39 -223
- package/lib/styles/EditDialogs.css +90 -284
- package/lib/styles/EditDialogs.responsive.css +72 -147
- package/lib/types.d.ts +1 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/ui/dialog.css +18 -89
- package/lib/ui/dialog.d.ts.map +1 -1
- package/lib/ui/dialog.js +5 -9
- package/lib/ui/dialog.responsive.css +31 -34
- package/lib/ui/responsiveActionButton.d.ts +19 -0
- package/lib/ui/responsiveActionButton.d.ts.map +1 -0
- package/lib/ui/responsiveActionButton.js +34 -0
- package/lib/utils/resize.d.ts +2 -0
- package/lib/utils/resize.d.ts.map +1 -0
- package/lib/utils/resize.js +40 -0
- package/package.json +19 -19
- package/lib/303.profile-pane.js +0 -1362
- package/lib/303.profile-pane.js.map +0 -1
- package/lib/303.profile-pane.min.js +0 -2
- package/lib/303.profile-pane.min.js.map +0 -1
- package/lib/specialButtons/addContact/AddMeToYourContacts.css +0 -1118
- package/lib/specialButtons/addContact/ContactCreationDialog.d.ts +0 -10
- package/lib/specialButtons/addContact/ContactCreationDialog.d.ts.map +0 -1
- package/lib/specialButtons/addContact/ContactCreationDialog.js +0 -1123
- package/lib/specialButtons/addContact/addMeToYourContacts.d.ts +0 -16
- package/lib/specialButtons/addContact/addMeToYourContacts.d.ts.map +0 -1
- package/lib/specialButtons/addContact/addMeToYourContacts.js +0 -136
- package/lib/specialButtons/addContact/contactsErrors.d.ts +0 -8
- package/lib/specialButtons/addContact/contactsErrors.d.ts.map +0 -1
- package/lib/specialButtons/addContact/contactsErrors.js +0 -106
- package/lib/specialButtons/addContact/contactsTypes.d.ts +0 -43
- package/lib/specialButtons/addContact/contactsTypes.d.ts.map +0 -1
- package/lib/specialButtons/addContact/contactsTypes.js +0 -5
- package/lib/specialButtons/addContact/helpers.d.ts +0 -7
- package/lib/specialButtons/addContact/helpers.d.ts.map +0 -1
- package/lib/specialButtons/addContact/helpers.js +0 -103
- package/lib/specialButtons/addContact/mutations.d.ts +0 -16
- package/lib/specialButtons/addContact/mutations.d.ts.map +0 -1
- package/lib/specialButtons/addContact/mutations.js +0 -300
- package/lib/specialButtons/addContact/selectors.d.ts +0 -10
- package/lib/specialButtons/addContact/selectors.d.ts.map +0 -1
- package/lib/specialButtons/addContact/selectors.js +0 -163
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* Skills list */
|
|
2
1
|
.skills__list {
|
|
3
2
|
display: flex;
|
|
4
3
|
flex-direction: row;
|
|
@@ -11,13 +10,7 @@
|
|
|
11
10
|
list-style: none;
|
|
12
11
|
margin: 0;
|
|
13
12
|
padding: 0;
|
|
14
|
-
gap:
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.skills__item,
|
|
18
|
-
.skills__remove-button svg,
|
|
19
|
-
solid-ui-button.skills__remove-button {
|
|
20
|
-
--skills-remove-icon-size: var(--icon-xxs, 1rem);
|
|
13
|
+
gap: 8px;
|
|
21
14
|
}
|
|
22
15
|
|
|
23
16
|
/* Skill chip */
|
|
@@ -25,10 +18,10 @@ solid-ui-button.skills__remove-button {
|
|
|
25
18
|
display: inline-flex;
|
|
26
19
|
align-items: center;
|
|
27
20
|
justify-content: flex-start;
|
|
28
|
-
gap:
|
|
29
|
-
padding:
|
|
30
|
-
border-radius:
|
|
31
|
-
background: var(--color-
|
|
21
|
+
gap: 6px;
|
|
22
|
+
padding: 8px 10px;
|
|
23
|
+
border-radius: 5px;
|
|
24
|
+
background: var(--solid-ui-color-gray-100, #F3F4F6);
|
|
32
25
|
width: fit-content;
|
|
33
26
|
max-width: 100%;
|
|
34
27
|
}
|
|
@@ -40,8 +33,8 @@ solid-ui-button.skills__remove-button {
|
|
|
40
33
|
.skills__item-label {
|
|
41
34
|
display: inline;
|
|
42
35
|
color: var(--color-text-strong, var(--slate-900, #0F172B));
|
|
43
|
-
font-size: var(--font-size-sm, 0.875rem);
|
|
44
|
-
font-weight:
|
|
36
|
+
font-size: var(--solid-ui-font-size-sm, 0.875rem);
|
|
37
|
+
font-weight: 500;
|
|
45
38
|
line-height: 1.2;
|
|
46
39
|
overflow-wrap: anywhere;
|
|
47
40
|
}
|
|
@@ -52,51 +45,23 @@ solid-ui-button.skills__remove-button {
|
|
|
52
45
|
white-space: nowrap;
|
|
53
46
|
}
|
|
54
47
|
|
|
55
|
-
.skills__item-tail::before {
|
|
56
|
-
content: '\00a0';
|
|
57
|
-
}
|
|
58
|
-
|
|
59
48
|
.skills__empty-icon {
|
|
60
49
|
display: inline-flex;
|
|
61
50
|
align-items: center;
|
|
62
51
|
justify-content: center;
|
|
63
52
|
}
|
|
64
53
|
|
|
65
|
-
/* Remove button */
|
|
66
|
-
solid-ui-button.skills__remove-button {
|
|
67
|
-
width: var(--skills-remove-icon-size);
|
|
68
|
-
height: var(--skills-remove-icon-size);
|
|
69
|
-
line-height: 0;
|
|
70
|
-
vertical-align: text-top;
|
|
71
|
-
--button-height-sm: var(--skills-remove-icon-size);
|
|
72
|
-
--button-padding-sm: 0;
|
|
73
|
-
--button-icon-size-sm: var(--skills-remove-icon-size);
|
|
74
|
-
--button-background: transparent;
|
|
75
|
-
--button-border-width: 0;
|
|
76
|
-
--button-border: transparent;
|
|
77
|
-
--button-text: currentColor;
|
|
78
|
-
--button-hover-background: transparent;
|
|
79
|
-
--button-hover-border: transparent;
|
|
80
|
-
--button-hover-text: currentColor;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
54
|
solid-ui-button.skills__remove-button[data-loading='true'] {
|
|
84
55
|
pointer-events: none;
|
|
85
56
|
}
|
|
86
57
|
|
|
87
|
-
.skills__remove-button svg {
|
|
88
|
-
display: block;
|
|
89
|
-
width: var(--skills-remove-icon-size);
|
|
90
|
-
height: var(--skills-remove-icon-size);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
58
|
.profile__section[data-profile-section='skills'] .profile-section-inline-error {
|
|
94
|
-
margin-top:
|
|
95
|
-
padding:
|
|
59
|
+
margin-top: 15px;
|
|
60
|
+
padding: 12px;
|
|
96
61
|
border: 1px solid var(--dialog-error-border, var(--pink-700, #ff98b3));
|
|
97
|
-
border-radius:
|
|
62
|
+
border-radius: 5px;
|
|
98
63
|
background: var(--dialog-error-background, var(--pink-500, #ffdde6));
|
|
99
|
-
color: var(--
|
|
64
|
+
color: var(--solid-ui-color-error, #B00020);
|
|
100
65
|
text-align: left;
|
|
101
66
|
white-space: pre-wrap;
|
|
102
67
|
overflow-wrap: anywhere;
|
|
@@ -110,18 +75,14 @@ solid-ui-button.skills__remove-button[data-loading='true'] {
|
|
|
110
75
|
display: inline-flex;
|
|
111
76
|
align-items: center;
|
|
112
77
|
justify-content: flex-start;
|
|
113
|
-
gap:
|
|
114
|
-
padding:
|
|
78
|
+
gap: 6px;
|
|
79
|
+
padding: 8px 10px;
|
|
115
80
|
width: fit-content;
|
|
116
81
|
max-width: 100%;
|
|
117
82
|
}
|
|
118
83
|
|
|
119
84
|
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .skills__item-label {
|
|
120
|
-
font-size: var(--font-size-sm, 0.875rem);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .skills__item-tail::before {
|
|
124
|
-
content: none;
|
|
85
|
+
font-size: var(--solid-ui-font-size-sm, 0.875rem);
|
|
125
86
|
}
|
|
126
87
|
|
|
127
88
|
@media (max-width: 576px) {
|
|
@@ -133,18 +94,14 @@ solid-ui-button.skills__remove-button[data-loading='true'] {
|
|
|
133
94
|
display: inline-flex;
|
|
134
95
|
align-items: center;
|
|
135
96
|
justify-content: flex-start;
|
|
136
|
-
gap:
|
|
137
|
-
padding:
|
|
97
|
+
gap: 6px;
|
|
98
|
+
padding: 8px 10px;
|
|
138
99
|
width: fit-content;
|
|
139
100
|
max-width: 100%;
|
|
140
101
|
}
|
|
141
102
|
|
|
142
103
|
.skills__item-label {
|
|
143
|
-
font-size: var(--font-size-sm, 0.875rem);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.skills__item-tail::before {
|
|
147
|
-
content: none;
|
|
104
|
+
font-size: var(--solid-ui-font-size-sm, 0.875rem);
|
|
148
105
|
}
|
|
149
106
|
}
|
|
150
107
|
|
|
@@ -157,17 +114,13 @@ solid-ui-button.skills__remove-button[data-loading='true'] {
|
|
|
157
114
|
display: inline-flex;
|
|
158
115
|
align-items: center;
|
|
159
116
|
justify-content: flex-start;
|
|
160
|
-
gap:
|
|
161
|
-
padding:
|
|
117
|
+
gap: 6px;
|
|
118
|
+
padding: 8px 10px;
|
|
162
119
|
width: fit-content;
|
|
163
120
|
max-width: 100%;
|
|
164
121
|
}
|
|
165
122
|
|
|
166
123
|
.skills__item-label {
|
|
167
|
-
font-size: var(--font-size-sm, 0.875rem);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.skills__item-tail::before {
|
|
171
|
-
content: none;
|
|
124
|
+
font-size: var(--solid-ui-font-size-sm, 0.875rem);
|
|
172
125
|
}
|
|
173
126
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import 'solid-ui/components/button';
|
|
2
2
|
import { LiveStore, NamedNode } from 'rdflib';
|
|
3
|
-
import { ViewerMode } from '../../types';
|
|
3
|
+
import { Layout, ViewerMode } from '../../types';
|
|
4
4
|
import './SkillsSection.css';
|
|
5
5
|
import { SkillDetails } from './types';
|
|
6
|
-
export declare function renderSkillsSection(store: LiveStore, subject: NamedNode, skills: SkillDetails[], viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1
|
|
6
|
+
export declare function renderSkillsSection(store: LiveStore, subject: NamedNode, skills: SkillDetails[], viewerMode: ViewerMode, layout: Layout, onSaved?: () => Promise<void> | void): import("lit-html").TemplateResult<1>;
|
|
7
7
|
//# sourceMappingURL=SkillsSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkillsSection.d.ts","sourceRoot":"","sources":["../../../src/sections/skills/SkillsSection.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"SkillsSection.d.ts","sourceRoot":"","sources":["../../../src/sections/skills/SkillsSection.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,qBAAqB,CAAA;AAE5B,OAAO,EAAE,YAAY,EAAY,MAAM,SAAS,CAAA;AAsOhD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,wCAYrC"}
|
|
@@ -14,6 +14,7 @@ var _texts = require("../../texts");
|
|
|
14
14
|
var _collapsibleSection = require("../shared/collapsibleSection");
|
|
15
15
|
var _mutations = require("./mutations");
|
|
16
16
|
var _errorDisplay = require("../../utils/errorDisplay");
|
|
17
|
+
var _responsiveActionButton = require("../../ui/responsiveActionButton");
|
|
17
18
|
const removeSkillFailedMessageText = 'Unable to remove your skill.';
|
|
18
19
|
function setSkillsSectionError(section, message) {
|
|
19
20
|
const errorBox = section.querySelector('.profile-section-inline-error');
|
|
@@ -36,7 +37,7 @@ function renderSkillItem(detail, store, subject, viewerMode, onSaved) {
|
|
|
36
37
|
if (viewerMode !== 'owner') return;
|
|
37
38
|
const removeButton = event.currentTarget;
|
|
38
39
|
const skillRow = removeButton?.closest('.skills__item');
|
|
39
|
-
const section =
|
|
40
|
+
const section = removeButton?.closest('[data-profile-section="skills"]');
|
|
40
41
|
const removeRow = {
|
|
41
42
|
name: detail.name,
|
|
42
43
|
publicId: detail.publicId,
|
|
@@ -76,21 +77,18 @@ function renderSkillItem(detail, store, subject, viewerMode, onSaved) {
|
|
|
76
77
|
${viewerMode === 'owner' ? (0, _litHtml.html)`
|
|
77
78
|
<span class="skills__item-tail">
|
|
78
79
|
<solid-ui-button
|
|
79
|
-
|
|
80
|
-
variant="icon"
|
|
81
|
-
size="sm"
|
|
82
|
-
class="skills__remove-button"
|
|
80
|
+
variant="ghost"
|
|
83
81
|
aria-label=${`Remove ${detail.name} skill`}
|
|
84
82
|
@click=${handleRemove}
|
|
85
83
|
>
|
|
86
84
|
<span slot="icon" aria-hidden="true">${_profileIcons.deleteIcon}</span>
|
|
87
85
|
</solid-ui-button>
|
|
88
86
|
</span>
|
|
89
|
-
` :
|
|
87
|
+
` : _litHtml.nothing}
|
|
90
88
|
</li>
|
|
91
89
|
`;
|
|
92
90
|
}
|
|
93
|
-
function renderSkillsSectionDefault(store, subject, skills, viewerMode, onSaved) {
|
|
91
|
+
function renderSkillsSectionDefault(store, subject, skills, viewerMode, layout, onSaved) {
|
|
94
92
|
const hasSkills = Array.isArray(skills) && skills.length > 0;
|
|
95
93
|
const isOwner = viewerMode === 'owner';
|
|
96
94
|
return (0, _litHtml.html)`
|
|
@@ -106,25 +104,18 @@ function renderSkillsSectionDefault(store, subject, skills, viewerMode, onSaved)
|
|
|
106
104
|
<h3 id="skills-heading">${_texts.skillsHeadingText}</h3>
|
|
107
105
|
<div class="profile-section-collapsible__actions">
|
|
108
106
|
${isOwner ? (0, _litHtml.html)`
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<span>Add More</span>
|
|
120
|
-
</span>
|
|
121
|
-
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
|
|
122
|
-
</solid-ui-button>
|
|
123
|
-
` : (0, _litHtml.html)``}
|
|
107
|
+
${(0, _responsiveActionButton.renderResponsiveActionButton)({
|
|
108
|
+
layout,
|
|
109
|
+
className: 'profile-section-collapsible__edit-button',
|
|
110
|
+
ariaLabel: 'Add or edit skills',
|
|
111
|
+
onClick: event => (0, _SkillsEditDialog.createSkillsEditDialog)(event, store, subject, skills, viewerMode, onSaved),
|
|
112
|
+
desktopIcon: (0, _litHtml.html)`<span slot="left-icon" class="profile-section-collapsible__action-label profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>`,
|
|
113
|
+
desktopLabel: 'Add More',
|
|
114
|
+
mobileIcon: (0, _litHtml.html)`<span slot="icon" class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`
|
|
115
|
+
})}
|
|
116
|
+
` : _litHtml.nothing}
|
|
124
117
|
<solid-ui-button
|
|
125
|
-
|
|
126
|
-
variant="icon"
|
|
127
|
-
size="sm"
|
|
118
|
+
variant="ghost"
|
|
128
119
|
class="profile-section-collapsible__toggle-button"
|
|
129
120
|
aria-label="Toggle skills section"
|
|
130
121
|
aria-controls="skills-panel"
|
|
@@ -157,19 +148,16 @@ function renderSkillsSectionDefault(store, subject, skills, viewerMode, onSaved)
|
|
|
157
148
|
</section>
|
|
158
149
|
`;
|
|
159
150
|
}
|
|
160
|
-
function renderOwnerEmptySkillsContent(
|
|
151
|
+
function renderOwnerEmptySkillsContent() {
|
|
161
152
|
return (0, _litHtml.html)`
|
|
162
153
|
<div class="profile__empty-state-content" role="group" aria-label="Empty skills section">
|
|
163
154
|
<div class="skills__empty-icon-wrapper">
|
|
164
155
|
<span class="skills__empty-icon">${_profileIcons.lighteningIcon}</span>
|
|
165
156
|
</div>
|
|
166
|
-
<p class="profile__empty-state-message skills__empty-message">
|
|
167
|
-
No skills added yet.
|
|
168
|
-
</p>
|
|
169
157
|
</div>
|
|
170
158
|
`;
|
|
171
159
|
}
|
|
172
|
-
function renderOwnerEmptySkillsSection(store, subject, skills, viewerMode, onSaved) {
|
|
160
|
+
function renderOwnerEmptySkillsSection(store, subject, skills, viewerMode, layout, onSaved) {
|
|
173
161
|
return (0, _litHtml.html)`
|
|
174
162
|
<section
|
|
175
163
|
aria-labelledby="skills-heading"
|
|
@@ -182,26 +170,19 @@ function renderOwnerEmptySkillsSection(store, subject, skills, viewerMode, onSav
|
|
|
182
170
|
<header class="profile__section-header profile-section-collapsible__header">
|
|
183
171
|
<h3 id="skills-heading" tabindex="-1">${_texts.skillsHeadingText}</h3>
|
|
184
172
|
<div class="profile-section-collapsible__actions">
|
|
173
|
+
${(0, _responsiveActionButton.renderResponsiveActionButton)({
|
|
174
|
+
layout,
|
|
175
|
+
className: 'profile-section-collapsible__edit-button',
|
|
176
|
+
ariaLabel: 'Add skills',
|
|
177
|
+
onClick: event => {
|
|
178
|
+
return (0, _SkillsEditDialog.createSkillsEditDialog)(event, store, subject, skills, viewerMode, onSaved);
|
|
179
|
+
},
|
|
180
|
+
desktopIcon: (0, _litHtml.html)`<span slot="left-icon" class="profile-section-collapsible__action-label profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>`,
|
|
181
|
+
desktopLabel: 'Add More',
|
|
182
|
+
mobileIcon: (0, _litHtml.html)`<span slot="icon" class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>`
|
|
183
|
+
})}
|
|
185
184
|
<solid-ui-button
|
|
186
|
-
|
|
187
|
-
variant="secondary"
|
|
188
|
-
size="sm"
|
|
189
|
-
class="profile__action-button profile-action-text profile-section-collapsible__edit-button"
|
|
190
|
-
aria-label="Add skills"
|
|
191
|
-
@click=${event => {
|
|
192
|
-
return (0, _SkillsEditDialog.createSkillsEditDialog)(event, store, subject, skills, viewerMode, onSaved);
|
|
193
|
-
}}
|
|
194
|
-
>
|
|
195
|
-
<span class="profile-section-collapsible__edit-label profile__add-more-content">
|
|
196
|
-
<span class="profile__add-more-icon" aria-hidden="true">${_profileIcons.addIcon}</span>
|
|
197
|
-
<span>Add More</span>
|
|
198
|
-
</span>
|
|
199
|
-
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${_profileIcons.editIcon}</span>
|
|
200
|
-
</solid-ui-button>
|
|
201
|
-
<solid-ui-button
|
|
202
|
-
type="button"
|
|
203
|
-
variant="icon"
|
|
204
|
-
size="sm"
|
|
185
|
+
variant="ghost"
|
|
205
186
|
class="profile-section-collapsible__toggle-button"
|
|
206
187
|
aria-label="Toggle skills section"
|
|
207
188
|
aria-controls="skills-panel"
|
|
@@ -213,17 +194,17 @@ function renderOwnerEmptySkillsSection(store, subject, skills, viewerMode, onSav
|
|
|
213
194
|
</div>
|
|
214
195
|
</header>
|
|
215
196
|
<div id="skills-panel" class="profile-section-collapsible__content">
|
|
216
|
-
${renderOwnerEmptySkillsContent(
|
|
197
|
+
${renderOwnerEmptySkillsContent()}
|
|
217
198
|
</div>
|
|
218
199
|
</section>
|
|
219
200
|
`;
|
|
220
201
|
}
|
|
221
|
-
function renderSkillsSection(store, subject, skills, viewerMode, onSaved) {
|
|
202
|
+
function renderSkillsSection(store, subject, skills, viewerMode, layout, onSaved) {
|
|
203
|
+
const currentLayout = layout || 'desktop';
|
|
222
204
|
const safeSkills = skills || [];
|
|
223
205
|
const hasSkills = Array.isArray(safeSkills) && safeSkills.length > 0;
|
|
224
206
|
const showOwnerEmptySkills = !hasSkills && viewerMode === 'owner';
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
` : '';
|
|
207
|
+
return (0, _litHtml.html)`
|
|
208
|
+
${showOwnerEmptySkills ? renderOwnerEmptySkillsSection(store, subject, safeSkills, viewerMode, currentLayout, onSaved) : renderSkillsSectionDefault(store, subject, safeSkills, viewerMode, currentLayout, onSaved)}
|
|
209
|
+
`;
|
|
229
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/social/SocialEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,SAAS,CAAA;AACjD,OAAO,0CAA0C,CAAA;AACjD,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"SocialEditDialog.d.ts","sourceRoot":"","sources":["../../../src/sections/social/SocialEditDialog.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA;AACnC,OAAO,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,SAAS,CAAA;AACjD,OAAO,0CAA0C,CAAA;AACjD,OAAO,8BAA8B,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAuhBxC,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,cAAc,EAAE,OAAO,EAAE,EACzB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,iBAgDrC"}
|
|
@@ -197,10 +197,8 @@ function renderSocialInputRow({
|
|
|
197
197
|
@drop=${event => onDrop(event, index)}
|
|
198
198
|
>
|
|
199
199
|
<solid-ui-button
|
|
200
|
-
type="button"
|
|
201
200
|
class="profile-edit-dialog__drag-handle"
|
|
202
|
-
variant="
|
|
203
|
-
size="md"
|
|
201
|
+
variant="ghost"
|
|
204
202
|
aria-label=${`Reorder social account ${displayIndex + 1}`}
|
|
205
203
|
title="Drag to reorder"
|
|
206
204
|
draggable="true"
|
|
@@ -211,7 +209,7 @@ function renderSocialInputRow({
|
|
|
211
209
|
@pointerup=${event => onPointerUp(event)}
|
|
212
210
|
@pointercancel=${event => onPointerCancel(event)}
|
|
213
211
|
>
|
|
214
|
-
<span slot="icon"
|
|
212
|
+
<span slot="icon" aria-hidden="true">${_profileIcons.bentoIcon}</span>
|
|
215
213
|
</solid-ui-button>
|
|
216
214
|
<img
|
|
217
215
|
class="profile-edit-dialog__social-icon"
|
|
@@ -243,15 +241,12 @@ function renderSocialInputRow({
|
|
|
243
241
|
</label>
|
|
244
242
|
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
245
243
|
<solid-ui-button
|
|
246
|
-
|
|
247
|
-
variant="icon"
|
|
248
|
-
size="md"
|
|
249
|
-
class="profile-edit-dialog__delete-button"
|
|
244
|
+
variant="ghost"
|
|
250
245
|
aria-label=${`Delete social account ${displayIndex + 1}`}
|
|
251
246
|
title=${_texts.deleteEntryButtonTitleText}
|
|
252
247
|
@click=${handleDelete}
|
|
253
248
|
>
|
|
254
|
-
<span slot="icon"
|
|
249
|
+
<span slot="icon" aria-hidden="true">${_profileIcons.trashIcon}</span>
|
|
255
250
|
</solid-ui-button>
|
|
256
251
|
</div>
|
|
257
252
|
</div>
|
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
/* Social section styles. */
|
|
2
|
-
|
|
3
1
|
.profile__section[data-profile-section='social'],
|
|
4
2
|
.profile__section--empty[data-profile-section='social'] {
|
|
5
3
|
--social-card-collapsed-columns: repeat(5, max-content);
|
|
6
|
-
--social-card-expanded-columns: repeat(3, max-content);
|
|
7
4
|
--social-card-icon-size: var(--icon-base, 2rem);
|
|
8
5
|
--social-card-list-display: flex;
|
|
9
6
|
--social-card-list-columns: none;
|
|
10
|
-
--social-card-list-gap: var(--spacing-xxs, 0.3125rem);
|
|
11
|
-
--social-card-link-gap: var(--spacing-xs, 0.75rem);
|
|
12
|
-
--social-card-link-padding: var(--spacing-xs, 0.75rem);
|
|
13
|
-
--social-card-link-hover-background: var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff));
|
|
14
7
|
--social-card-hidden-item-display: flex;
|
|
15
8
|
--social-card-more-button-display: none;
|
|
16
|
-
|
|
17
|
-
border: var(--border-width-thin, 1px) solid var(--color-border-lighter, #D1D5DB);
|
|
9
|
+
border: 1px solid var(--color-border-lighter, #D1D5DB);
|
|
18
10
|
}
|
|
19
11
|
|
|
20
12
|
.profile__section--empty[data-profile-section='social'] {
|
|
@@ -23,7 +15,6 @@
|
|
|
23
15
|
align-items: center;
|
|
24
16
|
}
|
|
25
17
|
|
|
26
|
-
/* Card and list */
|
|
27
18
|
.social-card,
|
|
28
19
|
.social-card__list {
|
|
29
20
|
width: 100%;
|
|
@@ -37,7 +28,7 @@
|
|
|
37
28
|
grid-template-columns: var(--social-card-list-columns);
|
|
38
29
|
flex-wrap: wrap;
|
|
39
30
|
justify-content: flex-start;
|
|
40
|
-
gap:
|
|
31
|
+
gap: 5px;
|
|
41
32
|
margin: 0;
|
|
42
33
|
padding: 0;
|
|
43
34
|
list-style: none;
|
|
@@ -52,7 +43,7 @@
|
|
|
52
43
|
|
|
53
44
|
.profile__section--empty[data-profile-section='social'] .profile__empty-state-content {
|
|
54
45
|
flex-direction: column;
|
|
55
|
-
gap:
|
|
46
|
+
gap: 10px;
|
|
56
47
|
}
|
|
57
48
|
|
|
58
49
|
.social__empty-icon {
|
|
@@ -61,11 +52,11 @@
|
|
|
61
52
|
|
|
62
53
|
/* Links */
|
|
63
54
|
.social-card__link {
|
|
64
|
-
color: var(--color-primary, #7C4DFF);
|
|
55
|
+
color: var(--solid-ui-color-primary, #7C4DFF);
|
|
65
56
|
text-decoration: none;
|
|
66
|
-
gap:
|
|
67
|
-
padding:
|
|
68
|
-
border-radius:
|
|
57
|
+
gap: 12px;
|
|
58
|
+
padding: 12px;
|
|
59
|
+
border-radius: 5px;
|
|
69
60
|
transition: background-color var(--animation-duration, 0.2s) ease;
|
|
70
61
|
position: relative;
|
|
71
62
|
flex: 1;
|
|
@@ -75,7 +66,7 @@
|
|
|
75
66
|
.social-card__link:hover,
|
|
76
67
|
.social-card__link:focus {
|
|
77
68
|
text-decoration: underline;
|
|
78
|
-
background-color: var(--
|
|
69
|
+
background-color: var(--color-surface-accent-subtle, var(--lavender-300, #e6dcff));
|
|
79
70
|
}
|
|
80
71
|
|
|
81
72
|
.social-card__link[href^="http"]:after {
|
|
@@ -87,50 +78,30 @@
|
|
|
87
78
|
overflow: hidden;
|
|
88
79
|
}
|
|
89
80
|
|
|
81
|
+
.social-card__more-button {
|
|
82
|
+
display: var(--social-card-more-button-display);
|
|
83
|
+
padding: 0;
|
|
84
|
+
border: 0;
|
|
85
|
+
}
|
|
86
|
+
|
|
90
87
|
.social-card__icon {
|
|
91
88
|
width: var(--social-card-icon-size);
|
|
92
89
|
height: var(--social-card-icon-size);
|
|
93
|
-
border-radius:
|
|
94
|
-
background: var(--color-
|
|
90
|
+
border-radius: 5px;
|
|
91
|
+
background: var(--solid-ui-color-white, #FFFFFF);
|
|
95
92
|
flex-shrink: 0;
|
|
96
93
|
}
|
|
97
94
|
|
|
98
|
-
/* Toggle button */
|
|
99
|
-
|
|
100
|
-
solid-ui-button.social-card__more-button {
|
|
101
|
-
--button-height-sm: 0;
|
|
102
|
-
--button-padding-x-sm: 0;
|
|
103
|
-
--button-background: transparent;
|
|
104
|
-
--button-border: transparent;
|
|
105
|
-
--button-text: var(--color-primary, #7C4DFF);
|
|
106
|
-
--button-hover-background: transparent;
|
|
107
|
-
--button-hover-border: transparent;
|
|
108
|
-
--button-hover-text: var(--color-primary, #7C4DFF);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.social-card__more-button,
|
|
112
|
-
solid-ui-button.social-card__more-button::part(button) {
|
|
113
|
-
display: var(--social-card-more-button-display);
|
|
114
|
-
padding: 0;
|
|
115
|
-
border: 0;
|
|
116
|
-
background: transparent;
|
|
117
|
-
color: var(--color-primary, #7C4DFF);
|
|
118
|
-
font: inherit;
|
|
119
|
-
font-weight: var(--font-weight-bold, 600);
|
|
120
|
-
cursor: var(--profile-interactive-cursor, pointer);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
95
|
.social-card[data-mobile-expanded="false"] .social-card__item:nth-child(n + 11) {
|
|
124
96
|
display: var(--social-card-hidden-item-display);
|
|
125
97
|
}
|
|
126
98
|
|
|
127
99
|
.social-card[data-mobile-expanded="true"] {
|
|
128
|
-
--social-card-list-columns:
|
|
100
|
+
--social-card-list-columns: repeat(3, max-content);
|
|
129
101
|
--social-card-hidden-item-display: flex;
|
|
130
102
|
--social-card-more-button-display: none;
|
|
131
103
|
}
|
|
132
104
|
|
|
133
|
-
/* Compact layout */
|
|
134
105
|
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__section[data-profile-section='social'],
|
|
135
106
|
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__section--empty[data-profile-section='social'] {
|
|
136
107
|
--social-card-list-display: grid;
|
|
@@ -143,20 +114,8 @@ solid-ui-button.social-card__more-button::part(button) {
|
|
|
143
114
|
justify-content: flex-start;
|
|
144
115
|
}
|
|
145
116
|
|
|
146
|
-
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__section[data-profile-section='social'] .profile-section-collapsible__toggle-button,
|
|
147
|
-
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .profile__section--empty[data-profile-section='social'] .profile-section-collapsible__toggle-button {
|
|
148
|
-
display: inline-flex;
|
|
149
|
-
align-items: center;
|
|
150
|
-
justify-content: center;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] .social-card__more-button,
|
|
154
|
-
:is(.profile-pane-host, .profile-pane-root)[data-layout='mobile'] solid-ui-button.social-card__more-button::part(button) {
|
|
155
|
-
margin-top: var(--social-card-more-button-margin-top);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
117
|
@media (max-width: 768px) {
|
|
159
|
-
|
|
118
|
+
.profile__section[data-profile-section='social'],
|
|
160
119
|
.profile__section--empty[data-profile-section='social'] {
|
|
161
120
|
--social-card-list-display: grid;
|
|
162
121
|
--social-card-list-columns: var(--social-card-collapsed-columns);
|
|
@@ -167,15 +126,10 @@ solid-ui-button.social-card__more-button::part(button) {
|
|
|
167
126
|
.social-card .social-card__list {
|
|
168
127
|
justify-content: flex-start;
|
|
169
128
|
}
|
|
170
|
-
|
|
171
|
-
.social-card__more-button,
|
|
172
|
-
solid-ui-button.social-card__more-button::part(button) {
|
|
173
|
-
margin-top: var(--social-card-more-button-margin-top);
|
|
174
|
-
}
|
|
175
129
|
}
|
|
176
130
|
|
|
177
131
|
@container profile-pane (max-width: 768px) {
|
|
178
|
-
|
|
132
|
+
.profile__section[data-profile-section='social'],
|
|
179
133
|
.profile__section--empty[data-profile-section='social'] {
|
|
180
134
|
--social-card-list-display: grid;
|
|
181
135
|
--social-card-list-columns: var(--social-card-collapsed-columns);
|
|
@@ -186,9 +140,4 @@ solid-ui-button.social-card__more-button::part(button) {
|
|
|
186
140
|
.social-card .social-card__list {
|
|
187
141
|
justify-content: flex-start;
|
|
188
142
|
}
|
|
189
|
-
|
|
190
|
-
.social-card__more-button,
|
|
191
|
-
solid-ui-button.social-card__more-button::part(button) {
|
|
192
|
-
margin-top: var(--social-card-more-button-margin-top);
|
|
193
|
-
}
|
|
194
143
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { TemplateResult } from 'lit-html';
|
|
2
2
|
import 'solid-ui/components/button';
|
|
3
3
|
import { SocialPresentation } from './types';
|
|
4
|
-
import { ViewerMode } from '../../types';
|
|
4
|
+
import { Layout, ViewerMode } from '../../types';
|
|
5
5
|
import './SocialSection.css';
|
|
6
6
|
import { LiveStore, NamedNode } from 'rdflib';
|
|
7
7
|
export declare const SocialCard: (SocialData: SocialPresentation, _viewerMode: ViewerMode) => TemplateResult;
|
|
8
|
-
export declare function renderSocialSection(store: LiveStore, subject: NamedNode, socialData: SocialPresentation, viewerMode: ViewerMode, onSaved?: () => Promise<void> | void): TemplateResult<1
|
|
8
|
+
export declare function renderSocialSection(store: LiveStore, subject: NamedNode, socialData: SocialPresentation, viewerMode: ViewerMode, layout: Layout, onSaved?: () => Promise<void> | void): TemplateResult<1>;
|
|
9
9
|
//# sourceMappingURL=SocialSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocialSection.d.ts","sourceRoot":"","sources":["../../../src/sections/social/SocialSection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SocialSection.d.ts","sourceRoot":"","sources":["../../../src/sections/social/SocialSection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,4BAA4B,CAAA;AACnC,OAAO,EAAW,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,qBAAqB,CAAA;AAG5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAqB7C,eAAO,MAAM,UAAU,GACrB,YAAY,kBAAkB,EAC9B,aAAa,UAAU,KACtB,cA4DF,CAAA;AAmID,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,qBAYrC"}
|