profile-pane 3.1.4 → 3.2.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.
- package/README.md +16 -0
- package/lib/04567ff683933c35c465.png +0 -0
- package/lib/10163fd9b5a0e00d63a0.png +0 -0
- package/lib/1234dcb2eec2e45f252b.png +0 -0
- package/lib/20899934157df4db56cb.png +0 -0
- package/lib/33760bf79f097f449da5.png +0 -0
- package/lib/578d2b6ed32e7624164e.png +0 -0
- package/lib/5f62a5b2b7e99b9640c7.png +0 -0
- package/lib/6525766ecd288ec60129.png +0 -0
- package/lib/7800be6f6c4b5b0f4f20.png +0 -0
- package/lib/976473cf5fe24d657d4b.png +0 -0
- package/lib/ChatWithMe.d.ts +2 -1
- package/lib/ChatWithMe.d.ts.map +1 -1
- package/lib/ChatWithMe.js +3 -3
- package/lib/ProfileView.d.ts +1 -1
- package/lib/ProfileView.d.ts.map +1 -1
- package/lib/ProfileView.js +71 -131
- package/lib/ProfileViewModelPresenter.d.ts +23 -0
- package/lib/ProfileViewModelPresenter.d.ts.map +1 -0
- package/lib/ProfileViewModelPresenter.js +37 -0
- package/lib/QRCodeCard.d.ts +3 -1
- package/lib/QRCodeCard.d.ts.map +1 -1
- package/lib/QRCodeCard.js +86 -66
- package/lib/addMeToYourFriends.d.ts +3 -3
- package/lib/addMeToYourFriends.d.ts.map +1 -1
- package/lib/addMeToYourFriends.js +14 -30
- package/lib/bda84f59e7216675a208.png +0 -0
- package/lib/buttonsHelper.js +1 -1
- package/lib/cd68e8f3990ba8b2139e.png +0 -0
- package/lib/e7074a7e2cb69e51cfd3.png +0 -0
- package/lib/editProfilePane/EditCVCard.d.ts +1 -0
- package/lib/editProfilePane/EditCVCard.d.ts.map +1 -1
- package/lib/editProfilePane/EditCVCard.js +2 -1
- package/lib/editProfilePane/EditCommunitiesCard.d.ts +1 -1
- package/lib/editProfilePane/EditCommunitiesCard.d.ts.map +1 -1
- package/lib/editProfilePane/EditCommunitiesCard.js +2 -1
- package/lib/editProfilePane/EditContactsCard.d.ts +1 -0
- package/lib/editProfilePane/EditContactsCard.d.ts.map +1 -1
- package/lib/editProfilePane/EditContactsCard.js +2 -0
- package/lib/editProfilePane/EditFriendsCard.d.ts +1 -1
- package/lib/editProfilePane/EditFriendsCard.d.ts.map +1 -1
- package/lib/editProfilePane/EditFriendsCard.js +2 -1
- package/lib/editProfilePane/EditOtherPreferences.d.ts +1 -0
- package/lib/editProfilePane/EditOtherPreferences.d.ts.map +1 -1
- package/lib/editProfilePane/EditOtherPreferences.js +1 -0
- package/lib/editProfilePane/EditProfileView.d.ts +1 -1
- package/lib/editProfilePane/EditProfileView.d.ts.map +1 -1
- package/lib/editProfilePane/EditProfileView.js +1 -1
- package/lib/editProfilePane/EditSocialCard.d.ts +1 -0
- package/lib/editProfilePane/EditSocialCard.d.ts.map +1 -1
- package/lib/editProfilePane/EditSocialCard.js +2 -1
- package/lib/editProfilePane/editProfilePresenter.d.ts +1 -0
- package/lib/editProfilePane/editProfilePresenter.d.ts.map +1 -1
- package/lib/editProfilePane/editProfilePresenter.js +2 -0
- package/lib/f3772696fb7ee53c23d8.png +0 -0
- package/lib/icons-svg/contactIcons.d.ts +3 -0
- package/lib/icons-svg/contactIcons.d.ts.map +1 -0
- package/lib/icons-svg/contactIcons.js +32 -0
- package/lib/icons-svg/profileIcons.d.ts +22 -0
- package/lib/icons-svg/profileIcons.d.ts.map +1 -0
- package/lib/icons-svg/profileIcons.js +309 -0
- package/lib/index.d.ts +1 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +42 -19
- package/lib/profile-pane.js +15629 -5666
- package/lib/profile-pane.js.map +1 -1
- package/lib/profile-pane.min.js +2171 -230
- package/lib/profile-pane.min.js.map +1 -1
- package/lib/rdfFormsHelper.d.ts +1 -0
- package/lib/rdfFormsHelper.d.ts.map +1 -1
- package/lib/rdfFormsHelper.js +2 -0
- package/lib/sections/bio/BioEditDialog.d.ts +6 -0
- package/lib/sections/bio/BioEditDialog.d.ts.map +1 -0
- package/lib/sections/bio/BioEditDialog.js +119 -0
- package/lib/sections/bio/BioSection.d.ts +7 -0
- package/lib/sections/bio/BioSection.d.ts.map +1 -0
- package/lib/sections/bio/BioSection.js +131 -0
- package/lib/sections/bio/mutations.d.ts +4 -0
- package/lib/sections/bio/mutations.d.ts.map +1 -0
- package/lib/sections/bio/mutations.js +43 -0
- package/lib/sections/bio/selectors.d.ts +4 -0
- package/lib/sections/bio/selectors.d.ts.map +1 -0
- package/lib/sections/bio/selectors.js +15 -0
- package/lib/sections/bio/types.d.ts +15 -0
- package/lib/sections/bio/types.d.ts.map +1 -0
- package/lib/sections/bio/types.js +5 -0
- package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts +7 -0
- package/lib/sections/contactInfo/ContactInfoEditDialog.d.ts.map +1 -0
- package/lib/sections/contactInfo/ContactInfoEditDialog.js +658 -0
- package/lib/sections/contactInfo/ContactInfoSection.d.ts +5 -0
- package/lib/sections/contactInfo/ContactInfoSection.d.ts.map +1 -0
- package/lib/sections/contactInfo/ContactInfoSection.js +229 -0
- package/lib/sections/contactInfo/mutations.d.ts +4 -0
- package/lib/sections/contactInfo/mutations.d.ts.map +1 -0
- package/lib/sections/contactInfo/mutations.js +150 -0
- package/lib/sections/contactInfo/selectors.d.ts +4 -0
- package/lib/sections/contactInfo/selectors.d.ts.map +1 -0
- package/lib/sections/contactInfo/selectors.js +104 -0
- package/lib/sections/contactInfo/types.d.ts +44 -0
- package/lib/sections/contactInfo/types.d.ts.map +1 -0
- package/lib/sections/contactInfo/types.js +5 -0
- package/lib/sections/education/EducationEditDialog.d.ts +7 -0
- package/lib/sections/education/EducationEditDialog.d.ts.map +1 -0
- package/lib/sections/education/EducationEditDialog.js +459 -0
- package/lib/sections/education/EducationSection.d.ts +7 -0
- package/lib/sections/education/EducationSection.d.ts.map +1 -0
- package/lib/sections/education/EducationSection.js +126 -0
- package/lib/sections/education/mutations.d.ts +4 -0
- package/lib/sections/education/mutations.d.ts.map +1 -0
- package/lib/sections/education/mutations.js +60 -0
- package/lib/sections/education/selectors.d.ts +4 -0
- package/lib/sections/education/selectors.d.ts.map +1 -0
- package/lib/sections/education/selectors.js +64 -0
- package/lib/sections/education/types.d.ts +20 -0
- package/lib/sections/education/types.d.ts.map +1 -0
- package/lib/sections/education/types.js +5 -0
- package/lib/sections/heading/HeadingEditDialog.d.ts +6 -0
- package/lib/sections/heading/HeadingEditDialog.d.ts.map +1 -0
- package/lib/sections/heading/HeadingEditDialog.js +742 -0
- package/lib/sections/heading/HeadingSection.d.ts +9 -0
- package/lib/sections/heading/HeadingSection.d.ts.map +1 -0
- package/lib/sections/heading/HeadingSection.js +97 -0
- package/lib/sections/heading/camera.d.ts +19 -0
- package/lib/sections/heading/camera.d.ts.map +1 -0
- package/lib/sections/heading/camera.js +199 -0
- package/lib/sections/heading/dateHelpers.d.ts +4 -0
- package/lib/sections/heading/dateHelpers.d.ts.map +1 -0
- package/lib/sections/heading/dateHelpers.js +48 -0
- package/lib/sections/heading/imageHelpers.d.ts +4 -0
- package/lib/sections/heading/imageHelpers.d.ts.map +1 -0
- package/lib/sections/heading/imageHelpers.js +81 -0
- package/lib/sections/heading/mutations.d.ts +4 -0
- package/lib/sections/heading/mutations.d.ts.map +1 -0
- package/lib/sections/heading/mutations.js +190 -0
- package/lib/sections/heading/selectors.d.ts +5 -0
- package/lib/sections/heading/selectors.d.ts.map +1 -0
- package/lib/sections/heading/selectors.js +157 -0
- package/lib/sections/heading/types.d.ts +36 -0
- package/lib/sections/heading/types.d.ts.map +1 -0
- package/lib/sections/heading/types.js +5 -0
- package/lib/sections/languages/LanguageEditDialog.d.ts +7 -0
- package/lib/sections/languages/LanguageEditDialog.d.ts.map +1 -0
- package/lib/sections/languages/LanguageEditDialog.js +457 -0
- package/lib/sections/languages/LanguageSection.d.ts +5 -0
- package/lib/sections/languages/LanguageSection.d.ts.map +1 -0
- package/lib/sections/languages/LanguageSection.js +137 -0
- package/lib/sections/languages/mutations.d.ts +6 -0
- package/lib/sections/languages/mutations.d.ts.map +1 -0
- package/lib/sections/languages/mutations.js +296 -0
- package/lib/sections/languages/selectors.d.ts +5 -0
- package/lib/sections/languages/selectors.d.ts.map +1 -0
- package/lib/sections/languages/selectors.js +146 -0
- package/lib/sections/languages/types.d.ts +15 -0
- package/lib/sections/languages/types.d.ts.map +1 -0
- package/lib/sections/languages/types.js +5 -0
- package/lib/sections/projects/ProjectEditDialog.d.ts +7 -0
- package/lib/sections/projects/ProjectEditDialog.d.ts.map +1 -0
- package/lib/sections/projects/ProjectEditDialog.js +182 -0
- package/lib/sections/projects/ProjectSection.d.ts +6 -0
- package/lib/sections/projects/ProjectSection.d.ts.map +1 -0
- package/lib/sections/projects/ProjectSection.js +220 -0
- package/lib/sections/projects/mutations.d.ts +4 -0
- package/lib/sections/projects/mutations.d.ts.map +1 -0
- package/lib/sections/projects/mutations.js +188 -0
- package/lib/sections/projects/selectors.d.ts +5 -0
- package/lib/sections/projects/selectors.d.ts.map +1 -0
- package/lib/sections/projects/selectors.js +163 -0
- package/lib/sections/projects/types.d.ts +28 -0
- package/lib/sections/projects/types.d.ts.map +1 -0
- package/lib/sections/projects/types.js +8 -0
- package/lib/sections/resume/ResumeEditDialog.d.ts +7 -0
- package/lib/sections/resume/ResumeEditDialog.d.ts.map +1 -0
- package/lib/sections/resume/ResumeEditDialog.js +629 -0
- package/lib/sections/resume/ResumeSection.d.ts +7 -0
- package/lib/sections/resume/ResumeSection.d.ts.map +1 -0
- package/lib/sections/resume/ResumeSection.js +160 -0
- package/lib/sections/resume/mutations.d.ts +6 -0
- package/lib/sections/resume/mutations.d.ts.map +1 -0
- package/lib/sections/resume/mutations.js +172 -0
- package/lib/sections/resume/selectors.d.ts +4 -0
- package/lib/sections/resume/selectors.d.ts.map +1 -0
- package/lib/sections/resume/selectors.js +142 -0
- package/lib/sections/resume/types.d.ts +33 -0
- package/lib/sections/resume/types.d.ts.map +1 -0
- package/lib/sections/resume/types.js +8 -0
- package/lib/sections/shared/collapsibleSection.d.ts +2 -0
- package/lib/sections/shared/collapsibleSection.d.ts.map +1 -0
- package/lib/sections/shared/collapsibleSection.js +24 -0
- package/lib/sections/shared/contactTypeUtils.d.ts +7 -0
- package/lib/sections/shared/contactTypeUtils.d.ts.map +1 -0
- package/lib/sections/shared/contactTypeUtils.js +48 -0
- package/lib/sections/shared/idNodeFactory.d.ts +3 -0
- package/lib/sections/shared/idNodeFactory.d.ts.map +1 -0
- package/lib/sections/shared/idNodeFactory.js +14 -0
- package/lib/sections/shared/phoneCountries.d.ts +20 -0
- package/lib/sections/shared/phoneCountries.d.ts.map +1 -0
- package/lib/sections/shared/phoneCountries.js +1080 -0
- package/lib/sections/shared/rdfList.d.ts +3 -0
- package/lib/sections/shared/rdfList.d.ts.map +1 -0
- package/lib/sections/shared/rdfList.js +34 -0
- package/lib/sections/shared/rdfMutationHelpers.d.ts +12 -0
- package/lib/sections/shared/rdfMutationHelpers.d.ts.map +1 -0
- package/lib/sections/shared/rdfMutationHelpers.js +82 -0
- package/lib/sections/shared/rowState.d.ts +21 -0
- package/lib/sections/shared/rowState.d.ts.map +1 -0
- package/lib/sections/shared/rowState.js +52 -0
- package/lib/sections/shared/sanitizeUtils.d.ts +5 -0
- package/lib/sections/shared/sanitizeUtils.d.ts.map +1 -0
- package/lib/sections/shared/sanitizeUtils.js +22 -0
- package/lib/sections/shared/sectionCardHelpers.d.ts +11 -0
- package/lib/sections/shared/sectionCardHelpers.d.ts.map +1 -0
- package/lib/sections/shared/sectionCardHelpers.js +105 -0
- package/lib/sections/shared/types.d.ts +7 -0
- package/lib/sections/shared/types.d.ts.map +1 -0
- package/lib/sections/shared/types.js +5 -0
- package/lib/sections/skills/SkillsEditDialog.d.ts +7 -0
- package/lib/sections/skills/SkillsEditDialog.d.ts.map +1 -0
- package/lib/sections/skills/SkillsEditDialog.js +340 -0
- package/lib/sections/skills/SkillsSection.d.ts +5 -0
- package/lib/sections/skills/SkillsSection.d.ts.map +1 -0
- package/lib/sections/skills/SkillsSection.js +169 -0
- package/lib/sections/skills/mutations.d.ts +6 -0
- package/lib/sections/skills/mutations.d.ts.map +1 -0
- package/lib/sections/skills/mutations.js +110 -0
- package/lib/sections/skills/selectors.d.ts +6 -0
- package/lib/sections/skills/selectors.d.ts.map +1 -0
- package/lib/sections/skills/selectors.js +37 -0
- package/lib/sections/skills/types.d.ts +14 -0
- package/lib/sections/skills/types.d.ts.map +1 -0
- package/lib/sections/skills/types.js +5 -0
- package/lib/sections/social/SocialEditDialog.d.ts +7 -0
- package/lib/sections/social/SocialEditDialog.d.ts.map +1 -0
- package/lib/sections/social/SocialEditDialog.js +362 -0
- package/lib/sections/social/SocialSection.d.ts +8 -0
- package/lib/sections/social/SocialSection.d.ts.map +1 -0
- package/lib/sections/social/SocialSection.js +201 -0
- package/lib/sections/social/constants.d.ts +3 -0
- package/lib/sections/social/constants.d.ts.map +1 -0
- package/lib/sections/social/constants.js +16 -0
- package/lib/sections/social/helpers.d.ts +15 -0
- package/lib/sections/social/helpers.d.ts.map +1 -0
- package/lib/sections/social/helpers.js +316 -0
- package/lib/sections/social/mutations.d.ts +4 -0
- package/lib/sections/social/mutations.d.ts.map +1 -0
- package/lib/sections/social/mutations.js +298 -0
- package/lib/sections/social/selectors.d.ts +4 -0
- package/lib/sections/social/selectors.d.ts.map +1 -0
- package/lib/sections/social/selectors.js +43 -0
- package/lib/sections/social/types.d.ts +19 -0
- package/lib/sections/social/types.d.ts.map +1 -0
- package/lib/sections/social/types.js +5 -0
- package/lib/styles/BioSection.css +77 -0
- package/lib/styles/CVCard.css +107 -2
- package/lib/styles/ContactInfoEditDialog.css +153 -0
- package/lib/styles/EditDialogs.css +1028 -0
- package/lib/styles/EducationCard.css +103 -0
- package/lib/styles/HeadingSection.css +309 -0
- package/lib/styles/ProfileCard.css +10 -42
- package/lib/styles/ProfileView.css +53 -8
- package/lib/styles/ProjectsCard.css +206 -0
- package/lib/styles/QRCodeCard.css +29 -10
- package/lib/styles/SocialCard.css +41 -13
- package/lib/styles/dialog.css +209 -0
- package/lib/styles/utilities.css +638 -256
- package/lib/textUtils.d.ts +6 -0
- package/lib/textUtils.d.ts.map +1 -0
- package/lib/textUtils.js +44 -0
- package/lib/texts.d.ts +45 -4
- package/lib/texts.d.ts.map +1 -1
- package/lib/texts.js +46 -5
- package/lib/types.d.ts +2 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +5 -0
- package/lib/ui/dialog.d.ts +29 -0
- package/lib/ui/dialog.d.ts.map +1 -0
- package/lib/ui/dialog.js +269 -0
- package/lib/ui/errors.d.ts +2 -0
- package/lib/ui/errors.d.ts.map +1 -0
- package/lib/ui/errors.js +10 -0
- package/package.json +8 -6
- package/lib/CVCard.d.ts +0 -4
- package/lib/CVCard.d.ts.map +0 -1
- package/lib/CVCard.js +0 -114
- package/lib/CVPresenter.d.ts +0 -25
- package/lib/CVPresenter.d.ts.map +0 -1
- package/lib/CVPresenter.js +0 -119
- package/lib/FriendList.d.ts +0 -6
- package/lib/FriendList.d.ts.map +0 -1
- package/lib/FriendList.js +0 -27
- package/lib/ProfileCard.d.ts +0 -6
- package/lib/ProfileCard.d.ts.map +0 -1
- package/lib/ProfileCard.js +0 -62
- package/lib/SocialCard.d.ts +0 -5
- package/lib/SocialCard.d.ts.map +0 -1
- package/lib/SocialCard.js +0 -51
- package/lib/SocialPresenter.d.ts +0 -11
- package/lib/SocialPresenter.d.ts.map +0 -1
- package/lib/SocialPresenter.js +0 -117
- package/lib/StuffCard.d.ts +0 -10
- package/lib/StuffCard.d.ts.map +0 -1
- package/lib/StuffCard.js +0 -52
- package/lib/StuffPresenter.d.ts +0 -14
- package/lib/StuffPresenter.d.ts.map +0 -1
- package/lib/StuffPresenter.js +0 -53
- package/lib/presenter.d.ts +0 -14
- package/lib/presenter.d.ts.map +0 -1
- package/lib/presenter.js +0 -68
- package/lib/styles/FriendList.css +0 -12
- package/lib/styles/StuffCard.css +0 -23
- package/lib/styles/editProfile.css +0 -62
- package/lib/styles/profileRDFFormsEnforced.css +0 -427
package/lib/profile-pane.min.js
CHANGED
|
@@ -1,289 +1,2230 @@
|
|
|
1
|
-
!function(n,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("UI"),require("SolidLogic"),require("rdflib")):"function"==typeof define&&define.amd?define(["UI","SolidLogic","rdflib"],e):"object"==typeof exports?exports.ProfilePane=e(require("UI"),require("SolidLogic"),require("rdflib")):n.ProfilePane=e(n.UI,n.SolidLogic,n.rdflib)}(this,(n,e,t)=>(()=>{var i={1267(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,"/* CVCard.css */\n/* Note: Uses utilities: .section-title for cvOrg styling */\n\n.cvSection {\n margin-bottom: 1.25em;\n}\n\n.cvRole {\n margin: var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n display: flex;\n flex-direction: column;\n gap: 0.2em;\n}\n\n.cvOrg {\n font-weight: 600;\n color: var(--color-primary);\n}\n\n.cvSkill, .cvLanguage {\n text-align: left;\n margin: var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n}\n\n.cvSection h3 {\n color: var(--color-text);\n font-size: var(--font-size-lg);\n font-weight: 600;\n line-height: var(--line-height-tight);\n margin-bottom: var(--spacing-xs);\n border-bottom: 1px solid var(--color-border-pale);\n padding-bottom: var(--spacing-xs);\n}\n","",{version:3,sources:["webpack://./src/styles/CVCard.css"],names:[],mappings:"AAAA,eAAe;AACf,2DAA2D;;AAE3D;EACE,qBAAqB;AACvB;;AAEA;EACE,2BAA2B;EAC3B,gCAAgC;EAChC,oCAAoC;EACpC,aAAa;EACb,sBAAsB;EACtB,UAAU;AACZ;;AAEA;EACE,gBAAgB;EAChB,2BAA2B;AAC7B;;AAEA;EACE,gBAAgB;EAChB,2BAA2B;EAC3B,gCAAgC;EAChC,oCAAoC;AACtC;;AAEA;EACE,wBAAwB;EACxB,8BAA8B;EAC9B,gBAAgB;EAChB,qCAAqC;EACrC,gCAAgC;EAChC,iDAAiD;EACjD,iCAAiC;AACnC",sourcesContent:["/* CVCard.css */\n/* Note: Uses utilities: .section-title for cvOrg styling */\n\n.cvSection {\n margin-bottom: 1.25em;\n}\n\n.cvRole {\n margin: var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n display: flex;\n flex-direction: column;\n gap: 0.2em;\n}\n\n.cvOrg {\n font-weight: 600;\n color: var(--color-primary);\n}\n\n.cvSkill, .cvLanguage {\n text-align: left;\n margin: var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n}\n\n.cvSection h3 {\n color: var(--color-text);\n font-size: var(--font-size-lg);\n font-weight: 600;\n line-height: var(--line-height-tight);\n margin-bottom: var(--spacing-xs);\n border-bottom: 1px solid var(--color-border-pale);\n padding-bottom: var(--spacing-xs);\n}\n"],sourceRoot:""}]);const s=a},3750(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,"/* ChatWithMe.css */\n/* Uses utilities: .section-centered, .loading-text, .btn-primary, .btn-transparent */\n\n.chatSection {\n overflow-x: auto;\n}\n","",{version:3,sources:["webpack://./src/styles/ChatWithMe.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,qFAAqF;;AAErF;EACE,gBAAgB;AAClB",sourcesContent:["/* ChatWithMe.css */\n/* Uses utilities: .section-centered, .loading-text, .btn-primary, .btn-transparent */\n\n.chatSection {\n overflow-x: auto;\n}\n"],sourceRoot:""}]);const s=a},1666(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,"/* FriendList.css */\n/* Uses utilities: .list-reset, .section-title, .zebra-stripe, .flex, .gap-xs, .mb-md */\n\n.friendItem {\n padding: var(--spacing-xs) 0;\n font-size: 1em;\n color: var(--color-text-muted);\n}\n\n.friendItem:last-child {\n border-bottom: none;\n}\n","",{version:3,sources:["webpack://./src/styles/FriendList.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,uFAAuF;;AAEvF;EACE,4BAA4B;EAC5B,cAAc;EACd,8BAA8B;AAChC;;AAEA;EACE,mBAAmB;AACrB",sourcesContent:["/* FriendList.css */\n/* Uses utilities: .list-reset, .section-title, .zebra-stripe, .flex, .gap-xs, .mb-md */\n\n.friendItem {\n padding: var(--spacing-xs) 0;\n font-size: 1em;\n color: var(--color-text-muted);\n}\n\n.friendItem:last-child {\n border-bottom: none;\n}\n"],sourceRoot:""}]);const s=a},1937(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,'/* ProfileCard.css */\n/* Uses utilities: .action-button-focus, .btn-primary, .flex-column-center, .text-truncate, .text-center, .text-wrap-anywhere, .section-centered, .btn-transparent */\n\n.profileCard {\n /* Component container */\n}\n\n.image {\n width: 160px;\n height: 160px;\n border-radius: 50%;\n object-fit: cover;\n margin-bottom: var(--spacing-sm);\n box-shadow: var(--box-shadow-sm);\n border: 3px solid var(--color-primary);\n background: var(--color-card-bg);\n box-sizing: border-box;\n}\n\n.image-alt {\n width: 160px;\n height: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n margin-bottom: var(--spacing-sm);\n box-shadow: var(--box-shadow-sm);\n border: 3px solid var(--color-primary);\n background: var(--color-card-bg);\n box-sizing: border-box;\n color: var(--color-text-secondary);\n}\n\n.name {\n font-size: var(--font-size-xl);\n font-weight: 700;\n line-height: var(--line-height-tight);\n text-decoration: underline;\n text-underline-offset: 0.2em;\n margin: 0;\n letter-spacing: var(--letter-spacing-wide);\n}\n\n.intro {\n color: var(--color-text-secondary);\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n margin-bottom: var(--spacing-xs);\n max-width: 40ch;\n margin-left: auto;\n margin-right: auto;\n}\n\n.buttonSection {\n color: var(--color-text-secondary);\n font-size: 1em;\n margin-bottom: var(--spacing-xs);\n}\n\n.buttonSubSection {\n width: 100%;\n min-width: 0;\n display: grid;\n}\n\n.buttonSubSection button {\n width: 100%;\n min-width: 0;\n}\n\n/* Ensure prompt inputs stretch to fit their container */\n.add-friend-button-container input[type="text"] {\n width: 100%;\n box-sizing: border-box;\n}\n\n.qrCodeSection {\n color: var(--color-text-secondary);\n font-size: 1em;\n margin-bottom: var(--spacing-xs);\n}\n\n.details {\n color: var(--color-text-muted);\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n max-width: 45ch;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* ProfileCard styles as regular CSS */\n.profile-card {\n border: 1px solid #ccc;\n padding: 16px;\n background: white;\n}\n',"",{version:3,sources:["webpack://./src/styles/ProfileCard.css"],names:[],mappings:"AAAA,oBAAoB;AACpB,oKAAoK;;AAEpK;EACE,wBAAwB;AAC1B;;AAEA;EACE,YAAY;EACZ,aAAa;EACb,kBAAkB;EAClB,iBAAiB;EACjB,gCAAgC;EAChC,gCAAgC;EAChC,sCAAsC;EACtC,gCAAgC;EAChC,sBAAsB;AACxB;;AAEA;EACE,YAAY;EACZ,aAAa;EACb,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;EAClB,gCAAgC;EAChC,gCAAgC;EAChC,sCAAsC;EACtC,gCAAgC;EAChC,sBAAsB;EACtB,kCAAkC;AACpC;;AAEA;EACE,8BAA8B;EAC9B,gBAAgB;EAChB,qCAAqC;EACrC,0BAA0B;EAC1B,4BAA4B;EAC5B,SAAS;EACT,0CAA0C;AAC5C;;AAEA;EACE,kCAAkC;EAClC,gCAAgC;EAChC,oCAAoC;EACpC,gCAAgC;EAChC,eAAe;EACf,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA;EACE,kCAAkC;EAClC,cAAc;EACd,gCAAgC;AAClC;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA,wDAAwD;AACxD;EACE,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,kCAAkC;EAClC,cAAc;EACd,gCAAgC;AAClC;;AAEA;EACE,8BAA8B;EAC9B,gCAAgC;EAChC,oCAAoC;EACpC,eAAe;EACf,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA,sCAAsC;AACtC;EACE,sBAAsB;EACtB,aAAa;EACb,iBAAiB;AACnB",sourcesContent:['/* ProfileCard.css */\n/* Uses utilities: .action-button-focus, .btn-primary, .flex-column-center, .text-truncate, .text-center, .text-wrap-anywhere, .section-centered, .btn-transparent */\n\n.profileCard {\n /* Component container */\n}\n\n.image {\n width: 160px;\n height: 160px;\n border-radius: 50%;\n object-fit: cover;\n margin-bottom: var(--spacing-sm);\n box-shadow: var(--box-shadow-sm);\n border: 3px solid var(--color-primary);\n background: var(--color-card-bg);\n box-sizing: border-box;\n}\n\n.image-alt {\n width: 160px;\n height: 160px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n margin-bottom: var(--spacing-sm);\n box-shadow: var(--box-shadow-sm);\n border: 3px solid var(--color-primary);\n background: var(--color-card-bg);\n box-sizing: border-box;\n color: var(--color-text-secondary);\n}\n\n.name {\n font-size: var(--font-size-xl);\n font-weight: 700;\n line-height: var(--line-height-tight);\n text-decoration: underline;\n text-underline-offset: 0.2em;\n margin: 0;\n letter-spacing: var(--letter-spacing-wide);\n}\n\n.intro {\n color: var(--color-text-secondary);\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n margin-bottom: var(--spacing-xs);\n max-width: 40ch;\n margin-left: auto;\n margin-right: auto;\n}\n\n.buttonSection {\n color: var(--color-text-secondary);\n font-size: 1em;\n margin-bottom: var(--spacing-xs);\n}\n\n.buttonSubSection {\n width: 100%;\n min-width: 0;\n display: grid;\n}\n\n.buttonSubSection button {\n width: 100%;\n min-width: 0;\n}\n\n/* Ensure prompt inputs stretch to fit their container */\n.add-friend-button-container input[type="text"] {\n width: 100%;\n box-sizing: border-box;\n}\n\n.qrCodeSection {\n color: var(--color-text-secondary);\n font-size: 1em;\n margin-bottom: var(--spacing-xs);\n}\n\n.details {\n color: var(--color-text-muted);\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n max-width: 45ch;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* ProfileCard styles as regular CSS */\n.profile-card {\n border: 1px solid #ccc;\n padding: 16px;\n background: white;\n}\n'],sourceRoot:""}]);const s=a},436(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,"/* ProfileView.css */\n/* Uses utilities: .section-bg, .text-center */\n\n/* Horizontal layout for cards */\n.profile-grid .profileSection {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n margin-bottom: var(--spacing-md);\n box-sizing: border-box;\n margin-bottom: var(--spacing-md);\n overflow-wrap: anywhere;\n}\n\n@media (min-width: 900px) {\n .profile-grid .profileSection {\n margin-bottom: 0;\n }\n}\n","",{version:3,sources:["webpack://./src/styles/ProfileView.css"],names:[],mappings:"AAAA,oBAAoB;AACpB,8CAA8C;;AAE9C,gCAAgC;AAChC;EACE,WAAW;EACX,eAAe;EACf,YAAY;EACZ,sBAAsB;EACtB,gCAAgC;EAChC,sBAAsB;EACtB,gCAAgC;EAChC,uBAAuB;AACzB;;AAEA;EACE;IACE,gBAAgB;EAClB;AACF",sourcesContent:["/* ProfileView.css */\n/* Uses utilities: .section-bg, .text-center */\n\n/* Horizontal layout for cards */\n.profile-grid .profileSection {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n margin-bottom: var(--spacing-md);\n box-sizing: border-box;\n margin-bottom: var(--spacing-md);\n overflow-wrap: anywhere;\n}\n\n@media (min-width: 900px) {\n .profile-grid .profileSection {\n margin-bottom: 0;\n }\n}\n"],sourceRoot:""}]);const s=a},1134(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,'/* QRCodeCard.css */\n/* Note: Uses utilities: .text-center */\n\n/* Caption under the QR code */\n.qrCaption {\n text-align: center;\n margin-top: 0;\n font-size: 0.95em;\n color: var(--color-text-secondary);\n}\n\n.QRCode {\n width: 100%;\n max-width: 320px;\n min-width: 180px;\n margin: 0 auto;\n display: block;\n}\n\n.QRCode [role="img"]:focus {\n outline: 2px solid var(--color-primary, #7C4DFF);\n outline-offset: 2px;\n box-shadow: 0 0 0 2px rgba(124,77,255,0.2);\n}',"",{version:3,sources:["webpack://./src/styles/QRCodeCard.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,uCAAuC;;AAEvC,8BAA8B;AAC9B;EACE,kBAAkB;EAClB,aAAa;EACb,iBAAiB;EACjB,kCAAkC;AACpC;;AAEA;EACE,WAAW;EACX,gBAAgB;EAChB,gBAAgB;EAChB,cAAc;EACd,cAAc;AAChB;;AAEA;EACE,gDAAgD;EAChD,mBAAmB;EACnB,0CAA0C;AAC5C",sourcesContent:['/* QRCodeCard.css */\n/* Note: Uses utilities: .text-center */\n\n/* Caption under the QR code */\n.qrCaption {\n text-align: center;\n margin-top: 0;\n font-size: 0.95em;\n color: var(--color-text-secondary);\n}\n\n.QRCode {\n width: 100%;\n max-width: 320px;\n min-width: 180px;\n margin: 0 auto;\n display: block;\n}\n\n.QRCode [role="img"]:focus {\n outline: 2px solid var(--color-primary, #7C4DFF);\n outline-offset: 2px;\n box-shadow: 0 0 0 2px rgba(124,77,255,0.2);\n}'],sourceRoot:""}]);const s=a},1649(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,'/* SocialCard.css */\n/* Uses utilities: .list-reset, .text-wrap-anywhere, .flex, .gap-sm, .gap-lg, .rounded-sm */\n\n.socialList {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacing-lg);\n justify-content: center;\n}\n\n.socialItem {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n font-size: 1.1em;\n}\n\n.socialItem span {\n min-width: 0;\n display: block;\n}\n\n.socialItem a {\n color: var(--color-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n min-height: var(--min-touch-target);\n padding: var(--spacing-xs);\n border-radius: var(--border-radius-base);\n transition: background-color var(--animation-duration) ease;\n position: relative;\n flex: 1;\n min-width: 0;\n}\n\n.socialItem a:hover,\n.socialItem a:focus {\n text-decoration: underline;\n background-color: rgba(124, 77, 255, 0.1);\n}\n\n/* Screen reader only external link indication */\n.socialItem a[href^="http"]:after {\n content: " (external link)";\n position: absolute;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n.socialIcon {\n width: 2.5em;\n height: 2.5em;\n border-radius: var(--border-radius-base);\n background: var(--color-card-bg);\n flex-shrink: 0;\n}\n',"",{version:3,sources:["webpack://./src/styles/SocialCard.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,2FAA2F;;AAE3F;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,sBAAsB;EACtB,uBAAuB;AACzB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,2BAA2B;EAC3B,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,sBAAsB;EACtB,mCAAmC;EACnC,0BAA0B;EAC1B,wCAAwC;EACxC,2DAA2D;EAC3D,kBAAkB;EAClB,OAAO;EACP,YAAY;AACd;;AAEA;;EAEE,0BAA0B;EAC1B,yCAAyC;AAC3C;;AAEA,gDAAgD;AAChD;EACE,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,aAAa;EACb,wCAAwC;EACxC,gCAAgC;EAChC,cAAc;AAChB",sourcesContent:['/* SocialCard.css */\n/* Uses utilities: .list-reset, .text-wrap-anywhere, .flex, .gap-sm, .gap-lg, .rounded-sm */\n\n.socialList {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacing-lg);\n justify-content: center;\n}\n\n.socialItem {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n font-size: 1.1em;\n}\n\n.socialItem span {\n min-width: 0;\n display: block;\n}\n\n.socialItem a {\n color: var(--color-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n min-height: var(--min-touch-target);\n padding: var(--spacing-xs);\n border-radius: var(--border-radius-base);\n transition: background-color var(--animation-duration) ease;\n position: relative;\n flex: 1;\n min-width: 0;\n}\n\n.socialItem a:hover,\n.socialItem a:focus {\n text-decoration: underline;\n background-color: rgba(124, 77, 255, 0.1);\n}\n\n/* Screen reader only external link indication */\n.socialItem a[href^="http"]:after {\n content: " (external link)";\n position: absolute;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n.socialIcon {\n width: 2.5em;\n height: 2.5em;\n border-radius: var(--border-radius-base);\n background: var(--color-card-bg);\n flex-shrink: 0;\n}\n'],sourceRoot:""}]);const s=a},6660(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,"/* StuffCard.css */\n/* Uses utilities: .zebra-stripe */\n\n.stuffTable {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: var(--spacing-md);\n caption-side: top;\n}\n\n.stuffTable caption {\n font-weight: 600;\n padding: var(--spacing-sm);\n text-align: left;\n color: var(--color-text);\n}\n\n.stuffTable th,\n.stuffTable td {\n padding: var(--spacing-sm) var(--spacing-md);\n text-align: left;\n line-height: 1.4;\n}\n","",{version:3,sources:["webpack://./src/styles/StuffCard.css"],names:[],mappings:"AAAA,kBAAkB;AAClB,kCAAkC;;AAElC;EACE,WAAW;EACX,yBAAyB;EACzB,gCAAgC;EAChC,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;EAChB,0BAA0B;EAC1B,gBAAgB;EAChB,wBAAwB;AAC1B;;AAEA;;EAEE,4CAA4C;EAC5C,gBAAgB;EAChB,gBAAgB;AAClB",sourcesContent:["/* StuffCard.css */\n/* Uses utilities: .zebra-stripe */\n\n.stuffTable {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: var(--spacing-md);\n caption-side: top;\n}\n\n.stuffTable caption {\n font-weight: 600;\n padding: var(--spacing-sm);\n text-align: left;\n color: var(--color-text);\n}\n\n.stuffTable th,\n.stuffTable td {\n padding: var(--spacing-sm) var(--spacing-md);\n text-align: left;\n line-height: 1.4;\n}\n"],sourceRoot:""}]);const s=a},5179(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,".profile-grid .add-friend-button-container,\n.profile-grid .add-community-button-container {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xxs);\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n/* Ensure the button container can shrink properly in narrow layouts */\n.profile-grid .add-community-button-container {\n min-width: 0;\n max-width: 100%;\n}\n\n/* Allow any direct children to shrink so no element forces overflow */\n.profile-grid .add-community-button-container > * {\n min-width: 0;\n max-width: 100%;\n}\n\n.profile-grid table {\n margin: 0 !important;\n}\n\n.profile-grid td {\n padding: 0;\n}\n\n.profile-grid .add-friend-button-container .span,\n.profile-grid .add-community-button-container .span {\n display: inline-flex;\n align-items: center;\n}\n\n.profile-grid .add-friend-button-container > div,\n.profile-grid .add-community-button-container > div {\n flex-basis: 100%;\n}\n\n/* Prevent the add-community input from overflowing its flex container */\n.profile-grid .add-community-button-container input {\n min-width: 0;\n max-width: 96%;\n flex: 1 1 0;\n word-break: break-word;\n}\n\n.profile-grid .profile-image {\n width: var( --profile-image-size);\n height: var( --profile-image-size);\n margin: var(--spacing-xxxs);\n border-radius: var(--spacing-lg);\n}\n\n.profile-grid .default-profile-image {\n width: 140%;\n height: 140%;\n object-fit: cover;\n margin-left: -0.6em;\n border-radius: var(--spacing-lg);\n}","",{version:3,sources:["webpack://./src/styles/editProfile.css"],names:[],mappings:"AAAA;;EAEE,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;EACvB,eAAe;EACf,2BAA2B;AAC7B;;AAEA,sEAAsE;AACtE;EACE,YAAY;EACZ,eAAe;AACjB;;AAEA,sEAAsE;AACtE;EACE,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE,oBAAoB;AACtB;;AAEA;EACE,UAAU;AACZ;;AAEA;;EAEE,oBAAoB;EACpB,mBAAmB;AACrB;;AAEA;;EAEE,gBAAgB;AAClB;;AAEA,wEAAwE;AACxE;EACE,YAAY;EACZ,cAAc;EACd,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,iCAAiC;EACjC,kCAAkC;EAClC,2BAA2B;EAC3B,gCAAgC;AAClC;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,mBAAmB;EACnB,gCAAgC;AAClC",sourcesContent:[".profile-grid .add-friend-button-container,\n.profile-grid .add-community-button-container {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xxs);\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n/* Ensure the button container can shrink properly in narrow layouts */\n.profile-grid .add-community-button-container {\n min-width: 0;\n max-width: 100%;\n}\n\n/* Allow any direct children to shrink so no element forces overflow */\n.profile-grid .add-community-button-container > * {\n min-width: 0;\n max-width: 100%;\n}\n\n.profile-grid table {\n margin: 0 !important;\n}\n\n.profile-grid td {\n padding: 0;\n}\n\n.profile-grid .add-friend-button-container .span,\n.profile-grid .add-community-button-container .span {\n display: inline-flex;\n align-items: center;\n}\n\n.profile-grid .add-friend-button-container > div,\n.profile-grid .add-community-button-container > div {\n flex-basis: 100%;\n}\n\n/* Prevent the add-community input from overflowing its flex container */\n.profile-grid .add-community-button-container input {\n min-width: 0;\n max-width: 96%;\n flex: 1 1 0;\n word-break: break-word;\n}\n\n.profile-grid .profile-image {\n width: var( --profile-image-size);\n height: var( --profile-image-size);\n margin: var(--spacing-xxxs);\n border-radius: var(--spacing-lg);\n}\n\n.profile-grid .default-profile-image {\n width: 140%;\n height: 140%;\n object-fit: cover;\n margin-left: -0.6em;\n border-radius: var(--spacing-lg);\n}"],sourceRoot:""}]);const s=a},6776(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,'/* Delete pop up*/\n/* Make the Solid-UI delete confirmation popup appear near the last click position.\n Keep the built-in Solid-UI styling (orange border, white background) so it looks like the original.\n*/\n.profile-grid div[style*="position: relative"] > div[style*="display: grid"] {\n/* only override positioning; keep styling (border/background/etc) from solid-ui */\n position: absolute !important;\n z-index: 9999 !important;\n top: 0 !important;\n right: 0 !important;\n left: auto !important;\n display: grid !important;\n pointer-events: auto !important;\n opacity: 1 !important;\n visibility: visible !important;\n padding: 0.7em !important;\n min-width: 280px !important;\n max-width: 90vw !important;\n background: var(--color-background) !important;\n border: 0.1em solid var(--color-primary) !important;\n border-radius: var(--border-radius-base) !important;\n box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;\n grid-template-columns: auto auto !important;\n gap: 0.3em !important;\n}\n\n/* Ensure SVG icons and their buttons inside the Solid-UI delete popup have transparent backgrounds */\n.profile-grid div[style*="position: relative"] > div[style*="display: grid"] img[src$=".svg"],\n.profile-grid div[style*="position: relative"] > div[style*="display: grid"] button {\n background: transparent !important;\n}\n\n.profile-form .individualPane {\n box-shadow: none !important;\n}\n\n.profile-form p {\n padding: 0 !important;\n}\n\n.profile-form .mb-md {\n margin-bottom: 0 !important;\n}\n\n.profile-form h2 {\n margin-bottom: 1em !important;\n}\n\n.profile-form h3 {\n color: var(--color-primary) !important;\n padding: 0 !important;\n font-size: 1em !important;\n font-weight: 600 !important;\n}\n\n/* Shared form layout rules are imported from rdfFormsCommon.css */\n/* Solid-UI form sizing fixes scoped to Edit CV section */\n.profile-form .hoverControl:not(:has(> img:first-child)) {\n border: 0.1em solid rgb(136, 136, 136) !important;\n flex-direction: column !important;\n}\n\n.profile-form .hoverControl:has(> img:first-child) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n padding: 0.7em !important;\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Make sure the delete icon floats in the top-right corner of the full hoverControl wrapper */\n.profile-form .hoverControl,\n.profile-grid .hoverControl {\n position: relative !important;\n}\n\n.hoverControl > img.hoverControlHide,\n.hoverControl > [data-testid="deleteButtonWithCheck"] {\n position: absolute !important;\n top: 0.2em !important;\n right: 0.2em !important;\n width: 1.5em !important;\n height: 1.5em !important;\n align-items: center;\n justify-content: center;\n margin: 0 !important;\n float: none !important;\n transform: none !important;\n}\n\n/* When icon is 2nd or 3rd child (i.e. sibling elements exist), align it vertically to the previous item */\n.hoverControl > img.hoverControlHide:nth-child(1),\n.hoverControl > img.hoverControlHide:nth-child(2),\n.hoverControl > [data-testid="deleteButtonWithCheck"]:nth-child(1),\n.hoverControl > [data-testid="deleteButtonWithCheck"]:nth-child(2) {\n top: 50% !important;\n transform: translateY(-50%) !important;\n display: inline-flex !important;\n}\n\n/* Show the delete icon only when the container is hovered */\n.profile-grid .hoverControl:hover > img.hoverControlHide,\n.profile-grid .hoverControl:hover > [data-testid="deleteButtonWithCheck"] {\n display: inline-flex !important;\n}\n\n/* Also show the delete icon when the entire row is hovered */\n.profile-grid .attachmentTable tr:hover .hoverControl > img.hoverControlHide,\n.profile-grid .attachmentTable tr:hover .hoverControl > [data-testid="deleteButtonWithCheck"] {\n display: inline-flex !important;\n}\n\n/* Make the hover-control cell easier to hit */\n.profile-grid .hoverControl {\n padding: 0.75em !important;\n min-width: 2.5em !important;\n min-height: 2.5em !important;\n}\n\n/* When the hoverControl only contains the hidden delete icon, keep it out of layout so it doesn\'t create empty space */\n.profile-form .formFieldValue .hoverControl:has(> img.hoverControlHide) {\n min-width: 0 !important;\n min-height: 0 !important;\n width: 0 !important;\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n overflow: visible !important;\n}\n\n/* Hide delete icon only in autocomplete fields */\n.profile-grid .formFieldValue:has(input[data-testid="autocomplete-input"]) [data-testid="delete-button"] {\n display: none !important;\n}\n\n/* Keep autocomplete cancel button hidden when the user is not interacting.\n This avoids the cancel button remaining visible when focus moves away. */\n.profile-grid .formFieldValue:not(:focus-within) [data-testid="cancel-button"] {\n display: none !important;\n}\n\n.profile-grid .hoverControl:has(> img:first-child) > span {\n display: inline-flex;\n align-items: center;\n margin-left: 0.3em;\n}\n\n.profile-grid div[style*="padding: 0.5em"]:has(> img) > span {\n margin-left: 0.3em;\n vertical-align: super !important;\n}\n\n.profile-grid .hoverControl:has(> img:first-child):hover {\n background-color: transparent !important;\n}\n\n.profile-grid button:has(> img[src$=".svg"]),\n.profile-grid .formFieldValue input[type ="color"] {\n background-color: var(--color-section-bg) !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n padding: 0.5em !important;\n transition: background-color 0.2s ease, box-shadow 0.2s ease;\n padding: 0 !important;\n}\n\n/* Specific icon button should have no extra padding */\n.profile-grid button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1369241.svg"]) {\n padding: 0 !important;\n}\n\n.profile-form button {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n.profile-form input:not([type="color"]) {\n width: 99%;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.profile-form input:not([type="color"]),\n.profile-form textarea,\n.profile-form select {\n max-width: 96%;\n min-width: 0;\n box-sizing: border-box ;\n font: inherit;\n color: var(--color-text);\n background-color: var(--color-card-bg) !important;\n border: 1px solid var(--color-border-pale);\n}\n\n.profile-form textarea {\n border-color: var(--color-border-pale) !important;\n}\n\n.profile-form input[type="date"],\n.profile-form input[type="month"],\n.profile-form input[type="week"],\n.profile-form input[type="time"],\n.profile-form input[type="datetime-local"] {\n min-height: var(--min-touch-target);\n}\n\n.profile-form .hoverControl:has(> img:first-child):focus-visible,\n.profile-form button:focus-visible,\n.profile-form input:not([type="color"]):focus-visible,\n.profile-form textarea:focus-visible,\n.profile-form select:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary) !important;\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n.profile-form input[type="url"] {\n width: 100%;\n}\n\n.profile-form select#formSelect {\n width: 100%;\n max-width: 97%;\n box-sizing: border-box;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Remove border/padding from the first wrapper div (and its first child wrapper). */\n.profile-form > div:first-of-type,\n.profile-form > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Remove border/padding from the inner div of the first wrapper in the contact section. */\nsection[aria-labelledby="edit-profile-contact-heading"] .profile-form > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* In contactPane, remove border/padding from all direct child divs. */\n.contactPane > div {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */\n.profile-form :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {\n display: flex;\n}\n\n/* for the Resume inside corporation choice */\n/* Add space between classifierBox label and select box */\n.profile-form .choiceBox .classifierBox-label {\n /* Optional: ensure label doesn\'t have extra margin */\n margin-right: 0;\n padding-left: 0.3em;\n}\n.profile-form .choiceBox .choiceBox-selectBox select {\n margin-left: 2.1em !important;\n}\n\n/* for the Resume orga details */\n/* Add space between classifierBox label and select box */\n.profile-form .classifierBox .classifierBox-label {\n /* Match .formFieldName for alignment */\n margin-right: 0;\n padding-left: 0.3em;\n width: 8em;\n padding: 0.3em;\n vertical-align: middle;\n}\n.profile-form .classifierBox .classifierBox-selectBox {\n margin-left: 0 !important;\n}\n\n.profile-form .classifierBox .classifierBox-selectBox select {\n margin-left: 0 !important;\n}\n\n/* for the social media */\n/* Add space between classifierBox label and select box */\nsection[data-testid="edit-social-section"] .classifierBox-label {\n /* Optional: ensure label doesn\'t have extra margin */\n margin-right: 0;\n padding-left: 0.3em;\n}\nsection[data-testid="edit-social-section"] .classifierBox-selectBox select {\n margin-left: 0.7em !important;\n}\n\n.profile-form :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {\n margin-bottom: 0;\n}\n\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n flex: 1;\n min-width: 0;\n}\n\n.profile-form textarea,\n.profile-form .formFieldValue textarea {\n appearance: none;\n -webkit-appearance: none;\n border: .05em solid #88c !important;\n border-style: solid !important;\n border-width: .05em !important;\n border-color: #88c !important;\n border-radius: 0.2em !important;\n width: 99%;\n box-sizing: border-box;\n margin-top: var(--spacing-xs);\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Add horizontal gap between label and textarea for all label+textarea pairs. */\n.profile-form div:has(> a) + div:has(textarea) {\n margin-left: var(--spacing-sm);\n}\n\n/* Center textarea label vertically in flex rows. */\n.profile-form div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) {\n align-items: flex-start;\n}\n\n.profile-form div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {\n padding-left: var(--spacing-xs);\n padding-top: var(--spacing-sm);\n}\n\n\n.profile-form :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {\n padding-top: 0.55em !important;\n}\n\n\n.profile-form input:disabled,\n.profile-form textarea:disabled,\n.profile-form select:disabled,\n.profile-form input[readonly],\n.profile-form textarea[readonly],\n.profile-form input:read-only,\n.profile-form textarea:read-only {\n background-color: var(--color-background) !important;\n cursor: not-allowed;\n opacity: 0.75;\n border: 0.05em solid white !important;\n}\n\n.webidControl table td div.contactPane.namedPane {\n border: none !important;\n}\n\n/* Hide the edit icon used by solid-ui (noun_253504.svg and noun_1180158.svg) when it appears as an <img> */\nimg[src*="noun_253504.svg"],\nimg[src*="noun_1180158.svg"] {\n display: none !important;\n width: 0 !important;\n height: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n/* Ensure the parent button for that icon doesn\'t add padding/margin or affect layout */\nbutton:has(> img[src*="noun_253504.svg"]),\nbutton:has(> img[src*="noun_1180158.svg"]) {\n display: none !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n background: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n}\n\n/* Exceptions: allow these icons (and their buttons) when they\'re part of the add-friend or add-community flows. */\n.profile-grid .profileSection .add-friend-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"],\n.profile-grid .profileSection .add-community-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"],\n.profile-grid .profileSection .add-friend-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"]),\n.profile-grid .profileSection .add-community-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"]) {\n display: inline-flex !important;\n width: auto !important;\n height: auto !important;\n overflow: visible !important;\n}\n\n\n/* Exception: allow “Continue” buttons inside add-friend and add-community button containers. */\n.profile-grid .profileSection .add-friend-button-container button:has(> img[title="Continue"]),\n.profile-grid .profileSection .add-community-button-container button:has(> img[title="Continue"]),\n.profile-grid .profileSection .add-friend-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"]),\n.profile-grid .profileSection .add-community-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"]),\n.profile-grid .profileSection .add-friend-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"],\n.profile-grid .profileSection .add-community-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"] {\n display: inline-flex !important;\n width: 2em !important;\n height: 2em !important;\n overflow: visible !important;\n}\n',"",{version:3,sources:["webpack://./src/styles/profileRDFFormsEnforced.css"],names:[],mappings:"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",sourcesContent:['/* Delete pop up*/\n/* Make the Solid-UI delete confirmation popup appear near the last click position.\n Keep the built-in Solid-UI styling (orange border, white background) so it looks like the original.\n*/\n.profile-grid div[style*="position: relative"] > div[style*="display: grid"] {\n/* only override positioning; keep styling (border/background/etc) from solid-ui */\n position: absolute !important;\n z-index: 9999 !important;\n top: 0 !important;\n right: 0 !important;\n left: auto !important;\n display: grid !important;\n pointer-events: auto !important;\n opacity: 1 !important;\n visibility: visible !important;\n padding: 0.7em !important;\n min-width: 280px !important;\n max-width: 90vw !important;\n background: var(--color-background) !important;\n border: 0.1em solid var(--color-primary) !important;\n border-radius: var(--border-radius-base) !important;\n box-shadow: 0 0.5em 0.9em rgba(0, 0, 0, 0.2) !important;\n grid-template-columns: auto auto !important;\n gap: 0.3em !important;\n}\n\n/* Ensure SVG icons and their buttons inside the Solid-UI delete popup have transparent backgrounds */\n.profile-grid div[style*="position: relative"] > div[style*="display: grid"] img[src$=".svg"],\n.profile-grid div[style*="position: relative"] > div[style*="display: grid"] button {\n background: transparent !important;\n}\n\n.profile-form .individualPane {\n box-shadow: none !important;\n}\n\n.profile-form p {\n padding: 0 !important;\n}\n\n.profile-form .mb-md {\n margin-bottom: 0 !important;\n}\n\n.profile-form h2 {\n margin-bottom: 1em !important;\n}\n\n.profile-form h3 {\n color: var(--color-primary) !important;\n padding: 0 !important;\n font-size: 1em !important;\n font-weight: 600 !important;\n}\n\n/* Shared form layout rules are imported from rdfFormsCommon.css */\n/* Solid-UI form sizing fixes scoped to Edit CV section */\n.profile-form .hoverControl:not(:has(> img:first-child)) {\n border: 0.1em solid rgb(136, 136, 136) !important;\n flex-direction: column !important;\n}\n\n.profile-form .hoverControl:has(> img:first-child) {\n background-color: transparent !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n padding: 0.7em !important;\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Make sure the delete icon floats in the top-right corner of the full hoverControl wrapper */\n.profile-form .hoverControl,\n.profile-grid .hoverControl {\n position: relative !important;\n}\n\n.hoverControl > img.hoverControlHide,\n.hoverControl > [data-testid="deleteButtonWithCheck"] {\n position: absolute !important;\n top: 0.2em !important;\n right: 0.2em !important;\n width: 1.5em !important;\n height: 1.5em !important;\n align-items: center;\n justify-content: center;\n margin: 0 !important;\n float: none !important;\n transform: none !important;\n}\n\n/* When icon is 2nd or 3rd child (i.e. sibling elements exist), align it vertically to the previous item */\n.hoverControl > img.hoverControlHide:nth-child(1),\n.hoverControl > img.hoverControlHide:nth-child(2),\n.hoverControl > [data-testid="deleteButtonWithCheck"]:nth-child(1),\n.hoverControl > [data-testid="deleteButtonWithCheck"]:nth-child(2) {\n top: 50% !important;\n transform: translateY(-50%) !important;\n display: inline-flex !important;\n}\n\n/* Show the delete icon only when the container is hovered */\n.profile-grid .hoverControl:hover > img.hoverControlHide,\n.profile-grid .hoverControl:hover > [data-testid="deleteButtonWithCheck"] {\n display: inline-flex !important;\n}\n\n/* Also show the delete icon when the entire row is hovered */\n.profile-grid .attachmentTable tr:hover .hoverControl > img.hoverControlHide,\n.profile-grid .attachmentTable tr:hover .hoverControl > [data-testid="deleteButtonWithCheck"] {\n display: inline-flex !important;\n}\n\n/* Make the hover-control cell easier to hit */\n.profile-grid .hoverControl {\n padding: 0.75em !important;\n min-width: 2.5em !important;\n min-height: 2.5em !important;\n}\n\n/* When the hoverControl only contains the hidden delete icon, keep it out of layout so it doesn\'t create empty space */\n.profile-form .formFieldValue .hoverControl:has(> img.hoverControlHide) {\n min-width: 0 !important;\n min-height: 0 !important;\n width: 0 !important;\n height: 0 !important;\n padding: 0 !important;\n margin: 0 !important;\n overflow: visible !important;\n}\n\n/* Hide delete icon only in autocomplete fields */\n.profile-grid .formFieldValue:has(input[data-testid="autocomplete-input"]) [data-testid="delete-button"] {\n display: none !important;\n}\n\n/* Keep autocomplete cancel button hidden when the user is not interacting.\n This avoids the cancel button remaining visible when focus moves away. */\n.profile-grid .formFieldValue:not(:focus-within) [data-testid="cancel-button"] {\n display: none !important;\n}\n\n.profile-grid .hoverControl:has(> img:first-child) > span {\n display: inline-flex;\n align-items: center;\n margin-left: 0.3em;\n}\n\n.profile-grid div[style*="padding: 0.5em"]:has(> img) > span {\n margin-left: 0.3em;\n vertical-align: super !important;\n}\n\n.profile-grid .hoverControl:has(> img:first-child):hover {\n background-color: transparent !important;\n}\n\n.profile-grid button:has(> img[src$=".svg"]),\n.profile-grid .formFieldValue input[type ="color"] {\n background-color: var(--color-section-bg) !important;\n border: none !important;\n margin: 0 !important;\n border-radius: 0 !important;\n box-shadow: none !important;\n padding: 0.5em !important;\n transition: background-color 0.2s ease, box-shadow 0.2s ease;\n padding: 0 !important;\n}\n\n/* Specific icon button should have no extra padding */\n.profile-grid button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1369241.svg"]) {\n padding: 0 !important;\n}\n\n.profile-form button {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n.profile-form input:not([type="color"]) {\n width: 99%;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.profile-form input:not([type="color"]),\n.profile-form textarea,\n.profile-form select {\n max-width: 96%;\n min-width: 0;\n box-sizing: border-box ;\n font: inherit;\n color: var(--color-text);\n background-color: var(--color-card-bg) !important;\n border: 1px solid var(--color-border-pale);\n}\n\n.profile-form textarea {\n border-color: var(--color-border-pale) !important;\n}\n\n.profile-form input[type="date"],\n.profile-form input[type="month"],\n.profile-form input[type="week"],\n.profile-form input[type="time"],\n.profile-form input[type="datetime-local"] {\n min-height: var(--min-touch-target);\n}\n\n.profile-form .hoverControl:has(> img:first-child):focus-visible,\n.profile-form button:focus-visible,\n.profile-form input:not([type="color"]):focus-visible,\n.profile-form textarea:focus-visible,\n.profile-form select:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary) !important;\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n.profile-form input[type="url"] {\n width: 100%;\n}\n\n.profile-form select#formSelect {\n width: 100%;\n max-width: 97%;\n box-sizing: border-box;\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Remove border/padding from the first wrapper div (and its first child wrapper). */\n.profile-form > div:first-of-type,\n.profile-form > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Remove border/padding from the inner div of the first wrapper in the contact section. */\nsection[aria-labelledby="edit-profile-contact-heading"] .profile-form > div:first-of-type > div:first-of-type {\n border: none !important;\n padding: 0 !important;\n}\n\n/* In contactPane, remove border/padding from all direct child divs. */\n.contactPane > div {\n border: none !important;\n padding: 0 !important;\n}\n\n/* Align schema.org, solid terms, FOAF, vCard, and org field labels with their input values. */\n.profile-form :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) {\n display: flex;\n}\n\n/* for the Resume inside corporation choice */\n/* Add space between classifierBox label and select box */\n.profile-form .choiceBox .classifierBox-label {\n /* Optional: ensure label doesn\'t have extra margin */\n margin-right: 0;\n padding-left: 0.3em;\n}\n.profile-form .choiceBox .choiceBox-selectBox select {\n margin-left: 2.1em !important;\n}\n\n/* for the Resume orga details */\n/* Add space between classifierBox label and select box */\n.profile-form .classifierBox .classifierBox-label {\n /* Match .formFieldName for alignment */\n margin-right: 0;\n padding-left: 0.3em;\n width: 8em;\n padding: 0.3em;\n vertical-align: middle;\n}\n.profile-form .classifierBox .classifierBox-selectBox {\n margin-left: 0 !important;\n}\n\n.profile-form .classifierBox .classifierBox-selectBox select {\n margin-left: 0 !important;\n}\n\n/* for the social media */\n/* Add space between classifierBox label and select box */\nsection[data-testid="edit-social-section"] .classifierBox-label {\n /* Optional: ensure label doesn\'t have extra margin */\n margin-right: 0;\n padding-left: 0.3em;\n}\nsection[data-testid="edit-social-section"] .classifierBox-selectBox select {\n margin-left: 0.7em !important;\n}\n\n.profile-form :not(.choiceBox):has(> .formFieldName):has(> .formFieldValue) > .formFieldValue {\n margin-bottom: 0;\n}\n\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]),\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n}\n\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://schema.org/"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/solid/terms#"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://xmlns.com/foaf/0.1/"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/2006/vcard/ns"]) + .formFieldValue,\n.profile-form :not(.choiceBox) > .formFieldName:has(a[href*="http://www.w3.org/ns/org#"]) + .formFieldValue {\n display: inline-flex;\n align-items: center;\n vertical-align: middle;\n flex: 1;\n min-width: 0;\n}\n\n.profile-form textarea,\n.profile-form .formFieldValue textarea {\n appearance: none;\n -webkit-appearance: none;\n border: .05em solid #88c !important;\n border-style: solid !important;\n border-width: .05em !important;\n border-color: #88c !important;\n border-radius: 0.2em !important;\n width: 99%;\n box-sizing: border-box;\n margin-top: var(--spacing-xs);\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n/* Add horizontal gap between label and textarea for all label+textarea pairs. */\n.profile-form div:has(> a) + div:has(textarea) {\n margin-left: var(--spacing-sm);\n}\n\n/* Center textarea label vertically in flex rows. */\n.profile-form div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) {\n align-items: flex-start;\n}\n\n.profile-form div[style*="display: flex"][style*="flex-direction: row"]:has(textarea) > div:has(> a) {\n padding-left: var(--spacing-xs);\n padding-top: var(--spacing-sm);\n}\n\n\n.profile-form :not(.choiceBox):has(> .formFieldValue input[data-testid="autocomplete-input"]) > .formFieldName {\n padding-top: 0.55em !important;\n}\n\n\n.profile-form input:disabled,\n.profile-form textarea:disabled,\n.profile-form select:disabled,\n.profile-form input[readonly],\n.profile-form textarea[readonly],\n.profile-form input:read-only,\n.profile-form textarea:read-only {\n background-color: var(--color-background) !important;\n cursor: not-allowed;\n opacity: 0.75;\n border: 0.05em solid white !important;\n}\n\n.webidControl table td div.contactPane.namedPane {\n border: none !important;\n}\n\n/* Hide the edit icon used by solid-ui (noun_253504.svg and noun_1180158.svg) when it appears as an <img> */\nimg[src*="noun_253504.svg"],\nimg[src*="noun_1180158.svg"] {\n display: none !important;\n width: 0 !important;\n height: 0 !important;\n margin: 0 !important;\n padding: 0 !important;\n}\n\n/* Ensure the parent button for that icon doesn\'t add padding/margin or affect layout */\nbutton:has(> img[src*="noun_253504.svg"]),\nbutton:has(> img[src*="noun_1180158.svg"]) {\n display: none !important;\n padding: 0 !important;\n margin: 0 !important;\n border: none !important;\n background: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n}\n\n/* Exceptions: allow these icons (and their buttons) when they\'re part of the add-friend or add-community flows. */\n.profile-grid .profileSection .add-friend-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"],\n.profile-grid .profileSection .add-community-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"],\n.profile-grid .profileSection .add-friend-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"]),\n.profile-grid .profileSection .add-community-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_253504.svg"]) {\n display: inline-flex !important;\n width: auto !important;\n height: auto !important;\n overflow: visible !important;\n}\n\n\n/* Exception: allow “Continue” buttons inside add-friend and add-community button containers. */\n.profile-grid .profileSection .add-friend-button-container button:has(> img[title="Continue"]),\n.profile-grid .profileSection .add-community-button-container button:has(> img[title="Continue"]),\n.profile-grid .profileSection .add-friend-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"]),\n.profile-grid .profileSection .add-community-button-container button:has(> img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"]),\n.profile-grid .profileSection .add-friend-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"],\n.profile-grid .profileSection .add-community-button-container img[src="https://solidos.github.io/solid-ui/src/icons/noun_1180158.svg"] {\n display: inline-flex !important;\n width: 2em !important;\n height: 2em !important;\n overflow: visible !important;\n}\n'],sourceRoot:""}]);const s=a},5092(n,e,t){"use strict";t.d(e,{A:()=>s});var i=t(1354),o=t.n(i),r=t(6314),a=t.n(r)()(o());a.push([n.id,'/* Utility-first CSS classes for layout, spacing, and responsiveness */\n\n:root {\n --profile-image-size: 3em;\n}\n\n@media (max-width: 1000px) {\n .profile-grid,\n .profile-grid * {\n font-size: 2rem !important;\n }\n\n .profile-grid .actionButton,\n .profile-grid .searchInput,\n .profile-grid .flatButton,\n .profile-grid .buttonSection button,\n .profile-grid .groupButtonsList button {\n min-height: calc(var(--min-touch-target) + 0.5em) !important;\n font-size: 2rem !important;\n padding: 1em 1em !important;\n }\n}\n\n.actionButton {\n width: 100%;\n min-width: 180px;\n max-width: 320px;\n box-sizing: border-box;\n display: inline-block;\n}\n\n/* ===========================================\n PROFILE GRID LAYOUT\n =========================================== */\n\n.profile-grid {\n display: grid;\n /* Allow the grid to shrink below 30em on small viewports to avoid overflow */\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 30em), 1fr));\n gap: var(--spacing-lg);\n background: var(--color-background);\n}\n\n.profile-header,\n.profile-footer {\n grid-column: 1 / -1;\n}\n\n.center {\n justify-content: center;\n align-items: center;\n}\n\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n\n/* Spacing utilities using CSS variables */\n.gap-xs { gap: var(--spacing-xs); }\n.gap-sm { gap: var(--spacing-sm); }\n.gap-md { gap: var(--spacing-md); }\n.gap-lg { gap: var(--spacing-lg); }\n.gap-xl { gap: var(--spacing-xl); }\n\n.mt-xs { margin-top: var(--spacing-xs); }\n.mt-sm { margin-top: var(--spacing-sm); }\n.mt-md { margin-top: var(--spacing-md); }\n.mt-lg { margin-top: var(--spacing-lg); }\n\n.mb-xs { margin-bottom: var(--spacing-xs); }\n.mb-sm { margin-bottom: var(--spacing-sm); }\n.mb-md { margin-bottom: var(--spacing-md); }\n.mb-lg { margin-bottom: var(--spacing-lg); }\n\n.p-xs { padding: var(--spacing-xs); }\n.p-sm { padding: var(--spacing-sm); }\n.p-md { padding: var(--spacing-md); }\n.p-lg { padding: var(--spacing-lg); }\n\n.rounded { border-radius: var(--border-radius-full); }\n.rounded-sm { border-radius: var(--border-radius-base); }\n\n.shadow { box-shadow: var(--box-shadow); }\n.shadow-sm { box-shadow: var(--box-shadow-sm); }\n\n.bg-primary {\n background: var(--color-primary);\n color: #fff;\n}\n.bg-card {\n background: var(--color-card-bg);\n}\n\n/* Accessibility utilities */\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.min-touch-target {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n/* Enhanced accessibility utilities */\n.visually-hidden {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n.visually-hidden.focusable:focus,\n.visually-hidden.focusable:active {\n position: static !important;\n width: auto !important;\n height: auto !important;\n padding: inherit !important;\n margin: inherit !important;\n overflow: visible !important;\n clip: auto !important;\n white-space: inherit !important;\n}\n\n/* Skip links utility */\n.skip-links {\n position: absolute;\n top: -100px;\n left: 0;\n z-index: 1000;\n}\n\n.skip-links a {\n position: absolute;\n left: 6px;\n top: 6px;\n padding: var(--spacing-sm);\n background: var(--color-primary);\n color: white;\n text-decoration: none;\n border-radius: var(--border-radius-base);\n}\n\n.skip-links a:focus {\n top: 6px;\n}\n\n.reduced-motion {\n animation: none !important;\n transition: none !important;\n}\n\n/* Focus management */\n.focus-ring {\n outline: 2px solid var(--color-primary);\n outline-offset: 2px;\n}\n\n.no-focus-ring {\n outline: none;\n}\n\n.no-focus-ring:focus-visible {\n outline: none;\n box-shadow: none;\n}\n\n/* ARIA live regions */\n.live-region {\n position: absolute;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n/* Note: Use aria-live="polite" or aria-live="assertive" HTML attributes with .live-region */\n\n/* Text scaling utilities */\n.text-scale-friendly {\n line-height: 1.5;\n max-width: 70ch; /* Optimal reading length */\n}\n\n/* Text accessibility utilities */\n.text-readable {\n line-height: var(--line-height-base);\n max-width: 65ch;\n}\n\n.text-lg {\n font-size: var(--font-size-lg);\n line-height: var(--line-height-base);\n}\n\n.text-small {\n font-size: max(var(--font-size-sm), var(--min-font-size));\n line-height: var(--min-line-height);\n}\n\n.text-contrast-high {\n color: var(--color-text);\n font-weight: 600;\n}\n\n:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary);\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n}\n\n/* Prevent labels from appearing focusable to keyboard users. */\nlabel:focus,\nlabel:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n\n/* Better focus for text elements */\n.focusable-text:focus {\n background-color: rgba(124, 77, 255, 0.1);\n outline: 2px solid var(--color-primary);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n/* High contrast text */\n.high-contrast {\n color: var(--color-text);\n background: var(--color-background);\n border: 1px solid var(--color-border-pale);\n}\n\n/* ===========================================\n CONSOLIDATED COMPONENT PATTERNS\n =========================================== */\n\n/* Primary Button - used by ChatWithMe, ProfileCard */\n.btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.action-button-focus:focus,\n.action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n/* List Reset - used by FriendList, SocialCard, nav */\n.list-reset {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n/* Zebra Striping - used by FriendList, StuffCard tables */\n.zebra-stripe tr:nth-child(even),\n.zebra-stripe > *:nth-child(even) {\n background-color: rgba(0, 0, 0, 0.02);\n}\n\n/* Section Title - primary colored heading */\n.section-title {\n font-size: 1.25em;\n font-weight: 600;\n color: var(--color-primary);\n margin: 0;\n}\n\n/* Text Overflow - used by ProfileCard, SocialCard */\n.text-truncate {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.text-wrap-anywhere {\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n/* Loading Text - primary colored centered loading indicator */\n.loading-text {\n color: var(--color-primary);\n text-align: center;\n margin: var(--spacing-md) 0;\n}\n\n/* Centered Section - flex column with center alignment */\n.section-centered {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* Card Section Background */\n.section-bg {\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n padding: var(--spacing-md);\n}\n\n\n/* Transparent button override (for solid-ui integration) */\n.btn-transparent {\n background-color: transparent;\n}\n\n.btn-transparent:hover {\n background-color: transparent;\n}\n',"",{version:3,sources:["webpack://./src/styles/utilities.css"],names:[],mappings:"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",sourcesContent:['/* Utility-first CSS classes for layout, spacing, and responsiveness */\n\n:root {\n --profile-image-size: 3em;\n}\n\n@media (max-width: 1000px) {\n .profile-grid,\n .profile-grid * {\n font-size: 2rem !important;\n }\n\n .profile-grid .actionButton,\n .profile-grid .searchInput,\n .profile-grid .flatButton,\n .profile-grid .buttonSection button,\n .profile-grid .groupButtonsList button {\n min-height: calc(var(--min-touch-target) + 0.5em) !important;\n font-size: 2rem !important;\n padding: 1em 1em !important;\n }\n}\n\n.actionButton {\n width: 100%;\n min-width: 180px;\n max-width: 320px;\n box-sizing: border-box;\n display: inline-block;\n}\n\n/* ===========================================\n PROFILE GRID LAYOUT\n =========================================== */\n\n.profile-grid {\n display: grid;\n /* Allow the grid to shrink below 30em on small viewports to avoid overflow */\n grid-template-columns: repeat(auto-fit, minmax(min(100%, 30em), 1fr));\n gap: var(--spacing-lg);\n background: var(--color-background);\n}\n\n.profile-header,\n.profile-footer {\n grid-column: 1 / -1;\n}\n\n.center {\n justify-content: center;\n align-items: center;\n}\n\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n\n/* Spacing utilities using CSS variables */\n.gap-xs { gap: var(--spacing-xs); }\n.gap-sm { gap: var(--spacing-sm); }\n.gap-md { gap: var(--spacing-md); }\n.gap-lg { gap: var(--spacing-lg); }\n.gap-xl { gap: var(--spacing-xl); }\n\n.mt-xs { margin-top: var(--spacing-xs); }\n.mt-sm { margin-top: var(--spacing-sm); }\n.mt-md { margin-top: var(--spacing-md); }\n.mt-lg { margin-top: var(--spacing-lg); }\n\n.mb-xs { margin-bottom: var(--spacing-xs); }\n.mb-sm { margin-bottom: var(--spacing-sm); }\n.mb-md { margin-bottom: var(--spacing-md); }\n.mb-lg { margin-bottom: var(--spacing-lg); }\n\n.p-xs { padding: var(--spacing-xs); }\n.p-sm { padding: var(--spacing-sm); }\n.p-md { padding: var(--spacing-md); }\n.p-lg { padding: var(--spacing-lg); }\n\n.rounded { border-radius: var(--border-radius-full); }\n.rounded-sm { border-radius: var(--border-radius-base); }\n\n.shadow { box-shadow: var(--box-shadow); }\n.shadow-sm { box-shadow: var(--box-shadow-sm); }\n\n.bg-primary {\n background: var(--color-primary);\n color: #fff;\n}\n.bg-card {\n background: var(--color-card-bg);\n}\n\n/* Accessibility utilities */\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.min-touch-target {\n min-height: var(--min-touch-target);\n min-width: var(--min-touch-target);\n}\n\n/* Enhanced accessibility utilities */\n.visually-hidden {\n position: absolute !important;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n\n.visually-hidden.focusable:focus,\n.visually-hidden.focusable:active {\n position: static !important;\n width: auto !important;\n height: auto !important;\n padding: inherit !important;\n margin: inherit !important;\n overflow: visible !important;\n clip: auto !important;\n white-space: inherit !important;\n}\n\n/* Skip links utility */\n.skip-links {\n position: absolute;\n top: -100px;\n left: 0;\n z-index: 1000;\n}\n\n.skip-links a {\n position: absolute;\n left: 6px;\n top: 6px;\n padding: var(--spacing-sm);\n background: var(--color-primary);\n color: white;\n text-decoration: none;\n border-radius: var(--border-radius-base);\n}\n\n.skip-links a:focus {\n top: 6px;\n}\n\n.reduced-motion {\n animation: none !important;\n transition: none !important;\n}\n\n/* Focus management */\n.focus-ring {\n outline: 2px solid var(--color-primary);\n outline-offset: 2px;\n}\n\n.no-focus-ring {\n outline: none;\n}\n\n.no-focus-ring:focus-visible {\n outline: none;\n box-shadow: none;\n}\n\n/* ARIA live regions */\n.live-region {\n position: absolute;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n/* Note: Use aria-live="polite" or aria-live="assertive" HTML attributes with .live-region */\n\n/* Text scaling utilities */\n.text-scale-friendly {\n line-height: 1.5;\n max-width: 70ch; /* Optimal reading length */\n}\n\n/* Text accessibility utilities */\n.text-readable {\n line-height: var(--line-height-base);\n max-width: 65ch;\n}\n\n.text-lg {\n font-size: var(--font-size-lg);\n line-height: var(--line-height-base);\n}\n\n.text-small {\n font-size: max(var(--font-size-sm), var(--min-font-size));\n line-height: var(--min-line-height);\n}\n\n.text-contrast-high {\n color: var(--color-text);\n font-weight: 600;\n}\n\n:focus-visible {\n outline: var(--focus-ring-width) solid var(--color-primary);\n outline-offset: 2px;\n box-shadow: 0 0 0 1px var(--color-background);\n}\n\n:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n}\n\n/* Prevent labels from appearing focusable to keyboard users. */\nlabel:focus,\nlabel:focus-visible {\n outline: none !important;\n box-shadow: none !important;\n}\n\n/* Better focus for text elements */\n.focusable-text:focus {\n background-color: rgba(124, 77, 255, 0.1);\n outline: 2px solid var(--color-primary);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n/* High contrast text */\n.high-contrast {\n color: var(--color-text);\n background: var(--color-background);\n border: 1px solid var(--color-border-pale);\n}\n\n/* ===========================================\n CONSOLIDATED COMPONENT PATTERNS\n =========================================== */\n\n/* Primary Button - used by ChatWithMe, ProfileCard */\n.btn-primary {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n background: var(--color-primary);\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n.btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n/* Action Button Focus - used by ChatWithMe, ProfileCard */\n.action-button-focus:focus,\n.action-button-focus:focus-visible {\n outline: 3px solid var(--color-primary) !important;\n outline-offset: 2px !important;\n box-shadow: 0 0 0 2px var(--color-background), 0 0 0 5px rgba(124, 77, 255, 0.25) !important;\n z-index: 1;\n}\n\n/* List Reset - used by FriendList, SocialCard, nav */\n.list-reset {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n/* Zebra Striping - used by FriendList, StuffCard tables */\n.zebra-stripe tr:nth-child(even),\n.zebra-stripe > *:nth-child(even) {\n background-color: rgba(0, 0, 0, 0.02);\n}\n\n/* Section Title - primary colored heading */\n.section-title {\n font-size: 1.25em;\n font-weight: 600;\n color: var(--color-primary);\n margin: 0;\n}\n\n/* Text Overflow - used by ProfileCard, SocialCard */\n.text-truncate {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.text-wrap-anywhere {\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n/* Loading Text - primary colored centered loading indicator */\n.loading-text {\n color: var(--color-primary);\n text-align: center;\n margin: var(--spacing-md) 0;\n}\n\n/* Centered Section - flex column with center alignment */\n.section-centered {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* Card Section Background */\n.section-bg {\n background: var(--color-section-bg);\n border-radius: var(--border-radius-full);\n box-shadow: var(--box-shadow);\n padding: var(--spacing-md);\n}\n\n\n/* Transparent button override (for solid-ui integration) */\n.btn-transparent {\n background-color: transparent;\n}\n\n.btn-transparent:hover {\n background-color: transparent;\n}\n'],sourceRoot:""}]);const s=a},6314(n){"use strict";n.exports=function(n){var e=[];return e.toString=function(){return this.map(function(e){var t="",i=void 0!==e[5];return e[4]&&(t+="@supports (".concat(e[4],") {")),e[2]&&(t+="@media ".concat(e[2]," {")),i&&(t+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),t+=n(e),i&&(t+="}"),e[2]&&(t+="}"),e[4]&&(t+="}"),t}).join("")},e.i=function(n,t,i,o,r){"string"==typeof n&&(n=[[null,n,void 0]]);var a={};if(i)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(a[l]=!0)}for(var c=0;c<n.length;c++){var d=[].concat(n[c]);i&&a[d[0]]||(void 0!==r&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),t&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=t):d[2]=t),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),e.push(d))}},e}},1354(n){"use strict";n.exports=function(n){var e=n[1],t=n[3];if(!t)return e;if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),r="/*# ".concat(o," */");return[e].concat([r]).join("\n")}return[e].join("\n")}},6320(n){"use strict";var e={single_source_shortest_paths:function(n,t,i){var o={},r={};r[t]=0;var a,s,l,c,d,A,u,p=e.PriorityQueue.make();for(p.push(t,0);!p.empty();)for(l in s=(a=p.pop()).value,c=a.cost,d=n[s]||{})d.hasOwnProperty(l)&&(A=c+d[l],u=r[l],(void 0===r[l]||u>A)&&(r[l]=A,p.push(l,A),o[l]=s));if(void 0!==i&&void 0===r[i]){var m=["Could not find a path from ",t," to ",i,"."].join("");throw new Error(m)}return o},extract_shortest_path_from_predecessor_list:function(n,e){for(var t=[],i=e;i;)t.push(i),n[i],i=n[i];return t.reverse(),t},find_path:function(n,t,i){var o=e.single_source_shortest_paths(n,t,i);return e.extract_shortest_path_from_predecessor_list(o,i)},PriorityQueue:{make:function(n){var t,i=e.PriorityQueue,o={};for(t in n=n||{},i)i.hasOwnProperty(t)&&(o[t]=i[t]);return o.queue=[],o.sorter=n.sorter||i.default_sorter,o},default_sorter:function(n,e){return n.cost-e.cost},push:function(n,e){var t={value:n,cost:e};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};n.exports=e},7583(n,e,t){const i=t(1333),o=t(157),r=t(7899),a=t(6756);function s(n,e,t,r,a){const s=[].slice.call(arguments,1),l=s.length,c="function"==typeof s[l-1];if(!c&&!i())throw new Error("Callback required as last argument");if(!c){if(l<1)throw new Error("Too few arguments provided");return 1===l?(t=e,e=r=void 0):2!==l||e.getContext||(r=t,t=e,e=void 0),new Promise(function(i,a){try{const a=o.create(t,r);i(n(a,e,r))}catch(n){a(n)}})}if(l<2)throw new Error("Too few arguments provided");2===l?(a=t,t=e,e=r=void 0):3===l&&(e.getContext&&void 0===a?(a=r,r=void 0):(a=r,r=t,t=e,e=void 0));try{const i=o.create(t,r);a(null,n(i,e,r))}catch(n){a(n)}}o.create,s.bind(null,r.render),s.bind(null,r.renderToDataURL),e.toString=s.bind(null,function(n,e,t){return a.render(n,t)})},1333(n){n.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6421(n,e,t){const i=t(6886).getSymbolSize;e.getRowColCoords=function(n){if(1===n)return[];const e=Math.floor(n/7)+2,t=i(n),o=145===t?26:2*Math.ceil((t-13)/(2*e-2)),r=[t-7];for(let n=1;n<e-1;n++)r[n]=r[n-1]-o;return r.push(6),r.reverse()},e.getPositions=function(n){const t=[],i=e.getRowColCoords(n),o=i.length;for(let n=0;n<o;n++)for(let e=0;e<o;e++)0===n&&0===e||0===n&&e===o-1||n===o-1&&0===e||t.push([i[n],i[e]]);return t}},1433(n,e,t){const i=t(208),o=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function r(n){this.mode=i.ALPHANUMERIC,this.data=n}r.getBitsLength=function(n){return 11*Math.floor(n/2)+n%2*6},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(n){let e;for(e=0;e+2<=this.data.length;e+=2){let t=45*o.indexOf(this.data[e]);t+=o.indexOf(this.data[e+1]),n.put(t,11)}this.data.length%2&&n.put(o.indexOf(this.data[e]),6)},n.exports=r},9899(n){function e(){this.buffer=[],this.length=0}e.prototype={get:function(n){const e=Math.floor(n/8);return 1==(this.buffer[e]>>>7-n%8&1)},put:function(n,e){for(let t=0;t<e;t++)this.putBit(1==(n>>>e-t-1&1))},getLengthInBits:function(){return this.length},putBit:function(n){const e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),n&&(this.buffer[e]|=128>>>this.length%8),this.length++}},n.exports=e},8820(n){function e(n){if(!n||n<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=n,this.data=new Uint8Array(n*n),this.reservedBit=new Uint8Array(n*n)}e.prototype.set=function(n,e,t,i){const o=n*this.size+e;this.data[o]=t,i&&(this.reservedBit[o]=!0)},e.prototype.get=function(n,e){return this.data[n*this.size+e]},e.prototype.xor=function(n,e,t){this.data[n*this.size+e]^=t},e.prototype.isReserved=function(n,e){return this.reservedBit[n*this.size+e]},n.exports=e},5822(n,e,t){const i=t(208);function o(n){this.mode=i.BYTE,this.data="string"==typeof n?(new TextEncoder).encode(n):new Uint8Array(n)}o.getBitsLength=function(n){return 8*n},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(n){for(let e=0,t=this.data.length;e<t;e++)n.put(this.data[e],8)},n.exports=o},7518(n,e,t){const i=t(9953),o=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(n,e){switch(e){case i.L:return o[4*(n-1)+0];case i.M:return o[4*(n-1)+1];case i.Q:return o[4*(n-1)+2];case i.H:return o[4*(n-1)+3];default:return}},e.getTotalCodewordsCount=function(n,e){switch(e){case i.L:return r[4*(n-1)+0];case i.M:return r[4*(n-1)+1];case i.Q:return r[4*(n-1)+2];case i.H:return r[4*(n-1)+3];default:return}}},9953(n,e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2},e.isValid=function(n){return n&&void 0!==n.bit&&n.bit>=0&&n.bit<4},e.from=function(n,t){if(e.isValid(n))return n;try{return function(n){if("string"!=typeof n)throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}(n)}catch(n){return t}}},7756(n,e,t){const i=t(6886).getSymbolSize;e.getPositions=function(n){const e=i(n);return[[0,0],[e-7,0],[0,e-7]]}},4565(n,e,t){const i=t(6886),o=i.getBCHDigit(1335);e.getEncodedBits=function(n,e){const t=n.bit<<3|e;let r=t<<10;for(;i.getBCHDigit(r)-o>=0;)r^=1335<<i.getBCHDigit(r)-o;return 21522^(t<<10|r)}},2731(n,e){const t=new Uint8Array(512),i=new Uint8Array(256);!function(){let n=1;for(let e=0;e<255;e++)t[e]=n,i[n]=e,n<<=1,256&n&&(n^=285);for(let n=255;n<512;n++)t[n]=t[n-255]}(),e.log=function(n){if(n<1)throw new Error("log("+n+")");return i[n]},e.exp=function(n){return t[n]},e.mul=function(n,e){return 0===n||0===e?0:t[i[n]+i[e]]}},4861(n,e,t){const i=t(208),o=t(6886);function r(n){this.mode=i.KANJI,this.data=n}r.getBitsLength=function(n){return 13*n},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(n){let e;for(e=0;e<this.data.length;e++){let t=o.toSJIS(this.data[e]);if(t>=33088&&t<=40956)t-=33088;else{if(!(t>=57408&&t<=60351))throw new Error("Invalid SJIS character: "+this.data[e]+"\nMake sure your charset is UTF-8");t-=49472}t=192*(t>>>8&255)+(255&t),n.put(t,13)}},n.exports=r},1332(n,e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const t=3,i=3,o=40,r=10;function a(n,t,i){switch(n){case e.Patterns.PATTERN000:return(t+i)%2==0;case e.Patterns.PATTERN001:return t%2==0;case e.Patterns.PATTERN010:return i%3==0;case e.Patterns.PATTERN011:return(t+i)%3==0;case e.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(i/3))%2==0;case e.Patterns.PATTERN101:return t*i%2+t*i%3==0;case e.Patterns.PATTERN110:return(t*i%2+t*i%3)%2==0;case e.Patterns.PATTERN111:return(t*i%3+(t+i)%2)%2==0;default:throw new Error("bad maskPattern:"+n)}}e.isValid=function(n){return null!=n&&""!==n&&!isNaN(n)&&n>=0&&n<=7},e.from=function(n){return e.isValid(n)?parseInt(n,10):void 0},e.getPenaltyN1=function(n){const e=n.size;let i=0,o=0,r=0,a=null,s=null;for(let l=0;l<e;l++){o=r=0,a=s=null;for(let c=0;c<e;c++){let e=n.get(l,c);e===a?o++:(o>=5&&(i+=t+(o-5)),a=e,o=1),e=n.get(c,l),e===s?r++:(r>=5&&(i+=t+(r-5)),s=e,r=1)}o>=5&&(i+=t+(o-5)),r>=5&&(i+=t+(r-5))}return i},e.getPenaltyN2=function(n){const e=n.size;let t=0;for(let i=0;i<e-1;i++)for(let o=0;o<e-1;o++){const e=n.get(i,o)+n.get(i,o+1)+n.get(i+1,o)+n.get(i+1,o+1);4!==e&&0!==e||t++}return t*i},e.getPenaltyN3=function(n){const e=n.size;let t=0,i=0,r=0;for(let o=0;o<e;o++){i=r=0;for(let a=0;a<e;a++)i=i<<1&2047|n.get(o,a),a>=10&&(1488===i||93===i)&&t++,r=r<<1&2047|n.get(a,o),a>=10&&(1488===r||93===r)&&t++}return t*o},e.getPenaltyN4=function(n){let e=0;const t=n.data.length;for(let i=0;i<t;i++)e+=n.data[i];return Math.abs(Math.ceil(100*e/t/5)-10)*r},e.applyMask=function(n,e){const t=e.size;for(let i=0;i<t;i++)for(let o=0;o<t;o++)e.isReserved(o,i)||e.xor(o,i,a(n,o,i))},e.getBestMask=function(n,t){const i=Object.keys(e.Patterns).length;let o=0,r=1/0;for(let a=0;a<i;a++){t(a),e.applyMask(a,n);const i=e.getPenaltyN1(n)+e.getPenaltyN2(n)+e.getPenaltyN3(n)+e.getPenaltyN4(n);e.applyMask(a,n),i<r&&(r=i,o=a)}return o}},208(n,e,t){const i=t(1878),o=t(7044);e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(n,e){if(!n.ccBits)throw new Error("Invalid mode: "+n);if(!i.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?n.ccBits[0]:e<27?n.ccBits[1]:n.ccBits[2]},e.getBestModeForData=function(n){return o.testNumeric(n)?e.NUMERIC:o.testAlphanumeric(n)?e.ALPHANUMERIC:o.testKanji(n)?e.KANJI:e.BYTE},e.toString=function(n){if(n&&n.id)return n.id;throw new Error("Invalid mode")},e.isValid=function(n){return n&&n.bit&&n.ccBits},e.from=function(n,t){if(e.isValid(n))return n;try{return function(n){if("string"!=typeof n)throw new Error("Param is not a string");switch(n.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+n)}}(n)}catch(n){return t}}},4357(n,e,t){const i=t(208);function o(n){this.mode=i.NUMERIC,this.data=n.toString()}o.getBitsLength=function(n){return 10*Math.floor(n/3)+(n%3?n%3*3+1:0)},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(n){let e,t,i;for(e=0;e+3<=this.data.length;e+=3)t=this.data.substr(e,3),i=parseInt(t,10),n.put(i,10);const o=this.data.length-e;o>0&&(t=this.data.substr(e),i=parseInt(t,10),n.put(i,3*o+1))},n.exports=o},4713(n,e,t){const i=t(2731);e.mul=function(n,e){const t=new Uint8Array(n.length+e.length-1);for(let o=0;o<n.length;o++)for(let r=0;r<e.length;r++)t[o+r]^=i.mul(n[o],e[r]);return t},e.mod=function(n,e){let t=new Uint8Array(n);for(;t.length-e.length>=0;){const n=t[0];for(let o=0;o<e.length;o++)t[o]^=i.mul(e[o],n);let o=0;for(;o<t.length&&0===t[o];)o++;t=t.slice(o)}return t},e.generateECPolynomial=function(n){let t=new Uint8Array([1]);for(let o=0;o<n;o++)t=e.mul(t,new Uint8Array([1,i.exp(o)]));return t}},157(n,e,t){const i=t(6886),o=t(9953),r=t(9899),a=t(8820),s=t(6421),l=t(7756),c=t(1332),d=t(7518),A=t(4764),u=t(1427),p=t(4565),m=t(208),f=t(9801);function h(n,e,t){const i=n.size,o=p.getEncodedBits(e,t);let r,a;for(r=0;r<15;r++)a=1==(o>>r&1),r<6?n.set(r,8,a,!0):r<8?n.set(r+1,8,a,!0):n.set(i-15+r,8,a,!0),r<8?n.set(8,i-r-1,a,!0):r<9?n.set(8,15-r-1+1,a,!0):n.set(8,15-r-1,a,!0);n.set(i-8,8,1,!0)}function g(n,e,t){const o=new r;t.forEach(function(e){o.put(e.mode.bit,4),o.put(e.getLength(),m.getCharCountIndicator(e.mode,n)),e.write(o)});const a=8*(i.getSymbolTotalCodewords(n)-d.getTotalCodewordsCount(n,e));for(o.getLengthInBits()+4<=a&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(0);const s=(a-o.getLengthInBits())/8;for(let n=0;n<s;n++)o.put(n%2?17:236,8);return function(n,e,t){const o=i.getSymbolTotalCodewords(e),r=d.getTotalCodewordsCount(e,t),a=o-r,s=d.getBlocksCount(e,t),l=o%s,c=s-l,u=Math.floor(o/s),p=Math.floor(a/s),m=p+1,f=u-p,h=new A(f);let g=0;const C=new Array(s),b=new Array(s);let B=0;const E=new Uint8Array(n.buffer);for(let n=0;n<s;n++){const e=n<c?p:m;C[n]=E.slice(g,g+e),b[n]=h.encode(C[n]),g+=e,B=Math.max(B,e)}const v=new Uint8Array(o);let w,y,x=0;for(w=0;w<B;w++)for(y=0;y<s;y++)w<C[y].length&&(v[x++]=C[y][w]);for(w=0;w<f;w++)for(y=0;y<s;y++)v[x++]=b[y][w];return v}(o,n,e)}function C(n,e,t,o){let r;if(Array.isArray(n))r=f.fromArray(n);else{if("string"!=typeof n)throw new Error("Invalid data");{let i=e;if(!i){const e=f.rawSplit(n);i=u.getBestVersionForData(e,t)}r=f.fromString(n,i||40)}}const d=u.getBestVersionForData(r,t);if(!d)throw new Error("The amount of data is too big to be stored in a QR Code");if(e){if(e<d)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+d+".\n")}else e=d;const A=g(e,t,r),p=i.getSymbolSize(e),m=new a(p);return function(n,e){const t=n.size,i=l.getPositions(e);for(let e=0;e<i.length;e++){const o=i[e][0],r=i[e][1];for(let e=-1;e<=7;e++)if(!(o+e<=-1||t<=o+e))for(let i=-1;i<=7;i++)r+i<=-1||t<=r+i||(e>=0&&e<=6&&(0===i||6===i)||i>=0&&i<=6&&(0===e||6===e)||e>=2&&e<=4&&i>=2&&i<=4?n.set(o+e,r+i,!0,!0):n.set(o+e,r+i,!1,!0))}}(m,e),function(n){const e=n.size;for(let t=8;t<e-8;t++){const e=t%2==0;n.set(t,6,e,!0),n.set(6,t,e,!0)}}(m),function(n,e){const t=s.getPositions(e);for(let e=0;e<t.length;e++){const i=t[e][0],o=t[e][1];for(let e=-2;e<=2;e++)for(let t=-2;t<=2;t++)-2===e||2===e||-2===t||2===t||0===e&&0===t?n.set(i+e,o+t,!0,!0):n.set(i+e,o+t,!1,!0)}}(m,e),h(m,t,0),e>=7&&function(n,e){const t=n.size,i=u.getEncodedBits(e);let o,r,a;for(let e=0;e<18;e++)o=Math.floor(e/3),r=e%3+t-8-3,a=1==(i>>e&1),n.set(o,r,a,!0),n.set(r,o,a,!0)}(m,e),function(n,e){const t=n.size;let i=-1,o=t-1,r=7,a=0;for(let s=t-1;s>0;s-=2)for(6===s&&s--;;){for(let t=0;t<2;t++)if(!n.isReserved(o,s-t)){let i=!1;a<e.length&&(i=1==(e[a]>>>r&1)),n.set(o,s-t,i),r--,-1===r&&(a++,r=7)}if(o+=i,o<0||t<=o){o-=i,i=-i;break}}}(m,A),isNaN(o)&&(o=c.getBestMask(m,h.bind(null,m,t))),c.applyMask(o,m),h(m,t,o),{modules:m,version:e,errorCorrectionLevel:t,maskPattern:o,segments:r}}e.create=function(n,e){if(void 0===n||""===n)throw new Error("No input text");let t,r,a=o.M;return void 0!==e&&(a=o.from(e.errorCorrectionLevel,o.M),t=u.from(e.version),r=c.from(e.maskPattern),e.toSJISFunc&&i.setToSJISFunction(e.toSJISFunc)),C(n,t,a,r)}},4764(n,e,t){const i=t(4713);function o(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}o.prototype.initialize=function(n){this.degree=n,this.genPoly=i.generateECPolynomial(this.degree)},o.prototype.encode=function(n){if(!this.genPoly)throw new Error("Encoder not initialized");const e=new Uint8Array(n.length+this.degree);e.set(n);const t=i.mod(e,this.genPoly),o=this.degree-t.length;if(o>0){const n=new Uint8Array(this.degree);return n.set(t,o),n}return t},n.exports=o},7044(n,e){const t="[0-9]+";let i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";i=i.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+i+")(?:.|[\r\n]))+";e.KANJI=new RegExp(i,"g"),e.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),e.BYTE=new RegExp(o,"g"),e.NUMERIC=new RegExp(t,"g"),e.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const r=new RegExp("^"+i+"$"),a=new RegExp("^"+t+"$"),s=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");e.testKanji=function(n){return r.test(n)},e.testNumeric=function(n){return a.test(n)},e.testAlphanumeric=function(n){return s.test(n)}},9801(n,e,t){const i=t(208),o=t(4357),r=t(1433),a=t(5822),s=t(4861),l=t(7044),c=t(6886),d=t(6320);function A(n){return unescape(encodeURIComponent(n)).length}function u(n,e,t){const i=[];let o;for(;null!==(o=n.exec(t));)i.push({data:o[0],index:o.index,mode:e,length:o[0].length});return i}function p(n){const e=u(l.NUMERIC,i.NUMERIC,n),t=u(l.ALPHANUMERIC,i.ALPHANUMERIC,n);let o,r;c.isKanjiModeEnabled()?(o=u(l.BYTE,i.BYTE,n),r=u(l.KANJI,i.KANJI,n)):(o=u(l.BYTE_KANJI,i.BYTE,n),r=[]);return e.concat(t,o,r).sort(function(n,e){return n.index-e.index}).map(function(n){return{data:n.data,mode:n.mode,length:n.length}})}function m(n,e){switch(e){case i.NUMERIC:return o.getBitsLength(n);case i.ALPHANUMERIC:return r.getBitsLength(n);case i.KANJI:return s.getBitsLength(n);case i.BYTE:return a.getBitsLength(n)}}function f(n,e){let t;const l=i.getBestModeForData(n);if(t=i.from(e,l),t!==i.BYTE&&t.bit<l.bit)throw new Error('"'+n+'" cannot be encoded with mode '+i.toString(t)+".\n Suggested mode is: "+i.toString(l));switch(t!==i.KANJI||c.isKanjiModeEnabled()||(t=i.BYTE),t){case i.NUMERIC:return new o(n);case i.ALPHANUMERIC:return new r(n);case i.KANJI:return new s(n);case i.BYTE:return new a(n)}}e.fromArray=function(n){return n.reduce(function(n,e){return"string"==typeof e?n.push(f(e,null)):e.data&&n.push(f(e.data,e.mode)),n},[])},e.fromString=function(n,t){const o=function(n){const e=[];for(let t=0;t<n.length;t++){const o=n[t];switch(o.mode){case i.NUMERIC:e.push([o,{data:o.data,mode:i.ALPHANUMERIC,length:o.length},{data:o.data,mode:i.BYTE,length:o.length}]);break;case i.ALPHANUMERIC:e.push([o,{data:o.data,mode:i.BYTE,length:o.length}]);break;case i.KANJI:e.push([o,{data:o.data,mode:i.BYTE,length:A(o.data)}]);break;case i.BYTE:e.push([{data:o.data,mode:i.BYTE,length:A(o.data)}])}}return e}(p(n,c.isKanjiModeEnabled())),r=function(n,e){const t={},o={start:{}};let r=["start"];for(let a=0;a<n.length;a++){const s=n[a],l=[];for(let n=0;n<s.length;n++){const c=s[n],d=""+a+n;l.push(d),t[d]={node:c,lastCount:0},o[d]={};for(let n=0;n<r.length;n++){const a=r[n];t[a]&&t[a].node.mode===c.mode?(o[a][d]=m(t[a].lastCount+c.length,c.mode)-m(t[a].lastCount,c.mode),t[a].lastCount+=c.length):(t[a]&&(t[a].lastCount=c.length),o[a][d]=m(c.length,c.mode)+4+i.getCharCountIndicator(c.mode,e))}}r=l}for(let n=0;n<r.length;n++)o[r[n]].end=0;return{map:o,table:t}}(o,t),a=d.find_path(r.map,"start","end"),s=[];for(let n=1;n<a.length-1;n++)s.push(r.table[a[n]].node);return e.fromArray(function(n){return n.reduce(function(n,e){const t=n.length-1>=0?n[n.length-1]:null;return t&&t.mode===e.mode?(n[n.length-1].data+=e.data,n):(n.push(e),n)},[])}(s))},e.rawSplit=function(n){return e.fromArray(p(n,c.isKanjiModeEnabled()))}},6886(n,e){let t;const i=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(n){if(!n)throw new Error('"version" cannot be null or undefined');if(n<1||n>40)throw new Error('"version" should be in range from 1 to 40');return 4*n+17},e.getSymbolTotalCodewords=function(n){return i[n]},e.getBCHDigit=function(n){let e=0;for(;0!==n;)e++,n>>>=1;return e},e.setToSJISFunction=function(n){if("function"!=typeof n)throw new Error('"toSJISFunc" is not a valid function.');t=n},e.isKanjiModeEnabled=function(){return void 0!==t},e.toSJIS=function(n){return t(n)}},1878(n,e){e.isValid=function(n){return!isNaN(n)&&n>=1&&n<=40}},1427(n,e,t){const i=t(6886),o=t(7518),r=t(9953),a=t(208),s=t(1878),l=i.getBCHDigit(7973);function c(n,e){return a.getCharCountIndicator(n,e)+4}function d(n,e){let t=0;return n.forEach(function(n){const i=c(n.mode,e);t+=i+n.getBitsLength()}),t}e.from=function(n,e){return s.isValid(n)?parseInt(n,10):e},e.getCapacity=function(n,e,t){if(!s.isValid(n))throw new Error("Invalid QR Code version");void 0===t&&(t=a.BYTE);const r=8*(i.getSymbolTotalCodewords(n)-o.getTotalCodewordsCount(n,e));if(t===a.MIXED)return r;const l=r-c(t,n);switch(t){case a.NUMERIC:return Math.floor(l/10*3);case a.ALPHANUMERIC:return Math.floor(l/11*2);case a.KANJI:return Math.floor(l/13);case a.BYTE:default:return Math.floor(l/8)}},e.getBestVersionForData=function(n,t){let i;const o=r.from(t,r.M);if(Array.isArray(n)){if(n.length>1)return function(n,t){for(let i=1;i<=40;i++)if(d(n,i)<=e.getCapacity(i,t,a.MIXED))return i}(n,o);if(0===n.length)return 1;i=n[0]}else i=n;return function(n,t,i){for(let o=1;o<=40;o++)if(t<=e.getCapacity(o,i,n))return o}(i.mode,i.getLength(),o)},e.getEncodedBits=function(n){if(!s.isValid(n)||n<7)throw new Error("Invalid QR Code version");let e=n<<12;for(;i.getBCHDigit(e)-l>=0;)e^=7973<<i.getBCHDigit(e)-l;return n<<12|e}},7899(n,e,t){const i=t(2726);e.render=function(n,e,t){let o=t,r=e;void 0!==o||e&&e.getContext||(o=e,e=void 0),e||(r=function(){try{return document.createElement("canvas")}catch(n){throw new Error("You need to specify a canvas element")}}()),o=i.getOptions(o);const a=i.getImageWidth(n.modules.size,o),s=r.getContext("2d"),l=s.createImageData(a,a);return i.qrToImageData(l.data,n,o),function(n,e,t){n.clearRect(0,0,e.width,e.height),e.style||(e.style={}),e.height=t,e.width=t,e.style.height=t+"px",e.style.width=t+"px"}(s,r,a),s.putImageData(l,0,0),r},e.renderToDataURL=function(n,t,i){let o=i;void 0!==o||t&&t.getContext||(o=t,t=void 0),o||(o={});const r=e.render(n,t,o),a=o.type||"image/png",s=o.rendererOpts||{};return r.toDataURL(a,s.quality)}},6756(n,e,t){const i=t(2726);function o(n,e){const t=n.a/255,i=e+'="'+n.hex+'"';return t<1?i+" "+e+'-opacity="'+t.toFixed(2).slice(1)+'"':i}function r(n,e,t){let i=n+e;return void 0!==t&&(i+=" "+t),i}e.render=function(n,e,t){const a=i.getOptions(e),s=n.modules.size,l=n.modules.data,c=s+2*a.margin,d=a.color.light.a?"<path "+o(a.color.light,"fill")+' d="M0 0h'+c+"v"+c+'H0z"/>':"",A="<path "+o(a.color.dark,"stroke")+' d="'+function(n,e,t){let i="",o=0,a=!1,s=0;for(let l=0;l<n.length;l++){const c=Math.floor(l%e),d=Math.floor(l/e);c||a||(a=!0),n[l]?(s++,l>0&&c>0&&n[l-1]||(i+=a?r("M",c+t,.5+d+t):r("m",o,0),o=0,a=!1),c+1<e&&n[l+1]||(i+=r("h",s),s=0)):o++}return i}(l,s,a.margin)+'"/>',u='viewBox="0 0 '+c+" "+c+'"',p='<svg xmlns="http://www.w3.org/2000/svg" '+(a.width?'width="'+a.width+'" height="'+a.width+'" ':"")+u+' shape-rendering="crispEdges">'+d+A+"</svg>\n";return"function"==typeof t&&t(null,p),p}},2726(n,e){function t(n){if("number"==typeof n&&(n=n.toString()),"string"!=typeof n)throw new Error("Color should be defined as hex string");let e=n.slice().replace("#","").split("");if(e.length<3||5===e.length||e.length>8)throw new Error("Invalid hex color: "+n);3!==e.length&&4!==e.length||(e=Array.prototype.concat.apply([],e.map(function(n){return[n,n]}))),6===e.length&&e.push("F","F");const t=parseInt(e.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:255&t,hex:"#"+e.slice(0,6).join("")}}e.getOptions=function(n){n||(n={}),n.color||(n.color={});const e=void 0===n.margin||null===n.margin||n.margin<0?4:n.margin,i=n.width&&n.width>=21?n.width:void 0,o=n.scale||4;return{width:i,scale:i?4:o,margin:e,color:{dark:t(n.color.dark||"#000000ff"),light:t(n.color.light||"#ffffffff")},type:n.type,rendererOpts:n.rendererOpts||{}}},e.getScale=function(n,e){return e.width&&e.width>=n+2*e.margin?e.width/(n+2*e.margin):e.scale},e.getImageWidth=function(n,t){const i=e.getScale(n,t);return Math.floor((n+2*t.margin)*i)},e.qrToImageData=function(n,t,i){const o=t.modules.size,r=t.modules.data,a=e.getScale(o,i),s=Math.floor((o+2*i.margin)*a),l=i.margin*a,c=[i.color.light,i.color.dark];for(let e=0;e<s;e++)for(let t=0;t<s;t++){let d=4*(e*s+t),A=i.color.light;if(e>=l&&t>=l&&e<s-l&&t<s-l){A=c[r[Math.floor((e-l)/a)*o+Math.floor((t-l)/a)]?1:0]}n[d++]=A.r,n[d++]=A.g,n[d++]=A.b,n[d]=A.a}}},5072(n){"use strict";var e=[];function t(n){for(var t=-1,i=0;i<e.length;i++)if(e[i].identifier===n){t=i;break}return t}function i(n,i){for(var r={},a=[],s=0;s<n.length;s++){var l=n[s],c=i.base?l[0]+i.base:l[0],d=r[c]||0,A="".concat(c," ").concat(d);r[c]=d+1;var u=t(A),p={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==u)e[u].references++,e[u].updater(p);else{var m=o(p,i);i.byIndex=s,e.splice(s,0,{identifier:A,updater:m,references:1})}a.push(A)}return a}function o(n,e){var t=e.domAPI(e);t.update(n);return function(e){if(e){if(e.css===n.css&&e.media===n.media&&e.sourceMap===n.sourceMap&&e.supports===n.supports&&e.layer===n.layer)return;t.update(n=e)}else t.remove()}}n.exports=function(n,o){var r=i(n=n||[],o=o||{});return function(n){n=n||[];for(var a=0;a<r.length;a++){var s=t(r[a]);e[s].references--}for(var l=i(n,o),c=0;c<r.length;c++){var d=t(r[c]);0===e[d].references&&(e[d].updater(),e.splice(d,1))}r=l}}},7659(n){"use strict";var e={};n.exports=function(n,t){var i=function(n){if(void 0===e[n]){var t=document.querySelector(n);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(n){t=null}e[n]=t}return e[n]}(n);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}},540(n){"use strict";n.exports=function(n){var e=document.createElement("style");return n.setAttributes(e,n.attributes),n.insert(e,n.options),e}},5056(n,e,t){"use strict";n.exports=function(n){var e=t.nc;e&&n.setAttribute("nonce",e)}},7825(n){"use strict";n.exports=function(n){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=n.insertStyleElement(n);return{update:function(t){!function(n,e,t){var i="";t.supports&&(i+="@supports (".concat(t.supports,") {")),t.media&&(i+="@media ".concat(t.media," {"));var o=void 0!==t.layer;o&&(i+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),i+=t.css,o&&(i+="}"),t.media&&(i+="}"),t.supports&&(i+="}");var r=t.sourceMap;r&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(r))))," */")),e.styleTagTransform(i,n,e.options)}(e,n,t)},remove:function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)}}}},1113(n){"use strict";n.exports=function(n,e){if(e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}},6077(n){n.exports=function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){"use strict";t.r(e),t.d(e,"validateHTMLColorName",function(){return a}),t.d(e,"validateHTMLColorSpecialName",function(){return s}),t.d(e,"validateHTMLColorHex",function(){return l}),t.d(e,"validateHTMLColorRgb",function(){return f}),t.d(e,"validateHTMLColorHsl",function(){return h}),t.d(e,"validateHTMLColorHwb",function(){return g}),t.d(e,"validateHTMLColorLab",function(){return C}),t.d(e,"validateHTMLColorLch",function(){return b}),t.d(e,"validateHTMLColor",function(){return B});const i=n=>n&&"string"==typeof n,o=["AliceBlue","AntiqueWhite","Aqua","Aquamarine","Azure","Beige","Bisque","Black","BlanchedAlmond","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","CornflowerBlue","Cornsilk","Crimson","Cyan","DarkBlue","DarkCyan","DarkGoldenrod","DarkGray","DarkGrey","DarkGreen","DarkKhaki","DarkMagenta","DarkOliveGreen","DarkOrange","DarkOrchid","DarkRed","DarkSalmon","DarkSeaGreen","DarkSlateBlue","DarkSlateGray","DarkSlateGrey","DarkTurquoise","DarkViolet","DeepPink","DeepSkyBlue","DimGray","DimGrey","DodgerBlue","FireBrick","FloralWhite","ForestGreen","Fuchsia","Gainsboro","GhostWhite","Gold","Goldenrod","Gray","Grey","Green","GreenYellow","HoneyDew","HotPink","IndianRed","Indigo","Ivory","Khaki","Lavender","LavenderBlush","LawnGreen","LemonChiffon","LightBlue","LightCoral","LightCyan","LightGoldenrodYellow","LightGray","LightGrey","LightGreen","LightPink","LightSalmon","LightSalmon","LightSeaGreen","LightSkyBlue","LightSlateGray","LightSlateGrey","LightSteelBlue","LightYellow","Lime","LimeGreen","Linen","Magenta","Maroon","MediumAquamarine","MediumBlue","MediumOrchid","MediumPurple","MediumSeaGreen","MediumSlateBlue","MediumSlateBlue","MediumSpringGreen","MediumTurquoise","MediumVioletRed","MidnightBlue","MintCream","MistyRose","Moccasin","NavajoWhite","Navy","OldLace","Olive","OliveDrab","Orange","OrangeRed","Orchid","PaleGoldenrod","PaleGreen","PaleTurquoise","PaleVioletRed","PapayaWhip","PeachPuff","Peru","Pink","Plum","PowderBlue","Purple","RebeccaPurple","Red","RosyBrown","RoyalBlue","SaddleBrown","Salmon","SandyBrown","SeaGreen","SeaShell","Sienna","Silver","SkyBlue","SlateBlue","SlateGray","SlateGrey","Snow","SpringGreen","SteelBlue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","Wheat","White","WhiteSmoke","Yellow","YellowGreen"],r=["currentColor","inherit","transparent"],a=n=>{let e=!1;return i(n)&&o.map(t=>(n.toLowerCase()===t.toLowerCase()&&(e=!0),null)),e},s=n=>{let e=!1;return i(n)&&r.map(t=>(n.toLowerCase()===t.toLowerCase()&&(e=!0),null)),e},l=n=>{if(i(n)){return n&&/^#([\da-f]{3}){1,2}$|^#([\da-f]{4}){1,2}$/i.test(n)}return!1},c="(([\\d]{0,5})((\\.([\\d]{1,5}))?))",d=`(${c}%)`,A="(([0-9]|[1-9][0-9]|100)%)",u=`(${A}|(0?((\\.([\\d]{1,5}))?))|1)`,p=`([\\s]{0,5})\\)?)(([\\s]{0,5})(\\/?)([\\s]{1,5})(((${A}))|(0?((\\.([\\d]{1,5}))?))|1))?([\\s]{0,5})\\)`,m="(-?(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|3[0-5][0-9])((\\.([\\d]{1,5}))?)|360)(deg)?)",f=n=>{if(i(n)){const e="([\\s]{0,5})([\\d]{1,5})%?([\\s]{0,5}),?",t="((([\\s]{0,5}),?([\\s]{0,5}))|(([\\s]{1,5})))",i=new RegExp(`^(rgb)a?\\(${e}${t}${e}${t}${e}${t}((\\/?([\\s]{0,5})(0?\\.?([\\d]{1,5})%?([\\s]{0,5}))?|1|0))?\\)$`);return n&&i.test(n)}return!1},h=n=>{if(i(n)){const e=new RegExp(`^(hsl)a?\\((([\\s]{0,5})(${m}|(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|3[0-9][0-9]|400)grad)|((([0-5])?\\.([\\d]{1,5})|6\\.([0-9]|1[0-9]|2[0-8])|[0-6])rad)|((0?((\\.([\\d]{1,5}))?)|1)turn))((([\\s]{0,5}),([\\s]{0,5}))|(([\\s]{1,5}))))(([\\s]{0,5})(0|${A})((([\\s]{0,5}),([\\s]{0,5}))|(([\\s]{1,5}))))(([\\s]{0,5})(0|${A})([\\s]{0,5})\\)?)(([\\s]{0,5})(\\/?|,?)([\\s]{0,5})(((${A}))|(0?((\\.([\\d]{1,5}))?))|1))?\\)$`);return n&&e.test(n)}return!1},g=n=>{if(i(n)){const e=new RegExp(`^(hwb\\(([\\s]{0,5})${m}([\\s]{1,5}))((0|${A})([\\s]{1,5}))((0|${A})${p}$`);return n&&e.test(n)}return!1},C=n=>{if(i(n)){const e="(-?(([0-9]|[1-9][0-9]|1[0-5][0-9])((\\.([\\d]{1,5}))?)?|160))",t=new RegExp(`^(lab\\(([\\s]{0,5})${d}([\\s]{1,5})${e}([\\s]{1,5})${e}${p}$`);return n&&t.test(n)}return!1},b=n=>{if(i(n)){const e=new RegExp(`^lch\\((([\\s]{0,5})${"((([0-9]|[1-9][0-9])?((\\.([\\d]{1,5}))?)|100)(%)?)"}([\\s]{1,5})${""+c}([\\s]{1,5})${`((${m})|(0|${u})|(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]|3[0-5][0-9])((\\.([\\d]{1,5}))?)|360))`}([\\s]{0,5})(${`(\\/([\\s]{0,5})${u})`})?)\\)$`);return n&&e.test(n)}return!1},B=n=>!!(n&&l(n)||f(n)||h(n)||g(n)||C(n)||b(n));e.default=n=>!!(n&&l(n)||a(n)||s(n)||f(n)||h(n)||g(n)||C(n)||b(n))}])},5663(n){"use strict";n.exports=e},9426(e){"use strict";e.exports=n},5491(n){"use strict";n.exports=t}},o={};function r(n){var e=o[n];if(void 0!==e)return e.exports;var t=o[n]={id:n,exports:{}};return i[n](t,t.exports,r),t.exports}r.n=n=>{var e=n&&n.__esModule?()=>n.default:()=>n;return r.d(e,{a:e}),e},r.d=(n,e)=>{for(var t in e)r.o(e,t)&&!r.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:e[t]})},r.o=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),r.nc=void 0;var a={};return(()=>{"use strict";r.d(a,{default:()=>Ze});var n=r(5072),e=r.n(n),t=r(7825),i=r.n(t),o=r(7659),s=r.n(o),l=r(5056),c=r.n(l),d=r(540),A=r.n(d),u=r(1113),p=r.n(u),m=r(1267),f={};f.styleTagTransform=p(),f.setAttributes=c(),f.insert=s().bind(null,"head"),f.domAPI=i(),f.insertStyleElement=A();e()(m.A,f);m.A&&m.A.locals&&m.A.locals;var h=r(3750),g={};g.styleTagTransform=p(),g.setAttributes=c(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=A();e()(h.A,g);h.A&&h.A.locals&&h.A.locals;var C=r(1666),b={};b.styleTagTransform=p(),b.setAttributes=c(),b.insert=s().bind(null,"head"),b.domAPI=i(),b.insertStyleElement=A();e()(C.A,b);C.A&&C.A.locals&&C.A.locals;var B=r(1937),E={};E.styleTagTransform=p(),E.setAttributes=c(),E.insert=s().bind(null,"head"),E.domAPI=i(),E.insertStyleElement=A();e()(B.A,E);B.A&&B.A.locals&&B.A.locals;var v=r(436),w={};w.styleTagTransform=p(),w.setAttributes=c(),w.insert=s().bind(null,"head"),w.domAPI=i(),w.insertStyleElement=A();e()(v.A,w);v.A&&v.A.locals&&v.A.locals;var y=r(1134),x={};x.styleTagTransform=p(),x.setAttributes=c(),x.insert=s().bind(null,"head"),x.domAPI=i(),x.insertStyleElement=A();e()(y.A,x);y.A&&y.A.locals&&y.A.locals;var k=r(1649),S={};S.styleTagTransform=p(),S.setAttributes=c(),S.insert=s().bind(null,"head"),S.domAPI=i(),S.insertStyleElement=A();e()(k.A,S);k.A&&k.A.locals&&k.A.locals;var F=r(6660),$={};$.styleTagTransform=p(),$.setAttributes=c(),$.insert=s().bind(null,"head"),$.domAPI=i(),$.insertStyleElement=A();e()(F.A,$);F.A&&F.A.locals&&F.A.locals;var I=r(5092),T={};T.styleTagTransform=p(),T.setAttributes=c(),T.insert=s().bind(null,"head"),T.domAPI=i(),T.insertStyleElement=A();e()(I.A,T);I.A&&I.A.locals&&I.A.locals;const L=globalThis,N=n=>n,_=L.trustedTypes,P=_?_.createPolicy("lit-html",{createHTML:n=>n}):void 0,D="$lit$",R=`lit$${Math.random().toFixed(9).slice(2)}$`,z="?"+R,M=`<${z}>`,O=document,U=()=>O.createComment(""),H=n=>null===n||"object"!=typeof n&&"function"!=typeof n,q=Array.isArray,G=n=>q(n)||"function"==typeof n?.[Symbol.iterator],j="[ \t\n\f\r]",W=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,V=/-->/g,Y=/>/g,Q=RegExp(`>|${j}(?:([^\\s"'>=/]+)(${j}*=${j}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),Z=/'/g,J=/"/g,K=/^(?:script|style|textarea|title)$/i,X=n=>(e,...t)=>({_$litType$:n,strings:e,values:t}),nn=X(1),en=(X(2),X(3),Symbol.for("lit-noChange")),tn=Symbol.for("lit-nothing"),on=new WeakMap,rn=O.createTreeWalker(O,129);function an(n,e){if(!q(n)||!n.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==P?P.createHTML(e):e}const sn=(n,e)=>{const t=n.length-1,i=[];let o,r=2===e?"<svg>":3===e?"<math>":"",a=W;for(let e=0;e<t;e++){const t=n[e];let s,l,c=-1,d=0;for(;d<t.length&&(a.lastIndex=d,l=a.exec(t),null!==l);)d=a.lastIndex,a===W?"!--"===l[1]?a=V:void 0!==l[1]?a=Y:void 0!==l[2]?(K.test(l[2])&&(o=RegExp("</"+l[2],"g")),a=Q):void 0!==l[3]&&(a=Q):a===Q?">"===l[0]?(a=o??W,c=-1):void 0===l[1]?c=-2:(c=a.lastIndex-l[2].length,s=l[1],a=void 0===l[3]?Q:'"'===l[3]?J:Z):a===J||a===Z?a=Q:a===V||a===Y?a=W:(a=Q,o=void 0);const A=a===Q&&n[e+1].startsWith("/>")?" ":"";r+=a===W?t+M:c>=0?(i.push(s),t.slice(0,c)+D+t.slice(c)+R+A):t+R+(-2===c?e:A)}return[an(n,r+(n[t]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),i]};class ln{constructor({strings:n,_$litType$:e},t){let i;this.parts=[];let o=0,r=0;const a=n.length-1,s=this.parts,[l,c]=sn(n,e);if(this.el=ln.createElement(l,t),rn.currentNode=this.el.content,2===e||3===e){const n=this.el.content.firstChild;n.replaceWith(...n.childNodes)}for(;null!==(i=rn.nextNode())&&s.length<a;){if(1===i.nodeType){if(i.hasAttributes())for(const n of i.getAttributeNames())if(n.endsWith(D)){const e=c[r++],t=i.getAttribute(n).split(R),a=/([.?@])?(.*)/.exec(e);s.push({type:1,index:o,name:a[2],strings:t,ctor:"."===a[1]?pn:"?"===a[1]?mn:"@"===a[1]?fn:un}),i.removeAttribute(n)}else n.startsWith(R)&&(s.push({type:6,index:o}),i.removeAttribute(n));if(K.test(i.tagName)){const n=i.textContent.split(R),e=n.length-1;if(e>0){i.textContent=_?_.emptyScript:"";for(let t=0;t<e;t++)i.append(n[t],U()),rn.nextNode(),s.push({type:2,index:++o});i.append(n[e],U())}}}else if(8===i.nodeType)if(i.data===z)s.push({type:2,index:o});else{let n=-1;for(;-1!==(n=i.data.indexOf(R,n+1));)s.push({type:7,index:o}),n+=R.length-1}o++}}static createElement(n,e){const t=O.createElement("template");return t.innerHTML=n,t}}function cn(n,e,t=n,i){if(e===en)return e;let o=void 0!==i?t._$Co?.[i]:t._$Cl;const r=H(e)?void 0:e._$litDirective$;return o?.constructor!==r&&(o?._$AO?.(!1),void 0===r?o=void 0:(o=new r(n),o._$AT(n,t,i)),void 0!==i?(t._$Co??=[])[i]=o:t._$Cl=o),void 0!==o&&(e=cn(n,o._$AS(n,e.values),o,i)),e}class dn{constructor(n,e){this._$AV=[],this._$AN=void 0,this._$AD=n,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(n){const{el:{content:e},parts:t}=this._$AD,i=(n?.creationScope??O).importNode(e,!0);rn.currentNode=i;let o=rn.nextNode(),r=0,a=0,s=t[0];for(;void 0!==s;){if(r===s.index){let e;2===s.type?e=new An(o,o.nextSibling,this,n):1===s.type?e=new s.ctor(o,s.name,s.strings,this,n):6===s.type&&(e=new hn(o,this,n)),this._$AV.push(e),s=t[++a]}r!==s?.index&&(o=rn.nextNode(),r++)}return rn.currentNode=O,i}p(n){let e=0;for(const t of this._$AV)void 0!==t&&(void 0!==t.strings?(t._$AI(n,t,e),e+=t.strings.length-2):t._$AI(n[e])),e++}}class An{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(n,e,t,i){this.type=2,this._$AH=tn,this._$AN=void 0,this._$AA=n,this._$AB=e,this._$AM=t,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let n=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===n?.nodeType&&(n=e.parentNode),n}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(n,e=this){n=cn(this,n,e),H(n)?n===tn||null==n||""===n?(this._$AH!==tn&&this._$AR(),this._$AH=tn):n!==this._$AH&&n!==en&&this._(n):void 0!==n._$litType$?this.$(n):void 0!==n.nodeType?this.T(n):G(n)?this.k(n):this._(n)}O(n){return this._$AA.parentNode.insertBefore(n,this._$AB)}T(n){this._$AH!==n&&(this._$AR(),this._$AH=this.O(n))}_(n){this._$AH!==tn&&H(this._$AH)?this._$AA.nextSibling.data=n:this.T(O.createTextNode(n)),this._$AH=n}$(n){const{values:e,_$litType$:t}=n,i="number"==typeof t?this._$AC(n):(void 0===t.el&&(t.el=ln.createElement(an(t.h,t.h[0]),this.options)),t);if(this._$AH?._$AD===i)this._$AH.p(e);else{const n=new dn(i,this),t=n.u(this.options);n.p(e),this.T(t),this._$AH=n}}_$AC(n){let e=on.get(n.strings);return void 0===e&&on.set(n.strings,e=new ln(n)),e}k(n){q(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let t,i=0;for(const o of n)i===e.length?e.push(t=new An(this.O(U()),this.O(U()),this,this.options)):t=e[i],t._$AI(o),i++;i<e.length&&(this._$AR(t&&t._$AB.nextSibling,i),e.length=i)}_$AR(n=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);n!==this._$AB;){const e=N(n).nextSibling;N(n).remove(),n=e}}setConnected(n){void 0===this._$AM&&(this._$Cv=n,this._$AP?.(n))}}class un{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(n,e,t,i,o){this.type=1,this._$AH=tn,this._$AN=void 0,this.element=n,this.name=e,this._$AM=i,this.options=o,t.length>2||""!==t[0]||""!==t[1]?(this._$AH=Array(t.length-1).fill(new String),this.strings=t):this._$AH=tn}_$AI(n,e=this,t,i){const o=this.strings;let r=!1;if(void 0===o)n=cn(this,n,e,0),r=!H(n)||n!==this._$AH&&n!==en,r&&(this._$AH=n);else{const i=n;let a,s;for(n=o[0],a=0;a<o.length-1;a++)s=cn(this,i[t+a],e,a),s===en&&(s=this._$AH[a]),r||=!H(s)||s!==this._$AH[a],s===tn?n=tn:n!==tn&&(n+=(s??"")+o[a+1]),this._$AH[a]=s}r&&!i&&this.j(n)}j(n){n===tn?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,n??"")}}class pn extends un{constructor(){super(...arguments),this.type=3}j(n){this.element[this.name]=n===tn?void 0:n}}class mn extends un{constructor(){super(...arguments),this.type=4}j(n){this.element.toggleAttribute(this.name,!!n&&n!==tn)}}class fn extends un{constructor(n,e,t,i,o){super(n,e,t,i,o),this.type=5}_$AI(n,e=this){if((n=cn(this,n,e,0)??tn)===en)return;const t=this._$AH,i=n===tn&&t!==tn||n.capture!==t.capture||n.once!==t.once||n.passive!==t.passive,o=n!==tn&&(t===tn||i);i&&this.element.removeEventListener(this.name,this,t),o&&this.element.addEventListener(this.name,this,n),this._$AH=n}handleEvent(n){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,n):this._$AH.handleEvent(n)}}class hn{constructor(n,e,t){this.element=n,this.type=6,this._$AN=void 0,this._$AM=e,this.options=t}get _$AU(){return this._$AM._$AU}_$AI(n){cn(this,n)}}const gn={M:D,P:R,A:z,C:1,L:sn,R:dn,D:G,V:cn,I:An,H:un,N:mn,U:fn,B:pn,F:hn},Cn=L.litHtmlPolyfillSupport;Cn?.(ln,An),(L.litHtmlVersions??=[]).push("3.3.2");var bn=r(9426),Bn=r(5663);const{I:En}=gn,vn=2;class wn{constructor(n){}get _$AU(){return this._$AM._$AU}_$AT(n,e,t){this._$Ct=n,this._$AM=e,this._$Ci=t}_$AS(n,e){return this.update(n,e)}update(n,e){return this.render(...e)}}const yn=(n,e)=>{const t=n._$AN;if(void 0===t)return!1;for(const n of t)n._$AO?.(e,!1),yn(n,e);return!0},xn=n=>{let e,t;do{if(void 0===(e=n._$AM))break;t=e._$AN,t.delete(n),n=e}while(0===t?.size)},kn=n=>{for(let e;e=n._$AM;n=e){let t=e._$AN;if(void 0===t)e._$AN=t=new Set;else if(t.has(n))break;t.add(n),$n(e)}};function Sn(n){void 0!==this._$AN?(xn(this),this._$AM=n,kn(this)):this._$AM=n}function Fn(n,e=!1,t=0){const i=this._$AH,o=this._$AN;if(void 0!==o&&0!==o.size)if(e)if(Array.isArray(i))for(let n=t;n<i.length;n++)yn(i[n],!1),xn(i[n]);else null!=i&&(yn(i,!1),xn(i));else yn(this,n)}const $n=n=>{n.type==vn&&(n._$AP??=Fn,n._$AQ??=Sn)};class In extends wn{constructor(){super(...arguments),this._$AN=void 0}_$AT(n,e,t){super._$AT(n,e,t),kn(this),this.isConnected=n._$AU}_$AO(n,e=!0){n!==this.isConnected&&(this.isConnected=n,n?this.reconnected?.():this.disconnected?.()),e&&(yn(this,n),xn(this))}setValue(n){if((n=>void 0===n.strings)(this._$Ct))this._$Ct._$AI(n,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=n,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}class Tn{constructor(n){this.G=n}disconnect(){this.G=void 0}reconnect(n){this.G=n}deref(){return this.G}}class Ln{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise(n=>this.Z=n)}resume(){this.Z?.(),this.Y=this.Z=void 0}}const Nn=(n=>(...e)=>({_$litDirective$:n,values:e}))(class extends In{constructor(){super(...arguments),this._$CK=new Tn(this),this._$CX=new Ln}render(n,e){return en}update(n,[e,t]){if(this.isConnected||this.disconnected(),e===this._$CJ)return en;this._$CJ=e;let i=0;const{_$CK:o,_$CX:r}=this;return(async(n,e)=>{for await(const t of n)if(!1===await e(t))return})(e,async n=>{for(;r.get();)await r.get();const a=o.deref();if(void 0!==a){if(a._$CJ!==e)return!1;void 0!==t&&(n=t(n,i)),a.commitValue(n,i),i++}return!0}),en}commitValue(n,e){this.setValue(n)}disconnected(){this._$CK.disconnect(),this._$CX.pause()}reconnected(){this._$CK.reconnect(this),this._$CX.resume()}}),_n="Current user not found! Not logged in?",Pn="Add me to your friends",Dn="Login to add me to your friends",Rn="Login to chat with me",zn="Chat with me",Mn="Resume",On="Social accounts",Un="Friends";function Hn(n,e,t){const i=bn.widgets.errorMessageBlock(e.dom,t);i.setAttribute("role","alert"),i.setAttribute("aria-live","assertive"),i.setAttribute("tabindex","0"),setTimeout(()=>{i.focus()},100),n.appendChild(i)}function qn(n){for(;n.childNodes.length>2;)n.removeChild(n.lastChild)}function Gn(n){return!!n}var jn=r(5491);let Wn=document.createElement("section");const Vn=(n,e)=>{let t=Qn(Bn.authn.currentUser())?Pn.toUpperCase():Dn.toUpperCase();const i=bn.widgets.button(e.dom,void 0,t,function(t){t.preventDefault(),Yn(n,e,bn.ns.foaf("knows")).then(()=>{qn(Wn),function(n,e){const t=document.createElement("div");t.setAttribute("role","status"),t.setAttribute("aria-live","polite"),t.setAttribute("tabindex","0"),t.classList.add("actionButton","licOkay"),t.innerHTML=e,setTimeout(()=>{t.focus()},100),n.appendChild(t)}(Wn,"Friend was added!"),o()}).catch(n=>{qn(Wn),Hn(Wn,e,n)})},{needsBorder:!0});function o(){const t=Bn.authn.currentUser(),o=e.session.store;Qn(t)?Zn(o,t,n,bn.ns.foaf("knows")).then(n=>{i.innerHTML=n?"Already part of friends".toUpperCase():Pn.toUpperCase()}):i.innerHTML=Dn.toUpperCase()}return i.refresh=o(),i};async function Yn(n,e,t){const i=Bn.authn.currentUser(),o=e.session.store;if(!Qn(i))throw new Error(_n);if(await Zn(o,i,n,t))throw new Error("Friend already exists");{await o.fetcher.load(i);const e=o.updater,r=[(0,jn.st)(i,t,n,i.doc())];try{await e.update([],r)}catch(n){let e=n;throw e.toString().includes("Unauthenticated")&&(e=_n),new Error(e)}}}function Qn(n){return!!n}async function Zn(n,e,t,i){return await n.fetcher.load(e),0!==n.whether(e,i,t,e.doc())}const Jn=(n,e)=>{var t;const i=function(n,e,{dom:t}){const i=t.createElement("div");return console.log("Extracting friends for subject:",e.doc()),bn.widgets.attachmentList(t,e,i,{doc:e.doc(),modify:n,predicate:bn.ns.foaf("knows"),noun:"friend"}),""===i.textContent?null:(console.log("Extracted friends:",i.innerHTML),i)}(!1,n,e);return i&&(null===(t=i.textContent)||void 0===t?void 0:t.trim())?nn`
|
|
2
|
-
<section
|
|
3
|
-
class="friendListSection"
|
|
4
|
-
data-testid="friend-list"
|
|
5
|
-
>
|
|
6
|
-
<h2 id="friends-section-title" class="sr-only">Friends</h2>
|
|
7
|
-
<nav aria-label="Friend profiles">
|
|
8
|
-
<ul class="list-reset zebra-stripe" role="list">
|
|
9
|
-
${i}
|
|
10
|
-
</ul>
|
|
11
|
-
</nav>
|
|
12
|
-
</section>
|
|
13
|
-
`:null};var Kn=r(6077);const Xn=(n,e)=>{const t=bn.utils.label(n),i=bn.widgets.findImage(n),o=e.anyValue(n,bn.ns.vcard("role")),r=e.anyValue(n,bn.ns.vcard("organization-name")),a=e.any(n,bn.ns.vcard("hasAddress")),s=null!=a?e.anyValue(a,bn.ns.vcard("country-name")):null,l=null!=a?e.anyValue(a,bn.ns.vcard("locality")):null,{backgroundColor:c,highlightColor:d}=function(n,e){const t=e.anyValue(n,bn.ns.solid("profileBackgroundColor"),null,n.doc()),i=e.anyValue(n,bn.ns.solid("profileHighlightColor"),null,n.doc());return{backgroundColor:te(t,""),highlightColor:te(i,"")}}(n,e),A=function(n){let e=Bn.store.anyJS(n,bn.ns.solid("preferredSubjectPronoun"))||"";if(e){const t=Bn.store.anyJS(n,bn.ns.solid("preferredObjectPronoun"));if(t){e+="/"+t;const i=Bn.store.anyJS(n,bn.ns.solid("preferredRelativePronoun"));i&&(e+="/"+i)}e=" ("+e+") "}return e||""}(n);return{name:t,imageSrc:i,introduction:ee(o,r),location:ne(s,l),backgroundColor:c,pronouns:A,highlightColor:d}};function ne(n,e){return n&&e?`${e}, ${n}`:n||e||null}function ee(n,e){return n&&e?`${n} at ${e}`:e||n||null}function te(n,e){return n&&(0,Kn.validateHTMLColorHex)(n)?n:e}const ie=(0,jn.Namespace)("http://www.w3.org/ns/org#"),oe=["PastRole","CurrentRole","FutureRole"];function re(n,e){return n?"("+n.value.slice(0,10)+" to "+(e?e.value.slice(0,10):"")+")":""}function ae(n,e){const t=e.elements;if(Array.isArray(t))return t.flatMap(e=>ae(n,e));if(!n.any(e,bn.ns.rdf("first")))return[e];const i=[];let o=e;for(;o;){const e=n.any(o,bn.ns.rdf("first"));e&&i.push(...ae(n,e));const t=n.any(o,bn.ns.rdf("rest"));if(!t||"NamedNode"===t.termType&&t.value===bn.ns.rdf("nil").value)break;o=t}return i}function se(n,e){const t=function(n,e){const t=n.each(null,ie("member"),e,null),i={PastRole:[],CurrentRole:[],FutureRole:[]};for(const e of t){let t,o,r,a,s;const l=n.any(e,bn.ns.schema("startDate")),c=n.any(e,bn.ns.schema("endDate")),d=re(l,c),A=n.any(e,ie("organization"));A&&(o=n.anyJS(A,bn.ns.schema("name")),t=n.any(A,bn.ns.schema("uri")),s=n.any(A,bn.ns.solid("publicId"))),s&&(r=n.anyJS(s,bn.ns.schema("name")));const u=r||o,p=n.any(e,ie("role"));p&&(a=n.anyJS(p,bn.ns.schema("name")));const m=n.anyJS(e,bn.ns.vcard("role")),f={startDate:l,endDate:c,orgName:u,roleText:m&&a?a+" - "+m:m||a,dates:d,orgHomePage:t};for(const t of oe)n.holds(e,bn.ns.rdf("type"),bn.ns.solid(t))&&i[t].push(f)}return i}(e,n);for(const n of oe)t[n].sort(function(n,e){return n.endDate&&e.endDate?n.endDate>e.endDate?-1:1:n.startDate>e.startDate?-1:1});const i=e.each(n,bn.ns.schema("skills")).map(n=>function(n,e){if("Literal"===e.termType)return e.value;const t=n.anyJS(e,bn.ns.solid("publicId"));if(t){const e=n.anyJS(t,bn.ns.schema("name"));if(e)return e}const i=n.anyJS(e,bn.ns.vcard("role"));return i&&i[0]>""?i:""}(e,n)).filter(n=>""!==n),o=e.each(n,bn.ns.schema("knowsLanguage")).flatMap(n=>ae(e,n)).map(n=>function(n,e){if("Literal"===e.termType)return e.value;const t=n.anyJS(e,bn.ns.solid("publicId"));return t?bn.utils.label(t,!0):""}(e,n));return{rolesByType:t,skills:i,languages:Array.from(new Set(o))}}const le='@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix : <#>.\n\n########### ATTENTION - we cannot rename this ontology file name without migrating existing data on existing accounts\n\n########### Social Media - other accounts\n#\n# Twitter, linked In, Orkid, Mastodon, Matrix, Bluesky, Instagram, Facebook, Github,\n# Snapchat, TikTok, etc\n\n:this\n <http://purl.org/dc/elements/1.1/title> "Social media form" ;\n a ui:Form ;\n ui:parts (\n :SocialsForm\n ).\n\n:SocialsForm a ui:Multiple;\n ui:label "online account";\n ui:property foaf:account; # the triple is created with the foaf:acccounts predicate\n ui:ordered true; # Allow user to order occounts most important first.\n ui:part :AccountsForm.\n\n:AccountsForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :AccountField \n :AccountIdField ).\n\n:AccountField a ui:Classifier; \n ui:label "Account"@en;\n ui:multiple false ; \n ui:category foaf:Account. # the accounts are described by the foaf:Account predicate\n\n# this is what is needed to make a dropdown box\nfoaf:Account a rdfs:Class;\n rdfs:label "Online Account Provider";\n owl:disjointUnionOf ( \n :BlueSkyAccount :DiggAccount :FacebookAccount :GithubAccount :InstagramAccount\n :LinkedInAccount :MastodonAccount :MatrixAccount :MediumAccount :NostrAccount \n :OrcidAccount :PinterestAccount :RedditAccount :SnapchatAccount :StravaAccount \n :TiktokAccount :TumblrAccount :TwitterAccount :OtherAccount) .\n\n:AccountIdField a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for :BlueSkyAccount; ui:use :BlueSkyIdField ],\n [ ui:for :DiggAccount; ui:use :DiggIdField],\n [ ui:for :FacebookAccount; ui:use :FacebookIdField ],\n [ ui:for :GithubAccount; ui:use :GithubIdField ],\n [ ui:for :InstagramAccount; ui:use :InstagramIdField ],\n [ ui:for :LinkedInAccount; ui:use :LinkedInIdField ],\n [ ui:for :MastodonAccount; ui:use :MastodonIdField ],\n [ ui:for :MatrixAccount; ui:use :MatrixIdField ],\n [ ui:for :MediumAccount; ui:use :MediumIdField ],\n [ ui:for :NostrAccount; ui:use :NostrIdField ],\n [ ui:for :OrcidAccount; ui:use :OrcidIdField ],\n [ ui:for :PinterestAccount; ui:use :PinterestIdField ],\n [ ui:for :RedditAccount; ui:use :RedditIdField ],\n [ ui:for :StravaAccount; ui:use :StravaIdField ],\n [ ui:for :SnapchatAccount; ui:use :SnapchatIdField ],\n [ ui:for :TiktokAccount; ui:use :TiktokIdField ],\n [ ui:for :TumblrAccount; ui:use :TumblrIdField ],\n [ ui:for :TwitterAccount; ui:use :TwitterIdField ],\n [ ui:for :OtherAccount; ui:use :OtherIdForm ] .\n\n:BlueSkyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Bluesky";\n foaf:userProfilePrefix "https://bsky.app/profile/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/bluesky-1.svg>;\n foaf:homepage <https://bsky.app/> .\n\n:DiggAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Digg";\n foaf:userProfilePrefix "https://www.digg.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/digg-icon.svg>;\n foaf:homepage <https://www.digg.com/> .\n\n:FacebookAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Facebook";\n foaf:userProfilePrefix "https://www.facebook.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/facebook-2020-2-1.svg>;\n foaf:homepage <https://www.facebook.com/> .\n\n:GithubAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Github";\n foaf:userProfilePrefix "https://www.github.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/github-icon.svg>;\n foaf:homepage <https://github.com/> .\n\n:InstagramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Instagram";\n foaf:userProfilePrefix "https://www.instagram.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/instagram-2016-5.svg>;\n foaf:homepage <https://www.instagram.com/> .\n\n:LinkedInAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "LinkedIn";\n foaf:userProfilePrefix "https://www.linkedin.com/in/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/linkedin-icon.svg>;\n foaf:homepage <https://linkedin.com/> .\n\n:MastodonAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Mastodon" ;\n foaf:userProfilePrefix "https://mastodon.social/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/mastodon-2.svg>;\n foaf:homepage <https://joinmastodon.org/> .\n\n:MatrixAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Matrix" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/matrix-logo-black.svg> ;\n foaf:userProfilePrefix "https://matrix.to/#/" ;\n foaf:homepage <https://matrix.org/> .\n\n:MediumAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Medium";\n foaf:userProfilePrefix "https://medium.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/medium-logo-wordmark-black.svg>;\n foaf:homepage <https://medium.com/> .\n\n:NostrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Nostr";\n foaf:userProfilePrefix "https://primal.net/p/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/nostr-icon-purple-on-white.svg>;\n foaf:homepage <https://nostr.net/> .\n\n:OrcidAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "ORCiD";\n foaf:userProfilePrefix "https://orcid.org/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/ORCID-1.svg>;\n foaf:homepage <https://orcid.org/> .\n\n:PinterestAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Pinterest";\n foaf:userProfilePrefix "https://pin.it/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/pinterest-2-1.svg>;\n foaf:homepage <https://pinterest.com/> .\n\n:RedditAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Reddit";\n foaf:userProfilePrefix "https://www.reddit.com/user/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/reddit-4.svg>;\n foaf:homepage <https://reddit.com/> .\n\n:SnapchatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Snapchat";\n foaf:userProfilePrefix "https://www.snapchat.com/add/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/snapchat-1.svg>;\n foaf:homepage <https://www.snapchat.com/> .\n\n:StravaAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Strava";\n foaf:userProfilePrefix "https://www.strava.com/athletes/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/strava-2.svg>;\n foaf:homepage <https://strava.com/> .\n\n:TiktokAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "TikTok";\n foaf:userProfilePrefix "https://www.tiktok.com/@";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tiktok-icon-2.svg>;\n foaf:homepage <https://www.tiktok.com/> .\n\n:TumblrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Tumblr";\n foaf:userProfilePrefix "https://www.tumblr.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tumblr-icon.svg>;\n foaf:homepage <https://www.tumblr.com/> .\n\n:TwitterAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "X";\n foaf:userProfilePrefix "https://x.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/x-2.svg>;\n foaf:homepage <https://x.com/> .\n\n:OtherAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Other" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/noun_1689339.svg> .\n\n:BlueSkyIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*".\n\n:DiggIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*".\n\n:FacebookIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:GithubIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:InstagramIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:LinkedInIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:MastodonIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:MatrixIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:MediumIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:NostrIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:OrcidIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:PinterestIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:RedditIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:StravaIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:SnapchatIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TiktokIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TumblrIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TwitterIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n# an unknown online account needs more info\n\n:OtherIdForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :OtherIdField \n :OtherIconField \n :OtherLabelField ).\n\n:OtherIdField\n a ui:NamedNodeURIField ;\n ui:label "Account link";\n ui:maxLength "200" ;\n ui:property foaf:homepage.\n\n:OtherIconField\n a ui:NamedNodeURIField ;\n ui:label "Icon link";\n ui:maxLength "200" ;\n ui:property foaf:icon.\n\n:OtherLabelField\n a ui:SingleLineTextField ;\n ui:label "Name";\n ui:maxLength "200" ;\n ui:property rdfs:label.\n\n# ends\n',ce="https://solidos.github.io/profile-pane/src/ontology/";function de(n,e,t,i,o,r,a,s){const l=ce+i,c=s||"this",d=(0,jn.Namespace)(l+"#")(c);Ae(o,t,i,l),bn.widgets.appendForm(r,n,{},e,d,a,(n,e)=>{n||bn.widgets.errorMessageBlock(r,e)}),function(n){const e="noun_19460_green.svg",t=n=>{var t;const i=n.querySelector("img"),o=n.querySelector("span");return(null==i?void 0:i.src.includes(e))&&(null===(t=null==o?void 0:o.textContent)||void 0===t?void 0:t.trim().toLowerCase().startsWith("add "))};Array.from(n.querySelectorAll("div")).filter(t).forEach(e=>{e.addEventListener("click",()=>{const t=function(e){let t=e;for(;t&&t!==n;){if(t.querySelector('input[data-testid="autocomplete-input"]'))return t;t=t.parentElement}return n}(e),i=new Set(Array.from(t.querySelectorAll('input[data-testid="autocomplete-input"]'))),o=Date.now(),r=setInterval(()=>{const n=Array.from(t.querySelectorAll('input[data-testid="autocomplete-input"]')).find(n=>!i.has(n));if(n)return ue(t),n.focus(),void clearInterval(r);Date.now()-o>1e3&&clearInterval(r)},50)})})}(n);let A={x:0,y:0};n.addEventListener("pointerdown",n=>{A={x:n.clientX,y:n.clientY}},{capture:!0});const u=n=>{const e=r.defaultView||window,t=10,i=e.innerWidth-t,o=e.innerHeight-t;n.style.position="fixed",n.style.zIndex="9999",n.style.pointerEvents="auto",n.style.opacity="1",n.style.visibility="visible";const a=n.getBoundingClientRect(),s=a.width||200,l=a.height||100,c=Math.min(Math.max(A.x+t,t),i-s),d=Math.min(Math.max(A.y+t,t),o-l);n.style.left=`${c}px`,n.style.top=`${d}px`};new MutationObserver(n=>{for(const e of n)for(const n of Array.from(e.addedNodes)){if(!(n instanceof HTMLElement))continue;if("absolute"===n.style.position&&"grid"===n.style.display&&"-1em"===n.style.top){u(n);continue}const e=n.querySelector('div[style*="position:absolute"][style*="display:grid"][style*="top:-1em"]');e&&u(e)}}).observe(n,{childList:!0,subtree:!0})}function Ae(n,e,t,i){const o=i||ce+t,r=(0,jn.sym)(o);n.holds(void 0,void 0,void 0,r)||(0,jn.parse)(e,n,o,"text/turtle",()=>null)}function ue(n){const e=["label",".formFieldName a",".classifierBox-label a",".choiceBox-label a",".label a",'a[href="http://www.w3.org/2006/vcard/ns#note"]','a[href$="#note"]'].join(", "),t=null==n?void 0:n.querySelectorAll(e);t&&Array.from(t).forEach(n=>{"number"==typeof n.tabIndex&&-1!==n.tabIndex&&(n.tabIndex=-1),"true"!==n.getAttribute("aria-hidden")&&n.setAttribute("aria-hidden","true")})}const pe=bn.icons.iconBase+"noun_10636_grey.svg";function me(n,e){function t(n){const t=e.any(n,bn.ns.foaf("name"))||e.any(n,bn.ns.rdfs("label"));if(t)return t.value;const i=e.each(n,bn.ns.rdf("type"));for(const n of i){const t=e.any(n,bn.ns.rdfs("label"));return t?t.value:bn.utils.label(n)}return"Unknown Account"}function i(n){const t=e.any(n,bn.ns.foaf("icon"));if(t)return t.value;const i=e.each(n,bn.ns.rdf("type"));if(i.length>0)for(const n of i){const t=e.any(n,bn.ns.foaf("icon"));if(null!==t)return t.value}return pe}function o(n){const t=e.any(n,bn.ns.foaf("homepage"));if(t)return t.value;const i=e.anyJS(n,bn.ns.foaf("accountName"),null,n.doc())||"No_account_Name",o=e.each(n,bn.ns.rdf("type"));for(const n of o)if("NamedNode"===n.termType){const t=e.any(n,bn.ns.foaf("userProfilePrefix"));if(t)return t.value+i.trim()}return e.anyJS(n,bn.ns.foaf("homepage"),null,n.doc())||""}function r(n){return{name:t(n),icon:i(n),homepage:o(n)}}Ae(e,le,"socialMedia.ttl");let a=e.each(n,bn.ns.foaf("account")).flatMap(n=>function(n,e){const t=new Set;return function e(i){const o=`${i.termType||typeof i}:${i.value||String(i)}`;if(t.has(o))return[];t.add(o);const r=i.elements;if(Array.isArray(r))return r.flatMap(n=>e(n));if(!n.any(i,bn.ns.rdf("first")))return[i];const a=[];let s=i;for(;s;){const t=n.any(s,bn.ns.rdf("first"));t&&a.push(...e(t));const i=n.any(s,bn.ns.rdf("rest"));if(!i||"NamedNode"===i.termType&&i.value===bn.ns.rdf("nil").value)break;s=i}return a}(e)}(e,n));const s=new Set,l=[];for(const n of a)if("NamedNode"===n.termType){const t=e.any(n,bn.ns.foaf("accountName")),i=t?t.value:"";s.has(i)||(s.add(i),l.push(r(n)))}return l.length?{accounts:l}:{accounts:[]}}const{iconForClass:fe}=bn.widgets,{typeIndex:he}=Bn.solidLogicSingleton,{getScopedAppInstances:ge}=he,Ce={};for(const n in fe){const e=n.split(":")[0],t=n.split(":")[1],i=bn.ns[e](t);Ce[i.uri]=jn.uri.join(fe[n],bn.icons.iconBase)}async function be(n){return{stuff:(await ge(null,n)).map(n=>{const e=(t=n.type||bn.ns.rdf("Resource"),Ce[t.uri]||bn.icons.iconBase+"noun_10636.svg");var t;return{href:n.instance.uri,name:bn.utils.label(n.instance),icon:e,instance:n.instance}})}}function Be(n){if(3===(n=n.replace(/^#/,"")).length&&(n=n.split("").map(n=>n+n).join("")),6!==n.length)return null;const e=parseInt(n,16);return{r:e>>16&255,g:e>>8&255,b:255&e}}function Ee({r:n,g:e,b:t}){const i=[n,e,t].map(function(n){return(n/=255)<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4)});return.2126*i[0]+.7152*i[1]+.0722*i[2]}const ve=(n,e,t)=>{const i=n||"#000000",o=e||"#ffffff",r=bn.utils.label(t),a=function(n,e){const t=Be(n),i=Be(e);if(!t||!i)return 1;const o=Ee(t),r=Ee(i);return(Math.max(o,r)+.05)/(Math.min(o,r)+.05)}(i,o);a<4.5&&console.warn(`QRCodeCard: The contrast ratio between highlightColor (${i}) and backgroundColor (${o}) is ${a.toFixed(2)}, which is below the WCAG 2.1 recommended minimum of 4.5:1 for normal text.`);const s="FN:"+r+"\r\n",l="URL:"+t.uri+"r\n";setTimeout(()=>{const n=document.querySelector('.QRCode [role="img"]');if(n){const e=n.hasAttribute("aria-label"),t=n.hasAttribute("alt");e||t||console.warn("QRCodeCard: The QR code element should have an accessible label (aria-label or alt attribute) for screen readers.")}else console.warn('QRCodeCard: No element with role="img" found for the QR code. Ensure the QR code is rendered as an <img> or <canvas> with proper ARIA attributes.')},0);return nn`
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n(require("SolidLogic"),require("UI"),require("rdflib")):"function"==typeof define&&define.amd?define(["SolidLogic","UI","rdflib"],n):"object"==typeof exports?exports.ProfilePane=n(require("SolidLogic"),require("UI"),require("rdflib")):e.ProfilePane=n(e.SolidLogic,e.UI,e.rdflib)}(this,(e,n,t)=>(()=>{var i={741(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,".bioDescriptionWrap {\n\tmargin: 0;\n\tposition: relative;\n\tisolation: isolate;\n}\n\n.bioDescriptionText {\n\tmargin: 0;\n\twidth: 100%;\n\tmax-width: none;\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-line-clamp: 3;\n\tline-clamp: 3;\n\tline-height: var(--line-height-base, 1.5);\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.bioDescriptionText:not(.isExpanded)::after {\n\tcontent: '';\n\tposition: absolute;\n\tright: 0;\n\ttop: calc(100% - 1.5em);\n\twidth: 50%;\n\theight: 1.5em;\n\tbackground: var(--color-card-bg);\n\tpointer-events: none;\n}\n\n.bioDescriptionText.isExpanded {\n\tdisplay: block;\n\t-webkit-line-clamp: unset;\n\tline-clamp: unset;\n\toverflow: visible;\n}\n\n.bioDescriptionToggle {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tcolor: var(--color-primary);\n\tcursor: pointer;\n\tfont: inherit;\n\tfont-size: var(--font-size-sm);\n\tline-height: var(--line-height-base, 1.5);\n\tposition: absolute;\n\tleft: 50%;\n\tbottom: 0;\n\tbackground-color: var(--color-card-bg);\n\twhite-space: nowrap;\n\tmin-height: auto;\n\tmin-width: auto;\n\tpadding-left: 0;\n\tpadding-right: 0;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tz-index: 0;\n}\n\n.bioDescriptionWrap .bioDescriptionText:not(.isExpanded) + .bioDescriptionToggle {\n\ttop: calc(100% - 1.5em + 0.28em - 12px);\n\tbottom: auto;\n\ttransform: translateY(7px);\n}\n\n.bioDescriptionText.isExpanded + .bioDescriptionToggle {\n\tposition: static;\n\tdisplay: inline;\n\tpadding-left: 0;\n\ttop: auto;\n\tbottom: auto;\n\ttransform: none;\n}\n","",{version:3,sources:["webpack://./src/styles/BioSection.css"],names:[],mappings:"AAAA;CACC,SAAS;CACT,kBAAkB;CAClB,kBAAkB;AACnB;;AAEA;CACC,SAAS;CACT,WAAW;CACX,eAAe;CACf,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,aAAa;CACb,yCAAyC;CACzC,kBAAkB;CAClB,gBAAgB;AACjB;;AAEA;CACC,WAAW;CACX,kBAAkB;CAClB,QAAQ;CACR,uBAAuB;CACvB,UAAU;CACV,aAAa;CACb,gCAAgC;CAChC,oBAAoB;AACrB;;AAEA;CACC,cAAc;CACd,yBAAyB;CACzB,iBAAiB;CACjB,iBAAiB;AAClB;;AAEA;CACC,SAAS;CACT,UAAU;CACV,SAAS;CACT,gBAAgB;CAChB,2BAA2B;CAC3B,eAAe;CACf,aAAa;CACb,8BAA8B;CAC9B,yCAAyC;CACzC,kBAAkB;CAClB,SAAS;CACT,SAAS;CACT,sCAAsC;CACtC,mBAAmB;CACnB,gBAAgB;CAChB,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,eAAe;CACf,UAAU;AACX;;AAEA;CACC,uCAAuC;CACvC,YAAY;CACZ,0BAA0B;AAC3B;;AAEA;CACC,gBAAgB;CAChB,eAAe;CACf,eAAe;CACf,SAAS;CACT,YAAY;CACZ,eAAe;AAChB",sourcesContent:[".bioDescriptionWrap {\n\tmargin: 0;\n\tposition: relative;\n\tisolation: isolate;\n}\n\n.bioDescriptionText {\n\tmargin: 0;\n\twidth: 100%;\n\tmax-width: none;\n\tdisplay: -webkit-box;\n\t-webkit-box-orient: vertical;\n\t-webkit-line-clamp: 3;\n\tline-clamp: 3;\n\tline-height: var(--line-height-base, 1.5);\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.bioDescriptionText:not(.isExpanded)::after {\n\tcontent: '';\n\tposition: absolute;\n\tright: 0;\n\ttop: calc(100% - 1.5em);\n\twidth: 50%;\n\theight: 1.5em;\n\tbackground: var(--color-card-bg);\n\tpointer-events: none;\n}\n\n.bioDescriptionText.isExpanded {\n\tdisplay: block;\n\t-webkit-line-clamp: unset;\n\tline-clamp: unset;\n\toverflow: visible;\n}\n\n.bioDescriptionToggle {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: none;\n\tcolor: var(--color-primary);\n\tcursor: pointer;\n\tfont: inherit;\n\tfont-size: var(--font-size-sm);\n\tline-height: var(--line-height-base, 1.5);\n\tposition: absolute;\n\tleft: 50%;\n\tbottom: 0;\n\tbackground-color: var(--color-card-bg);\n\twhite-space: nowrap;\n\tmin-height: auto;\n\tmin-width: auto;\n\tpadding-left: 0;\n\tpadding-right: 0;\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tz-index: 0;\n}\n\n.bioDescriptionWrap .bioDescriptionText:not(.isExpanded) + .bioDescriptionToggle {\n\ttop: calc(100% - 1.5em + 0.28em - 12px);\n\tbottom: auto;\n\ttransform: translateY(7px);\n}\n\n.bioDescriptionText.isExpanded + .bioDescriptionToggle {\n\tposition: static;\n\tdisplay: inline;\n\tpadding-left: 0;\n\ttop: auto;\n\tbottom: auto;\n\ttransform: none;\n}\n"],sourceRoot:""}]);const l=r},1267(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,"/* CVCard.css */\n/* Note: Uses utilities: .section-title for cvOrg styling */\n\n.cvSection {\n margin-bottom: 1.25em;\n}\n\n.cvSection > ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.cvRole {\n margin: 0 0 var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n.cvRole:last-child {\n margin-bottom: 0;\n}\n\n.cvRoleHeader {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n gap: var(--spacing-sm);\n}\n\n.cvRoleHeader h4,\n.cvRoleHeader time {\n margin: 0;\n}\n\n.cvRolePeriod {\n margin: 0;\n font-size: var(--font-size-sm);\n line-height: var(--line-height-tight);\n}\n\n@media (max-width: 640px) {\n .cvRoleHeader {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n.cvOrg {\n font-weight: 600;\n color: var(--color-primary);\n margin: 0;\n}\n\n.cvDescriptionWrap {\n margin: 0;\n position: relative;\n isolation: isolate;\n}\n\n.cvDescriptionText {\n margin: 0;\n width: 100%;\n max-width: none;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n line-height: var(--line-height-base);\n padding-right: 4.5em;\n overflow: hidden;\n}\n\n.cvDescriptionText.isExpanded {\n display: block;\n -webkit-line-clamp: unset;\n line-clamp: unset;\n padding-right: 0;\n overflow: visible;\n}\n\n.cvDescriptionToggle {\n margin: 0;\n padding: 0;\n border: 0;\n background: none;\n color: var(--color-primary);\n cursor: pointer;\n font: inherit;\n font-size: var(--font-size-sm);\n line-height: var(--line-height-base, 1.5);\n position: absolute;\n right: 0;\n bottom: 0;\n background-color: var(--color-card-bg);\n white-space: nowrap;\n min-height: auto;\n min-width: auto;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n margin-left: 0;\n margin-right: 0;\n z-index: 0;\n}\n\n.cvDescriptionWrap .cvDescriptionText:not(.isExpanded) + .cvDescriptionToggle {\n top: calc(100% - 1.5em + 0.28em - 11px);\n bottom: auto;\n transform: translateY(7px);\n}\n\n.cvDescriptionText.isExpanded + .cvDescriptionToggle {\n position: static;\n display: inline;\n padding-left: 0;\n top: auto;\n bottom: auto;\n transform: none;\n}\n\n.cvSkill, .cvLanguage {\n text-align: left;\n margin: var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n}\n\n.cvSection h3 {\n color: var(--color-text);\n font-size: var(--font-size-lg);\n font-weight: 600;\n line-height: var(--line-height-tight);\n margin-bottom: var(--spacing-xs);\n border-bottom: 1px solid var(--color-border-pale);\n padding-bottom: var(--spacing-xs);\n}\n","",{version:3,sources:["webpack://./src/styles/CVCard.css"],names:[],mappings:"AAAA,eAAe;AACf,2DAA2D;;AAE3D;EACE,qBAAqB;AACvB;;AAEA;EACE,gBAAgB;EAChB,SAAS;EACT,UAAU;AACZ;;AAEA;EACE,+BAA+B;EAC/B,gCAAgC;EAChC,oCAAoC;EACpC,aAAa;EACb,sBAAsB;EACtB,MAAM;AACR;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;;EAEE,SAAS;AACX;;AAEA;EACE,SAAS;EACT,8BAA8B;EAC9B,qCAAqC;AACvC;;AAEA;EACE;IACE,sBAAsB;IACtB,uBAAuB;EACzB;AACF;;AAEA;EACE,gBAAgB;EAChB,2BAA2B;EAC3B,SAAS;AACX;;AAEA;EACE,SAAS;EACT,kBAAkB;EAClB,kBAAkB;AACpB;;AAEA;EACE,SAAS;EACT,WAAW;EACX,eAAe;EACf,oBAAoB;EACpB,4BAA4B;EAC5B,qBAAqB;EACrB,aAAa;EACb,oCAAoC;EACpC,oBAAoB;EACpB,gBAAgB;AAClB;;AAEA;EACE,cAAc;EACd,yBAAyB;EACzB,iBAAiB;EACjB,gBAAgB;EAChB,iBAAiB;AACnB;;AAEA;EACE,SAAS;EACT,UAAU;EACV,SAAS;EACT,gBAAgB;EAChB,2BAA2B;EAC3B,eAAe;EACf,aAAa;EACb,8BAA8B;EAC9B,yCAAyC;EACzC,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,sCAAsC;EACtC,mBAAmB;EACnB,gBAAgB;EAChB,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,iBAAiB;EACjB,cAAc;EACd,eAAe;EACf,UAAU;AACZ;;AAEA;EACE,uCAAuC;EACvC,YAAY;EACZ,0BAA0B;AAC5B;;AAEA;EACE,gBAAgB;EAChB,eAAe;EACf,eAAe;EACf,SAAS;EACT,YAAY;EACZ,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,2BAA2B;EAC3B,gCAAgC;EAChC,oCAAoC;AACtC;;AAEA;EACE,wBAAwB;EACxB,8BAA8B;EAC9B,gBAAgB;EAChB,qCAAqC;EACrC,gCAAgC;EAChC,iDAAiD;EACjD,iCAAiC;AACnC",sourcesContent:["/* CVCard.css */\n/* Note: Uses utilities: .section-title for cvOrg styling */\n\n.cvSection {\n margin-bottom: 1.25em;\n}\n\n.cvSection > ul {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.cvRole {\n margin: 0 0 var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n\n.cvRole:last-child {\n margin-bottom: 0;\n}\n\n.cvRoleHeader {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: baseline;\n gap: var(--spacing-sm);\n}\n\n.cvRoleHeader h4,\n.cvRoleHeader time {\n margin: 0;\n}\n\n.cvRolePeriod {\n margin: 0;\n font-size: var(--font-size-sm);\n line-height: var(--line-height-tight);\n}\n\n@media (max-width: 640px) {\n .cvRoleHeader {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n\n.cvOrg {\n font-weight: 600;\n color: var(--color-primary);\n margin: 0;\n}\n\n.cvDescriptionWrap {\n margin: 0;\n position: relative;\n isolation: isolate;\n}\n\n.cvDescriptionText {\n margin: 0;\n width: 100%;\n max-width: none;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n line-clamp: 2;\n line-height: var(--line-height-base);\n padding-right: 4.5em;\n overflow: hidden;\n}\n\n.cvDescriptionText.isExpanded {\n display: block;\n -webkit-line-clamp: unset;\n line-clamp: unset;\n padding-right: 0;\n overflow: visible;\n}\n\n.cvDescriptionToggle {\n margin: 0;\n padding: 0;\n border: 0;\n background: none;\n color: var(--color-primary);\n cursor: pointer;\n font: inherit;\n font-size: var(--font-size-sm);\n line-height: var(--line-height-base, 1.5);\n position: absolute;\n right: 0;\n bottom: 0;\n background-color: var(--color-card-bg);\n white-space: nowrap;\n min-height: auto;\n min-width: auto;\n padding-left: 0;\n padding-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n margin-left: 0;\n margin-right: 0;\n z-index: 0;\n}\n\n.cvDescriptionWrap .cvDescriptionText:not(.isExpanded) + .cvDescriptionToggle {\n top: calc(100% - 1.5em + 0.28em - 11px);\n bottom: auto;\n transform: translateY(7px);\n}\n\n.cvDescriptionText.isExpanded + .cvDescriptionToggle {\n position: static;\n display: inline;\n padding-left: 0;\n top: auto;\n bottom: auto;\n transform: none;\n}\n\n.cvSkill, .cvLanguage {\n text-align: left;\n margin: var(--spacing-xs) 0;\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n}\n\n.cvSection h3 {\n color: var(--color-text);\n font-size: var(--font-size-lg);\n font-weight: 600;\n line-height: var(--line-height-tight);\n margin-bottom: var(--spacing-xs);\n border-bottom: 1px solid var(--color-border-pale);\n padding-bottom: var(--spacing-xs);\n}\n"],sourceRoot:""}]);const l=r},3750(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,"/* ChatWithMe.css */\n/* Uses utilities: .section-centered, .loading-text, .btn-primary, .btn-transparent */\n\n.chatSection {\n overflow-x: auto;\n}\n","",{version:3,sources:["webpack://./src/styles/ChatWithMe.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,qFAAqF;;AAErF;EACE,gBAAgB;AAClB",sourcesContent:["/* ChatWithMe.css */\n/* Uses utilities: .section-centered, .loading-text, .btn-primary, .btn-transparent */\n\n.chatSection {\n overflow-x: auto;\n}\n"],sourceRoot:""}]);const l=r},7380(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,".profile__edit-form--contact-info .profile-edit-dialog__section {\n gap: 0;\n}\n\n.profile__edit-form--contact-info .profile-edit-dialog__section + .profile-edit-dialog__section {\n border-top: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);\n padding-top: var(--spacing-xs, 0.75rem);\n}\n\n.profile__edit-form--contact-info .profile__section-header {\n margin-bottom: 0;\n}\n\n.profile__edit-form--contact-info .profile-edit-dialog__section fieldset {\n margin-top: 0.25rem;\n gap: var(--spacing-xs, 0.75rem);\n}\n\n.profile__edit-form--contact-info .profile-edit-dialog__section-heading {\n margin: 0;\n color: var(--gray-700, #364153);\n font-size: var(--font-size-md, 1rem); /* 16px */\n font-weight: var(--font-weight-md, 500);\n line-height: normal;\n}\n\n.profile-edit-dialog__phone-prefix-field {\n flex: 0 0 6.1rem;\n margin: 0;\n}\n\n.phonePrefixSelect,\n.profile-edit-dialog__phone-local-input {\n border: 0 !important;\n background: transparent;\n min-height: calc(var(--min-touch-target, 44px) - 2px);\n height: calc(var(--min-touch-target, 44px) - 2px);\n}\n\n.phonePrefixSelect {\n padding: 0 0.2rem 0 0;\n}\n\n.phonePrefixSelect:focus,\n.profile-edit-dialog__phone-local-input:focus {\n outline: none;\n}\n\n.profile-edit-dialog__phone-type-row {\n flex: 0 0 7.5rem;\n}\n\n.profile-edit-dialog__row--contact-point {\n max-width: 100%;\n width: 100%;\n border: 0;\n outline: 0;\n box-shadow: none;\n}\n\n.profile-edit-dialog__section fieldset > .profile-edit-dialog__row--contact-point {\n margin-bottom: var(--spacing-xs, 0.75rem);\n}\n\n.profile-edit-dialog__section fieldset > .profile-edit-dialog__row--contact-point:last-child {\n margin-bottom: var(--spacing-sm, 0.9375rem);\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field,\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type,\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field > .label {\n border: 0;\n outline: 0;\n box-shadow: none;\n background: transparent;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field > .label {\n display: block;\n width: 100%;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.profile-edit-dialog__phone-type-row {\n flex: 0 0 6.5rem;\n width: 6.5rem;\n min-width: 6.5rem;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.emailTypeRow {\n flex: 0 0 6.5rem;\n width: 6.5rem;\n min-width: 6.5rem;\n}\n\n.profile-edit-dialog__row--address-header.profile-edit-dialog__row--full {\n max-width: 100%;\n width: 100%;\n align-items: center;\n}\n\n.profile-edit-dialog__row--address-header.profile-edit-dialog__row--full .profile-edit-dialog__actions {\n align-self: center;\n}\n\n.profile-edit-dialog__row--address-header.profile-edit-dialog__row--full .profile-edit-dialog__delete-button,\n#profile-modal .modal .profile-edit-dialog__row--address-header.profile-edit-dialog__row--full button.profile-edit-dialog__delete-button {\n min-height: 1.75rem;\n min-width: 1.75rem;\n}\n\n.profile-edit-dialog__address-title {\n margin: 0;\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: var(--line-height-base, 1.5);\n}\n\n@media (max-width: 640px) {\n .profile-edit-dialog__row--contact-point {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--spacing-2xs, 0.625rem);\n }\n\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n }\n\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.profile-edit-dialog__phone-type-row,\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.emailTypeRow {\n flex: 0 0 5.5rem;\n width: 5.5rem;\n min-width: 5.5rem;\n max-width: 5.5rem;\n }\n\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__actions {\n flex: 0 0 auto;\n margin-left: 0;\n justify-content: flex-end;\n }\n\n .profile-edit-dialog__phone-prefix-field {\n flex: 0 0 5.75rem;\n }\n}\n","",{version:3,sources:["webpack://./src/styles/ContactInfoEditDialog.css"],names:[],mappings:"AAAA;EACE,MAAM;AACR;;AAEA;EACE,0EAA0E;EAC1E,uCAAuC;AACzC;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,mBAAmB;EACnB,+BAA+B;AACjC;;AAEA;EACE,SAAS;EACT,+BAA+B;EAC/B,oCAAoC,EAAE,SAAS;EAC/C,uCAAuC;EACvC,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,SAAS;AACX;;AAEA;;EAEE,oBAAoB;EACpB,uBAAuB;EACvB,qDAAqD;EACrD,iDAAiD;AACnD;;AAEA;EACE,qBAAqB;AACvB;;AAEA;;EAEE,aAAa;AACf;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,WAAW;EACX,SAAS;EACT,UAAU;EACV,gBAAgB;AAClB;;AAEA;EACE,yCAAyC;AAC3C;;AAEA;EACE,2CAA2C;AAC7C;;AAEA;;;EAGE,SAAS;EACT,UAAU;EACV,gBAAgB;EAChB,uBAAuB;AACzB;;AAEA;EACE,cAAc;EACd,YAAY;AACd;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,aAAa;EACb,iBAAiB;AACnB;;AAEA;EACE,gBAAgB;EAChB,aAAa;EACb,iBAAiB;AACnB;;AAEA;EACE,eAAe;EACf,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;;EAEE,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,SAAS;EACT,wCAAwC;EACxC,2CAA2C;EAC3C,yCAAyC;AAC3C;;AAEA;EACE;IACE,mBAAmB;IACnB,mBAAmB;IACnB,iBAAiB;IACjB,iCAAiC;EACnC;;EAEA;IACE,WAAW;IACX,YAAY;EACd;;EAEA;;IAEE,gBAAgB;IAChB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;EACnB;;EAEA;IACE,cAAc;IACd,cAAc;IACd,yBAAyB;EAC3B;;EAEA;IACE,iBAAiB;EACnB;AACF",sourcesContent:[".profile__edit-form--contact-info .profile-edit-dialog__section {\n gap: 0;\n}\n\n.profile__edit-form--contact-info .profile-edit-dialog__section + .profile-edit-dialog__section {\n border-top: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);\n padding-top: var(--spacing-xs, 0.75rem);\n}\n\n.profile__edit-form--contact-info .profile__section-header {\n margin-bottom: 0;\n}\n\n.profile__edit-form--contact-info .profile-edit-dialog__section fieldset {\n margin-top: 0.25rem;\n gap: var(--spacing-xs, 0.75rem);\n}\n\n.profile__edit-form--contact-info .profile-edit-dialog__section-heading {\n margin: 0;\n color: var(--gray-700, #364153);\n font-size: var(--font-size-md, 1rem); /* 16px */\n font-weight: var(--font-weight-md, 500);\n line-height: normal;\n}\n\n.profile-edit-dialog__phone-prefix-field {\n flex: 0 0 6.1rem;\n margin: 0;\n}\n\n.phonePrefixSelect,\n.profile-edit-dialog__phone-local-input {\n border: 0 !important;\n background: transparent;\n min-height: calc(var(--min-touch-target, 44px) - 2px);\n height: calc(var(--min-touch-target, 44px) - 2px);\n}\n\n.phonePrefixSelect {\n padding: 0 0.2rem 0 0;\n}\n\n.phonePrefixSelect:focus,\n.profile-edit-dialog__phone-local-input:focus {\n outline: none;\n}\n\n.profile-edit-dialog__phone-type-row {\n flex: 0 0 7.5rem;\n}\n\n.profile-edit-dialog__row--contact-point {\n max-width: 100%;\n width: 100%;\n border: 0;\n outline: 0;\n box-shadow: none;\n}\n\n.profile-edit-dialog__section fieldset > .profile-edit-dialog__row--contact-point {\n margin-bottom: var(--spacing-xs, 0.75rem);\n}\n\n.profile-edit-dialog__section fieldset > .profile-edit-dialog__row--contact-point:last-child {\n margin-bottom: var(--spacing-sm, 0.9375rem);\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field,\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type,\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field > .label {\n border: 0;\n outline: 0;\n box-shadow: none;\n background: transparent;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field > .label {\n display: block;\n width: 100%;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.profile-edit-dialog__phone-type-row {\n flex: 0 0 6.5rem;\n width: 6.5rem;\n min-width: 6.5rem;\n}\n\n.profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.emailTypeRow {\n flex: 0 0 6.5rem;\n width: 6.5rem;\n min-width: 6.5rem;\n}\n\n.profile-edit-dialog__row--address-header.profile-edit-dialog__row--full {\n max-width: 100%;\n width: 100%;\n align-items: center;\n}\n\n.profile-edit-dialog__row--address-header.profile-edit-dialog__row--full .profile-edit-dialog__actions {\n align-self: center;\n}\n\n.profile-edit-dialog__row--address-header.profile-edit-dialog__row--full .profile-edit-dialog__delete-button,\n#profile-modal .modal .profile-edit-dialog__row--address-header.profile-edit-dialog__row--full button.profile-edit-dialog__delete-button {\n min-height: 1.75rem;\n min-width: 1.75rem;\n}\n\n.profile-edit-dialog__address-title {\n margin: 0;\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: var(--line-height-base, 1.5);\n}\n\n@media (max-width: 640px) {\n .profile-edit-dialog__row--contact-point {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--spacing-2xs, 0.625rem);\n }\n\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n }\n\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.profile-edit-dialog__phone-type-row,\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.emailTypeRow {\n flex: 0 0 5.5rem;\n width: 5.5rem;\n min-width: 5.5rem;\n max-width: 5.5rem;\n }\n\n .profile-edit-dialog__row--contact-point > .profile-edit-dialog__actions {\n flex: 0 0 auto;\n margin-left: 0;\n justify-content: flex-end;\n }\n\n .profile-edit-dialog__phone-prefix-field {\n flex: 0 0 5.75rem;\n }\n}\n"],sourceRoot:""}]);const l=r},5203(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,".profile-edit-dialog__section {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.profile__edit-form {\n width: 100%;\n}\n\n.profile-edit-dialog__section h4 {\n margin: 0;\n}\n\n.profile-edit-dialog__section fieldset {\n width: 100%;\n margin: 0;\n display: grid;\n gap: var(--spacing-sm);\n border: 0;\n padding: 0;\n min-inline-size: 0;\n}\n.profile-edit-dialog__field-description {\n color: var(--gray-600, #4A5565);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-normal, normal);\n line-height: var(--line-height-base, 1.5); /* 21px */\n}\n\n.profile-edit-dialog__bio-field-container {\n display: flex;\n width: 100%;\n max-width: 34rem;\n padding: 0;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-xs, 0.75rem);\n box-sizing: border-box;\n margin: 0;\n}\n\n.profile-edit-dialog__row {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-sm);\n max-width: 34rem;\n}\n\n.profile-edit-dialog__section--resume fieldset {\n gap: var(--spacing-xs, 0.75rem);\n}\n\n.profile-edit-dialog__row--language {\n margin-left: calc(-1 * var(--spacing-xs, 0.75rem));\n}\n\n.profile-edit-dialog__row--social {\n margin-left: calc(-1 * var(--spacing-2xs, 0.625rem));\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__field--social-type {\n flex: 0 0 7rem;\n width: 7rem;\n max-width: 7rem;\n}\n\n.profile-edit-dialog__field--social-url {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.profile-edit-dialog__row--full {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__row--project {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__row--resume-entry-header {\n align-items: center;\n border-bottom: 1px solid var(--gray-400, #99A1AF);\n}\n\n.profile-edit-dialog__row--resume-entry-header > .profile-edit-dialog__entry-heading {\n margin: 0;\n}\n\n.profile-edit-dialog__entry-heading {\n margin: 0;\n color: var(--gray-700, #364153);\n font-size: var(--font-size-sm, 0.875rem);\n font-style: normal;\n font-weight: var(--font-weight-md, 500);\n line-height: normal;\n}\n\n.educationEditSection .profile-edit-dialog__section-heading {\n margin: 0;\n color: var(--gray-700, #364153);\n font-size: 16px;\n font-weight: 500;\n}\n\n.profile-edit-dialog__row--resume-entry-header .profile-edit-dialog__delete-button,\n#profile-modal .modal .profile-edit-dialog__row--resume-entry-header button.profile-edit-dialog__delete-button {\n min-height: 1.75rem;\n min-width: 1.75rem;\n}\n\n/* Force two direct children to split the row into equal columns. */\n.profile-edit-dialog__row--equal > .profile-edit-dialog__field,\n.profile-edit-dialog__row--equal > .profile-edit-dialog__field-type {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog__image-preview {\n display: grid;\n gap: var(--spacing-xs);\n}\n\n.profile-edit-dialog__image-preview-label,\n.profile-edit-dialog__image-preview-description {\n margin: 0;\n}\n\n.profile-edit-dialog__image-preview-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n}\n\n.profile-edit-dialog__image-frame {\n position: relative;\n display: inline-block;\n line-height: 0;\n}\n\n.profile-edit-dialog__image-camera-button {\n display: none;\n position: absolute;\n right: var(--spacing-2xs, 0.625rem);\n bottom: var(--spacing-2xs, 0.625rem);\n z-index: 1;\n}\n\n/* Override modal-wide button defaults for the small camera overlay control. */\n#profile-modal .modal button.profile-edit-dialog__image-camera-button {\n display: none !important;\n position: absolute;\n right: var(--spacing-2xs, 0.625rem);\n bottom: var(--spacing-2xs, 0.625rem);\n width: 1.25rem;\n height: 1.25rem;\n min-width: 1.25rem;\n min-height: 1.25rem;\n padding: 3px;\n background: var(--white, #FFF);\n border-radius: 3.333px;\n box-shadow: 0 0 4.444px 0 rgba(0, 0, 0, 0.25);\n flex-shrink: 0;\n}\n\n.profile-edit-dialog__image-camera-button svg {\n width: 0.875rem !important;\n height: 0.875rem !important;\n display: block;\n flex-shrink: 0;\n}\n.profile-edit-dialog__image-camera-capture-row {\n display: flex;\n justify-content: center;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-row {\n margin-bottom: calc(var(--spacing-lg, 1.25rem) / -2);\n}\n\n.profile-edit-dialog__image-camera-capture-frame {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: fit-content;\n max-width: 100%;\n margin-left: auto;\n margin-right: auto;\n margin-top: calc(var(--spacing-xs, 0.625rem) / 2);\n margin-bottom: var(--spacing-xs, 0.625rem);\n padding: 10px;\n box-sizing: border-box;\n border: 1px solid var(--gray-200, #E5E7EB);\n border-radius: 8px;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-frame {\n margin-top: calc(var(--spacing-xs, 0.625rem) / 4);\n margin-bottom: calc(var(--spacing-xs, 0.625rem) / 2);\n}\n\n.profile-edit-dialog__image-camera-capture-frame[hidden] {\n display: none;\n}\n\n.profile-edit-dialog__image-camera-capture-frame table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.profile-edit-dialog__image-camera-capture-frame td {\n text-align: center;\n vertical-align: middle;\n}\n\n.profile-edit-dialog__image-camera-capture-frame tr:last-child {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-2xs, 0.625rem);\n}\n\n.profile-edit-dialog__image-camera-capture-frame tr:last-child td {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: auto;\n}\n\n.profile-edit-dialog__image-camera-capture-frame tr:last-child td:first-child {\n margin-right: auto;\n}\n\n#profile-modal .modal .profile-edit-dialog__image-camera-capture-frame tr:last-child td:first-child button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.profile-edit-dialog__camera-control {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.profile-edit-dialog__camera-control-actions {\n display: flex;\n align-items: center;\n justify-content: center !important;\n gap: var(--spacing-2xs, 0.625rem);\n width: max-content;\n margin-left: auto;\n margin-right: auto;\n margin-top: calc(var(--spacing-2xs, 0.625rem) / 2);\n align-self: center;\n}\n\n.profile-edit-dialog__camera-control-cancel {\n position: absolute;\n top: 0;\n right: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n color: var(--gray-600, #4A5565) !important;\n margin-right: 0 !important;\n}\n\n.profile-edit-dialog__camera-control-cancel svg {\n display: block;\n}\n\n#profile-modal .modal .profile-edit-dialog__camera-control-cancel:hover,\n#profile-modal .modal .profile-edit-dialog__camera-control-cancel:focus-visible {\n background: transparent !important;\n border: 0 !important;\n color: var(--gray-900, #101828) !important;\n}\n/* display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 2rem;\n padding: 0.25rem 0.625rem;\n border: 1px solid var(--gray-300, #D5D7DA) !important;\n -- background: var(--gray-200, #E5E7EB) !important; \n background: var(--gray-100, #FFF) !important;\n color: var(--gray-700, #364153) !important;\n box-shadow: none !important;\n border-radius: 0.375rem;\n font-weight: var(--font-weight-md, 500); */\n.profile-edit-dialog__camera-control-action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: var(--font-size-xxs, 0.75rem) !important; /* 12 px */\n font-weight: var(--font-weight-xbold, 700) !important;\n line-height: var(--line-height-base, 1.5) !important; /* 150% */\n border-radius: var(--border-radius-base, 0.3125rem) !important;\n border: 0.8px solid var(--gray-300, #D1D5DC) !important;\n color: var(--gray-900, #101828) !important;\n background: var(--white, #FFF) !important;\n padding: 6.6px 11.075px 7px 12.8px !important;\n}\n\n#profile-modal .modal .profile-edit-dialog__camera-control-actions button:hover,\n#profile-modal .modal .profile-edit-dialog__camera-control-actions button:focus-visible {\n background: var(--gray-100, #F3F4F6) !important;\n border-color: var(--gray-400, #99A1AF) !important;\n}\n\n.profile-edit-dialog__image-camera-capture-frame video,\n.profile-edit-dialog__image-camera-capture-frame canvas {\n display: block;\n width: 100%;\n max-width: 260px;\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n}\n\n#profile-modal .modal .profile-edit-dialog__image-camera-capture-frame button {\n font-size: var(--font-size-sm, 0.875rem);\n}\n\n.profile-edit-dialog__image-upload-button,\n.profile-edit-dialog__image-remove-button {\n min-height: var(--min-touch-target, 44px);\n padding: 0 var(--spacing-sm);\n}\n\n.profile-edit-dialog__field,\n.profile-edit-dialog__field-type {\n display: block;\n margin: 0;\n}\n\n.profile-edit-dialog__field-type {\n width: 100%;\n}\n\n.profile-edit-dialog__field {\n /* flex: 1 1 auto; */\n min-width: 0;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__field,\n.profile__edit-form--resume .profile-edit-dialog__field-type:not(.hidden),\n.profile__edit-form--contact-info .profile-edit-dialog__field,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type:not(.hidden) {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-xxs, 0.3125rem);\n flex: 1 0 0;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__row {\n max-width: 100%;\n width: 100%;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__section fieldset > .profile-edit-dialog__field {\n max-width: 100%;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__field > input,\n.profile__edit-form--resume .profile-edit-dialog__field > select,\n.profile__edit-form--resume .profile-edit-dialog__field > textarea,\n.profile__edit-form--resume .profile-edit-dialog__field-type > input,\n.profile__edit-form--resume .profile-edit-dialog__field-type > select,\n.profile__edit-form--resume .profile-edit-dialog__field-type > textarea,\n.profile__edit-form--contact-info .profile-edit-dialog__field > input,\n.profile__edit-form--contact-info .profile-edit-dialog__field > select,\n.profile__edit-form--contact-info .profile-edit-dialog__field > textarea,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type > input,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type > select,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type > textarea {\n align-self: stretch;\n}\n\n.profile-edit-dialog__field--resume-location {\n flex: 1 0 0;\n width: auto;\n max-width: none;\n}\n\n.profile-edit-dialog__row--resume-dates {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__field--date-group {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog__date-pair {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n width: 100%;\n}\n\n.profile-edit-dialog__date-pair > select {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog__field--stack {\n display: grid;\n gap: var(--spacing-xxs);\n}\n\n.profile-edit-dialog__field--stack > small {\n display: block;\n width: 100%;\n text-align: right;\n}\n\n.profile-edit-dialog__bio-field-container > small {\n align-self: flex-end;\n text-align: right;\n}\n\n.profile-edit-dialog__field--full {\n max-width: 100% !important;\n width: 100%;\n}\n\n.profile-edit-dialog__field--row-width {\n max-width: 34rem;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row,\n.profile-edit-dialog--heading .profile-edit-dialog__field--row-width {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo {\n padding-bottom: calc(var(--spacing-sm, 0.938rem) / 2);\n margin-bottom: calc(var(--spacing-sm, 0.938rem) / 2);\n border-bottom: 1px solid var(--slate-200, #E2E8F0);\n}\n\n.profile-edit-dialog--heading .profile-edit {\n gap: calc(var(--spacing-lg, 1.25rem) / 2);\n}\n\n.profile-edit-dialog__login-message {\n margin: 0;\n font-size: var(--font-size-xs, 0.75rem);\n color: var(--red-600, #E7000B);\n}\n\n.profile-edit-dialog__section + .profile-edit-dialog__login-message {\n margin-top: var(--spacing-sm, 0.938rem);\n}\n\n.profile__edit-form--projects .profile-edit-dialog__login-message {\n margin-top: var(--spacing-sm, 0.938rem);\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point {\n max-width: 100%;\n width: 100%;\n gap: var(--spacing-2xs, 0.625rem);\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field > .label {\n display: block;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point.profile-edit-dialog__row--equal > .profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point {\n flex: 0 0 6.4375rem;\n width: 6.4375rem;\n min-width: 6.4375rem;\n max-width: 6.4375rem;\n}\n\n.profile-edit-dialog__field-type--contact-point select {\n width: auto;\n max-width: none;\n min-width: 6.4375rem;\n}\n\n.profile-edit-dialog__row--address-header {\n max-width: 34rem;\n align-items: flex-end;\n}\n\n.profile-edit-dialog__row--inline-end {\n justify-content: flex-end;\n max-width: 100%;\n}\n\n.profile-edit-dialog__checkbox-label {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xs);\n margin-left: auto;\n cursor: pointer;\n}\n\n.profile-edit-dialog__checkbox-input {\n width: 1rem;\n height: 1rem;\n margin: 0;\n flex: 0 0 auto;\n accent-color: var(--color-primary, #7C4DFF);\n cursor: pointer;\n}\n\n.profile-edit-dialog__checkbox-input:focus-visible {\n outline: var(--focus-indicator-width, 2px) solid var(--color-primary, #7C4DFF);\n outline-offset: 2px;\n}\n\n.profile-edit-dialog__checkbox-input:disabled {\n opacity: var(--opacity-disabled, 0.5);\n}\n\n/* The street-address row is a standalone label, so cap its width like the flex rows. */\n.profile-edit-dialog__section fieldset > .profile-edit-dialog__field {\n max-width: 34rem;\n}\n\n.profile-edit-dialog__field-type--wide {\n flex: 1 1 auto;\n min-width: 0;\n width: 100%;\n max-width: 100%;\n}\n\n.profile-edit-dialog__field-type--contact-point {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n align-self: flex-start;\n}\n\n.profile-edit-dialog__actions {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.profile-edit-dialog__actions--edge {\n margin-left: auto;\n}\n\n.profile-edit-dialog__input-wrap {\n position: relative;\n width: 100%;\n}\n\n.profile-edit-dialog__input--with-action {\n width: 100%;\n box-sizing: border-box;\n padding-right: 7.5rem;\n}\n\n.profile-edit-dialog__input--with-leading-icon {\n width: 100%;\n box-sizing: border-box;\n padding-left: 2.1rem;\n}\n\n.profile-edit-dialog__search-icon {\n position: absolute;\n left: var(--spacing-2xs, 0.625rem);\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--gray-400, #99A1AF);\n pointer-events: none;\n z-index: 1;\n}\n\n.profile-edit-dialog__search-icon svg {\n display: block;\n width: 0.8125rem;\n height: 0.8125rem;\n}\n\n.profile-edit-dialog__delete-button {\n min-height: var(--min-touch-target, 44px);\n min-width: var(--min-touch-target, 44px);\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n cursor: pointer;\n}\n\n#profile-modal .modal button.profile-edit-dialog__delete-button {\n min-height: var(--min-touch-target, 44px);\n min-width: var(--min-touch-target, 44px);\n padding: 0;\n border: 0;\n border-radius: 0;\n background: transparent;\n color: inherit;\n box-shadow: none;\n}\n\n.profile-edit-dialog__delete-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.1rem;\n height: 1.1rem;\n fill: currentColor;\n}\n\n.profile-edit-dialog__delete-icon svg {\n width: 1.1rem;\n height: 1.1rem;\n}\n\n.profile-edit-dialog__delete-button:hover,\n.profile-edit-dialog__delete-button:focus-visible {\n color: var(--color-danger, #b42318);\n}\n\n.profile-edit-dialog__image-button {\n text-align: center;\n font-size: var(--font-size-xxs, 0.75rem); /* 12 px */\n font-weight: var(--font-weight-xbold, 700);\n line-height: var(--line-height-base, 1.5); /* 150% */\n border-radius: var(--border-radius-base, 0.3125rem);\n border: 0.8px solid var(--gray-300, #D1D5DC);\n}\n\n.profile-edit-dialog__image-upload-button {\n color: var(--gray-900, #101828);\n border: 0.8px solid var(--gray-300, #D1D5DC);\n background: var(--white, #FFF);\n padding: 6.6px 11.075px 7px 12.8px;\n}\n\n.profile-edit-dialog__image-remove-button {\n color: var(--red-600, #E7000B);\n padding: 6.6px 13.037px 7px 13.8px;\n border: 0.8px solid rgba(0, 0, 0, 0.00);\n background: var(--gray-100, #F3F4F6);\n}\n\n#profile-modal .modal .profile-edit-dialog__image-upload-button:hover,\n#profile-modal .modal .profile-edit-dialog__image-upload-button:focus-visible,\n#profile-modal .modal .profile-edit-dialog__image-remove-button:hover,\n#profile-modal .modal .profile-edit-dialog__image-remove-button:focus-visible {\n background: var(--gray-100, #F3F4F6) !important;\n border-color: var(--gray-400, #99A1AF) !important;\n}\n\n/* Placeholder class for project paste action styling. */\n.profile-edit-dialog__paste-button {\n display: flex;\n padding: 0.25rem 0.375rem; /* 4px 6px */\n align-items: center;\n position: absolute;\n background: var(--white, #fff);\n border: 0;\n outline: none;\n white-space: nowrap;\n right: var(--spacing-2xs, 0.625rem);\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n color: var(--gray-500, #6A7282);\n font-size: 0.75rem; /* 12px */\n font-weight: var(--font-weight-normal, 400);\n}\n\n.profile-edit-dialog__paste-button:focus,\n.profile-edit-dialog__paste-button:focus-visible {\n outline: none;\n}\n\n/* remove the regular button styling for paste */\n#profile-modal .modal button.profile-edit-dialog__paste-button,\n#profile-modal .modal button.profile-edit-dialog__paste-button:hover,\n#profile-modal .modal button.profile-edit-dialog__paste-button:focus,\n#profile-modal .modal button.profile-edit-dialog__paste-button:focus-visible,\n#profile-modal .modal button.profile-edit-dialog__paste-button:active {\n border: 0;\n outline: none;\n box-shadow: none;\n -webkit-appearance: none;\n appearance: none;\n}\n.profile-edit-dialog__paste-icon {\n width: 0.694rem; /* 11.105px */\n height: 0.813rem; /* 13.038px */\n fill: var(--gray-500, #6A7282);\n}\n#profile-modal .modal button.profile-edit-dialog__drag-handle {\n min-height: 1.75rem;\n min-width: 1.75rem;\n padding: 0;\n border: 0;\n background: transparent;\n box-shadow: none;\n}\n\n.profile-edit-dialog__row--drop-target {\n outline: 1px dashed var(--gray-400, #99A1AF);\n outline-offset: 2px;\n}\n\n#profile-modal .modal button.profile-edit-dialog__delete-button:hover,\n#profile-modal .modal button.profile-edit-dialog__delete-button:focus-visible {\n border: 0;\n background: transparent;\n color: var(--color-danger, #b42318);\n}\n\n.profile-edit-dialog__field input,\n.profile-edit-dialog__field select,\n.profile-edit-dialog__field-type input,\n.profile-edit-dialog__field-type select {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n height: var(--min-touch-target, 44px);\n border-radius: var(--border-radius-base, 0.3125rem);\n border: 1px solid var(--gray-400, #99A1AF);\n background: var(--white, #FFF);\n color: var(--gray-900, #101828);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n padding: var(--spacing-2xs, 0.625rem);\n}\n\n.profile-edit-dialog__field input.profile-edit-dialog__input--with-leading-icon {\n padding-left: 2.1rem;\n}\n\n/* Keep phone/email contact-point type selects compact. */\n.profile-edit-dialog__field-type--contact-point > select {\n display: inline-block;\n width: auto !important;\n max-width: none !important;\n min-width: 0 !important;\n}\n\n/* In heading edit, force both type selects to fill the same fixed wrapper width. */\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point > select {\n display: block;\n width: 100% !important;\n min-width: 0 !important;\n max-width: 100% !important;\n}\n\n/* Keep phone/email type selects compact after the generic full-width rule above. */\n.profile-edit-dialog__field-type--contact-point select {\n width: fit-content;\n max-width: none;\n min-width: 6.4375rem;\n}\n\n.profile-edit-dialog__textarea {\n color: var(--gray-900, #101828);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-md, 500);\n line-height: var(--line-height-loose, 1.6); /* 22.4px */\n border-radius: var(--border-radius-base, 0.3125rem);\n border: var(--border-width-sm, 0.1rem) solid var(--gray-400, #99A1AF);\n background: var(--white, #FFF);\n}\n\n.profile-edit-dialog__field textarea,\n.profile-edit-dialog__field-type textarea {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n}\n\n/* Dedicated hook for the social account type select in SocialEditDialog. */\n.profile-edit-dialog__social-account-select {\n display: block;\n width: 100%;\n min-width: 0;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n height: var(--min-touch-target, 44px);\n border-radius: var(--border-radius-base, 0.3125rem);\n border: 1px solid var(--gray-400, #99A1AF);\n background: var(--white, #FFF);\n color: var(--gray-900, #101828);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n padding: var(--spacing-2xs, 0.625rem);\n\n\n}\n\n.profile-edit-dialog__bio-field-container textarea {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n}\n\n.profile-edit-dialog__textarea {\n min-height: 10rem !important;\n height: auto;\n resize: vertical;\n}\n\n.profile-edit-dialog__field--stack small {\n justify-self: end;\n text-align: right;\n}\n\n@media (max-width: 640px) {\n .profile-edit-dialog__row {\n max-width: 100%;\n flex-direction: column;\n align-items: stretch;\n }\n\n .profile-edit-dialog__row--equal > .profile-edit-dialog__field,\n .profile-edit-dialog__row--equal > .profile-edit-dialog__field-type {\n flex: 1 1 auto;\n }\n\n .profile-edit-dialog__field-type {\n flex: 1 1 auto;\n }\n\n .profile-edit-dialog__field-type--contact-point {\n flex: 1 1 auto;\n max-width: 100%;\n }\n\n .profile-edit-dialog__row--address-header {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .profile-edit-dialog__row--social {\n margin-left: 0;\n gap: var(--spacing-2xs, 0.625rem);\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n .profile-edit-dialog__row--social .profile-edit-dialog__social-icon {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .profile-edit-dialog__field--social-type {\n flex: 0 0 5.5rem;\n width: 5.5rem;\n max-width: 5.5rem;\n }\n\n .profile-edit-dialog__field--social-url {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .profile-edit-dialog__field--resume-location {\n flex: 1 1 100%;\n width: 100%;\n max-width: 100%;\n }\n\n .profile-edit-dialog__row--language {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n .profile-edit-dialog__row--language > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n }\n\n .profile-edit-dialog__row--resume-entry-header {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n width: 100%;\n max-width: 100%;\n }\n\n .profile-edit-dialog__row--resume-entry-header > .profile-edit-dialog__actions--edge {\n margin-left: auto;\n }\n\n .profile-edit-dialog__row--skill {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--spacing-2xs, 0.625rem);\n }\n\n .profile-edit-dialog__row--skill > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n }\n\n .profile-edit-dialog__row--skill > .profile-edit-dialog__actions {\n flex: 0 0 auto;\n margin-left: 0;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--spacing-xs, 0.75rem);\n width: 100%;\n max-width: 100%;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo > header {\n margin-bottom: 0;\n flex: 0 0 auto;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero,\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt {\n width: 5.5rem;\n height: 5.5rem;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-camera-button {\n display: inline-flex;\n right: var(--spacing-xxs, 0.3125rem);\n bottom: var(--spacing-xxs, 0.3125rem);\n width: 1.875rem;\n min-width: 1.875rem;\n min-height: 1.875rem;\n }\n\n #profile-modal .modal button.profile-edit-dialog__image-camera-button {\n display: inline-flex !important;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview {\n flex: 1 1 auto;\n min-width: 0;\n gap: var(--spacing-xxs, 0.3125rem);\n width: 100%;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-label {\n font-size: var(--font-size-sm, 0.875rem);\n line-height: var(--line-height-tight, 1.25);\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-description {\n font-size: 10px;\n line-height: var(--line-height-base, 1.4);\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-actions {\n flex-wrap: nowrap;\n gap: var(--spacing-xs, 0.5rem);\n width: 100%;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-button {\n flex: 1 1 0;\n width: 100%;\n padding: 0 0.75rem;\n }\n\n .profile-edit-dialog__row--inline-end {\n justify-content: flex-start;\n }\n\n .profile-edit-dialog__actions {\n justify-content: flex-start;\n }\n\n .profile-edit-dialog__row--address-header .profile-edit-dialog__actions {\n justify-content: flex-end;\n }\n\n .profile-edit-dialog__textarea {\n min-height: 15rem !important;\n }\n\n .profile-edit-dialog__input-help-text {\n display: none;\n }\n}\n","",{version:3,sources:["webpack://./src/styles/EditDialogs.css"],names:[],mappings:"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",sourcesContent:[".profile-edit-dialog__section {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-xs);\n}\n\n.profile__edit-form {\n width: 100%;\n}\n\n.profile-edit-dialog__section h4 {\n margin: 0;\n}\n\n.profile-edit-dialog__section fieldset {\n width: 100%;\n margin: 0;\n display: grid;\n gap: var(--spacing-sm);\n border: 0;\n padding: 0;\n min-inline-size: 0;\n}\n.profile-edit-dialog__field-description {\n color: var(--gray-600, #4A5565);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-normal, normal);\n line-height: var(--line-height-base, 1.5); /* 21px */\n}\n\n.profile-edit-dialog__bio-field-container {\n display: flex;\n width: 100%;\n max-width: 34rem;\n padding: 0;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-xs, 0.75rem);\n box-sizing: border-box;\n margin: 0;\n}\n\n.profile-edit-dialog__row {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-sm);\n max-width: 34rem;\n}\n\n.profile-edit-dialog__section--resume fieldset {\n gap: var(--spacing-xs, 0.75rem);\n}\n\n.profile-edit-dialog__row--language {\n margin-left: calc(-1 * var(--spacing-xs, 0.75rem));\n}\n\n.profile-edit-dialog__row--social {\n margin-left: calc(-1 * var(--spacing-2xs, 0.625rem));\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__field--social-type {\n flex: 0 0 7rem;\n width: 7rem;\n max-width: 7rem;\n}\n\n.profile-edit-dialog__field--social-url {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.profile-edit-dialog__row--full {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__row--project {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__row--resume-entry-header {\n align-items: center;\n border-bottom: 1px solid var(--gray-400, #99A1AF);\n}\n\n.profile-edit-dialog__row--resume-entry-header > .profile-edit-dialog__entry-heading {\n margin: 0;\n}\n\n.profile-edit-dialog__entry-heading {\n margin: 0;\n color: var(--gray-700, #364153);\n font-size: var(--font-size-sm, 0.875rem);\n font-style: normal;\n font-weight: var(--font-weight-md, 500);\n line-height: normal;\n}\n\n.educationEditSection .profile-edit-dialog__section-heading {\n margin: 0;\n color: var(--gray-700, #364153);\n font-size: 16px;\n font-weight: 500;\n}\n\n.profile-edit-dialog__row--resume-entry-header .profile-edit-dialog__delete-button,\n#profile-modal .modal .profile-edit-dialog__row--resume-entry-header button.profile-edit-dialog__delete-button {\n min-height: 1.75rem;\n min-width: 1.75rem;\n}\n\n/* Force two direct children to split the row into equal columns. */\n.profile-edit-dialog__row--equal > .profile-edit-dialog__field,\n.profile-edit-dialog__row--equal > .profile-edit-dialog__field-type {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog__image-preview {\n display: grid;\n gap: var(--spacing-xs);\n}\n\n.profile-edit-dialog__image-preview-label,\n.profile-edit-dialog__image-preview-description {\n margin: 0;\n}\n\n.profile-edit-dialog__image-preview-actions {\n display: flex;\n align-items: center;\n gap: var(--spacing-xs);\n}\n\n.profile-edit-dialog__image-frame {\n position: relative;\n display: inline-block;\n line-height: 0;\n}\n\n.profile-edit-dialog__image-camera-button {\n display: none;\n position: absolute;\n right: var(--spacing-2xs, 0.625rem);\n bottom: var(--spacing-2xs, 0.625rem);\n z-index: 1;\n}\n\n/* Override modal-wide button defaults for the small camera overlay control. */\n#profile-modal .modal button.profile-edit-dialog__image-camera-button {\n display: none !important;\n position: absolute;\n right: var(--spacing-2xs, 0.625rem);\n bottom: var(--spacing-2xs, 0.625rem);\n width: 1.25rem;\n height: 1.25rem;\n min-width: 1.25rem;\n min-height: 1.25rem;\n padding: 3px;\n background: var(--white, #FFF);\n border-radius: 3.333px;\n box-shadow: 0 0 4.444px 0 rgba(0, 0, 0, 0.25);\n flex-shrink: 0;\n}\n\n.profile-edit-dialog__image-camera-button svg {\n width: 0.875rem !important;\n height: 0.875rem !important;\n display: block;\n flex-shrink: 0;\n}\n.profile-edit-dialog__image-camera-capture-row {\n display: flex;\n justify-content: center;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-row {\n margin-bottom: calc(var(--spacing-lg, 1.25rem) / -2);\n}\n\n.profile-edit-dialog__image-camera-capture-frame {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: fit-content;\n max-width: 100%;\n margin-left: auto;\n margin-right: auto;\n margin-top: calc(var(--spacing-xs, 0.625rem) / 2);\n margin-bottom: var(--spacing-xs, 0.625rem);\n padding: 10px;\n box-sizing: border-box;\n border: 1px solid var(--gray-200, #E5E7EB);\n border-radius: 8px;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__image-camera-capture-frame {\n margin-top: calc(var(--spacing-xs, 0.625rem) / 4);\n margin-bottom: calc(var(--spacing-xs, 0.625rem) / 2);\n}\n\n.profile-edit-dialog__image-camera-capture-frame[hidden] {\n display: none;\n}\n\n.profile-edit-dialog__image-camera-capture-frame table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n\n.profile-edit-dialog__image-camera-capture-frame td {\n text-align: center;\n vertical-align: middle;\n}\n\n.profile-edit-dialog__image-camera-capture-frame tr:last-child {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: var(--spacing-2xs, 0.625rem);\n}\n\n.profile-edit-dialog__image-camera-capture-frame tr:last-child td {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n width: auto;\n}\n\n.profile-edit-dialog__image-camera-capture-frame tr:last-child td:first-child {\n margin-right: auto;\n}\n\n#profile-modal .modal .profile-edit-dialog__image-camera-capture-frame tr:last-child td:first-child button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.profile-edit-dialog__camera-control {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.profile-edit-dialog__camera-control-actions {\n display: flex;\n align-items: center;\n justify-content: center !important;\n gap: var(--spacing-2xs, 0.625rem);\n width: max-content;\n margin-left: auto;\n margin-right: auto;\n margin-top: calc(var(--spacing-2xs, 0.625rem) / 2);\n align-self: center;\n}\n\n.profile-edit-dialog__camera-control-cancel {\n position: absolute;\n top: 0;\n right: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n border: 0 !important;\n background: transparent !important;\n box-shadow: none !important;\n color: var(--gray-600, #4A5565) !important;\n margin-right: 0 !important;\n}\n\n.profile-edit-dialog__camera-control-cancel svg {\n display: block;\n}\n\n#profile-modal .modal .profile-edit-dialog__camera-control-cancel:hover,\n#profile-modal .modal .profile-edit-dialog__camera-control-cancel:focus-visible {\n background: transparent !important;\n border: 0 !important;\n color: var(--gray-900, #101828) !important;\n}\n/* display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 2rem;\n padding: 0.25rem 0.625rem;\n border: 1px solid var(--gray-300, #D5D7DA) !important;\n -- background: var(--gray-200, #E5E7EB) !important; \n background: var(--gray-100, #FFF) !important;\n color: var(--gray-700, #364153) !important;\n box-shadow: none !important;\n border-radius: 0.375rem;\n font-weight: var(--font-weight-md, 500); */\n.profile-edit-dialog__camera-control-action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: var(--font-size-xxs, 0.75rem) !important; /* 12 px */\n font-weight: var(--font-weight-xbold, 700) !important;\n line-height: var(--line-height-base, 1.5) !important; /* 150% */\n border-radius: var(--border-radius-base, 0.3125rem) !important;\n border: 0.8px solid var(--gray-300, #D1D5DC) !important;\n color: var(--gray-900, #101828) !important;\n background: var(--white, #FFF) !important;\n padding: 6.6px 11.075px 7px 12.8px !important;\n}\n\n#profile-modal .modal .profile-edit-dialog__camera-control-actions button:hover,\n#profile-modal .modal .profile-edit-dialog__camera-control-actions button:focus-visible {\n background: var(--gray-100, #F3F4F6) !important;\n border-color: var(--gray-400, #99A1AF) !important;\n}\n\n.profile-edit-dialog__image-camera-capture-frame video,\n.profile-edit-dialog__image-camera-capture-frame canvas {\n display: block;\n width: 100%;\n max-width: 260px;\n height: auto;\n border-radius: 0.5rem;\n margin: 0 auto;\n}\n\n#profile-modal .modal .profile-edit-dialog__image-camera-capture-frame button {\n font-size: var(--font-size-sm, 0.875rem);\n}\n\n.profile-edit-dialog__image-upload-button,\n.profile-edit-dialog__image-remove-button {\n min-height: var(--min-touch-target, 44px);\n padding: 0 var(--spacing-sm);\n}\n\n.profile-edit-dialog__field,\n.profile-edit-dialog__field-type {\n display: block;\n margin: 0;\n}\n\n.profile-edit-dialog__field-type {\n width: 100%;\n}\n\n.profile-edit-dialog__field {\n /* flex: 1 1 auto; */\n min-width: 0;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__field,\n.profile__edit-form--resume .profile-edit-dialog__field-type:not(.hidden),\n.profile__edit-form--contact-info .profile-edit-dialog__field,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type:not(.hidden) {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: var(--spacing-xxs, 0.3125rem);\n flex: 1 0 0;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__row {\n max-width: 100%;\n width: 100%;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__section fieldset > .profile-edit-dialog__field {\n max-width: 100%;\n}\n\n.profile__edit-form--resume .profile-edit-dialog__field > input,\n.profile__edit-form--resume .profile-edit-dialog__field > select,\n.profile__edit-form--resume .profile-edit-dialog__field > textarea,\n.profile__edit-form--resume .profile-edit-dialog__field-type > input,\n.profile__edit-form--resume .profile-edit-dialog__field-type > select,\n.profile__edit-form--resume .profile-edit-dialog__field-type > textarea,\n.profile__edit-form--contact-info .profile-edit-dialog__field > input,\n.profile__edit-form--contact-info .profile-edit-dialog__field > select,\n.profile__edit-form--contact-info .profile-edit-dialog__field > textarea,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type > input,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type > select,\n.profile__edit-form--contact-info .profile-edit-dialog__field-type > textarea {\n align-self: stretch;\n}\n\n.profile-edit-dialog__field--resume-location {\n flex: 1 0 0;\n width: auto;\n max-width: none;\n}\n\n.profile-edit-dialog__row--resume-dates {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog__field--date-group {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog__date-pair {\n display: flex;\n align-items: center;\n gap: var(--spacing-sm);\n width: 100%;\n}\n\n.profile-edit-dialog__date-pair > select {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog__field--stack {\n display: grid;\n gap: var(--spacing-xxs);\n}\n\n.profile-edit-dialog__field--stack > small {\n display: block;\n width: 100%;\n text-align: right;\n}\n\n.profile-edit-dialog__bio-field-container > small {\n align-self: flex-end;\n text-align: right;\n}\n\n.profile-edit-dialog__field--full {\n max-width: 100% !important;\n width: 100%;\n}\n\n.profile-edit-dialog__field--row-width {\n max-width: 34rem;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row,\n.profile-edit-dialog--heading .profile-edit-dialog__field--row-width {\n max-width: 100%;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo {\n padding-bottom: calc(var(--spacing-sm, 0.938rem) / 2);\n margin-bottom: calc(var(--spacing-sm, 0.938rem) / 2);\n border-bottom: 1px solid var(--slate-200, #E2E8F0);\n}\n\n.profile-edit-dialog--heading .profile-edit {\n gap: calc(var(--spacing-lg, 1.25rem) / 2);\n}\n\n.profile-edit-dialog__login-message {\n margin: 0;\n font-size: var(--font-size-xs, 0.75rem);\n color: var(--red-600, #E7000B);\n}\n\n.profile-edit-dialog__section + .profile-edit-dialog__login-message {\n margin-top: var(--spacing-sm, 0.938rem);\n}\n\n.profile__edit-form--projects .profile-edit-dialog__login-message {\n margin-top: var(--spacing-sm, 0.938rem);\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point {\n max-width: 100%;\n width: 100%;\n gap: var(--spacing-2xs, 0.625rem);\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field > .label {\n display: block;\n width: 100%;\n}\n\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point.profile-edit-dialog__row--equal > .profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point {\n flex: 0 0 6.4375rem;\n width: 6.4375rem;\n min-width: 6.4375rem;\n max-width: 6.4375rem;\n}\n\n.profile-edit-dialog__field-type--contact-point select {\n width: auto;\n max-width: none;\n min-width: 6.4375rem;\n}\n\n.profile-edit-dialog__row--address-header {\n max-width: 34rem;\n align-items: flex-end;\n}\n\n.profile-edit-dialog__row--inline-end {\n justify-content: flex-end;\n max-width: 100%;\n}\n\n.profile-edit-dialog__checkbox-label {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-xs);\n margin-left: auto;\n cursor: pointer;\n}\n\n.profile-edit-dialog__checkbox-input {\n width: 1rem;\n height: 1rem;\n margin: 0;\n flex: 0 0 auto;\n accent-color: var(--color-primary, #7C4DFF);\n cursor: pointer;\n}\n\n.profile-edit-dialog__checkbox-input:focus-visible {\n outline: var(--focus-indicator-width, 2px) solid var(--color-primary, #7C4DFF);\n outline-offset: 2px;\n}\n\n.profile-edit-dialog__checkbox-input:disabled {\n opacity: var(--opacity-disabled, 0.5);\n}\n\n/* The street-address row is a standalone label, so cap its width like the flex rows. */\n.profile-edit-dialog__section fieldset > .profile-edit-dialog__field {\n max-width: 34rem;\n}\n\n.profile-edit-dialog__field-type--wide {\n flex: 1 1 auto;\n min-width: 0;\n width: 100%;\n max-width: 100%;\n}\n\n.profile-edit-dialog__field-type--contact-point {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n align-self: flex-start;\n}\n\n.profile-edit-dialog__actions {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.profile-edit-dialog__actions--edge {\n margin-left: auto;\n}\n\n.profile-edit-dialog__input-wrap {\n position: relative;\n width: 100%;\n}\n\n.profile-edit-dialog__input--with-action {\n width: 100%;\n box-sizing: border-box;\n padding-right: 7.5rem;\n}\n\n.profile-edit-dialog__input--with-leading-icon {\n width: 100%;\n box-sizing: border-box;\n padding-left: 2.1rem;\n}\n\n.profile-edit-dialog__search-icon {\n position: absolute;\n left: var(--spacing-2xs, 0.625rem);\n top: 50%;\n transform: translateY(-50%);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--gray-400, #99A1AF);\n pointer-events: none;\n z-index: 1;\n}\n\n.profile-edit-dialog__search-icon svg {\n display: block;\n width: 0.8125rem;\n height: 0.8125rem;\n}\n\n.profile-edit-dialog__delete-button {\n min-height: var(--min-touch-target, 44px);\n min-width: var(--min-touch-target, 44px);\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n cursor: pointer;\n}\n\n#profile-modal .modal button.profile-edit-dialog__delete-button {\n min-height: var(--min-touch-target, 44px);\n min-width: var(--min-touch-target, 44px);\n padding: 0;\n border: 0;\n border-radius: 0;\n background: transparent;\n color: inherit;\n box-shadow: none;\n}\n\n.profile-edit-dialog__delete-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.1rem;\n height: 1.1rem;\n fill: currentColor;\n}\n\n.profile-edit-dialog__delete-icon svg {\n width: 1.1rem;\n height: 1.1rem;\n}\n\n.profile-edit-dialog__delete-button:hover,\n.profile-edit-dialog__delete-button:focus-visible {\n color: var(--color-danger, #b42318);\n}\n\n.profile-edit-dialog__image-button {\n text-align: center;\n font-size: var(--font-size-xxs, 0.75rem); /* 12 px */\n font-weight: var(--font-weight-xbold, 700);\n line-height: var(--line-height-base, 1.5); /* 150% */\n border-radius: var(--border-radius-base, 0.3125rem);\n border: 0.8px solid var(--gray-300, #D1D5DC);\n}\n\n.profile-edit-dialog__image-upload-button {\n color: var(--gray-900, #101828);\n border: 0.8px solid var(--gray-300, #D1D5DC);\n background: var(--white, #FFF);\n padding: 6.6px 11.075px 7px 12.8px;\n}\n\n.profile-edit-dialog__image-remove-button {\n color: var(--red-600, #E7000B);\n padding: 6.6px 13.037px 7px 13.8px;\n border: 0.8px solid rgba(0, 0, 0, 0.00);\n background: var(--gray-100, #F3F4F6);\n}\n\n#profile-modal .modal .profile-edit-dialog__image-upload-button:hover,\n#profile-modal .modal .profile-edit-dialog__image-upload-button:focus-visible,\n#profile-modal .modal .profile-edit-dialog__image-remove-button:hover,\n#profile-modal .modal .profile-edit-dialog__image-remove-button:focus-visible {\n background: var(--gray-100, #F3F4F6) !important;\n border-color: var(--gray-400, #99A1AF) !important;\n}\n\n/* Placeholder class for project paste action styling. */\n.profile-edit-dialog__paste-button {\n display: flex;\n padding: 0.25rem 0.375rem; /* 4px 6px */\n align-items: center;\n position: absolute;\n background: var(--white, #fff);\n border: 0;\n outline: none;\n white-space: nowrap;\n right: var(--spacing-2xs, 0.625rem);\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n color: var(--gray-500, #6A7282);\n font-size: 0.75rem; /* 12px */\n font-weight: var(--font-weight-normal, 400);\n}\n\n.profile-edit-dialog__paste-button:focus,\n.profile-edit-dialog__paste-button:focus-visible {\n outline: none;\n}\n\n/* remove the regular button styling for paste */\n#profile-modal .modal button.profile-edit-dialog__paste-button,\n#profile-modal .modal button.profile-edit-dialog__paste-button:hover,\n#profile-modal .modal button.profile-edit-dialog__paste-button:focus,\n#profile-modal .modal button.profile-edit-dialog__paste-button:focus-visible,\n#profile-modal .modal button.profile-edit-dialog__paste-button:active {\n border: 0;\n outline: none;\n box-shadow: none;\n -webkit-appearance: none;\n appearance: none;\n}\n.profile-edit-dialog__paste-icon {\n width: 0.694rem; /* 11.105px */\n height: 0.813rem; /* 13.038px */\n fill: var(--gray-500, #6A7282);\n}\n#profile-modal .modal button.profile-edit-dialog__drag-handle {\n min-height: 1.75rem;\n min-width: 1.75rem;\n padding: 0;\n border: 0;\n background: transparent;\n box-shadow: none;\n}\n\n.profile-edit-dialog__row--drop-target {\n outline: 1px dashed var(--gray-400, #99A1AF);\n outline-offset: 2px;\n}\n\n#profile-modal .modal button.profile-edit-dialog__delete-button:hover,\n#profile-modal .modal button.profile-edit-dialog__delete-button:focus-visible {\n border: 0;\n background: transparent;\n color: var(--color-danger, #b42318);\n}\n\n.profile-edit-dialog__field input,\n.profile-edit-dialog__field select,\n.profile-edit-dialog__field-type input,\n.profile-edit-dialog__field-type select {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n height: var(--min-touch-target, 44px);\n border-radius: var(--border-radius-base, 0.3125rem);\n border: 1px solid var(--gray-400, #99A1AF);\n background: var(--white, #FFF);\n color: var(--gray-900, #101828);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n padding: var(--spacing-2xs, 0.625rem);\n}\n\n.profile-edit-dialog__field input.profile-edit-dialog__input--with-leading-icon {\n padding-left: 2.1rem;\n}\n\n/* Keep phone/email contact-point type selects compact. */\n.profile-edit-dialog__field-type--contact-point > select {\n display: inline-block;\n width: auto !important;\n max-width: none !important;\n min-width: 0 !important;\n}\n\n/* In heading edit, force both type selects to fill the same fixed wrapper width. */\n.profile-edit-dialog--heading .profile-edit-dialog__row--contact-point > .profile-edit-dialog__field-type.profile-edit-dialog__field-type--contact-point > select {\n display: block;\n width: 100% !important;\n min-width: 0 !important;\n max-width: 100% !important;\n}\n\n/* Keep phone/email type selects compact after the generic full-width rule above. */\n.profile-edit-dialog__field-type--contact-point select {\n width: fit-content;\n max-width: none;\n min-width: 6.4375rem;\n}\n\n.profile-edit-dialog__textarea {\n color: var(--gray-900, #101828);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-md, 500);\n line-height: var(--line-height-loose, 1.6); /* 22.4px */\n border-radius: var(--border-radius-base, 0.3125rem);\n border: var(--border-width-sm, 0.1rem) solid var(--gray-400, #99A1AF);\n background: var(--white, #FFF);\n}\n\n.profile-edit-dialog__field textarea,\n.profile-edit-dialog__field-type textarea {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n}\n\n/* Dedicated hook for the social account type select in SocialEditDialog. */\n.profile-edit-dialog__social-account-select {\n display: block;\n width: 100%;\n min-width: 0;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n height: var(--min-touch-target, 44px);\n border-radius: var(--border-radius-base, 0.3125rem);\n border: 1px solid var(--gray-400, #99A1AF);\n background: var(--white, #FFF);\n color: var(--gray-900, #101828);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-medium, 500);\n padding: var(--spacing-2xs, 0.625rem);\n\n\n}\n\n.profile-edit-dialog__bio-field-container textarea {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n min-height: var(--min-touch-target, 44px);\n}\n\n.profile-edit-dialog__textarea {\n min-height: 10rem !important;\n height: auto;\n resize: vertical;\n}\n\n.profile-edit-dialog__field--stack small {\n justify-self: end;\n text-align: right;\n}\n\n@media (max-width: 640px) {\n .profile-edit-dialog__row {\n max-width: 100%;\n flex-direction: column;\n align-items: stretch;\n }\n\n .profile-edit-dialog__row--equal > .profile-edit-dialog__field,\n .profile-edit-dialog__row--equal > .profile-edit-dialog__field-type {\n flex: 1 1 auto;\n }\n\n .profile-edit-dialog__field-type {\n flex: 1 1 auto;\n }\n\n .profile-edit-dialog__field-type--contact-point {\n flex: 1 1 auto;\n max-width: 100%;\n }\n\n .profile-edit-dialog__row--address-header {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .profile-edit-dialog__row--social {\n margin-left: 0;\n gap: var(--spacing-2xs, 0.625rem);\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n .profile-edit-dialog__row--social .profile-edit-dialog__social-icon {\n width: 1.5rem;\n height: 1.5rem;\n }\n\n .profile-edit-dialog__field--social-type {\n flex: 0 0 5.5rem;\n width: 5.5rem;\n max-width: 5.5rem;\n }\n\n .profile-edit-dialog__field--social-url {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .profile-edit-dialog__field--resume-location {\n flex: 1 1 100%;\n width: 100%;\n max-width: 100%;\n }\n\n .profile-edit-dialog__row--language {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n .profile-edit-dialog__row--language > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n }\n\n .profile-edit-dialog__row--resume-entry-header {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n width: 100%;\n max-width: 100%;\n }\n\n .profile-edit-dialog__row--resume-entry-header > .profile-edit-dialog__actions--edge {\n margin-left: auto;\n }\n\n .profile-edit-dialog__row--skill {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--spacing-2xs, 0.625rem);\n }\n\n .profile-edit-dialog__row--skill > .profile-edit-dialog__field {\n flex: 1 1 0;\n min-width: 0;\n }\n\n .profile-edit-dialog__row--skill > .profile-edit-dialog__actions {\n flex: 0 0 auto;\n margin-left: 0;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo {\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--spacing-xs, 0.75rem);\n width: 100%;\n max-width: 100%;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo > header {\n margin-bottom: 0;\n flex: 0 0 auto;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero,\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt {\n width: 5.5rem;\n height: 5.5rem;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile__hero-alt {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-camera-button {\n display: inline-flex;\n right: var(--spacing-xxs, 0.3125rem);\n bottom: var(--spacing-xxs, 0.3125rem);\n width: 1.875rem;\n min-width: 1.875rem;\n min-height: 1.875rem;\n }\n\n #profile-modal .modal button.profile-edit-dialog__image-camera-button {\n display: inline-flex !important;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview {\n flex: 1 1 auto;\n min-width: 0;\n gap: var(--spacing-xxs, 0.3125rem);\n width: 100%;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-label {\n font-size: var(--font-size-sm, 0.875rem);\n line-height: var(--line-height-tight, 1.25);\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-description {\n font-size: 10px;\n line-height: var(--line-height-base, 1.4);\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-preview-actions {\n flex-wrap: nowrap;\n gap: var(--spacing-xs, 0.5rem);\n width: 100%;\n }\n\n .profile-edit-dialog--heading .profile-edit-dialog__row--heading-photo .profile-edit-dialog__image-button {\n flex: 1 1 0;\n width: 100%;\n padding: 0 0.75rem;\n }\n\n .profile-edit-dialog__row--inline-end {\n justify-content: flex-start;\n }\n\n .profile-edit-dialog__actions {\n justify-content: flex-start;\n }\n\n .profile-edit-dialog__row--address-header .profile-edit-dialog__actions {\n justify-content: flex-end;\n }\n\n .profile-edit-dialog__textarea {\n min-height: 15rem !important;\n }\n\n .profile-edit-dialog__input-help-text {\n display: none;\n }\n}\n"],sourceRoot:""}]);const l=r},1569(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'.profile__avatar {\n flex: 0 0 auto;\n}\n\n.profile__heading-top {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n grid-template-areas:\n "avatar info actions"\n "avatar details details";\n column-gap: var(--spacing-md, 1.25rem);\n row-gap: var(--spacing-sm, 0.75rem);\n align-items: start;\n width: 100%;\n}\n\n.profile__name {\ncolor: var(--color-text-heading, #000);\nfont-size: var(--font-size-xxl, 1.75rem); /* 28px */\nfont-weight: var(--font-weight-bold, 600);\nmargin: 0;\npadding: 0;\ntext-indent: 0;\nline-height: 1.2;\ntext-align: left;\ntransform: translateX(-4px);\n}\n\n.profile__info {\n grid-area: info;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n align-items: flex-start;\n}\n\n.profile__details {\n grid-area: details;\n color: var(--color-text-secondary, #4A5565);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n display: flex;\n width: 100%;\n align-content: flex-start;\n align-items: flex-start;\n flex-wrap: wrap;\n gap: var(--spacing-sm, 0.75rem) 2rem; /* 12px vertical, 32px horizontal */\n}\n\n.profile__info > .profile__header-bar {\n margin-left: 0;\n padding-left: 0;\n align-self: stretch;\n}\n\n.profile__header-bar {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.125rem;\n width: 100%;\n margin: 0;\n padding: 0;\n}\n\n.profile__heading-actions {\n grid-area: actions;\n margin-left: auto;\n align-self: flex-start;\n}\n\n.profile__avatar {\n grid-area: avatar;\n}\n\n.profile__heading-action-button {\n position: static;\n min-width: 0;\n width: auto;\n max-width: none;\n padding: var(--spacing-xxs, 0.3125rem);\n}\n.profile__identity {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n gap: 0.4375rem; /* 7px */\n justify-content: flex-start;\n width: 100%;\n flex-wrap: nowrap;\n}\n\n.profile__pronouns {\n color: var(--color-text-secondary, #4A5565);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-regular, 400);\n line-height: 1.2;\n}\n\n.profile__role-org {\n margin: 0;\n width: 100%;\n white-space: normal;\n color: var(--color-text-subheading, #101828);\n font-size: var(--font-size-base, 1rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: 1.25;\n text-align: left;\n}\n\n.profile__meta-row,\n.profile__contact-row {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n justify-content: flex-start;\n column-gap: 0.25rem; /* 4px */\n row-gap: var(--spacing-xs, 0.5rem);\n align-items: start;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.profile__meta-row .profile__item,\n.profile__contact-row .profile__item {\n display: flex;\n align-items: center;\n gap: var(--spacing-2xs, 0.625rem);\n min-width: 0;\n}\n\n.profile__meta-row .profile__value,\n.profile__contact-row .profile__value {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-xxs, 0.3125rem);\n min-width: 0;\n white-space: normal !important;\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n.profile__meta-row .profile__value-text,\n.profile__contact-row .profile__value-text {\n min-width: 0;\n white-space: normal !important;\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n.profile__prefix-icon {\n display: inline-flex;\n align-items: center;\n margin-right: 0.125rem;\n}\n\n.profile__detail-icon {\n display: block;\n width: 1rem;\n height: 1rem;\n}\n\n.profile__hero {\n width: 140px;\n height: 140px;\n border-radius: var(--border-radius-full, 0.625rem); /* 10px */;\n border: var(--border-width-sm, 0.1rem) solid var(--color-primary, #7C4DFF);\n background: lightgray 50% / cover no-repeat;\n background-position: 50%;\n object-fit: cover;\n object-position: center;\n}\n\n.profile__hero-alt {\n width: 140px;\n height: 140px;\n padding: 0 36.4px; \n border-radius: var(--border-radius-full, 0.625rem); /* 10px */;\n border: 1.6px dashed #CBD5E1;\n background: #F8FAFC;\n box-sizing: border-box;\n}\n\n/* added because the icon wasn\'t centering on mobile\n due to styles in mashlib */\n.profile__hero-alt .profile__hero-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n}\n\n.profile__hero-alt .profile__hero-icon svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n@media (max-width: 640px) {\n .profile__heading-top {\n grid-template-columns: auto minmax(0, 1fr) auto;\n grid-template-areas:\n "avatar info actions"\n "details details details";\n column-gap: var(--spacing-sm, 0.75rem);\n row-gap: var(--spacing-sm, 0.75rem);\n }\n\n .profile__name {\n font-size: 1.5rem;\n line-height: 1.15;\n }\n\n .profile__identity {\n gap: 0.125rem;\n }\n\n .profile__pronouns {\n font-size: var(--font-size-xs, 0.75rem);\n line-height: 1.1;\n white-space: nowrap;\n }\n\n .profile__hero,\n .profile__hero-alt {\n width: 112px;\n height: 112px;\n }\n\n .profile__hero-alt {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n }\n\n .profile__hero-icon {\n display: block;\n margin: 0 auto;\n width: 48px;\n height: 48px;\n }\n\n .profile__details {\n gap: var(--spacing-xs, 0.5rem);\n }\n\n .profile__meta-row,\n .profile__contact-row {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n column-gap: 0.25rem;\n }\n}\n\n@container profile-pane (max-width: 640px) {\n .profile__heading-top {\n grid-template-columns: auto minmax(0, 1fr) auto;\n grid-template-areas:\n "avatar info actions"\n "details details details";\n column-gap: var(--spacing-sm, 0.75rem);\n row-gap: var(--spacing-sm, 0.75rem);\n }\n\n .profile__name {\n font-size: 1.5rem;\n line-height: 1.15;\n }\n\n .profile__identity {\n gap: 0.125rem;\n }\n\n .profile__pronouns {\n font-size: var(--font-size-xs, 0.75rem);\n line-height: 1.1;\n white-space: nowrap;\n }\n\n .profile__hero,\n .profile__hero-alt {\n width: 112px;\n height: 112px;\n }\n\n .profile__hero-alt {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n }\n\n .profile__hero-icon {\n display: block;\n margin: 0 auto;\n width: 48px;\n height: 48px;\n }\n\n .profile__details {\n gap: var(--spacing-xs, 0.5rem);\n }\n\n .profile__meta-row,\n .profile__contact-row {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n column-gap: 0.25rem;\n }\n}\n',"",{version:3,sources:["webpack://./src/styles/HeadingSection.css"],names:[],mappings:"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",sourcesContent:['.profile__avatar {\n flex: 0 0 auto;\n}\n\n.profile__heading-top {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr) auto;\n grid-template-areas:\n "avatar info actions"\n "avatar details details";\n column-gap: var(--spacing-md, 1.25rem);\n row-gap: var(--spacing-sm, 0.75rem);\n align-items: start;\n width: 100%;\n}\n\n.profile__name {\ncolor: var(--color-text-heading, #000);\nfont-size: var(--font-size-xxl, 1.75rem); /* 28px */\nfont-weight: var(--font-weight-bold, 600);\nmargin: 0;\npadding: 0;\ntext-indent: 0;\nline-height: 1.2;\ntext-align: left;\ntransform: translateX(-4px);\n}\n\n.profile__info {\n grid-area: info;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-width: 0;\n align-items: flex-start;\n}\n\n.profile__details {\n grid-area: details;\n color: var(--color-text-secondary, #4A5565);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n display: flex;\n width: 100%;\n align-content: flex-start;\n align-items: flex-start;\n flex-wrap: wrap;\n gap: var(--spacing-sm, 0.75rem) 2rem; /* 12px vertical, 32px horizontal */\n}\n\n.profile__info > .profile__header-bar {\n margin-left: 0;\n padding-left: 0;\n align-self: stretch;\n}\n\n.profile__header-bar {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.125rem;\n width: 100%;\n margin: 0;\n padding: 0;\n}\n\n.profile__heading-actions {\n grid-area: actions;\n margin-left: auto;\n align-self: flex-start;\n}\n\n.profile__avatar {\n grid-area: avatar;\n}\n\n.profile__heading-action-button {\n position: static;\n min-width: 0;\n width: auto;\n max-width: none;\n padding: var(--spacing-xxs, 0.3125rem);\n}\n.profile__identity {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n gap: 0.4375rem; /* 7px */\n justify-content: flex-start;\n width: 100%;\n flex-wrap: nowrap;\n}\n\n.profile__pronouns {\n color: var(--color-text-secondary, #4A5565);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-regular, 400);\n line-height: 1.2;\n}\n\n.profile__role-org {\n margin: 0;\n width: 100%;\n white-space: normal;\n color: var(--color-text-subheading, #101828);\n font-size: var(--font-size-base, 1rem);\n font-weight: var(--font-weight-medium, 500);\n line-height: 1.25;\n text-align: left;\n}\n\n.profile__meta-row,\n.profile__contact-row {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n justify-content: flex-start;\n column-gap: 0.25rem; /* 4px */\n row-gap: var(--spacing-xs, 0.5rem);\n align-items: start;\n margin: 0;\n padding: 0;\n width: 100%;\n}\n\n.profile__meta-row .profile__item,\n.profile__contact-row .profile__item {\n display: flex;\n align-items: center;\n gap: var(--spacing-2xs, 0.625rem);\n min-width: 0;\n}\n\n.profile__meta-row .profile__value,\n.profile__contact-row .profile__value {\n display: flex;\n align-items: flex-start;\n gap: var(--spacing-xxs, 0.3125rem);\n min-width: 0;\n white-space: normal !important;\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n.profile__meta-row .profile__value-text,\n.profile__contact-row .profile__value-text {\n min-width: 0;\n white-space: normal !important;\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n.profile__prefix-icon {\n display: inline-flex;\n align-items: center;\n margin-right: 0.125rem;\n}\n\n.profile__detail-icon {\n display: block;\n width: 1rem;\n height: 1rem;\n}\n\n.profile__hero {\n width: 140px;\n height: 140px;\n border-radius: var(--border-radius-full, 0.625rem); /* 10px */;\n border: var(--border-width-sm, 0.1rem) solid var(--color-primary, #7C4DFF);\n background: lightgray 50% / cover no-repeat;\n background-position: 50%;\n object-fit: cover;\n object-position: center;\n}\n\n.profile__hero-alt {\n width: 140px;\n height: 140px;\n padding: 0 36.4px; \n border-radius: var(--border-radius-full, 0.625rem); /* 10px */;\n border: 1.6px dashed #CBD5E1;\n background: #F8FAFC;\n box-sizing: border-box;\n}\n\n/* added because the icon wasn\'t centering on mobile\n due to styles in mashlib */\n.profile__hero-alt .profile__hero-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n line-height: 0;\n}\n\n.profile__hero-alt .profile__hero-icon svg {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n@media (max-width: 640px) {\n .profile__heading-top {\n grid-template-columns: auto minmax(0, 1fr) auto;\n grid-template-areas:\n "avatar info actions"\n "details details details";\n column-gap: var(--spacing-sm, 0.75rem);\n row-gap: var(--spacing-sm, 0.75rem);\n }\n\n .profile__name {\n font-size: 1.5rem;\n line-height: 1.15;\n }\n\n .profile__identity {\n gap: 0.125rem;\n }\n\n .profile__pronouns {\n font-size: var(--font-size-xs, 0.75rem);\n line-height: 1.1;\n white-space: nowrap;\n }\n\n .profile__hero,\n .profile__hero-alt {\n width: 112px;\n height: 112px;\n }\n\n .profile__hero-alt {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n }\n\n .profile__hero-icon {\n display: block;\n margin: 0 auto;\n width: 48px;\n height: 48px;\n }\n\n .profile__details {\n gap: var(--spacing-xs, 0.5rem);\n }\n\n .profile__meta-row,\n .profile__contact-row {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n column-gap: 0.25rem;\n }\n}\n\n@container profile-pane (max-width: 640px) {\n .profile__heading-top {\n grid-template-columns: auto minmax(0, 1fr) auto;\n grid-template-areas:\n "avatar info actions"\n "details details details";\n column-gap: var(--spacing-sm, 0.75rem);\n row-gap: var(--spacing-sm, 0.75rem);\n }\n\n .profile__name {\n font-size: 1.5rem;\n line-height: 1.15;\n }\n\n .profile__identity {\n gap: 0.125rem;\n }\n\n .profile__pronouns {\n font-size: var(--font-size-xs, 0.75rem);\n line-height: 1.1;\n white-space: nowrap;\n }\n\n .profile__hero,\n .profile__hero-alt {\n width: 112px;\n height: 112px;\n }\n\n .profile__hero-alt {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n }\n\n .profile__hero-icon {\n display: block;\n margin: 0 auto;\n width: 48px;\n height: 48px;\n }\n\n .profile__details {\n gap: var(--spacing-xs, 0.5rem);\n }\n\n .profile__meta-row,\n .profile__contact-row {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n column-gap: 0.25rem;\n }\n}\n'],sourceRoot:""}]);const l=r},1937(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'/* ProfileCard.css */\n/* Uses utilities: .action-button-focus, .btn-primary, .flex-column-center, .text-truncate, .text-center, .text-wrap-anywhere, .section-centered, .btn-transparent */\n\n.profileCard {\n /* Component container */\n}\n\n.name {\n font-size: var(--font-size-xl);\n font-weight: 700;\n line-height: var(--line-height-tight);\n text-decoration: underline;\n text-underline-offset: 0.2em;\n margin: 0;\n letter-spacing: var(--letter-spacing-wide);\n}\n\n.profile__actions {\n color: var(--color-text-secondary);\n font-size: var(--font-size-base, 1rem);\n margin-bottom: var(--spacing-xs);\n}\n\n.buttonSubSection {\n width: 100%;\n min-width: 0;\n display: grid;\n}\n\n.buttonSubSection button {\n width: 100%;\n min-width: 0;\n}\n\n/* Ensure prompt inputs stretch to fit their container */\n.add-friend-button-container input[type="text"] {\n width: 100%;\n box-sizing: border-box;\n}\n\n.profile__qr-code {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n align-self: stretch;\n /* OLD color: var(--color-text-secondary);\n font-size: 1em;\n margin-bottom: var(--spacing-xs); */\n}\n\n.details {\n color: var(--color-text-muted);\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n max-width: 45ch;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* ProfileCard styles as regular CSS */\n.profile-card {\n border: 1px solid #ccc;\n padding: 16px;\n background: white;\n}\n',"",{version:3,sources:["webpack://./src/styles/ProfileCard.css"],names:[],mappings:"AAAA,oBAAoB;AACpB,oKAAoK;;AAEpK;EACE,wBAAwB;AAC1B;;AAEA;EACE,8BAA8B;EAC9B,gBAAgB;EAChB,qCAAqC;EACrC,0BAA0B;EAC1B,4BAA4B;EAC5B,SAAS;EACT,0CAA0C;AAC5C;;AAEA;EACE,kCAAkC;EAClC,sCAAsC;EACtC,gCAAgC;AAClC;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA,wDAAwD;AACxD;EACE,WAAW;EACX,sBAAsB;AACxB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB;;qCAEmC;AACrC;;AAEA;EACE,8BAA8B;EAC9B,gCAAgC;EAChC,oCAAoC;EACpC,eAAe;EACf,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA,sCAAsC;AACtC;EACE,sBAAsB;EACtB,aAAa;EACb,iBAAiB;AACnB",sourcesContent:['/* ProfileCard.css */\n/* Uses utilities: .action-button-focus, .btn-primary, .flex-column-center, .text-truncate, .text-center, .text-wrap-anywhere, .section-centered, .btn-transparent */\n\n.profileCard {\n /* Component container */\n}\n\n.name {\n font-size: var(--font-size-xl);\n font-weight: 700;\n line-height: var(--line-height-tight);\n text-decoration: underline;\n text-underline-offset: 0.2em;\n margin: 0;\n letter-spacing: var(--letter-spacing-wide);\n}\n\n.profile__actions {\n color: var(--color-text-secondary);\n font-size: var(--font-size-base, 1rem);\n margin-bottom: var(--spacing-xs);\n}\n\n.buttonSubSection {\n width: 100%;\n min-width: 0;\n display: grid;\n}\n\n.buttonSubSection button {\n width: 100%;\n min-width: 0;\n}\n\n/* Ensure prompt inputs stretch to fit their container */\n.add-friend-button-container input[type="text"] {\n width: 100%;\n box-sizing: border-box;\n}\n\n.profile__qr-code {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 20px;\n align-self: stretch;\n /* OLD color: var(--color-text-secondary);\n font-size: 1em;\n margin-bottom: var(--spacing-xs); */\n}\n\n.details {\n color: var(--color-text-muted);\n font-size: var(--font-size-base);\n line-height: var(--line-height-base);\n max-width: 45ch;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* ProfileCard styles as regular CSS */\n.profile-card {\n border: 1px solid #ccc;\n padding: 16px;\n background: white;\n}\n'],sourceRoot:""}]);const l=r},436(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,"/* ProfileView.css */\n/* Uses utilities: .section-bg, .text-center */\n\n\n.profile-grid .profile__main {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n margin-bottom: 0;\n overflow-wrap: anywhere;\n align-items: flex-start;\n}\n\n.profile-grid .profile__sidebar {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n text-align: left;\n border-radius: var(--border-radius-base);\n background: var(--color-background, #F8F9FB);\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n overflow-x: clip;\n}\n\n.profile-grid .profile__section {\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n background: var(--white, #FFF);\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow-x: clip;\n}\n\n.profile-grid .profile__section--empty {\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow-x: clip;\n}\n\n\n/* SAM Not sure this is needed, and potentially should be moved somewhere else */\n.profile-grid .phone-type {\n font-size: var(--font-size-sm);\n line-height: var(--line-height-base);\n color: var(--color-text-secondary);\n}\n\n@container profile-pane (max-width: 1000px) {\n #main-content.profile-grid {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin-inline: auto !important;\n padding-inline: var(--spacing-sm, 0.75rem) !important;\n }\n}\n\n","",{version:3,sources:["webpack://./src/styles/ProfileView.css"],names:[],mappings:"AAAA,oBAAoB;AACpB,8CAA8C;;;AAG9C;EACE,WAAW;EACX,eAAe;EACf,YAAY;EACZ,sBAAsB;EACtB,gBAAgB;EAChB,uBAAuB;EACvB,uBAAuB;AACzB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,oBAAoB;EACpB,gBAAgB;EAChB,wCAAwC;EACxC,4CAA4C;EAC5C,WAAW;EACX,eAAe;EACf,YAAY;EACZ,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,0BAA0B;EAC1B,wCAAwC;EACxC,8BAA8B;EAC9B,sBAAsB;EACtB,WAAW;EACX,eAAe;EACf,YAAY;EACZ,gBAAgB;AAClB;;AAEA;EACE,sBAAsB;EACtB,WAAW;EACX,eAAe;EACf,YAAY;EACZ,gBAAgB;AAClB;;;AAGA,gFAAgF;AAChF;EACE,8BAA8B;EAC9B,oCAAoC;EACpC,kCAAkC;AACpC;;AAEA;EACE;IACE,WAAW;IACX,eAAe;IACf,sBAAsB;IACtB,8BAA8B;IAC9B,qDAAqD;EACvD;AACF",sourcesContent:["/* ProfileView.css */\n/* Uses utilities: .section-bg, .text-center */\n\n\n.profile-grid .profile__main {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n margin-bottom: 0;\n overflow-wrap: anywhere;\n align-items: flex-start;\n}\n\n.profile-grid .profile__sidebar {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n text-align: left;\n border-radius: var(--border-radius-base);\n background: var(--color-background, #F8F9FB);\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n overflow-x: clip;\n}\n\n.profile-grid .profile__section {\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n background: var(--white, #FFF);\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow-x: clip;\n}\n\n.profile-grid .profile__section--empty {\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n min-width: 0;\n overflow-x: clip;\n}\n\n\n/* SAM Not sure this is needed, and potentially should be moved somewhere else */\n.profile-grid .phone-type {\n font-size: var(--font-size-sm);\n line-height: var(--line-height-base);\n color: var(--color-text-secondary);\n}\n\n@container profile-pane (max-width: 1000px) {\n #main-content.profile-grid {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin-inline: auto !important;\n padding-inline: var(--spacing-sm, 0.75rem) !important;\n }\n}\n\n"],sourceRoot:""}]);const l=r},2270(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'/* The following are the original styles for the ProjectsCard section. */\n.project-card__rail {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 0;\n margin: 0;\n list-style: none;\n scroll-snap-type: x proximity;\n}\n.project-card__follow-button {\n width: auto;\n border-radius: var(--border-radius-md, 0.5rem);\n border: var(--border-width-sm, 0.1rem) solid var(--color-primary, #7C4DFF); \n padding: 0.5rem 0.625rem; /* ~8px 10px, increased by ~2px in rem */\n color: var(--color-primary, #7C4DFF);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-md, 500);\n background: var(--white, #FFF);\n cursor: pointer;\n}\n\n.project-card__follow-button:hover {\n background: var(--lavender-400, #cbb9ff);\n}\n\n.project-card__rail::-webkit-scrollbar {\n height: 8px;\n}\n\n.project-card__rail::-webkit-scrollbar-thumb {\n background: #b0b7c3;\n border-radius: 999px;\n}\n\n.project-card {\n flex: 0 0 min(420px, 88vw);\n scroll-snap-align: start;\n border-radius: var(--border-radius-md, 0.5rem);\n border: var(--border-width-sm, 0.1rem) solid var(--gray-200, #E5E7EB);\n padding: var(--spacing-md, 1.25rem);\n justify-content: center;\n align-items: flex-start;\n gap: var(--spacing-sm, 0.938rem);\n flex-shrink: 0;\n}\n\n.project-card__link {\n display: block;\n color: inherit;\n text-decoration: none;\n}\n\n.project-card__link:hover .project-card__title,\n.project-card__link:focus-visible .project-card__title {\n text-decoration: underline;\n}\n\n.project-card__wrapper {\n display: grid;\n grid-template-columns: 88px 1fr;\n gap: 0.9rem;\n align-items: start;\n padding-bottom: 0.563rem;\n border-radius: var(--border-radius-md, 0.5rem);\n border-bottom: 1px solid var(--gray-200, #E5E7EB);\n}\n\n.project-card__thumb {\n width: 66px;\n height: 66px;\n overflow: hidden;\n border-radius: var(--border-radius-base, 0.3125rem);\n background: var(--gray-200, #E5E7EB);\n padding: 0.656rem var(--spacing-2xs, 0.625rem);\n aspect-ratio: 1/1;\n}\n\n.project-card__thumb-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.project-card__thumb-fallback {\n width: 100%;\n height: 100%;\n font-size: 0.72rem;\n color: #5a6476;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.project-card__content {\n min-width: 0;\n}\n\n.project-card__title,\n.project-card__organization,\n.project-card__category,\n.project-card__meta,\n.project-card__description {\n margin: 0;\n}\n\n.project-card__title {\n overflow: hidden;\n color: var(--gray-900, #101828);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--font-size-lg, 1.125rem);\n font-weight: var(--font-weight-bold, 600);\n align-self: stretch;\n}\n\n.project-card__organization {\n margin-top: 0.35rem;\n color: var(--gray-700, #364153);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-md, 500);\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n line-height: 1.35;\n max-height: calc(1.35em * 2);\n align-self: stretch;\n}\n\n.project-card__category {\n font-size: var(--font-size-xxs, 0.75rem);\n font-weight: var(--font-weight-md, 500);\n}\n\n.project-card__category--project {\n color: var(--purple-500, #AD46FF);\n \n}\n\n.project-card__category--community {\n color: var(--yellow-700, #A65F00);\n}\n\n.project-card__category--unknown {\n color: var(--slate-700, #314158);\n}\n\n.project-card__meta {\n margin-top: 0.55rem;\n overflow-wrap: anywhere;\n font-size: 0.86rem;\n}\n\n.project-card__footer {\n margin-top: 0.8rem;\n padding: 0.75rem;\n\n}\n\n.project-card__more-button {\n display: none;\n}\n\n@media (max-width: 640px) {\n .project-card__rail {\n flex-wrap: wrap;\n overflow-x: visible;\n scroll-snap-type: none;\n }\n\n .project-card {\n flex: 1 1 100%;\n max-width: 100%;\n }\n\n .profile-section-collapsible[data-mobile-expanded="false"] .project-card:nth-child(n + 3) {\n display: none;\n }\n\n .project-card__more-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n width: 100%;\n margin-top: 0.75rem;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--color-primary, #7C4DFF);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-bold, 600);\n cursor: pointer;\n }\n\n .project-card__more-button[data-mobile-expanded="true"] .project-card__more-icon {\n transform: rotate(180deg);\n }\n\n .project-card__more-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: transform var(--animation-duration, 0.2s) ease;\n }\n}\n',"",{version:3,sources:["webpack://./src/styles/ProjectsCard.css"],names:[],mappings:"AAAA,yEAAyE;AACzE;EACE,aAAa;EACb,SAAS;EACT,gBAAgB;EAChB,UAAU;EACV,SAAS;EACT,gBAAgB;EAChB,6BAA6B;AAC/B;AACA;EACE,WAAW;EACX,8CAA8C;EAC9C,0EAA0E;EAC1E,wBAAwB,EAAE,wCAAwC;EAClE,oCAAoC;EACpC,wCAAwC,EAAE,SAAS;EACnD,uCAAuC;EACvC,8BAA8B;EAC9B,eAAe;AACjB;;AAEA;EACE,wCAAwC;AAC1C;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;AACtB;;AAEA;EACE,0BAA0B;EAC1B,wBAAwB;EACxB,8CAA8C;EAC9C,qEAAqE;EACrE,mCAAmC;EACnC,uBAAuB;EACvB,uBAAuB;EACvB,gCAAgC;EAChC,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,cAAc;EACd,qBAAqB;AACvB;;AAEA;;EAEE,0BAA0B;AAC5B;;AAEA;EACE,aAAa;EACb,+BAA+B;EAC/B,WAAW;EACX,kBAAkB;EAClB,wBAAwB;EACxB,8CAA8C;EAC9C,iDAAiD;AACnD;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,mDAAmD;EACnD,oCAAoC;EACpC,8CAA8C;EAC9C,iBAAiB;AACnB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,cAAc;EACd,yBAAyB;EACzB,sBAAsB;AACxB;;AAEA;EACE,YAAY;AACd;;AAEA;;;;;EAKE,SAAS;AACX;;AAEA;EACE,gBAAgB;EAChB,+BAA+B;EAC/B,uBAAuB;EACvB,mBAAmB;EACnB,wCAAwC;EACxC,yCAAyC;EACzC,mBAAmB;AACrB;;AAEA;EACE,mBAAmB;EACnB,+BAA+B;EAC/B,wCAAwC;EACxC,uCAAuC;EACvC,gBAAgB;EAChB,uBAAuB;EACvB,cAAc;EACd,iBAAiB;EACjB,4BAA4B;EAC5B,mBAAmB;AACrB;;AAEA;EACE,wCAAwC;EACxC,uCAAuC;AACzC;;AAEA;EACE,iCAAiC;;AAEnC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;AACpB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;;AAElB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE;IACE,eAAe;IACf,mBAAmB;IACnB,sBAAsB;EACxB;;EAEA;IACE,cAAc;IACd,eAAe;EACjB;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,aAAa;IACb,WAAW;IACX,mBAAmB;IACnB,UAAU;IACV,SAAS;IACT,uBAAuB;IACvB,oCAAoC;IACpC,wCAAwC;IACxC,yCAAyC;IACzC,eAAe;EACjB;;EAEA;IACE,yBAAyB;EAC3B;;EAEA;IACE,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,0DAA0D;EAC5D;AACF",sourcesContent:['/* The following are the original styles for the ProjectsCard section. */\n.project-card__rail {\n display: flex;\n gap: 1rem;\n overflow-x: auto;\n padding: 0;\n margin: 0;\n list-style: none;\n scroll-snap-type: x proximity;\n}\n.project-card__follow-button {\n width: auto;\n border-radius: var(--border-radius-md, 0.5rem);\n border: var(--border-width-sm, 0.1rem) solid var(--color-primary, #7C4DFF); \n padding: 0.5rem 0.625rem; /* ~8px 10px, increased by ~2px in rem */\n color: var(--color-primary, #7C4DFF);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-md, 500);\n background: var(--white, #FFF);\n cursor: pointer;\n}\n\n.project-card__follow-button:hover {\n background: var(--lavender-400, #cbb9ff);\n}\n\n.project-card__rail::-webkit-scrollbar {\n height: 8px;\n}\n\n.project-card__rail::-webkit-scrollbar-thumb {\n background: #b0b7c3;\n border-radius: 999px;\n}\n\n.project-card {\n flex: 0 0 min(420px, 88vw);\n scroll-snap-align: start;\n border-radius: var(--border-radius-md, 0.5rem);\n border: var(--border-width-sm, 0.1rem) solid var(--gray-200, #E5E7EB);\n padding: var(--spacing-md, 1.25rem);\n justify-content: center;\n align-items: flex-start;\n gap: var(--spacing-sm, 0.938rem);\n flex-shrink: 0;\n}\n\n.project-card__link {\n display: block;\n color: inherit;\n text-decoration: none;\n}\n\n.project-card__link:hover .project-card__title,\n.project-card__link:focus-visible .project-card__title {\n text-decoration: underline;\n}\n\n.project-card__wrapper {\n display: grid;\n grid-template-columns: 88px 1fr;\n gap: 0.9rem;\n align-items: start;\n padding-bottom: 0.563rem;\n border-radius: var(--border-radius-md, 0.5rem);\n border-bottom: 1px solid var(--gray-200, #E5E7EB);\n}\n\n.project-card__thumb {\n width: 66px;\n height: 66px;\n overflow: hidden;\n border-radius: var(--border-radius-base, 0.3125rem);\n background: var(--gray-200, #E5E7EB);\n padding: 0.656rem var(--spacing-2xs, 0.625rem);\n aspect-ratio: 1/1;\n}\n\n.project-card__thumb-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.project-card__thumb-fallback {\n width: 100%;\n height: 100%;\n font-size: 0.72rem;\n color: #5a6476;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n}\n\n.project-card__content {\n min-width: 0;\n}\n\n.project-card__title,\n.project-card__organization,\n.project-card__category,\n.project-card__meta,\n.project-card__description {\n margin: 0;\n}\n\n.project-card__title {\n overflow: hidden;\n color: var(--gray-900, #101828);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--font-size-lg, 1.125rem);\n font-weight: var(--font-weight-bold, 600);\n align-self: stretch;\n}\n\n.project-card__organization {\n margin-top: 0.35rem;\n color: var(--gray-700, #364153);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-md, 500);\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n line-height: 1.35;\n max-height: calc(1.35em * 2);\n align-self: stretch;\n}\n\n.project-card__category {\n font-size: var(--font-size-xxs, 0.75rem);\n font-weight: var(--font-weight-md, 500);\n}\n\n.project-card__category--project {\n color: var(--purple-500, #AD46FF);\n \n}\n\n.project-card__category--community {\n color: var(--yellow-700, #A65F00);\n}\n\n.project-card__category--unknown {\n color: var(--slate-700, #314158);\n}\n\n.project-card__meta {\n margin-top: 0.55rem;\n overflow-wrap: anywhere;\n font-size: 0.86rem;\n}\n\n.project-card__footer {\n margin-top: 0.8rem;\n padding: 0.75rem;\n\n}\n\n.project-card__more-button {\n display: none;\n}\n\n@media (max-width: 640px) {\n .project-card__rail {\n flex-wrap: wrap;\n overflow-x: visible;\n scroll-snap-type: none;\n }\n\n .project-card {\n flex: 1 1 100%;\n max-width: 100%;\n }\n\n .profile-section-collapsible[data-mobile-expanded="false"] .project-card:nth-child(n + 3) {\n display: none;\n }\n\n .project-card__more-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n width: 100%;\n margin-top: 0.75rem;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--color-primary, #7C4DFF);\n font-size: var(--font-size-sm, 0.875rem);\n font-weight: var(--font-weight-bold, 600);\n cursor: pointer;\n }\n\n .project-card__more-button[data-mobile-expanded="true"] .project-card__more-icon {\n transform: rotate(180deg);\n }\n\n .project-card__more-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: transform var(--animation-duration, 0.2s) ease;\n }\n}\n'],sourceRoot:""}]);const l=r},1134(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'/* QRCodeCard.css */\n/* Note: Uses utilities: .text-center */\n\n/* Caption under the QR code */\n.qrcode-card__caption {\n text-align: center;\n margin-top: 0;\n padding-bottom: 0.25rem;\n color: var(--gray-800, #1E2939);\n font-size: var(--font-size-md, 1rem); /* 16px */\n font-weight: var(--font-weight-md, 500);\n}\n\n.qrcode-card {\n width: 136px;\n margin: 0 auto;\n height: auto;\n flex-shrink: 0;\n}\n\n.qrcode-card__frame {\n padding: 1rem 1rem 1.25rem 1.063rem; /* 16px 16px 20px 17px */\n border-radius: var(--border-radius-base, 0.3125rem); /* 5px */\n border: var(--border-width-thin, 0.1rem) solid var(--gray-200, #E5E7EB);\n background: var(--gray-100, #F3F4F6);\n}\n\n.qrcode-card [role="img"]:focus {\n outline: var(--border-width-medium, 2px) solid var(--color-primary, #7C4DFF);\n outline-offset: 2px;\n box-shadow: 0 0 0 2px rgba(124,77,255,0.2);\n}\n\n.qrcode-card [role="img"] {\n width: 136px;\n height: 136px;\n}\n\n.qrcode-card [role="img"] svg {\n width: 100%;\n height: 100%;\n display: block;\n}',"",{version:3,sources:["webpack://./src/styles/QRCodeCard.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,uCAAuC;;AAEvC,8BAA8B;AAC9B;EACE,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,+BAA+B;EAC/B,oCAAoC,EAAE,SAAS;EAC/C,uCAAuC;AACzC;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,mCAAmC,EAAE,wBAAwB;EAC7D,mDAAmD,EAAE,QAAQ;EAC7D,uEAAuE;EACvE,oCAAoC;AACtC;;AAEA;EACE,4EAA4E;EAC5E,mBAAmB;EACnB,0CAA0C;AAC5C;;AAEA;EACE,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB",sourcesContent:['/* QRCodeCard.css */\n/* Note: Uses utilities: .text-center */\n\n/* Caption under the QR code */\n.qrcode-card__caption {\n text-align: center;\n margin-top: 0;\n padding-bottom: 0.25rem;\n color: var(--gray-800, #1E2939);\n font-size: var(--font-size-md, 1rem); /* 16px */\n font-weight: var(--font-weight-md, 500);\n}\n\n.qrcode-card {\n width: 136px;\n margin: 0 auto;\n height: auto;\n flex-shrink: 0;\n}\n\n.qrcode-card__frame {\n padding: 1rem 1rem 1.25rem 1.063rem; /* 16px 16px 20px 17px */\n border-radius: var(--border-radius-base, 0.3125rem); /* 5px */\n border: var(--border-width-thin, 0.1rem) solid var(--gray-200, #E5E7EB);\n background: var(--gray-100, #F3F4F6);\n}\n\n.qrcode-card [role="img"]:focus {\n outline: var(--border-width-medium, 2px) solid var(--color-primary, #7C4DFF);\n outline-offset: 2px;\n box-shadow: 0 0 0 2px rgba(124,77,255,0.2);\n}\n\n.qrcode-card [role="img"] {\n width: 136px;\n height: 136px;\n}\n\n.qrcode-card [role="img"] svg {\n width: 100%;\n height: 100%;\n display: block;\n}'],sourceRoot:""}]);const l=r},1649(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'/* SocialCard.css */\n/* Uses utilities: .list-reset, .text-wrap-anywhere, .flex, .gap-sm, .gap-lg, .rounded-sm */\n\n.socialList {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacing-xxs);\n justify-content: flex-start;\n}\n\n.socialItem {\n display: flex;\n align-items: center;\n}\n\n.socialItem a {\n color: var(--color-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n min-height: var(--min-touch-target);\n padding: var(--spacing-xxs); \n border-radius: var(--border-radius-base);\n transition: background-color var(--animation-duration) ease;\n position: relative;\n flex: 1;\n min-width: 0;\n}\n\n.socialItem a:hover,\n.socialItem a:focus {\n text-decoration: underline;\n background-color: rgba(124, 77, 255, 0.1);\n}\n\n/* Screen reader only external link indication */\n.socialItem a[href^="http"]:after {\n content: " (external link)";\n position: absolute;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n.socialIcon {\n width: var(--icon-base);\n height: var(--icon-base);\n border-radius: var(--border-radius-base);\n background: var(--color-card-bg);\n flex-shrink: 0;\n}\n\n.socialCard__more-button {\n display: none;\n}\n\n@media (max-width: 1000px) {\n .socialCard .socialList {\n display: grid;\n grid-template-columns: repeat(5, max-content);\n justify-content: flex-start;\n }\n\n .socialCard[data-mobile-expanded="true"] .socialList {\n grid-template-columns: repeat(3, max-content);\n }\n\n .socialCard[data-mobile-expanded="false"] .socialItem:nth-child(n + 11) {\n display: none;\n }\n\n .socialCard__more-button {\n display: inline-flex;\n margin-top: var(--spacing-xs);\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--color-primary, #7C4DFF);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n }\n\n .socialCard[data-mobile-expanded="true"] .socialCard__more-button {\n display: none;\n }\n}\n',"",{version:3,sources:["webpack://./src/styles/SocialCard.css"],names:[],mappings:"AAAA,mBAAmB;AACnB,2FAA2F;;AAE3F;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,uBAAuB;EACvB,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,mCAAmC;EACnC,2BAA2B;EAC3B,wCAAwC;EACxC,2DAA2D;EAC3D,kBAAkB;EAClB,OAAO;EACP,YAAY;AACd;;AAEA;;EAEE,0BAA0B;EAC1B,yCAAyC;AAC3C;;AAEA,gDAAgD;AAChD;EACE,2BAA2B;EAC3B,kBAAkB;EAClB,cAAc;EACd,UAAU;EACV,WAAW;EACX,gBAAgB;AAClB;;AAEA;EACE,uBAAuB;EACvB,wBAAwB;EACxB,wCAAwC;EACxC,gCAAgC;EAChC,cAAc;AAChB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE;IACE,aAAa;IACb,6CAA6C;IAC7C,2BAA2B;EAC7B;;EAEA;IACE,6CAA6C;EAC/C;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,oBAAoB;IACpB,6BAA6B;IAC7B,UAAU;IACV,SAAS;IACT,uBAAuB;IACvB,oCAAoC;IACpC,aAAa;IACb,gBAAgB;IAChB,eAAe;EACjB;;EAEA;IACE,aAAa;EACf;AACF",sourcesContent:['/* SocialCard.css */\n/* Uses utilities: .list-reset, .text-wrap-anywhere, .flex, .gap-sm, .gap-lg, .rounded-sm */\n\n.socialList {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--spacing-xxs);\n justify-content: flex-start;\n}\n\n.socialItem {\n display: flex;\n align-items: center;\n}\n\n.socialItem a {\n color: var(--color-primary);\n text-decoration: none;\n display: flex;\n align-items: center;\n min-height: var(--min-touch-target);\n padding: var(--spacing-xxs); \n border-radius: var(--border-radius-base);\n transition: background-color var(--animation-duration) ease;\n position: relative;\n flex: 1;\n min-width: 0;\n}\n\n.socialItem a:hover,\n.socialItem a:focus {\n text-decoration: underline;\n background-color: rgba(124, 77, 255, 0.1);\n}\n\n/* Screen reader only external link indication */\n.socialItem a[href^="http"]:after {\n content: " (external link)";\n position: absolute;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n.socialIcon {\n width: var(--icon-base);\n height: var(--icon-base);\n border-radius: var(--border-radius-base);\n background: var(--color-card-bg);\n flex-shrink: 0;\n}\n\n.socialCard__more-button {\n display: none;\n}\n\n@media (max-width: 1000px) {\n .socialCard .socialList {\n display: grid;\n grid-template-columns: repeat(5, max-content);\n justify-content: flex-start;\n }\n\n .socialCard[data-mobile-expanded="true"] .socialList {\n grid-template-columns: repeat(3, max-content);\n }\n\n .socialCard[data-mobile-expanded="false"] .socialItem:nth-child(n + 11) {\n display: none;\n }\n\n .socialCard__more-button {\n display: inline-flex;\n margin-top: var(--spacing-xs);\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--color-primary, #7C4DFF);\n font: inherit;\n font-weight: 600;\n cursor: pointer;\n }\n\n .socialCard[data-mobile-expanded="true"] .socialCard__more-button {\n display: none;\n }\n}\n'],sourceRoot:""}]);const l=r},4594(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'/* CSS for the accessible modal dialogs created by dialog.ts */\n/* dialog host */\n#profile-modal {\n margin: 0;\n padding: 0;\n border: none;\n background: rgba(0, 0, 0, 0.5);\n max-width: none;\n max-height: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n position: fixed;\n inset: 0;\n display: grid;\n place-items: center;\n z-index: 9999;\n}\n\n#profile-modal:not([open]) {\n display: none;\n}\n\n#profile-modal::backdrop {\n background: rgba(0, 0, 0, 0.5);\n}\n\n#profile-modal .modal {\n box-sizing: border-box;\n margin: 0;\n background: var(--color-background);\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n max-width: 100%;\n width: min(640px, 92vw);\n max-height: 85vh;\n overflow: auto;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n#profile-modal .modal .modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-lg);\n margin: calc(-1 * var(--spacing-lg)) calc(-1 * var(--spacing-lg)) var(--spacing-sm) calc(-1 * var(--spacing-lg));\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base, 0.3125rem) var(--border-radius-base, 0.3125rem) 0 0;\n border: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);\n background: var(--slate-50, #F8FAFC);\n}\n\n#profile-modal .modal #modal-title {\n margin: 0;\n}\n\n#profile-modal .modal #modal-header-action > button[aria-label="Close dialog"] {\n min-height: 2rem;\n min-width: 2rem;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--color-text);\n font-size: 1.5rem;\n line-height: 1;\n cursor: pointer;\n}\n\n#profile-modal .modal #modal-header-action > button[aria-label="Close dialog"]:hover {\n color: var(--color-primary);\n}\n\n#profile-modal .modal #modal-header-action {\n display: flex;\n align-items: center;\n}\n\n#profile-modal .modal .modal__header-action-button {\n min-height: auto;\n padding: var(--spacing-xxs);\n border: none;\n background: none;\n color: var(--color-primary);\n font-weight: 500;\n}\n\n#profile-modal .modal .modal__header-action-button:hover {\n text-decoration: underline;\n}\n\n/* button container: center buttons horizontally (uses id in markup) */\n#profile-modal #modal-buttons {\n display: flex;\n padding: 20px 0 20px 30px;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n align-self: stretch;\n border-top: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);\n background: var(--gray-50, #F9FAFB);\n}\n\n#profile-modal #modal-buttons button {\n width: 10.8rem;\n}\n\n#profile-modal .modal__error-section {\n margin-top: var(--spacing-sm);\n}\n\n#profile-modal .modal__error-section[hidden] {\n display: none !important;\n}\n\n\n/* buttons themselves use the shared btn-primary rules */\n#profile-modal .modal button {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n#profile-modal .modal button.btn-primary {\n background: var(--color-primary);\n color: var(--white, #FFF);\n font-size: var(--font-size-lg, 1.125rem); /* 18px */\n font-weight: var(--font-weight-bold, 600);\n}\n\n#profile-modal .modal button.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n#profile-modal .modal button.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n#profile-modal .modal button:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n\n/* Keep text-style actions in section headers while preserving footer button styling. */\n#profile-modal .modal .profile__section-header .profile__action-button {\n min-height: auto;\n padding: var(--spacing-xxs);\n border: none;\n background: none;\n color: var(--color-primary);\n font-weight: 500;\n}\n\n#profile-modal .modal .profile__section-header .profile__action-button:hover {\n text-decoration: underline;\n}\n\n@media (max-width: 640px) {\n #profile-modal {\n padding-top: max(var(--spacing-sm), env(safe-area-inset-top));\n padding-right: var(--spacing-sm);\n padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom));\n padding-left: var(--spacing-sm);\n place-items: center;\n }\n\n #profile-modal .modal {\n width: min(420px, calc(100% - 2 * var(--spacing-sm)));\n max-width: 420px;\n max-height: calc(100dvh - 2 * var(--spacing-sm));\n padding: var(--spacing-md);\n border-radius: calc(var(--border-radius-base) * 0.75);\n overscroll-behavior: contain;\n justify-self: center;\n align-self: center;\n margin: 0;\n }\n\n #profile-modal .modal .modal-header {\n gap: var(--spacing-md);\n margin: calc(-1 * var(--spacing-md)) calc(-1 * var(--spacing-md)) var(--spacing-sm) calc(-1 * var(--spacing-md));\n padding: var(--spacing-md);\n }\n\n #profile-modal #modal-buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-sm, 0.938rem);\n padding: var(--spacing-md) 0 0;\n margin: var(--spacing-md) auto 0;\n box-sizing: border-box;\n width: 100%;\n }\n\n #profile-modal #modal-buttons button {\n flex: 0 0 auto;\n width: 10.8rem;\n min-width: 8.5rem;\n padding: var(--spacing-sm) var(--spacing-md);\n font-size: var(--font-size-md, 1rem);\n }\n\n}\n',"",{version:3,sources:["webpack://./src/styles/dialog.css"],names:[],mappings:"AAAA,8DAA8D;AAC9D,gBAAgB;AAChB;EACE,SAAS;EACT,UAAU;EACV,YAAY;EACZ,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,QAAQ;EACR,aAAa;EACb,mBAAmB;EACnB,aAAa;AACf;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,8BAA8B;AAChC;;AAEA;EACE,sBAAsB;EACtB,SAAS;EACT,mCAAmC;EACnC,0BAA0B;EAC1B,wCAAwC;EACxC,eAAe;EACf,uBAAuB;EACvB,gBAAgB;EAChB,cAAc;EACd,yCAAyC;AAC3C;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,sBAAsB;EACtB,gHAAgH;EAChH,0BAA0B;EAC1B,4FAA4F;EAC5F,sEAAsE;EACtE,oCAAoC;AACtC;;AAEA;EACE,SAAS;AACX;;AAEA;EACE,gBAAgB;EAChB,eAAe;EACf,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,wBAAwB;EACxB,iBAAiB;EACjB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,aAAa;EACb,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,2BAA2B;EAC3B,YAAY;EACZ,gBAAgB;EAChB,2BAA2B;EAC3B,gBAAgB;AAClB;;AAEA;EACE,0BAA0B;AAC5B;;AAEA,sEAAsE;AACtE;EACE,aAAa;EACb,yBAAyB;EACzB,yBAAyB;EACzB,mBAAmB;EACnB,SAAS;EACT,mBAAmB;EACnB,0EAA0E;EAC1E,mCAAmC;AACrC;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,wBAAwB;AAC1B;;;AAGA,wDAAwD;AACxD;EACE,mCAAmC;EACnC,4CAA4C;EAC5C,sCAAsC;EACtC,wCAAwC;EACxC,gBAAgB;EAChB,eAAe;EACf,8CAA8C;AAChD;;AAEA;EACE,gCAAgC;EAChC,yBAAyB;EACzB,wCAAwC,EAAE,SAAS;EACnD,yCAAyC;AAC3C;;AAEA;EACE,+DAA+D;EAC/D,6CAA6C;AAC/C;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,qCAAqC;EACrC,mBAAmB;EACnB,eAAe;AACjB;;AAEA,uFAAuF;AACvF;EACE,gBAAgB;EAChB,2BAA2B;EAC3B,YAAY;EACZ,gBAAgB;EAChB,2BAA2B;EAC3B,gBAAgB;AAClB;;AAEA;EACE,0BAA0B;AAC5B;;AAEA;EACE;IACE,6DAA6D;IAC7D,gCAAgC;IAChC,mEAAmE;IACnE,+BAA+B;IAC/B,mBAAmB;EACrB;;EAEA;IACE,qDAAqD;IACrD,gBAAgB;IAChB,gDAAgD;IAChD,0BAA0B;IAC1B,qDAAqD;IACrD,4BAA4B;IAC5B,oBAAoB;IACpB,kBAAkB;IAClB,SAAS;EACX;;EAEA;IACE,sBAAsB;IACtB,gHAAgH;IAChH,0BAA0B;EAC5B;;EAEA;IACE,mBAAmB;IACnB,mBAAmB;IACnB,uBAAuB;IACvB,gCAAgC;IAChC,8BAA8B;IAC9B,gCAAgC;IAChC,sBAAsB;IACtB,WAAW;EACb;;EAEA;IACE,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,4CAA4C;IAC5C,oCAAoC;EACtC;;AAEF",sourcesContent:['/* CSS for the accessible modal dialogs created by dialog.ts */\n/* dialog host */\n#profile-modal {\n margin: 0;\n padding: 0;\n border: none;\n background: rgba(0, 0, 0, 0.5);\n max-width: none;\n max-height: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n position: fixed;\n inset: 0;\n display: grid;\n place-items: center;\n z-index: 9999;\n}\n\n#profile-modal:not([open]) {\n display: none;\n}\n\n#profile-modal::backdrop {\n background: rgba(0, 0, 0, 0.5);\n}\n\n#profile-modal .modal {\n box-sizing: border-box;\n margin: 0;\n background: var(--color-background);\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base);\n max-width: 100%;\n width: min(640px, 92vw);\n max-height: 85vh;\n overflow: auto;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);\n}\n\n#profile-modal .modal .modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-lg);\n margin: calc(-1 * var(--spacing-lg)) calc(-1 * var(--spacing-lg)) var(--spacing-sm) calc(-1 * var(--spacing-lg));\n padding: var(--spacing-lg);\n border-radius: var(--border-radius-base, 0.3125rem) var(--border-radius-base, 0.3125rem) 0 0;\n border: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);\n background: var(--slate-50, #F8FAFC);\n}\n\n#profile-modal .modal #modal-title {\n margin: 0;\n}\n\n#profile-modal .modal #modal-header-action > button[aria-label="Close dialog"] {\n min-height: 2rem;\n min-width: 2rem;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--color-text);\n font-size: 1.5rem;\n line-height: 1;\n cursor: pointer;\n}\n\n#profile-modal .modal #modal-header-action > button[aria-label="Close dialog"]:hover {\n color: var(--color-primary);\n}\n\n#profile-modal .modal #modal-header-action {\n display: flex;\n align-items: center;\n}\n\n#profile-modal .modal .modal__header-action-button {\n min-height: auto;\n padding: var(--spacing-xxs);\n border: none;\n background: none;\n color: var(--color-primary);\n font-weight: 500;\n}\n\n#profile-modal .modal .modal__header-action-button:hover {\n text-decoration: underline;\n}\n\n/* button container: center buttons horizontally (uses id in markup) */\n#profile-modal #modal-buttons {\n display: flex;\n padding: 20px 0 20px 30px;\n justify-content: flex-end;\n align-items: center;\n gap: 15px;\n align-self: stretch;\n border-top: var(--border-width-sm, 0.1rem) solid var(--slate-200, #E2E8F0);\n background: var(--gray-50, #F9FAFB);\n}\n\n#profile-modal #modal-buttons button {\n width: 10.8rem;\n}\n\n#profile-modal .modal__error-section {\n margin-top: var(--spacing-sm);\n}\n\n#profile-modal .modal__error-section[hidden] {\n display: none !important;\n}\n\n\n/* buttons themselves use the shared btn-primary rules */\n#profile-modal .modal button {\n min-height: var(--min-touch-target);\n padding: var(--spacing-sm) var(--spacing-md);\n border: 1px solid var(--color-primary);\n border-radius: var(--border-radius-base);\n font-weight: 600;\n cursor: pointer;\n transition: all var(--animation-duration) ease;\n}\n\n#profile-modal .modal button.btn-primary {\n background: var(--color-primary);\n color: var(--white, #FFF);\n font-size: var(--font-size-lg, 1.125rem); /* 18px */\n font-weight: var(--font-weight-bold, 600);\n}\n\n#profile-modal .modal button.btn-primary:hover {\n background: color-mix(in srgb, var(--color-primary) 90%, black);\n box-shadow: 0 2px 4px rgba(124, 77, 255, 0.2);\n}\n\n#profile-modal .modal button.btn-primary:active {\n box-shadow: 0 1px 2px rgba(124, 77, 255, 0.2);\n}\n\n#profile-modal .modal button:disabled {\n opacity: var(--opacity-disabled, 0.6);\n cursor: not-allowed;\n transform: none;\n}\n\n/* Keep text-style actions in section headers while preserving footer button styling. */\n#profile-modal .modal .profile__section-header .profile__action-button {\n min-height: auto;\n padding: var(--spacing-xxs);\n border: none;\n background: none;\n color: var(--color-primary);\n font-weight: 500;\n}\n\n#profile-modal .modal .profile__section-header .profile__action-button:hover {\n text-decoration: underline;\n}\n\n@media (max-width: 640px) {\n #profile-modal {\n padding-top: max(var(--spacing-sm), env(safe-area-inset-top));\n padding-right: var(--spacing-sm);\n padding-bottom: max(var(--spacing-sm), env(safe-area-inset-bottom));\n padding-left: var(--spacing-sm);\n place-items: center;\n }\n\n #profile-modal .modal {\n width: min(420px, calc(100% - 2 * var(--spacing-sm)));\n max-width: 420px;\n max-height: calc(100dvh - 2 * var(--spacing-sm));\n padding: var(--spacing-md);\n border-radius: calc(var(--border-radius-base) * 0.75);\n overscroll-behavior: contain;\n justify-self: center;\n align-self: center;\n margin: 0;\n }\n\n #profile-modal .modal .modal-header {\n gap: var(--spacing-md);\n margin: calc(-1 * var(--spacing-md)) calc(-1 * var(--spacing-md)) var(--spacing-sm) calc(-1 * var(--spacing-md));\n padding: var(--spacing-md);\n }\n\n #profile-modal #modal-buttons {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-sm, 0.938rem);\n padding: var(--spacing-md) 0 0;\n margin: var(--spacing-md) auto 0;\n box-sizing: border-box;\n width: 100%;\n }\n\n #profile-modal #modal-buttons button {\n flex: 0 0 auto;\n width: 10.8rem;\n min-width: 8.5rem;\n padding: var(--spacing-sm) var(--spacing-md);\n font-size: var(--font-size-md, 1rem);\n }\n\n}\n'],sourceRoot:""}]);const l=r},5092(e,n,t){"use strict";t.d(n,{A:()=>l});var i=t(1354),o=t.n(i),a=t(6314),r=t.n(a)()(o());r.push([e.id,'/* Utility-first CSS classes for layout, spacing, and responsiveness */\n/* These utilities are designed specfically for the profile pane */\n/* Utilities that can be shared by all panes should be added to dev-globals.css \n and to mashlib repo mash-utilities.css and then updated accross all pane\n development environments */\n:root {\n --profile-image-size: 3em;\n}\n\n.profile-pane-host {\n display: block;\n width: 100%;\n min-width: 100%;\n max-width: none;\n box-sizing: border-box;\n}\n\n@media (max-width: 768px) {\n .profile-grid {\n font-size: clamp(0.9rem, 1.1vw + 0.65rem, 1rem);\n }\n\n .profile-grid .profile__action-button,\n .profile-grid .profile__actions button {\n min-height: calc(var(--min-touch-target, 44px) + 0.5em) !important;\n font-size: clamp(0.9rem, 2.1vw, 1rem) !important;\n padding: 0.75em 0.9em !important;\n }\n}\n\n/* ===========================================\n PROFILE GRID LAYOUT\n =========================================== */\n\n.profile-grid {\n display: grid;\n grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);\n gap: var(--spacing-xxs, 0.3125rem);\n background: var(--color-background, #F8F9FB);\n}\n\n.profile-grid > * {\n min-width: 0;\n}\n\n.profile-pane-root {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n display: block;\n container-name: profile-pane;\n container-type: inline-size;\n}\n\n/* Embedded rendering inside SolidOS outline table cells needs a single-column fallback.\n The outline reserves space for icon/predicate columns, so the available content width\n is effectively much narrower than the viewport. */\ntd.obj .profile-pane-root {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n@container profile-pane (max-width: 768px) {\n .profile-grid {\n font-size: clamp(0.9rem, 1.1vw + 0.65rem, 1rem);\n }\n\n .profile-grid .profile__action-button,\n .profile-grid .profile__actions button {\n min-height: calc(var(--min-touch-target, 44px) + 0.5em) !important;\n font-size: clamp(0.9rem, 2.1vw, 1rem) !important;\n padding: 0.75em 0.9em !important;\n }\n}\n\n@container profile-pane (max-width: 768px) {\n .profile-grid {\n grid-template-columns: 1fr;\n gap: var(--spacing-xxs, 0.3125rem);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin: 0 auto;\n padding-inline: var(--spacing-xxs, 0.3125rem);\n overflow-x: clip;\n }\n}\n\n@media (max-width: 768px) {\n .profile-grid {\n grid-template-columns: 1fr;\n gap: var(--spacing-xxs, 0.3125rem);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin: 0 auto;\n padding-inline: var(--spacing-xxs, 0.3125rem);\n overflow-x: clip;\n }\n}\n\n/* END GRID LAYOUT */\n\n.profile__section {\n width: 100%;\n}\n\n.profile__section--empty {\n padding: var(--spacing-1xl, 2.5rem) var(--spacing-lg, 1.5625rem); /* 40px 25px */\n width: 100%;\n}\n\n.profile__section,\n.profile__section--empty,\n.profile__action-button--empty {\n background: var(--color-card-bg, #fff);\n}\n\n/* Header row layout utility for profile section headers */\n.profile__section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-xs, 0.75rem);\n width: 100%;\n}\n\n.profile__section-header h2,\n.profile__section-header h3,\n.profile__section-header h4 {\n margin: 0;\n}\n\n.profile__action-button {\n width: 100%;\n min-width: 11.25rem; /* 180px */\n max-width: 20rem; /* 320px */\n box-sizing: border-box;\n display: inline-block;\n}\n\n.profile__action-button--empty {\n /*padding: 6px 8px; Note: these are the styles from new design\n min-height: auto; however they don\'t meet accessibility guidelines \n min-width: 0; for touch target size */ \n width: fit-content;\n min-width: fit-content;\n max-width: fit-content;\n white-space: nowrap;\n box-sizing: border-box;\n border: var(--border-width-sm, 1px) solid var(--color-border-darker, #4A5565);\n color: var(--slate-700, #314158);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-medium, 500);\n line-height: var(--line-height-tight, 1.4);\n}\n.profile__empty-state-message {\n color: #62748E;\n text-align: center;\n font-size: var(--font-size-xs, 0.813rem); /* 13px */\n font-weight: var(--font-weight-normal, 400);\n line-height: var(--line-height-tight, 1.4); /* 140% from design 18.2px */\n}\n.contact-info__icon-wrapper {\n width: 36px;\n height: 36px;\n padding: 0 0.575rem; /* 9.2px - from design, but also ensures icons are centered in the circle */\n flex-shrink: 0;\n}\n\n.contact-info__icon {\n width: var(--icon-xxs, 1rem); /* 16px */\n height: var(--icon-xxs, 1rem); /* 16px */\n flex-shrink: 0;\n stroke-width: 1.333px;\n stroke: #90A1B9;\n}\n\n.contact-info__contact-point-value {\n color: var(--slate-800, #1D293D);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-bold, 600);\n white-space: normal !important;\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n.contact-info__contact-point-type {\n color: var(--slate-500, #62748E);\n font-size: var(--font-size-xxs, 0.75rem); /* 12px */\n font-weight: var(--font-weight-md, 500);\n}\n\n.contact-info__address {\n color: var(--slate-800, #1D293D);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-bold, 600);\n}\n\n.contact-info__list {\n list-style: none;\n margin: 0;\n padding: 0 0 var(--spacing-2xs, 0.625rem) 0;\n gap: var(--spacing-2xs, 0.625rem);\n}\n\n.contact-info__list:last-of-type {\n padding-bottom: 0;\n}\n\n.contact-info__list + .contact-info__list {\n margin-top: var(--spacing-2xs, 0.625rem);\n}\n\n.contact-info__item {\n margin-inline-start: 0;\n}\n\n.contact-info__empty-icon svg {\n width: var(--icon-md, 2.5rem); /* 40px */\n height: var(--icon-md, 2.5rem); /* 40px */\n display: block;\n}\n\n.contact-info__empty-icon svg path {\n stroke-width: 0.25rem; /* 4px */\n stroke: #E5E7EB;\n}\n\n.contact-info__empty-message {\n color: #9CA3AF;\n text-align: center;\n font-size: var(--font-size-xs, 0.813rem); /* 13px */\n font-weight: var(--font-weight-normal, 400);\n line-height: var(--line-height-tight, 1.4); /* design says 1.2 */\n}\n\n.contact-info__empty-icon-wrapper {\n width: 3rem; /* 48px */\n flex: 1 0 0;\n}\n.profile__empty-state-content {\n gap: var(--spacing-2xs, 0.625rem); /* 10px */\n}\n\n.profile__empty-state-content > h2,\n.profile__empty-state-content > p {\n margin: 0;\n}\n\n/* SAM - generated by ai below need to check design and change */\n.profile__action-button--empty:hover {\n background: var(--color-primary, #7C4DFF);\n border-color: var(--color-primary, #7C4DFF);\n color: white;\n}\n\n.profile__add-more-content {\n gap: var(--spacing-xxs, 0.3125rem);\n}\n\n.profile__add-more-icon {\n width: var(--icon-xxxs, 0.75rem); /* 12px */\n height: var(--icon-xxxs, 0.75rem); /* 12px */\n line-height: 0;\n flex: 0 0 auto;\n}\n\n.profile__add-more-icon svg {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n.skills__list {\n list-style: none;\n margin: 0;\n padding: 0;\n align-items: flex-start;\n gap: 0.5rem; /* 8px */\n}\n\n.skills__item {\n gap: 0.2rem;\n}\n\n.skills__item-label {\n color: var(--slate-900, #0F172B);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-md, 500);\n line-height: 1.2;\n}\n\n.skills__remove-button {\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n margin: 0;\n line-height: 1;\n}\n\n.languages__list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.languages__item-label {\n color: var(--gray-900, #101828);\n font-size: var(--font-size-md, 1rem); /* 16px */\n font-weight: var(--font-weight-md, 500);\n}\n\n.languages__empty-icon {\n width: var(--icon-xs, 1.5rem); /* 24px new design uses this */\n height: var(--icon-xs, 1.5rem); /* 24px new design uses this */\n flex-shrink: 0;\n}\n/* Add-me-to-friends button style shared across profile sections. */\n.profile__btn-friends {\n width: auto;\n min-width: 0;\n max-width: none;\n padding: 0.375rem 0.75rem;\n gap: var(--spacing-xxs, 0.3125rem);\n border-radius: var(--border-radius-md, 0.5rem);\n border: 1px solid var(--color-primary, #7C4DFF);\n background: transparent;\n color: var(--color-primary, #7C4DFF);\n}\n\n/* Text-style action button utility (used for section header/edit actions). */\n.profile-action-text {\n width: auto;\n min-width: 0;\n max-width: none;\n padding: var(--spacing-xxs, 0.3125rem);\n border: none;\n background: none;\n color: var(--color-primary, #7C4DFF);\n cursor: pointer;\n font-size: var(--font-size-sm, 0.875rem);\n}\n\n.profile-action-text:hover {\n text-decoration: underline;\n}\n\n.profile-section-collapsible {\n display: block;\n}\n\n.profile-section-collapsible__header {\n margin-bottom: 0;\n}\n\n.profile-section-collapsible__actions {\n gap: var(--spacing-xs, 0.75rem);\n margin-top: -0.25rem;\n}\n\n.profile-section-collapsible__edit-button {\n min-width: 0;\n}\n\n.profile-section-collapsible__edit-icon {\n display: none;\n}\n\n.profile-section-collapsible__actions > button.inline-flex-row {\n display: none !important;\n min-height: auto;\n min-width: auto;\n padding: var(--spacing-xxs, 0.3125rem);\n border: none;\n background: none;\n color: var(--color-text, #1A1A1A);\n cursor: pointer;\n}\n\n.profile-section-collapsible__chevron {\n display: inline-block;\n flex: 0 0 auto;\n transition: transform var(--animation-duration, 0.2s) ease;\n}\n\n.profile-section-collapsible__content {\n margin-top: var(--spacing-2xs, 0.625rem);\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n.profile-section-collapsible__content > :first-child {\n margin-top: 0;\n}\n\n.profile-section-collapsible__content > :last-child {\n margin-bottom: 0;\n}\n\n.bioCard,\n.bioSection,\n.socialCard,\n.socialList,\n.skills__list,\n.languages__list,\n.contact-info__list {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n@media (min-width: 769px) {\n .profile-section-collapsible > .profile-section-collapsible__content {\n display: block;\n }\n\n .profile-section-collapsible__edit-label svg,\n .profile__action-icon svg {\n width: 0.875rem;\n height: 0.875rem;\n }\n\n .profile-section-collapsible__edit-label svg path,\n .profile__action-icon svg path {\n fill: var(--color-primary, #7C4DFF);\n }\n\n .profile-section-collapsible__edit-label {\n display: inline;\n transform: translateY(-0.125rem);\n }\n\n .profile__add-more-icon {\n transform: translateY(-0.125rem);\n }\n\n .profile-section-collapsible__edit-icon {\n display: none;\n }\n}\n\n@media (max-width: 576px) {\n .profile-grid .profile__section-header h2,\n .profile-grid .profile__section-header h3,\n .profile-grid .profile__section-header h4,\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3,\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-family: inherit !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header h2 {\n margin: 0;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n margin-top: 0;\n flex: 0 0 auto;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {\n display: inline-flex !important;\n order: 1;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n background: transparent !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions > button.inline-flex-row {\n order: 2;\n }\n\n .profile__section-header h2,\n .profile__section-header h3,\n .profile__section-header h4 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-size: 1.5rem !important;\n line-height: 1.15 !important;\n }\n\n .profile-grid .profile__pronouns,\n .profile-grid .friends-pane__header-pronouns,\n .profile-grid .friends-pane__friends-pronouns {\n font-family: inherit !important;\n font-size: 0.6875rem !important;\n line-height: 1.1 !important;\n }\n\n .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {\n display: none;\n }\n\n .profile-section-collapsible__actions.flex-column {\n align-items: flex-end;\n gap: 0.25rem;\n }\n\n /* Keep empty-section mobile header controls in the same order as regular sections: toggle first, add/edit below. */\n .profile__section--empty .profile-section-collapsible__actions > button.inline-flex-row {\n order: 1;\n }\n\n .profile__section--empty .profile-section-collapsible__actions > .profile-section-collapsible__edit-button {\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__chevron {\n transform: rotate(180deg);\n }\n\n .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile-section-collapsible__edit-icon {\n display: inline;\n }\n\n /* Empty-state action buttons use icon-only mobile controls (plus sign). */\n .profile__section--empty .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile__section--empty .profile-section-collapsible__edit-icon {\n display: inline !important;\n }\n\n .profile-section-collapsible .profile-section-collapsible__edit-button {\n display: none !important;\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button {\n display: inline-flex !important;\n }\n /* Reassert toggle button layout in collapsible action rows on mobile \n so utility resets never hide/misalign the control. */\n .profile-section-collapsible__actions > button.inline-flex-row {\n display: inline-flex !important;\n align-items: center;\n justify-content: center;\n }\n\n .profile-section-collapsible__edit-icon--add svg path {\n fill: #1E2939 !important;\n stroke: #1E2939 !important;\n }\n\n .profile-section-collapsible__edit-icon--projects svg path {\n stroke-width: 1.714px !important;\n stroke: var(--gray-800, #1E2939) !important;\n fill: none !important;\n }\n\n}\n\n@container profile-pane (max-width: 576px) {\n .profile-grid .profile__section-header h2,\n .profile-grid .profile__section-header h3,\n .profile-grid .profile__section-header h4,\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3,\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-family: inherit !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header h2 {\n margin: 0;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n margin-top: 0;\n flex: 0 0 auto;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {\n order: 1;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n background: transparent !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions > button.inline-flex-row {\n order: 2;\n }\n\n .profile__section-header h2,\n .profile__section-header h3,\n .profile__section-header h4 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-size: 1.5rem !important;\n line-height: 1.15 !important;\n }\n\n .profile-grid .profile__pronouns,\n .profile-grid .friends-pane__header-pronouns,\n .profile-grid .friends-pane__friends-pronouns {\n font-family: inherit !important;\n font-size: 0.6875rem !important;\n line-height: 1.1 !important;\n }\n\n .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {\n display: none;\n }\n\n .profile-section-collapsible__actions.flex-column {\n align-items: flex-end;\n gap: 0.25rem;\n }\n\n .profile__section--empty .profile-section-collapsible__actions > button.inline-flex-row {\n order: 1;\n }\n\n .profile__section--empty .profile-section-collapsible__actions > .profile-section-collapsible__edit-button {\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__chevron {\n transform: rotate(180deg);\n }\n\n .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile-section-collapsible__edit-icon {\n display: inline;\n }\n\n .profile__section--empty .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile__section--empty .profile-section-collapsible__edit-icon {\n display: inline !important;\n }\n\n .profile-section-collapsible .profile-section-collapsible__edit-button {\n display: none !important;\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button {\n display: inline-flex !important;\n }\n\n .profile-section-collapsible__actions > button.inline-flex-row {\n display: inline-flex !important;\n align-items: center;\n justify-content: center;\n }\n\n .profile-section-collapsible__edit-icon--add svg path {\n fill: #1E2939 !important;\n stroke: #1E2939 !important;\n }\n\n .profile-section-collapsible__edit-icon--projects svg path {\n stroke-width: 1.714px !important;\n stroke: var(--gray-800, #1E2939) !important;\n fill: none !important;\n }\n}\n\n/* Zebra Striping - used by FriendList, StuffCard tables */\n.zebra-stripe tr:nth-child(even),\n.zebra-stripe > *:nth-child(even) {\n background-color: rgba(0, 0, 0, 0.02);\n}\n\n',"",{version:3,sources:["webpack://./src/styles/utilities.css"],names:[],mappings:"AAAA,sEAAsE;AACtE,kEAAkE;AAClE;;6BAE6B;AAC7B;EACE,yBAAyB;AAC3B;;AAEA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,eAAe;EACf,sBAAsB;AACxB;;AAEA;EACE;IACE,+CAA+C;EACjD;;EAEA;;IAEE,kEAAkE;IAClE,gDAAgD;IAChD,gCAAgC;EAClC;AACF;;AAEA;;gDAEgD;;AAEhD;EACE,aAAa;EACb,oDAAoD;EACpD,kCAAkC;EAClC,4CAA4C;AAC9C;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,WAAW;EACX,eAAe;EACf,YAAY;EACZ,cAAc;EACd,4BAA4B;EAC5B,2BAA2B;AAC7B;;AAEA;;oDAEoD;AACpD;EACE,WAAW;EACX,eAAe;EACf,YAAY;AACd;;AAEA;EACE;IACE,+CAA+C;EACjD;;EAEA;;IAEE,kEAAkE;IAClE,gDAAgD;IAChD,gCAAgC;EAClC;AACF;;AAEA;EACE;IACE,0BAA0B;IAC1B,kCAAkC;IAClC,WAAW;IACX,eAAe;IACf,sBAAsB;IACtB,cAAc;IACd,6CAA6C;IAC7C,gBAAgB;EAClB;AACF;;AAEA;EACE;IACE,0BAA0B;IAC1B,kCAAkC;IAClC,WAAW;IACX,eAAe;IACf,sBAAsB;IACtB,cAAc;IACd,6CAA6C;IAC7C,gBAAgB;EAClB;AACF;;AAEA,oBAAoB;;AAEpB;EACE,WAAW;AACb;;AAEA;EACE,gEAAgE,EAAE,cAAc;EAChF,WAAW;AACb;;AAEA;;;EAGE,sCAAsC;AACxC;;AAEA,0DAA0D;AAC1D;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;EAC9B,+BAA+B;EAC/B,WAAW;AACb;;AAEA;;;EAGE,SAAS;AACX;;AAEA;EACE,WAAW;EACX,mBAAmB,EAAE,UAAU;EAC/B,gBAAgB,EAAE,UAAU;EAC5B,sBAAsB;EACtB,qBAAqB;AACvB;;AAEA;EACE;;6CAE2C;EAC3C,kBAAkB;EAClB,sBAAsB;EACtB,sBAAsB;EACtB,mBAAmB;EACnB,sBAAsB;EACtB,6EAA6E;EAC7E,gCAAgC;EAChC,wCAAwC,EAAE,SAAS;EACnD,2CAA2C;EAC3C,0CAA0C;AAC5C;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,wCAAwC,EAAE,SAAS;EACnD,2CAA2C;EAC3C,0CAA0C,EAAE,4BAA4B;AAC1E;AACA;EACE,WAAW;EACX,YAAY;EACZ,mBAAmB,EAAE,2EAA2E;EAChG,cAAc;AAChB;;AAEA;EACE,4BAA4B,EAAE,SAAS;EACvC,6BAA6B,EAAE,SAAS;EACxC,cAAc;EACd,qBAAqB;EACrB,eAAe;AACjB;;AAEA;EACE,gCAAgC;EAChC,wCAAwC,EAAE,SAAS;EACnD,yCAAyC;EACzC,8BAA8B;EAC9B,uBAAuB;EACvB,sBAAsB;AACxB;;AAEA;EACE,gCAAgC;EAChC,wCAAwC,EAAE,SAAS;EACnD,uCAAuC;AACzC;;AAEA;EACE,gCAAgC;EAChC,wCAAwC,EAAE,SAAS;EACnD,yCAAyC;AAC3C;;AAEA;EACE,gBAAgB;EAChB,SAAS;EACT,2CAA2C;EAC3C,iCAAiC;AACnC;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,wCAAwC;AAC1C;;AAEA;EACE,sBAAsB;AACxB;;AAEA;EACE,6BAA6B,EAAE,SAAS;EACxC,8BAA8B,EAAE,SAAS;EACzC,cAAc;AAChB;;AAEA;EACE,qBAAqB,EAAE,QAAQ;EAC/B,eAAe;AACjB;;AAEA;EACE,cAAc;EACd,kBAAkB;EAClB,wCAAwC,EAAE,SAAS;EACnD,2CAA2C;EAC3C,0CAA0C,EAAE,oBAAoB;AAClE;;AAEA;EACE,WAAW,EAAE,SAAS;EACtB,WAAW;AACb;AACA;EACE,iCAAiC,EAAE,SAAS;AAC9C;;AAEA;;EAEE,SAAS;AACX;;AAEA,gEAAgE;AAChE;EACE,yCAAyC;EACzC,2CAA2C;EAC3C,YAAY;AACd;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE,gCAAgC,EAAE,SAAS;EAC3C,iCAAiC,EAAE,SAAS;EAC5C,cAAc;EACd,cAAc;AAChB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,SAAS;EACT,UAAU;EACV,uBAAuB;EACvB,WAAW,EAAE,QAAQ;AACvB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,gCAAgC;EAChC,wCAAwC,EAAE,SAAS;EACnD,uCAAuC;EACvC,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,UAAU;EACV,SAAS;EACT,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,SAAS;EACT,UAAU;AACZ;;AAEA;EACE,+BAA+B;EAC/B,oCAAoC,EAAE,SAAS;EAC/C,uCAAuC;AACzC;;AAEA;EACE,6BAA6B,EAAE,8BAA8B;EAC7D,8BAA8B,EAAE,8BAA8B;EAC9D,cAAc;AAChB;AACA,mEAAmE;AACnE;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,yBAAyB;EACzB,kCAAkC;EAClC,8CAA8C;EAC9C,+CAA+C;EAC/C,uBAAuB;EACvB,oCAAoC;AACtC;;AAEA,6EAA6E;AAC7E;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,sCAAsC;EACtC,YAAY;EACZ,gBAAgB;EAChB,oCAAoC;EACpC,eAAe;EACf,wCAAwC;AAC1C;;AAEA;EACE,0BAA0B;AAC5B;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,+BAA+B;EAC/B,oBAAoB;AACtB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,eAAe;EACf,sCAAsC;EACtC,YAAY;EACZ,gBAAgB;EAChB,iCAAiC;EACjC,eAAe;AACjB;;AAEA;EACE,qBAAqB;EACrB,cAAc;EACd,0DAA0D;AAC5D;;AAEA;EACE,wCAAwC;EACxC,WAAW;EACX,eAAe;EACf,YAAY;EACZ,sBAAsB;AACxB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,gBAAgB;AAClB;;AAEA;;;;;;;EAOE,WAAW;EACX,eAAe;EACf,YAAY;EACZ,sBAAsB;AACxB;;AAEA;EACE;IACE,cAAc;EAChB;;EAEA;;IAEE,eAAe;IACf,gBAAgB;EAClB;;EAEA;;IAEE,mCAAmC;EACrC;;EAEA;IACE,eAAe;IACf,gCAAgC;EAClC;;EAEA;IACE,gCAAgC;EAClC;;EAEA;IACE,aAAa;EACf;AACF;;AAEA;EACE;;;;;;;IAOE,+BAA+B;EACjC;;EAEA;IACE,aAAa;IACb,mBAAmB;IACnB,8BAA8B;IAC9B,WAAW;EACb;;EAEA;IACE,SAAS;IACT,cAAc;IACd,YAAY;EACd;;EAEA;IACE,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,YAAY;IACZ,aAAa;IACb,cAAc;EAChB;;EAEA;IACE,+BAA+B;IAC/B,QAAQ;EACV;;EAEA;;;IAGE,uBAAuB;IACvB,wBAAwB;IACxB,2BAA2B;IAC3B,kCAAkC;EACpC;;EAEA;IACE,QAAQ;EACV;;EAEA;;;IAGE,mDAAmD;IACnD,2BAA2B;EAC7B;;EAEA;;IAEE,mDAAmD;IACnD,2BAA2B;EAC7B;;EAEA;;IAEE,4BAA4B;IAC5B,4BAA4B;EAC9B;;EAEA;;;IAGE,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;EAC7B;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,qBAAqB;IACrB,YAAY;EACd;;EAEA,mHAAmH;EACnH;IACE,QAAQ;EACV;;EAEA;IACE,QAAQ;EACV;;EAEA;IACE,yBAAyB;EAC3B;;EAEA;IACE,wBAAwB;EAC1B;;EAEA;IACE,eAAe;EACjB;;EAEA,0EAA0E;EAC1E;IACE,wBAAwB;EAC1B;;EAEA;IACE,0BAA0B;EAC5B;;EAEA;IACE,wBAAwB;IACxB,QAAQ;EACV;;EAEA;IACE,+BAA+B;EACjC;EACA;sDACoD;EACpD;IACE,+BAA+B;IAC/B,mBAAmB;IACnB,uBAAuB;EACzB;;EAEA;IACE,wBAAwB;IACxB,0BAA0B;EAC5B;;EAEA;IACE,gCAAgC;IAChC,2CAA2C;IAC3C,qBAAqB;EACvB;;AAEF;;AAEA;EACE;;;;;;;IAOE,+BAA+B;EACjC;;EAEA;IACE,aAAa;IACb,mBAAmB;IACnB,8BAA8B;IAC9B,WAAW;EACb;;EAEA;IACE,SAAS;IACT,cAAc;IACd,YAAY;EACd;;EAEA;IACE,oBAAoB;IACpB,mBAAmB;IACnB,mBAAmB;IACnB,YAAY;IACZ,aAAa;IACb,cAAc;EAChB;;EAEA;IACE,QAAQ;EACV;;EAEA;;;IAGE,uBAAuB;IACvB,wBAAwB;IACxB,2BAA2B;IAC3B,kCAAkC;EACpC;;EAEA;IACE,QAAQ;EACV;;EAEA;;;IAGE,mDAAmD;IACnD,2BAA2B;EAC7B;;EAEA;;IAEE,mDAAmD;IACnD,2BAA2B;EAC7B;;EAEA;;IAEE,4BAA4B;IAC5B,4BAA4B;EAC9B;;EAEA;;;IAGE,+BAA+B;IAC/B,+BAA+B;IAC/B,2BAA2B;EAC7B;;EAEA;IACE,aAAa;EACf;;EAEA;IACE,qBAAqB;IACrB,YAAY;EACd;;EAEA;IACE,QAAQ;EACV;;EAEA;IACE,QAAQ;EACV;;EAEA;IACE,yBAAyB;EAC3B;;EAEA;IACE,wBAAwB;EAC1B;;EAEA;IACE,eAAe;EACjB;;EAEA;IACE,wBAAwB;EAC1B;;EAEA;IACE,0BAA0B;EAC5B;;EAEA;IACE,wBAAwB;IACxB,QAAQ;EACV;;EAEA;IACE,+BAA+B;EACjC;;EAEA;IACE,+BAA+B;IAC/B,mBAAmB;IACnB,uBAAuB;EACzB;;EAEA;IACE,wBAAwB;IACxB,0BAA0B;EAC5B;;EAEA;IACE,gCAAgC;IAChC,2CAA2C;IAC3C,qBAAqB;EACvB;AACF;;AAEA,0DAA0D;AAC1D;;EAEE,qCAAqC;AACvC",sourcesContent:['/* Utility-first CSS classes for layout, spacing, and responsiveness */\n/* These utilities are designed specfically for the profile pane */\n/* Utilities that can be shared by all panes should be added to dev-globals.css \n and to mashlib repo mash-utilities.css and then updated accross all pane\n development environments */\n:root {\n --profile-image-size: 3em;\n}\n\n.profile-pane-host {\n display: block;\n width: 100%;\n min-width: 100%;\n max-width: none;\n box-sizing: border-box;\n}\n\n@media (max-width: 768px) {\n .profile-grid {\n font-size: clamp(0.9rem, 1.1vw + 0.65rem, 1rem);\n }\n\n .profile-grid .profile__action-button,\n .profile-grid .profile__actions button {\n min-height: calc(var(--min-touch-target, 44px) + 0.5em) !important;\n font-size: clamp(0.9rem, 2.1vw, 1rem) !important;\n padding: 0.75em 0.9em !important;\n }\n}\n\n/* ===========================================\n PROFILE GRID LAYOUT\n =========================================== */\n\n.profile-grid {\n display: grid;\n grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);\n gap: var(--spacing-xxs, 0.3125rem);\n background: var(--color-background, #F8F9FB);\n}\n\n.profile-grid > * {\n min-width: 0;\n}\n\n.profile-pane-root {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n display: block;\n container-name: profile-pane;\n container-type: inline-size;\n}\n\n/* Embedded rendering inside SolidOS outline table cells needs a single-column fallback.\n The outline reserves space for icon/predicate columns, so the available content width\n is effectively much narrower than the viewport. */\ntd.obj .profile-pane-root {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n@container profile-pane (max-width: 768px) {\n .profile-grid {\n font-size: clamp(0.9rem, 1.1vw + 0.65rem, 1rem);\n }\n\n .profile-grid .profile__action-button,\n .profile-grid .profile__actions button {\n min-height: calc(var(--min-touch-target, 44px) + 0.5em) !important;\n font-size: clamp(0.9rem, 2.1vw, 1rem) !important;\n padding: 0.75em 0.9em !important;\n }\n}\n\n@container profile-pane (max-width: 768px) {\n .profile-grid {\n grid-template-columns: 1fr;\n gap: var(--spacing-xxs, 0.3125rem);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin: 0 auto;\n padding-inline: var(--spacing-xxs, 0.3125rem);\n overflow-x: clip;\n }\n}\n\n@media (max-width: 768px) {\n .profile-grid {\n grid-template-columns: 1fr;\n gap: var(--spacing-xxs, 0.3125rem);\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n margin: 0 auto;\n padding-inline: var(--spacing-xxs, 0.3125rem);\n overflow-x: clip;\n }\n}\n\n/* END GRID LAYOUT */\n\n.profile__section {\n width: 100%;\n}\n\n.profile__section--empty {\n padding: var(--spacing-1xl, 2.5rem) var(--spacing-lg, 1.5625rem); /* 40px 25px */\n width: 100%;\n}\n\n.profile__section,\n.profile__section--empty,\n.profile__action-button--empty {\n background: var(--color-card-bg, #fff);\n}\n\n/* Header row layout utility for profile section headers */\n.profile__section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--spacing-xs, 0.75rem);\n width: 100%;\n}\n\n.profile__section-header h2,\n.profile__section-header h3,\n.profile__section-header h4 {\n margin: 0;\n}\n\n.profile__action-button {\n width: 100%;\n min-width: 11.25rem; /* 180px */\n max-width: 20rem; /* 320px */\n box-sizing: border-box;\n display: inline-block;\n}\n\n.profile__action-button--empty {\n /*padding: 6px 8px; Note: these are the styles from new design\n min-height: auto; however they don\'t meet accessibility guidelines \n min-width: 0; for touch target size */ \n width: fit-content;\n min-width: fit-content;\n max-width: fit-content;\n white-space: nowrap;\n box-sizing: border-box;\n border: var(--border-width-sm, 1px) solid var(--color-border-darker, #4A5565);\n color: var(--slate-700, #314158);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-medium, 500);\n line-height: var(--line-height-tight, 1.4);\n}\n.profile__empty-state-message {\n color: #62748E;\n text-align: center;\n font-size: var(--font-size-xs, 0.813rem); /* 13px */\n font-weight: var(--font-weight-normal, 400);\n line-height: var(--line-height-tight, 1.4); /* 140% from design 18.2px */\n}\n.contact-info__icon-wrapper {\n width: 36px;\n height: 36px;\n padding: 0 0.575rem; /* 9.2px - from design, but also ensures icons are centered in the circle */\n flex-shrink: 0;\n}\n\n.contact-info__icon {\n width: var(--icon-xxs, 1rem); /* 16px */\n height: var(--icon-xxs, 1rem); /* 16px */\n flex-shrink: 0;\n stroke-width: 1.333px;\n stroke: #90A1B9;\n}\n\n.contact-info__contact-point-value {\n color: var(--slate-800, #1D293D);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-bold, 600);\n white-space: normal !important;\n overflow-wrap: anywhere;\n word-break: break-word;\n}\n\n.contact-info__contact-point-type {\n color: var(--slate-500, #62748E);\n font-size: var(--font-size-xxs, 0.75rem); /* 12px */\n font-weight: var(--font-weight-md, 500);\n}\n\n.contact-info__address {\n color: var(--slate-800, #1D293D);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-bold, 600);\n}\n\n.contact-info__list {\n list-style: none;\n margin: 0;\n padding: 0 0 var(--spacing-2xs, 0.625rem) 0;\n gap: var(--spacing-2xs, 0.625rem);\n}\n\n.contact-info__list:last-of-type {\n padding-bottom: 0;\n}\n\n.contact-info__list + .contact-info__list {\n margin-top: var(--spacing-2xs, 0.625rem);\n}\n\n.contact-info__item {\n margin-inline-start: 0;\n}\n\n.contact-info__empty-icon svg {\n width: var(--icon-md, 2.5rem); /* 40px */\n height: var(--icon-md, 2.5rem); /* 40px */\n display: block;\n}\n\n.contact-info__empty-icon svg path {\n stroke-width: 0.25rem; /* 4px */\n stroke: #E5E7EB;\n}\n\n.contact-info__empty-message {\n color: #9CA3AF;\n text-align: center;\n font-size: var(--font-size-xs, 0.813rem); /* 13px */\n font-weight: var(--font-weight-normal, 400);\n line-height: var(--line-height-tight, 1.4); /* design says 1.2 */\n}\n\n.contact-info__empty-icon-wrapper {\n width: 3rem; /* 48px */\n flex: 1 0 0;\n}\n.profile__empty-state-content {\n gap: var(--spacing-2xs, 0.625rem); /* 10px */\n}\n\n.profile__empty-state-content > h2,\n.profile__empty-state-content > p {\n margin: 0;\n}\n\n/* SAM - generated by ai below need to check design and change */\n.profile__action-button--empty:hover {\n background: var(--color-primary, #7C4DFF);\n border-color: var(--color-primary, #7C4DFF);\n color: white;\n}\n\n.profile__add-more-content {\n gap: var(--spacing-xxs, 0.3125rem);\n}\n\n.profile__add-more-icon {\n width: var(--icon-xxxs, 0.75rem); /* 12px */\n height: var(--icon-xxxs, 0.75rem); /* 12px */\n line-height: 0;\n flex: 0 0 auto;\n}\n\n.profile__add-more-icon svg {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n.skills__list {\n list-style: none;\n margin: 0;\n padding: 0;\n align-items: flex-start;\n gap: 0.5rem; /* 8px */\n}\n\n.skills__item {\n gap: 0.2rem;\n}\n\n.skills__item-label {\n color: var(--slate-900, #0F172B);\n font-size: var(--font-size-sm, 0.875rem); /* 14px */\n font-weight: var(--font-weight-md, 500);\n line-height: 1.2;\n}\n\n.skills__remove-button {\n border: none;\n background: none;\n cursor: pointer;\n padding: 0;\n margin: 0;\n line-height: 1;\n}\n\n.languages__list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.languages__item-label {\n color: var(--gray-900, #101828);\n font-size: var(--font-size-md, 1rem); /* 16px */\n font-weight: var(--font-weight-md, 500);\n}\n\n.languages__empty-icon {\n width: var(--icon-xs, 1.5rem); /* 24px new design uses this */\n height: var(--icon-xs, 1.5rem); /* 24px new design uses this */\n flex-shrink: 0;\n}\n/* Add-me-to-friends button style shared across profile sections. */\n.profile__btn-friends {\n width: auto;\n min-width: 0;\n max-width: none;\n padding: 0.375rem 0.75rem;\n gap: var(--spacing-xxs, 0.3125rem);\n border-radius: var(--border-radius-md, 0.5rem);\n border: 1px solid var(--color-primary, #7C4DFF);\n background: transparent;\n color: var(--color-primary, #7C4DFF);\n}\n\n/* Text-style action button utility (used for section header/edit actions). */\n.profile-action-text {\n width: auto;\n min-width: 0;\n max-width: none;\n padding: var(--spacing-xxs, 0.3125rem);\n border: none;\n background: none;\n color: var(--color-primary, #7C4DFF);\n cursor: pointer;\n font-size: var(--font-size-sm, 0.875rem);\n}\n\n.profile-action-text:hover {\n text-decoration: underline;\n}\n\n.profile-section-collapsible {\n display: block;\n}\n\n.profile-section-collapsible__header {\n margin-bottom: 0;\n}\n\n.profile-section-collapsible__actions {\n gap: var(--spacing-xs, 0.75rem);\n margin-top: -0.25rem;\n}\n\n.profile-section-collapsible__edit-button {\n min-width: 0;\n}\n\n.profile-section-collapsible__edit-icon {\n display: none;\n}\n\n.profile-section-collapsible__actions > button.inline-flex-row {\n display: none !important;\n min-height: auto;\n min-width: auto;\n padding: var(--spacing-xxs, 0.3125rem);\n border: none;\n background: none;\n color: var(--color-text, #1A1A1A);\n cursor: pointer;\n}\n\n.profile-section-collapsible__chevron {\n display: inline-block;\n flex: 0 0 auto;\n transition: transform var(--animation-duration, 0.2s) ease;\n}\n\n.profile-section-collapsible__content {\n margin-top: var(--spacing-2xs, 0.625rem);\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n.profile-section-collapsible__content > :first-child {\n margin-top: 0;\n}\n\n.profile-section-collapsible__content > :last-child {\n margin-bottom: 0;\n}\n\n.bioCard,\n.bioSection,\n.socialCard,\n.socialList,\n.skills__list,\n.languages__list,\n.contact-info__list {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n\n@media (min-width: 769px) {\n .profile-section-collapsible > .profile-section-collapsible__content {\n display: block;\n }\n\n .profile-section-collapsible__edit-label svg,\n .profile__action-icon svg {\n width: 0.875rem;\n height: 0.875rem;\n }\n\n .profile-section-collapsible__edit-label svg path,\n .profile__action-icon svg path {\n fill: var(--color-primary, #7C4DFF);\n }\n\n .profile-section-collapsible__edit-label {\n display: inline;\n transform: translateY(-0.125rem);\n }\n\n .profile__add-more-icon {\n transform: translateY(-0.125rem);\n }\n\n .profile-section-collapsible__edit-icon {\n display: none;\n }\n}\n\n@media (max-width: 576px) {\n .profile-grid .profile__section-header h2,\n .profile-grid .profile__section-header h3,\n .profile-grid .profile__section-header h4,\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3,\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-family: inherit !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header h2 {\n margin: 0;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n margin-top: 0;\n flex: 0 0 auto;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {\n display: inline-flex !important;\n order: 1;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n background: transparent !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions > button.inline-flex-row {\n order: 2;\n }\n\n .profile__section-header h2,\n .profile__section-header h3,\n .profile__section-header h4 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-size: 1.5rem !important;\n line-height: 1.15 !important;\n }\n\n .profile-grid .profile__pronouns,\n .profile-grid .friends-pane__header-pronouns,\n .profile-grid .friends-pane__friends-pronouns {\n font-family: inherit !important;\n font-size: 0.6875rem !important;\n line-height: 1.1 !important;\n }\n\n .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {\n display: none;\n }\n\n .profile-section-collapsible__actions.flex-column {\n align-items: flex-end;\n gap: 0.25rem;\n }\n\n /* Keep empty-section mobile header controls in the same order as regular sections: toggle first, add/edit below. */\n .profile__section--empty .profile-section-collapsible__actions > button.inline-flex-row {\n order: 1;\n }\n\n .profile__section--empty .profile-section-collapsible__actions > .profile-section-collapsible__edit-button {\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__chevron {\n transform: rotate(180deg);\n }\n\n .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile-section-collapsible__edit-icon {\n display: inline;\n }\n\n /* Empty-state action buttons use icon-only mobile controls (plus sign). */\n .profile__section--empty .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile__section--empty .profile-section-collapsible__edit-icon {\n display: inline !important;\n }\n\n .profile-section-collapsible .profile-section-collapsible__edit-button {\n display: none !important;\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button {\n display: inline-flex !important;\n }\n /* Reassert toggle button layout in collapsible action rows on mobile \n so utility resets never hide/misalign the control. */\n .profile-section-collapsible__actions > button.inline-flex-row {\n display: inline-flex !important;\n align-items: center;\n justify-content: center;\n }\n\n .profile-section-collapsible__edit-icon--add svg path {\n fill: #1E2939 !important;\n stroke: #1E2939 !important;\n }\n\n .profile-section-collapsible__edit-icon--projects svg path {\n stroke-width: 1.714px !important;\n stroke: var(--gray-800, #1E2939) !important;\n fill: none !important;\n }\n\n}\n\n@container profile-pane (max-width: 576px) {\n .profile-grid .profile__section-header h2,\n .profile-grid .profile__section-header h3,\n .profile-grid .profile__section-header h4,\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3,\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-family: inherit !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n }\n\n .profile-section-collapsible--inline-mobile-actions > .profile-section-collapsible__header h2 {\n margin: 0;\n flex: 1 1 auto;\n min-width: 0;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions {\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n margin-top: 0;\n flex: 0 0 auto;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button {\n order: 1;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:active,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus,\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__edit-button:focus-visible {\n border: none !important;\n outline: none !important;\n box-shadow: none !important;\n background: transparent !important;\n }\n\n .profile-section-collapsible--inline-mobile-actions .profile-section-collapsible__actions > button.inline-flex-row {\n order: 2;\n }\n\n .profile__section-header h2,\n .profile__section-header h3,\n .profile__section-header h4 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__empty-state-content > h2,\n .profile-grid .cvSection h3 {\n font-size: var(--font-size-lg, 1.125rem) !important;\n line-height: 1.2 !important;\n }\n\n .profile-grid .profile__name,\n .profile-grid .friends-pane__header-name {\n font-size: 1.5rem !important;\n line-height: 1.15 !important;\n }\n\n .profile-grid .profile__pronouns,\n .profile-grid .friends-pane__header-pronouns,\n .profile-grid .friends-pane__friends-pronouns {\n font-family: inherit !important;\n font-size: 0.6875rem !important;\n line-height: 1.1 !important;\n }\n\n .profile-section-collapsible[data-expanded="false"] .profile-section-collapsible__content {\n display: none;\n }\n\n .profile-section-collapsible__actions.flex-column {\n align-items: flex-end;\n gap: 0.25rem;\n }\n\n .profile__section--empty .profile-section-collapsible__actions > button.inline-flex-row {\n order: 1;\n }\n\n .profile__section--empty .profile-section-collapsible__actions > .profile-section-collapsible__edit-button {\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__chevron {\n transform: rotate(180deg);\n }\n\n .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile-section-collapsible__edit-icon {\n display: inline;\n }\n\n .profile__section--empty .profile-section-collapsible__edit-label {\n display: none !important;\n }\n\n .profile__section--empty .profile-section-collapsible__edit-icon {\n display: inline !important;\n }\n\n .profile-section-collapsible .profile-section-collapsible__edit-button {\n display: none !important;\n order: 2;\n }\n\n .profile-section-collapsible[data-expanded="true"] .profile-section-collapsible__edit-button {\n display: inline-flex !important;\n }\n\n .profile-section-collapsible__actions > button.inline-flex-row {\n display: inline-flex !important;\n align-items: center;\n justify-content: center;\n }\n\n .profile-section-collapsible__edit-icon--add svg path {\n fill: #1E2939 !important;\n stroke: #1E2939 !important;\n }\n\n .profile-section-collapsible__edit-icon--projects svg path {\n stroke-width: 1.714px !important;\n stroke: var(--gray-800, #1E2939) !important;\n fill: none !important;\n }\n}\n\n/* Zebra Striping - used by FriendList, StuffCard tables */\n.zebra-stripe tr:nth-child(even),\n.zebra-stripe > *:nth-child(even) {\n background-color: rgba(0, 0, 0, 0.02);\n}\n\n'],sourceRoot:""}]);const l=r},6314(e){"use strict";e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var t="",i=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),i&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),i&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t}).join("")},n.i=function(e,t,i,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(i)for(var l=0;l<this.length;l++){var s=this[l][0];null!=s&&(r[s]=!0)}for(var d=0;d<e.length;d++){var c=[].concat(e[d]);i&&r[c[0]]||(void 0!==a&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=a),t&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=t):c[2]=t),o&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=o):c[4]="".concat(o)),n.push(c))}},n}},1354(e){"use strict";e.exports=function(e){var n=e[1],t=e[3];if(!t)return n;if("function"==typeof btoa){var i=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),a="/*# ".concat(o," */");return[n].concat([a]).join("\n")}return[n].join("\n")}},6320(e){"use strict";var n={single_source_shortest_paths:function(e,t,i){var o={},a={};a[t]=0;var r,l,s,d,c,A,p,u=n.PriorityQueue.make();for(u.push(t,0);!u.empty();)for(s in l=(r=u.pop()).value,d=r.cost,c=e[l]||{})c.hasOwnProperty(s)&&(A=d+c[s],p=a[s],(void 0===a[s]||p>A)&&(a[s]=A,u.push(s,A),o[s]=l));if(void 0!==i&&void 0===a[i]){var f=["Could not find a path from ",t," to ",i,"."].join("");throw new Error(f)}return o},extract_shortest_path_from_predecessor_list:function(e,n){for(var t=[],i=n;i;)t.push(i),e[i],i=e[i];return t.reverse(),t},find_path:function(e,t,i){var o=n.single_source_shortest_paths(e,t,i);return n.extract_shortest_path_from_predecessor_list(o,i)},PriorityQueue:{make:function(e){var t,i=n.PriorityQueue,o={};for(t in e=e||{},i)i.hasOwnProperty(t)&&(o[t]=i[t]);return o.queue=[],o.sorter=e.sorter||i.default_sorter,o},default_sorter:function(e,n){return e.cost-n.cost},push:function(e,n){var t={value:e,cost:n};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return 0===this.queue.length}}};e.exports=n},7583(e,n,t){const i=t(1333),o=t(157),a=t(7899),r=t(6756);function l(e,n,t,a,r){const l=[].slice.call(arguments,1),s=l.length,d="function"==typeof l[s-1];if(!d&&!i())throw new Error("Callback required as last argument");if(!d){if(s<1)throw new Error("Too few arguments provided");return 1===s?(t=n,n=a=void 0):2!==s||n.getContext||(a=t,t=n,n=void 0),new Promise(function(i,r){try{const r=o.create(t,a);i(e(r,n,a))}catch(e){r(e)}})}if(s<2)throw new Error("Too few arguments provided");2===s?(r=t,t=n,n=a=void 0):3===s&&(n.getContext&&void 0===r?(r=a,a=void 0):(r=a,a=t,t=n,n=void 0));try{const i=o.create(t,a);r(null,e(i,n,a))}catch(e){r(e)}}o.create,l.bind(null,a.render),l.bind(null,a.renderToDataURL),n.toString=l.bind(null,function(e,n,t){return r.render(e,t)})},1333(e){e.exports=function(){return"function"==typeof Promise&&Promise.prototype&&Promise.prototype.then}},6421(e,n,t){const i=t(6886).getSymbolSize;n.getRowColCoords=function(e){if(1===e)return[];const n=Math.floor(e/7)+2,t=i(e),o=145===t?26:2*Math.ceil((t-13)/(2*n-2)),a=[t-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-o;return a.push(6),a.reverse()},n.getPositions=function(e){const t=[],i=n.getRowColCoords(e),o=i.length;for(let e=0;e<o;e++)for(let n=0;n<o;n++)0===e&&0===n||0===e&&n===o-1||e===o-1&&0===n||t.push([i[e],i[n]]);return t}},1433(e,n,t){const i=t(208),o=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function a(e){this.mode=i.ALPHANUMERIC,this.data=e}a.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(e){let n;for(n=0;n+2<=this.data.length;n+=2){let t=45*o.indexOf(this.data[n]);t+=o.indexOf(this.data[n+1]),e.put(t,11)}this.data.length%2&&e.put(o.indexOf(this.data[n]),6)},e.exports=a},9899(e){function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){const n=Math.floor(e/8);return 1==(this.buffer[n]>>>7-e%8&1)},put:function(e,n){for(let t=0;t<n;t++)this.putBit(1==(e>>>n-t-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),e&&(this.buffer[n]|=128>>>this.length%8),this.length++}},e.exports=n},8820(e){function n(e){if(!e||e<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,n,t,i){const o=e*this.size+n;this.data[o]=t,i&&(this.reservedBit[o]=!0)},n.prototype.get=function(e,n){return this.data[e*this.size+n]},n.prototype.xor=function(e,n,t){this.data[e*this.size+n]^=t},n.prototype.isReserved=function(e,n){return this.reservedBit[e*this.size+n]},e.exports=n},5822(e,n,t){const i=t(208);function o(e){this.mode=i.BYTE,this.data="string"==typeof e?(new TextEncoder).encode(e):new Uint8Array(e)}o.getBitsLength=function(e){return 8*e},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(e){for(let n=0,t=this.data.length;n<t;n++)e.put(this.data[n],8)},e.exports=o},7518(e,n,t){const i=t(9953),o=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],a=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];n.getBlocksCount=function(e,n){switch(n){case i.L:return o[4*(e-1)+0];case i.M:return o[4*(e-1)+1];case i.Q:return o[4*(e-1)+2];case i.H:return o[4*(e-1)+3];default:return}},n.getTotalCodewordsCount=function(e,n){switch(n){case i.L:return a[4*(e-1)+0];case i.M:return a[4*(e-1)+1];case i.Q:return a[4*(e-1)+2];case i.H:return a[4*(e-1)+3];default:return}}},9953(e,n){n.L={bit:1},n.M={bit:0},n.Q={bit:3},n.H={bit:2},n.isValid=function(e){return e&&void 0!==e.bit&&e.bit>=0&&e.bit<4},n.from=function(e,t){if(n.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"l":case"low":return n.L;case"m":case"medium":return n.M;case"q":case"quartile":return n.Q;case"h":case"high":return n.H;default:throw new Error("Unknown EC Level: "+e)}}(e)}catch(e){return t}}},7756(e,n,t){const i=t(6886).getSymbolSize;n.getPositions=function(e){const n=i(e);return[[0,0],[n-7,0],[0,n-7]]}},4565(e,n,t){const i=t(6886),o=i.getBCHDigit(1335);n.getEncodedBits=function(e,n){const t=e.bit<<3|n;let a=t<<10;for(;i.getBCHDigit(a)-o>=0;)a^=1335<<i.getBCHDigit(a)-o;return 21522^(t<<10|a)}},2731(e,n){const t=new Uint8Array(512),i=new Uint8Array(256);!function(){let e=1;for(let n=0;n<255;n++)t[n]=e,i[e]=n,e<<=1,256&e&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]}(),n.log=function(e){if(e<1)throw new Error("log("+e+")");return i[e]},n.exp=function(e){return t[e]},n.mul=function(e,n){return 0===e||0===n?0:t[i[e]+i[n]]}},4861(e,n,t){const i=t(208),o=t(6886);function a(e){this.mode=i.KANJI,this.data=e}a.getBitsLength=function(e){return 13*e},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(e){let n;for(n=0;n<this.data.length;n++){let t=o.toSJIS(this.data[n]);if(t>=33088&&t<=40956)t-=33088;else{if(!(t>=57408&&t<=60351))throw new Error("Invalid SJIS character: "+this.data[n]+"\nMake sure your charset is UTF-8");t-=49472}t=192*(t>>>8&255)+(255&t),e.put(t,13)}},e.exports=a},1332(e,n){n.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const t=3,i=3,o=40,a=10;function r(e,t,i){switch(e){case n.Patterns.PATTERN000:return(t+i)%2==0;case n.Patterns.PATTERN001:return t%2==0;case n.Patterns.PATTERN010:return i%3==0;case n.Patterns.PATTERN011:return(t+i)%3==0;case n.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(i/3))%2==0;case n.Patterns.PATTERN101:return t*i%2+t*i%3==0;case n.Patterns.PATTERN110:return(t*i%2+t*i%3)%2==0;case n.Patterns.PATTERN111:return(t*i%3+(t+i)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}}n.isValid=function(e){return null!=e&&""!==e&&!isNaN(e)&&e>=0&&e<=7},n.from=function(e){return n.isValid(e)?parseInt(e,10):void 0},n.getPenaltyN1=function(e){const n=e.size;let i=0,o=0,a=0,r=null,l=null;for(let s=0;s<n;s++){o=a=0,r=l=null;for(let d=0;d<n;d++){let n=e.get(s,d);n===r?o++:(o>=5&&(i+=t+(o-5)),r=n,o=1),n=e.get(d,s),n===l?a++:(a>=5&&(i+=t+(a-5)),l=n,a=1)}o>=5&&(i+=t+(o-5)),a>=5&&(i+=t+(a-5))}return i},n.getPenaltyN2=function(e){const n=e.size;let t=0;for(let i=0;i<n-1;i++)for(let o=0;o<n-1;o++){const n=e.get(i,o)+e.get(i,o+1)+e.get(i+1,o)+e.get(i+1,o+1);4!==n&&0!==n||t++}return t*i},n.getPenaltyN3=function(e){const n=e.size;let t=0,i=0,a=0;for(let o=0;o<n;o++){i=a=0;for(let r=0;r<n;r++)i=i<<1&2047|e.get(o,r),r>=10&&(1488===i||93===i)&&t++,a=a<<1&2047|e.get(r,o),r>=10&&(1488===a||93===a)&&t++}return t*o},n.getPenaltyN4=function(e){let n=0;const t=e.data.length;for(let i=0;i<t;i++)n+=e.data[i];return Math.abs(Math.ceil(100*n/t/5)-10)*a},n.applyMask=function(e,n){const t=n.size;for(let i=0;i<t;i++)for(let o=0;o<t;o++)n.isReserved(o,i)||n.xor(o,i,r(e,o,i))},n.getBestMask=function(e,t){const i=Object.keys(n.Patterns).length;let o=0,a=1/0;for(let r=0;r<i;r++){t(r),n.applyMask(r,e);const i=n.getPenaltyN1(e)+n.getPenaltyN2(e)+n.getPenaltyN3(e)+n.getPenaltyN4(e);n.applyMask(r,e),i<a&&(a=i,o=r)}return o}},208(e,n,t){const i=t(1878),o=t(7044);n.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},n.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},n.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},n.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},n.MIXED={bit:-1},n.getCharCountIndicator=function(e,n){if(!e.ccBits)throw new Error("Invalid mode: "+e);if(!i.isValid(n))throw new Error("Invalid version: "+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},n.getBestModeForData=function(e){return o.testNumeric(e)?n.NUMERIC:o.testAlphanumeric(e)?n.ALPHANUMERIC:o.testKanji(e)?n.KANJI:n.BYTE},n.toString=function(e){if(e&&e.id)return e.id;throw new Error("Invalid mode")},n.isValid=function(e){return e&&e.bit&&e.ccBits},n.from=function(e,t){if(n.isValid(e))return e;try{return function(e){if("string"!=typeof e)throw new Error("Param is not a string");switch(e.toLowerCase()){case"numeric":return n.NUMERIC;case"alphanumeric":return n.ALPHANUMERIC;case"kanji":return n.KANJI;case"byte":return n.BYTE;default:throw new Error("Unknown mode: "+e)}}(e)}catch(e){return t}}},4357(e,n,t){const i=t(208);function o(e){this.mode=i.NUMERIC,this.data=e.toString()}o.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},o.prototype.getLength=function(){return this.data.length},o.prototype.getBitsLength=function(){return o.getBitsLength(this.data.length)},o.prototype.write=function(e){let n,t,i;for(n=0;n+3<=this.data.length;n+=3)t=this.data.substr(n,3),i=parseInt(t,10),e.put(i,10);const o=this.data.length-n;o>0&&(t=this.data.substr(n),i=parseInt(t,10),e.put(i,3*o+1))},e.exports=o},4713(e,n,t){const i=t(2731);n.mul=function(e,n){const t=new Uint8Array(e.length+n.length-1);for(let o=0;o<e.length;o++)for(let a=0;a<n.length;a++)t[o+a]^=i.mul(e[o],n[a]);return t},n.mod=function(e,n){let t=new Uint8Array(e);for(;t.length-n.length>=0;){const e=t[0];for(let o=0;o<n.length;o++)t[o]^=i.mul(n[o],e);let o=0;for(;o<t.length&&0===t[o];)o++;t=t.slice(o)}return t},n.generateECPolynomial=function(e){let t=new Uint8Array([1]);for(let o=0;o<e;o++)t=n.mul(t,new Uint8Array([1,i.exp(o)]));return t}},157(e,n,t){const i=t(6886),o=t(9953),a=t(9899),r=t(8820),l=t(6421),s=t(7756),d=t(1332),c=t(7518),A=t(4764),p=t(1427),u=t(4565),f=t(208),m=t(9801);function g(e,n,t){const i=e.size,o=u.getEncodedBits(n,t);let a,r;for(a=0;a<15;a++)r=1==(o>>a&1),a<6?e.set(a,8,r,!0):a<8?e.set(a+1,8,r,!0):e.set(i-15+a,8,r,!0),a<8?e.set(8,i-a-1,r,!0):a<9?e.set(8,15-a-1+1,r,!0):e.set(8,15-a-1,r,!0);e.set(i-8,8,1,!0)}function h(e,n,t){const o=new a;t.forEach(function(n){o.put(n.mode.bit,4),o.put(n.getLength(),f.getCharCountIndicator(n.mode,e)),n.write(o)});const r=8*(i.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n));for(o.getLengthInBits()+4<=r&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(0);const l=(r-o.getLengthInBits())/8;for(let e=0;e<l;e++)o.put(e%2?17:236,8);return function(e,n,t){const o=i.getSymbolTotalCodewords(n),a=c.getTotalCodewordsCount(n,t),r=o-a,l=c.getBlocksCount(n,t),s=o%l,d=l-s,p=Math.floor(o/l),u=Math.floor(r/l),f=u+1,m=p-u,g=new A(m);let h=0;const C=new Array(l),b=new Array(l);let E=0;const _=new Uint8Array(e.buffer);for(let e=0;e<l;e++){const n=e<d?u:f;C[e]=_.slice(h,h+n),b[e]=g.encode(C[e]),h+=n,E=Math.max(E,n)}const v=new Uint8Array(o);let w,y,B=0;for(w=0;w<E;w++)for(y=0;y<l;y++)w<C[y].length&&(v[B++]=C[y][w]);for(w=0;w<m;w++)for(y=0;y<l;y++)v[B++]=b[y][w];return v}(o,e,n)}function C(e,n,t,o){let a;if(Array.isArray(e))a=m.fromArray(e);else{if("string"!=typeof e)throw new Error("Invalid data");{let i=n;if(!i){const n=m.rawSplit(e);i=p.getBestVersionForData(n,t)}a=m.fromString(e,i||40)}}const c=p.getBestVersionForData(a,t);if(!c)throw new Error("The amount of data is too big to be stored in a QR Code");if(n){if(n<c)throw new Error("\nThe chosen QR Code version cannot contain this amount of data.\nMinimum version required to store current data is: "+c+".\n")}else n=c;const A=h(n,t,a),u=i.getSymbolSize(n),f=new r(u);return function(e,n){const t=e.size,i=s.getPositions(n);for(let n=0;n<i.length;n++){const o=i[n][0],a=i[n][1];for(let n=-1;n<=7;n++)if(!(o+n<=-1||t<=o+n))for(let i=-1;i<=7;i++)a+i<=-1||t<=a+i||(n>=0&&n<=6&&(0===i||6===i)||i>=0&&i<=6&&(0===n||6===n)||n>=2&&n<=4&&i>=2&&i<=4?e.set(o+n,a+i,!0,!0):e.set(o+n,a+i,!1,!0))}}(f,n),function(e){const n=e.size;for(let t=8;t<n-8;t++){const n=t%2==0;e.set(t,6,n,!0),e.set(6,t,n,!0)}}(f),function(e,n){const t=l.getPositions(n);for(let n=0;n<t.length;n++){const i=t[n][0],o=t[n][1];for(let n=-2;n<=2;n++)for(let t=-2;t<=2;t++)-2===n||2===n||-2===t||2===t||0===n&&0===t?e.set(i+n,o+t,!0,!0):e.set(i+n,o+t,!1,!0)}}(f,n),g(f,t,0),n>=7&&function(e,n){const t=e.size,i=p.getEncodedBits(n);let o,a,r;for(let n=0;n<18;n++)o=Math.floor(n/3),a=n%3+t-8-3,r=1==(i>>n&1),e.set(o,a,r,!0),e.set(a,o,r,!0)}(f,n),function(e,n){const t=e.size;let i=-1,o=t-1,a=7,r=0;for(let l=t-1;l>0;l-=2)for(6===l&&l--;;){for(let t=0;t<2;t++)if(!e.isReserved(o,l-t)){let i=!1;r<n.length&&(i=1==(n[r]>>>a&1)),e.set(o,l-t,i),a--,-1===a&&(r++,a=7)}if(o+=i,o<0||t<=o){o-=i,i=-i;break}}}(f,A),isNaN(o)&&(o=d.getBestMask(f,g.bind(null,f,t))),d.applyMask(o,f),g(f,t,o),{modules:f,version:n,errorCorrectionLevel:t,maskPattern:o,segments:a}}n.create=function(e,n){if(void 0===e||""===e)throw new Error("No input text");let t,a,r=o.M;return void 0!==n&&(r=o.from(n.errorCorrectionLevel,o.M),t=p.from(n.version),a=d.from(n.maskPattern),n.toSJISFunc&&i.setToSJISFunction(n.toSJISFunc)),C(e,t,r,a)}},4764(e,n,t){const i=t(4713);function o(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}o.prototype.initialize=function(e){this.degree=e,this.genPoly=i.generateECPolynomial(this.degree)},o.prototype.encode=function(e){if(!this.genPoly)throw new Error("Encoder not initialized");const n=new Uint8Array(e.length+this.degree);n.set(e);const t=i.mod(n,this.genPoly),o=this.degree-t.length;if(o>0){const e=new Uint8Array(this.degree);return e.set(t,o),e}return t},e.exports=o},7044(e,n){const t="[0-9]+";let i="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";i=i.replace(/u/g,"\\u");const o="(?:(?![A-Z0-9 $%*+\\-./:]|"+i+")(?:.|[\r\n]))+";n.KANJI=new RegExp(i,"g"),n.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),n.BYTE=new RegExp(o,"g"),n.NUMERIC=new RegExp(t,"g"),n.ALPHANUMERIC=new RegExp("[A-Z $%*+\\-./:]+","g");const a=new RegExp("^"+i+"$"),r=new RegExp("^"+t+"$"),l=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");n.testKanji=function(e){return a.test(e)},n.testNumeric=function(e){return r.test(e)},n.testAlphanumeric=function(e){return l.test(e)}},9801(e,n,t){const i=t(208),o=t(4357),a=t(1433),r=t(5822),l=t(4861),s=t(7044),d=t(6886),c=t(6320);function A(e){return unescape(encodeURIComponent(e)).length}function p(e,n,t){const i=[];let o;for(;null!==(o=e.exec(t));)i.push({data:o[0],index:o.index,mode:n,length:o[0].length});return i}function u(e){const n=p(s.NUMERIC,i.NUMERIC,e),t=p(s.ALPHANUMERIC,i.ALPHANUMERIC,e);let o,a;d.isKanjiModeEnabled()?(o=p(s.BYTE,i.BYTE,e),a=p(s.KANJI,i.KANJI,e)):(o=p(s.BYTE_KANJI,i.BYTE,e),a=[]);return n.concat(t,o,a).sort(function(e,n){return e.index-n.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,n){switch(n){case i.NUMERIC:return o.getBitsLength(e);case i.ALPHANUMERIC:return a.getBitsLength(e);case i.KANJI:return l.getBitsLength(e);case i.BYTE:return r.getBitsLength(e)}}function m(e,n){let t;const s=i.getBestModeForData(e);if(t=i.from(n,s),t!==i.BYTE&&t.bit<s.bit)throw new Error('"'+e+'" cannot be encoded with mode '+i.toString(t)+".\n Suggested mode is: "+i.toString(s));switch(t!==i.KANJI||d.isKanjiModeEnabled()||(t=i.BYTE),t){case i.NUMERIC:return new o(e);case i.ALPHANUMERIC:return new a(e);case i.KANJI:return new l(e);case i.BYTE:return new r(e)}}n.fromArray=function(e){return e.reduce(function(e,n){return"string"==typeof n?e.push(m(n,null)):n.data&&e.push(m(n.data,n.mode)),e},[])},n.fromString=function(e,t){const o=function(e){const n=[];for(let t=0;t<e.length;t++){const o=e[t];switch(o.mode){case i.NUMERIC:n.push([o,{data:o.data,mode:i.ALPHANUMERIC,length:o.length},{data:o.data,mode:i.BYTE,length:o.length}]);break;case i.ALPHANUMERIC:n.push([o,{data:o.data,mode:i.BYTE,length:o.length}]);break;case i.KANJI:n.push([o,{data:o.data,mode:i.BYTE,length:A(o.data)}]);break;case i.BYTE:n.push([{data:o.data,mode:i.BYTE,length:A(o.data)}])}}return n}(u(e,d.isKanjiModeEnabled())),a=function(e,n){const t={},o={start:{}};let a=["start"];for(let r=0;r<e.length;r++){const l=e[r],s=[];for(let e=0;e<l.length;e++){const d=l[e],c=""+r+e;s.push(c),t[c]={node:d,lastCount:0},o[c]={};for(let e=0;e<a.length;e++){const r=a[e];t[r]&&t[r].node.mode===d.mode?(o[r][c]=f(t[r].lastCount+d.length,d.mode)-f(t[r].lastCount,d.mode),t[r].lastCount+=d.length):(t[r]&&(t[r].lastCount=d.length),o[r][c]=f(d.length,d.mode)+4+i.getCharCountIndicator(d.mode,n))}}a=s}for(let e=0;e<a.length;e++)o[a[e]].end=0;return{map:o,table:t}}(o,t),r=c.find_path(a.map,"start","end"),l=[];for(let e=1;e<r.length-1;e++)l.push(a.table[r[e]].node);return n.fromArray(function(e){return e.reduce(function(e,n){const t=e.length-1>=0?e[e.length-1]:null;return t&&t.mode===n.mode?(e[e.length-1].data+=n.data,e):(e.push(n),e)},[])}(l))},n.rawSplit=function(e){return n.fromArray(u(e,d.isKanjiModeEnabled()))}},6886(e,n){let t;const i=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];n.getSymbolSize=function(e){if(!e)throw new Error('"version" cannot be null or undefined');if(e<1||e>40)throw new Error('"version" should be in range from 1 to 40');return 4*e+17},n.getSymbolTotalCodewords=function(e){return i[e]},n.getBCHDigit=function(e){let n=0;for(;0!==e;)n++,e>>>=1;return n},n.setToSJISFunction=function(e){if("function"!=typeof e)throw new Error('"toSJISFunc" is not a valid function.');t=e},n.isKanjiModeEnabled=function(){return void 0!==t},n.toSJIS=function(e){return t(e)}},1878(e,n){n.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}},1427(e,n,t){const i=t(6886),o=t(7518),a=t(9953),r=t(208),l=t(1878),s=i.getBCHDigit(7973);function d(e,n){return r.getCharCountIndicator(e,n)+4}function c(e,n){let t=0;return e.forEach(function(e){const i=d(e.mode,n);t+=i+e.getBitsLength()}),t}n.from=function(e,n){return l.isValid(e)?parseInt(e,10):n},n.getCapacity=function(e,n,t){if(!l.isValid(e))throw new Error("Invalid QR Code version");void 0===t&&(t=r.BYTE);const a=8*(i.getSymbolTotalCodewords(e)-o.getTotalCodewordsCount(e,n));if(t===r.MIXED)return a;const s=a-d(t,e);switch(t){case r.NUMERIC:return Math.floor(s/10*3);case r.ALPHANUMERIC:return Math.floor(s/11*2);case r.KANJI:return Math.floor(s/13);case r.BYTE:default:return Math.floor(s/8)}},n.getBestVersionForData=function(e,t){let i;const o=a.from(t,a.M);if(Array.isArray(e)){if(e.length>1)return function(e,t){for(let i=1;i<=40;i++)if(c(e,i)<=n.getCapacity(i,t,r.MIXED))return i}(e,o);if(0===e.length)return 1;i=e[0]}else i=e;return function(e,t,i){for(let o=1;o<=40;o++)if(t<=n.getCapacity(o,i,e))return o}(i.mode,i.getLength(),o)},n.getEncodedBits=function(e){if(!l.isValid(e)||e<7)throw new Error("Invalid QR Code version");let n=e<<12;for(;i.getBCHDigit(n)-s>=0;)n^=7973<<i.getBCHDigit(n)-s;return e<<12|n}},7899(e,n,t){const i=t(2726);n.render=function(e,n,t){let o=t,a=n;void 0!==o||n&&n.getContext||(o=n,n=void 0),n||(a=function(){try{return document.createElement("canvas")}catch(e){throw new Error("You need to specify a canvas element")}}()),o=i.getOptions(o);const r=i.getImageWidth(e.modules.size,o),l=a.getContext("2d"),s=l.createImageData(r,r);return i.qrToImageData(s.data,e,o),function(e,n,t){e.clearRect(0,0,n.width,n.height),n.style||(n.style={}),n.height=t,n.width=t,n.style.height=t+"px",n.style.width=t+"px"}(l,a,r),l.putImageData(s,0,0),a},n.renderToDataURL=function(e,t,i){let o=i;void 0!==o||t&&t.getContext||(o=t,t=void 0),o||(o={});const a=n.render(e,t,o),r=o.type||"image/png",l=o.rendererOpts||{};return a.toDataURL(r,l.quality)}},6756(e,n,t){const i=t(2726);function o(e,n){const t=e.a/255,i=n+'="'+e.hex+'"';return t<1?i+" "+n+'-opacity="'+t.toFixed(2).slice(1)+'"':i}function a(e,n,t){let i=e+n;return void 0!==t&&(i+=" "+t),i}n.render=function(e,n,t){const r=i.getOptions(n),l=e.modules.size,s=e.modules.data,d=l+2*r.margin,c=r.color.light.a?"<path "+o(r.color.light,"fill")+' d="M0 0h'+d+"v"+d+'H0z"/>':"",A="<path "+o(r.color.dark,"stroke")+' d="'+function(e,n,t){let i="",o=0,r=!1,l=0;for(let s=0;s<e.length;s++){const d=Math.floor(s%n),c=Math.floor(s/n);d||r||(r=!0),e[s]?(l++,s>0&&d>0&&e[s-1]||(i+=r?a("M",d+t,.5+c+t):a("m",o,0),o=0,r=!1),d+1<n&&e[s+1]||(i+=a("h",l),l=0)):o++}return i}(s,l,r.margin)+'"/>',p='viewBox="0 0 '+d+" "+d+'"',u='<svg xmlns="http://www.w3.org/2000/svg" '+(r.width?'width="'+r.width+'" height="'+r.width+'" ':"")+p+' shape-rendering="crispEdges">'+c+A+"</svg>\n";return"function"==typeof t&&t(null,u),u}},2726(e,n){function t(e){if("number"==typeof e&&(e=e.toString()),"string"!=typeof e)throw new Error("Color should be defined as hex string");let n=e.slice().replace("#","").split("");if(n.length<3||5===n.length||n.length>8)throw new Error("Invalid hex color: "+e);3!==n.length&&4!==n.length||(n=Array.prototype.concat.apply([],n.map(function(e){return[e,e]}))),6===n.length&&n.push("F","F");const t=parseInt(n.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:255&t,hex:"#"+n.slice(0,6).join("")}}n.getOptions=function(e){e||(e={}),e.color||(e.color={});const n=void 0===e.margin||null===e.margin||e.margin<0?4:e.margin,i=e.width&&e.width>=21?e.width:void 0,o=e.scale||4;return{width:i,scale:i?4:o,margin:n,color:{dark:t(e.color.dark||"#000000ff"),light:t(e.color.light||"#ffffffff")},type:e.type,rendererOpts:e.rendererOpts||{}}},n.getScale=function(e,n){return n.width&&n.width>=e+2*n.margin?n.width/(e+2*n.margin):n.scale},n.getImageWidth=function(e,t){const i=n.getScale(e,t);return Math.floor((e+2*t.margin)*i)},n.qrToImageData=function(e,t,i){const o=t.modules.size,a=t.modules.data,r=n.getScale(o,i),l=Math.floor((o+2*i.margin)*r),s=i.margin*r,d=[i.color.light,i.color.dark];for(let n=0;n<l;n++)for(let t=0;t<l;t++){let c=4*(n*l+t),A=i.color.light;if(n>=s&&t>=s&&n<l-s&&t<l-s){A=d[a[Math.floor((n-s)/r)*o+Math.floor((t-s)/r)]?1:0]}e[c++]=A.r,e[c++]=A.g,e[c++]=A.b,e[c]=A.a}}},5072(e){"use strict";var n=[];function t(e){for(var t=-1,i=0;i<n.length;i++)if(n[i].identifier===e){t=i;break}return t}function i(e,i){for(var a={},r=[],l=0;l<e.length;l++){var s=e[l],d=i.base?s[0]+i.base:s[0],c=a[d]||0,A="".concat(d," ").concat(c);a[d]=c+1;var p=t(A),u={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==p)n[p].references++,n[p].updater(u);else{var f=o(u,i);i.byIndex=l,n.splice(l,0,{identifier:A,updater:f,references:1})}r.push(A)}return r}function o(e,n){var t=n.domAPI(n);t.update(e);return function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap&&n.supports===e.supports&&n.layer===e.layer)return;t.update(e=n)}else t.remove()}}e.exports=function(e,o){var a=i(e=e||[],o=o||{});return function(e){e=e||[];for(var r=0;r<a.length;r++){var l=t(a[r]);n[l].references--}for(var s=i(e,o),d=0;d<a.length;d++){var c=t(a[d]);0===n[c].references&&(n[c].updater(),n.splice(c,1))}a=s}}},7659(e){"use strict";var n={};e.exports=function(e,t){var i=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}},540(e){"use strict";e.exports=function(e){var n=document.createElement("style");return e.setAttributes(n,e.attributes),e.insert(n,e.options),n}},5056(e,n,t){"use strict";e.exports=function(e){var n=t.nc;n&&e.setAttribute("nonce",n)}},7825(e){"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var n=e.insertStyleElement(e);return{update:function(t){!function(e,n,t){var i="";t.supports&&(i+="@supports (".concat(t.supports,") {")),t.media&&(i+="@media ".concat(t.media," {"));var o=void 0!==t.layer;o&&(i+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),i+=t.css,o&&(i+="}"),t.media&&(i+="}"),t.supports&&(i+="}");var a=t.sourceMap;a&&"undefined"!=typeof btoa&&(i+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleTagTransform(i,e,n.options)}(n,e,t)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(n)}}}},1113(e){"use strict";e.exports=function(e,n){if(n.styleSheet)n.styleSheet.cssText=e;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(e))}}},5663(n){"use strict";n.exports=e},9426(e){"use strict";e.exports=n},5491(e){"use strict";e.exports=t}},o={};function a(e){var n=o[e];if(void 0!==n)return n.exports;var t=o[e]={id:e,exports:{}};return i[e](t,t.exports,a),t.exports}a.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return a.d(n,{a:n}),n},a.d=(e,n)=>{for(var t in n)a.o(n,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:n[t]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var n=a.g.document;if(!e&&n&&(n.currentScript&&"SCRIPT"===n.currentScript.tagName.toUpperCase()&&(e=n.currentScript.src),!e)){var t=n.getElementsByTagName("script");if(t.length)for(var i=t.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=t[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),a.nc=void 0;var r={};return(()=>{"use strict";a.d(r,{default:()=>zr});var e=a(5072),n=a.n(e),t=a(7825),i=a.n(t),o=a(7659),l=a.n(o),s=a(5056),d=a.n(s),c=a(540),A=a.n(c),p=a(1113),u=a.n(p),f=a(1267),m={};m.styleTagTransform=u(),m.setAttributes=d(),m.insert=l().bind(null,"head"),m.domAPI=i(),m.insertStyleElement=A();n()(f.A,m);f.A&&f.A.locals&&f.A.locals;var g=a(3750),h={};h.styleTagTransform=u(),h.setAttributes=d(),h.insert=l().bind(null,"head"),h.domAPI=i(),h.insertStyleElement=A();n()(g.A,h);g.A&&g.A.locals&&g.A.locals;var C=a(1937),b={};b.styleTagTransform=u(),b.setAttributes=d(),b.insert=l().bind(null,"head"),b.domAPI=i(),b.insertStyleElement=A();n()(C.A,b);C.A&&C.A.locals&&C.A.locals;var E=a(436),_={};_.styleTagTransform=u(),_.setAttributes=d(),_.insert=l().bind(null,"head"),_.domAPI=i(),_.insertStyleElement=A();n()(E.A,_);E.A&&E.A.locals&&E.A.locals;var v=a(1134),w={};w.styleTagTransform=u(),w.setAttributes=d(),w.insert=l().bind(null,"head"),w.domAPI=i(),w.insertStyleElement=A();n()(v.A,w);v.A&&v.A.locals&&v.A.locals;var y=a(1649),B={};B.styleTagTransform=u(),B.setAttributes=d(),B.insert=l().bind(null,"head"),B.domAPI=i(),B.insertStyleElement=A();n()(y.A,B);y.A&&y.A.locals&&y.A.locals;var x=a(5092),k={};k.styleTagTransform=u(),k.setAttributes=d(),k.insert=l().bind(null,"head"),k.domAPI=i(),k.insertStyleElement=A();n()(x.A,k);x.A&&x.A.locals&&x.A.locals;const I=globalThis,$=e=>e,S=I.trustedTypes,D=S?S.createPolicy("lit-html",{createHTML:e=>e}):void 0,N="$lit$",T=`lit$${Math.random().toFixed(9).slice(2)}$`,j="?"+T,z=`<${j}>`,F=document,P=()=>F.createComment(""),L=e=>null===e||"object"!=typeof e&&"function"!=typeof e,M=Array.isArray,W=e=>M(e)||"function"==typeof e?.[Symbol.iterator],R="[ \t\n\f\r]",U=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,H=/-->/g,Y=/>/g,O=RegExp(`>|${R}(?:([^\\s"'>=/]+)(${R}*=${R}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),q=/'/g,V=/"/g,Q=/^(?:script|style|textarea|title)$/i,Z=e=>(n,...t)=>({_$litType$:e,strings:n,values:t}),X=Z(1),G=(Z(2),Z(3),Symbol.for("lit-noChange")),K=Symbol.for("lit-nothing"),J=new WeakMap,ee=F.createTreeWalker(F,129);function ne(e,n){if(!M(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==D?D.createHTML(n):n}const te=(e,n)=>{const t=e.length-1,i=[];let o,a=2===n?"<svg>":3===n?"<math>":"",r=U;for(let n=0;n<t;n++){const t=e[n];let l,s,d=-1,c=0;for(;c<t.length&&(r.lastIndex=c,s=r.exec(t),null!==s);)c=r.lastIndex,r===U?"!--"===s[1]?r=H:void 0!==s[1]?r=Y:void 0!==s[2]?(Q.test(s[2])&&(o=RegExp("</"+s[2],"g")),r=O):void 0!==s[3]&&(r=O):r===O?">"===s[0]?(r=o??U,d=-1):void 0===s[1]?d=-2:(d=r.lastIndex-s[2].length,l=s[1],r=void 0===s[3]?O:'"'===s[3]?V:q):r===V||r===q?r=O:r===H||r===Y?r=U:(r=O,o=void 0);const A=r===O&&e[n+1].startsWith("/>")?" ":"";a+=r===U?t+z:d>=0?(i.push(l),t.slice(0,d)+N+t.slice(d)+T+A):t+T+(-2===d?n:A)}return[ne(e,a+(e[t]||"<?>")+(2===n?"</svg>":3===n?"</math>":"")),i]};class ie{constructor({strings:e,_$litType$:n},t){let i;this.parts=[];let o=0,a=0;const r=e.length-1,l=this.parts,[s,d]=te(e,n);if(this.el=ie.createElement(s,t),ee.currentNode=this.el.content,2===n||3===n){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(i=ee.nextNode())&&l.length<r;){if(1===i.nodeType){if(i.hasAttributes())for(const e of i.getAttributeNames())if(e.endsWith(N)){const n=d[a++],t=i.getAttribute(e).split(T),r=/([.?@])?(.*)/.exec(n);l.push({type:1,index:o,name:r[2],strings:t,ctor:"."===r[1]?se:"?"===r[1]?de:"@"===r[1]?ce:le}),i.removeAttribute(e)}else e.startsWith(T)&&(l.push({type:6,index:o}),i.removeAttribute(e));if(Q.test(i.tagName)){const e=i.textContent.split(T),n=e.length-1;if(n>0){i.textContent=S?S.emptyScript:"";for(let t=0;t<n;t++)i.append(e[t],P()),ee.nextNode(),l.push({type:2,index:++o});i.append(e[n],P())}}}else if(8===i.nodeType)if(i.data===j)l.push({type:2,index:o});else{let e=-1;for(;-1!==(e=i.data.indexOf(T,e+1));)l.push({type:7,index:o}),e+=T.length-1}o++}}static createElement(e,n){const t=F.createElement("template");return t.innerHTML=e,t}}function oe(e,n,t=e,i){if(n===G)return n;let o=void 0!==i?t._$Co?.[i]:t._$Cl;const a=L(n)?void 0:n._$litDirective$;return o?.constructor!==a&&(o?._$AO?.(!1),void 0===a?o=void 0:(o=new a(e),o._$AT(e,t,i)),void 0!==i?(t._$Co??=[])[i]=o:t._$Cl=o),void 0!==o&&(n=oe(e,o._$AS(e,n.values),o,i)),n}class ae{constructor(e,n){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=n}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:n},parts:t}=this._$AD,i=(e?.creationScope??F).importNode(n,!0);ee.currentNode=i;let o=ee.nextNode(),a=0,r=0,l=t[0];for(;void 0!==l;){if(a===l.index){let n;2===l.type?n=new re(o,o.nextSibling,this,e):1===l.type?n=new l.ctor(o,l.name,l.strings,this,e):6===l.type&&(n=new Ae(o,this,e)),this._$AV.push(n),l=t[++r]}a!==l?.index&&(o=ee.nextNode(),a++)}return ee.currentNode=F,i}p(e){let n=0;for(const t of this._$AV)void 0!==t&&(void 0!==t.strings?(t._$AI(e,t,n),n+=t.strings.length-2):t._$AI(e[n])),n++}}class re{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,n,t,i){this.type=2,this._$AH=K,this._$AN=void 0,this._$AA=e,this._$AB=n,this._$AM=t,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const n=this._$AM;return void 0!==n&&11===e?.nodeType&&(e=n.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,n=this){e=oe(this,e,n),L(e)?e===K||null==e||""===e?(this._$AH!==K&&this._$AR(),this._$AH=K):e!==this._$AH&&e!==G&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):W(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==K&&L(this._$AH)?this._$AA.nextSibling.data=e:this.T(F.createTextNode(e)),this._$AH=e}$(e){const{values:n,_$litType$:t}=e,i="number"==typeof t?this._$AC(e):(void 0===t.el&&(t.el=ie.createElement(ne(t.h,t.h[0]),this.options)),t);if(this._$AH?._$AD===i)this._$AH.p(n);else{const e=new ae(i,this),t=e.u(this.options);e.p(n),this.T(t),this._$AH=e}}_$AC(e){let n=J.get(e.strings);return void 0===n&&J.set(e.strings,n=new ie(e)),n}k(e){M(this._$AH)||(this._$AH=[],this._$AR());const n=this._$AH;let t,i=0;for(const o of e)i===n.length?n.push(t=new re(this.O(P()),this.O(P()),this,this.options)):t=n[i],t._$AI(o),i++;i<n.length&&(this._$AR(t&&t._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,n){for(this._$AP?.(!1,!0,n);e!==this._$AB;){const n=$(e).nextSibling;$(e).remove(),e=n}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}}class le{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,n,t,i,o){this.type=1,this._$AH=K,this._$AN=void 0,this.element=e,this.name=n,this._$AM=i,this.options=o,t.length>2||""!==t[0]||""!==t[1]?(this._$AH=Array(t.length-1).fill(new String),this.strings=t):this._$AH=K}_$AI(e,n=this,t,i){const o=this.strings;let a=!1;if(void 0===o)e=oe(this,e,n,0),a=!L(e)||e!==this._$AH&&e!==G,a&&(this._$AH=e);else{const i=e;let r,l;for(e=o[0],r=0;r<o.length-1;r++)l=oe(this,i[t+r],n,r),l===G&&(l=this._$AH[r]),a||=!L(l)||l!==this._$AH[r],l===K?e=K:e!==K&&(e+=(l??"")+o[r+1]),this._$AH[r]=l}a&&!i&&this.j(e)}j(e){e===K?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class se extends le{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===K?void 0:e}}class de extends le{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==K)}}class ce extends le{constructor(e,n,t,i,o){super(e,n,t,i,o),this.type=5}_$AI(e,n=this){if((e=oe(this,e,n,0)??K)===G)return;const t=this._$AH,i=e===K&&t!==K||e.capture!==t.capture||e.once!==t.once||e.passive!==t.passive,o=e!==K&&(t===K||i);i&&this.element.removeEventListener(this.name,this,t),o&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class Ae{constructor(e,n,t){this.element=e,this.type=6,this._$AN=void 0,this._$AM=n,this.options=t}get _$AU(){return this._$AM._$AU}_$AI(e){oe(this,e)}}const pe=I.litHtmlPolyfillSupport;pe?.(ie,re),(I.litHtmlVersions??=[]).push("3.3.2");const ue=(e,n,t)=>{const i=t?.renderBefore??n;let o=i._$litPart$;if(void 0===o){const e=t?.renderBefore??null;i._$litPart$=o=new re(n.insertBefore(P(),e),e,void 0,t??{})}return o._$AI(e),o};var fe=a(5663),me=a(9426);const ge="Resume",he="Skills",Ce="Languages",be="Projects & Communities",Ee="Save Changes",_e="Cancel",ve="Delete entry",we="You need to log in as the profile owner to save contact updates.",ye="Could not save contact updates.",Be="Could not save heading updates.",xe="Could not save social accounts updates.",ke="Could not save bio updates.",Ie="Store does not support updates",$e="Follow me on";function Se(e){return Boolean(e&&"object"==typeof e&&"string"==typeof e.uri)}function De(e){return Boolean(e&&"object"==typeof e&&"function"==typeof e.any)}function Ne(e){return(e||"").trim().replace(/^mailto:/i,"")}function Te(e){return(e||"").trim().replace(/^tel:/i,"")}function je(e){const n=(e||"").trim();return!!n&&(!!/^mailto:/i.test(n)||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n))}function ze(e){const n=(e||"").trim();return!!n&&(!!/^tel:/i.test(n)||/^[+()\-\s\d]{5,}$/.test(n))}function Fe(e,n,t,i){var o;if(!e)return"";const a=e.each(n,t),r="email"===i?je:ze;for(const t of a){if(!t)continue;const a=t.value;if("string"==typeof a&&r(a))return"email"===i?Ne(a):Te(a);if("NamedNode"===t.termType||"BlankNode"===t.termType){const a=n.doc(),l=e.statementsMatching(t,me.ns.vcard("value"),null,a),s=e.statementsMatching(t,me.ns.vcard("value"));for(const e of[...l,...s]){const n=null===(o=e.object)||void 0===o?void 0:o.value;if("string"==typeof n&&r(n))return"email"===i?Ne(n):Te(n)}}}return""}const Pe=(e,n,t)=>{const{subject:i,store:o}=function(e,n,t){if(Se(e))return{subject:e,store:De(n)?n:void 0};if(Se(t))return{subject:t,store:De(n)?n:void 0};throw new Error("QRCodeCard requires a profile subject NamedNode.")}(e,n,t),a=me.utils.label(i),r=e=>(e||"").replace(/\\/g,"\\\\").replace(/;/g,"\\;").replace(/,/g,"\\,").replace(/\r?\n/g,"\\n"),l=r(a||i.uri),s=r(i.uri),d=Fe(o,i,me.ns.vcard("hasEmail"),"email"),c=Fe(o,i,me.ns.vcard("hasTelephone"),"tel"),A=["BEGIN:VCARD","VERSION:4.0",`FN:${l}`,`URL:${s}`];d&&A.push(`EMAIL;TYPE=internet:${r(d)}`),c&&A.push(`TEL:${r(c)}`),A.push("END:VCARD");const p=A.join("\r\n");return X`
|
|
14
2
|
<figure
|
|
15
|
-
class="
|
|
16
|
-
data-value="${
|
|
17
|
-
highlightColor="${i}"
|
|
18
|
-
backgroundColor="${o}"
|
|
3
|
+
class="qrcode-card flex-column-center"
|
|
4
|
+
data-value="${p}"
|
|
19
5
|
data-testid="qrcode-card"
|
|
20
6
|
aria-labelledby="qr-code-caption"
|
|
21
7
|
role="img"
|
|
22
8
|
aria-describedby="qr-code-description"
|
|
23
9
|
>
|
|
24
10
|
<div
|
|
25
|
-
aria-label="Static QR code containing contact information for ${
|
|
11
|
+
aria-label="Static QR code containing contact information for ${a}"
|
|
26
12
|
role="img"
|
|
27
13
|
tabindex="0"
|
|
28
14
|
></div>
|
|
29
15
|
<figcaption
|
|
30
16
|
id="qr-code-caption"
|
|
31
|
-
class="
|
|
17
|
+
class="qrcode-card__caption"
|
|
32
18
|
>
|
|
33
|
-
${"
|
|
19
|
+
${"Link to Profile"}
|
|
34
20
|
</figcaption>
|
|
35
21
|
<div
|
|
36
22
|
id="qr-code-description"
|
|
37
23
|
class="sr-only"
|
|
38
24
|
>
|
|
39
|
-
This is a static QR code containing vCard information for ${
|
|
25
|
+
This is a static QR code containing vCard information for ${a}, including profile URL ${i.uri}. The QR code is not interactive.
|
|
40
26
|
</div>
|
|
41
27
|
</figure>
|
|
42
|
-
`},we=({name:n,imageSrc:e,introduction:t,location:i,pronouns:o,highlightColor:r,backgroundColor:a},s,l)=>nn`
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
28
|
+
`};function Le(e,n){const t=new Set;return function n(i){const o=`${i.termType||typeof i}:${i.value||String(i)}`;if(t.has(o))return[];t.add(o);const a=i.elements;if(Array.isArray(a))return a.flatMap(e=>n(e));if(!e.any(i,me.ns.rdf("first")))return[i];const r=[];let l=i;for(;l;){const t=e.any(l,me.ns.rdf("first"));t&&r.push(...n(t));const i=e.any(l,me.ns.rdf("rest"));if(!i||"NamedNode"===i.termType&&i.value===me.ns.rdf("nil").value)break;l=i}return r}(n)}var Me=a(5491);const We='@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix : <#>.\n\n########### ATTENTION - we cannot rename this ontology file name without migrating existing data on existing accounts\n\n########### Social Media - other accounts\n#\n# Twitter, linked In, Orkid, Mastodon, Matrix, Bluesky, Instagram, Facebook, Github,\n# Snapchat, TikTok, etc\n#\n# NOTE: Temporary icon strategy.\n# We currently use URNs like <urn:profile-pane:icon:<key>> for bundled local icons.\n# These icons are planned to move to a dedicated icons project in the future.\n\n:this\n <http://purl.org/dc/elements/1.1/title> "Social media form" ;\n a ui:Form ;\n ui:parts (\n :SocialsForm\n ).\n\n:SocialsForm a ui:Multiple;\n ui:label "online account";\n ui:property foaf:account; # the triple is created with the foaf:acccounts predicate\n ui:ordered true; # Allow user to order occounts most important first.\n ui:part :AccountsForm.\n\n:AccountsForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :AccountField \n :AccountIdField ).\n\n:AccountField a ui:Classifier; \n ui:label "Account"@en;\n ui:multiple false ; \n ui:category foaf:Account. # the accounts are described by the foaf:Account predicate\n\n# this is what is needed to make a dropdown box\nfoaf:Account a rdfs:Class;\n rdfs:label "Online Account Provider";\n owl:disjointUnionOf ( \n :BlueSkyAccount :DribbleAccount :DiggAccount :DiscordAccount :FacebookAccount :GithubAccount :InstagramAccount\n :LinkedInAccount :MastodonAccount :MatrixAccount :MediumAccount :NostrAccount \n :OrcidAccount :PinterestAccount :RedditAccount :SharechatAccount :SnapchatAccount :SpotifyAccount :StravaAccount \n :TelegramAccount :TiktokAccount :TumblrAccount :TwitterAccount :WhatsAppAccount :YouTubeAccount :OtherAccount) .\n\n:AccountIdField a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for :BlueSkyAccount; ui:use :BlueSkyIdField ],\n [ ui:for :DribbleAccount; ui:use :DribbleIdField ],\n [ ui:for :DiggAccount; ui:use :DiggIdField],\n [ ui:for :FacebookAccount; ui:use :FacebookIdField ],\n [ ui:for :DiscordAccount; ui:use :DiscordIdField ],\n [ ui:for :GithubAccount; ui:use :GithubIdField ],\n [ ui:for :InstagramAccount; ui:use :InstagramIdField ],\n [ ui:for :LinkedInAccount; ui:use :LinkedInIdField ],\n [ ui:for :MastodonAccount; ui:use :MastodonIdField ],\n [ ui:for :MatrixAccount; ui:use :MatrixIdField ],\n [ ui:for :MediumAccount; ui:use :MediumIdField ],\n [ ui:for :NostrAccount; ui:use :NostrIdField ],\n [ ui:for :OrcidAccount; ui:use :OrcidIdField ],\n [ ui:for :PinterestAccount; ui:use :PinterestIdField ],\n [ ui:for :RedditAccount; ui:use :RedditIdField ],\n [ ui:for :StravaAccount; ui:use :StravaIdField ],\n [ ui:for :SharechatAccount; ui:use :SharechatIdField ],\n [ ui:for :SnapchatAccount; ui:use :SnapchatIdField ],\n [ ui:for :SpotifyAccount; ui:use :SpotifyIdField ],\n [ ui:for :TelegramAccount; ui:use :TelegramIdField ],\n [ ui:for :TiktokAccount; ui:use :TiktokIdField ],\n [ ui:for :TumblrAccount; ui:use :TumblrIdField ],\n [ ui:for :TwitterAccount; ui:use :TwitterIdField ],\n [ ui:for :WhatsAppAccount; ui:use :WhatsAppIdField ],\n [ ui:for :YouTubeAccount; ui:use :YouTubeIdField ],\n [ ui:for :OtherAccount; ui:use :OtherIdForm ] .\n\n:BlueSkyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Bluesky";\n foaf:userProfilePrefix "https://bsky.app/profile/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/bluesky-1.svg>;\n foaf:homepage <https://bsky.app/> .\n\n:DribbleAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Dribble";\n foaf:userProfilePrefix "https://dribbble.com/";\n foaf:icon <urn:profile-pane:icon:dribbble>;\n foaf:homepage <https://dribbble.com/> .\n\n\n:DiscordAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Discord";\n foaf:userProfilePrefix "https://discord.com/users/";\n foaf:icon <urn:profile-pane:icon:discord>;\n foaf:homepage <https://discord.com/> .\n\n:DiggAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Digg";\n foaf:userProfilePrefix "https://www.digg.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/digg-icon.svg>;\n foaf:homepage <https://www.digg.com/> .\n\n:FacebookAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Facebook";\n foaf:userProfilePrefix "https://www.facebook.com/";\n foaf:icon <urn:profile-pane:icon:facebook>;\n foaf:homepage <https://www.facebook.com/> .\n\n:GithubAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Github";\n foaf:userProfilePrefix "https://www.github.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/github-icon.svg>;\n foaf:homepage <https://github.com/> .\n\n:InstagramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Instagram";\n foaf:userProfilePrefix "https://www.instagram.com/";\n foaf:icon <urn:profile-pane:icon:instagram>;\n foaf:homepage <https://www.instagram.com/> .\n\n:LinkedInAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "LinkedIn";\n foaf:userProfilePrefix "https://www.linkedin.com/in/";\n foaf:icon <urn:profile-pane:icon:linkedin>;\n foaf:homepage <https://linkedin.com/> .\n\n:MastodonAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Mastodon" ;\n foaf:userProfilePrefix "https://mastodon.social/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/mastodon-2.svg>;\n foaf:homepage <https://joinmastodon.org/> .\n\n:MatrixAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Matrix" ;\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/matrix-logo-black.svg> ;\n foaf:userProfilePrefix "https://matrix.to/#/" ;\n foaf:homepage <https://matrix.org/> .\n\n:MediumAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Medium";\n foaf:userProfilePrefix "https://medium.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/medium-logo-wordmark-black.svg>;\n foaf:homepage <https://medium.com/> .\n\n:NostrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Nostr";\n foaf:userProfilePrefix "https://primal.net/p/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/nostr-icon-purple-on-white.svg>;\n foaf:homepage <https://nostr.net/> .\n\n:OrcidAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "ORCiD";\n foaf:userProfilePrefix "https://orcid.org/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/ORCID-1.svg>;\n foaf:homepage <https://orcid.org/> .\n\n:PinterestAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Pinterest";\n foaf:userProfilePrefix "https://pin.it/";\n foaf:icon <urn:profile-pane:icon:pinterest>;\n foaf:homepage <https://pinterest.com/> .\n\n:RedditAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Reddit";\n foaf:userProfilePrefix "https://www.reddit.com/user/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/reddit-4.svg>;\n foaf:homepage <https://reddit.com/> .\n\n:SharechatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "ShareChat";\n foaf:userProfilePrefix "https://www.sharechat.com/user/";\n foaf:icon <urn:profile-pane:icon:sharechat>;\n foaf:homepage <https://sharechat.com/> .\n\n:SnapchatAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Snapchat";\n foaf:userProfilePrefix "https://www.snapchat.com/add/";\n foaf:icon <urn:profile-pane:icon:snapchat>;\n foaf:homepage <https://www.snapchat.com/> .\n\n:SpotifyAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Spotify";\n foaf:userProfilePrefix "https://www.spotify.com/user/";\n foaf:icon <urn:profile-pane:icon:spotify>;\n foaf:homepage <https://www.spotify.com/> .\n\n:StravaAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Strava";\n foaf:userProfilePrefix "https://www.strava.com/athletes/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/strava-2.svg>;\n foaf:homepage <https://strava.com/> .\n\n:TelegramAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Telegram";\n foaf:userProfilePrefix "https://t.me/";\n foaf:icon <urn:profile-pane:icon:telegram>;\n foaf:homepage <https://telegram.org/> .\n\n:TiktokAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "TikTok";\n foaf:userProfilePrefix "https://www.tiktok.com/@";\n foaf:icon <urn:profile-pane:icon:tiktok>;\n foaf:homepage <https://www.tiktok.com/> .\n\n:TumblrAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Tumblr";\n foaf:userProfilePrefix "https://www.tumblr.com/";\n foaf:icon <https://solidos.github.io/solid-ui/src/icons/social/tumblr-icon.svg>;\n foaf:homepage <https://www.tumblr.com/> .\n\n:TwitterAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "X";\n foaf:userProfilePrefix "https://x.com/";\n foaf:icon <urn:profile-pane:icon:x>;\n foaf:homepage <https://x.com/> .\n\n:WhatsAppAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "WhatsApp";\n foaf:userProfilePrefix "https://wa.me/";\n foaf:icon <urn:profile-pane:icon:whatsapp>;\n foaf:homepage <https://www.whatsapp.com/> .\n\n:YouTubeAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "YouTube";\n foaf:userProfilePrefix "https://www.youtube.com/";\n foaf:icon <urn:profile-pane:icon:youtube>;\n foaf:homepage <https://www.youtube.com/> .\n\n:OtherAccount rdfs:subClassOf foaf:Account ;\n rdfs:label "Other" ;\n foaf:icon <urn:profile-pane:starIcon> .\n\n:BlueSkyIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*".\n\n:DiggIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-](.[a-z0-9A-Z_-])*".\n\n:FacebookIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:DiscordIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:DribbleIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:GithubIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:InstagramIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:LinkedInIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:MastodonIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:MatrixIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:MediumIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:NostrIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*(.[a-z0-9A-Z_-])*".\n\n:OrcidIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:PinterestIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:RedditIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:StravaIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "[a-z0-9A-Z_-]*".\n\n:SnapchatIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:SpotifyIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TelegramIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TiktokIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TumblrIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:TwitterIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:WhatsAppIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n:YouTubeIdField\n a ui:SingleLineTextField ;\n ui:label "Username";\n ui:maxLength "200" ;\n ui:property foaf:accountName ; \n ui:pattern "@[a-z0-9A-Z_-]*".\n\n# an unknown online account needs more info\n\n:OtherIdForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :OtherIdField \n :OtherIconField \n :OtherLabelField ).\n\n:OtherIdField\n a ui:NamedNodeURIField ;\n ui:label "Account link";\n ui:maxLength "200" ;\n ui:property foaf:homepage.\n\n:OtherIconField\n a ui:NamedNodeURIField ;\n ui:label "Icon link";\n ui:maxLength "200" ;\n ui:property foaf:icon.\n\n:OtherLabelField\n a ui:SingleLineTextField ;\n ui:label "Name";\n ui:maxLength "200" ;\n ui:property rdfs:label.\n\n# ends\n',Re=X`
|
|
29
|
+
<svg
|
|
30
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
31
|
+
width="16"
|
|
32
|
+
height="16"
|
|
33
|
+
viewBox="0 0 16 16"
|
|
34
|
+
fill="none"
|
|
35
|
+
aria-hidden="true"
|
|
36
|
+
focusable="false"
|
|
37
|
+
>
|
|
38
|
+
<path d="M13.3327 13.9999V8.66659C13.3327 8.31296 13.1922 7.97382 12.9422 7.72378C12.6921 7.47373 12.353 7.33325 11.9993 7.33325H3.99935C3.64573 7.33325 3.30659 7.47373 3.05654 7.72378C2.80649 7.97382 2.66602 8.31296 2.66602 8.66659V13.9999" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
39
|
+
<path d="M2.66602 10.6667C2.66602 10.6667 2.99935 10 3.99935 10C4.99935 10 5.66602 11.3333 6.66602 11.3333C7.66602 11.3333 8.33268 10 9.33268 10C10.3327 10 10.9993 11.3333 11.9993 11.3333C12.9993 11.3333 13.3327 10.6667 13.3327 10.6667" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
40
|
+
<path d="M1.33398 14H14.6673" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
41
|
+
<path d="M4.66602 5.33325V7.33325" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
42
|
+
<path d="M8 5.33325V7.33325" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
43
|
+
<path d="M11.334 5.33325V7.33325" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
44
|
+
<path d="M4.66602 2.66675H4.67268" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
45
|
+
<path d="M8 2.66675H8.00667" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
46
|
+
<path d="M11.334 2.66675H11.3407" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
47
|
+
</svg>
|
|
48
|
+
`,Ue=X`
|
|
49
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
50
|
+
width="16"
|
|
51
|
+
height="16"
|
|
52
|
+
viewBox="0 0 16 16"
|
|
53
|
+
fill="none"
|
|
54
|
+
aria-hidden="true"
|
|
55
|
+
focusable="false"
|
|
56
|
+
>
|
|
57
|
+
<path d="M13.3327 6.66659C13.3327 9.99525 9.64002 13.4619 8.40002 14.5326C8.2845 14.6194 8.14388 14.6664 7.99935 14.6664C7.85482 14.6664 7.7142 14.6194 7.59868 14.5326C6.35868 13.4619 2.66602 9.99525 2.66602 6.66659C2.66602 5.2521 3.22792 3.89554 4.22811 2.89535C5.22831 1.89516 6.58486 1.33325 7.99935 1.33325C9.41384 1.33325 10.7704 1.89516 11.7706 2.89535C12.7708 3.89554 13.3327 5.2521 13.3327 6.66659Z" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
58
|
+
<path d="M8 8.66675C9.10457 8.66675 10 7.77132 10 6.66675C10 5.56218 9.10457 4.66675 8 4.66675C6.89543 4.66675 6 5.56218 6 6.66675C6 7.77132 6.89543 8.66675 8 8.66675Z" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
59
|
+
</svg>
|
|
60
|
+
`,He=X`
|
|
61
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
62
|
+
width="14"
|
|
63
|
+
height="14"
|
|
64
|
+
viewBox="0 0 14 14"
|
|
65
|
+
fill="none"
|
|
66
|
+
aria-hidden="true"
|
|
67
|
+
focusable="false"
|
|
68
|
+
>
|
|
69
|
+
<path d="M11.254 3.08785C11.4818 2.86004 11.8513 2.86004 12.0791 3.08785C12.3066 3.31559 12.3066 3.68451 12.0791 3.91226L5.66216 10.3292C5.55282 10.4385 5.40458 10.5 5.24996 10.5001C5.09525 10.5001 4.94646 10.4386 4.83707 10.3292L1.92085 7.41226C1.69305 7.18445 1.69305 6.81565 1.92085 6.58785C2.14866 6.36004 2.51746 6.36004 2.74527 6.58785L5.24927 9.09117L11.254 3.08785Z" fill="#7C4DFF"/>
|
|
70
|
+
</svg>
|
|
71
|
+
`,Ye=X`
|
|
72
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
73
|
+
width="14"
|
|
74
|
+
height="14"
|
|
75
|
+
viewBox="0 0 14 14"
|
|
76
|
+
fill="none"
|
|
77
|
+
aria-hidden="true"
|
|
78
|
+
focusable="false"
|
|
79
|
+
>
|
|
80
|
+
<path d="M2.91602 7H11.0827" stroke="#314158" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
|
|
81
|
+
<path d="M7 2.9165V11.0832" stroke="#314158" stroke-width="1.67" stroke-linecap="round" stroke-linejoin="round"/>
|
|
82
|
+
</svg>
|
|
83
|
+
`,Oe=X`
|
|
84
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
85
|
+
width="12"
|
|
86
|
+
height="12"
|
|
87
|
+
viewBox="0 0 12 12"
|
|
88
|
+
fill="none"
|
|
89
|
+
aria-hidden="true"
|
|
90
|
+
focusable="false"
|
|
91
|
+
>
|
|
92
|
+
<g clip-path="url(#clip0_3001_2564)">
|
|
93
|
+
<path d="M6.06055 0.10083C6.53372 0.101056 6.91793 0.485037 6.91797 0.958252V5.20532H11.165C11.6384 5.20532 12.0225 5.58936 12.0225 6.06274C12.0223 6.536 11.6383 6.92017 11.165 6.92017H6.91797V11.1663C6.91797 11.6395 6.53374 12.0235 6.06055 12.0237C5.58716 12.0237 5.20312 11.6396 5.20312 11.1663V6.92017H0.957031C0.483929 6.91994 0.0997601 6.53586 0.0996094 6.06274C0.0996094 5.5895 0.483837 5.20555 0.957031 5.20532H5.20312V0.958252C5.20316 0.484897 5.58718 0.10083 6.06055 0.10083Z" fill="#7C4DFF"/>
|
|
94
|
+
</g>
|
|
95
|
+
<defs>
|
|
96
|
+
<clipPath id="clip0_3001_2564">
|
|
97
|
+
<rect width="12" height="12" fill="white"/>
|
|
98
|
+
</clipPath>
|
|
99
|
+
</defs>
|
|
100
|
+
</svg>
|
|
101
|
+
`,qe=X`
|
|
102
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
103
|
+
width="13"
|
|
104
|
+
height="13"
|
|
105
|
+
viewBox="0 0 13 13"
|
|
106
|
+
fill="none"
|
|
107
|
+
aria-hidden="true"
|
|
108
|
+
focusable="false"
|
|
109
|
+
>
|
|
110
|
+
<circle cx="5.5" cy="5.5" r="4.5" stroke="#99A1AF" stroke-width="1.2" fill="none"/>
|
|
111
|
+
<path d="M9.1 9.1L12 12" stroke="#99A1AF" stroke-width="1.2" stroke-linecap="round"/>
|
|
112
|
+
</svg>
|
|
113
|
+
`,Ve=X`
|
|
114
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
115
|
+
width="20"
|
|
116
|
+
height="20"
|
|
117
|
+
viewBox="0 0 20 20"
|
|
118
|
+
fill="none"
|
|
119
|
+
aria-hidden="true"
|
|
120
|
+
focusable="false"
|
|
121
|
+
>
|
|
122
|
+
<path d="M8.33301 9.16675V14.1667" stroke="#D1D5DC" stroke-width="1.45833" stroke-linecap="round" stroke-linejoin="round"/>
|
|
123
|
+
<path d="M11.667 9.16675V14.1667" stroke="#D1D5DC" stroke-width="1.45833" stroke-linecap="round" stroke-linejoin="round"/>
|
|
124
|
+
<path d="M15.8337 5V16.6667C15.8337 17.1087 15.6581 17.5326 15.3455 17.8452C15.0329 18.1577 14.609 18.3333 14.167 18.3333H5.83366C5.39163 18.3333 4.96771 18.1577 4.65515 17.8452C4.34259 17.5326 4.16699 17.1087 4.16699 16.6667V5" stroke="#D1D5DC" stroke-width="1.45833" stroke-linecap="round" stroke-linejoin="round"/>
|
|
125
|
+
<path d="M2.5 5H17.5" stroke="#D1D5DC" stroke-width="1.45833" stroke-linecap="round" stroke-linejoin="round"/>
|
|
126
|
+
<path d="M6.66699 5.00008V3.33341C6.66699 2.89139 6.84259 2.46746 7.15515 2.1549C7.46771 1.84234 7.89163 1.66675 8.33366 1.66675H11.667C12.109 1.66675 12.5329 1.84234 12.8455 2.1549C13.1581 2.46746 13.3337 2.89139 13.3337 3.33341V5.00008" stroke="#D1D5DC" stroke-width="1.45833" stroke-linecap="round" stroke-linejoin="round"/>
|
|
127
|
+
</svg>
|
|
128
|
+
`,Qe=X`
|
|
129
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
130
|
+
width="18"
|
|
131
|
+
height="18"
|
|
132
|
+
viewBox="0 0 18 18"
|
|
133
|
+
fill="none"
|
|
134
|
+
aria-hidden="true"
|
|
135
|
+
focusable="false"
|
|
136
|
+
>
|
|
137
|
+
<path d="M6.75 9.75C7.16421 9.75 7.5 9.41421 7.5 9C7.5 8.58579 7.16421 8.25 6.75 8.25C6.33579 8.25 6 8.58579 6 9C6 9.41421 6.33579 9.75 6.75 9.75Z" stroke="#99A1AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
138
|
+
<path d="M6.75 4.5C7.16421 4.5 7.5 4.16421 7.5 3.75C7.5 3.33579 7.16421 3 6.75 3C6.33579 3 6 3.33579 6 3.75C6 4.16421 6.33579 4.5 6.75 4.5Z" stroke="#99A1AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
139
|
+
<path d="M6.75 15C7.16421 15 7.5 14.6642 7.5 14.25C7.5 13.8358 7.16421 13.5 6.75 13.5C6.33579 13.5 6 13.8358 6 14.25C6 14.6642 6.33579 15 6.75 15Z" stroke="#99A1AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
140
|
+
<path d="M11.25 9.75C11.6642 9.75 12 9.41421 12 9C12 8.58579 11.6642 8.25 11.25 8.25C10.8358 8.25 10.5 8.58579 10.5 9C10.5 9.41421 10.8358 9.75 11.25 9.75Z" stroke="#99A1AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
141
|
+
<path d="M11.25 4.5C11.6642 4.5 12 4.16421 12 3.75C12 3.33579 11.6642 3 11.25 3C10.8358 3 10.5 3.33579 10.5 3.75C10.5 4.16421 10.8358 4.5 11.25 4.5Z" stroke="#99A1AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
142
|
+
<path d="M11.25 15C11.6642 15 12 14.6642 12 14.25C12 13.8358 11.6642 13.5 11.25 13.5C10.8358 13.5 10.5 13.8358 10.5 14.25C10.5 14.6642 10.8358 15 11.25 15Z" stroke="#99A1AF" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
143
|
+
</svg>
|
|
144
|
+
`,Ze=X`
|
|
145
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
146
|
+
width="30"
|
|
147
|
+
height="30"
|
|
148
|
+
viewBox="0 0 30 30"
|
|
149
|
+
fill="none"
|
|
150
|
+
aria-hidden="true"
|
|
151
|
+
focusable="false"
|
|
152
|
+
>
|
|
153
|
+
<rect width="30" height="30" rx="5" fill="black" fill-opacity="0.2"/>
|
|
154
|
+
<path d="M14.1093 6.74536C14.4804 6.01811 15.5196 6.01811 15.8907 6.74536L17.7665 10.4209C17.9118 10.7056 18.1844 10.9037 18.5001 10.9539L22.5754 11.6021C23.3817 11.7303 23.7028 12.7186 23.1259 13.2963L20.2099 16.216C19.984 16.4422 19.8798 16.7627 19.9296 17.0785L20.5726 21.1546C20.6998 21.9611 19.8591 22.5719 19.1314 22.2017L15.4534 20.3307C15.1685 20.1857 14.8315 20.1857 14.5466 20.3307L10.8686 22.2017C10.1409 22.5719 9.30023 21.9611 9.42744 21.1546L10.0704 17.0785C10.1202 16.7627 10.016 16.4422 9.79012 16.216L6.87413 13.2963C6.29716 12.7186 6.61827 11.7303 7.42462 11.6021L11.4999 10.9539C11.8156 10.9037 12.0882 10.7056 12.2335 10.4209L14.1093 6.74536Z" fill="#F4F4F4"/>
|
|
155
|
+
</svg>
|
|
156
|
+
`,Xe=X`
|
|
157
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
158
|
+
width="12"
|
|
159
|
+
height="12"
|
|
160
|
+
viewBox="0 0 12 12"
|
|
161
|
+
fill="none"
|
|
162
|
+
aria-hidden="true"
|
|
163
|
+
focusable="false"
|
|
164
|
+
>
|
|
165
|
+
<g clip-path="url(#clip0_3001_349)">
|
|
166
|
+
<path d="M6.06055 0.10083C6.53372 0.101056 6.91793 0.485037 6.91797 0.958252V5.20532H11.165C11.6384 5.20532 12.0225 5.58936 12.0225 6.06274C12.0223 6.536 11.6383 6.92017 11.165 6.92017H6.91797V11.1663C6.91797 11.6395 6.53374 12.0235 6.06055 12.0237C5.58716 12.0237 5.20312 11.6396 5.20312 11.1663V6.92017H0.957031C0.483929 6.91994 0.0997601 6.53586 0.0996094 6.06274C0.0996094 5.5895 0.483837 5.20555 0.957031 5.20532H5.20312V0.958252C5.20316 0.484897 5.58718 0.10083 6.06055 0.10083Z" fill="#7C4DFF"/>
|
|
167
|
+
</g>
|
|
168
|
+
<defs>
|
|
169
|
+
<clipPath id="clip0_3001_349">
|
|
170
|
+
<rect width="12" height="12" fill="white"/>
|
|
171
|
+
</clipPath>
|
|
172
|
+
</defs>
|
|
173
|
+
</svg>
|
|
174
|
+
`,Ge=X`
|
|
175
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
176
|
+
width="64"
|
|
177
|
+
height="64"
|
|
178
|
+
viewBox="0 0 64 64"
|
|
179
|
+
fill="none"
|
|
180
|
+
aria-hidden="true"
|
|
181
|
+
focusable="false"
|
|
182
|
+
>
|
|
183
|
+
<path d="M32.0007 58.6666C46.7282 58.6666 58.6673 46.7275 58.6673 31.9999C58.6673 17.2723 46.7282 5.33325 32.0007 5.33325C17.2731 5.33325 5.33398 17.2723 5.33398 31.9999C5.33398 46.7275 17.2731 58.6666 32.0007 58.6666Z" stroke="#CBD5E1" stroke-width="5.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
184
|
+
<path d="M32 34.6667C36.4183 34.6667 40 31.085 40 26.6667C40 22.2485 36.4183 18.6667 32 18.6667C27.5817 18.6667 24 22.2485 24 26.6667C24 31.085 27.5817 34.6667 32 34.6667Z" stroke="#CBD5E1" stroke-width="5.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
185
|
+
<path d="M18.666 55.0986V50.6666C18.666 49.2521 19.2279 47.8955 20.2281 46.8954C21.2283 45.8952 22.5849 45.3333 23.9993 45.3333H39.9993C41.4138 45.3333 42.7704 45.8952 43.7706 46.8954C44.7708 47.8955 45.3327 49.2521 45.3327 50.6666V55.0986" stroke="#CBD5E1" stroke-width="5.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
186
|
+
</svg>
|
|
187
|
+
`,Ke=X`
|
|
188
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
189
|
+
width="48"
|
|
190
|
+
height="48"
|
|
191
|
+
viewBox="0 0 48 48"
|
|
192
|
+
fill="none"
|
|
193
|
+
aria-hidden="true"
|
|
194
|
+
focusable="false"
|
|
195
|
+
>
|
|
196
|
+
<path d="M24 44C35.0457 44 44 35.0457 44 24C44 12.9543 35.0457 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44Z" stroke="#E5E7EB" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
197
|
+
<path d="M24 4C18.8645 9.39231 16 16.5535 16 24C16 31.4465 18.8645 38.6077 24 44C29.1355 38.6077 32 31.4465 32 24C32 16.5535 29.1355 9.39231 24 4Z" stroke="#E5E7EB" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
198
|
+
<path d="M4 24H44" stroke="#E5E7EB" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
199
|
+
</svg>
|
|
200
|
+
`,Je=X`
|
|
201
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
202
|
+
width="33"
|
|
203
|
+
height="36"
|
|
204
|
+
viewBox="0 0 33 36"
|
|
205
|
+
fill="none"
|
|
206
|
+
aria-hidden="true"
|
|
207
|
+
focusable="false"
|
|
208
|
+
>
|
|
209
|
+
<path d="M4.48242 29.6799H28.4824V5.67993H4.48242V29.6799Z" fill="url(#pattern0_1101_13838)"/>
|
|
210
|
+
<defs>
|
|
211
|
+
<pattern id="pattern0_1101_13838" patternContentUnits="objectBoundingBox" width="1" height="1">
|
|
212
|
+
<use xlink:href="#image0_1101_13838" transform="scale(0.00625)"/>
|
|
213
|
+
</pattern>
|
|
214
|
+
<image id="image0_1101_13838" width="160" height="160" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAApD0lEQVR4nO2dd5Qc13Xmf6/qdQ7TkzEBM4MMIpAECSaIFKlkiQ6yvPY675FA2aa9sqxEgqIoyZJlkZC9x2e9a68ky15LXsu2RIoKFGVSFAmACSCJQILIOQOTU+fuqto/XtV0TWOQRMxUz0x/5/T0dMX7ur6+993w3oMqqvAQwmsBqvj50P93/ntrwoV1umHdB3zfa3l+XkjrG16LUMWVoggPajL/sAYp8pzwWp63AkneaxGquCKE+aK0+DwWkOdxdLZ5LdJbgUT3WoQqLhthvoTBZzEBizwG/+a1SG8VEsNrEaq4LNTwlxR4iKL92eApLJ7xVKarAInltQhVXBK1fIkCD2GA/byKmHwDbfqrD4nmtQhVXBBxBPCXGHyGAmAAGmDyE0z+01vhrg4kptciVDEhal3ky4FL180Y7QdVDViZqEEg+DIGD5KHMdOrA9bM0X5Q1YCVh7oxzafIV0SRT6UMChj8w0zRflDVgJWFBAJhm908UIAxJ1EDLJ60DJ7yTsCrD2nNmN/S9Iaod5ndHIp8JkrzqVfeKMws7QcgzaoG9Bx6bVmfrwhjXSMLkGCa4gmjKGaU9gOQRrHKQC/hbzTP13xFHIdDmV6NnJEXXxczMGorhfRahNkLX60p0FwORwEwBcR8kCmAaSntZ2g/0H3TP+sxEaTu81qE2Qktbgrgy5iuUIsJtEfAEDCaBx+giVQh6/+ap8JOImQh7/dahlmHQGNWmV2LB8fCLAYwLwINcdjZrUyvDwpF+V3Nb2z0VOBJhNT8M8qpqnj4agoCzdZ8RZSHawItAVjRCjt6oGCAHyyhDWayoX/wWORJhcxkQ17LMGsQbx5R5IMHx4IpBpCQcPt8OJmB7mFleiXkcuF/9wfNLd5JPPmQ/mA1FTIVCNYkx5NPoMgX0eDOBWD6YM8h5f3qYAn9XC4/s7UfgMzlqxpwslHT2CvQeBj49DjyBQSsmQcNtfCz/ZAtjBEwnwv+azCUfsNTwacAMhhKey3DjEYgknI0X4l8FsrM3tAOrXNg/xk4PQhS7TfxH8/mYv/kpdxTBZnNxbyWYcaipu7c+ZrPwfI5sGAeJNOw/1wp5SYhk458SwZy+zwReoohZSDntQwzEpHwYIl8BRgr+jCBJXWw7BogCPsPw2BGmV4NCkboQDId/aZHYk85ZDId9VqGGYfmhpPamNl1Qi1Ov29hDK67HuiE3l1w+FzJLOuQHE38sz9YPOqZ8FMM6Q8WL31UFZeN2shZMY58oAhWBBZEYNUq0FYDp2HfQUgZSvtJyFrxN/uS0X/xSnYvIPuSVQ14tbCo+aAyu5bd5wNleotAVxBuWAny3YAPTj4Fx4dK/cKAzrn+1n/0RTjjhexeQfoi1YHBVwNd0X2lPp+j+XSU2W31w40rwfd+YBEUvw9790POPiYIQ8WmV48PzPm2R+J7Bnl8YI7XMkx73NmxsaT5ysnXIGH1Sgj+BnAbsA0ObYHTubGYH8Egh07N+1oklu/3qAmeQUZi1bk53gpW175cIl/B3iixU2wa3LQCYr8DvB0YgOSLsPeY8oZ1IAK9hdbnT/TPedSbFngLeaK/qgF/XvzagseVt2vxaXKMxfEwgChw8zKo+x3gLnvnTti3BfpNdZwEKxjlbHfb1xa29ya9aoeXkAvbe72WYVpiReAFMY58duk8BhAGblkMTb8JvNPecAj6NsDB08oxEQLignO59md6h+OPe9YQjyF7h+NeyzDt8I7mJzWh8bCweIA8JfKZQBC4ZQG0/AbwHqAGGAK2wt5XIQX4NAhIjHDcPHy49auBUGbWZgNkIJTxWoZphTXx50rky6FI5wxr8AGrOqD9V4D3AY0oV/cYnNoAx/oV+QhCjcbJVNdPTg01PuFFOyoF8tRQo9cyTBv85tzvCKHxsMAmn4FdNm+/rm2BhXcDvwS02meNgPEy7Nmmxnz4wxDSKIRihd1HO74aixVmdSZAxmKFSx9VBXcnHtfGkc8E/JS039IGWPYu4FeALhQj08AuOPoMnEmDLw7CB7VFDg/N+9HJ3roZM8XGzwt5srfOaxkqHn+06B81odvkc/p8ARQBLWBBAq59B/BrwCKUWiwCpyHzU9hzAAiDFoCoRd5Xm911vPVrDYmRGTfM8kohGxIjXstQ0fi1hu+WyOcYiyCKgBbQEYPr7gDtA8A1lFiZBLbC/s3QL5Tp1XWoMznQ2/m9pXO7f+ZFeyoNcuncbq9lqFgsyWwS48jnaL4AKqzXEoGVt4D+q8B1KGaC6uwdhcHn4EAP6GHQdKixSImakW2H5szYYZZXCrntUDUQPRF+p+07QpM8ojlmV1DSfBpQH4IV14P/V4DVqFifU1c1BGyGPTsg6YNwQGm/hMHuU/P+45p5gy960qgKhLxm3qDXMlQcrs3/VNN0HtYdhwOUZQ2iyBcLwPJlELobWAPEKBX95YD9cOZZOJqCQByEBjVFhop1vS/ubpnxA42uBPLF3S1ey1BR+MMF39J0Hw9LUeZwhFC527AfViyA+LtRWY5a7NQGyjXuAfM52LUfCiGI+kBqUAP7TrR/e83y09N6WYWrDblm+WmvZagYLMxs0KSPh30aD5ClRL4wKtwS1GFFJ9S9ExVobkKx0inqywA74MgmOGdCJARCh3iBwUL9qZPnmmbFQKMrgTx5rslrGSoCb4v/QAuErIdDGg+QYbzmk0BAg+Ud0HAn8MvAXEqaD1TY5SRkn1WDjGQUpK7OjQv2Hmn7l7amvl1T37LKhmxr6vNaBs/RltqihYLGw1G/+QAplCV1yOdHmdAlHdB8O/B+YD7jyWcCI8ArcHArDPsg6Lf7fgV6s02HD51q/eepb1nlQx461Xrpo2Yw3lbzYy0SKzycCOUeEG7yhe13IWBBO7TfhiLfIkrpD1CqsggcgaFn4cgw+GpA18BnQVTnzb2d32xvHjg0xU2bFpDtzQNey+AZWtOvatFo7uH6cPYBkUTxyIciXwjFrc5WmHcTKsW23D7AmTkSFGMHgBfgwG7IBCFijzCvyXM21bJn77HGb01x06YN5N5js7MY4bamZ7R4PPtIUyy5ToxYkKek+RzytbXAohtB/DJwLaUINJRmD88Be6B7E5xOQrhO+SU+A8J+3ni9/Z8WtPWcnNrWTR/IBW09Xssw5QgVdmu1NelHWuLD68SwpRIXPlScL4ji1pxGWHItaHcDN9g7ypdXtsMu1iY4uM92XApgCUgYnBru2HHweP2/TmHTph3kweP1XsswpVjSukVrqks+3BnvXyeGbPL5KaXYLKCxDpZeB/J9wM2Mz3K4NWAG2AknNkNfFqICRFppv0CU7W90/kNne3L2/cKvALKzffYMRQiau7XW+pFHFtf2rdP6LMhSynA4mi+egKXLwf9uxmc5HDim1wTOQO4FOHzYntPPAjMDNSaHexe+vONA4t+nrHHTFHLHgYTXMkwJblvwgtbaOPLINXU96/ReUykvHyXtZwKRBCxfAuG3A3cwPstRjhFgKxx/GZKG4qkFBC3whXn5zc6vzm8dGp6Ktk1nyPmtQ17LMOmYE92ttdSNPLy0tnud3mOqcRn2qDR82HP1xWHFPIjfArwLaGBi8gnGql1SG6D7tBoBp1axhDgcPNv17LZ9td+bouZNa8ht+2q9lmFS8UurX9Ra6oYfWVrTvU72mKpMz02+AuCPwcpOqL8eeC/QxvgUmxsmMAi8Cie3lbxnAwiBqcetQycXfe29N49UB9tcBuR7b565Bal+8w1tTt3I+iU15+6XvTb5nPEbjuYjCiu7YM5S1FiOBSjyOXA7HqDCLgdhcCP0DKrrYF8zBofOLHjqZHfNjya1YTMI8mR3jdcyTAoWNm3U5tSNrl8c775fOmYXFLecomUjAKvmQuc8FPmWcX6Ww4Ezv1ovWM/DyTdLWRP7vWDFim8eWvS1+sRQdbqJy4SsTwx5LcNVR8L/hjandmT9kljP/bqj+QQl7WcCBQnXdsCSTuBuVFGps2aKE3Jxw0QNMtoJPS/AUEaRD8a038Hj1/z4VE/rk5PcvBkFeapnZuWCr537lNacGFm/JG6TL0WpVlQteQopCdd2qRfvRU0aFHRdpVzzgdJ+p6C4Cc4cHJvR1BmMnjdq8m8cWPK1prr+6sIrVwDZVDdzJmRqjb2iNdWMrl8c7R5PPij5FEkNlnXC6k5UQekdQOQSV7ZQYZdtcG4zZIyS6dWAKOzdN/8Hy7p2PT0pDZvBkMu6ZkaJ2vDAiNZck3xkYbSvRD4HjrZKCZjfBWvaQbsdNWnQhaYmcZvhAnAEMhuh50xpMDpAAHL5mszO/Qu+frXbNBsgd+5f4LUMbxldTTu05kRy/cJI73jyCUrkSwNt7fD2NvDfBrwbqOP84gJc2xzHox94Fc5tVxUzjhOjAyE4eGDuY6uW7XtuMts4UyFXLZveqwEM96e1hprUI2PkczKLTp9PR2U9GprhzjkQvhb4BVQ5vRNovtD4cAuVrzsEI8/D4FBJ+9kTEuVTod6h7tD/nrQGznDIoe7pu1KSLnu1pprUI/PD/evGkc/hlY7iT6wR3tEBNatQ5fStXFzzOSiiBhlthm67qyJdh2qQz7BvXvR4MmSl5hkF6S/kdcyCDyMvMAwfWCAwLSxTgIEQASzLBEw0oWNhYlkCTViWXWcoBCYWliWEJrBACHNMUmEZ9nb1CSEcaSxNWJhoCKFZqiRHIDTdQmCpQ32WkBJdE5a6v4VuFS1pFdDNArpZtCwraVlW3pA6SaHhVElOGkTxG5N5+cnDa8FOrSGeXj8v3F8yu07M2JkosgD46+E986FlOWrqjMWUAs3lFS4wnpjDwGbo/3s4sW98csS+j5UjS5oRq6gpXhlAUWAV7f/LfeJyZVt+e1DOzQUkEpbrDPe5pS0gXHsEFkJY7v3CEhaGZcuKJQyb+5ZlgWWiC/BTpGj+C/AlJhFSC1z6oErDa1qH1hhLPdIVHrhf77PJZ1Iin44in5aAOzqhZQkq0LyQ8eS7GArAWShsgt5948M4rsiMEAQJEhRFU8kwRkL7Es6MCg6sCT5T9tlpR/n28v8v9u5+ma7/Dde7I68Dp8sS1EGzTpomkz5kUlrTbLHM1/1tWkMs9UhncLBkdp2H5gSai0AxAm+fB/Mc8i2hlDeDift9jkZ0wi6vQ++LpcoZKJHQuafD53IZyi/pvq3J+WSh7Jjy803XPvc1nWsZjCeac47zYzAZf9/yZjuE9wOGdcTKar8v0DZPcPRVhRSG79JHVQhejzRo9dH0+vbAsNJ8SdQX7JhGx2nNB+HWebBsIWr8rjNp0ESYSBNmgCOQ+hkMnCsRys1P9+nSlsFNAD8lbVNOIFzbyslYjolINRHJnPsXXducd7ccF2q2QBVT+PS95PwfBF6bQJqrDmmNy31WLnZGa7S6aGZ9u3/4fr3XglFKZhdKExNkJayeDzcsQoVaVlAqpy9/wuN6V5RGuPUDW6Bva2mgEq7TJ+KsW4s4xJCcTz73C8abwYmO1cu2m2Wv8vu7zb/TDy1vrvv6wm5fFIoEXjMzvnuAKQsOy6JZ+QvVHEhEtLpwZn2bf6REPvdKRGMTE+iwch7cMh+V5VhFqZzegZslE6mcAnAOhjfDcKrk9V7IdOHaL8q2O+e4+47lptfZZ5Z9Ln+5/SX3y32/AqpYJwfjlglzy+7WuBoqoxODvBHckB2N3gMcm6ClkwaZLQQvfZSHONVkaYlIZn2LL3m/3lNGPveDyGiwuAveNh/EnajiAqdS1A33U3Q/XWefAcV90L23pGHL+8nlBLuQBis3l+5zJjLnuLa5NZ7bYSj/7JzvaD1T2H1Ra/z9y69vr9BEDLL5wPdTQ7H/DpxjiiELhUt5g96ht93UEuHcV+bI1H2aQ74iJU3h8CgNzO2AOzrAtwa4FZVic3sIcD5zJuoIAfnTUEyVsigX+4qcfHA5r+F87ePculyjOXD31TTXu/O/0/Yxs6yBEHZRRACSfjAyUMyNJ6dzL8P2kqQFYRMikE6H/2m4P/BJKHpSGCrz+cqcIzu5UGiJUP4rTXrqPs1tdss70imgsQ3uaoHwDajigjrOJ5/z/0R2001MCaF3wQINzBSIDDAMwllx2gTLreYcQSxFhjHGaGA5n4W9zz7OMl2fnYCisMUpV5cuO2thnwdQBCsDeh70NOwYgp4C5LOKaGPNcq4t1SSZugHhHFYEjHzgbzKjgQf9fjyrX5T+CzmHHiI5z9TigeL6RpEukc/x7qD05aaAmkZ4TzMklqHGcjgzVsGFNV853A9aB3EdBBaj3Ow0Kp3iXvjXgZtEjrqi7Dj3/nKnhwneJ5K7/DqOo7QVeBN298CuHJgWiCBIH5hmidSWBpoArQiRAmZQWOlk6Et6UXwxHMx7GoiT4WBlFe8OtRS1aFBbX0vufq3PUuE4J5jrVlhZwF8L75wDjV2ootIOJi6nv5QWdMO96Ef5kMwL/e/+XH798vtMdI1yD+NiMFA/jFHgLOzeB68UQQRAL4Bhm+WxPqZV6hPGchgBLT/QH3sQ+JtL3GhKIJNW5ahArW1IC/n19XErf7/W7yJfuedWBIjBnY3Q1QT8IirQXD6Q6GKEmWjbhbTSlfSTJ9JaF7vHxeQr32egRkEdA56CfS/B1gLoNvmKrj6Kk1oWgC6g3qAg/aNnTkY/CfzjFTRoUiHThcoIRNfN79E0H18Jm8X7xAClILPbIxTYWY4A3NEAK+pRgeabuLxA84XCMRcj2qXId6H9E5HPrcYv5FpP9Nn5EtLAQeD7cPgp2J4HLaRMa9Es87ht50QCTTDii3Xv2+P7CFBRw0Vld977aphrrzmuIflKwOA+MYT6np0gqvs5mUBRwKoE3JRAORxrKBXouR+sm2ATmcUr0UDOdS5mIi/Uvyy/h8sxmdAVLr8fqC8iAxwGnoAj/wnbcqCFQStA3rI1njXe0vsFNEM6GDq2fWfjWnQ2XoaQUwqZ1ms9FeCOpa/rpsZ6aXCfGKZEvomeZxFYUgt31IHWhnI4TsG4nHl5X8vtKDj7y9MJ5Tcrdy4mCqS54agatxPivpZEBcQTqNikjupjlss1UV/QId8R4Ak49iRszYAVHU++sZif7XGHLJgDA0Z0d++p6NqWuvyUpNauFLKlzjsnZEnzHt0UfEUafEqMohyL8uCpK+rAHIl1WwICEZSN3sB4raceXkl3WFh2SESMbTERY9HcC0WLBaUgYLkGdRPWua9DKDcJnXNUiYlFCEEDghuA6+GCKdBy8mVRfb4n4MQT8FoSTId8pqsIwaX9QkCr4Gwq/urBw9G1wJ4L3MxzyO4Bb1Jxb1/+pg58RSvyKVKovvXFEvM6YFgYr/ZjMoKqhSpTlcJC00XJwmlqm/NMhRDjQ2lw+c5s2Wdr7Fih7nHe5awS6S0wcwWMqEFg1e8i9JWUyO2cVf6LM1E5tcPAjxT5XhmFYhT0IhRMFXZxiGfZjYwArXB8sG7DG3sSU55au1LIoeTUp+Lef+trEvgrinyCDIp85ekmOF8x9RnIM8N2MbDrgg7BHEXkvNxdLff/5daZsmtdCBN1CyY63y2z3R49CWLBIiyxAnFeYeFEZjcPHAIeg1NPwStJKERAFqFoKfKZtulFqDhf2IIWnQPn4o+/tjP2ETCmPLV2pZCj6akdxvp779ruA/6KAh8fRz7n5c53TqQFwyXFA65jnOk2nJc9S+64+jzHsk6EK/VJyo+7UDfRQnXhOmuRt98G2jWcP/tCucOUBw4Aj8GZp2CLTT7dUJrP6fO5yRezoFGy62TDN7bsCH0KFSiseMhM7kpiXG8N99y9LYjgf1DgI2RR37O7crjI+IzHRBpnotiys7385d4+EVEuR9u91a+niOqzrr4eotcBzZQcEOcGbrNbQJndH8DZp2FzCnJhkAYYtskdiw4I9YNKWBRr/XQP1fzNoaPxTzckxpZVrHjIhsTUxAHfe/MrMaHxtxRYS5YS4QqUiOiQr7wfeDkxWrdz66Rt3bV0bqe2vEDmQtd0yzDRvon2uz+bqMzEigUwZzVqqt8EE6thN/l+qMj38ihkw6p4wCHf2PcjQApIWOTjPnP/8fq/KGZ9X+pszk6rGnfZ2Zyd9JssnLtrsU/yOWHw+2RQfeu8691dPDmRhrrcEJ7jkzhE1CklRxxTLOz7lPcJL6YZJ3JGLkZSZ1sGmNcBy25AxSubKf0q3Bd2SpmPAD+C7v+ElwYV+fyWHWQuI58uoM4iHw3mtu9v+DTwP88Pblc+ZM6cfKHDMeOLumX9NmlKITPnGTizVZVX+MKVmz+3w1HeB3QTsPwFE4fwyj+7/3eXurv3OSTJAIl6uG45iDWoad/ckx+5WV9E9fl+CD1PwYsDkAmD3wTDLF3XRHm7uoB6i3TAP7LljfpPgPV/L/MbqjjIdPZyIvhvDZpu9ZkGvSKIiQ+hhsVqlmVhmSaW8xzG9YpUEt0J3tk7LTVktvTwhH3u+VS147GIsau4Ta+YgICi/PyJYIEQBpYxKgzNsGo1zS7Yd8e0c4AegRtXQGwNai3hUNkNnc6pgfJ2vw89P4UX+yEdAp9NPqvs2j4B9TCsRc++sDXxJ8APJ5Z0ekCms5PvhBSyrMvnWS+EiJoGolDUraLhp0jANC1dDUc1ipamWWiaLjTLRMNAs4ezalYBIUyEZQkVw9NUuREaWIZQNXo2u4Q1nrQCwdiwWOHEBZUj7eKD0BhPVofyKOvnQNcQyVHf0MhgdEVH/fC/asKsG1tV08Lu1+pw3XxoXQXcgur3lYdcHPIdBh6H3mfgxUEYDUHAFWIZN9BJQIMgJcNHt7zestbnY9NbfzreQvp8k58L3rD9lgxM/hjTqcSSmqN/5tPNOrKMDx9lgUWdsOJGVK66lfOrdJyDjwM/gL6nldlNBlSfz+1wmPavxA80QW8+suvM6ejaObXJrVPW2EmEnFM7e5ZpuFrIjli/3lbb94mxUJKjpbJAYz2sXgbabah+nzvkAiXNdxr4EfQ/DS/0w3BQjdEwTEU6p7+HUAOHmjROj9a8sudQZC2wd8oaO8mQPf2VPyqukjCabey4feG2z/oMUx+Xuy4A/jDccg3Eb0P1+8pH5DnkOwP8BPqfhOe7Ffn8lp3hwNZ+NvmCFjRpHB2seXbHnvp7gBNT2d7JhhxNV/aouErDorbjDzQFhq530tFgvxs63DQP5t6IWl0pwfgRTQ75zgE/hcEn4PmzMBiEoFBmt7wQI2xBo87+s4nvvbY79hEodE9RM6cMMp2dNkFzz9FQH/j1hYkT95KCcbmGLGqu6etXoeJ9Tr8PxodaeoENMPRD2HQC+oMQsslnQGlgEqpqq06y61T911/dGbmP0txfMwoyn79UWqAKAH+8sev6tq2fDxXyyvQ6vMqg1pa7dTHot6KGBvgZb3qLQB+wCYa/BxsPQ19IaT63twtjE54X4z7ODNb89eFjkYfq49MntXalkPVxr0WYHpjffnzdHNl3LcOUyFIA/BG4bQnUrGbimRgc8r0EI4/BhgPQE4SQrkJJbvIJIG5RiAaMfSdrvpjL+f6yrXEKArUeQrY1Tn4qbrrj+HDLf11cs/veseGhUOr33dwJXctRM+3XMz7RXEQtZr0ZRr4LG/cq8gVt8jlBZlDkS1jkwsHs64ca1wGzYtZVaVhVE3wx7Dgxd94Hrt32uUA2q5GjZHpzwJI2uGEJKt7XyfgigwJj5Bv9LmzaBWcDEJRgOcWkolQcUWeS8oWGt+5OfBwK35yyBnoMma06IRfFjV3HHpzj717JAKWqmhzQUAe3zbf7fSsp5Xkdb3cIeBWSj8LGN+BMEEKyZHadQ3WgDoa12JnNb9T8MfDEFDbPc8hMrhoHvBByWv1vrWl85Q8YpjQxQhGQEVizEGpXo0yve52RImoxw9cgZZPvtK35nFALKO3nA+ogpYcPb93TsNbn44UpbF5FQPp8lTEuuNJwcrRzwd1LX/6cL50TZFDkM4GCBre2w4IVwF2okXnuerBhYCukHoON2+GkD0K+Up8P2+z6LGgQ9OVju86eDX+oKZ7dNuWNrADIpnjVCZkIdfHDDzZrvcvHRd+ywMJWWH0N8Hagi/F1WMPANkh/DzZtheMu8o2l1lBZjwaNM6mazfuPR9cC+6eoWRUH2Tdc1YDlSFrx37u769UPM0ypujoH1Cfg9kXgux3V73O+OwM1j8h2yDwKm16Boz4I+cdPEgSq0qVe5/hw/JmdBxMfBk5ObesqCzKZnh5T9E4V+s2Ohb+45OWHZKagNN5Yvy8Ia+ZD/Q2oVJvT73M033bIfhc2bYEjOgR94x0OUIPFayUHemL/8cbB0Ech1zeljatAyGwu57UMFYXrug492CR6rxkzvRZqOpBbOmDxclTIpYFSTd8osA2yj8LGzXBIh2DANWTSPjQCVsLHieHar27f57sPNQfErIc0jMkvSJ0uiDbU/f7Kmi33MEjJ9GaABS1w8yJUv28+pXVa7RU0c9+F516GfRpE/OPH6+pAzKIY9XF6KPZX/UP+hxZ3TO7qQ9MJcnFHlYAAb/R0Ln5n26sPyWQBK2sPcs8BiVq4owv8N6NKrJwBLElgB+QehWdfgr0WhOziXtOOLutCpdbCfmP/2Zo/B77s91fWfIxeQ1a/EIVVbccebDJ7l5K0/doCoIfg9i5ouh64HTVhpYWamvV1yD8GG16EPYYin0apjk9T5MuFfdk3j9XfD/ydF+2qdMhstuqEdOeaPvje9pc/RD+lbEdBU/2+ZYtQ8b459s4MsBPyj8Jzm2BXAUIB0LRSmEUKiJuk/P7BHQfiH4PC//OkYdMAMpuf3am4I6kVS9+34KXPyGQeK28PVMoC81rh1vnAO1AlVqD8hl1Q+A5s2KjIF/SBJtWgKCHUcNCESVJGTr+yP3Yv8KQnDZsmkLnC7NaA17Uc/kyT0bOYpE2+PJCogbvaIHgLajYDDUW+PVD4Ljy3EXYWIKipmectu/JZCqgVJPXQoWM9iQ811/KSdy2bHpDNtbM3F3wq07R2efTF/0Y/pdIoLQRvmwvN1wFvQ9X3ZYH9UHwMNjwHO/NqAJGmg2XPCegXUAv9RuSN072RtVDc4VnDphGkac7OiMCb/UuWvXfels/I0XypvD6vwc1tsHIJaqmvJlSf75BNvmfg9ZwapSZs8gmbfHWCc9nYywdPxz6Emsi5isuAHB6dfRpwz+hysaZr30MNxe6FpFFORxboaoHb5qKCzQsYmyCy+DhseBpezyryaYKxiWds8p1Mxp7edyL+B6g5g6u4TMjsFE7PVimYV9d7z7Lwgd/FSYQVgJoE3DXHXm1pFcomHwbjcdj4E9iRGU8+4VN9wBqdw0Pxf9t7NPgxKM761NqVQuZys8sEp0ILl7+n8bUH9ZFsaTo4LQhva4WWxSjtFwCOgvFD2PAkbE/b5EP9ET4ICawayalkzd/vORq5H2Wrq7hCTJv1gq8G+rUF4ubmQ5+tM7oXjNGlIODGOXBtKyrV1gicAONHsPEJ2JEuDXKzhAq5RDSKUT/nRmPrB0f9n+tsLsyuX/FVhOxsnj1xwBpr4I+Whg7/NgP2hjzQ0QxrmlCTCC0FzoDxBGz6EWxPleaaBhASIjqFSLB4pLfm88AjAX32fH+TATlbvsC9Q4tXvqNz+wNaMluaDDMWh7uaIbISVWI1AOZPYNMPYdtoiXwWKuQSk+SDwcyBs4n7gP/jXWtmDip6veCrhV39S7QbOw5/tqbQM48MdnGoH26dA61dqHhfAcynYeP3YdvIePLpAqI6OX9oYM+p2J9B8dueNWaGQRZmQfdlXkPfvYuCx36TAUoTCV3fDDfMRU2lEQbzZ/D892DbUBn5gJhGWkZO7jsV/0PgaY+aMSMhLXNma8ABOq67ObHrAZL2KuJ5oK0B1nSh+n3NYG6CFx6FrQOlqX0d8kUFWT1ysHs4/qHaqPWyZw2ZoZC10Zk788OBwS55TfOpz8eLA51jM/NHI3DXfIjdAHSA9Qq89Chs7S+tzgWKiBEYNWOvDwxF12oUXveoGTMaUjNnrhPSFuu+t8N/8r+MzecidLi1A9qXAZ1gvQEvPQav9o2fxNQm30gx/uKZwfha1CTOVUwCZCYzM6fmGKZ51YrGg+tI5UsrX13XBjcsRQ2n3A+bfwCv9o5fl9Am31Au8tSZwdgfglVNrU0ipGnMPBM8RJucX3/m8xFjpGNsPZLWBnjbIhCdwCnY8iRs6R6/YoIEQoKBTPTbZ/sDH4Ncv4fNmBWQVnHmjYprSgz+yRzfuQ+QRMX8ImG4cz7E24E+eG0DbD6rDnYMgA8ICUbz0b/rHojcrwmqI/anAFITMysVVwg2rmqPHF1HtqicDlPCLV3Q2QokYftmeOmMOtgpBPKDGdBI54OPZHO+zzXE8lO7guMshmyIzZxBSScyHb7O2Nk/DxrJdvKoft/KNripBcjB62/CC2eUQ+Ks1uQH068VhtKRzwPrdW3mOmWVCDmTvvD6yPBHGnx9v0oKVZvS0gB3tAIm7NwFz59SDomzXFsATJ+W7k/F7gO+6qHosxbSMGeGF9xbbF+9oPbo/eQM5XREInBXB8R8sOsQbDypTLLT4whCwefr6xkMfxT4D+8kn92QM2FQXG+xK9BR1/3nASPdqmYxlSre1xGCfccU+fKU1owJQU4PnjjdH/sD4BkvZZ/tkDnTf+mjKhx1kaGP1Pl6f5kkqrT+2rmwOgEHT8CzJ9U2h3xhyOvB/UOp6NpIyNrspdxVgIyEpncccCiXuKk9cvY+sobq97U2wZ2NcOwU/PSUGk3pR4VbQpAmtH1kNHyPSoNU4TWkZU5fAvam64Nz6/u/4DdTLWSASAze0w4D5+AnpyBtKfLpQFgwWow8PzAavge1RGUVFQCZK0zfUXF10dyfJnyDv8goYPrg9rlg9sOPT0LKRb6IxlAu/GTvUPheZtiqndMd09YJKer1t8wPH7+PrKn6eDe0Qk0KnjwBI5YaRCSBkKQ3E/tWz4D+CTAHPRa7ijLIfNG89FEVBl+wNjS3pvsLATPdTArorIdWAzacgUGbfD4gJBnMx/7X2f7QOlRwpooKgzSs6ecF1wUzH436ht7HMFATgQ4fbDsHPaYinx/MgGQkF/tyOuv78/pYsZpaq1DI+tj0KslPFSK31ofPfYqMCdIHLQE40g/niop8ATB9sjCQij0E/PVsGXQ1XTGtRsV1jzZGOhp6/8JvZpooCEjo0DsCA0VlcgNg+PRU/2jsU8DXvZa3iktDmtPIODXEhz8a84+8hxTg1yCbh4ypPN0AFKXs6xsK/ykY3/Fa1iouD9I0pgcD02Z8TUdN76fIGWo+PsOEvKUCzH4wpTw+PBr+sE/nWa9lreLyIX3TIAzYm6mLzG0Y+oI0cg0U7EWescnng4LQ9+Vz/g8F/cVXvJa1iiuDDPor3wmpl+k/i8iR95AR9iTgJc2Xt3zbM2m5FqydXstZxZVDFvOVnYobKtavaavv/SQFUy0YY5kqwOyHvCGfT6YDa4EjXstZxc8HaZiVa4P7s4lIW8PoF6WVaxhbLNomXzYvfpxMyz+GYjW1No0hTaNyTXAilvto2D/6btIo0+u3wAeZrPzWSNL6OBSGPBaxircIaRiVGQfMyTm3tUb7P0neVJXMNvlyBf1vR1PyASGqqbWZAClE5S3XOmS2htpq+r8gzWwjGcAnsHyQz2sPFwva5yPBaRI7quKSkJFg5T1LTaY/EvEnf4ERFPn8opjJ6p8D1ovK7bJW8XNAVtoDHSzOuak52vdJMgboAssvsumMfh/w917LVsXVh7QqKApzLt0um+tHPiuLmRYsMP36cDJpfRzMb3otWxWTA2kYlVMPGA7n7o36ht9PDgxfoHdk2PoT4Htey1XF5EEaRmXY4H6zbXlH7blPYRYpaqFTwyPywwh+6rVcVUwupCkCXssAQG18+H6/nplXLISOprPBD/r8vOC1TFVMPqTP7/3kRKOW/oHW+MAH86ngoUw29LvAa17LVMXUQFp4O0f0sJEJ1EQLH8uk/LtHR6K/Bez2VKAqphQym/d2bhifVgzmUtpLI/nwRjCr5JtlECf+us5rGaqYxfj/G6tCaUgAFXsAAAAASUVORK5CYII="/>
|
|
215
|
+
</defs>
|
|
216
|
+
</svg>
|
|
217
|
+
`,en=X`
|
|
218
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
219
|
+
width="24"
|
|
220
|
+
height="24"
|
|
221
|
+
viewBox="0 0 24 24"
|
|
222
|
+
fill="none"
|
|
223
|
+
aria-hidden="true"
|
|
224
|
+
focusable="false"
|
|
225
|
+
>
|
|
226
|
+
<path d="M21 15C21 15.5304 20.7893 16.0391 20.4142 16.4142C20.0391 16.7893 19.5304 17 19 17H7L3 21V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H19C19.5304 3 20.0391 3.21071 20.4142 3.58579C20.7893 3.96086 21 4.46957 21 5V15Z" stroke="#E5E7EB" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
227
|
+
</svg>
|
|
228
|
+
`,nn=X`
|
|
229
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
230
|
+
width="48"
|
|
231
|
+
height="48"
|
|
232
|
+
viewBox="0 0 48 48"
|
|
233
|
+
fill="none"
|
|
234
|
+
aria-hidden="true"
|
|
235
|
+
focusable="false"
|
|
236
|
+
>
|
|
237
|
+
<path d="M40 8H8C5.79086 8 4 9.79086 4 12V36C4 38.2091 5.79086 40 8 40H40C42.2091 40 44 38.2091 44 36V12C44 9.79086 42.2091 8 40 8Z" stroke="#E5E7EB" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
238
|
+
<path d="M44 14L26.06 25.4C25.4425 25.7869 24.7286 25.992 24 25.992C23.2714 25.992 22.5575 25.7869 21.94 25.4L4 14" stroke="#E5E7EB" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
|
|
239
|
+
</svg>
|
|
240
|
+
`,tn=X`
|
|
241
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
242
|
+
width="12"
|
|
243
|
+
height="14"
|
|
244
|
+
viewBox="0 0 12 14"
|
|
245
|
+
fill="none"
|
|
246
|
+
aria-hidden="true"
|
|
247
|
+
focusable="false"
|
|
248
|
+
>
|
|
249
|
+
<path d="M10.7004 2.667L8.43806 0.404688C8.17731 0.143938 7.83038 0 7.46113 0H3.22613C2.464 0 1.84363 0.619938 1.84363 1.3825V1.84625H1.37988C0.619062 1.84625 0 2.46531 0 3.22613V11.6576C0 12.4184 0.619062 13.0375 1.37988 13.0375H7.882C8.64281 13.0375 9.26188 12.4184 9.26188 11.6576V11.1926H9.723C10.4847 11.1926 11.1046 10.5726 11.1046 9.81137V3.64306C11.1046 3.27994 10.9572 2.92381 10.7004 2.667ZM9.75888 2.83938H8.855C8.5295 2.83938 8.26438 2.57469 8.26438 2.24875V1.34488L9.75888 2.83938ZM8.47438 11.6576C8.47438 11.9844 8.20881 12.25 7.882 12.25H1.37988C1.0535 12.25 0.7875 11.9844 0.7875 11.6576V3.22613C0.7875 2.89931 1.05306 2.63375 1.37988 2.63375H1.84406V9.81181C1.84406 10.5731 2.464 11.1926 3.22525 11.1926H8.47438V11.6576ZM10.3171 9.81137C10.3171 10.1391 10.0511 10.4051 9.72344 10.4051H3.22525C2.898 10.4051 2.632 10.1391 2.632 9.81181V1.3825C2.632 1.05438 2.89844 0.7875 3.22656 0.7875H7.46156C7.46681 0.7875 7.47163 0.790563 7.47688 0.790563V2.24875C7.47688 3.00869 8.09506 3.62688 8.855 3.62688H10.3136C10.3136 3.63256 10.3167 3.63738 10.3167 3.64306V9.81137H10.3171Z" fill="#6A7282"/>
|
|
250
|
+
</svg>
|
|
251
|
+
`,on=X`
|
|
252
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
253
|
+
width="12"
|
|
254
|
+
height="12"
|
|
255
|
+
viewBox="0 0 12 12"
|
|
256
|
+
fill="none"
|
|
257
|
+
aria-hidden="true"
|
|
258
|
+
focusable="false"
|
|
259
|
+
>
|
|
260
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M10.5301 0.244005C10.8555 -0.0813835 11.3834 -0.0812864 11.7088 0.244005C12.0338 0.569352 12.0338 1.09639 11.7088 1.42174L7.15416 5.97545L11.7088 10.5301C12.0341 10.8556 12.0342 11.3835 11.7088 11.7088C11.3835 12.0342 10.8556 12.0341 10.5301 11.7088L5.97545 7.15416L1.42174 11.7088C1.09639 12.0338 0.569351 12.0338 0.244004 11.7088C-0.0812866 11.3834 -0.0813828 10.8555 0.244004 10.5301L4.79772 5.97545L0.244004 1.42174C-0.0812866 1.09629 -0.0813828 0.569393 0.244004 0.244005C0.569393 -0.0813835 1.09629 -0.0812864 1.42174 0.244005L5.97545 4.79772L10.5301 0.244005Z" fill="#4A5565"/>
|
|
261
|
+
</svg>
|
|
262
|
+
`,an=X`
|
|
263
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
264
|
+
width="20"
|
|
265
|
+
height="20"
|
|
266
|
+
viewBox="0 0 20 20"
|
|
267
|
+
fill="none"
|
|
268
|
+
aria-hidden="true"
|
|
269
|
+
focusable="false"
|
|
270
|
+
>
|
|
271
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M14.3063 3.34814C14.9271 3.34832 15.5236 3.59563 15.9625 4.03467C16.4012 4.47362 16.648 5.06935 16.6481 5.68994C16.648 6.31072 16.4004 6.90719 15.9615 7.34619L15.9606 7.34521L7.95373 15.355L7.95275 15.356C7.73845 15.5696 7.47464 15.7278 7.18517 15.8159H7.1842L4.57287 16.6079H4.57092C4.40678 16.6572 4.23224 16.6614 4.06603 16.6196C3.89974 16.5778 3.74793 16.4918 3.62658 16.3706C3.50526 16.2494 3.41865 16.0974 3.37658 15.9312C3.33472 15.7651 3.3383 15.5903 3.38732 15.4263L3.3883 15.4243L4.18127 12.813V12.811C4.27013 12.5215 4.42882 12.2574 4.64318 12.0435L12.651 4.03467V4.03369C13.09 3.59513 13.6857 3.34816 14.3063 3.34814ZM5.56213 12.9634C5.49841 13.0269 5.4509 13.1059 5.42443 13.1919L5.42345 13.1909L4.82189 15.1733L6.80627 14.5718C6.89221 14.5456 6.97114 14.4985 7.03478 14.4351L13.274 8.19482L11.8014 6.72217L5.56213 12.9634ZM14.3063 4.64893C14.0303 4.64894 13.7652 4.75864 13.5699 4.95361L12.7213 5.80225L14.194 7.2749L15.0426 6.42627L15.1119 6.3501C15.2635 6.16488 15.3473 5.93141 15.3473 5.68994C15.3472 5.41394 15.2377 5.14881 15.0426 4.95361C14.8474 4.75846 14.5823 4.64906 14.3063 4.64893Z" fill="#1E2939"/>
|
|
272
|
+
</svg>
|
|
273
|
+
`,rn=X`
|
|
274
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
275
|
+
width="14"
|
|
276
|
+
height="14"
|
|
277
|
+
viewBox="0 0 14 14"
|
|
278
|
+
fill="none"
|
|
279
|
+
aria-hidden="true"
|
|
280
|
+
focusable="false"
|
|
281
|
+
>
|
|
282
|
+
<path d="M10.5 3.5L3.5 10.5" stroke="#6A7282" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
|
283
|
+
<path d="M3.5 3.5L10.5 10.5" stroke="#6A7282" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
|
284
|
+
</svg>
|
|
285
|
+
`,ln=X`
|
|
286
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
287
|
+
width="14"
|
|
288
|
+
height="14"
|
|
289
|
+
viewBox="0 0 14 14"
|
|
290
|
+
fill="none"
|
|
291
|
+
aria-hidden="true"
|
|
292
|
+
focusable="false"
|
|
293
|
+
>
|
|
294
|
+
<path d="M8.16427 2.3335C8.37473 2.33349 8.58127 2.39042 8.76201 2.49825C8.94276 2.60608 9.09096 2.76079 9.19093 2.946L9.47443 3.471C9.5744 3.6562 9.72261 3.81091 9.90335 3.91874C10.0841 4.02657 10.2906 4.0835 10.5011 4.0835H11.666C11.9754 4.0835 12.2722 4.20641 12.491 4.4252C12.7098 4.644 12.8327 4.94074 12.8327 5.25016V10.5002C12.8327 10.8096 12.7098 11.1063 12.491 11.3251C12.2722 11.5439 11.9754 11.6668 11.666 11.6668H2.33268C2.02326 11.6668 1.72652 11.5439 1.50772 11.3251C1.28893 11.1063 1.16602 10.8096 1.16602 10.5002V5.25016C1.16602 4.94074 1.28893 4.644 1.50772 4.4252C1.72652 4.20641 2.02326 4.0835 2.33268 4.0835H3.4976C3.70784 4.08351 3.91419 4.0267 4.0948 3.91909C4.27542 3.81148 4.42361 3.65706 4.52368 3.47216L4.80893 2.94483C4.90901 2.75993 5.05719 2.60551 5.23781 2.4979C5.41843 2.39029 5.62477 2.33348 5.83502 2.3335H8.16427Z" stroke="#1E2939" stroke-width="1.02083" stroke-linecap="round" stroke-linejoin="round"/>
|
|
295
|
+
<path d="M7 9.33337C7.9665 9.33337 8.75 8.54987 8.75 7.58337C8.75 6.61688 7.9665 5.83337 7 5.83337C6.0335 5.83337 5.25 6.61688 5.25 7.58337C5.25 8.54987 6.0335 9.33337 7 9.33337Z" stroke="#1E2939" stroke-width="1.02083" stroke-linecap="round" stroke-linejoin="round"/>
|
|
296
|
+
</svg>
|
|
297
|
+
`,sn=X`
|
|
298
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
299
|
+
width="16"
|
|
300
|
+
height="16"
|
|
301
|
+
viewBox="0 0 16 16"
|
|
302
|
+
fill="none"
|
|
303
|
+
aria-hidden="true"
|
|
304
|
+
focusable="false"
|
|
305
|
+
>
|
|
306
|
+
<path d="M3.5 4L8 8L12.5 4" stroke="#7C4DFF" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
|
307
|
+
<path d="M3.5 8L8 12L12.5 8" stroke="#7C4DFF" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
|
|
308
|
+
</svg>
|
|
309
|
+
`;const dn="https://solidos.github.io/profile-pane/src/ontology/";function cn(e,n,t,i){const o=i||dn+t,a=(0,Me.sym)(o);e.holds(void 0,void 0,void 0,a)||(0,Me.parse)(n,e,o,"text/turtle",()=>null)}const An=`${me.icons.iconBase}noun_10636_grey.svg`,pn=(()=>{var e;const n=(null===(e=null==Ze?void 0:Ze.strings)||void 0===e?void 0:e.join(""))||"";return n?`data:image/svg+xml;utf8,${encodeURIComponent(n)}`:An})(),un=a.p+"976473cf5fe24d657d4b.png",fn=a.p+"5f62a5b2b7e99b9640c7.png",mn=a.p+"20899934157df4db56cb.png",gn=a.p+"10163fd9b5a0e00d63a0.png",hn=a.p+"04567ff683933c35c465.png",Cn=a.p+"33760bf79f097f449da5.png",bn=a.p+"f3772696fb7ee53c23d8.png",En=a.p+"6525766ecd288ec60129.png",_n=a.p+"cd68e8f3990ba8b2139e.png",vn=a.p+"578d2b6ed32e7624164e.png",wn=a.p+"7800be6f6c4b5b0f4f20.png",yn=a.p+"e7074a7e2cb69e51cfd3.png",Bn=a.p+"1234dcb2eec2e45f252b.png",xn=a.p+"bda84f59e7216675a208.png",kn=(0,Me.sym)("http://www.w3.org/2002/07/owl#disjointUnionOf"),In="urn:profile-pane:starIcon",$n="urn:profile-pane:icon:",Sn="https://solidos.github.io/profile-pane/src/ontology/socialMedia.ttl",Dn=`${Sn}#`,Nn=(()=>{var e;const n=(null===(e=null==Ze?void 0:Ze.strings)||void 0===e?void 0:e.join(""))||"";return n?`data:image/svg+xml;utf8,${encodeURIComponent(n)}`:pn})();let Tn=null;const jn=[{classUri:`${Dn}FacebookAccount`,label:"Facebook",icon:mn,userProfilePrefix:"https://www.facebook.com/",homepage:"https://www.facebook.com/"},{classUri:`${Dn}InstagramAccount`,label:"Instagram",icon:gn,userProfilePrefix:"https://www.instagram.com/",homepage:"https://www.instagram.com/"},{classUri:`${Dn}LinkedInAccount`,label:"LinkedIn",icon:hn,userProfilePrefix:"https://www.linkedin.com/in/",homepage:"https://linkedin.com/"},{classUri:`${Dn}TiktokAccount`,label:"TikTok",icon:wn,userProfilePrefix:"https://www.tiktok.com/@",homepage:"https://www.tiktok.com/"},{classUri:`${Dn}TwitterAccount`,label:"X",icon:Bn,userProfilePrefix:"https://x.com/",homepage:"https://x.com/"},{classUri:`${Dn}YouTubeAccount`,label:"YouTube",icon:xn,userProfilePrefix:"https://www.youtube.com/",homepage:"https://www.youtube.com/"},{classUri:`${Dn}DiscordAccount`,label:"Discord",icon:un,userProfilePrefix:"https://discord.com/users/",homepage:"https://discord.com/"},{classUri:`${Dn}SnapchatAccount`,label:"Snapchat",icon:En,userProfilePrefix:"https://www.snapchat.com/add/",homepage:"https://www.snapchat.com/"},{classUri:`${Dn}PinterestAccount`,label:"Pinterest",icon:Cn,userProfilePrefix:"https://pin.it/",homepage:"https://pinterest.com/"},{classUri:`${Dn}SpotifyAccount`,label:"Spotify",icon:_n,userProfilePrefix:"https://www.spotify.com/user/",homepage:"https://www.spotify.com/"},{classUri:`${Dn}TelegramAccount`,label:"Telegram",icon:vn,userProfilePrefix:"https://t.me/",homepage:"https://telegram.org/"},{classUri:`${Dn}DribbleAccount`,label:"Dribble",icon:fn,userProfilePrefix:"https://dribbble.com/",homepage:"https://dribbble.com/"},{classUri:`${Dn}SharechatAccount`,label:"ShareChat",icon:bn,userProfilePrefix:"https://www.sharechat.com/user/",homepage:"https://sharechat.com/"},{classUri:`${Dn}WhatsAppAccount`,label:"WhatsApp",icon:yn,userProfilePrefix:"https://wa.me/",homepage:"https://www.whatsapp.com/"}],zn={discord:un,dribbble:fn,facebook:mn,instagram:gn,linkedin:hn,pinterest:Cn,sharechat:bn,snapchat:En,spotify:_n,telegram:vn,tiktok:wn,whatsapp:yn,x:Bn,youtube:xn,"discord.png":un,"dribbble.png":fn,"facebook.png":mn,"instagram.png":gn,"linkedin.png":hn,"pinterest.png":Cn,"sharechat.png":bn,"snapchat.png":En,"spotify.png":_n,"telegram.png":vn,"tiktok.png":wn,"whatsapp.png":yn,"x.png":Bn,"youtube.png":xn};function Fn(e){if(!e)return"";const n=e.trim().toLowerCase();if(n.startsWith($n)){const e=n.slice(22);return zn[e]||""}const t="icons-png/",i=n.lastIndexOf(t);if(-1===i)return"";const o=n.slice(i+10);return zn[o]||""}function Pn(e){return(e||"").trim().toLowerCase().replace(/[#:/]/g," ").replace(/account\b/g,"").replace(/[^a-z0-9]/g,"")}function Ln(e,n){const t=(n||"").trim();if(!t)return;const i=t.toLowerCase(),o=e.find(e=>e.classUri.toLowerCase()===i||e.label.toLowerCase()===i);if(o)return o;const a=Pn(t);return a?e.find(e=>{const n=Pn(e.label),t=Pn(e.classUri);return n===a||t===a}):void 0}function Mn(e){cn(e,We,"socialMedia.ttl")}function Wn(e){Mn(e);const n=function(){if(Tn)return Tn;const e=(0,Me.graph)();return(0,Me.parse)(We,e,Sn,"text/turtle",()=>null),Tn=e,e}(),t=new Map,i=n.any(me.ns.foaf("Account"),kn);if(i){const e=Le(n,i).filter(e=>"NamedNode"===e.termType);for(const n of e)t.set(n.value,n)}const o=n.statementsMatching(void 0,me.ns.rdfs("subClassOf"),me.ns.foaf("Account"));for(const e of o){const n=e.subject;"NamedNode"===(null==n?void 0:n.termType)&&t.set(n.value,n)}const a=Array.from(t.values());if(!a.length)return[];const r=a.map(e=>{var t,i,o,a;const r=(null===(t=n.any(e,me.ns.rdfs("label")))||void 0===t?void 0:t.value)||me.utils.label(e)||e.value,l=(null===(i=n.any(e,me.ns.foaf("icon")))||void 0===i?void 0:i.value)||"",s=function(e,n){if(e.endsWith("#OtherAccount")||n===In)return Nn;const t=Fn(n);return t||n||pn}(e.value,l),d=(null===(o=n.any(e,me.ns.foaf("homepage")))||void 0===o?void 0:o.value)||"",c=(null===(a=n.any(e,me.ns.foaf("userProfilePrefix")))||void 0===a?void 0:a.value)||"";return{classUri:e.value,label:r,icon:s,homepage:d||void 0,userProfilePrefix:c||void 0}}),l=new Set,s=r.filter(e=>{const n=e.label.toLowerCase().trim();return!(!n||l.has(n))&&(l.add(n),!0)});for(const e of jn){const n=e.label.toLowerCase().trim();l.has(n)||(s.push(e),l.add(n))}return s}function Rn(e,n){const t=e.any(n,me.ns.foaf("name"))||e.any(n,me.ns.rdfs("label"));if(t)return t.value;const i=e.each(n,me.ns.rdf("type"));for(const n of i){const t=e.any(n,me.ns.rdfs("label"));return t?t.value:me.utils.label(n)}return"Unknown Account"}function Un(e,n){var t;const i=e.any(n,me.ns.foaf("icon"));if((null==i?void 0:i.value)===In)return Nn;if(i){const e=Fn(i.value);return e||i.value}const o=e.each(n,me.ns.rdf("type"));for(const n of o){if(null===(t=null==n?void 0:n.value)||void 0===t?void 0:t.endsWith("#OtherAccount"))return Nn;const i=e.any(n,me.ns.foaf("icon"));if((null==i?void 0:i.value)===In)return Nn;if(i){const e=Fn(i.value);return e||i.value}}return pn}function Hn(e,n){const t=e.any(n,me.ns.foaf("homepage"));if(t)return t.value;const i=String(e.anyJS(n,me.ns.foaf("accountName"),null,n.doc())||"No_account_Name").trim();if(/^https?:\/\//i.test(i))return i;const o=e.each(n,me.ns.rdf("type"));for(const n of o)if("NamedNode"===n.termType){const t=e.any(n,me.ns.foaf("userProfilePrefix"));if(t)return t.value+String(i).trim()}return e.anyJS(n,me.ns.foaf("homepage"),null,n.doc())||""}function Yn(e,n){function t(e){return{name:Rn(n,e),icon:Un(n,e),homepage:Hn(n,e),entryNode:e}}Mn(n);const i=n.each(e,me.ns.foaf("account")).flatMap(e=>Le(n,e)),o=new Set,a=[];for(const e of i)if("NamedNode"===e.termType){const i=n.any(e,me.ns.foaf("accountName")),r=i?i.value:"";o.has(r)||(o.add(r),a.push(t(e)))}return a.length?{accounts:a}:{accounts:[]}}function On(e,n){if("Literal"===n.termType)return"";const t=e.anyJS(n,me.ns.schema("name"));if(t)return t;const i=e.any(n,me.ns.solid("publicId"));if(i&&"NamedNode"===i.termType){const n=e.anyJS(i,me.ns.schema("name"));return n||me.utils.label(i,!0)}return""}function qn(e,n){return n.each(e,me.ns.schema("skills")).filter(e=>"Literal"!==e.termType).map(e=>{const t=n.any(e,me.ns.solid("publicId")),i=t?t.value:"";return{name:On(n,e),publicId:i,entryNode:e}}).filter(e=>""!==e.name)}const Vn="https://www.w3.org/ns/iana/language-code/";function Qn(e){return e.replace(/\s+/g," ").trim()}function Zn(e,n){return!!Array.isArray(null==n?void 0:n.elements)||("BlankNode"===n.termType||"NamedNode"===n.termType)&&Boolean(e.any(n,me.ns.rdf("first")))}function Xn(e){return(e||"").trim().toLowerCase()}function Gn(e){const n=(e||"").trim().toLowerCase();if(!n)return"";try{const e=null===Intl||void 0===Intl?void 0:Intl.DisplayNames;if("function"==typeof e){const t=new e(["en"],{type:"language"}).of(n);if(t)return t}}catch{}return n}function Kn(e){const n=(e||"").trim();if(!n)return"";if(n.startsWith(Vn)){return Gn(Xn(n.slice(41)))}return Gn(n)}function Jn(e,n){const t=function(e,n,t){var i,o;const a=e.statementsMatching(n,t),r=a.find(e=>{var n;return((null===(n=e.object)||void 0===n?void 0:n.lang)||"").toLowerCase().startsWith("en")});if(r&&"string"==typeof(null===(i=r.object)||void 0===i?void 0:i.value))return r.object.value;const l=a.find(e=>{var n;return"Literal"===(null===(n=e.object)||void 0===n?void 0:n.termType)});return l&&"string"==typeof(null===(o=l.object)||void 0===o?void 0:o.value)?l.object.value:""}(e,n,me.ns.schema("name"));if(t)return Qn(t);const i=function(e,n){const t=e.statementsMatching(n,me.ns.rdfs("label")).find(e=>{var n;return((null===(n=e.object)||void 0===n?void 0:n.lang)||"").toLowerCase().startsWith("en")});return t&&t.object&&"string"==typeof t.object.value?t.object.value:""}(e,n);return i?Qn(i):n.value.startsWith(Vn)?Kn(n.value):""}function et(e,n){if("NamedNode"===(null==n?void 0:n.termType))return n.value;if("Literal"===(null==n?void 0:n.termType)){return Xn(n.value)||void 0}return"NamedNode"===e.termType&&e.value.startsWith(Vn)?e.value:void 0}function nt(e,n){if("Literal"===n.termType)return n.value;if("NamedNode"!==n.termType&&"BlankNode"!==n.termType)return"";const t=e.any(n,me.ns.solid("publicId"))||void 0;return function(e,n,t){if("NamedNode"===(null==t?void 0:t.termType)){return Jn(e,t)||Kn(t.value)}if("Literal"===(null==t?void 0:t.termType)){const n=Xn(t.value);if(!n)return"";return Jn(e,(0,Me.sym)(`${Vn}${n}`))||Gn(n)}if("NamedNode"===n.termType){const t=Jn(e,n);if(t)return t}return""}(e,n,t)}function tt(e,n){const t=n.each(e,me.ns.schema("knowsLanguage")),i=t.filter(e=>Zn(n,e)).map(e=>Le(n,e)).sort((e,n)=>n.length-e.length)[0]||[],o=[...i,...t.filter(e=>!Zn(n,e))].map(e=>({name:nt(n,e),publicId:et(e,n.any(e,me.ns.solid("publicId"))||void 0),proficiency:n.anyValue(e,me.ns.schema("proficiencyLevel"))||void 0,entryNode:e})).filter(e=>Boolean(e.name)),a=new Map;return o.forEach(e=>{const n=e.publicId||e.name;a.has(n)||a.set(n,e)}),Array.from(a.values())}const it=me.ns.schema("EducationalOccupationalCredential"),ot=me.ns.vcard("Organization").value;function at(e){const n=(e||"").trim();if(!n)return"";const t=n.match(/[#/]([^#/]+)$/);return(null==t?void 0:t[1])||n}function rt(e,n,t){if(!n)return"";if("Literal"===n.termType)return n.value;if("NamedNode"===n.termType){const i=e.anyJS(n,me.ns.rdfs("label"),null,t);return i||at(n.value)}return""}function lt(e,n,t){const i=e.each(n,me.ns.rdf("type"),null,t).filter(e=>"NamedNode"===e.termType&&e.value.startsWith(me.ns.solid("").value));return rt(e,i.find(e=>{const n=at(e.value);return"PastRole"===n||"CurrentRole"===n||"FutureRole"===n})||i[0],t)}function st(e,n,t){const i=e.any(n,me.ns.org("classification"),null,t),o=rt(e,i,t);if(o)return o;const a=e.each(n,me.ns.rdf("type"),null,t).filter(e=>"NamedNode"===e.termType).filter(e=>e.value!==ot);return rt(e,a.find(e=>e.value.startsWith("http://schema.org/"))||a[0],t)}function dt(e,n){var t,i;const o=[],a=new Map,r=n.doc(),l=e.each(null,me.ns.org("member"),n,r).filter(n=>!function(e,n,t){return e.holds(n,me.ns.rdf("type"),it,t)}(e,n,r));for(const n of l){let o,l,s,d,c,A,p;const u=e.any(n,me.ns.schema("startDate"),null,r),f=e.any(n,me.ns.schema("endDate"),null,r),m=e.anyJS(n,me.ns.schema("description"),null,r),g=!f,h=lt(e,n,r),C=e.any(n,me.ns.org("organization"),null,r);C&&(l=e.anyJS(C,me.ns.schema("name"),null,r),o=e.any(C,me.ns.schema("uri"),null,r),A=st(e,C,r),p=e.any(C,me.ns.org("location"),null,r),c=e.any(C,me.ns.solid("publicId"),null,r)),c&&(s=e.anyJS(c,me.ns.schema("name"),null,r));const b=s||l,E=e.any(n,me.ns.org("role"),null,r);E&&(d=e.anyJS(E,me.ns.schema("name"),null,r));const _=e.anyJS(n,me.ns.vcard("role"),null,r),v={title:_&&d?d+" - "+_:_||d,roleType:h,entryNode:n,startDate:u,endDate:f,isCurrentRole:g,orgName:b,orgType:A,orgLocation:p,orgHomePage:o,description:m||void 0},w=[v.title||"",v.orgName||"",(null===(t=v.startDate)||void 0===t?void 0:t.value)||"",(null===(i=v.endDate)||void 0===i?void 0:i.value)||""].join("|"),y=a.get(w);if(!y){a.set(w,v);continue}const B="NamedNode"===y.entryNode.termType,x="NamedNode"===v.entryNode.termType;!B&&x&&a.set(w,v)}return a.forEach(e=>o.push(e)),o}function ct(e){return e?"string"==typeof e?e:e.value||"":""}function At(e){const n=(e||"").trim();return!!n&&(!!/^mailto:/i.test(n)||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n))}function pt(e){const n=(e||"").trim();return!!n&&(!!/^tel:/i.test(n)||/^[+()\-\s\d]{5,}$/.test(n))}function ut(e,n,t,i){const o="email"===i?At:pt;if(o(ct(n)))return n;const a=e.statementsMatching(n,me.ns.vcard("value"),null,t),r=e.statementsMatching(n,me.ns.vcard("value"));for(const e of[...a,...r]){const n=e.object;if(o(ct(n)))return n}return null}function ft(e,n){const t=function(e,n){const t=[];return(n.each(e,me.ns.vcard("hasEmail"),null,e.doc())||null).forEach(i=>{const o=ut(n,i,e.doc(),"email");if(!o)return;const a=n.any(i,me.ns.rdf("type"),null,e.doc());t.push({entryNode:i,type:a,valueNode:o})}),t}(e,n),i=function(e,n){const t=[];return(n.each(e,me.ns.vcard("hasTelephone"),null,e.doc())||null).forEach(i=>{const o=ut(n,i,e.doc(),"phone");if(!o)return;const a=n.any(i,me.ns.rdf("type"),null,e.doc());t.push({entryNode:i,type:a,valueNode:o})}),t}(e,n),o=function(e,n){const t=[];return(n.each(e,me.ns.vcard("hasAddress"),null,e.doc())||null).map(i=>{const o=ct(n.any(i,me.ns.vcard("street-address"),null,e.doc())),a=ct(n.any(i,me.ns.vcard("locality"),null,e.doc())),r=ct(n.any(i,me.ns.vcard("region"),null,e.doc())),l=ct(n.any(i,me.ns.vcard("postal-code"),null,e.doc())),s=ct(n.any(i,me.ns.vcard("country-name"),null,e.doc())),d=n.any(i,me.ns.rdf("type"),null,e.doc());t.push({entryNode:i,...d?{type:d}:{},streetAddress:o,locality:a,region:r,postalCode:l,countryName:s})}),t}(e,n);return{emails:t,phones:i,addresses:o}}const mt=me.ns.schema("EducationalOccupationalCredential");function gt(e,n){const t=[],i=new Map,o=n.doc(),a=e.each(null,me.ns.org("member"),n,o).filter(n=>function(e,n,t){return e.holds(n,me.ns.rdf("type"),mt,t)}(e,n,o));for(const n of a){const t={school:e.anyJS(n,me.ns.schema("name"),null,o)||"",degree:e.anyJS(n,me.ns.schema("educationalCredentialAwarded"),null,o)||void 0,location:e.anyJS(n,me.ns.schema("location"),null,o)||void 0,startDate:e.anyJS(n,me.ns.schema("startDate"),null,o)||void 0,endDate:e.anyJS(n,me.ns.schema("endDate"),null,o)||void 0,description:e.anyJS(n,me.ns.schema("description"),null,o)||void 0,entryNode:n},a=[t.school||"",t.degree||"",t.location||"",t.startDate||"",t.endDate||""].join("|"),r=i.get(a);if(!r){i.set(a,t);continue}const l="NamedNode"===r.entryNode.termType,s="NamedNode"===t.entryNode.termType;!l&&s&&i.set(a,t)}return i.forEach(e=>t.push(e)),t}function ht(e,n,t){const i=[...n.each(e,me.ns.solid("community"),null,t),...n.each(e,me.ns.solid("community"),null,null)].flatMap(e=>{const t=Array.isArray(null==e?void 0:e.elements),i=("BlankNode"===e.termType||"NamedNode"===e.termType)&&Boolean(n.any(e,me.ns.rdf("first")));return t||i?Le(n,e):[e]}),o=new Set,a=[];for(const e of i){const n=`${(null==e?void 0:e.termType)||""}:${(null==e?void 0:e.value)||""}`;o.has(n)||(o.add(n),a.push(e))}return a}function Ct(e,n){var t;if(!e)return null;if("NamedNode"===e.termType)return e;if("Literal"===e.termType)try{return(0,Me.sym)(e.value)}catch{return null}if("BlankNode"!==e.termType)return null;const i=[me.ns.solid("publicId"),me.ns.schema("url"),me.ns.foaf("homepage"),me.ns.rdfs("seeAlso"),me.ns.schema("sameAs"),me.ns.schema("mainEntityOfPage")];for(const t of i){const i=n.any(e,t);if(null==i?void 0:i.value){if("NamedNode"===i.termType)return i;if("Literal"===i.termType)try{return(0,Me.sym)(i.value)}catch{}}}const o=n.statementsMatching(e,null,null,null).find(e=>"NamedNode"===e.object.termType);return(null===(t=null==o?void 0:o.object)||void 0===t?void 0:t.value)?o.object:null}async function bt(e,n){await async function(e,n){const t=e.doc(),i=null==n?void 0:n.fetcher;if(!i||"function"!=typeof i.load)return;const o=ht(e,n,t),a=new Map;for(const e of o){const t=Ct(e,n);if(!t)continue;const i=t.doc();a.set(i.value,i)}a.size&&await Promise.all(Array.from(a.values()).map(async e=>{!function(e,n){const t=null==e?void 0:e.requested;if(!t||"object"!=typeof t)return;const i=t[n];("string"==typeof i&&"requested"!==i&&"done"!==i||"number"==typeof i&&i>=400)&&delete t[n]}(i,e.value);try{await i.load(e)}catch{}}))}(e,n);const t=e.doc(),i=new Set,o=ht(e,n,t).map(e=>{var t,o,a;const r=Ct(e,n),l=(null==r?void 0:r.value)||((s=e)?"NamedNode"===s.termType?s.value||"":"Literal"===s.termType&&s.value||"":"");var s;const d=function(e){const n=(e||"").trim();if(!n)return"";try{return new URL(n).href}catch{return n}}(l),c=r||function(e,n){if(e&&"NamedNode"===e.termType)return e;try{return(0,Me.sym)(n)}catch{return null}}(e,l),A=null==c?void 0:c.doc(),p=c&&n.anyValue(c,me.ns.foaf("name"),null,A||null)||void 0,u=c&&n.anyValue(c,me.ns.vcard("organization-name"),null,A||null)||void 0,f=p||(c?me.utils.label(c):me.utils.label(d)),m=c?me.widgets.findImage(c)||(null!==(a=null===(o=(t=me.widgets).findImageFromURI)||void 0===o?void 0:o.call(t,c))&&void 0!==a?a:void 0):void 0;let g=[];c&&(g=n.each(c,me.ns.rdf("type"),null,A||null));const h=g.find(e=>"NamedNode"===e.termType&&(e.value===me.ns.schema("Project").value||e.value===me.ns.schema("Community").value)),C=(null==h?void 0:h.value)===me.ns.schema("Project").value?"project":(null==h?void 0:h.value)===me.ns.schema("Community").value?"community":"unknown";return l&&d&&!i.has(d)?(i.add(d),{url:l,title:f,name:p,orgName:u,imageUrl:m,category:C,entryNode:e}):null}).filter(e=>Boolean(e));return o}function Et(e){if(!e)return"";if("string"==typeof e)return e;if("object"==typeof e&&"value"in e){const n=e.value;return"string"==typeof n?n:""}return""}function _t(e){const n=(e||"").trim();return!!n&&(!!/^mailto:/i.test(n)||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n))}function vt(e){const n=(e||"").trim();return!!n&&(!!/^tel:/i.test(n)||/^[+()\-\s\d]{5,}$/.test(n))}function wt(e,n,t,i){if(!n)return;const o="email"===i?_t:vt;if(o(Et(n)))return n;if("NamedNode"!==n.termType)return;const a=e.statementsMatching(n,me.ns.vcard("value"),null,t),r=e.statementsMatching(n,me.ns.vcard("value"));for(const e of[...a,...r])if(o(Et(e.object)))return e.object}function yt(e,n,t){if("NamedNode"!==n.termType)return;const i=e.statementsMatching(n,me.ns.rdf("type"),null,t);if(i.length>0)return i[0].object;const o=e.statementsMatching(n,me.ns.rdf("type"));return o.length>0?o[0].object:void 0}function Bt(e){const n=Et(e).trim().toLowerCase();return!!n&&("work"===n||n.endsWith("#work")||n.endsWith("/work"))}function xt(e,n,t,i,o,a){const r=[...e.statementsMatching(n,t,null,i),...e.statementsMatching(n,t)].map(e=>e.object),l=[],s=new Set;for(const n of r){const t=Et(n);if(t&&s.has(t))continue;t&&s.add(t);const r=wt(e,n,i,o);if(!r)continue;const d=yt(e,n,i)||a;l.push({entryNode:n,type:d,valueNode:r})}const d=l.find(n=>function(e,n,t){return"NamedNode"===n.termType&&[...e.statementsMatching(n,me.ns.rdf("type"),null,t),...e.statementsMatching(n,me.ns.rdf("type"))].some(e=>Bt(e.object))}(e,n.entryNode,i)||Bt(n.type));return d||(l.length>0?l[0]:void 0)}function kt(e,n){return e&&n?`${n}, ${e}`:e||n||null}const It=(e,n)=>{const t=me.utils.label(e),i=n.anyValue(e,me.ns.vcard("nickname"))||n.anyValue(e,me.ns.foaf("nick"))||void 0,o=n.anyValue(e,me.ns.vcard("bday"))||void 0,a=me.widgets.findImage(e),r=n.anyValue(e,me.ns.vcard("role"))||void 0,l=n.anyValue(e,me.ns.vcard("organization-name"))||void 0,s=e.doc(),d=xt(n,e,me.ns.vcard("hasTelephone"),s,"phone",me.ns.vcard("Voice")),c=xt(n,e,me.ns.vcard("hasEmail"),s,"email",me.ns.vcard("Internet")),A=n.any(e,me.ns.vcard("hasAddress"))||void 0,p=A&&n.any(A,me.ns.rdf("type"))||void 0,u=A&&n.anyValue(A,me.ns.vcard("street-address"))||void 0,f=A&&n.anyValue(A,me.ns.vcard("locality"))||void 0,m=A&&n.anyValue(A,me.ns.vcard("region"))||void 0,g=A&&n.anyValue(A,me.ns.vcard("postal-code"))||void 0,h=A&&n.anyValue(A,me.ns.vcard("country-name"))||void 0,C=A?{entryNode:A,type:p,streetAddress:u,locality:f,region:m,postalCode:g,countryName:h}:void 0,b=A||null,E=null!=b?n.anyValue(b,me.ns.vcard("country-name")):null,_=null!=b?n.anyValue(b,me.ns.vcard("locality")):null,v=function(e,n){let t=e.anyJS(n,me.ns.solid("preferredSubjectPronoun"))||"";if(t){const i=e.anyJS(n,me.ns.solid("preferredObjectPronoun"));i&&(t+="/"+i)}return t||""}(n,e);return{name:t,nickname:i,imageSrc:a,dateOfBirth:o,jobTitle:r,orgName:l,primaryPhone:d,primaryEmail:c,primaryAddress:C,location:kt(E,_),pronouns:v,entryNode:e}};async function $t(e,n){const t=It(e,n),i=ft(e,n),o=qn(e,n),a=tt(e,n),r=function(e,n){return function(e){return e.sort((e,n)=>{const t=!e.endDate;if(t!==!n.endDate)return t?-1:1;const i=e.endDate||"",o=n.endDate||"";if(i!==o)return o.localeCompare(i);const a=e.startDate||"";return(n.startDate||"").localeCompare(a)})}(gt(n,e))}(e,n),l=await bt(e,n),s=((e,n)=>({description:n.anyJS(e,me.ns.vcard("note")),entryNode:e}))(e,n),d=Yn(e,n),c=function(e,n){const t=(i=dt(n,e),i.sort((e,n)=>{var t,i,o,a;const r=!e.endDate;if(r!==!n.endDate)return r?-1:1;const l=(null===(t=e.endDate)||void 0===t?void 0:t.value)||"",s=(null===(i=n.endDate)||void 0===i?void 0:i.value)||"";if(l!==s)return s.localeCompare(l);const d=(null===(o=e.startDate)||void 0===o?void 0:o.value)||"";return((null===(a=n.startDate)||void 0===a?void 0:a.value)||"").localeCompare(d)}));var i;return t}(e,n);return{profileDetails:t,social:d,contactInfo:i,skills:o,languages:a,education:r,projects:l,bioDetails:s,cvDetails:c}}var St=a(4594),Dt={};Dt.styleTagTransform=u(),Dt.setAttributes=d(),Dt.insert=l().bind(null,"head"),Dt.domAPI=i(),Dt.insertStyleElement=A();n()(St.A,Dt);St.A&&St.A.locals&&St.A.locals;let Nt=null,Tt=null;function jt(e){return Nt&&e.body.contains(Nt)||(Nt=null,Nt=e.createElement("dialog"),Nt.id="profile-modal",Nt.setAttribute("aria-modal","true"),Nt.setAttribute("aria-labelledby","modal-title"),Nt.setAttribute("aria-describedby","modal-desc"),Nt.innerHTML='\n <div class="modal">\n <div class="modal-header">\n <h2 id="modal-title"></h2>\n <div id="modal-header-action"></div>\n </div>\n <div id="modal-desc"></div>\n <section id="modal-error" class="modal__error-section" aria-live="assertive" role="alert" hidden></section>\n <div id="modal-buttons"></div>\n </div>\n ',e.body.appendChild(Nt)),Nt}function zt(e){return{dialog:e,title:e.querySelector("#modal-title"),headerAction:e.querySelector("#modal-header-action"),description:e.querySelector("#modal-desc"),error:e.querySelector("#modal-error"),buttons:e.querySelector("#modal-buttons")}}function Ft(e){e.error.textContent="",e.error.hidden=!0}function Pt(e,n){e.error.textContent=n,e.error.hidden=!1}function Lt(e,n){const t=function(e){const n=Array.from(e.querySelectorAll('input, select, textarea, [contenteditable="true"], [tabindex]:not([tabindex="-1"])'));for(const e of n){const n=e.hasAttribute("disabled")||"true"===e.getAttribute("aria-disabled"),t=e.hasAttribute("hidden")||"true"===e.getAttribute("aria-hidden");if(!n&&!t)return e}return null}(e);if(t)return t.focus(),void((t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&t.select());const i=n.querySelector("button");i&&i.focus()}function Mt({title:e,message:n,buttons:t,headerAction:i,dom:o}){const a=jt(o),r=zt(a);return Tt=o.activeElement,function(e){if("function"==typeof e.showModal)try{return void(e.open||e.showModal())}catch{}e.setAttribute("open","")}(a),r.title.textContent=e||"",r.description.innerHTML="","string"==typeof n?r.description.textContent=n:r.description.appendChild(n),r.buttons.innerHTML="",Ft(r),new Promise(e=>{const n=n=>{!function(){if(Nt){!function(e){"function"==typeof e.close&&e.open?e.close():e.removeAttribute("open")}(Nt),Nt.oncancel=null;const e=Nt.querySelector("#modal-header-action button");e&&(e.onclick=null),Tt&&"focus"in Tt&&Tt.focus()}}(),e(n)},l=()=>{const e=a.querySelector("button[data-cancel]");e?e.click():n(!1)};a.oncancel=e=>{e.preventDefault(),l()},r.headerAction.innerHTML="";const s=i||{type:"close"};if("close"===s.type){const e=o.createElement("button");e.setAttribute("type","button"),e.setAttribute("aria-label","Close dialog"),ue(on,e),e.onclick=()=>l(),r.headerAction.appendChild(e)}else if("button"===s.type){const e=o.createElement("button");e.setAttribute("type","button"),e.className=s.className||"modal__header-action-button profile__action-button profile-action-text flex-center",e.textContent=s.label,e.setAttribute("aria-label",s.ariaLabel||s.label),e.onclick=async()=>{s.onClick&&await s.onClick()},r.headerAction.appendChild(e)}t.forEach(e=>{const t=o.createElement("button");t.setAttribute("type","button"),t.textContent=e.label,e.primary&&t.classList.add("btn-primary"),e.cancel&&(t.classList.add("btn-light"),t.setAttribute("data-cancel","true")),t.addEventListener("click",async()=>{if(e.beforeClose){if(!await e.beforeClose())return}n(e.value)}),r.buttons.appendChild(t)}),Lt(r.description,r.buttons)})}function Wt(e){const n=e.submitLabel||"Save Changes",t=e.cancelLabel||"Cancel",i=jt(e.dom),o=zt(i),a=e.dom.createElement("button");a.type="submit",a.hidden=!0,a.tabIndex=-1,e.form.appendChild(a);const r=e=>{e.preventDefault();const n=i.querySelector("#modal-buttons .btn-primary");null==n||n.click()};return e.form.addEventListener("submit",r),Mt({title:e.title,message:e.form,headerAction:e.headerAction,buttons:[{label:t,value:null,cancel:!0},{label:n,value:"save",primary:!0,beforeClose:async()=>{if(Ft(o),e.validate){const n=await e.validate();if(n)return Pt(o,n),!1}if(!e.onSave)return!0;try{return await e.onSave(),!0}catch(n){const t=n instanceof Error?n.message:String(n),i=e.formatSaveError?e.formatSaveError(n):t;return Pt(o,i),!1}}}],dom:e.dom}).then(n=>"save"!==n?null:function(e){const n=new FormData(e),t={};return n.forEach((e,n)=>{t[n]=String(e)}),t}(e.form)).finally(()=>{e.form.removeEventListener("submit",r),a.remove()})}var Rt=a(5203),Ut={};Ut.styleTagTransform=u(),Ut.setAttributes=d(),Ut.insert=l().bind(null,"head"),Ut.domAPI=i(),Ut.insertStyleElement=A();n()(Rt.A,Ut);Rt.A&&Rt.A.locals&&Rt.A.locals;var Ht=a(7380),Yt={};Yt.styleTagTransform=u(),Yt.setAttributes=d(),Yt.insert=l().bind(null,"head"),Yt.domAPI=i(),Yt.insertStyleElement=A();n()(Ht.A,Yt);Ht.A&&Ht.A.locals&&Ht.A.locals;function Ot(e){return e.startsWith("_:")?e.slice(2):e}function qt(e,n,t){if(!e.updater)throw new Error(Ie);const i=(n||[]).filter(n=>{if(!(n&&n.subject&&n.predicate&&n.object))return!1;const t=n.why;return e.holds(n.subject,n.predicate,n.object,t)}),o=(t||[]).filter(e=>Boolean(e&&e.subject&&e.predicate&&e.object));return 0===i.length&&0===o.length?Promise.resolve():new Promise((n,t)=>{try{e.updater.update(i,o,(e,i,o)=>{!0!==i?t(new Error(o||"Failed to save updates")):n()})}catch(e){t(e instanceof Error?e:new Error(String(e)))}})}function Vt(e,n,t){return e.statementsMatching(n,null,null,t)}function Qt(e,n,t,i,o,a,r){o.push(...e.statementsMatching(n,t,null,i)),r&&a.push((0,Me.st)(n,t,r,i))}function Zt(e,n,t,i){const o=e.each(n,t,null,i),a=o.flatMap(n=>Vt(e,n,i));return{linkedNodes:o,linkedStatements:a,linkStatements:e.statementsMatching(n,t,null,i)}}function Xt(e,n){const t=Ot(n);return e.find(e=>Ot(e.value)===t||e.value===n)}let Gt=0;function Kt(e){const n=Date.now(),t=n>Gt?n:Gt+1;return Gt=t,(0,Me.sym)(`${e.uri}#id${t}`)}function Jt(e,n,t,i){const o=i.value.startsWith("tel:")?i.value:`tel:${i.value}`,a=(0,Me.sym)(o),r=[(0,Me.st)(e,me.ns.vcard("hasTelephone"),t,n),(0,Me.st)(t,me.ns.vcard("value"),a,n)];return i.type&&r.push((0,Me.st)(t,me.ns.rdf("type"),me.ns.vcard(i.type),n)),r}function ei(e,n,t,i){const o=i.value.startsWith("mailto:")?i.value:`mailto:${i.value}`,a=(0,Me.sym)(o),r=[(0,Me.st)(e,me.ns.vcard("hasEmail"),t,n),(0,Me.st)(t,me.ns.vcard("value"),a,n)];return i.type&&r.push((0,Me.st)(t,me.ns.rdf("type"),me.ns.vcard(i.type),n)),r}function ni(e,n,t,i){const o=[(0,Me.st)(e,me.ns.vcard("hasAddress"),t,n)];return i.type&&o.push((0,Me.st)(t,me.ns.rdf("type"),me.ns.vcard(i.type),n)),i.streetAddress&&o.push((0,Me.st)(t,me.ns.vcard("street-address"),i.streetAddress,n)),i.locality&&o.push((0,Me.st)(t,me.ns.vcard("locality"),i.locality,n)),i.region&&o.push((0,Me.st)(t,me.ns.vcard("region"),i.region,n)),i.postalCode&&o.push((0,Me.st)(t,me.ns.vcard("postal-code"),i.postalCode,n)),i.countryName&&o.push((0,Me.st)(t,me.ns.vcard("country-name"),i.countryName,n)),o}async function ti(e,n,t){try{await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.vcard("hasTelephone"),null,i),a=[],r=[];t.remove.forEach(t=>{if(!t.entryNode)return;const r=Xt(o,t.entryNode);if(r){const t=Zt(e,n,me.ns.vcard("hasTelephone"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===r.value});t&&a.push(t),a.push(...Vt(e,r,i))}}),t.update.forEach(t=>{if(!t.entryNode)return;const l=Xt(o,t.entryNode);if(!l)return void r.push(...Jt(n,i,Kt(i),t));const s=Zt(e,n,me.ns.vcard("hasTelephone"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===l.value});s&&a.push(s),a.push(...Vt(e,l,i)),r.push(...Jt(n,i,l,t))}),t.create.forEach(e=>{r.push(...Jt(n,i,Kt(i),e))}),await qt(e,a,r)}(e,n,t.phoneOps),await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.vcard("hasEmail"),null,i),a=[],r=[];t.remove.forEach(t=>{if(!t.entryNode)return;const r=Xt(o,t.entryNode);if(r){const t=Zt(e,n,me.ns.vcard("hasEmail"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===r.value});t&&a.push(t),a.push(...Vt(e,r,i))}}),t.update.forEach(t=>{if(!t.entryNode)return;const l=Xt(o,t.entryNode);l?(a.push(...Vt(e,l,i)),r.push(...ei(n,i,l,t))):r.push(...ei(n,i,Kt(i),t))}),t.create.forEach(e=>{r.push(...ei(n,i,Kt(i),e))}),await qt(e,a,r)}(e,n,t.emailOps),await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.vcard("hasAddress"),null,i),a=[],r=[];t.remove.forEach(t=>{if(!t.entryNode)return;const r=Xt(o,t.entryNode);if(r){const t=Zt(e,n,me.ns.vcard("hasAddress"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===r.value});t&&a.push(t),a.push(...Vt(e,r,i))}}),t.update.forEach(t=>{if(!t.entryNode)return;const l=Xt(o,t.entryNode);l?(a.push(...Vt(e,l,i)),r.push(...ni(n,i,l,t))):r.push(...ni(n,i,Kt(i),t))}),t.create.forEach(e=>{r.push(...ni(n,i,Kt(i),e))}),await qt(e,a,r)}(e,n,t.addressOps)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`Failed to save contact info: ${n}`)}}const ii="+1",oi=[{iso2:"EG",dialCode:"+20",name:"Egypt"},{iso2:"ZA",dialCode:"+27",name:"South Africa"},{iso2:"GR",dialCode:"+30",name:"Greece"},{iso2:"NL",dialCode:"+31",name:"Netherlands"},{iso2:"BE",dialCode:"+32",name:"Belgium"},{iso2:"FR",dialCode:"+33",name:"France"},{iso2:"ES",dialCode:"+34",name:"Spain"},{iso2:"HU",dialCode:"+36",name:"Hungary"},{iso2:"IT",dialCode:"+39",name:"Italy"},{iso2:"RO",dialCode:"+40",name:"Romania"},{iso2:"CH",dialCode:"+41",name:"Switzerland"},{iso2:"AT",dialCode:"+43",name:"Austria"},{iso2:"GG",dialCode:"+44",name:"Guernsey"},{iso2:"IM",dialCode:"+44",name:"Isle of Man"},{iso2:"JE",dialCode:"+44",name:"Jersey"},{iso2:"GB",dialCode:"+44",name:"United Kingdom"},{iso2:"DK",dialCode:"+45",name:"Denmark"},{iso2:"SE",dialCode:"+46",name:"Sweden"},{iso2:"BV",dialCode:"+47",name:"Bouvet Island"},{iso2:"NO",dialCode:"+47",name:"Norway"},{iso2:"PL",dialCode:"+48",name:"Poland"},{iso2:"DE",dialCode:"+49",name:"Germany"},{iso2:"PE",dialCode:"+51",name:"Peru"},{iso2:"MX",dialCode:"+52",name:"Mexico"},{iso2:"CU",dialCode:"+53",name:"Cuba"},{iso2:"AR",dialCode:"+54",name:"Argentina"},{iso2:"BR",dialCode:"+55",name:"Brazil"},{iso2:"CL",dialCode:"+56",name:"Chile"},{iso2:"CO",dialCode:"+57",name:"Colombia"},{iso2:"VE",dialCode:"+58",name:"Venezuela"},{iso2:"MY",dialCode:"+60",name:"Malaysia"},{iso2:"AU",dialCode:"+61",name:"Australia"},{iso2:"CX",dialCode:"+61",name:"Christmas Island"},{iso2:"CC",dialCode:"+61",name:"Cocos (Keeling) Islands"},{iso2:"ID",dialCode:"+62",name:"Indonesia"},{iso2:"PH",dialCode:"+63",name:"Philippines"},{iso2:"NZ",dialCode:"+64",name:"New Zealand"},{iso2:"PN",dialCode:"+64",name:"Pitcairn Islands"},{iso2:"SG",dialCode:"+65",name:"Singapore"},{iso2:"TH",dialCode:"+66",name:"Thailand"},{iso2:"RU",dialCode:"+73",name:"Russia"},{iso2:"KZ",dialCode:"+76",name:"Kazakhstan"},{iso2:"JP",dialCode:"+81",name:"Japan"},{iso2:"KR",dialCode:"+82",name:"South Korea"},{iso2:"VN",dialCode:"+84",name:"Vietnam"},{iso2:"CN",dialCode:"+86",name:"China"},{iso2:"TR",dialCode:"+90",name:"Turkiye"},{iso2:"IN",dialCode:"+91",name:"India"},{iso2:"PK",dialCode:"+92",name:"Pakistan"},{iso2:"AF",dialCode:"+93",name:"Afghanistan"},{iso2:"LK",dialCode:"+94",name:"Sri Lanka"},{iso2:"MM",dialCode:"+95",name:"Myanmar"},{iso2:"IR",dialCode:"+98",name:"Iran"},{iso2:"SS",dialCode:"+211",name:"South Sudan"},{iso2:"MA",dialCode:"+212",name:"Morocco"},{iso2:"DZ",dialCode:"+213",name:"Algeria"},{iso2:"TN",dialCode:"+216",name:"Tunisia"},{iso2:"LY",dialCode:"+218",name:"Libya"},{iso2:"GM",dialCode:"+220",name:"Gambia"},{iso2:"SN",dialCode:"+221",name:"Senegal"},{iso2:"MR",dialCode:"+222",name:"Mauritania"},{iso2:"ML",dialCode:"+223",name:"Mali"},{iso2:"GN",dialCode:"+224",name:"Guinea"},{iso2:"CI",dialCode:"+225",name:"Ivory Coast"},{iso2:"BF",dialCode:"+226",name:"Burkina Faso"},{iso2:"NE",dialCode:"+227",name:"Niger"},{iso2:"TG",dialCode:"+228",name:"Togo"},{iso2:"BJ",dialCode:"+229",name:"Benin"},{iso2:"MU",dialCode:"+230",name:"Mauritius"},{iso2:"LR",dialCode:"+231",name:"Liberia"},{iso2:"SL",dialCode:"+232",name:"Sierra Leone"},{iso2:"GH",dialCode:"+233",name:"Ghana"},{iso2:"NG",dialCode:"+234",name:"Nigeria"},{iso2:"TD",dialCode:"+235",name:"Chad"},{iso2:"CF",dialCode:"+236",name:"Central African Republic"},{iso2:"CM",dialCode:"+237",name:"Cameroon"},{iso2:"CV",dialCode:"+238",name:"Cape Verde"},{iso2:"ST",dialCode:"+239",name:"Sao Tome and Principe"},{iso2:"GQ",dialCode:"+240",name:"Equatorial Guinea"},{iso2:"GA",dialCode:"+241",name:"Gabon"},{iso2:"CG",dialCode:"+242",name:"Congo"},{iso2:"CD",dialCode:"+243",name:"DR Congo"},{iso2:"AO",dialCode:"+244",name:"Angola"},{iso2:"GW",dialCode:"+245",name:"Guinea-Bissau"},{iso2:"IO",dialCode:"+246",name:"British Indian Ocean Territory"},{iso2:"SC",dialCode:"+248",name:"Seychelles"},{iso2:"SD",dialCode:"+249",name:"Sudan"},{iso2:"RW",dialCode:"+250",name:"Rwanda"},{iso2:"ET",dialCode:"+251",name:"Ethiopia"},{iso2:"SO",dialCode:"+252",name:"Somalia"},{iso2:"DJ",dialCode:"+253",name:"Djibouti"},{iso2:"KE",dialCode:"+254",name:"Kenya"},{iso2:"TZ",dialCode:"+255",name:"Tanzania"},{iso2:"UG",dialCode:"+256",name:"Uganda"},{iso2:"BI",dialCode:"+257",name:"Burundi"},{iso2:"MZ",dialCode:"+258",name:"Mozambique"},{iso2:"ZM",dialCode:"+260",name:"Zambia"},{iso2:"MG",dialCode:"+261",name:"Madagascar"},{iso2:"TF",dialCode:"+262",name:"French Southern and Antarctic Lands"},{iso2:"YT",dialCode:"+262",name:"Mayotte"},{iso2:"RE",dialCode:"+262",name:"Reunion"},{iso2:"ZW",dialCode:"+263",name:"Zimbabwe"},{iso2:"NA",dialCode:"+264",name:"Namibia"},{iso2:"MW",dialCode:"+265",name:"Malawi"},{iso2:"LS",dialCode:"+266",name:"Lesotho"},{iso2:"BW",dialCode:"+267",name:"Botswana"},{iso2:"SZ",dialCode:"+268",name:"Eswatini"},{iso2:"UM",dialCode:"+268",name:"United States Minor Outlying Islands"},{iso2:"KM",dialCode:"+269",name:"Comoros"},{iso2:"SH",dialCode:"+290",name:"Saint Helena, Ascension and Tristan da Cunha"},{iso2:"ER",dialCode:"+291",name:"Eritrea"},{iso2:"AW",dialCode:"+297",name:"Aruba"},{iso2:"FO",dialCode:"+298",name:"Faroe Islands"},{iso2:"GL",dialCode:"+299",name:"Greenland"},{iso2:"GI",dialCode:"+350",name:"Gibraltar"},{iso2:"PT",dialCode:"+351",name:"Portugal"},{iso2:"LU",dialCode:"+352",name:"Luxembourg"},{iso2:"IE",dialCode:"+353",name:"Ireland"},{iso2:"IS",dialCode:"+354",name:"Iceland"},{iso2:"AL",dialCode:"+355",name:"Albania"},{iso2:"MT",dialCode:"+356",name:"Malta"},{iso2:"CY",dialCode:"+357",name:"Cyprus"},{iso2:"FI",dialCode:"+358",name:"Finland"},{iso2:"BG",dialCode:"+359",name:"Bulgaria"},{iso2:"LT",dialCode:"+370",name:"Lithuania"},{iso2:"LV",dialCode:"+371",name:"Latvia"},{iso2:"EE",dialCode:"+372",name:"Estonia"},{iso2:"MD",dialCode:"+373",name:"Moldova"},{iso2:"AM",dialCode:"+374",name:"Armenia"},{iso2:"BY",dialCode:"+375",name:"Belarus"},{iso2:"AD",dialCode:"+376",name:"Andorra"},{iso2:"MC",dialCode:"+377",name:"Monaco"},{iso2:"SM",dialCode:"+378",name:"San Marino"},{iso2:"UA",dialCode:"+380",name:"Ukraine"},{iso2:"RS",dialCode:"+381",name:"Serbia"},{iso2:"ME",dialCode:"+382",name:"Montenegro"},{iso2:"XK",dialCode:"+383",name:"Kosovo"},{iso2:"HR",dialCode:"+385",name:"Croatia"},{iso2:"SI",dialCode:"+386",name:"Slovenia"},{iso2:"BA",dialCode:"+387",name:"Bosnia and Herzegovina"},{iso2:"MK",dialCode:"+389",name:"North Macedonia"},{iso2:"CZ",dialCode:"+420",name:"Czechia"},{iso2:"SK",dialCode:"+421",name:"Slovakia"},{iso2:"LI",dialCode:"+423",name:"Liechtenstein"},{iso2:"FK",dialCode:"+500",name:"Falkland Islands"},{iso2:"GS",dialCode:"+500",name:"South Georgia"},{iso2:"BZ",dialCode:"+501",name:"Belize"},{iso2:"GT",dialCode:"+502",name:"Guatemala"},{iso2:"SV",dialCode:"+503",name:"El Salvador"},{iso2:"HN",dialCode:"+504",name:"Honduras"},{iso2:"NI",dialCode:"+505",name:"Nicaragua"},{iso2:"CR",dialCode:"+506",name:"Costa Rica"},{iso2:"PA",dialCode:"+507",name:"Panama"},{iso2:"PM",dialCode:"+508",name:"Saint Pierre and Miquelon"},{iso2:"HT",dialCode:"+509",name:"Haiti"},{iso2:"GP",dialCode:"+590",name:"Guadeloupe"},{iso2:"BL",dialCode:"+590",name:"Saint Barthelemy"},{iso2:"MF",dialCode:"+590",name:"Saint Martin"},{iso2:"BO",dialCode:"+591",name:"Bolivia"},{iso2:"GY",dialCode:"+592",name:"Guyana"},{iso2:"EC",dialCode:"+593",name:"Ecuador"},{iso2:"GF",dialCode:"+594",name:"French Guiana"},{iso2:"PY",dialCode:"+595",name:"Paraguay"},{iso2:"MQ",dialCode:"+596",name:"Martinique"},{iso2:"SR",dialCode:"+597",name:"Suriname"},{iso2:"UY",dialCode:"+598",name:"Uruguay"},{iso2:"BQ",dialCode:"+599",name:"Caribbean Netherlands"},{iso2:"CW",dialCode:"+599",name:"Curacao"},{iso2:"TL",dialCode:"+670",name:"Timor-Leste"},{iso2:"NF",dialCode:"+672",name:"Norfolk Island"},{iso2:"BN",dialCode:"+673",name:"Brunei"},{iso2:"NR",dialCode:"+674",name:"Nauru"},{iso2:"PG",dialCode:"+675",name:"Papua New Guinea"},{iso2:"TO",dialCode:"+676",name:"Tonga"},{iso2:"SB",dialCode:"+677",name:"Solomon Islands"},{iso2:"VU",dialCode:"+678",name:"Vanuatu"},{iso2:"FJ",dialCode:"+679",name:"Fiji"},{iso2:"PW",dialCode:"+680",name:"Palau"},{iso2:"WF",dialCode:"+681",name:"Wallis and Futuna"},{iso2:"CK",dialCode:"+682",name:"Cook Islands"},{iso2:"NU",dialCode:"+683",name:"Niue"},{iso2:"WS",dialCode:"+685",name:"Samoa"},{iso2:"KI",dialCode:"+686",name:"Kiribati"},{iso2:"NC",dialCode:"+687",name:"New Caledonia"},{iso2:"TV",dialCode:"+688",name:"Tuvalu"},{iso2:"PF",dialCode:"+689",name:"French Polynesia"},{iso2:"TK",dialCode:"+690",name:"Tokelau"},{iso2:"FM",dialCode:"+691",name:"Micronesia"},{iso2:"MH",dialCode:"+692",name:"Marshall Islands"},{iso2:"KP",dialCode:"+850",name:"North Korea"},{iso2:"HK",dialCode:"+852",name:"Hong Kong"},{iso2:"MO",dialCode:"+853",name:"Macau"},{iso2:"KH",dialCode:"+855",name:"Cambodia"},{iso2:"LA",dialCode:"+856",name:"Laos"},{iso2:"BD",dialCode:"+880",name:"Bangladesh"},{iso2:"TW",dialCode:"+886",name:"Taiwan"},{iso2:"MV",dialCode:"+960",name:"Maldives"},{iso2:"LB",dialCode:"+961",name:"Lebanon"},{iso2:"JO",dialCode:"+962",name:"Jordan"},{iso2:"SY",dialCode:"+963",name:"Syria"},{iso2:"IQ",dialCode:"+964",name:"Iraq"},{iso2:"KW",dialCode:"+965",name:"Kuwait"},{iso2:"SA",dialCode:"+966",name:"Saudi Arabia"},{iso2:"YE",dialCode:"+967",name:"Yemen"},{iso2:"OM",dialCode:"+968",name:"Oman"},{iso2:"PS",dialCode:"+970",name:"Palestine"},{iso2:"AE",dialCode:"+971",name:"United Arab Emirates"},{iso2:"IL",dialCode:"+972",name:"Israel"},{iso2:"BH",dialCode:"+973",name:"Bahrain"},{iso2:"QA",dialCode:"+974",name:"Qatar"},{iso2:"BT",dialCode:"+975",name:"Bhutan"},{iso2:"MN",dialCode:"+976",name:"Mongolia"},{iso2:"NP",dialCode:"+977",name:"Nepal"},{iso2:"TJ",dialCode:"+992",name:"Tajikistan"},{iso2:"TM",dialCode:"+993",name:"Turkmenistan"},{iso2:"AZ",dialCode:"+994",name:"Azerbaijan"},{iso2:"GE",dialCode:"+995",name:"Georgia"},{iso2:"KG",dialCode:"+996",name:"Kyrgyzstan"},{iso2:"UZ",dialCode:"+998",name:"Uzbekistan"},{iso2:"US",dialCode:"+1201",name:"United States"},{iso2:"CA",dialCode:"+1204",name:"Canada"},{iso2:"BS",dialCode:"+1242",name:"Bahamas"},{iso2:"BB",dialCode:"+1246",name:"Barbados"},{iso2:"AI",dialCode:"+1264",name:"Anguilla"},{iso2:"AG",dialCode:"+1268",name:"Antigua and Barbuda"},{iso2:"VG",dialCode:"+1284",name:"British Virgin Islands"},{iso2:"VI",dialCode:"+1340",name:"United States Virgin Islands"},{iso2:"KY",dialCode:"+1345",name:"Cayman Islands"},{iso2:"BM",dialCode:"+1441",name:"Bermuda"},{iso2:"GD",dialCode:"+1473",name:"Grenada"},{iso2:"TC",dialCode:"+1649",name:"Turks and Caicos Islands"},{iso2:"MS",dialCode:"+1664",name:"Montserrat"},{iso2:"MP",dialCode:"+1670",name:"Northern Mariana Islands"},{iso2:"GU",dialCode:"+1671",name:"Guam"},{iso2:"AS",dialCode:"+1684",name:"American Samoa"},{iso2:"SX",dialCode:"+1721",name:"Sint Maarten"},{iso2:"LC",dialCode:"+1758",name:"Saint Lucia"},{iso2:"DM",dialCode:"+1767",name:"Dominica"},{iso2:"VC",dialCode:"+1784",name:"Saint Vincent and the Grenadines"},{iso2:"PR",dialCode:"+1787",name:"Puerto Rico"},{iso2:"DO",dialCode:"+1809",name:"Dominican Republic"},{iso2:"TT",dialCode:"+1868",name:"Trinidad and Tobago"},{iso2:"KN",dialCode:"+1869",name:"Saint Kitts and Nevis"},{iso2:"JM",dialCode:"+1876",name:"Jamaica"},{iso2:"SJ",dialCode:"+4779",name:"Svalbard and Jan Mayen"},{iso2:"AX",dialCode:"+35818",name:"Aland Islands"},{iso2:"EH",dialCode:"+2125288",name:"Western Sahara"},{iso2:"VA",dialCode:"+3906698",name:"Vatican City"}],ai=new Set(["AQ","AX","BL","BM","BQ","BV","CC","CK","CP","CW","CX","EH","FK","FO","GF","GG","GI","GL","GP","GS","GU","HK","HM","IM","IO","JE","KY","MF","MO","MP","MQ","MS","NC","NF","NU","PF","PM","PN","PR","RE","SH","SJ","TC","TF","TK","UM","VG","VI","WF","YT"]);function ri(e){return/^\+1\d{3,}$/.test(e)?"+1":/^\+7\d+$/.test(e)?"+7":/^\+39\d{3,}$/.test(e)?"+39":/^\+358\d+$/.test(e)?"+358":/^\+47\d+$/.test(e)?"+47":/^\+212\d+$/.test(e)?"+212":e}const li=[...oi.filter(e=>!ai.has(e.iso2)).map(e=>({...e,dialCode:ri(e.dialCode)})).filter((e,n,t)=>{const i=`${e.iso2}|${e.dialCode}`;return t.findIndex(e=>`${e.iso2}|${e.dialCode}`===i)===n})].sort((e,n)=>{const t=Number.parseInt(e.dialCode.replace("+",""),10),i=Number.parseInt(n.dialCode.replace("+",""),10);return t!==i?t-i:e.name.localeCompare(n.name)}),si={"+1":"US","+7":"RU"},di=Array.from(li.reduce((e,n)=>{if(!e.get(n.dialCode))return e.set(n.dialCode,n),e;const t=si[n.dialCode];return t&&n.iso2===t&&e.set(n.dialCode,n),e},new Map).values()),ci=Array.from(new Set(oi.map(e=>e.dialCode))).sort((e,n)=>n.length-e.length);function Ai(e){const n=e.trim();if(!n)return{dialCode:ii,localNumber:""};if(!n.startsWith("+"))return{dialCode:ii,localNumber:n};const t=ci.find(e=>n.startsWith(e));if(!t)return{dialCode:ii,localNumber:n};const i=ri(t),o=n.slice(t.length),a=n.slice(i.length);return{dialCode:di.some(e=>e.dialCode===i)?i:ii,localNumber:t.length>i.length?a:o}}function pi(e,n){const t=n.trim();return t?t.startsWith("+")?t:`${e}${t}`:""}function ui(e){if(!e)return"";if("string"==typeof e)return e;if("object"==typeof e&&"value"in e){const n=e.value;return"string"==typeof n?n:""}return""}function fi(e){const n=ui(e).trim();if(!n)return"";const t=n.replace(/^<|>$/g,"").split("#"),i=t[t.length-1].split("/");return i[i.length-1]}function mi(e){return e.replace(/[\u0000-\u001F\u007F]/g," ").replace(/\s+/g," ").trim()}function gi(e){return Boolean(e&&""!==e.trim())}function hi(e){const n=fi(e).trim().toLowerCase();return n?"cell"===n||"mobile"===n?"Mobile":"home"===n?"Home":"work"===n||"office"===n?"Work":"":""}function Ci(e){const n=fi(e).trim().toLowerCase();return n?"cell"===n||"mobile"===n?"Cell":"home"===n?"Home":"work"===n||"office"===n?"Work":"":""}function bi(e){const n=fi(e).trim().toLowerCase();return n?"personal"===n||"home"===n?"Personal":"office"===n||"work"===n?"Office":"":""}function Ei(e){const n=fi(e).trim().toLowerCase();return n?"personal"===n||"home"===n?"Home":"office"===n||"work"===n?"Office":"":""}function _i(e,n){const t=e[n];t&&(t.entryNode?t.status="deleted":e.splice(n,1))}function vi(e,n,t){e[n]=t.trim(),e.entryNode?e.status="existing"===e.status||"deleted"===e.status?"modified":e.status:e.status="new"}function wi(e,n){return{create:e.filter(e=>"new"===e.status&&n(e)),update:e.filter(e=>"modified"===e.status&&n(e)),remove:e.filter(e=>"deleted"===e.status)}}function yi(e,n,t,i){e[n]=t,i(e)?e.entryNode?e.status="existing"===e.status||"deleted"===e.status?"modified":e.status:e.status="new":e.status=e.entryNode?"deleted":"new"}function Bi(e){return mi(e).replace(/\s+/g,"").toLowerCase()}function xi(e){return mi(e).replace(/[^0-9()\-\s.]/g,"")}function ki(e){return mi(e)}function Ii(e){return mi(e)}const $i=X`
|
|
310
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
311
|
+
width="16"
|
|
312
|
+
height="16"
|
|
313
|
+
viewBox="0 0 16 16"
|
|
314
|
+
fill="none"
|
|
315
|
+
aria-hidden="true"
|
|
316
|
+
focusable="false"
|
|
317
|
+
>
|
|
318
|
+
<path d="M9.22198 11.0453C9.35967 11.1085 9.51478 11.1229 9.66178 11.0862C9.80877 11.0495 9.93887 10.9638 10.0307 10.8433L10.2673 10.5333C10.3915 10.3677 10.5526 10.2333 10.7377 10.1407C10.9228 10.0481 11.127 9.99992 11.334 9.99992H13.334C13.6876 9.99992 14.0267 10.1404 14.2768 10.3904C14.5268 10.6405 14.6673 10.9796 14.6673 11.3333V13.3333C14.6673 13.6869 14.5268 14.026 14.2768 14.2761C14.0267 14.5261 13.6876 14.6666 13.334 14.6666C10.1514 14.6666 7.09914 13.4023 4.8487 11.1519C2.59827 8.90143 1.33398 5.84918 1.33398 2.66659C1.33398 2.31296 1.47446 1.97382 1.72451 1.72378C1.97456 1.47373 2.3137 1.33325 2.66732 1.33325H4.66732C5.02094 1.33325 5.36008 1.47373 5.61013 1.72378C5.86017 1.97382 6.00065 2.31296 6.00065 2.66659V4.66659C6.00065 4.87358 5.95246 5.07773 5.85989 5.26287C5.76732 5.44801 5.63291 5.60906 5.46732 5.73325L5.15532 5.96725C5.03293 6.0607 4.94666 6.19364 4.91118 6.34349C4.87569 6.49333 4.89317 6.65084 4.96065 6.78925C5.87177 8.63983 7.37027 10.1364 9.22198 11.0453Z" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
319
|
+
</svg>
|
|
320
|
+
`,Si=X`
|
|
321
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
322
|
+
width="16"
|
|
323
|
+
height="16"
|
|
324
|
+
viewBox="0 0 16 16"
|
|
325
|
+
fill="none"
|
|
326
|
+
aria-hidden="true"
|
|
327
|
+
focusable="false"
|
|
328
|
+
>
|
|
329
|
+
<path d="M14.6673 4.66675L8.67332 8.48475C8.46991 8.60289 8.23888 8.66512 8.00365 8.66512C7.76843 8.66512 7.53739 8.60289 7.33398 8.48475L1.33398 4.66675" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
330
|
+
<path d="M13.334 2.66675H2.66732C1.93094 2.66675 1.33398 3.2637 1.33398 4.00008V12.0001C1.33398 12.7365 1.93094 13.3334 2.66732 13.3334H13.334C14.0704 13.3334 14.6673 12.7365 14.6673 12.0001V4.00008C14.6673 3.2637 14.0704 2.66675 13.334 2.66675Z" stroke="#4A5565" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
|
|
331
|
+
</svg>
|
|
332
|
+
`;function Di(e){return function(e){return"value"in e}(e)?gi(e.value):[e.streetAddress,e.locality,e.region,e.postalCode,e.countryName].some(gi)}function Ni(e,n){const t=e.map((e,n)=>({phone:e,index:n})).filter(({phone:e})=>"deleted"!==e.status);return X`
|
|
333
|
+
<section
|
|
334
|
+
aria-labelledby="phone-numbers-heading"
|
|
335
|
+
class="profile-edit-dialog__section">
|
|
336
|
+
<header class="profile__section-header">
|
|
337
|
+
<h3 id="phone-numbers-heading" class="profile-edit-dialog__section-heading">
|
|
338
|
+
<span class="sectionTitleIcon" aria-hidden="true">${$i}</span>
|
|
339
|
+
Phone Numbers
|
|
340
|
+
</h3>
|
|
341
|
+
<button
|
|
342
|
+
type="button"
|
|
343
|
+
class="profile__action-button profile-action-text flex-center"
|
|
344
|
+
aria-label="Add another phone number"
|
|
345
|
+
@click=${t=>{t.preventDefault(),e.unshift({value:"",type:"",entryNode:"",status:"new"}),n({focusSelector:'[name="phone-value-0"]'})}}
|
|
346
|
+
>
|
|
347
|
+
<span class="profile__add-more-content inline-flex-row">
|
|
348
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
349
|
+
Add More
|
|
350
|
+
</span>
|
|
351
|
+
</button>
|
|
47
352
|
</header>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
${
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
353
|
+
<fieldset>
|
|
354
|
+
<legend class="sr-only">Phone number entries</legend>
|
|
355
|
+
${t.map(({index:t},i)=>function({phones:e,index:n,displayIndex:t,onDelete:i}){const o=e[n],a=`Phone Number ${t+1}`,r=`Phone Type ${t+1}`,l=`phone-value-${n}`,s=`phone-type-${n}`,d=Ai((null==o?void 0:o.value)||"");let c=d.dialCode;return X`
|
|
356
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--contact-point">
|
|
357
|
+
<div class="profile-edit-dialog__field">
|
|
358
|
+
<label aria-label=${a} class="label">
|
|
359
|
+
<input
|
|
360
|
+
class="input"
|
|
361
|
+
type="tel"
|
|
362
|
+
name=${l}
|
|
363
|
+
.value=${d.localNumber}
|
|
364
|
+
required
|
|
365
|
+
data-contact-field="value"
|
|
366
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
367
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
368
|
+
placeholder="Phone Number"
|
|
369
|
+
autocomplete="tel-national"
|
|
370
|
+
inputmode="tel"
|
|
371
|
+
@input=${t=>{const i=xi(t.target.value);e[n]&&yi(e[n],"value",pi(c,i),Di)}}
|
|
372
|
+
/>
|
|
373
|
+
</label>
|
|
374
|
+
</div>
|
|
375
|
+
<label aria-label=${r} class="label profile-edit-dialog__field-type profile-edit-dialog__phone-type-row">
|
|
376
|
+
<select name=${s} id="phone-type-select-${l}" @change=${t=>{const i=t.target.value;e[n]&&vi(e[n],"type",i)}} .value=${(null==o?void 0:o.type)||""}>
|
|
377
|
+
<option value="Cell">Mobile</option>
|
|
378
|
+
<option value="Home">Home</option>
|
|
379
|
+
<option value="Work">Work</option>
|
|
380
|
+
</select>
|
|
381
|
+
</label>
|
|
382
|
+
<div class="profile-edit-dialog__actions">
|
|
383
|
+
<button
|
|
384
|
+
type="button"
|
|
385
|
+
class="profile-edit-dialog__delete-button"
|
|
386
|
+
aria-label=${`Delete phone number ${t+1}`}
|
|
387
|
+
title=${ve}
|
|
388
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
389
|
+
>
|
|
390
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
391
|
+
</button>
|
|
61
392
|
</div>
|
|
62
|
-
</article>
|
|
63
|
-
`,ye=(n,e=tn,t="")=>n?nn`
|
|
64
|
-
<div class="details" role="text" ${t?`aria-label="${t}: ${n}"`:""}>
|
|
65
|
-
${e} ${n}
|
|
66
393
|
</div>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
394
|
+
`}({phones:e,index:t,displayIndex:i,onDelete:()=>{_i(e,t),n()}}))}
|
|
395
|
+
</fieldset>
|
|
396
|
+
</section>
|
|
397
|
+
`}function Ti(e,n){const t=e.map((e,n)=>({email:e,index:n})).filter(({email:e})=>"deleted"!==e.status);return X`
|
|
398
|
+
<section
|
|
399
|
+
aria-labelledby="email-addresses-heading"
|
|
400
|
+
class="profile-edit-dialog__section">
|
|
401
|
+
<header class="profile__section-header">
|
|
402
|
+
<h3 id="email-addresses-heading" class="profile-edit-dialog__section-heading">
|
|
403
|
+
<span class="sectionTitleIcon" aria-hidden="true">${Si}</span>
|
|
404
|
+
Email Addresses
|
|
405
|
+
</h3>
|
|
406
|
+
<button
|
|
407
|
+
type="button"
|
|
408
|
+
class="profile__action-button profile-action-text flex-center"
|
|
409
|
+
aria-label="Add another email address"
|
|
410
|
+
@click=${t=>{t.preventDefault(),e.unshift({value:"",type:"",entryNode:"",status:"new"}),n({focusSelector:'[name="email-value-0"]'})}}
|
|
411
|
+
>
|
|
412
|
+
<span class="profile__add-more-content inline-flex-row">
|
|
413
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
414
|
+
Add More
|
|
415
|
+
</span>
|
|
416
|
+
</button>
|
|
417
|
+
</header>
|
|
418
|
+
<fieldset>
|
|
419
|
+
<legend class="sr-only">Email address entries</legend>
|
|
420
|
+
${t.map(({index:t},i)=>function({emails:e,index:n,displayIndex:t,onDelete:i}){const o=e[n],a=`Email Type ${t+1}`,r=`email-value-${n}`,l=`email-type-${n}`;return X`
|
|
421
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--contact-point">
|
|
422
|
+
<label aria-label=${`Email Address ${t+1}`} class="label profile-edit-dialog__field">
|
|
423
|
+
<input
|
|
424
|
+
class="input"
|
|
425
|
+
type="email"
|
|
426
|
+
name=${r}
|
|
427
|
+
.value=${(null==o?void 0:o.value)||""}
|
|
428
|
+
required
|
|
429
|
+
data-contact-field="value"
|
|
430
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
431
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
432
|
+
placeholder="Email Address"
|
|
433
|
+
autocomplete="email"
|
|
434
|
+
inputmode="email"
|
|
435
|
+
@input=${t=>{const i=Bi(t.target.value);e[n]&&yi(e[n],"value",i,Di)}}
|
|
436
|
+
/>
|
|
437
|
+
</label>
|
|
438
|
+
<label aria-label=${a} class="label profile-edit-dialog__field-type emailTypeRow">
|
|
439
|
+
<select name=${l} id="email-type-select-${r}" @change=${t=>{const i=t.target.value;e[n]&&vi(e[n],"type",i)}} .value=${(null==o?void 0:o.type)||""}>
|
|
440
|
+
<option value="Home">Personal</option>
|
|
441
|
+
<option value="Office">Office</option>
|
|
442
|
+
</select>
|
|
443
|
+
</label>
|
|
444
|
+
<div class="profile-edit-dialog__actions">
|
|
445
|
+
<button
|
|
446
|
+
type="button"
|
|
447
|
+
class="profile-edit-dialog__delete-button"
|
|
448
|
+
aria-label=${`Delete email address ${t+1}`}
|
|
449
|
+
title=${ve}
|
|
450
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
451
|
+
>
|
|
452
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
453
|
+
</button>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
`}({emails:e,index:t,displayIndex:i,onDelete:()=>{_i(e,t),n()}}))}
|
|
457
|
+
</fieldset>
|
|
458
|
+
</section>
|
|
459
|
+
`}function ji(e,n){const t=e.map((e,n)=>({address:e,index:n})).filter(({address:e})=>"deleted"!==e.status);return X`
|
|
460
|
+
<section
|
|
461
|
+
aria-labelledby="address-heading"
|
|
462
|
+
class="profile-edit-dialog__section">
|
|
463
|
+
<header class="profile__section-header">
|
|
464
|
+
<h3 id="address-heading" class="profile-edit-dialog__section-heading">
|
|
465
|
+
<span class="sectionTitleIcon" aria-hidden="true">${Ue}</span>
|
|
466
|
+
Addresses
|
|
467
|
+
</h3>
|
|
468
|
+
<button
|
|
469
|
+
type="button"
|
|
470
|
+
class="profile__action-button profile-action-text flex-center"
|
|
471
|
+
aria-label="Add another address"
|
|
472
|
+
@click=${t=>{t.preventDefault(),e.unshift({streetAddress:"",locality:"",region:"",postalCode:"",countryName:"",type:"",entryNode:"",status:"new"}),n({focusSelector:'[name="address-street-0"]'})}}
|
|
473
|
+
>
|
|
474
|
+
<span class="profile__add-more-content inline-flex-row">
|
|
475
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
476
|
+
Add More
|
|
477
|
+
</span>
|
|
478
|
+
</button>
|
|
479
|
+
</header>
|
|
480
|
+
<fieldset>
|
|
481
|
+
<legend class="sr-only">Address entries</legend>
|
|
482
|
+
${t.map(({index:t},i)=>function({addresses:e,index:n,displayIndex:t,onDelete:i}){const o=e[n],a=`Address ${t+1}`,r=`address-street-${n}`,l=`address-locality-${n}`,s=`address-region-${n}`,d=`address-postal-${n}`,c=`address-country-${n}`,A=t=>i=>{const o=ki(i.target.value);e[n]&&yi(e[n],t,o,Di)};return X`
|
|
483
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--address-header profile-edit-dialog__row--full">
|
|
484
|
+
<p class="profile-edit-dialog__address-title">${a}</p>
|
|
485
|
+
<label aria-label=${`Address Type ${t+1}`} class="label profile-edit-dialog__field-type profile-edit-dialog__field-type--wide hidden">
|
|
486
|
+
Address Type
|
|
487
|
+
<select name=${`address-type-${n}`} id=${`address-type-select-${n}`} @change=${t=>{const i=t.target.value;e[n]&&vi(e[n],"type",i)}} .value=${(null==o?void 0:o.type)||""}>
|
|
488
|
+
<option value="Home">Home</option>
|
|
489
|
+
<option value="Work">Work</option>
|
|
490
|
+
</select>
|
|
491
|
+
</label>
|
|
492
|
+
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
493
|
+
<button
|
|
494
|
+
type="button"
|
|
495
|
+
class="profile-edit-dialog__delete-button"
|
|
496
|
+
aria-label=${`Delete address ${t+1}`}
|
|
497
|
+
title=${ve}
|
|
498
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
499
|
+
>
|
|
500
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
501
|
+
</button>
|
|
502
|
+
</div>
|
|
503
|
+
</div>
|
|
504
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--full">
|
|
505
|
+
<label aria-label=${`${a} Street`} class="label profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
506
|
+
Street Address
|
|
507
|
+
<input
|
|
508
|
+
class="input"
|
|
509
|
+
type="text"
|
|
510
|
+
name=${r}
|
|
511
|
+
.value=${(null==o?void 0:o.streetAddress)||""}
|
|
512
|
+
required
|
|
513
|
+
data-contact-field="streetAddress"
|
|
514
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
515
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
516
|
+
placeholder="Street Address"
|
|
517
|
+
autocomplete="street-address"
|
|
518
|
+
inputmode="text"
|
|
519
|
+
@change=${A("streetAddress")}
|
|
520
|
+
/>
|
|
521
|
+
</label>
|
|
522
|
+
</div>
|
|
523
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--full profile-edit-dialog__row--equal">
|
|
524
|
+
<label aria-label=${`${a} Locality`} class="label profile-edit-dialog__field">
|
|
525
|
+
Locality
|
|
526
|
+
<input
|
|
527
|
+
class="input"
|
|
528
|
+
type="text"
|
|
529
|
+
name=${l}
|
|
530
|
+
.value=${(null==o?void 0:o.locality)||""}
|
|
531
|
+
data-contact-field="locality"
|
|
532
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
533
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
534
|
+
placeholder="City / Locality"
|
|
535
|
+
autocomplete="address-level2"
|
|
536
|
+
inputmode="text"
|
|
537
|
+
@change=${A("locality")}
|
|
538
|
+
/>
|
|
539
|
+
</label>
|
|
540
|
+
<label aria-label=${`${a} Postal Code`} class="label profile-edit-dialog__field">
|
|
541
|
+
Postal Code
|
|
542
|
+
<input
|
|
543
|
+
class="input"
|
|
544
|
+
type="text"
|
|
545
|
+
name=${d}
|
|
546
|
+
.value=${(null==o?void 0:o.postalCode)||""}
|
|
547
|
+
data-contact-field="postalCode"
|
|
548
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
549
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
550
|
+
placeholder="Postal Code"
|
|
551
|
+
autocomplete="postal-code"
|
|
552
|
+
inputmode="text"
|
|
553
|
+
@change=${A("postalCode")}
|
|
554
|
+
/>
|
|
555
|
+
</label>
|
|
556
|
+
</div>
|
|
557
|
+
|
|
558
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--full profile-edit-dialog__row--equal">
|
|
559
|
+
<label aria-label=${`${a} Region`} class="label profile-edit-dialog__field">
|
|
560
|
+
Region
|
|
561
|
+
<input
|
|
562
|
+
class="input"
|
|
563
|
+
type="text"
|
|
564
|
+
name=${s}
|
|
565
|
+
.value=${(null==o?void 0:o.region)||""}
|
|
566
|
+
data-contact-field="region"
|
|
567
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
568
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
569
|
+
placeholder="State / Region"
|
|
570
|
+
autocomplete="address-level1"
|
|
571
|
+
inputmode="text"
|
|
572
|
+
@change=${A("region")}
|
|
573
|
+
/>
|
|
574
|
+
</label>
|
|
575
|
+
<label aria-label=${`${a} Country`} class="label profile-edit-dialog__field">
|
|
576
|
+
Country
|
|
577
|
+
<input
|
|
578
|
+
class="input"
|
|
579
|
+
type="text"
|
|
580
|
+
name=${c}
|
|
581
|
+
.value=${(null==o?void 0:o.countryName)||""}
|
|
582
|
+
data-contact-field="countryName"
|
|
583
|
+
data-entry-node=${(null==o?void 0:o.entryNode)||""}
|
|
584
|
+
data-row-status=${(null==o?void 0:o.status)||"n/a"}
|
|
585
|
+
placeholder="Country"
|
|
586
|
+
autocomplete="country-name"
|
|
587
|
+
inputmode="text"
|
|
588
|
+
@change=${A("countryName")}
|
|
75
589
|
/>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
590
|
+
</label>
|
|
591
|
+
</div>
|
|
592
|
+
`}({addresses:e,index:t,displayIndex:i,onDelete:()=>{_i(e,t),n()}}))}
|
|
593
|
+
</fieldset>
|
|
594
|
+
</section>
|
|
595
|
+
`}function zi(e,n,t,i={}){const o=(i={})=>zi(e,n,t,i);ue(X`
|
|
596
|
+
${Ni(n.phones,o)}
|
|
597
|
+
${Ti(n.emails,o)}
|
|
598
|
+
${ji(n.addresses,o)}
|
|
599
|
+
${"owner"!==t?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
600
|
+
`,e),i.focusSelector&&function(e,n){const t=e.querySelector(n);t&&"function"==typeof t.focus&&(t.scrollIntoView({block:"nearest",behavior:"auto"}),t.focus(),(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&t.select())}(e,i.focusSelector)}function Fi(e,n){const t=document.createElement("form");t.classList.add("profile__edit-form"),t.classList.add("profile__edit-form--contact-info");const i=function(e){const n=(e.emails||[]).map(e=>({value:Bi(ui(e.valueNode).replace(/^mailto:/i,"")),type:Ei(e.type),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"})).filter(e=>Boolean(e.value||e.entryNode||e.type)),t=(e.phones||[]).map(e=>({value:mi(ui(e.valueNode).replace(/^tel:/i,"")),type:Ci(e.type),entryNode:ui(e.entryNode),status:"existing"})).filter(e=>Boolean(e.value)),i=(e.addresses||[]).map(e=>({streetAddress:ki(ui(e.streetAddress)),locality:ki(ui(e.locality)),region:ki(ui(e.region)),postalCode:ki(ui(e.postalCode)),countryName:ki(ui(e.countryName)),type:ui(e.type),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"})).filter(e=>Di(e)||Boolean(e.entryNode||e.type));return{emails:n.length?n:[{value:"",type:"",entryNode:"",status:"new"}],phones:t.length?t:[{value:"",type:"",entryNode:"",status:"new"}],addresses:i.length?i:[{streetAddress:"",locality:"",region:"",postalCode:"",countryName:"",type:"",entryNode:"",status:"new"}]}}(e);return zi(t,i,n),{form:t,formState:i}}async function Pi(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d}=Fi(i,o);await Wt({title:"Edit More Contacts",dom:l,form:s,headerAction:{type:"close"},submitLabel:Ee,cancelLabel:_e,validate:()=>"owner"!==o?we:function(e){const n=wi(e.phones,Di),t=wi(e.emails,Di),i=wi(e.addresses,Di);return n.create.length>0||n.update.length>0||n.remove.length>0||t.create.length>0||t.update.length>0||t.remove.length>0||i.create.length>0||i.update.length>0||i.remove.length>0?null:"No contact info changes detected."}(d),onSave:async()=>{const e={phoneOps:wi(d.phones,Di),emailOps:wi(d.emails,Di),addressOps:wi(d.addresses,Di)};await ti(n,t,e)},formatSaveError:e=>{const n=e instanceof Error?e.message:String(e);return`${ye} ${n}`}})&&a&&await a()}let Li=!1;function Mi(e){return e?"string"==typeof e?e:e.value||"":""}function Wi(){"undefined"!=typeof window&&(window.requestAnimationFrame(()=>function(e=document){[{wrap:".cvDescriptionWrap",text:".cvDescriptionText",toggle:".cvDescriptionToggle"},{wrap:".bioDescriptionWrap",text:".bioDescriptionText",toggle:".bioDescriptionToggle"}].forEach(({wrap:n,text:t,toggle:i})=>{e.querySelectorAll(n).forEach(e=>{const n=e.querySelector(t),o=e.querySelector(i);if(!n||!o)return;if(n.classList.contains("isExpanded"))return void(o.hidden=!1);const a=n.scrollHeight>n.clientHeight+1;o.hidden=!a,a||(o.setAttribute("aria-expanded","false"),o.textContent="...more")})})}(window.document)),Li||(window.addEventListener("resize",()=>Wi()),Li=!0))}function Ri(e){var n,t;e.preventDefault(),e.stopPropagation(),null===(t=(n=e).stopImmediatePropagation)||void 0===t||t.call(n);const i=e.currentTarget;if(!i)return;const o=i.getAttribute("aria-controls");if(!o)return;const a=document.getElementById(o);if(!a)return;const r=a.classList.toggle("isExpanded");i.setAttribute("aria-expanded",r?"true":"false"),i.textContent=r?"...less":"...more",r||Wi()}function Ui(e){const n=Mi(e);if(!n)return"";const t=n.slice(0,4),i=n.slice(5,7),o=Number(i)-1;return!t||o<0||o>11?n:`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][o]}, ${t}`}function Hi(e){const n=Mi(e);if(n)return n.slice(0,7)}function Yi(e){const n=e.currentTarget,t=null==n?void 0:n.closest(".profile-section-collapsible"),i=null==t?void 0:t.querySelector(".profile-section-collapsible__content");if(!n||!t||!i)return;const o="true"!==t.getAttribute("data-expanded");t.setAttribute("data-expanded",String(o)),n.setAttribute("aria-expanded",String(o)),i.setAttribute("aria-hidden",String(!o)),o&&"undefined"!=typeof window&&window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{Wi()})})}function Oi(e){if(!e)return"";if("string"==typeof e)return e;if("object"==typeof e&&"value"in e){const n=e.value;return"string"==typeof n?n:""}return""}function qi(e,n){return e?"email"===n?e.replace(/^mailto:/i,""):e.replace(/^tel:/i,""):""}function Vi(e,n,t){if(!n)return"";const i=Oi(n.valueNode||n.entryNode).trim();if("email"===t?/^mailto:/i.test(i)||/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i):/^tel:/i.test(i)||/^[+()\-\s\d]{5,}$/.test(i))return qi(i,t);const o=n.entryNode||n.valueNode;if(o){const n=Oi(e.any(o,me.ns.vcard("value"))).trim();if(n)return qi(n,t)}return qi(i,t)}function Qi(e,n){return e&&e.length&&e[0]?X`${function(e,n){if(!e)return X``;const t=Vi(n,e,"phone"),i=hi(e.type);return X`<li class="contact-info__item flex gap-2xs" role="listitem">
|
|
601
|
+
<div class="contact-info__icon-wrapper flex-center">
|
|
602
|
+
<span class="contact-info__icon" aria-hidden="true">${$i}</span>
|
|
79
603
|
</div>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
<
|
|
95
|
-
|
|
96
|
-
</
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
604
|
+
<div class="flex-column">
|
|
605
|
+
<span class="contact-info__contact-point-value">${t}</span>
|
|
606
|
+
${i?X`<span class="contact-info__contact-point-type"> ${i}</span>`:X``}
|
|
607
|
+
</div>
|
|
608
|
+
</li>`}(e[0],n)}${e.length>1?Qi(e.slice(1),n):X``}`:X``}function Zi(e,n){return e&&e.length&&e[0]?X`${function(e,n){if(!e)return X``;const t=Vi(n,e,"email"),i=bi(e.type);return X`<li class="contact-info__item flex gap-2xs" role="listitem">
|
|
609
|
+
<div class="contact-info__icon-wrapper flex-center">
|
|
610
|
+
<span class="contact-info__icon" aria-hidden="true">${Si}</span>
|
|
611
|
+
</div>
|
|
612
|
+
<div class="flex-column">
|
|
613
|
+
<span class="contact-info__contact-point-value">${t}</span>
|
|
614
|
+
${i?X`<span class="contact-info__contact-point-type">${i}</span>`:X``}
|
|
615
|
+
</div>
|
|
616
|
+
</li>`}(e[0],n)}${e.length>1?Zi(e.slice(1),n):X``}`:X``}function Xi(e){return e&&e.length&&e[0]?X`${function(e){if(!e)return X``;const n=Oi(e.streetAddress||e.fullAddress).trim(),t=Oi(e.locality).trim(),i=Oi(e.region).trim(),o=Oi(e.postalCode).trim(),a=Oi(e.countryName).trim(),r=[[t,i].filter(Boolean).join(", "),o].filter(Boolean).join(" ");return X`
|
|
617
|
+
<li class="contact-info__item flex gap-2xs" role="listitem">
|
|
618
|
+
<div class="contact-info__icon-wrapper flex-center">
|
|
619
|
+
<span class="contact-info__icon" aria-hidden="true">${Ue}</span>
|
|
620
|
+
</div>
|
|
621
|
+
<span class="contact-info__address">
|
|
622
|
+
${n?X`${n}<br />`:X``}
|
|
623
|
+
${r?X`${r}<br />`:X``}
|
|
624
|
+
${a}
|
|
625
|
+
</span>
|
|
626
|
+
</li>`}(e[0])}${e.length>1?Xi(e.slice(1)):X``}`:X``}function Gi(e,n,t,i,o){return X`
|
|
627
|
+
<section
|
|
628
|
+
aria-labelledby="contact-details-heading"
|
|
629
|
+
data-profile-section="contact-info"
|
|
630
|
+
class="profile__section--empty border-lighter rounded-md gap-lg profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
631
|
+
role="region"
|
|
632
|
+
tabindex="-1"
|
|
633
|
+
data-expanded="false"
|
|
634
|
+
>
|
|
635
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
636
|
+
<h2 id="contact-details-heading" tabindex="-1">${"Contact Info"}</h2>
|
|
637
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
638
|
+
<button
|
|
639
|
+
type="button"
|
|
640
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
641
|
+
aria-label="Add contact information"
|
|
642
|
+
@click=${a=>Pi(a,e,n,t,i,o)}
|
|
643
|
+
>
|
|
644
|
+
<span class="profile-section-collapsible__edit-label">${Xe} Add Contact</span>
|
|
645
|
+
<span class="profile-section-collapsible__edit-icon profile-section-collapsible__edit-icon--add" aria-hidden="true">${Oe}</span>
|
|
646
|
+
</button>
|
|
647
|
+
<button
|
|
648
|
+
type="button"
|
|
649
|
+
class="inline-flex-row"
|
|
650
|
+
aria-label="Toggle contact information section"
|
|
651
|
+
aria-controls="contact-details-panel"
|
|
652
|
+
aria-expanded="false"
|
|
653
|
+
@click=${Yi}
|
|
654
|
+
>
|
|
655
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
656
|
+
</button>
|
|
657
|
+
</div>
|
|
658
|
+
</header>
|
|
659
|
+
<div id="contact-details-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
660
|
+
${X`
|
|
661
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty contact information section">
|
|
662
|
+
<div class="contact-info__empty-icon-wrapper">
|
|
663
|
+
<span class="contact-info__empty-icon inline-flex-row">${nn}</span>
|
|
664
|
+
</div>
|
|
665
|
+
<p class="profile__empty-state-message contact-info__empty-message">
|
|
666
|
+
No additional contact info added yet.
|
|
667
|
+
</p>
|
|
668
|
+
</div>
|
|
669
|
+
`}
|
|
670
|
+
</div>
|
|
671
|
+
</section>
|
|
672
|
+
`}function Ki(e,n,t,i,o){const a={emails:(null==t?void 0:t.emails)||[],phones:(null==t?void 0:t.phones)||[],addresses:(null==t?void 0:t.addresses)||[]},r=a.emails.length>0||a.phones.length>0||a.addresses.length>0;return X`
|
|
673
|
+
${!r&&"owner"===i?Gi(e,n,a,i,o):function(e,n,t,i,o){const a=(null==t?void 0:t.emails.length)>0||(null==t?void 0:t.phones.length)>0||(null==t?void 0:t.addresses.length)>0;return X`
|
|
674
|
+
<section
|
|
675
|
+
aria-labelledby="contact-details-heading"
|
|
676
|
+
class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
677
|
+
role="region"
|
|
678
|
+
tabindex="-1"
|
|
679
|
+
data-expanded="false"
|
|
680
|
+
>
|
|
681
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
682
|
+
<h2 id="contact-details-heading" tabindex="-1">${"More Contacts"}</h2>
|
|
683
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
684
|
+
${"owner"===i?X`
|
|
685
|
+
<button
|
|
686
|
+
type="button"
|
|
687
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
688
|
+
aria-label="Edit contact information"
|
|
689
|
+
@click=${a=>Pi(a,e,n,t,i,o)}>
|
|
690
|
+
<span class="profile-section-collapsible__edit-label">${an} Edit</span>
|
|
691
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
692
|
+
</button>
|
|
693
|
+
`:X``}
|
|
694
|
+
<button
|
|
695
|
+
type="button"
|
|
696
|
+
class="inline-flex-row"
|
|
697
|
+
aria-label="Toggle contact information section"
|
|
698
|
+
aria-controls="contact-details-panel"
|
|
699
|
+
aria-expanded="false"
|
|
700
|
+
@click=${Yi}
|
|
701
|
+
>
|
|
702
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
703
|
+
</button>
|
|
704
|
+
</div>
|
|
705
|
+
</header>
|
|
706
|
+
<div id="contact-details-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
707
|
+
${t.phones.length>0?X`
|
|
708
|
+
<ul class="contact-info__list flex-column" role="list" aria-label="Phone numbers">
|
|
709
|
+
${Qi(t.phones,e)}
|
|
710
|
+
</ul>
|
|
711
|
+
`:X``}
|
|
712
|
+
${t.emails.length>0?X`
|
|
713
|
+
<ul class="contact-info__list flex-column" role="list" aria-label="Email addresses">
|
|
714
|
+
${Zi(t.emails,e)}
|
|
715
|
+
</ul>
|
|
716
|
+
`:X``}
|
|
717
|
+
${t.addresses.length>0?X`
|
|
718
|
+
<ul class="contact-info__list flex-column" role="list" aria-label="Postal addresses">
|
|
719
|
+
${Xi(t.addresses)}
|
|
720
|
+
</ul>
|
|
721
|
+
`:X``}
|
|
722
|
+
${a?X``:X`<p>No contact details added yet.</p>`}
|
|
723
|
+
</div>
|
|
724
|
+
</section>
|
|
725
|
+
`}(e,n,a,i,o)}
|
|
726
|
+
`}const Ji="https://www.w3.org/ns/iana/language-code/";function eo(e){return(e||"").trim()}function no(e){const n=eo(e).toLowerCase();return n?n.startsWith(Ji)?n.slice(41):n:""}function to(e,n,t){const i=t.map(e=>({name:eo(e.name),publicId:no(e.publicId)})).filter(e=>Boolean(e.publicId));if(0===i.length)return[];const o=i.map(()=>Kt(n)),a=[],r=function(e,n){if(!e.length)return{head:me.ns.rdf("nil"),statements:[]};const t=e.map(()=>(0,Me.blankNode)()),i=[];return e.forEach((e,o)=>{const a=t[o],r=t[o+1]||me.ns.rdf("nil");i.push((0,Me.st)(a,me.ns.rdf("first"),e,n)),i.push((0,Me.st)(a,me.ns.rdf("rest"),r,n))}),{head:t[0],statements:i}}(o,n);return a.push((0,Me.st)(e,me.ns.schema("knowsLanguage"),r.head,n)),a.push(...r.statements),o.forEach((e,t)=>{const o=(0,Me.sym)(`${Ji}${i[t].publicId}`);a.push((0,Me.st)(e,me.ns.solid("publicId"),o,n)),i[t].name&&a.push((0,Me.st)(o,me.ns.schema("name"),(0,Me.literal)(i[t].name,"en"),n))}),a}function io(e){var n,t,i,o,a,r,l,s,d,c,A,p;return`${(null===(t=null===(n=e.subject)||void 0===n?void 0:n.toNT)||void 0===t?void 0:t.call(n))||(null===(i=e.subject)||void 0===i?void 0:i.value)} ${(null===(a=null===(o=e.predicate)||void 0===o?void 0:o.toNT)||void 0===a?void 0:a.call(o))||(null===(r=e.predicate)||void 0===r?void 0:r.value)} ${(null===(s=null===(l=e.object)||void 0===l?void 0:l.toNT)||void 0===s?void 0:s.call(l))||(null===(d=e.object)||void 0===d?void 0:d.value)} ${(null===(A=null===(c=e.why)||void 0===c?void 0:c.toNT)||void 0===A?void 0:A.call(c))||(null===(p=e.why)||void 0===p?void 0:p.value)}`}async function oo(e,n,t,i){const o=e.updater;if(!o||"function"!=typeof o.update)throw new Error("Language updates are not supported by this store updater.");const{safeDeletions:a,safeInsertions:r}=function(e,n,t){return{safeDeletions:Array.from(new Map((n||[]).filter(n=>!!(n&&n.subject&&n.predicate&&n.object)&&(!!e.holds(n.subject,n.predicate,n.object,n.why)||e.statementsMatching(n.subject,n.predicate,n.object,n.why).length>0)).map(e=>[io(e),e])).values()),safeInsertions:Array.from(new Map((t||[]).filter(e=>Boolean(e&&e.subject&&e.predicate&&e.object)).map(e=>[io(e),e])).values())}}(e,t,i);if(0===a.length&&0===r.length)return;try{return void await new Promise((e,n)=>{o.update(a,r,(t,i,o)=>{!0!==i?n(new Error(o||"Failed to save languages")):e()})})}catch(t){const i=t instanceof Error?t.message:String(t);if(!function(e){const n=(e||"").toLowerCase();return n.includes(" on patch ")||n.includes("web error: 501")||n.includes("web error: 405")||n.includes("web error: 400")}(i)||"function"!=typeof o.updateDav)throw t;if(e.fetcher&&"function"==typeof e.fetcher.load)try{await e.fetcher.load(n)}catch{}try{await new Promise((e,t)=>{o.updateDav(n,a,r,(n,o,a)=>{!0!==o?t(new Error(a||i||"Failed to save languages")):e()})})}catch(t){if(!function(e){return(e||"").toLowerCase().includes("no record of our http get request for document")}(t instanceof Error?t.message:String(t)))throw t;await async function(e,n,t,i){const o=e.updater,a=e.fetcher;if(!o||"function"!=typeof o.serialize||!a||"function"!=typeof a.webOperation)throw new Error("Language updates are not supported by this store updater.");const r=e.statementsMatching(void 0,void 0,void 0,n).slice(),l=new Set((t||[]).map(e=>io(e))),s=r.filter(e=>!l.has(io(e))).concat(i||[]),d="text/turtle",c=o.serialize(n.value,s,d),A=await a.webOperation("PUT",n.value,{noMeta:!0,contentType:d,body:c});if(!A||!0!==A.ok){const e=(null==A?void 0:A.status)||"unknown";throw new Error(`Web error: ${e} on PUT of <${n.value}>`)}e.remove(t),i.forEach(n=>{e.add(n.subject,n.predicate,n.object,n.why)})}(e,n,a,r)}}}async function ao(e,n,t,i){!function(e){var n;const t=e=>{e&&("function"!=typeof e.setPrefixForURI?(e.namespaces||(e.namespaces={}),e.namespaces.l=Ji):e.setPrefixForURI("l",Ji))},i=e;t(i),t(null===(n=null==i?void 0:i.updater)||void 0===n?void 0:n.store)}(e);const o=n.doc(),a=tt(n,e).map(e=>({name:eo(e.name),publicId:eo(e.publicId),proficiency:eo(e.proficiency),entryNode:e.entryNode.value,status:"existing"})),r=i&&i.length?function(e){return(e||[]).filter(e=>"deleted"!==e.status).filter(e=>Boolean(eo(e.publicId)||eo(e.name)||eo(e.entryNode))).map(e=>({...e,name:eo(e.name),publicId:eo(e.publicId),proficiency:eo(e.proficiency),entryNode:eo(e.entryNode)}))}(i):function(e,n){const t=new Map;e.forEach(e=>{t.set(e.entryNode,e)}),n.remove.forEach(e=>{e.entryNode&&t.delete(e.entryNode)}),n.update.forEach(e=>{e.entryNode&&t.has(e.entryNode)&&t.set(e.entryNode,e)}),n.create.forEach(e=>{eo(e.publicId)&&t.set(`new:${e.name}:${Math.random()}`,{...e,publicId:eo(e.publicId),proficiency:eo(e.proficiency)})});const i=new Map;return Array.from(t.values()).forEach(e=>{const n=eo(e.publicId);n&&(i.has(n)||i.set(n,{...e,publicId:n,proficiency:eo(e.proficiency)}))}),Array.from(i.values())}(a,t),l=e.each(n,me.ns.schema("knowsLanguage"),null,o),s=l.filter(e=>"BlankNode"===e.termType||"NamedNode"===e.termType),d=Array.from(new Map(s.flatMap(n=>function(e,n,t){const i=new Set,o=[];let a=n;for(;a;){const n=`${a.termType}:${a.value}`;if(i.has(n))break;i.add(n),o.push(a);const r=e.any(a,me.ns.rdf("rest"),null,t);if(!r||"NamedNode"===r.termType&&r.value===me.ns.rdf("nil").value)break;a=r}return o}(e,n,o)).map(e=>[`${e.termType}:${e.value}`,e])).values()),c=Array.from(new Set(l.flatMap(n=>Le(e,n)).filter(e=>"NamedNode"===e.termType||"BlankNode"===e.termType).map(e=>`${e.termType}:${e.value}`))).map(n=>{const[t,...i]=n.split(":"),o=i.join(":");return"BlankNode"===t?e.bnode(o):e.sym(o)}),A=Array.from(new Map(c.map(n=>e.any(n,me.ns.solid("publicId"),null,o)).filter(e=>Boolean(e&&"NamedNode"===e.termType)).map(e=>[`${e.termType}:${e.value}`,e])).values()),p=e.statementsMatching(n,me.ns.schema("knowsLanguage"),null,o);d.forEach(n=>{p.push(...e.statementsMatching(n,null,null,o))}),c.forEach(n=>{p.push(...e.statementsMatching(n,null,null,o))}),A.forEach(n=>{p.push(...e.statementsMatching(n,me.ns.schema("name"),null,o))});const u=to(n,o,r);await oo(e,o,p,u)}function ro(e){return mi(e)}function lo(e){return[e.name,e.publicId,e.proficiency].some(gi)}function so(e){return(e||"").trim().toLowerCase()}function co(e){return ro(e).toLowerCase().replace(/\(.*?\)/g," ").replace(/[^a-z\s-]/g," ").replace(/\s+/g," ").trim()}function Ao(e,n){var t;const i=null===(t=null==e?void 0:e[n])||void 0===t?void 0:t.value;return"string"==typeof i?i:""}async function po(e){var n;const t=ro(e);if(t.length<2||"function"!=typeof fetch)return[];const i=new URLSearchParams({query:(o=t,`SELECT ?item ?subject ?name WHERE {\n ?item wdt:P305 ?subject .\n OPTIONAL {\n ?item rdfs:label ?name .\n FILTER(langMatches(lang(?name), "en"))\n }\n FILTER regex(?name, "${o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}", "i")\n FILTER regex(?subject, "^..$", "i")\n } LIMIT 12`),format:"json"});var o;try{const e=await fetch(`https://query.wikidata.org/sparql?${i.toString()}`,{headers:{Accept:"application/sparql-results+json, application/json"}});if(!e.ok)return[];const t=await e.json(),o=Array.isArray(null===(n=null==t?void 0:t.results)||void 0===n?void 0:n.bindings)?t.results.bindings:[],a=new Set;return o.map(e=>{const n=so(Ao(e,"subject")),t=function(e){const n=(e||"").trim();return n?n.startsWith("http://")||n.startsWith("https://")?n:`https://www.w3.org/ns/iana/language-code/${so(n)}`:""}(n);return{name:ro(Ao(e,"name")||n),publicId:t,code:n}}).filter(e=>{if(!e.name||!e.publicId||2!==e.code.length)return!1;const n=e.publicId.toLowerCase();return!a.has(n)&&(a.add(n),!0)})}catch{return[]}}function uo(e,n){const t=ro(n).toLowerCase();if(!t)return null;const i=e.find(e=>e.name.toLowerCase()===t);if(i)return i;const o=co(n);return o&&e.find(e=>co(e.name)===o)||null}function fo(e,n){const t=wi(e,lo),i=t.create.length>0||t.update.length>0||t.remove.length>0,o=function(e,n){const t=e.filter(e=>"deleted"!==e.status&&Boolean((e.entryNode||"").trim())).map(e=>(e.entryNode||"").trim());if(t.length!==n.length)return!0;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!0;return!1}(e,n);if(!i&&!o)return"No language changes detected.";for(let n=0;n<e.length;n++){const t=e[n];if(t&&"deleted"!==t.status&&(gi(t.name)&&!gi(t.publicId)))return`Language ${n+1}: please choose a language from the suggestions list.`}return null}function mo(e){const n=document.querySelector("#profile-modal #modal-buttons button.btn-primary");n&&(n.disabled=function(e){return e.some(e=>!(!e||"deleted"===e.status||!gi(e.name)||gi(e.publicId)))}(e))}function go(e,n,t,i){let o=null,a=null;const r=e=>{o=e,a=e},l=e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move")},s=i=>{null!==o&&(((n,i)=>{if(n===i)return;const o=e[n];o&&(e.splice(n,1),e.splice(i,0,o),Object.keys(t).forEach(e=>{delete t[Number(e)]}))})(o,i),o=null,a=null,n())},d=()=>{o=null,a=null},c=e.map((e,n)=>({row:e,index:n})).filter(({row:e})=>"deleted"!==e.status);return X`
|
|
727
|
+
<section class="profile-edit-dialog__section" aria-label="Languages">
|
|
728
|
+
<fieldset>
|
|
729
|
+
<legend class="sr-only">Language entries</legend>
|
|
730
|
+
${c.map(({index:o},c)=>function({rows:e,index:n,displayIndex:t,onDelete:i,onChange:o,onSearch:a,suggestions:r,onDragStart:l,onDragOver:s,onDrop:d,onDragEnd:c,isDropTarget:A}){const p=e[n],u=`Language ${t+1}`,f=`Language Proficiency ${t+1}`,m=`language-${n}`,g=`proficiency-${n}`,h=`proficiency-${n}`,C=`language-suggestions-${n}`,b=Boolean(p&&"deleted"!==p.status&&gi(p.name)&&!gi(p.publicId)),E=t=>i=>{const l=ro(i.target.value);if(e[n]){yi(e[n],t,l,lo);const i=uo(r,l);e[n].publicId=(null==i?void 0:i.publicId)||"",i&&(e[n].name=ro(i.name)),a(n,l),o()}};return X`
|
|
731
|
+
<div
|
|
732
|
+
class="profile-edit-dialog__row profile-edit-dialog__row--language ${A?"profile-edit-dialog__row--drop-target":""}"
|
|
733
|
+
@dragover=${e=>s(e)}
|
|
734
|
+
@drop=${()=>d(n)}
|
|
735
|
+
>
|
|
736
|
+
<button
|
|
737
|
+
type="button"
|
|
738
|
+
class="profile-edit-dialog__drag-handle"
|
|
739
|
+
aria-label=${`Reorder language ${t+1}`}
|
|
740
|
+
title="Drag to reorder"
|
|
741
|
+
draggable="true"
|
|
742
|
+
@dragstart=${()=>l(n)}
|
|
743
|
+
@dragend=${()=>c()}
|
|
137
744
|
>
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
745
|
+
${Qe}
|
|
746
|
+
</button>
|
|
747
|
+
<label aria-label=${`${u} Language`} class="label profile-edit-dialog__field">
|
|
748
|
+
<input
|
|
749
|
+
class="input"
|
|
750
|
+
type="text"
|
|
751
|
+
name=${m}
|
|
752
|
+
.value=${(null==p?void 0:p.name)||""}
|
|
753
|
+
required
|
|
754
|
+
data-contact-field="name"
|
|
755
|
+
data-entry-node=${(null==p?void 0:p.entryNode)||""}
|
|
756
|
+
data-row-status=${(null==p?void 0:p.status)||"n/a"}
|
|
757
|
+
placeholder="Language"
|
|
758
|
+
autocomplete="off"
|
|
759
|
+
list=${C}
|
|
760
|
+
inputmode="text"
|
|
761
|
+
aria-invalid=${b?"true":"false"}
|
|
762
|
+
@input=${E("name")}
|
|
763
|
+
@change=${_="name",e=>{E(_)(e)}}
|
|
764
|
+
/>
|
|
765
|
+
<datalist id=${C}>
|
|
766
|
+
${r.map(e=>X`<option value=${e.name}></option>`)}
|
|
767
|
+
</datalist>
|
|
768
|
+
<small class="profile-edit-dialog__input-help-text">Type to search and select one language suggestion.</small>
|
|
769
|
+
</label>
|
|
770
|
+
<label aria-label=${f} class="label" hidden>
|
|
771
|
+
<select name=${g} id=${h} @change=${t=>{const i=t.target.value;e[n]&&(vi(e[n],"proficiency",i),o())}} .value=${(null==p?void 0:p.proficiency)||""}>
|
|
772
|
+
<option value="Basic">Basic</option>
|
|
773
|
+
<option value="Intermediate">Intermediate</option>
|
|
774
|
+
<option value="Fluent">Fluent</option>
|
|
775
|
+
</select>
|
|
776
|
+
</label>
|
|
777
|
+
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
778
|
+
<button
|
|
779
|
+
type="button"
|
|
780
|
+
class="profile-edit-dialog__delete-button"
|
|
781
|
+
aria-label=${`Delete language ${t+1}`}
|
|
782
|
+
title=${ve}
|
|
783
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
784
|
+
>
|
|
785
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
786
|
+
</button>
|
|
787
|
+
</div>
|
|
788
|
+
</div>
|
|
789
|
+
`;var _}({rows:e,index:o,displayIndex:c,onChange:n,onSearch:i,suggestions:t[o]||[],onDragStart:r,onDragOver:l,onDrop:s,onDragEnd:d,isDropTarget:a===o,onDelete:()=>{_i(e,o),delete t[o],n()}}))}
|
|
790
|
+
</fieldset>
|
|
791
|
+
</section>
|
|
792
|
+
`}function ho(e,n,t,i={}){const o=n,a=o.suggestionByIndex||(o.suggestionByIndex={}),r=o.searchSeqByIndex||(o.searchSeqByIndex={}),l=o.searchTimerByIndex||(o.searchTimerByIndex={}),s=(i={})=>ho(e,n,t,i);ue(X`
|
|
793
|
+
${go(n.languages,s,a,(e,t)=>{l[e]&&clearTimeout(l[e]);const i=ro(t);if(i.length<2)return a[e]=[],void s();const o=(r[e]||0)+1;r[e]=o,l[e]=setTimeout(async()=>{const t=await po(i);if(r[e]!==o)return;a[e]=t;const l=n.languages[e];if(l){const e=uo(t,l.name);l.publicId=(null==e?void 0:e.publicId)||l.publicId}s()},220)})}
|
|
794
|
+
${"owner"!==t?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
795
|
+
`,e),mo(n.languages),i.focusSelector&&function(e,n){const t=e.querySelector(n);t&&"function"==typeof t.focus&&(t.scrollIntoView({block:"start",behavior:"auto"}),t.focus(),(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&t.select())}(e,i.focusSelector)}function Co(e,n){const t=document.createElement("form");t.classList.add("profile__edit-form");const i=function(e){const n=(e||[]).map(e=>({name:ro(ui(e.name)),publicId:ro(ui(e.publicId)),proficiency:ro(ui(e.proficiency)),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"})).filter(e=>Boolean(e.name||e.entryNode||e.proficiency||e.publicId));return{languages:n.length?n:[{name:"",publicId:"",proficiency:"",entryNode:"",status:"new"}],initialExistingOrder:[]}}(e);i.initialExistingOrder=i.languages.filter(e=>Boolean((e.entryNode||"").trim())).map(e=>(e.entryNode||"").trim()),ho(t,i,n);return{form:t,formState:i,addRow:()=>{i.languages.unshift({name:"",publicId:"",proficiency:"",entryNode:"",status:"new"});const e=i;e.suggestionByIndex={},e.searchSeqByIndex={},e.searchTimerByIndex={},ho(t,i,n,{focusSelector:'[name="language-0"]'})}}}async function bo(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d,addRow:c}=Co(i,o),A=await Wt({title:"Edit Languages",dom:l,form:s,headerAction:{type:"button",label:"+ Add More",ariaLabel:"Add another language",onClick:c},submitLabel:Ee,cancelLabel:_e,validate:()=>"owner"!==o?we:fo(d.languages,d.initialExistingOrder),onSave:async()=>{const e=wi(d.languages,lo),i={create:e.create,update:e.update,remove:e.remove};await async function(e,n,t,i){try{await ao(e,n,t,i)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`Failed to save languages: ${n}`)}}(n,t,i,d.languages)},formatSaveError:e=>`Could not save language updates. ${e instanceof Error?e.message:String(e)}`});A&&a&&await a()}function Eo(e,n=!1){return e&&e.length&&e[0]?X`${function(e,n=!1){return e&&n?X`<li class="languages__item-label" role="listitem">${e.name}</li>`:X``}(e[0],n)}${e.length>1?Eo(e.slice(1),n):X``}`:X``}function _o(e,n,t,i,o){return X`
|
|
796
|
+
<section
|
|
797
|
+
aria-labelledby="languages-heading"
|
|
798
|
+
data-profile-section="languages"
|
|
799
|
+
class="profile__section--empty border-lighter rounded-md gap-lg profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
800
|
+
role="region"
|
|
801
|
+
tabindex="-1"
|
|
802
|
+
data-expanded="false"
|
|
803
|
+
>
|
|
804
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
805
|
+
<h2 id="languages-heading" tabindex="-1">${Ce}</h2>
|
|
806
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
807
|
+
<button
|
|
808
|
+
type="button"
|
|
809
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
810
|
+
aria-label="Add languages"
|
|
811
|
+
@click=${a=>bo(a,e,n,t,i,o)}
|
|
812
|
+
>
|
|
813
|
+
<span class="profile-section-collapsible__edit-label profile__add-more-content inline-flex-row">
|
|
814
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
815
|
+
Add Languages
|
|
816
|
+
</span>
|
|
817
|
+
<span class="profile-section-collapsible__edit-icon profile-section-collapsible__edit-icon--add" aria-hidden="true">${Oe}</span>
|
|
818
|
+
</button>
|
|
819
|
+
<button
|
|
820
|
+
type="button"
|
|
821
|
+
class="inline-flex-row"
|
|
822
|
+
aria-label="Toggle languages section"
|
|
823
|
+
aria-controls="languages-panel"
|
|
824
|
+
aria-expanded="false"
|
|
825
|
+
@click=${Yi}
|
|
826
|
+
>
|
|
827
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
828
|
+
</button>
|
|
829
|
+
</div>
|
|
830
|
+
</header>
|
|
831
|
+
<div id="languages-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
832
|
+
${X`
|
|
833
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty languages section">
|
|
834
|
+
<div class="languages__empty-icon-wrapper">
|
|
835
|
+
<span class="languages__empty-icon inline-flex-row">${en}</span>
|
|
836
|
+
</div>
|
|
837
|
+
<p class="profile__empty-state-message languages__empty-message">
|
|
838
|
+
No languages added yet.
|
|
839
|
+
</p>
|
|
840
|
+
</div>
|
|
841
|
+
`}
|
|
842
|
+
</div>
|
|
843
|
+
</section>
|
|
844
|
+
`}function vo(e,n,t,i,o){const a=t||[],r=Array.isArray(a)&&a.length>0;return X`
|
|
845
|
+
${!r&&"owner"===i?_o(e,n,a,i,o):function(e,n,t,i,o){const a=Array.isArray(t)&&t.length>0,r=e.each(n,me.ns.schema("knowsLanguage")).length>0;return X`
|
|
846
|
+
<section
|
|
847
|
+
class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
848
|
+
aria-labelledby="languages-heading"
|
|
849
|
+
role="region"
|
|
850
|
+
tabindex="-1"
|
|
851
|
+
data-expanded="false"
|
|
852
|
+
>
|
|
853
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
854
|
+
<h2 id="languages-heading">${Ce}</h2>
|
|
855
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
856
|
+
${"owner"===i?X`
|
|
857
|
+
<button
|
|
858
|
+
type="button"
|
|
859
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
860
|
+
aria-label="Add or edit languages"
|
|
861
|
+
@click=${a=>bo(a,e,n,t,i,o)}
|
|
147
862
|
>
|
|
148
|
-
<
|
|
149
|
-
class="
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
863
|
+
<span class="profile-section-collapsible__edit-label profile__add-more-content inline-flex-row">
|
|
864
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
865
|
+
Add More
|
|
866
|
+
</span>
|
|
867
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
868
|
+
</button>
|
|
869
|
+
`:X``}
|
|
870
|
+
<button
|
|
871
|
+
type="button"
|
|
872
|
+
class="inline-flex-row"
|
|
873
|
+
aria-label="Toggle languages section"
|
|
874
|
+
aria-controls="languages-panel"
|
|
875
|
+
aria-expanded="false"
|
|
876
|
+
@click=${Yi}
|
|
877
|
+
>
|
|
878
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
879
|
+
</button>
|
|
880
|
+
</div>
|
|
881
|
+
</header>
|
|
882
|
+
<div id="languages-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
883
|
+
${a?X`
|
|
884
|
+
<ul class="languages__list" role="list" aria-label="Known languages">
|
|
885
|
+
${Eo(t,!0)}
|
|
886
|
+
</ul>
|
|
887
|
+
`:r?X`<p>Language details are missing for one or more entries.</p>`:X`<p>No languages added yet.</p>`}
|
|
888
|
+
</div>
|
|
889
|
+
</section>
|
|
890
|
+
`}(e,n,a,i,o)}
|
|
891
|
+
`}const wo="http://data.europa.eu/esco/skill/",yo="skill:";function Bo(e){return e.startsWith("_:")?e.slice(2):e}function xo(e,n,t,i){const o=Bo(i);return e.statementsMatching(n,me.ns.schema("skills"),null,t).filter(e=>Bo(e.object.value)===o||e.object.value===i)}function ko(e,n,t,i){if(!i.name)return[];if(!i.publicId)throw new Error(`Missing skill publicId for skill: ${i.name}`);const o=(0,Me.sym)(function(e){const n=e.trim();if(!n)return n;if(n.startsWith("skill:"))return n;if(n.startsWith(wo)){const e=n.slice(33);return e?`skill:${e}`:n}return n}(i.publicId));return[(0,Me.st)(e,me.ns.schema("skills"),t,n),(0,Me.st)(t,me.ns.solid("publicId"),o,n),(0,Me.st)(o,me.ns.schema("name"),(0,Me.literal)(i.name),n)]}async function Io(e,n,t){!function(e){const n=e;"function"!=typeof n.setPrefixForURI?(n.namespaces||(n.namespaces={}),n.namespaces.skill=yo):n.setPrefixForURI("skill",yo)}(e);const i=n.doc(),o=e.each(n,me.ns.schema("skills")),a=[],r=[],l=n=>{const t=Zt(e,n,me.ns.solid("publicId"),i);a.push(...t.linkedStatements)};t.remove.forEach(t=>{if(!t.entryNode)return;const r=Xt(o,t.entryNode);a.push(...xo(e,n,i,t.entryNode)),r&&"Literal"!==r.termType&&(a.push(...Vt(e,r,i)),"NamedNode"===r.termType&&l(r))}),t.update.forEach(t=>{if(!t.entryNode)return;const s=Xt(o,t.entryNode);s?(a.push(...xo(e,n,i,t.entryNode)),"Literal"!==s.termType&&(a.push(...Vt(e,s,i)),"NamedNode"===s.termType&&l(s)),"NamedNode"!==s.termType?r.push(...ko(n,i,Kt(i),t)):r.push(...ko(n,i,s,t))):r.push(...ko(n,i,Kt(i),t))}),t.create.forEach(e=>{r.push(...ko(n,i,Kt(i),e))}),await qt(e,a,r)}async function $o(e,n,t){try{await Io(e,n,t)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`Failed to save skills: ${n}`)}}const So="http://data.europa.eu/esco/skill/";function Do(e){const n=To(e);if(!n)return"";if(n.startsWith("skill:"))return n;if(n.startsWith(So)){const e=n.slice(33);return e?`skill:${e}`:n}return n}async function No(e){var n;const t=To(e);if(t.length<2||"function"!=typeof fetch)return[];try{const e=await fetch(function(e){return"https://ec.europa.eu/esco/api/search?language=$(language)&limit=$(limit)&type=skill&text=$(name)".replace("$(language)",encodeURIComponent("en")).replace("$(limit)",encodeURIComponent(String(8))).replace("$(name)",encodeURIComponent(e))}(t),{headers:{Accept:"application/json"}});if(!e.ok)return[];const i=await e.json(),o=Array.isArray(null===(n=null==i?void 0:i._embedded)||void 0===n?void 0:n.results)?i._embedded.results:[],a=new Set;return o.map(e=>{const n=To(function(e){var n;return(null==e?void 0:e.title)||(null==e?void 0:e.searchHit)||(null===(n=null==e?void 0:e.preferredLabel)||void 0===n?void 0:n.en)||(null==e?void 0:e.uri)||""}(e));return{label:n,uri:"string"==typeof(null==e?void 0:e.uri)?e.uri:""}}).filter(e=>{if(!e.label)return!1;const n=e.label.toLowerCase();return!a.has(n)&&(a.add(n),!0)})}catch{return[]}}function To(e){return mi(e)}function jo(e){return[e.name].some(gi)}function zo(e,n){const t=To(n).toLowerCase();return t&&e.find(e=>e.label.toLowerCase()===t)||null}function Fo(e){const n=document.querySelector("#profile-modal #modal-buttons button.btn-primary");n&&(n.disabled=function(e){return e.some(e=>!(!e||"deleted"===e.status||!gi(e.name)||gi(e.publicId)))}(e))}function Po(e,n,t,i){const o=e.map((e,n)=>({row:e,index:n})).filter(({row:e})=>"deleted"!==e.status);return X`
|
|
892
|
+
<section class="profile-edit-dialog__section" aria-label="Skills">
|
|
893
|
+
<fieldset>
|
|
894
|
+
<legend class="sr-only">Skill entries</legend>
|
|
895
|
+
${o.map(({index:o},a)=>function({rows:e,index:n,displayIndex:t,onDelete:i,onChange:o,onSkillSearch:a,suggestions:r}){const l=e[n],s=`Skill ${t+1}`,d=`skill-${n}`,c=`skill-suggestions-${n}`,A=Boolean(l&&"deleted"!==l.status&&gi(l.name)&&!gi(l.publicId));return X`
|
|
896
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--full profile-edit-dialog__row--skill">
|
|
897
|
+
<label aria-label=${`${s} Name`} class="label profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
898
|
+
<div class="profile-edit-dialog__input-wrap">
|
|
899
|
+
<span class="profile-edit-dialog__search-icon" aria-hidden="true">${qe}</span>
|
|
900
|
+
<input
|
|
901
|
+
class="input profile-edit-dialog__input--with-leading-icon"
|
|
902
|
+
type="text"
|
|
903
|
+
name=${d}
|
|
904
|
+
.value=${(null==l?void 0:l.name)||""}
|
|
905
|
+
required
|
|
906
|
+
data-contact-field="name"
|
|
907
|
+
data-entry-node=${(null==l?void 0:l.entryNode)||""}
|
|
908
|
+
data-row-status=${(null==l?void 0:l.status)||"n/a"}
|
|
909
|
+
placeholder="Skill"
|
|
910
|
+
autocomplete="off"
|
|
911
|
+
list=${c}
|
|
912
|
+
inputmode="text"
|
|
913
|
+
aria-invalid=${A?"true":"false"}
|
|
914
|
+
@input=${p="name",t=>{const i=To(t.target.value);if(e[n]){yi(e[n],p,i,jo);const t=zo(r,i);e[n].publicId=Do((null==t?void 0:t.uri)||""),a(n,i),o()}}}
|
|
915
|
+
/>
|
|
916
|
+
</div>
|
|
917
|
+
<datalist id=${c}>
|
|
918
|
+
${r.map(e=>X`<option value=${e.label}></option>`)}
|
|
919
|
+
</datalist>
|
|
920
|
+
<small class="profile-edit-dialog__input-help-text">Type to search ESCO and select one suggestion.</small>
|
|
921
|
+
</label>
|
|
922
|
+
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
923
|
+
<button
|
|
924
|
+
type="button"
|
|
925
|
+
class="profile-edit-dialog__delete-button"
|
|
926
|
+
aria-label=${`Delete skill ${t+1}`}
|
|
927
|
+
title=${ve}
|
|
928
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
929
|
+
>
|
|
930
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
931
|
+
</button>
|
|
932
|
+
</div>
|
|
933
|
+
</div>
|
|
934
|
+
`;var p}({rows:e,index:o,displayIndex:a,onChange:n,onSkillSearch:i,suggestions:t[o]||[],onDelete:()=>{_i(e,o),delete t[o],n()}}))}
|
|
935
|
+
</fieldset>
|
|
936
|
+
</section>
|
|
937
|
+
`}function Lo(e,n,t,i={}){const o=n,a=o.suggestionByIndex||(o.suggestionByIndex={}),r=o.searchSeqByIndex||(o.searchSeqByIndex={}),l=o.searchTimerByIndex||(o.searchTimerByIndex={}),s=(i={})=>Lo(e,n,t,i);ue(X`
|
|
938
|
+
${Po(n.skills,s,a,(e,t)=>{l[e]&&clearTimeout(l[e]);const i=To(t);if(i.length<2)return a[e]=[],void s();const o=(r[e]||0)+1;r[e]=o,l[e]=setTimeout(async()=>{const t=await No(i);if(r[e]!==o)return;a[e]=t;const l=n.skills[e];if(l){const e=zo(t,l.name);l.publicId=e?Do(e.uri):l.publicId}s()},220)})}
|
|
939
|
+
${"owner"!==t?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
940
|
+
`,e),Fo(n.skills),i.focusSelector&&function(e,n){const t=e.querySelector(n);t&&"function"==typeof t.focus&&(t.scrollIntoView({block:"start",behavior:"auto"}),t.focus(),(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&t.select())}(e,i.focusSelector)}function Mo(e,n){const t=document.createElement("form");t.classList.add("profile__edit-form");const i=function(e){const n=(e||[]).map(e=>({name:To(ui(e.name)),publicId:Do(ui(e.publicId)),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"})).filter(e=>Boolean(e.name||e.publicId||e.entryNode));return{skills:n.length?n:[{name:"",publicId:"",entryNode:"",status:"new"}]}}(e);Lo(t,i,n);return{form:t,formState:i,addRow:()=>{i.skills.unshift({name:"",publicId:"",entryNode:"",status:"new"});const e=i;e.suggestionByIndex={},e.searchSeqByIndex={},e.searchTimerByIndex={},Lo(t,i,n,{focusSelector:'[name="skill-0"]'})}}}async function Wo(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d,addRow:c}=Mo(i,o),A=await Wt({title:"Edit Skills",dom:l,form:s,headerAction:{type:"button",label:"+ Add More",ariaLabel:"Add another skill",onClick:c},submitLabel:Ee,cancelLabel:_e,validate:()=>"owner"!==o?we:function(e){const n=wi(e,jo);if(!(n.create.length>0||n.update.length>0||n.remove.length>0))return"No skill changes detected.";for(let n=0;n<e.length;n++){const t=e[n];if(t&&"deleted"!==t.status&&gi(t.name)&&"existing"!==t.status&&!gi(t.publicId))return`Skill ${n+1}: please select a skill from the ESCO suggestions.`}return null}(d.skills),onSave:async()=>{const e=wi(d.skills,jo),i={create:e.create,update:e.update,remove:e.remove};await $o(n,t,i)},formatSaveError:e=>{const n=e instanceof Error?e.message:String(e);return`${ye} ${n}`}});A&&a&&await a()}function Ro(e,n,t,i,o){const a=Array.isArray(t)&&t.length>0;return X`
|
|
164
941
|
<section
|
|
165
|
-
class="
|
|
166
|
-
aria-labelledby="
|
|
942
|
+
class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
943
|
+
aria-labelledby="skills-heading"
|
|
167
944
|
role="region"
|
|
168
|
-
|
|
945
|
+
tabindex="-1"
|
|
946
|
+
data-expanded="false"
|
|
169
947
|
>
|
|
170
|
-
<header>
|
|
171
|
-
<
|
|
948
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
949
|
+
<h2 id="skills-heading">${he}</h2>
|
|
950
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
951
|
+
${"owner"===i?X`
|
|
952
|
+
<button
|
|
953
|
+
type="button"
|
|
954
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
955
|
+
aria-label="Add or edit skills"
|
|
956
|
+
@click=${a=>Wo(a,e,n,t,i,o)}
|
|
957
|
+
>
|
|
958
|
+
<span class="profile-section-collapsible__edit-label profile__add-more-content inline-flex-row">
|
|
959
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
960
|
+
Add More
|
|
961
|
+
</span>
|
|
962
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
963
|
+
</button>
|
|
964
|
+
`:X``}
|
|
965
|
+
<button
|
|
966
|
+
type="button"
|
|
967
|
+
class="inline-flex-row"
|
|
968
|
+
aria-label="Toggle skills section"
|
|
969
|
+
aria-controls="skills-panel"
|
|
970
|
+
aria-expanded="false"
|
|
971
|
+
@click=${Yi}
|
|
972
|
+
>
|
|
973
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
974
|
+
</button>
|
|
975
|
+
</div>
|
|
172
976
|
</header>
|
|
173
|
-
<div
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
977
|
+
<div
|
|
978
|
+
id="skills-panel"
|
|
979
|
+
class="profile-section-collapsible__content"
|
|
980
|
+
aria-hidden="true"
|
|
981
|
+
>
|
|
982
|
+
${a?X`
|
|
983
|
+
<ul class="skills__list flex-column" role="list" aria-label="Professional skills and competencies">
|
|
984
|
+
${t.map(t=>function(e,n,t,i,o){return e?X`
|
|
985
|
+
<li class="skills__item inline-flex-row" role="listitem">
|
|
986
|
+
<span class="skills__item-label">${function(e){if(e.trim().length>0){const n=e.split(" ");for(let e=0;e<n.length;e++)n[e]=n[e].charAt(0).toUpperCase()+n[e].substring(1);return n.join(" ")}return""}(e.name)}</span>
|
|
987
|
+
${"owner"===i?X`
|
|
988
|
+
<button
|
|
989
|
+
type="button"
|
|
990
|
+
class="skills__remove-button inline-flex-row"
|
|
991
|
+
aria-label="Remove ${e.name} skill"
|
|
992
|
+
@click=${async a=>{if(a.preventDefault(),"owner"!==i)return;const r={name:e.name,publicId:e.publicId,entryNode:e.entryNode.value,status:"deleted"};await $o(n,t,{create:[],update:[],remove:[r]}),o&&await o()}}
|
|
993
|
+
>
|
|
994
|
+
${rn}
|
|
995
|
+
</button>
|
|
996
|
+
`:""}
|
|
997
|
+
</li>
|
|
998
|
+
`:X``}(t,e,n,i,o))}
|
|
999
|
+
</ul>
|
|
1000
|
+
`:X`<p>No skills added yet.</p>`}
|
|
180
1001
|
</div>
|
|
181
1002
|
</section>
|
|
182
|
-
`}
|
|
183
|
-
<
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
role="
|
|
188
|
-
aria-label="Profile for ${i.name}"
|
|
1003
|
+
`}function Uo(e,n,t,i,o){return X`
|
|
1004
|
+
<section
|
|
1005
|
+
aria-labelledby="skills-heading"
|
|
1006
|
+
data-profile-section="skills"
|
|
1007
|
+
class="profile__section--empty border-lighter rounded-md gap-lg profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
1008
|
+
role="region"
|
|
189
1009
|
tabindex="-1"
|
|
190
|
-
|
|
1010
|
+
data-expanded="false"
|
|
1011
|
+
>
|
|
1012
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
1013
|
+
<h2 id="skills-heading" tabindex="-1">${he}</h2>
|
|
1014
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
1015
|
+
<button
|
|
1016
|
+
type="button"
|
|
1017
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
1018
|
+
aria-label="Add skills"
|
|
1019
|
+
@click=${a=>Wo(a,e,n,t,i,o)}
|
|
1020
|
+
>
|
|
1021
|
+
<span class="profile-section-collapsible__edit-label profile__add-more-content inline-flex-row">
|
|
1022
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
1023
|
+
Add Skills
|
|
1024
|
+
</span>
|
|
1025
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
1026
|
+
</button>
|
|
1027
|
+
<button
|
|
1028
|
+
type="button"
|
|
1029
|
+
class="inline-flex-row"
|
|
1030
|
+
aria-label="Toggle skills section"
|
|
1031
|
+
aria-controls="skills-panel"
|
|
1032
|
+
aria-expanded="false"
|
|
1033
|
+
@click=${Yi}
|
|
1034
|
+
>
|
|
1035
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
1036
|
+
</button>
|
|
1037
|
+
</div>
|
|
1038
|
+
</header>
|
|
1039
|
+
<div id="skills-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
1040
|
+
${X`
|
|
1041
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty skills section">
|
|
1042
|
+
<div class="skills__empty-icon-wrapper">
|
|
1043
|
+
<span class="skills__empty-icon inline-flex-row">${Je}</span>
|
|
1044
|
+
</div>
|
|
1045
|
+
<p class="profile__empty-state-message skills__empty-message">
|
|
1046
|
+
No skills added yet.
|
|
1047
|
+
</p>
|
|
1048
|
+
</div>
|
|
1049
|
+
`}
|
|
1050
|
+
</div>
|
|
1051
|
+
</section>
|
|
1052
|
+
`}function Ho(e){const n=((null==e?void 0:e.value)||"").trim();if(!n)return null;const t=n.slice(0,10);return(0,Me.literal)(t,me.ns.xsd("date"))}function Yo(e,n,t){if(!(t.orgName||t.orgType||t.orgLocation||t.orgHomePage))return[];const i=Kt(e),o=[(0,Me.st)(n,me.ns.org("organization"),i,e)],a=function(e){const n=(e||"").trim();if(!n)return null;if("PastRole"===n||"CurrentRole"===n||"FutureRole"===n)return null;if(n.startsWith("http://")||n.startsWith("https://")){const e=n.split(/[#/]/).pop();return"PastRole"===e||"CurrentRole"===e||"FutureRole"===e?null:(0,Me.sym)(n)}const t=n.match(/^([a-zA-Z][\w-]*):(.*)$/);if(t){const e=t[1].toLowerCase(),n=t[2].trim();return n?"PastRole"===n||"CurrentRole"===n||"FutureRole"===n?null:"schema"===e?me.ns.schema(n):"vcard"===e?me.ns.vcard(n):"solid"===e?me.ns.solid(n):"org"===e?me.ns.org(n):null:null}return me.ns.schema(n)}(t.orgType||"");return a&&o.push((0,Me.st)(i,me.ns.rdf("type"),a,e)),o.push((0,Me.st)(i,me.ns.rdf("type"),me.ns.vcard("Organization"),e)),t.orgName&&o.push((0,Me.st)(i,me.ns.schema("name"),(0,Me.literal)(t.orgName),e)),t.orgLocation&&o.push((0,Me.st)(i,me.ns.org("location"),(0,Me.literal)(t.orgLocation),e)),t.orgHomePage&&o.push((0,Me.st)(i,me.ns.schema("uri"),(0,Me.literal)(t.orgHomePage),e)),o}function Oo(e,n,t,i,o=!0){const a=[];if(o&&a.push((0,Me.st)(t,me.ns.org("member"),e,n)),a.push((0,Me.st)(t,me.ns.rdf("type"),function(e){var n,t,i,o;const a=(e.roleType||"").trim();if("PastRole"===a||"CurrentRole"===a||"FutureRole"===a)return me.ns.solid(a);if(e.isCurrentRole)return me.ns.solid("CurrentRole");const r=(new Date).toISOString().slice(0,10),l=(null===(t=null===(n=e.startDate)||void 0===n?void 0:n.value)||void 0===t?void 0:t.slice(0,10))||"",s=(null===(o=null===(i=e.endDate)||void 0===i?void 0:i.value)||void 0===o?void 0:o.slice(0,10))||"";return l&&l>r?me.ns.solid("FutureRole"):s&&s<r?me.ns.solid("PastRole"):me.ns.solid("FutureRole")}(i),n)),i.title&&a.push((0,Me.st)(t,me.ns.vcard("role"),(0,Me.literal)(i.title),n)),i.startDate){const e=Ho(i.startDate);e&&a.push((0,Me.st)(t,me.ns.schema("startDate"),e,n))}if(i.endDate&&!i.isCurrentRole){const e=Ho(i.endDate);e&&a.push((0,Me.st)(t,me.ns.schema("endDate"),e,n))}return i.description&&a.push((0,Me.st)(t,me.ns.schema("description"),(0,Me.literal)(i.description),n)),a.push(...Yo(n,t,i)),a}async function qo(e,n,t){try{await async function(e,n,t){const i=n.doc(),o=e.each(null,me.ns.org("member"),n,i),a=[],r=[];t.remove.forEach(n=>{if(!n.entryNode)return;const t=Xt(o,n.entryNode);if(t){const n=Zt(e,t,me.ns.org("organization"),i);a.push(...n.linkedStatements),a.push(...Vt(e,t,i))}}),t.update.forEach(t=>{if(!t.entryNode)return;const l=Xt(o,t.entryNode);if(!l)throw new Error("Could not find existing resume entry for update. Please reload profile data and try again.");if("BlankNode"===l.termType){const e=Kt(i);return void r.push(...Oo(n,i,e,t,!0))}[me.ns.rdf("type"),me.ns.vcard("role"),me.ns.schema("startDate"),me.ns.schema("endDate"),me.ns.schema("description")].forEach(n=>{Qt(e,l,n,i,a,r,null)});const s=Zt(e,l,me.ns.org("organization"),i);a.push(...s.linkedStatements),a.push(...s.linkStatements),r.push(...Oo(n,i,l,t,!1))}),t.create.forEach(e=>{r.push(...Oo(n,i,Kt(i),e))}),await qt(e,a,r)}(e,n,t)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`Failed to save resume: ${n}`)}}function Vo(e){return mi(e)}function Qo(e){const n=(e||"").trim();if(!n)return{year:"",month:""};const t=n.match(/^(\d{4})-(\d{2})/);if(t)return{year:t[1],month:t[2]};const i=n.match(/(\d{4})/);return{year:i?i[1]:"",month:""}}function Zo(e){return Boolean(e.isCurrentRole)||[e.title,e.roleType,ui(e.startDate),ui(e.endDate),e.orgName,e.orgType,e.orgLocation,e.orgHomePage,e.description].some(gi)}function Xo(e,n){const t=e.map((e,n)=>({resume:e,index:n})).filter(({resume:e})=>"deleted"!==e.status);return X`
|
|
1053
|
+
<section class="profile-edit-dialog__section profile-edit-dialog__section--resume" aria-label="Resume">
|
|
1054
|
+
<fieldset>
|
|
1055
|
+
<legend class="sr-only">Resume entries</legend>
|
|
1056
|
+
${t.map(({index:t},i)=>function({resumeData:e,index:n,displayIndex:t,onDelete:i,onChange:o}){const a=e[n],r=`Resume ${t+1}`,l=`resume-experience-heading-${n}`,s=`resume-title-${n}`,d=`resume-organization-${n}`,c=`resume-organization-type-${n}`,A=`resume-organization-type-select-${n}`,p=`resume-company-url-${n}`,u=`resume-org-location-${n}`,f=`resume-description-${n}`,m=`resume-description-counter-${n}`,g=2e3,h=((null==a?void 0:a.description)||"").length,C=`Start Month ${t+1}`,b=`resume-start-month-${n}`,E=`resume-start-month-select-${n}`,_=`Start Year ${t+1}`,v=`resume-start-year-${n}`,w=`resume-start-year-select-${n}`,y=Qo(ui(null==a?void 0:a.startDate)),B=y.month,x=y.year,k=`End Month ${t+1}`,I=`resume-end-month-${n}`,$=`resume-end-month-select-${n}`,S=ui(null==a?void 0:a.endDate),D=`End Year ${t+1}`,N=`resume-end-year-${n}`,T=`resume-end-year-select-${n}`,j=Qo(S),z=j.month,F=j.year,P=`resume-current-role-${n}`,L=(new Date).getFullYear(),M=Array.from({length:120},(e,n)=>String(L-n)),W=Array.from(new Set([...M,x,F].filter(Boolean))).sort((e,n)=>Number(n)-Number(e)),R=[{value:"01",label:"January"},{value:"02",label:"February"},{value:"03",label:"March"},{value:"04",label:"April"},{value:"05",label:"May"},{value:"06",label:"June"},{value:"07",label:"July"},{value:"08",label:"August"},{value:"09",label:"September"},{value:"10",label:"October"},{value:"11",label:"November"},{value:"12",label:"December"}],U=(e,n="Select Month")=>X`
|
|
1057
|
+
<option value="" ?selected=${!e}>${n}</option>
|
|
1058
|
+
${R.map(n=>X`
|
|
1059
|
+
<option value=${n.value} ?selected=${n.value===e}>${n.label}</option>
|
|
1060
|
+
`)}
|
|
1061
|
+
`,H=(e,n="Select Year")=>X`
|
|
1062
|
+
<option value="" ?selected=${!e}>${n}</option>
|
|
1063
|
+
${W.map(n=>X`
|
|
1064
|
+
<option value=${n} ?selected=${n===e}>${n}</option>
|
|
1065
|
+
`)}
|
|
1066
|
+
`,Y=e=>n=>{const t=Vo(n.target.value);a&&(yi(a,e,t,Zo),o())},O=(e,n)=>{if(e&&n)return(0,Me.literal)(`${n}-${e}-01`)};return X`
|
|
1067
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--resume-entry-header" role="group" aria-labelledby=${l}>
|
|
1068
|
+
<h3 id=${l} class="profile-edit-dialog__entry-heading">${r}</h3>
|
|
1069
|
+
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
1070
|
+
<button
|
|
1071
|
+
type="button"
|
|
1072
|
+
class="profile-edit-dialog__delete-button"
|
|
1073
|
+
aria-label=${`Delete resume ${t+1}`}
|
|
1074
|
+
title=${ve}
|
|
1075
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
1076
|
+
>
|
|
1077
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
1078
|
+
</button>
|
|
1079
|
+
</div>
|
|
1080
|
+
</div>
|
|
1081
|
+
<label aria-label=${`${r} Title`} class="label profile-edit-dialog__field">
|
|
1082
|
+
Title
|
|
1083
|
+
<input
|
|
1084
|
+
class="input"
|
|
1085
|
+
type="text"
|
|
1086
|
+
name=${s}
|
|
1087
|
+
.value=${(null==a?void 0:a.title)||""}
|
|
1088
|
+
data-contact-field="title"
|
|
1089
|
+
data-entry-node=${(null==a?void 0:a.entryNode)||""}
|
|
1090
|
+
data-row-status=${(null==a?void 0:a.status)||"n/a"}
|
|
1091
|
+
placeholder="Title"
|
|
1092
|
+
autocomplete="title"
|
|
1093
|
+
inputmode="text"
|
|
1094
|
+
@change=${Y("title")}
|
|
1095
|
+
/>
|
|
1096
|
+
</label>
|
|
1097
|
+
<div class="profile-edit-dialog__row">
|
|
1098
|
+
<label aria-label=${`${r} Organization Name`} class="label profile-edit-dialog__field">
|
|
1099
|
+
Company or Organization
|
|
1100
|
+
<input
|
|
1101
|
+
class="input"
|
|
1102
|
+
type="text"
|
|
1103
|
+
name=${d}
|
|
1104
|
+
.value=${(null==a?void 0:a.orgName)||""}
|
|
1105
|
+
required
|
|
1106
|
+
data-contact-field="organizationName"
|
|
1107
|
+
data-entry-node=${(null==a?void 0:a.entryNode)||""}
|
|
1108
|
+
data-row-status=${(null==a?void 0:a.status)||"n/a"}
|
|
1109
|
+
placeholder="Company or Organization"
|
|
1110
|
+
autocomplete="organization"
|
|
1111
|
+
inputmode="text"
|
|
1112
|
+
@change=${Y("orgName")}
|
|
1113
|
+
/>
|
|
1114
|
+
</label>
|
|
1115
|
+
<label aria-label=${`${r} Organization Type`} class="label profile-edit-dialog__field">
|
|
1116
|
+
Organization Type
|
|
1117
|
+
<select name=${c} id=${A} @change=${e=>{const n=e.target.value;a&&(vi(a,"orgType",n),o())}} .value=${(null==a?void 0:a.orgType)||""}>
|
|
1118
|
+
<option value="Corporation">Corporation</option>
|
|
1119
|
+
<option value="EducationalOrganization">Educational Organization</option>
|
|
1120
|
+
<option value="ResearchOrganization">Research Organization</option>
|
|
1121
|
+
<option value="GovernmentOrganization">Government Organization</option>
|
|
1122
|
+
<option value="NGO">NGO</option>
|
|
1123
|
+
<option value="PerformingGroup">Performing Group</option>
|
|
1124
|
+
<option value="Project">Project</option>
|
|
1125
|
+
<option value="SportsOrganization">Sports Organization</option>
|
|
1126
|
+
<option value="Other">Other</option>
|
|
1127
|
+
</select>
|
|
1128
|
+
</label>
|
|
1129
|
+
</div>
|
|
1130
|
+
<div class="profile-edit-dialog__row">
|
|
1131
|
+
<label aria-label=${`${r} Company URL`} class="label profile-edit-dialog__field">
|
|
1132
|
+
Company URL
|
|
1133
|
+
<input
|
|
1134
|
+
class="input"
|
|
1135
|
+
type="text"
|
|
1136
|
+
name=${p}
|
|
1137
|
+
.value=${(null==a?void 0:a.orgHomePage)||""}
|
|
1138
|
+
data-contact-field="orgHomePage"
|
|
1139
|
+
data-entry-node=${(null==a?void 0:a.entryNode)||""}
|
|
1140
|
+
data-row-status=${(null==a?void 0:a.status)||"n/a"}
|
|
1141
|
+
placeholder="Company URL"
|
|
1142
|
+
autocomplete="url"
|
|
1143
|
+
inputmode="text"
|
|
1144
|
+
@change=${Y("orgHomePage")}
|
|
1145
|
+
/>
|
|
1146
|
+
</label>
|
|
1147
|
+
<label aria-label=${`${r} Location`} class="label profile-edit-dialog__field profile-edit-dialog__field--resume-location">
|
|
1148
|
+
Location
|
|
1149
|
+
<input
|
|
1150
|
+
class="input"
|
|
1151
|
+
type="text"
|
|
1152
|
+
name=${u}
|
|
1153
|
+
.value=${(null==a?void 0:a.orgLocation)||""}
|
|
1154
|
+
data-contact-field="orgLocation"
|
|
1155
|
+
data-entry-node=${(null==a?void 0:a.entryNode)||""}
|
|
1156
|
+
data-row-status=${(null==a?void 0:a.status)||"n/a"}
|
|
1157
|
+
placeholder="Location"
|
|
1158
|
+
autocomplete="address-level2"
|
|
1159
|
+
inputmode="text"
|
|
1160
|
+
@change=${Y("orgLocation")}
|
|
1161
|
+
/>
|
|
1162
|
+
</label>
|
|
1163
|
+
</div>
|
|
1164
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--resume-dates">
|
|
1165
|
+
<label aria-label=${`Start Date ${t+1}`} class="label profile-edit-dialog__field profile-edit-dialog__field--date-group">
|
|
1166
|
+
<span>Start Date</span>
|
|
1167
|
+
<div class="profile-edit-dialog__date-pair">
|
|
1168
|
+
<select name=${b} id=${E} aria-label=${C} @change=${t=>{var i;const a=t.target.value,r=Qo(ui(null===(i=e[n])||void 0===i?void 0:i.startDate)).year||String(L),l=O(a,r);e[n]&&(yi(e[n],"startDate",l,Zo),o())}}>
|
|
1169
|
+
${U(B)}
|
|
1170
|
+
</select>
|
|
1171
|
+
<select name=${v} id=${w} aria-label=${_} @change=${t=>{var i;const a=t.target.value,r=Qo(ui(null===(i=e[n])||void 0===i?void 0:i.startDate)).month||"01",l=O(r,a);e[n]&&(yi(e[n],"startDate",l,Zo),o())}}>
|
|
1172
|
+
${H(x)}
|
|
1173
|
+
</select>
|
|
1174
|
+
</div>
|
|
1175
|
+
</label>
|
|
1176
|
+
<label aria-label=${`End Date ${t+1}`} class="label profile-edit-dialog__field profile-edit-dialog__field--date-group">
|
|
1177
|
+
<span>End Date</span>
|
|
1178
|
+
<div class="profile-edit-dialog__date-pair">
|
|
1179
|
+
<select
|
|
1180
|
+
name=${I}
|
|
1181
|
+
id=${$}
|
|
1182
|
+
aria-label=${k}
|
|
1183
|
+
@change=${t=>{var i;const a=t.target.value,r=Qo(ui(null===(i=e[n])||void 0===i?void 0:i.endDate)).year||String(L),l=O(a,r);e[n]&&(yi(e[n],"endDate",l,Zo),o())}}
|
|
1184
|
+
?disabled=${Boolean(null==a?void 0:a.isCurrentRole)}
|
|
1185
|
+
>
|
|
1186
|
+
${U(z,(null==a?void 0:a.isCurrentRole)?"Present":"Select Month")}
|
|
1187
|
+
</select>
|
|
1188
|
+
<select
|
|
1189
|
+
name=${N}
|
|
1190
|
+
id=${T}
|
|
1191
|
+
aria-label=${D}
|
|
1192
|
+
@change=${t=>{var i;const a=t.target.value,r=Qo(ui(null===(i=e[n])||void 0===i?void 0:i.endDate)).month||"01",l=O(r,a);e[n]&&(yi(e[n],"endDate",l,Zo),o())}}
|
|
1193
|
+
?disabled=${Boolean(null==a?void 0:a.isCurrentRole)}
|
|
1194
|
+
>
|
|
1195
|
+
${H(F,(null==a?void 0:a.isCurrentRole)?"":"Select Year")}
|
|
1196
|
+
</select>
|
|
1197
|
+
</div>
|
|
1198
|
+
</label>
|
|
1199
|
+
</div>
|
|
1200
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--inline-end">
|
|
1201
|
+
<label class="label profile-edit-dialog__checkbox-label" for=${P}>
|
|
1202
|
+
<input
|
|
1203
|
+
class="profile-edit-dialog__checkbox-input"
|
|
1204
|
+
type="checkbox"
|
|
1205
|
+
id=${P}
|
|
1206
|
+
name="isCurrentRole"
|
|
1207
|
+
.checked=${Boolean(null==a?void 0:a.isCurrentRole)}
|
|
1208
|
+
@change=${t=>{const i=t.target;if(e[n]){yi(e[n],"isCurrentRole",i.checked,Zo),i.checked&&yi(e[n],"endDate",void 0,Zo);const t=i.form||i.closest("form"),o=null==t?void 0:t.querySelector(`#${$}`),a=null==t?void 0:t.querySelector(`#${T}`);if(o){o.disabled=i.checked,o.value="";const e=o.options[0];e&&(e.text=i.checked?"Present":"Select Month")}if(a){a.disabled=i.checked,a.value="";const e=a.options[0];e&&(e.text=i.checked?"":"Select Year")}}}}
|
|
1209
|
+
/>
|
|
1210
|
+
<span>I am currently working in this role</span>
|
|
1211
|
+
</label>
|
|
1212
|
+
</div>
|
|
1213
|
+
<label aria-label=${`${r} Description`} class="label profile-edit-dialog__field profile-edit-dialog__field--full profile-edit-dialog__field--stack">
|
|
1214
|
+
<span>Description</span>
|
|
1215
|
+
<textarea
|
|
1216
|
+
class="profile-edit-dialog__textarea"
|
|
1217
|
+
name=${f}
|
|
1218
|
+
rows="4"
|
|
1219
|
+
.value=${(null==a?void 0:a.description)||""}
|
|
1220
|
+
maxlength=${g}
|
|
1221
|
+
aria-describedby=${m}
|
|
1222
|
+
data-contact-field="description"
|
|
1223
|
+
data-entry-node=${(null==a?void 0:a.entryNode)||""}
|
|
1224
|
+
data-row-status=${(null==a?void 0:a.status)||"n/a"}
|
|
1225
|
+
placeholder="Description"
|
|
1226
|
+
autocomplete="off"
|
|
1227
|
+
inputmode="text"
|
|
1228
|
+
@input=${t=>{const i=Vo(t.target.value.slice(0,g));e[n]&&(yi(e[n],"description",i,Zo),o())}}
|
|
1229
|
+
></textarea>
|
|
1230
|
+
<small id=${m} aria-live="polite">${h}/${g}</small>
|
|
1231
|
+
</label>
|
|
1232
|
+
`}({resumeData:e,index:t,displayIndex:i,onDelete:()=>{_i(e,t),n()},onChange:n}))}
|
|
1233
|
+
</fieldset>
|
|
1234
|
+
</section>
|
|
1235
|
+
`}function Go(e,n){const t=document.createElement("form");t.classList.add("profile__edit-form"),t.classList.add("profile__edit-form--resume");const i=function(e){const n=(e||[]).map(e=>{var n;return{title:Vo(ui(e.title)),roleType:Vo(ui(e.roleType)),startDate:e.startDate,endDate:e.endDate,isCurrentRole:null!==(n=e.isCurrentRole)&&void 0!==n?n:!e.endDate,orgName:Vo(ui(e.orgName)),orgType:Vo(ui(e.orgType)),orgLocation:Vo(ui(e.orgLocation)),orgHomePage:Vo(ui(e.orgHomePage)),description:Vo(ui(e.description)),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"}}).filter(e=>Zo(e)||Boolean(e.entryNode));return{resumeData:n.length?n:[{title:"",roleType:"",startDate:void 0,endDate:void 0,isCurrentRole:!1,orgName:"",orgType:"",orgLocation:"",orgHomePage:"",description:"",entryNode:"",status:"new"}]}}(e),o=(e={})=>{const{preserveState:a=!0,focusSelector:r}=e,l=a?function(e){const n=e.closest("dialog"),t=null==n?void 0:n.querySelector("#modal-desc"),i=e.ownerDocument.activeElement;return{dialogScrollTop:(null==n?void 0:n.scrollTop)||0,descriptionScrollTop:(null==t?void 0:t.scrollTop)||0,activeId:(null==i?void 0:i.id)||"",activeName:(null==i?void 0:i.getAttribute("name"))||""}}(t):null;!function(e,n,t,i){ue(X`
|
|
1236
|
+
${Xo(n.resumeData,t)}
|
|
1237
|
+
${"owner"!==i?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
1238
|
+
`,e)}(t,i,o,n),l&&function(e,n){const t=e.closest("dialog"),i=null==t?void 0:t.querySelector("#modal-desc");t&&(t.scrollTop=n.dialogScrollTop),i&&(i.scrollTop=n.descriptionScrollTop);const o=n.activeId&&"undefined"!=typeof CSS&&"function"==typeof CSS.escape?CSS.escape(n.activeId):n.activeId,a=n.activeName&&"undefined"!=typeof CSS&&"function"==typeof CSS.escape?CSS.escape(n.activeName):n.activeName;let r=null;o&&(r=e.querySelector(`#${o}`)),!r&&a&&(r=e.querySelector(`[name="${a}"]`)),r&&"function"==typeof r.focus&&r.focus({preventScroll:!0})}(t,l),r&&function(e,n){const t=e.querySelector(n);t&&"function"==typeof t.focus&&(t.focus({preventScroll:!0}),(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement)&&t.select())}(t,r)};o();return{form:t,formState:i,rerender:o,addRow:()=>{i.resumeData.unshift({title:"",roleType:"",startDate:void 0,endDate:void 0,isCurrentRole:!1,orgName:"",orgType:"",orgLocation:"",orgHomePage:"",description:"",entryNode:"",status:"new"}),o({preserveState:!1,focusSelector:'[name="resume-title-0"]'})}}}async function Ko(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d,rerender:c,addRow:A}=Go(i,o),p=await Wt({title:"Edit Resume",dom:l,form:s,headerAction:{type:"button",label:"+ Add More",ariaLabel:"Add another resume entry",onClick:A},submitLabel:Ee,cancelLabel:_e,validate:async()=>{if("owner"!==o)return we;const e=wi(d.resumeData,Zo);if(!(e.create.length>0||e.update.length>0||e.remove.length>0))return"No resume changes detected.";const n=function(e){for(let n=0;n<e.length;n++){const t=e[n];if(!t||"deleted"===t.status)continue;if(!Zo(t))continue;const i=ui(t.endDate).trim();if(!t.isCurrentRole&&!i)return{ok:!1,message:`Resume ${n+1}: End Year is required unless "I am currently working in this role" is selected.`}}return{ok:!0}}(d.resumeData);return n.ok?null:n.message||"Please complete the required resume fields."},onSave:async()=>{const e=wi(d.resumeData,Zo);await qo(n,t,e),c()},formatSaveError:e=>`Could not save resume updates. ${e instanceof Error?e.message:String(e)}`});p&&(a?await a():await function(e,n="Information",t){return Mt({title:n,message:e,buttons:[{label:"OK",value:!0,primary:!0}],dom:t})}("Resume updates saved. Refresh to see latest values.","Saved",l))}function Jo(e){return e&&e.length?X`${e.map((e,n)=>function(e,n){if(!e)return X``;const t=`cv-role-title-${n}`,i=`cv-role-period-${n}`,o=`cv-role-org-${n}`,a=`cv-role-description-${n}`,r=e.description?`${i} ${o} ${a}`:`${i} ${o}`;return X`
|
|
1239
|
+
<li class="cvRole" role="listitem" aria-labelledby=${t} aria-describedby=${r}>
|
|
1240
|
+
<div class="cvRoleHeader">
|
|
1241
|
+
<h4 id=${t}>${e.title}</h4>
|
|
1242
|
+
<p id=${i} class="cvRolePeriod">
|
|
1243
|
+
<time datetime=${Hi(e.startDate)}>${Ui(e.startDate)}</time>
|
|
1244
|
+
<span aria-hidden="true"> to </span>
|
|
1245
|
+
${e.endDate?X`<time datetime=${Hi(e.endDate)}>${Ui(e.endDate)}</time>`:X`<span>Present</span>`}
|
|
1246
|
+
</p>
|
|
1247
|
+
</div>
|
|
1248
|
+
<p class="cvOrg" id=${o}>
|
|
1249
|
+
<strong>${e.orgName}</strong>${e.orgLocation?X` | ${e.orgLocation}`:""}
|
|
1250
|
+
</p>
|
|
1251
|
+
${e.description?X`
|
|
1252
|
+
<div class="cvDescriptionWrap">
|
|
1253
|
+
<p class="cvDescriptionText" id=${a}>${e.description}</p>
|
|
1254
|
+
<button
|
|
1255
|
+
type="button"
|
|
1256
|
+
class="cvDescriptionToggle"
|
|
1257
|
+
aria-controls=${a}
|
|
1258
|
+
aria-expanded="false"
|
|
1259
|
+
hidden
|
|
1260
|
+
@click=${Ri}
|
|
1261
|
+
>
|
|
1262
|
+
...more
|
|
1263
|
+
</button>
|
|
1264
|
+
</div>
|
|
1265
|
+
`:""}
|
|
1266
|
+
</li>
|
|
1267
|
+
`}(e,n))}`:X``}function ea(e,n,t,i,o){Wi();const a=t.length>0,r=a?(l=t,Array.isArray(l)&&l.length>0?X`
|
|
1268
|
+
<article class="cvCard" aria-label="Resume" data-testid="curriculum-vitae">
|
|
1269
|
+
<section class="cvSection">
|
|
1270
|
+
<ul role="list" aria-label="Work experience in chronological order">
|
|
1271
|
+
${Jo(l)}
|
|
1272
|
+
</ul>
|
|
1273
|
+
</section>
|
|
1274
|
+
</article>
|
|
1275
|
+
`:X``):X``;var l;return X`
|
|
1276
|
+
<section
|
|
1277
|
+
aria-labelledby="cv-heading"
|
|
1278
|
+
class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
1279
|
+
role="region"
|
|
1280
|
+
tabindex="-1"
|
|
1281
|
+
data-expanded="false"
|
|
1282
|
+
>
|
|
1283
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
1284
|
+
<h2 id="cv-heading" tabindex="-1">${ge}</h2>
|
|
1285
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
1286
|
+
${"owner"===i?X`
|
|
1287
|
+
<button
|
|
1288
|
+
type="button"
|
|
1289
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
1290
|
+
aria-label="Edit resume details"
|
|
1291
|
+
@click=${a=>Ko(a,e,n,t,i,o)}
|
|
1292
|
+
>
|
|
1293
|
+
<span class="profile-section-collapsible__edit-label">${an} Edit</span>
|
|
1294
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
1295
|
+
</button>
|
|
1296
|
+
`:X``}
|
|
1297
|
+
<button
|
|
1298
|
+
type="button"
|
|
1299
|
+
class="inline-flex-row"
|
|
1300
|
+
aria-label="Toggle resume section"
|
|
1301
|
+
aria-controls="cv-panel"
|
|
1302
|
+
aria-expanded="false"
|
|
1303
|
+
@click=${Yi}
|
|
1304
|
+
>
|
|
1305
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
1306
|
+
</button>
|
|
1307
|
+
</div>
|
|
1308
|
+
</header>
|
|
1309
|
+
<div id="cv-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
1310
|
+
${a?r:X`<p>No resume details added yet.</p>`}
|
|
1311
|
+
</div>
|
|
1312
|
+
</section>
|
|
1313
|
+
`}function na(e,n,t,i,o){return X`
|
|
1314
|
+
<section
|
|
1315
|
+
aria-labelledby="resume-heading"
|
|
1316
|
+
data-profile-section="resume"
|
|
1317
|
+
class="profile__section--empty border-lighter flex-column-center rounded-md gap-lg"
|
|
1318
|
+
role="region"
|
|
1319
|
+
tabindex="-1"
|
|
1320
|
+
>
|
|
1321
|
+
${function(e,n,t,i,o){return X`
|
|
1322
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty resume section">
|
|
1323
|
+
<h2 id="resume-heading" tabindex="-1">${ge}</h2>
|
|
1324
|
+
<p class="profile__empty-state-message">
|
|
1325
|
+
You haven't included any professional experience yet. Consider adding your work history to enhance your resume.
|
|
1326
|
+
</p>
|
|
1327
|
+
</div>
|
|
1328
|
+
<button
|
|
1329
|
+
type="button"
|
|
1330
|
+
class="profile__action-button--empty"
|
|
1331
|
+
aria-label="Add resume details"
|
|
1332
|
+
@click=${a=>Ko(a,e,n,t,i,o)}
|
|
1333
|
+
>
|
|
1334
|
+
<span class="profile__action-icon" aria-hidden="true">${Ye} Add Resume</span>
|
|
1335
|
+
</button>
|
|
1336
|
+
|
|
1337
|
+
`}(e,n,t,i,o)}
|
|
1338
|
+
</section>
|
|
1339
|
+
`}function ta(e){const n=(e.url||"").trim();if(!n)return null;try{return(0,Me.sym)(new URL(n).href)}catch{return null}}function ia(e){const n=(e||"").trim();if(!n)return"";try{const e=new URL(n);return e.hash="",e.href}catch{return n}}function oa(e){var n,t,i,o,a,r,l,s,d,c,A,p;return`${(null===(t=null===(n=e.subject)||void 0===n?void 0:n.toNT)||void 0===t?void 0:t.call(n))||(null===(i=e.subject)||void 0===i?void 0:i.value)} ${(null===(a=null===(o=e.predicate)||void 0===o?void 0:o.toNT)||void 0===a?void 0:a.call(o))||(null===(r=e.predicate)||void 0===r?void 0:r.value)} ${(null===(s=null===(l=e.object)||void 0===l?void 0:l.toNT)||void 0===s?void 0:s.call(l))||(null===(d=e.object)||void 0===d?void 0:d.value)} ${(null===(A=null===(c=e.why)||void 0===c?void 0:c.toNT)||void 0===A?void 0:A.call(c))||(null===(p=e.why)||void 0===p?void 0:p.value)}`}async function aa(e,n,t,i){const o=e.updater;if(!o||"function"!=typeof o.update)throw new Error("Project updates are not supported by this store updater.");const{safeDeletions:a,safeInsertions:r}=function(e,n,t){return{safeDeletions:Array.from(new Map((n||[]).filter(n=>!!(n&&n.subject&&n.predicate&&n.object)&&e.holds(n.subject,n.predicate,n.object,n.why)).map(e=>[oa(e),e])).values()),safeInsertions:Array.from(new Map((t||[]).filter(e=>Boolean(e&&e.subject&&e.predicate&&e.object)).map(e=>[oa(e),e])).values())}}(e,t,i);if(0===a.length&&0===r.length)return;try{return void await new Promise((e,n)=>{o.update(a,r,(t,i,o)=>{!0!==i?n(new Error(o||"Failed to save projects")):e()})})}catch(t){const i=t instanceof Error?t.message:String(t);if(!function(e){const n=(e||"").toLowerCase();return n.includes(" on patch ")||n.includes("web error: 500")||n.includes("web error: 501")||n.includes("web error: 405")||n.includes("web error: 400")}(i)||"function"!=typeof o.updateDav)throw t;if(e.fetcher&&"function"==typeof e.fetcher.load)try{await e.fetcher.load(n)}catch{}try{await new Promise((e,t)=>{o.updateDav(n,a,r,(n,o,a)=>{!0!==o?t(new Error(a||i||"Failed to save projects")):e()})})}catch(t){if(!function(e){return(e||"").toLowerCase().includes("no record of our http get request for document")}(t instanceof Error?t.message:String(t)))throw t;await async function(e,n,t,i){const o=e.updater,a=e.fetcher;if(!o||"function"!=typeof o.serialize||!a||"function"!=typeof a.webOperation)throw new Error("Project updates are not supported by this store updater.");const r=e.statementsMatching(void 0,void 0,void 0,n).slice(),l=new Set((t||[]).map(e=>oa(e))),s=r.filter(e=>!l.has(oa(e))).concat(i||[]),d="text/turtle",c=o.serialize(n.value,s,d),A=await a.webOperation("PUT",n.value,{noMeta:!0,contentType:d,body:c});if(!A||!0!==A.ok){const e=(null==A?void 0:A.status)||"unknown";throw new Error(`Web error: ${e} on PUT of <${n.value}>`)}e.remove(t),i.forEach(n=>{e.add(n.subject,n.predicate,n.object,n.why)})}(e,n,a,r)}}}async function ra(e,n,t){try{await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.solid("community"),null,i),a=new Map;o.forEach(e=>{if(!e||"NamedNode"!==e.termType)return;const n=ia(e.value);n&&!a.has(n)&&a.set(n,e)});const r=[],l=[],s=e=>{r.push((0,Me.st)(n,me.ns.solid("community"),e,i))},d=e=>{l.push((0,Me.st)(n,me.ns.solid("community"),e,i))};t.remove.forEach(e=>{const n=ia(e.entryNode||""),t=ia(e.url),i=n&&a.get(n)||t&&a.get(t);i&&s(i)}),t.update.forEach(e=>{const n=ta(e),t=ia(e.url),i=ia(e.entryNode||""),o=i&&a.get(i)||t&&a.get(t);o&&s(o),n&&d(n)});const c=new Set;t.create.forEach(e=>{const n=ia(e.url);if(n&&(a.has(n)||c.has(n)))return;const t=ta(e);t&&(d(t),n&&c.add(n))}),await aa(e,i,r,l)}(e,n,t)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`Failed to save projects: ${n}`)}}function la(e){return mi(e)}function sa(e){const n=la(e);if(!n)return!1;try{const e=new URL(n);return"https:"===e.protocol&&"/profile/card"===e.pathname&&"#me"===e.hash}catch{return!1}}function da(e){return[e.url,e.entryNode].some(gi)}function ca(e,n){return X`
|
|
1340
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--project">
|
|
1341
|
+
<label aria-label="Project or community WebID" class="label profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
1342
|
+
<p>Type or paste a project or community WebID.</p>
|
|
1343
|
+
<div class="profile-edit-dialog__input-wrap">
|
|
1344
|
+
<input
|
|
1345
|
+
class="input profile-edit-dialog__input--with-action"
|
|
1346
|
+
type="text"
|
|
1347
|
+
name=${"project-0"}
|
|
1348
|
+
.value=${(null==e?void 0:e.url)||""}
|
|
1349
|
+
required
|
|
1350
|
+
data-contact-field="url"
|
|
1351
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1352
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1353
|
+
placeholder="Type or paste project/community WebID here"
|
|
1354
|
+
autocomplete="off"
|
|
1355
|
+
inputmode="text"
|
|
1356
|
+
@input=${n=>{const t=la(n.target.value);yi(e,"url",t,da)}}
|
|
1357
|
+
/>
|
|
1358
|
+
<button
|
|
1359
|
+
type="button"
|
|
1360
|
+
class="profile-edit-dialog__paste-button rounded-sm gap-xxs"
|
|
1361
|
+
aria-label="Paste project or community URL from clipboard"
|
|
1362
|
+
title=${"Paste"}
|
|
1363
|
+
@click=${async t=>{var i;t.preventDefault();try{const o=await async function(e){const n=la(await navigator.clipboard.readText());return n?(yi(e,"url",n,da),n):""}(e);if(n(),!sa(o))return;const a=((null===(i=t.currentTarget)||void 0===i?void 0:i.ownerDocument)||document).querySelector("#profile-modal #modal-buttons .btn-primary");null==a||a.click()}catch{}}}
|
|
1364
|
+
>
|
|
1365
|
+
<span class="profile-edit-dialog__paste-icon" aria-hidden="true">${tn}</span>
|
|
1366
|
+
Paste
|
|
1367
|
+
</button>
|
|
1368
|
+
</div>
|
|
1369
|
+
</label>
|
|
1370
|
+
</div>
|
|
1371
|
+
`}function Aa(e,n,t){ue(X`
|
|
1372
|
+
${ca(n.project,()=>Aa(e,n,t))}
|
|
1373
|
+
${"owner"!==t?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
1374
|
+
`,e)}function pa(e,n){const t=document.createElement("form");t.classList.add("profile__edit-form"),t.classList.add("profile__edit-form--projects");const i={project:{url:"",entryNode:"",status:"new"}};return Aa(t,i,n),{form:t,formState:i}}async function ua(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d}=pa(0,o),c=Wt({title:"Edit Projects & Communities",dom:l,form:s,headerAction:{type:"close"},validate:()=>{return"owner"!==o?we:gi((e=d.project).url)||gi(e.entryNode)?gi(e.url)?sa(e.url)?null:"Please enter a valid WebID in the form https://example.com/profile/card#me.":"WebID is required.":"Add a project WebID.";var e},onSave:async()=>{const e=wi([d.project],da),i={create:e.create,update:e.update,remove:e.remove};await ra(n,t,i)},formatSaveError:e=>`Could not save projects updates. ${e instanceof Error?e.message:String(e)}`}),A=l.querySelector("#profile-modal #modal-buttons"),p=null==A?void 0:A.style.display;A&&(A.style.display="none");let u=null;try{u=await c}finally{A&&(A.style.display=p||"")}u&&a&&await a()}var fa=a(2270),ma={};ma.styleTagTransform=u(),ma.setAttributes=d(),ma.insert=l().bind(null,"head"),ma.domAPI=i(),ma.insertStyleElement=A();n()(fa.A,ma);fa.A&&fa.A.locals&&fa.A.locals;function ga(e){const n=e.currentTarget,t=null==n?void 0:n.closest(".profile-section-collapsible");if(!n||!t)return;const i="true"!==t.getAttribute("data-mobile-expanded");t.setAttribute("data-mobile-expanded",String(i)),n.setAttribute("aria-expanded",String(i)),n.setAttribute("data-mobile-expanded",String(i));const o=n.querySelector(".project-card__more-label");o&&(o.textContent=i?"View Less":"View More")}function ha(e,n){var t;return{url:e.url,title:e.title,imageUrl:e.imageUrl,category:e.category,name:e.name,orgName:e.orgName,entryNode:(null===(t=e.entryNode)||void 0===t?void 0:t.value)||"",status:n}}function Ca(e,n,t,i,o){if(!e)return X``;const a=(e.category||"").trim().toLowerCase(),r="project"===a?"project":"community"===a?"community":"unknown",l=a&&"unknown"!==a?a.charAt(0).toUpperCase()+a.slice(1):"Uncategorized";return X`
|
|
1375
|
+
<li class="project-card flex-column" role="listitem">
|
|
1376
|
+
<a
|
|
1377
|
+
class="project-card__link"
|
|
1378
|
+
href=${e.url}
|
|
1379
|
+
target="_blank"
|
|
1380
|
+
rel="noopener noreferrer"
|
|
1381
|
+
aria-label=${e.title?`Open ${e.title}`:"Open project link"}
|
|
1382
|
+
>
|
|
1383
|
+
<div class="project-card__wrapper">
|
|
1384
|
+
<div class="project-card__thumb flex-center">
|
|
1385
|
+
${function(e,n){return e?X`
|
|
1386
|
+
<img
|
|
1387
|
+
class="project-card__thumb-image"
|
|
1388
|
+
src=${e}
|
|
1389
|
+
alt=${n}
|
|
1390
|
+
loading="lazy"
|
|
1391
|
+
/>
|
|
1392
|
+
`:X`
|
|
1393
|
+
<div class="project-card__thumb-fallback flex-center" role="img" aria-label=${n} tabindex="0">
|
|
1394
|
+
${n}
|
|
1395
|
+
</div>
|
|
1396
|
+
`}(e.imageUrl,e.title||"Project preview")}
|
|
1397
|
+
</div>
|
|
1398
|
+
<div class="project-card__content">
|
|
1399
|
+
<p class="project-card__title"><strong>${e.title||e.url}</strong></p>
|
|
1400
|
+
<p class="project-card__organization">${e.orgName||"Organization unknown"}</p>
|
|
1401
|
+
<p class="project-card__category project-card__category--${r}">${l}</p>
|
|
1402
|
+
</div>
|
|
1403
|
+
</div>
|
|
1404
|
+
</a>
|
|
1405
|
+
${"owner"===i?X`
|
|
1406
|
+
<div class="project-card__footer">
|
|
1407
|
+
<button
|
|
1408
|
+
type="button"
|
|
1409
|
+
class="project-card__follow-button flex-center gap-xxs"
|
|
1410
|
+
aria-label="Unfollow project"
|
|
1411
|
+
@click=${async a=>{if(a.preventDefault(),"owner"!==i)return;const r={create:[],update:[],remove:[ha(e,"deleted")]};await ra(n,t,r),o&&await o()}}
|
|
1412
|
+
>
|
|
1413
|
+
<span>${He} Following</span>
|
|
1414
|
+
</button>
|
|
1415
|
+
</div>
|
|
1416
|
+
`:X``}
|
|
1417
|
+
</li>
|
|
1418
|
+
`}function ba(e,n,t,i,o){return X`
|
|
1419
|
+
<section
|
|
1420
|
+
aria-labelledby="projects-heading"
|
|
1421
|
+
data-profile-section="projects"
|
|
1422
|
+
class="profile__section--empty border-lighter flex-column-center rounded-md gap-lg"
|
|
1423
|
+
role="region"
|
|
1424
|
+
tabindex="-1"
|
|
1425
|
+
>
|
|
1426
|
+
${function(e,n,t,i,o){return X`
|
|
1427
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty projects section">
|
|
1428
|
+
<h2 id="projects-heading" tabindex="-1">${be}</h2>
|
|
1429
|
+
<p class="profile__empty-state-message">
|
|
1430
|
+
You haven't added any projects yet. Consider adding a project to boost your profile.
|
|
1431
|
+
</p>
|
|
1432
|
+
</div>
|
|
1433
|
+
<button
|
|
1434
|
+
type="button"
|
|
1435
|
+
class="profile__action-button--empty"
|
|
1436
|
+
aria-label="Add project details"
|
|
1437
|
+
@click=${t=>ua(t,e,n,0,i,o)}
|
|
1438
|
+
>
|
|
1439
|
+
<span class="profile__action-icon" aria-hidden="true">${Ye} Add Project</span>
|
|
1440
|
+
</button>
|
|
191
1441
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
1442
|
+
`}(e,n,0,i,o)}
|
|
1443
|
+
</section>
|
|
1444
|
+
`}function Ea(e,n,t,i,o){return e&&e.length&&e[0]?X`${Ca(e[0],n,t,i,o)}${e.length>1?Ea(e.slice(1),n,t,i,o):X``}`:X``}function _a(e,n,t,i,o){const a=Array.isArray(t)&&t.length>0,r=Math.max(0,t.length-2);return X`
|
|
1445
|
+
<section
|
|
1446
|
+
class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
1447
|
+
aria-labelledby="projects-heading"
|
|
195
1448
|
role="region"
|
|
196
1449
|
tabindex="-1"
|
|
1450
|
+
data-expanded="false"
|
|
1451
|
+
data-mobile-expanded="${r>0?"false":"true"}"
|
|
197
1452
|
>
|
|
198
|
-
<header class="
|
|
199
|
-
<h2 id="
|
|
1453
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
1454
|
+
<h2 id="projects-heading">${be}</h2>
|
|
1455
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
1456
|
+
${"owner"===i?X`
|
|
1457
|
+
<button
|
|
1458
|
+
type="button"
|
|
1459
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
1460
|
+
aria-label="Add or edit projects"
|
|
1461
|
+
@click=${t=>ua(t,e,n,0,i,o)}
|
|
1462
|
+
>
|
|
1463
|
+
<span class="profile-section-collapsible__edit-label profile__add-more-content inline-flex-row">
|
|
1464
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
1465
|
+
Add More
|
|
1466
|
+
</span>
|
|
1467
|
+
<span class="profile-section-collapsible__edit-icon profile-section-collapsible__edit-icon--add profile-section-collapsible__edit-icon--projects" aria-hidden="true">${Ye}</span>
|
|
1468
|
+
</button>
|
|
1469
|
+
`:X``}
|
|
1470
|
+
<button
|
|
1471
|
+
type="button"
|
|
1472
|
+
class="inline-flex-row"
|
|
1473
|
+
aria-label="Toggle projects section"
|
|
1474
|
+
aria-controls="projects-panel"
|
|
1475
|
+
aria-expanded="false"
|
|
1476
|
+
@click=${Yi}
|
|
1477
|
+
>
|
|
1478
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
1479
|
+
</button>
|
|
1480
|
+
</div>
|
|
200
1481
|
</header>
|
|
201
|
-
|
|
202
|
-
|
|
1482
|
+
<div id="projects-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
1483
|
+
${a?X`
|
|
1484
|
+
<ul id="projects-rail" class="project-card__rail" role="list" aria-label="Known projects">
|
|
1485
|
+
${Ea(t,e,n,i,o)}
|
|
1486
|
+
</ul>
|
|
1487
|
+
${r>0?X`
|
|
1488
|
+
<button
|
|
1489
|
+
type="button"
|
|
1490
|
+
class="project-card__more-button"
|
|
1491
|
+
aria-controls="projects-rail"
|
|
1492
|
+
aria-expanded="false"
|
|
1493
|
+
data-mobile-expanded="false"
|
|
1494
|
+
@click=${ga}
|
|
1495
|
+
>
|
|
1496
|
+
<span class="project-card__more-icon" aria-hidden="true">${sn}</span>
|
|
1497
|
+
<span class="project-card__more-label">View More</span>
|
|
1498
|
+
</button>
|
|
1499
|
+
`:X``}
|
|
1500
|
+
`:X`<p>No projects added yet.</p>`}
|
|
1501
|
+
</div>
|
|
1502
|
+
</section>
|
|
1503
|
+
`}var va=a(1569),wa={};wa.styleTagTransform=u(),wa.setAttributes=d(),wa.insert=l().bind(null,"head"),wa.domAPI=i(),wa.insertStyleElement=A();n()(va.A,wa);va.A&&va.A.locals&&va.A.locals;function ya(e,n,t,i){const o=i.value.startsWith("tel:")?i.value:`tel:${i.value}`,a=(0,Me.sym)(o),r=[(0,Me.st)(e,me.ns.vcard("hasTelephone"),t,n),(0,Me.st)(t,me.ns.vcard("value"),a,n)];return i.type&&r.push((0,Me.st)(t,me.ns.rdf("type"),me.ns.vcard(i.type),n)),r}function Ba(e,n,t,i){const o=i.value.startsWith("mailto:")?i.value:`mailto:${i.value}`,a=(0,Me.sym)(o),r=[(0,Me.st)(e,me.ns.vcard("hasEmail"),t,n),(0,Me.st)(t,me.ns.vcard("value"),a,n)];return i.type&&r.push((0,Me.st)(t,me.ns.rdf("type"),me.ns.vcard(i.type),n)),r}function xa(e,n,t,i){const o=[(0,Me.st)(e,me.ns.vcard("hasAddress"),t,n)];return i.type&&o.push((0,Me.st)(t,me.ns.rdf("type"),me.ns.vcard(i.type),n)),i.streetAddress&&o.push((0,Me.st)(t,me.ns.vcard("street-address"),i.streetAddress,n)),i.locality&&o.push((0,Me.st)(t,me.ns.vcard("locality"),i.locality,n)),i.region&&o.push((0,Me.st)(t,me.ns.vcard("region"),i.region,n)),i.postalCode&&o.push((0,Me.st)(t,me.ns.vcard("postal-code"),i.postalCode,n)),i.countryName&&o.push((0,Me.st)(t,me.ns.vcard("country-name"),i.countryName,n)),o}function ka(e,n){return e.find(e=>Boolean(e.entryNode)&&Boolean(Xt(n,e.entryNode)))}function Ia(e){return e.find(e=>!e.entryNode)}async function $a(e,n,t){const i=n.doc(),o=[],a=[],r=(t,r)=>{const l=(r||"").trim(),s=l?(0,Me.literal)(l):null;Qt(e,n,t,i,o,a,s)},l=(t,l=!1)=>{const s=l?{name:"",nickname:"",dateOfBirth:"",jobTitle:"",orgName:"",imageSrc:""}:t;r(me.ns.vcard("fn"),s.name),r(me.ns.foaf("nick"),s.nickname),r(me.ns.vcard("nickname"),s.nickname),r(me.ns.vcard("bday"),s.dateOfBirth),r(me.ns.vcard("role"),s.jobTitle),r(me.ns.vcard("organization-name"),s.orgName),(t=>{const r=(t||"").trim(),l=r?r.startsWith("http://")||r.startsWith("https://")?(0,Me.sym)(r):(0,Me.literal)(r):null;Qt(e,n,me.ns.vcard("hasPhoto"),i,o,a,l)})(s.imageSrc)},s=t.remove[0],d=t.update[0],c=t.create[0],A=d||c||s;A&&l(A,Boolean(s&&!d&&!c)),await qt(e,o,a)}async function Sa(e,n,t){try{await $a(e,n,t.basicOps),await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.vcard("hasTelephone"),null,i),a=[],r=[],l=ka(t.remove,o),s=ka(t.update,o),d=Ia(t.create)||t.create[0];if(null==l?void 0:l.entryNode){const t=Xt(o,l.entryNode);if(t){const o=Zt(e,n,me.ns.vcard("hasTelephone"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===t.value});o&&a.push(o),a.push(...Vt(e,t,i))}}if(s){const t=Xt(o,s.entryNode);t&&(a.push(...Vt(e,t,i)),r.push(...ya(n,i,t,s)))}d&&r.push(...ya(n,i,Kt(i),d)),await qt(e,a,r)}(e,n,t.phoneOps),await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.vcard("hasEmail"),null,i),a=[],r=[],l=ka(t.remove,o),s=ka(t.update,o),d=Ia(t.create)||t.create[0];if(null==l?void 0:l.entryNode){const t=Xt(o,l.entryNode);if(t){const o=Zt(e,n,me.ns.vcard("hasEmail"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===t.value});o&&a.push(o),a.push(...Vt(e,t,i))}}if(s){const t=Xt(o,s.entryNode);t&&(a.push(...Vt(e,t,i)),r.push(...Ba(n,i,t,s)))}d&&r.push(...Ba(n,i,Kt(i),d)),await qt(e,a,r)}(e,n,t.emailOps),await async function(e,n,t){const i=n.doc(),o=e.each(n,me.ns.vcard("hasAddress"),null,i),a=[],r=[],l=ka(t.remove,o),s=ka(t.update,o),d=Ia(t.create)||t.create[0];if(null==l?void 0:l.entryNode){const t=Xt(o,l.entryNode);if(t){const o=Zt(e,n,me.ns.vcard("hasAddress"),i).linkStatements.find(e=>{var n;return(null===(n=e.object)||void 0===n?void 0:n.value)===t.value});o&&a.push(o),a.push(...Vt(e,t,i))}}if(s){const t=Xt(o,s.entryNode);t&&(a.push(...Vt(e,t,i)),r.push(...xa(n,i,t,s)))}d&&r.push(...xa(n,i,Kt(i),d)),await qt(e,a,r)}(e,n,t.addressOps)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`${Be} ${n}`)}}function Da(e){const n=e.match(/^(\d{2})[/-](\d{2})[/-](\d{4})$/);if(!n)return"";const[,t,i,o]=n;return`${t}-${i}-${o}`}function Na(e){const n=(e||"").trim();if(!n)return"";if(n.match(/^(\d{4})-(\d{2})-(\d{2})$/))return n;const t=n.match(/^(\d{2})[/-](\d{2})[/-](\d{4})$/);if(t){const[,e,n,i]=t;return`${i}-${n}-${e}`}return""}const Ta={"image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/svg+xml":"svg","image/webp":"webp","image/bmp":"bmp","image/tiff":"tiff","application/pdf":"pdf","text/plain":"txt","text/html":"html","application/json":"json","application/octet-stream":"bin"},ja=Object.fromEntries(Object.entries(Ta).map(([e,n])=>[n,e])),za=e=>Ta[e]||!1,Fa=e=>{var n;const t=(null===(n=e.split(".").pop())||void 0===n?void 0:n.toLowerCase())||"";return ja[t]||!1};me.icons.iconBase;const Pa=me.icons.iconBase+"noun_479395.svg";function La(e,n,t,i){const o=e.createElement("div");let a,r,l,s;o.className="profile-edit-dialog__camera-control flex-column-center";const d=(e,n)=>{e.style.display=n?"inline-flex":"none"},c=o.appendChild(e.createElement("table")).appendChild(e.createElement("tr")).appendChild(e.createElement("td"));c.setAttribute("colspan","4"),c.style.textAlign="center";const A=o.appendChild(e.createElement("div"));A.className="profile-edit-dialog__camera-control-actions";const p=o.appendChild(e.createElement("button"));p.type="button",p.classList.add("profile-edit-dialog__camera-control-cancel"),p.setAttribute("aria-label","Close camera"),p.setAttribute("title","Close"),ue(on,p),p.addEventListener("click",e=>{C(),i(null)});const u=A.appendChild(me.widgets.button(e,Pa,"Retake"));u.classList.add("profile-edit-dialog__camera-control-action"),u.addEventListener("click",e=>{c.removeChild(s),g()}),u.textContent="Retake",d(u,!1);const f=A.appendChild(me.widgets.button(e,me.icons.iconBase+"noun_10636.svg","Snap"));f.classList.add("profile-edit-dialog__camera-control-action"),f.addEventListener("click",function(){s=e.createElement("canvas"),s.setAttribute("width",me.style.canvasWidth),s.setAttribute("height",me.style.canvasHeight),s.setAttribute("style",me.style.controlStyle),c.appendChild(s);const n=s.getContext("2d");if(!n)throw new Error("Could not get canvas context for camera snapshot");n.drawImage(l,0,0,s.width,s.height),C(),l.parentNode.removeChild(l),s.toBlob(e=>{if(!e)throw new Error("Camera snapshot failed: no image blob produced");const n=`got blob type ${e.type} size ${e.size}`;console.debug(n),a=t(),r=e,d(m,!0),d(u,!0),d(f,!1)},"image/png")}),f.textContent="Take Photo",d(f,!1);const m=A.appendChild(me.widgets.continueButton(e));function g(){if(l=c.appendChild(e.createElement("video")),l.setAttribute("controls","1"),l.setAttribute("autoplay","1"),l.setAttribute("style",me.style.controlStyle),!navigator.mediaDevices)throw new Error("navigator.mediaDevices not available");navigator.mediaDevices.getUserMedia(h).then(e=>{l.srcObject=e,d(f,!0),d(m,!1),d(u,!1)}).catch(e=>{console.error("Unable to start camera preview",e),i(null)})}m.classList.add("profile-edit-dialog__camera-control-action"),m.addEventListener("click",e=>{!function(e,t){if(!e||!t)return;const o=e.type;console.debug("Putting "+e.size+" bytes of "+o+" to "+t),n.fetcher.webOperation("PUT",t.uri,{data:e,contentType:o}).then(e=>{console.debug("ok saved "+t),C(),i(t)},e=>{C(),alert(e)})}(r,a)}),m.textContent="Use Photo",d(m,!1);const h={video:{facingMode:{ideal:"environment"}}};function C(){l&&l.srcObject&&l.srcObject.getVideoTracks().forEach(e=>e.stop())}return g(),o}function Ma(e){return function(e){return"value"in e}(e)?gi(e.value):function(e){return"streetAddress"in e}(e)?[e.streetAddress,e.locality,e.region,e.postalCode,e.countryName].some(gi):!!function(e){return"name"in e}(e)&&[e.name,e.nickname,e.imageSrc,e.location,e.pronouns,e.dateOfBirth,e.jobTitle,e.orgName].some(gi)}function Wa(e){const n=mi(e||"").toLowerCase().replace(/\s+/g,"");return n?"he"===n||"he/him"===n?"He/Him":"she"===n||"she/her"===n?"She/Her":"they"===n||"they/them"===n?"They/Them":e||"":""}function Ra(e){const n=e=>{return{...e,type:(n=e.type,"Personal"===n?"Home":n||"")};var n};return{create:e.create.map(n),update:e.update.map(n),remove:e.remove.map(n)}}function Ua(e){const n=e=>{return{...e,type:(n=e.type,"Mobile"===n?"Cell":n||"")};var n};return{create:e.create.map(n),update:e.update.map(n),remove:e.remove.map(n)}}function Ha(e,n,t,i,o,a){const r="Full Name",l="Nickname",s="Pronouns",d="Job Title",c="Organization Name",A=e=>n=>{const i=Ii(n.target.value);t&&yi(t,e,i,Ma)};return X`
|
|
1504
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--heading-photo">
|
|
1505
|
+
<header class="mb-md" aria-label="Profile Image">
|
|
1506
|
+
<div class="profile-edit-dialog__image-frame">
|
|
1507
|
+
${Za(t.imageSrc,t.name)}
|
|
1508
|
+
<button
|
|
1509
|
+
type="button"
|
|
1510
|
+
class="profile-edit-dialog__image-camera-button flex-center"
|
|
1511
|
+
aria-label="Take a photo"
|
|
1512
|
+
title="Take a photo"
|
|
1513
|
+
@click=${async i=>{i.preventDefault();const o=i.currentTarget,r=(null==o?void 0:o.ownerDocument)||document,l=null==o?void 0:o.closest(".profile-edit-dialog__row--heading-photo"),s=null==l?void 0:l.nextElementSibling,d=null==s?void 0:s.querySelector(".profile-edit-dialog__image-camera-capture-frame");if(!d||"true"===d.dataset.active)return;d.hidden=!1,d.dataset.active="true",d.replaceChildren();const c=()=>{const e=n.doc().uri,t=e.lastIndexOf("/"),i=t>=0?e.slice(0,t+1):e,o="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}_${Math.floor(1e9*Math.random())}`;return(0,Me.sym)(`${i}camera_${o}.png`)},A=async e=>{d.replaceChildren(),d.hidden=!0,d.dataset.active="false",(null==e?void 0:e.uri)&&t&&(yi(t,"imageSrc",e.uri,Ma),a())};try{const n=La(r,e,c,A);d.appendChild(n)}catch(e){d.hidden=!0,d.dataset.active="false",d.replaceChildren(),console.error("Camera control failed to initialize",e)}}}
|
|
1514
|
+
>
|
|
1515
|
+
${ln}
|
|
1516
|
+
</button>
|
|
1517
|
+
</div>
|
|
1518
|
+
</header>
|
|
1519
|
+
|
|
1520
|
+
<div class="profile-edit-dialog__image-preview" aria-label="Profile Photo Preview">
|
|
1521
|
+
<p class="profile-edit-dialog__image-preview-label"><strong>${"Profile Photo"}</strong></p>
|
|
1522
|
+
<p class="profile-edit-dialog__image-preview-description">${"Recommended: Square JPG, PNG. Max 2MB."}</p>
|
|
203
1523
|
|
|
204
|
-
|
|
205
|
-
<
|
|
206
|
-
|
|
207
|
-
class="
|
|
208
|
-
|
|
209
|
-
|
|
1524
|
+
<div class="profile-edit-dialog__image-preview-actions">
|
|
1525
|
+
<button
|
|
1526
|
+
type="button"
|
|
1527
|
+
class="profile-edit-dialog__image-button profile-edit-dialog__image-upload-button flex-center"
|
|
1528
|
+
aria-label="Upload new profile photo"
|
|
1529
|
+
title="Upload New"
|
|
1530
|
+
@click=${async i=>{const o=i.currentTarget,r=((null==o?void 0:o.ownerDocument)||document).createElement("input");r.type="file",r.accept="image/*",r.addEventListener("change",async()=>{var i;const o=null===(i=r.files)||void 0===i?void 0:i[0];if(o&&t)try{const i=await async function(e,n,t){if(!e.fetcher)throw new Error("Store has no fetcher.");const i=t.type||Fa(t.name)||"application/octet-stream";if(!i.startsWith("image/"))throw new Error("Selected file is not an image.");const o=za(i)||"bin";let a=encodeURIComponent(t.name||`image.${o}`);i!==Fa(t.name||"")&&(a+=`_.${o}`);const r=function(e){const n=e.doc().uri,t=n.lastIndexOf("/");return t>=0?n.slice(0,t+1):n}(n);let l=`${r}${a}`;for(let t=0;e.holds(n,me.ns.vcard("hasPhoto"),(0,Me.sym)(l));t++)l=`${r}image_${t}.${o}`;try{const n=await t.arrayBuffer(),o=await e.fetcher.webOperation("PUT",l,{data:n,contentType:i});if(!o.ok)throw new Error(`Error uploading picture: ${o.status} ${o.statusText}`)}catch(e){throw new Error(`Error uploading picture: ${e}`)}return l}(e,n,o);yi(t,"imageSrc",i,Ma),a()}catch(e){console.error("Profile image upload failed",e)}}),r.click()}}
|
|
1531
|
+
>
|
|
1532
|
+
Upload New
|
|
1533
|
+
</button>
|
|
1534
|
+
<button
|
|
1535
|
+
type="button"
|
|
1536
|
+
class="profile-edit-dialog__image-button profile-edit-dialog__image-remove-button flex-center"
|
|
1537
|
+
aria-label="Delete profile photo"
|
|
1538
|
+
title="Remove"
|
|
1539
|
+
@click=${async e=>{t&&(yi(t,"imageSrc","",Ma),a())}}
|
|
210
1540
|
>
|
|
211
|
-
|
|
212
|
-
|
|
1541
|
+
Remove
|
|
1542
|
+
</button>
|
|
1543
|
+
</div>
|
|
1544
|
+
</div>
|
|
1545
|
+
</div>
|
|
1546
|
+
<div class="profile-edit-dialog__image-camera-capture-row">
|
|
1547
|
+
<div class="profile-edit-dialog__image-camera-capture-frame" hidden></div>
|
|
1548
|
+
</div>
|
|
1549
|
+
<div class="profile-edit flex-column gap-lg">
|
|
1550
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal">
|
|
1551
|
+
<label aria-label=${r} class="label profile-edit-dialog__field">
|
|
1552
|
+
${r}
|
|
1553
|
+
<input
|
|
1554
|
+
class="input"
|
|
1555
|
+
type="text"
|
|
1556
|
+
name="name"
|
|
1557
|
+
.value=${(null==t?void 0:t.name)||""}
|
|
1558
|
+
required
|
|
1559
|
+
data-contact-field="name"
|
|
1560
|
+
data-entry-node=${(null==t?void 0:t.entryNode)||""}
|
|
1561
|
+
data-row-status=${(null==t?void 0:t.status)||"n/a"}
|
|
1562
|
+
placeholder="Full Name"
|
|
1563
|
+
autocomplete="name"
|
|
1564
|
+
inputmode="text"
|
|
1565
|
+
@change=${A("name")}
|
|
1566
|
+
/>
|
|
1567
|
+
</label>
|
|
1568
|
+
<label aria-label=${l} class="label profile-edit-dialog__field">
|
|
1569
|
+
${l}
|
|
1570
|
+
<input
|
|
1571
|
+
class="input"
|
|
1572
|
+
type="text"
|
|
1573
|
+
name="nickname"
|
|
1574
|
+
.value=${(null==t?void 0:t.nickname)||""}
|
|
1575
|
+
data-contact-field="nickname"
|
|
1576
|
+
data-entry-node=${(null==t?void 0:t.entryNode)||""}
|
|
1577
|
+
data-row-status=${(null==t?void 0:t.status)||"n/a"}
|
|
1578
|
+
placeholder="Nickname"
|
|
1579
|
+
autocomplete="nickname"
|
|
1580
|
+
inputmode="text"
|
|
1581
|
+
@change=${A("nickname")}
|
|
1582
|
+
/>
|
|
1583
|
+
</label>
|
|
1584
|
+
</div>
|
|
1585
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal">
|
|
1586
|
+
<label aria-label=${s} class="label profile-edit-dialog__field-type profile-edit-dialog__field--stack">
|
|
1587
|
+
${s}
|
|
1588
|
+
<select class="input" name="pronouns" @change=${e=>{const n=e.target.value;t&&vi(t,"pronouns",n)}} .value=${(null==t?void 0:t.pronouns)||""}>
|
|
1589
|
+
<option value="He/Him">He/Him</option>
|
|
1590
|
+
<option value="She/Her">She/Her</option>
|
|
1591
|
+
<option value="They/Them">They/Them</option>
|
|
1592
|
+
</select>
|
|
1593
|
+
</label>
|
|
1594
|
+
<label aria-label=${"DOB"} class="label profile-edit-dialog__field">
|
|
1595
|
+
${"DOB"}
|
|
1596
|
+
<input
|
|
1597
|
+
class="input"
|
|
1598
|
+
type="date"
|
|
1599
|
+
name="profile-date-of-birth"
|
|
1600
|
+
.value=${Na(null==t?void 0:t.dateOfBirth)}
|
|
1601
|
+
data-contact-field="dateOfBirth"
|
|
1602
|
+
data-entry-node=${(null==t?void 0:t.entryNode)||""}
|
|
1603
|
+
data-row-status=${(null==t?void 0:t.status)||"n/a"}
|
|
1604
|
+
autocomplete="off"
|
|
1605
|
+
data-lpignore="true"
|
|
1606
|
+
data-1p-ignore="true"
|
|
1607
|
+
data-bwignore="true"
|
|
1608
|
+
@change=${e=>{const n=Ii(e.target.value);t&&yi(t,"dateOfBirth",Na(n),Ma)}}
|
|
1609
|
+
/>
|
|
1610
|
+
</label>
|
|
1611
|
+
</div>
|
|
1612
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal">
|
|
1613
|
+
<label aria-label=${d} class="label profile-edit-dialog__field">
|
|
1614
|
+
${d}
|
|
1615
|
+
<input
|
|
1616
|
+
class="input"
|
|
1617
|
+
type="text"
|
|
1618
|
+
name="jobTitle"
|
|
1619
|
+
.value=${(null==t?void 0:t.jobTitle)||""}
|
|
1620
|
+
data-contact-field="jobTitle"
|
|
1621
|
+
data-entry-node=${(null==t?void 0:t.entryNode)||""}
|
|
1622
|
+
data-row-status=${(null==t?void 0:t.status)||"n/a"}
|
|
1623
|
+
placeholder="Job Title"
|
|
1624
|
+
autocomplete="organization-title"
|
|
1625
|
+
inputmode="text"
|
|
1626
|
+
@change=${A("jobTitle")}
|
|
1627
|
+
/>
|
|
1628
|
+
</label>
|
|
1629
|
+
<label aria-label=${c} class="label profile-edit-dialog__field">
|
|
1630
|
+
${c}
|
|
1631
|
+
<input
|
|
1632
|
+
class="input"
|
|
1633
|
+
type="text"
|
|
1634
|
+
name="orgName"
|
|
1635
|
+
.value=${(null==t?void 0:t.orgName)||""}
|
|
1636
|
+
data-contact-field="orgName"
|
|
1637
|
+
data-entry-node=${(null==t?void 0:t.entryNode)||""}
|
|
1638
|
+
data-row-status=${(null==t?void 0:t.status)||"n/a"}
|
|
1639
|
+
placeholder="Organization Name"
|
|
1640
|
+
autocomplete="organization-name"
|
|
1641
|
+
inputmode="text"
|
|
1642
|
+
@change=${A("orgName")}
|
|
1643
|
+
/>
|
|
1644
|
+
</label>
|
|
1645
|
+
</div>
|
|
1646
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal">
|
|
1647
|
+
<div class="profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
1648
|
+
${function({phone:e}){const n="phone-value",t=Ai((null==e?void 0:e.value)||"");let i=t.dialCode;return X`
|
|
1649
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--contact-point">
|
|
1650
|
+
<div class="profile-edit-dialog__field">
|
|
1651
|
+
<label aria-label=${"Phone Number"} class="label">
|
|
1652
|
+
<input
|
|
1653
|
+
class="input"
|
|
1654
|
+
type="tel"
|
|
1655
|
+
name=${n}
|
|
1656
|
+
.value=${t.localNumber}
|
|
1657
|
+
required
|
|
1658
|
+
data-contact-field="value"
|
|
1659
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1660
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1661
|
+
placeholder="Phone Number"
|
|
1662
|
+
autocomplete="tel-national"
|
|
1663
|
+
inputmode="tel"
|
|
1664
|
+
@input=${n=>{const t=xi(n.target.value);e&&yi(e,"value",pi(i,t),Ma)}}
|
|
1665
|
+
/>
|
|
1666
|
+
</label>
|
|
1667
|
+
</div>
|
|
1668
|
+
<label aria-label=${"Phone Type"} class="label profile-edit-dialog__field-type profile-edit-dialog__field-type--contact-point">
|
|
1669
|
+
<select class="input" name=${"phone-type"} id="phone-type-select-${n}" @change=${n=>{const t=n.target.value;e&&vi(e,"type",t)}} .value=${(null==e?void 0:e.type)||""}>
|
|
1670
|
+
<option value="Mobile">Mobile</option>
|
|
1671
|
+
<option value="Home">Home</option>
|
|
1672
|
+
<option value="Work">Work</option>
|
|
1673
|
+
</select>
|
|
1674
|
+
</label>
|
|
1675
|
+
</div>
|
|
1676
|
+
`}({phone:i})}
|
|
1677
|
+
</div>
|
|
1678
|
+
<div class="profile-edit-dialog__field profile-edit-dialog__field--full">
|
|
1679
|
+
${function({email:e}){const n="email-value";return X`
|
|
1680
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--contact-point">
|
|
1681
|
+
<label aria-label=${"Email Address"} class="label profile-edit-dialog__field">
|
|
1682
|
+
<input
|
|
1683
|
+
class="input"
|
|
1684
|
+
type="email"
|
|
1685
|
+
name=${n}
|
|
1686
|
+
.value=${(null==e?void 0:e.value)||""}
|
|
1687
|
+
required
|
|
1688
|
+
data-contact-field="value"
|
|
1689
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1690
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1691
|
+
placeholder="Email Address"
|
|
1692
|
+
autocomplete="email"
|
|
1693
|
+
inputmode="email"
|
|
1694
|
+
@input=${n=>{const t=Bi(n.target.value);e&&yi(e,"value",t,Ma)}}
|
|
1695
|
+
/>
|
|
1696
|
+
</label>
|
|
1697
|
+
<label aria-label=${"Email Type"} class="label profile-edit-dialog__field-type profile-edit-dialog__field-type--contact-point">
|
|
1698
|
+
<select class="input" name=${"email-type"} id="email-type-select-${n}" @change=${n=>{const t=n.target.value;e&&vi(e,"type",t)}} .value=${(null==e?void 0:e.type)||""}>
|
|
1699
|
+
<option value="Personal">Personal</option>
|
|
1700
|
+
<option value="Office">Office</option>
|
|
1701
|
+
</select>
|
|
1702
|
+
</label>
|
|
1703
|
+
</div>
|
|
1704
|
+
`}({email:o})}
|
|
1705
|
+
</div>
|
|
1706
|
+
</div>
|
|
1707
|
+
</div>
|
|
1708
|
+
`}function Ya(e,n,t,i,o){ue(X`
|
|
1709
|
+
${Ha(t,i,n.basicInfo,n.phone,n.email,()=>Ya(e,n,t,i,o))}
|
|
1710
|
+
${function({address:e}){const n="Address",t=n=>t=>{const i=ki(t.target.value);e&&yi(e,n,i,Ma)};return X`
|
|
1711
|
+
<label aria-label=${`${n} Street`} class="label profile-edit-dialog__field profile-edit-dialog__field--row-width">
|
|
1712
|
+
Street Address
|
|
1713
|
+
<input
|
|
1714
|
+
class="input"
|
|
1715
|
+
type="text"
|
|
1716
|
+
name=${"address-street"}
|
|
1717
|
+
.value=${(null==e?void 0:e.streetAddress)||""}
|
|
1718
|
+
required
|
|
1719
|
+
data-contact-field="streetAddress"
|
|
1720
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1721
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1722
|
+
placeholder="Street Address"
|
|
1723
|
+
autocomplete="street-address"
|
|
1724
|
+
inputmode="text"
|
|
1725
|
+
@change=${t("streetAddress")}
|
|
1726
|
+
/>
|
|
1727
|
+
</label>
|
|
1728
|
+
|
|
1729
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--full">
|
|
1730
|
+
<label aria-label=${`${n} Locality`} class="label profile-edit-dialog__field">
|
|
1731
|
+
Locality
|
|
1732
|
+
<input
|
|
1733
|
+
class="input"
|
|
1734
|
+
type="text"
|
|
1735
|
+
name=${"address-locality"}
|
|
1736
|
+
.value=${(null==e?void 0:e.locality)||""}
|
|
1737
|
+
data-contact-field="locality"
|
|
1738
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1739
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1740
|
+
placeholder="City / Locality"
|
|
1741
|
+
autocomplete="address-level2"
|
|
1742
|
+
inputmode="text"
|
|
1743
|
+
@change=${t("locality")}
|
|
1744
|
+
/>
|
|
1745
|
+
</label>
|
|
1746
|
+
<label aria-label=${`${n} Postal Code`} class="label profile-edit-dialog__field">
|
|
1747
|
+
Postal Code
|
|
1748
|
+
<input
|
|
1749
|
+
class="input"
|
|
1750
|
+
type="text"
|
|
1751
|
+
name=${"address-postal"}
|
|
1752
|
+
.value=${(null==e?void 0:e.postalCode)||""}
|
|
1753
|
+
data-contact-field="postalCode"
|
|
1754
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1755
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1756
|
+
placeholder="Postal Code"
|
|
1757
|
+
autocomplete="postal-code"
|
|
1758
|
+
inputmode="text"
|
|
1759
|
+
@change=${t("postalCode")}
|
|
1760
|
+
/>
|
|
1761
|
+
</label>
|
|
1762
|
+
</div>
|
|
1763
|
+
|
|
1764
|
+
<div class="profile-edit-dialog__row profile-edit-dialog__row--equal profile-edit-dialog__row--full">
|
|
1765
|
+
<label aria-label=${`${n} Region`} class="label profile-edit-dialog__field">
|
|
1766
|
+
Region
|
|
1767
|
+
<input
|
|
1768
|
+
class="input"
|
|
1769
|
+
type="text"
|
|
1770
|
+
name=${"address-region"}
|
|
1771
|
+
.value=${(null==e?void 0:e.region)||""}
|
|
1772
|
+
data-contact-field="region"
|
|
1773
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1774
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1775
|
+
placeholder="State / Region"
|
|
1776
|
+
inputmode="text"
|
|
1777
|
+
@change=${t("region")}
|
|
1778
|
+
/>
|
|
1779
|
+
</label>
|
|
1780
|
+
<label aria-label=${`${n} Country`} class="label profile-edit-dialog__field">
|
|
1781
|
+
Country
|
|
1782
|
+
<input
|
|
1783
|
+
class="input"
|
|
1784
|
+
type="text"
|
|
1785
|
+
name=${"address-country"}
|
|
1786
|
+
.value=${(null==e?void 0:e.countryName)||""}
|
|
1787
|
+
data-contact-field="countryName"
|
|
1788
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1789
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1790
|
+
placeholder="Country"
|
|
1791
|
+
autocomplete="country-name"
|
|
1792
|
+
inputmode="text"
|
|
1793
|
+
@change=${t("countryName")}
|
|
1794
|
+
/>
|
|
1795
|
+
</label>
|
|
1796
|
+
</div>
|
|
1797
|
+
`}({address:n.address})}
|
|
1798
|
+
${"owner"!==o?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
1799
|
+
`,e)}function Oa(e,n,t,i){const o=document.createElement("form");o.classList.add("profile__edit-form","profile-edit-dialog--heading","flex-column","gap-sm"),o.autocomplete="off",o.setAttribute("data-lpignore","true"),o.setAttribute("data-1p-ignore","true"),o.setAttribute("data-bwignore","true");const a=function(e){const n={name:mi(ui(e.name)),nickname:mi(ui(e.nickname||"")),imageSrc:mi(ui(e.imageSrc||"")),location:mi(ui(e.location||"")),pronouns:Wa(ui(e.pronouns||"")),dateOfBirth:mi(ui(e.dateOfBirth||"")),jobTitle:mi(ui(e.jobTitle||"")),orgName:mi(ui(e.orgName||"")),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"},t=e.primaryEmail,i=e.primaryPhone,o=e.primaryAddress,a=bi(null==t?void 0:t.type),r=hi(null==i?void 0:i.type),l={value:Bi(ui(null==t?void 0:t.valueNode).replace(/^mailto:/i,"")),type:a,entryNode:ui(null==t?void 0:t.entryNode),status:ui(null==t?void 0:t.entryNode)?"existing":"new"},s={value:mi(ui((null==i?void 0:i.valueNode)||(null==i?void 0:i.entryNode)||"").replace(/^tel:/i,"")),type:r,entryNode:ui((null==i?void 0:i.entryNode)||""),status:ui((null==i?void 0:i.entryNode)||"")?"existing":"new"},d={streetAddress:ki(ui(null==o?void 0:o.streetAddress)),locality:ki(ui(null==o?void 0:o.locality)),region:ki(ui(null==o?void 0:o.region)),postalCode:ki(ui(null==o?void 0:o.postalCode)),countryName:ki(ui(null==o?void 0:o.countryName)),type:fi(null==o?void 0:o.type),entryNode:ui(null==o?void 0:o.entryNode),status:ui(null==o?void 0:o.entryNode)?"existing":"new"};return{basicInfo:n||{name:"",nickname:"",imageSrc:"",location:"",pronouns:"",dateOfBirth:"",jobTitle:"",orgName:"",entryNode:"",status:"new"},email:l||{value:"",type:"",entryNode:"",status:"new"},phone:s||{value:"",type:"",entryNode:"",status:"new"},address:d||{streetAddress:"",locality:"",region:"",postalCode:"",countryName:"",type:"",entryNode:"",status:"new"}}}(t);return Ya(o,a,e,n,i),{form:o,formState:a}}async function qa(e,n,t,i,o,a){const r=document,l=mi(ui(i.imageSrc||"")),{form:s,formState:d}=Oa(n,t,i,o),c=await Wt({title:"Edit Heading",dom:r,form:s,headerAction:{type:"close"},submitLabel:Ee,cancelLabel:_e,validate:()=>"owner"!==o?we:function(e){const n=wi([e.basicInfo],Ma),t=wi([e.phone],Ma),i=wi([e.email],Ma),o=wi([e.address],Ma);return n.create.length>0||n.update.length>0||n.remove.length>0||t.create.length>0||t.update.length>0||t.remove.length>0||i.create.length>0||i.update.length>0||i.remove.length>0||o.create.length>0||o.update.length>0||o.remove.length>0?null:"No intro changes detected."}(d),onSave:async()=>{const e=wi([d.phone],Ma),i=wi([d.email],Ma),o={basicOps:wi([d.basicInfo],Ma),phoneOps:Ua(e),emailOps:Ra(i),addressOps:wi([d.address],Ma)};await Sa(n,t,o);const a=mi(d.basicInfo.imageSrc||"");if(l&&l!==a)try{await async function(e,n,t){if(t&&e.fetcher)try{await e.fetcher.webOperation("DELETE",t)}catch(e){console.error(`Error deleting picture: ${e}`)}}(n,0,l)}catch(e){console.warn("Profile image file delete failed",e)}},formatSaveError:e=>{const n=e instanceof Error?e.message:String(e);return`${Be} ${n}`}});c&&a&&await a()}const Va=(e,n,t,i,o)=>{const{name:a,pronouns:r,jobTitle:l,dateOfBirth:s,location:d,primaryPhone:c,primaryEmail:A,imageSrc:p}=t,u="owner"===i,f=ui(null==c?void 0:c.valueNode).replace(/^tel:/i,""),m=ui(null==A?void 0:A.valueNode).replace(/^mailto:/i,""),g=function(e,n=""){const t=(e||"").trim();if(!t)return n;const i=t.match(/^(\d{4})-(\d{2})-(\d{2})/);if(i){const[,e,n,t]=i;return`${t}-${n}-${e}`}return Da(t)||t}(ui(s),"DD-MM-YYYY");return X`
|
|
1800
|
+
<section class="profile__section border-lighter" aria-labelledby="profile-name">
|
|
1801
|
+
<div class="profile__heading-top">
|
|
1802
|
+
<div class="profile__avatar">
|
|
1803
|
+
${Za(p,a)}
|
|
1804
|
+
</div>
|
|
1805
|
+
<div class="profile__info">
|
|
1806
|
+
<header class="profile__header-bar mb-md">
|
|
1807
|
+
<div class="profile__identity" role="group" aria-label="Name and pronouns">
|
|
1808
|
+
<h1 id="profile-name" class="profile__name">${a}</h1>
|
|
1809
|
+
<span class="profile__pronouns">${r?`(${r})`:""}</span>
|
|
1810
|
+
</div>
|
|
1811
|
+
${l?X`<div class="profile__role-org">${l}</div>`:K}
|
|
213
1812
|
</header>
|
|
214
|
-
|
|
215
|
-
|
|
1813
|
+
</div>
|
|
1814
|
+
${u?X`
|
|
1815
|
+
<div class="profile__actions profile__heading-actions" aria-label="Profile actions">
|
|
1816
|
+
<button
|
|
1817
|
+
type="button"
|
|
1818
|
+
class="profile__action-button profile__heading-action-button profile-action-text flex-center"
|
|
1819
|
+
aria-label="Add or edit heading information"
|
|
1820
|
+
@click=${a=>qa(0,e.session.store,n,t,i,o)}
|
|
1821
|
+
>
|
|
1822
|
+
<span class="profile-section-collapsible__edit-label">${an} Edit</span>
|
|
1823
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
1824
|
+
</button>
|
|
1825
|
+
</div>
|
|
1826
|
+
`:K}
|
|
1827
|
+
<div class="profile__details">
|
|
1828
|
+
<div class="profile__meta-row" role="group" aria-label="Additional profile information">
|
|
1829
|
+
${Qa(g,Re,"")}
|
|
1830
|
+
${Qa(d,Ue,"")}
|
|
216
1831
|
</div>
|
|
217
|
-
|
|
218
|
-
|
|
1832
|
+
<div class="profile__contact-row" role="group" aria-label="Contact information">
|
|
1833
|
+
${Qa(f,$i,"")}
|
|
1834
|
+
${Qa(m,Si,"")}
|
|
1835
|
+
</div>
|
|
1836
|
+
</div>
|
|
1837
|
+
</div>
|
|
1838
|
+
</section>
|
|
1839
|
+
`},Qa=(e,n=K,t="")=>e?X`
|
|
1840
|
+
<div class="profile__item ${t?"":"profile__item--valueOnly"}">
|
|
1841
|
+
${t?X`<span class="profile__label">${t}</span>`:K}
|
|
1842
|
+
<span class="profile__value">
|
|
1843
|
+
${""!==n&&n!==K?X`<span class="profile__prefix-icon" aria-hidden="true">${n}</span>`:K}
|
|
1844
|
+
<span class="profile__value-text">${e}</span>
|
|
1845
|
+
</span>
|
|
1846
|
+
</div>
|
|
1847
|
+
`:K,Za=(e,n)=>e?X`
|
|
1848
|
+
<img
|
|
1849
|
+
class="profile__hero"
|
|
1850
|
+
src=${e}
|
|
1851
|
+
alt="${n}"
|
|
1852
|
+
width="140"
|
|
1853
|
+
height="140"
|
|
1854
|
+
loading="eager"
|
|
1855
|
+
/>
|
|
1856
|
+
`:X`
|
|
1857
|
+
<div class="profile__hero-alt flex-center" role="img" aria-label="${n}" tabindex="0">
|
|
1858
|
+
<span class="profile__hero-icon">${Ge}</span>
|
|
1859
|
+
</div>
|
|
1860
|
+
`;var Xa=a(741),Ga={};Ga.styleTagTransform=u(),Ga.setAttributes=d(),Ga.insert=l().bind(null,"head"),Ga.domAPI=i(),Ga.insertStyleElement=A();n()(Xa.A,Ga);Xa.A&&Xa.A.locals&&Xa.A.locals;async function Ka(e,n,t){const i=n.doc(),o=[],a=[],r=(t,r=!1)=>{const l=r?{description:""}:t;((t,r)=>{const l=(r||"").trim(),s=l?(0,Me.literal)(l):null;Qt(e,n,t,i,o,a,s)})(me.ns.vcard("note"),l.description)},l=t.remove[0],s=t.update[0],d=t.create[0],c=s||d||l;c&&r(c,Boolean(l&&!s&&!d)),await qt(e,o,a)}function Ja(e){return gi(e.description)}function er(e,n,t){ue(X`
|
|
1861
|
+
${function(e,n){const t="bio-description-counter",i=2600,o=((null==e?void 0:e.description)||"").length;return X`
|
|
1862
|
+
<section class="profile-edit-dialog__section" aria-label="Bio editor">
|
|
219
1863
|
|
|
220
|
-
|
|
221
|
-
<
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
1864
|
+
<label aria-label="Bio description" class="label profile-edit-dialog__bio-field-container">
|
|
1865
|
+
<span class="profile-edit-dialog__field-description">
|
|
1866
|
+
You can write about your years of experience, industry, or skills.
|
|
1867
|
+
People also talk about their achievements or previous job experiences.
|
|
1868
|
+
</span>
|
|
1869
|
+
<textarea
|
|
1870
|
+
class="profile-edit-dialog__textarea"
|
|
1871
|
+
name=${"bio-description"}
|
|
1872
|
+
rows="5"
|
|
1873
|
+
.value=${(null==e?void 0:e.description)||""}
|
|
1874
|
+
maxlength=${i}
|
|
1875
|
+
aria-describedby=${t}
|
|
1876
|
+
data-contact-field="description"
|
|
1877
|
+
data-entry-node=${(null==e?void 0:e.entryNode)||""}
|
|
1878
|
+
data-row-status=${(null==e?void 0:e.status)||"n/a"}
|
|
1879
|
+
placeholder="Write a short bio"
|
|
1880
|
+
autocomplete="off"
|
|
1881
|
+
@input=${t=>{const o=mi(t.target.value.slice(0,i));yi(e,"description",o,Ja),n()}}
|
|
1882
|
+
></textarea>
|
|
1883
|
+
<small id=${t} aria-live="polite">${o}/${i}</small>
|
|
1884
|
+
</label>
|
|
1885
|
+
</section>
|
|
1886
|
+
`}(n.bio,()=>er(e,n,t))}
|
|
1887
|
+
${"owner"!==t?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
1888
|
+
`,e)}function nr(e,n){const t=document.createElement("form");t.classList.add("profile__edit-form");const i=function(e){return{bio:{description:mi(ui((null==e?void 0:e.description)||"")),entryNode:ui((null==e?void 0:e.entryNode)||""),status:ui((null==e?void 0:e.entryNode)||"")?"existing":"new"}}}(e);return er(t,i,n),{form:t,formState:i}}async function tr(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d}=nr(i,o),c=await Wt({title:"Edit Bio",dom:l,form:s,headerAction:{type:"none"},submitLabel:Ee,cancelLabel:_e,validate:()=>{if("owner"!==o)return we;const e=wi([d.bio],Ja);return e.create.length>0||e.update.length>0||e.remove.length>0?null:"No bio changes detected."},onSave:async()=>{const e=wi([d.bio],Ja);await async function(e,n,t){try{await Ka(e,n,t)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`${ke} ${n}`)}}(n,t,e)},formatSaveError:e=>{const n=e instanceof Error?e.message:String(e);return`${ke} ${n}`}});c&&a&&await a()}const ir=(e,n)=>X`
|
|
1889
|
+
<article class="bioCard" aria-label="Bio" data-testid="bio-card">
|
|
1890
|
+
<section class="bioSection">
|
|
1891
|
+
${function(e){if(!e)return X``;const n="bio-description";return X`
|
|
1892
|
+
${e.description?X`
|
|
1893
|
+
<div class="bioDescriptionWrap">
|
|
1894
|
+
<p class="bioDescriptionText" id=${n}>${e.description}</p>
|
|
1895
|
+
<button
|
|
1896
|
+
type="button"
|
|
1897
|
+
class="bioDescriptionToggle"
|
|
1898
|
+
aria-controls=${n}
|
|
1899
|
+
aria-expanded="false"
|
|
1900
|
+
hidden
|
|
1901
|
+
@click=${Ri}
|
|
1902
|
+
>
|
|
1903
|
+
...more
|
|
1904
|
+
</button>
|
|
1905
|
+
</div>
|
|
234
1906
|
`:""}
|
|
1907
|
+
`}(e)}
|
|
1908
|
+
</section>
|
|
1909
|
+
</article>
|
|
1910
|
+
`;function or(e,n,t,i,o){return X`
|
|
1911
|
+
<section
|
|
1912
|
+
aria-labelledby="bio-heading"
|
|
1913
|
+
data-profile-section="bio"
|
|
1914
|
+
class="profile__section border-lighter"
|
|
1915
|
+
role="region"
|
|
1916
|
+
tabindex="-1"
|
|
1917
|
+
>
|
|
1918
|
+
${function(e,n,t,i,o){const a=ir(t),r=t;return X`
|
|
1919
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
1920
|
+
<h2 id="bio-heading" tabindex="-1">${"Bio"}</h2>
|
|
1921
|
+
${"owner"===i?X`
|
|
1922
|
+
<button
|
|
1923
|
+
type="button"
|
|
1924
|
+
class="profile__action-button profile-action-text flex-center"
|
|
1925
|
+
aria-label="Edit bio details"
|
|
1926
|
+
@click=${t=>tr(t,e,n,r,i,o)}
|
|
1927
|
+
>
|
|
1928
|
+
<span class="profile-section-collapsible__edit-label profile__action-icon">${an} Edit</span>
|
|
1929
|
+
<span class="profile-section-collapsible__edit-icon profile__action-icon" aria-hidden="true">${an}</span>
|
|
1930
|
+
</button>
|
|
1931
|
+
`:X``}
|
|
1932
|
+
</header>
|
|
1933
|
+
<div class="profile-section-collapsible__content">
|
|
1934
|
+
${a}
|
|
1935
|
+
</div>
|
|
1936
|
+
`}(e,n,t,i,o)}
|
|
1937
|
+
</section>
|
|
1938
|
+
`}function ar(e,n,t,i,o){return X`
|
|
1939
|
+
<section
|
|
1940
|
+
aria-labelledby="bio-heading"
|
|
1941
|
+
data-profile-section="bio"
|
|
1942
|
+
class="profile__section--empty border-lighter flex-column-center rounded-md gap-lg"
|
|
1943
|
+
role="region"
|
|
1944
|
+
tabindex="-1"
|
|
1945
|
+
>
|
|
1946
|
+
${function(e,n,t,i,o){const a=t;return X`
|
|
1947
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty bio section">
|
|
1948
|
+
<h2 id="bio-heading" tabindex="-1">${"Bio"}</h2>
|
|
1949
|
+
<p class="profile__empty-state-message">
|
|
1950
|
+
You haven't added any professional experience yet. Adding work history can boost your Bio.
|
|
1951
|
+
</p>
|
|
1952
|
+
</div>
|
|
1953
|
+
<button
|
|
1954
|
+
type="button"
|
|
1955
|
+
class="profile__action-button--empty"
|
|
1956
|
+
aria-label="Add bio details"
|
|
1957
|
+
@click=${t=>tr(t,e,n,a,i,o)}
|
|
1958
|
+
>
|
|
1959
|
+
<span class="profile__action-icon" aria-hidden="true">${Ye} Add Bio</span>
|
|
1960
|
+
</button>
|
|
235
1961
|
|
|
236
|
-
|
|
1962
|
+
`}(e,n,t,i,o)}
|
|
1963
|
+
</section>
|
|
1964
|
+
`}function rr(e,n,t,i,o){Wi();const a=function(e){return Boolean(((null==e?void 0:e.description)||"").trim())}(t);return X`
|
|
1965
|
+
${!a&&"owner"===i?ar(e,n,t,i,o):or(e,n,t,i,o)}
|
|
1966
|
+
`}const lr="https://solidos.github.io/profile-pane/src/ontology/socialMedia.ttl#";function sr(e){return e?"function"==typeof e.toNT?e.toNT():"string"==typeof e.value?e.value:String(e):""}function dr(e){return{subject:sr(null==e?void 0:e.subject),predicate:sr(null==e?void 0:e.predicate),object:sr(null==e?void 0:e.object),graph:sr(null==e?void 0:e.why)}}function cr(e){const n=(e||"").trim();return n?n.startsWith("http://")||n.startsWith("https://")?(0,Me.sym)(n):(0,Me.literal)(n):null}function Ar(e){return"string"==typeof e?e.trim():null==e?"":String(e).trim()}function pr(e,n,t,i){var o;const a=[];(null==i?void 0:i.classUri)&&a.push((0,Me.st)(n,me.ns.rdf("type"),(0,Me.sym)(i.classUri),e));const r=Ar(t.name);if("other"===r.toLowerCase()||(null===(o=null==i?void 0:i.classUri)||void 0===o?void 0:o.endsWith("#OtherAccount"))){const i=cr(t.homepage),o=cr(t.icon);return i&&a.push((0,Me.st)(n,me.ns.foaf("homepage"),i,e)),o&&a.push((0,Me.st)(n,me.ns.foaf("icon"),o,e)),r&&"other"!==r.toLowerCase()&&a.push((0,Me.st)(n,me.ns.rdfs("label"),(0,Me.literal)(r),e)),a}const l=(null==i?void 0:i.userProfilePrefix)||(null==i?void 0:i.homepage),s=function(e,n){const t=Ar(e);if(!t)return"";const i=Ar(n);if(i){let e=t;const n=i.toLowerCase();for(;e.toLowerCase().startsWith(n);)e=e.slice(i.length);if(e)return e;try{const e=new URL(t),n=new URL(i),o=e=>e.toLowerCase().replace(/^www\./,""),a=o(e.hostname),r=o(n.hostname),l=(n.pathname||"/").replace(/\/+$/,""),s=e.pathname||"/";if(a===r&&s.startsWith(l)){const e=s.slice(l.length).replace(/^\/+/,"");if(e)return e}}catch{}}return t.replace(/^https?:\/\//i,"").replace(/^www\./i,"")}(Ar(t.homepage),l);return s&&a.push((0,Me.st)(n,me.ns.foaf("accountName"),(0,Me.literal)(s),e)),a}function ur(e){var n,t,i,o,a,r,l,s,d,c,A,p;return`${(null===(t=null===(n=e.subject)||void 0===n?void 0:n.toNT)||void 0===t?void 0:t.call(n))||(null===(i=e.subject)||void 0===i?void 0:i.value)} ${(null===(a=null===(o=e.predicate)||void 0===o?void 0:o.toNT)||void 0===a?void 0:a.call(o))||(null===(r=e.predicate)||void 0===r?void 0:r.value)} ${(null===(s=null===(l=e.object)||void 0===l?void 0:l.toNT)||void 0===s?void 0:s.call(l))||(null===(d=e.object)||void 0===d?void 0:d.value)} ${(null===(A=null===(c=e.why)||void 0===c?void 0:c.toNT)||void 0===A?void 0:A.call(c))||(null===(p=e.why)||void 0===p?void 0:p.value)}`}function fr(e){return Array.from(new Map((e||[]).map(e=>[ur(e),e])).values())}async function mr(e,n,t,i){if(!e.updater)throw new Error(Ie);const{safeDeletions:o,safeInsertions:a}=function(e,n,t){return{safeDeletions:Array.from(new Map((n||[]).filter(n=>!!(n&&n.subject&&n.predicate&&n.object)&&(!!e.holds(n.subject,n.predicate,n.object,n.why)||e.statementsMatching(n.subject,n.predicate,n.object,n.why).length>0)).map(e=>[ur(e),e])).values()),safeInsertions:Array.from(new Map((t||[]).filter(e=>Boolean(e&&e.subject&&e.predicate&&e.object)).map(e=>[ur(e),e])).values())}}(e,t,i);if(0!==o.length||0!==a.length){try{return void await qt(e,o,a)}catch(e){if(!function(e){const n=(e||"").toLowerCase();return n.includes(" on patch ")||n.includes("web error: 400")||n.includes("web error: 405")||n.includes("web error: 501")}(e instanceof Error?e.message:String(e)))throw e}await async function(e,n,t,i){const o=e.updater,a=e.fetcher;if(!o||"function"!=typeof o.serialize||!a||"function"!=typeof a.webOperation)throw new Error("Social updates are not supported by this store updater.");const r=e.statementsMatching(void 0,void 0,void 0,n).slice(),l=new Set((t||[]).map(e=>ur(e))),s=r.filter(e=>!l.has(ur(e))).concat(i||[]),d="text/turtle",c=o.serialize(n.value,s,d),A=await a.webOperation("PUT",n.value,{noMeta:!0,contentType:d,body:c});if(!A||!0!==A.ok){const e=(null==A?void 0:A.status)||"unknown";throw new Error(`Web error: ${e} on PUT of <${n.value}>`)}e.remove(t),i.forEach(n=>{e.add(n.subject,n.predicate,n.object,n.why)})}(e,n,o,a)}}async function gr(e,n,t,i){!function(e){const n=e;"function"!=typeof n.setPrefixForURI?(n.namespaces||(n.namespaces={}),n.namespaces.soc=lr):n.setPrefixForURI("soc",lr)}(e);const o=n.doc(),a=Wn(e),r=Yn(n,e).accounts.map(e=>({name:Ar(e.name),icon:Ar(e.icon),homepage:Ar(e.homepage),entryNode:e.entryNode.value,status:"existing"})),l=i&&i.length?function(e){return(e||[]).filter(e=>"deleted"!==e.status).filter(e=>Boolean(Ar(e.name)||Ar(e.homepage)||Ar(e.icon)||Ar(e.entryNode))).map(e=>({name:Ar(e.name),icon:Ar(e.icon),homepage:Ar(e.homepage),entryNode:Ar(e.entryNode),status:e.status}))}(i):function(e,n){const t=new Set(n.remove.map(e=>Ar(e.entryNode)).filter(Boolean)),i=new Map(n.update.map(e=>[Ar(e.entryNode),e]).filter(([e])=>Boolean(e)));return[...e.filter(e=>!t.has(Ar(e.entryNode))).map(e=>{const n=Ar(e.entryNode);return i.get(n)||e}),...n.create.filter(e=>Boolean(Ar(e.name)||Ar(e.homepage)||Ar(e.icon)))]}(r,t),s=e.each(n,me.ns.foaf("account"),null,o),d=fr(s.flatMap(n=>function(e,n,t){if(!e.any(n,me.ns.rdf("first"),null,t))return[];const i=new Set,o=[];let a=n;for(;a;){const n=`${a.termType}:${a.value}`;if(i.has(n))break;i.add(n),o.push(a);const r=e.any(a,me.ns.rdf("rest"),null,t);if(!r||"NamedNode"===r.termType&&r.value===me.ns.rdf("nil").value)break;a=r}return o}(e,n,o).flatMap(n=>e.statementsMatching(n,null,null,o)))),c=Array.from(new Map(s.flatMap(n=>Le(e,n)).filter(e=>"NamedNode"===e.termType).map(e=>[`${e.termType}:${e.value}`,e])).values()),A=l.map(e=>{if(Ar(e.entryNode)){const n=Xt(c,e.entryNode);if(n&&"NamedNode"===n.termType)return n}return Kt(o)}),p=[];if(A.length>0){const e=function(e,n){if(!n.length)return{head:me.ns.rdf("nil"),statements:[]};const t=n.map(()=>(0,Me.blankNode)()),i=[];return n.forEach((n,o)=>{const a=t[o],r=t[o+1]||me.ns.rdf("nil");i.push((0,Me.st)(a,me.ns.rdf("first"),n,e)),i.push((0,Me.st)(a,me.ns.rdf("rest"),r,e))}),{head:t[0],statements:i}}(o,A);p.push((0,Me.st)(n,me.ns.foaf("account"),e.head,o)),p.push(...e.statements)}l.forEach((e,n)=>{p.push(...pr(o,A[n],e,(e=>Ln(a,Ar(e.name)))(e)))});const u=fr([...e.statementsMatching(n,me.ns.foaf("account"),null,o),...d,...c.flatMap(n=>Vt(e,n,o))]);(function(){const e=null===globalThis||void 0===globalThis?void 0:globalThis.__PROFILE_PANE_SOCIAL_DEBUG__;return!0===e||"1"===e||"true"===e})()&&console.log("[social-mutations] patch payload",{subject:n.value,doc:o.value,nextRows:l,deletionsCount:u.length,insertionsCount:p.length,deletions:u.map(dr),insertions:fr(p).map(dr)}),await mr(e,o,u,fr(p))}function hr(e){return mi(e)}function Cr(e){const n=(e||"").trim();if(!n)return!1;try{const e=new URL(n);return"http:"===e.protocol||"https:"===e.protocol}catch{return!1}}function br(e){return gi(e.homepage)}function Er(e,n){const t=wi(e,br),i=t.create.length>0||t.update.length>0||t.remove.length>0,o=function(e,n){const t=e.filter(e=>"deleted"!==e.status&&Boolean((e.entryNode||"").trim())).map(e=>(e.entryNode||"").trim());if(t.length!==n.length)return!0;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!0;return!1}(e,n);if(!i&&!o)return"No social changes detected.";for(let n=0;n<e.length;n++){const t=e[n];if(!t||"deleted"===t.status)continue;if([t.name,t.icon,t.homepage].some(gi)){if(!gi(t.name)||!gi(t.icon))return`Social account ${n+1}: please choose an account type from the dropdown.`;if(!gi(t.homepage))return`Social account ${n+1}: please enter your personal profile link.`;if(!Cr(t.homepage||""))return`Social account ${n+1}: profile link must be a valid http(s) URL.`}}return null}function _r({rows:e,index:n,displayIndex:t,onDelete:i,onChange:o,options:a,onDragStart:r,onDragOver:l,onDrop:s,onDragEnd:d,isDropTarget:c}){const A=e[n],p=`Social Account Name ${t+1}`,u=`Social Account Homepage ${t+1}`;return X`
|
|
1967
|
+
<div
|
|
1968
|
+
class="profile-edit-dialog__row profile-edit-dialog__row--social ${c?"profile-edit-dialog__row--drop-target":""}"
|
|
1969
|
+
@dragover=${e=>l(e)}
|
|
1970
|
+
@drop=${()=>s(n)}
|
|
1971
|
+
>
|
|
1972
|
+
<button
|
|
1973
|
+
type="button"
|
|
1974
|
+
class="profile-edit-dialog__drag-handle"
|
|
1975
|
+
aria-label=${`Reorder social account ${t+1}`}
|
|
1976
|
+
title="Drag to reorder"
|
|
1977
|
+
draggable="true"
|
|
1978
|
+
@dragstart=${()=>r(n)}
|
|
1979
|
+
@dragend=${()=>d()}
|
|
1980
|
+
>
|
|
1981
|
+
${Qe}
|
|
1982
|
+
</button>
|
|
1983
|
+
<img
|
|
1984
|
+
class="profile-edit-dialog__social-icon"
|
|
1985
|
+
src="${(null==A?void 0:A.icon)||pn}"
|
|
1986
|
+
alt="${(null==A?void 0:A.name)||"Social"} icon"
|
|
1987
|
+
width="30"
|
|
1988
|
+
height="30"
|
|
1989
|
+
loading="lazy"
|
|
1990
|
+
/>
|
|
1991
|
+
<label aria-label=${p} class="label profile-edit-dialog__field profile-edit-dialog__field--social-type">
|
|
1992
|
+
${function(e,n,t,i){const o=Ln(t,(null==e?void 0:e.name)||""),a=(null==o?void 0:o.label)||"";return X`
|
|
1993
|
+
<select
|
|
1994
|
+
class="profile-edit-dialog__social-account-select"
|
|
1995
|
+
name=${`social-account-type-${n}`}
|
|
1996
|
+
data-row-index=${String(n)}
|
|
1997
|
+
autocomplete="off"
|
|
1998
|
+
@change=${i}
|
|
1999
|
+
>
|
|
2000
|
+
<option value="">Select</option>
|
|
2001
|
+
${t.map(e=>X`
|
|
2002
|
+
<option value=${e.label} ?selected=${e.label===a}>${e.label}</option>
|
|
2003
|
+
`)}
|
|
2004
|
+
</select>
|
|
2005
|
+
`}(A,n,a,t=>{const i=t.target,r=Ln(a,i.value);if(e[n]){if(!r)return yi(e[n],"name","",br),yi(e[n],"icon","",br),void o();yi(e[n],"name",r.label,br),yi(e[n],"icon",r.icon||pn,br),o()}})}
|
|
2006
|
+
</label>
|
|
2007
|
+
<label aria-label=${u} class="label profile-edit-dialog__field profile-edit-dialog__field--social-url">
|
|
2008
|
+
<input
|
|
2009
|
+
class="input"
|
|
2010
|
+
type="url"
|
|
2011
|
+
name=${`social-homepage-${n}`}
|
|
2012
|
+
.value=${(null==A?void 0:A.homepage)||""}
|
|
2013
|
+
data-contact-field="homepage"
|
|
2014
|
+
data-entry-node=${(null==A?void 0:A.entryNode)||""}
|
|
2015
|
+
data-row-status=${(null==A?void 0:A.status)||"n/a"}
|
|
2016
|
+
placeholder="Profile URL"
|
|
2017
|
+
autocomplete="url"
|
|
2018
|
+
inputmode="url"
|
|
2019
|
+
required
|
|
2020
|
+
@input=${f="homepage",t=>{const i=t.target,a="homepage"===f?mi(i.value).replace(/\s+/g,""):hr(i.value);e[n]&&(yi(e[n],f,a,br),o())}}
|
|
2021
|
+
/>
|
|
2022
|
+
<small class="profile-edit-dialog__input-help-text">Paste your full profile URL (for example: https://example.com/username)</small>
|
|
2023
|
+
</label>
|
|
2024
|
+
<div class="profile-edit-dialog__actions profile-edit-dialog__actions--edge">
|
|
2025
|
+
<button
|
|
2026
|
+
type="button"
|
|
2027
|
+
class="profile-edit-dialog__delete-button"
|
|
2028
|
+
aria-label=${`Delete social account ${t+1}`}
|
|
2029
|
+
title=${ve}
|
|
2030
|
+
@click=${e=>{e.preventDefault(),i()}}
|
|
2031
|
+
>
|
|
2032
|
+
<span class="profile-edit-dialog__delete-icon" aria-hidden="true">${Ve}</span>
|
|
2033
|
+
</button>
|
|
2034
|
+
</div>
|
|
2035
|
+
</div>
|
|
2036
|
+
`;var f}function vr(e,n,t){let i=null,o=null;const a=e=>{i=e,o=e},r=e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="move")},l=n=>{null!==i&&(((n,t)=>{if(n===t)return;const i=e[n];i&&(e.splice(n,1),e.splice(t,0,i))})(i,n),i=null,o=null,t())},s=()=>{i=null,o=null},d=e.map((e,n)=>({row:e,index:n})).filter(({row:e})=>"deleted"!==e.status);return X`
|
|
2037
|
+
<section class="profile-edit-dialog__section" aria-label="Social Accounts">
|
|
2038
|
+
<fieldset>
|
|
2039
|
+
<legend class="sr-only">Social account entries</legend>
|
|
2040
|
+
${d.map(({index:i},d)=>_r({rows:e,index:i,displayIndex:d,onDelete:()=>{_i(e,i),t()},onChange:t,options:n,onDragStart:a,onDragOver:r,onDrop:l,onDragEnd:s,isDropTarget:o===i}))}
|
|
2041
|
+
</fieldset>
|
|
2042
|
+
</section>
|
|
2043
|
+
`}function wr(e,n,t,i,o={}){const a=Wn(t);ue(X`
|
|
2044
|
+
${vr(n.socialAccounts,a,(o={})=>wr(e,n,t,i,o))}
|
|
2045
|
+
${"owner"!==i?X`<p class="profile-edit-dialog__login-message">${we}</p>`:null}
|
|
2046
|
+
`,e),o.focusSelector&&function(e,n){const t=e.querySelector(n);t&&"function"==typeof t.focus&&(t.scrollIntoView({block:"start",behavior:"auto"}),t.focus())}(e,o.focusSelector)}function yr(e,n,t){const i=document.createElement("form");i.classList.add("profile__edit-form");const o=function(e){const n=(e||[]).map(e=>({name:hr(ui(e.name)),icon:hr(ui(e.icon)),homepage:hr(ui(e.homepage)),entryNode:ui(e.entryNode),status:ui(e.entryNode)?"existing":"new"})).filter(e=>Boolean(e.name||e.icon||e.homepage||e.entryNode));return{socialAccounts:n.length?n:[{name:"",icon:"",homepage:"",entryNode:"",status:"new"}],initialExistingOrder:[]}}(e);o.initialExistingOrder=o.socialAccounts.filter(e=>Boolean((e.entryNode||"").trim())).map(e=>(e.entryNode||"").trim()),wr(i,o,n,t);return{form:i,formState:o,addRow:()=>{o.socialAccounts.unshift({name:"",icon:"",homepage:"",entryNode:"",status:"new"}),wr(i,o,n,t,{focusSelector:'[name="social-account-type-0"]'})}}}async function Br(e,n,t,i,o,a){var r;const l=(null===(r=e.currentTarget)||void 0===r?void 0:r.ownerDocument)||document,{form:s,formState:d,addRow:c}=yr(i,n,o),A=await Wt({title:"Edit Social Accounts",dom:l,form:s,headerAction:{type:"button",label:"+ Add More",ariaLabel:"Add another social account",onClick:c},submitLabel:Ee,cancelLabel:_e,validate:()=>"owner"!==o?we:Er(d.socialAccounts,d.initialExistingOrder),onSave:async()=>{const e=wi(d.socialAccounts,br),i={create:e.create,update:e.update,remove:e.remove};await async function(e,n,t,i){try{await gr(e,n,t,i)}catch(e){const n=e instanceof Error?e.message:String(e);throw new Error(`${xe} ${n}`)}}(n,t,i,d.socialAccounts)},formatSaveError:e=>{const n=e instanceof Error?e.message:String(e);return n.startsWith(xe)?n:`${xe} ${n}`}});A&&a&&await a()}function xr(e){return Boolean((null==e?void 0:e.homepage)&&(null==e?void 0:e.name)&&(null==e?void 0:e.icon))}function kr(e){const n=e.currentTarget,t=null==n?void 0:n.closest(".socialCard");n&&t&&(t.setAttribute("data-mobile-expanded","true"),n.setAttribute("aria-expanded","true"),n.hidden=!0)}const Ir=(e,n)=>{const t=(e.accounts||[]).filter(xr),i=Math.max(0,t.length-10);return t.length?X`
|
|
2047
|
+
<section
|
|
2048
|
+
class="socialCard"
|
|
2049
|
+
aria-label="Social media"
|
|
2050
|
+
data-testid="social-media"
|
|
2051
|
+
data-mobile-expanded="${i>0?"false":"true"}"
|
|
2052
|
+
>
|
|
2053
|
+
<nav aria-label="Social media profiles">
|
|
2054
|
+
<ul class="socialList list-reset" role="list">
|
|
2055
|
+
${t.map(e=>function(e){return X`
|
|
2056
|
+
<li class="socialItem" role="listitem">
|
|
2057
|
+
<a
|
|
2058
|
+
href="${e.homepage}"
|
|
2059
|
+
target="_blank"
|
|
2060
|
+
rel="noopener noreferrer"
|
|
2061
|
+
aria-label="Visit ${e.name} profile (opens in new tab)"
|
|
2062
|
+
>
|
|
2063
|
+
<img
|
|
2064
|
+
class="socialIcon"
|
|
2065
|
+
src="${e.icon}"
|
|
2066
|
+
alt="${e.name} icon"
|
|
2067
|
+
width="40"
|
|
2068
|
+
height="40"
|
|
2069
|
+
loading="lazy"
|
|
2070
|
+
/>
|
|
2071
|
+
</a>
|
|
2072
|
+
</li>
|
|
2073
|
+
`}(e))}
|
|
2074
|
+
</ul>
|
|
2075
|
+
</nav>
|
|
2076
|
+
${i>0?X`
|
|
2077
|
+
<button
|
|
2078
|
+
type="button"
|
|
2079
|
+
class="socialCard__more-button"
|
|
2080
|
+
aria-controls="social-media"
|
|
2081
|
+
aria-expanded="false"
|
|
2082
|
+
@click=${kr}
|
|
2083
|
+
>
|
|
2084
|
+
${i} more
|
|
2085
|
+
</button>
|
|
2086
|
+
`:X``}
|
|
2087
|
+
</section>
|
|
2088
|
+
`:X``};function $r(e,n,t,i,o){return X`
|
|
237
2089
|
<section
|
|
238
|
-
aria-labelledby="
|
|
239
|
-
class="
|
|
2090
|
+
aria-labelledby="social-heading"
|
|
2091
|
+
class="profile__section border-lighter profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
240
2092
|
role="region"
|
|
241
2093
|
tabindex="-1"
|
|
2094
|
+
data-expanded="false"
|
|
242
2095
|
>
|
|
243
|
-
<header class="
|
|
244
|
-
<h2 id="
|
|
2096
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
2097
|
+
<h2 id="social-heading" tabindex="-1">${$e}</h2>
|
|
2098
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
2099
|
+
${"owner"===i?X`
|
|
2100
|
+
<button
|
|
2101
|
+
type="button"
|
|
2102
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
2103
|
+
aria-label="Edit social accounts"
|
|
2104
|
+
@click=${a=>Br(a,e,n,t.accounts,i,o)}
|
|
2105
|
+
>
|
|
2106
|
+
<span class="profile-section-collapsible__edit-label">${an} Edit</span>
|
|
2107
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
2108
|
+
</button>
|
|
2109
|
+
`:X``}
|
|
2110
|
+
<button
|
|
2111
|
+
type="button"
|
|
2112
|
+
class="inline-flex-row"
|
|
2113
|
+
aria-label="Toggle social accounts section"
|
|
2114
|
+
aria-controls="social-panel"
|
|
2115
|
+
aria-expanded="false"
|
|
2116
|
+
@click=${Yi}
|
|
2117
|
+
>
|
|
2118
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
2119
|
+
</button>
|
|
2120
|
+
</div>
|
|
245
2121
|
</header>
|
|
246
|
-
<div>
|
|
247
|
-
${
|
|
2122
|
+
<div id="social-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
2123
|
+
${function(e){const n=e.accounts&&e.accounts.length>0;return X`
|
|
2124
|
+
${n?Ir(e):X`<p>No social accounts added yet.</p>`}
|
|
2125
|
+
`}(t)}
|
|
248
2126
|
</div>
|
|
249
2127
|
</section>
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
2128
|
+
`}function Sr(e,n,t,i,o){return X`
|
|
2129
|
+
<section
|
|
2130
|
+
aria-labelledby="social-heading"
|
|
2131
|
+
data-profile-section="social"
|
|
2132
|
+
class="profile__section--empty border-lighter flex-column-center rounded-md gap-lg profile-section-collapsible profile-section-collapsible--inline-mobile-actions"
|
|
2133
|
+
role="region"
|
|
2134
|
+
tabindex="-1"
|
|
2135
|
+
data-expanded="false"
|
|
2136
|
+
>
|
|
2137
|
+
<header class="profile__section-header profile-section-collapsible__header">
|
|
2138
|
+
<h2 id="social-heading" tabindex="-1">${$e}</h2>
|
|
2139
|
+
<div class="profile-section-collapsible__actions flex-column">
|
|
2140
|
+
<button
|
|
2141
|
+
type="button"
|
|
2142
|
+
class="profile__action-button profile-action-text flex-center profile-section-collapsible__edit-button"
|
|
2143
|
+
aria-label="Add social accounts"
|
|
2144
|
+
@click=${a=>Br(a,e,n,t.accounts,i,o)}
|
|
258
2145
|
>
|
|
259
|
-
<
|
|
260
|
-
<
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
<div class="
|
|
280
|
-
<div class="
|
|
281
|
-
|
|
2146
|
+
<span class="profile-section-collapsible__edit-label profile__add-more-content inline-flex-row">
|
|
2147
|
+
<span class="profile__add-more-icon inline-flex-row" aria-hidden="true">${Xe}</span>
|
|
2148
|
+
Add Account
|
|
2149
|
+
</span>
|
|
2150
|
+
<span class="profile-section-collapsible__edit-icon" aria-hidden="true">${an}</span>
|
|
2151
|
+
</button>
|
|
2152
|
+
<button
|
|
2153
|
+
type="button"
|
|
2154
|
+
class="inline-flex-row"
|
|
2155
|
+
aria-label="Toggle social accounts section"
|
|
2156
|
+
aria-controls="social-panel"
|
|
2157
|
+
aria-expanded="false"
|
|
2158
|
+
@click=${Yi}
|
|
2159
|
+
>
|
|
2160
|
+
<span class="profile-section-collapsible__chevron" aria-hidden="true">⌄</span>
|
|
2161
|
+
</button>
|
|
2162
|
+
</div>
|
|
2163
|
+
</header>
|
|
2164
|
+
<div id="social-panel" class="profile-section-collapsible__content" aria-hidden="true">
|
|
2165
|
+
${X`
|
|
2166
|
+
<div class="profile__empty-state-content flex-column-center" role="group" aria-label="Empty social accounts section">
|
|
2167
|
+
<div class="social__empty-icon-wrapper">
|
|
2168
|
+
<span class="social__empty-icon inline-flex-row">${Ke}</span>
|
|
282
2169
|
</div>
|
|
2170
|
+
<p class="profile__empty-state-message social__empty-message">
|
|
2171
|
+
No social media links added yet.
|
|
2172
|
+
</p>
|
|
2173
|
+
</div>
|
|
2174
|
+
`}
|
|
283
2175
|
</div>
|
|
284
|
-
|
|
2176
|
+
</section>
|
|
2177
|
+
`}function Dr(e,n,t,i,o,a,r,l){return X`
|
|
2178
|
+
<aside
|
|
2179
|
+
aria-labelledby="sidebar-heading"
|
|
2180
|
+
class="profile__sidebar p-sm"
|
|
2181
|
+
>
|
|
2182
|
+
<h2 id="sidebar-heading" class="sr-only">Sidebar</h2>
|
|
2183
|
+
<div aria-label="Sidebar Content" class="flex-column gap-md">
|
|
2184
|
+
${function(e,n,t,i,o){const a=t||{accounts:[]},r=Array.isArray(a.accounts)&&a.accounts.length>0;return X`
|
|
2185
|
+
${r||"owner"!==i?$r(e,n,a,i,o):Sr(e,n,a,i,o)}
|
|
2186
|
+
`}(e,n,t,r,l)}
|
|
2187
|
+
${function(e,n,t,i,o){const a=t||[],r=Array.isArray(a)&&a.length>0;return X`
|
|
2188
|
+
${r||"owner"!==i?Ro(e,n,a,i,o):Uo(e,n,a,i,o)}
|
|
2189
|
+
`}(e,n,i,r,l)}
|
|
2190
|
+
${vo(e,n,o,r,l)}
|
|
2191
|
+
${Ki(e,n,a,r,l)}
|
|
2192
|
+
${function(e,n){return X`
|
|
2193
|
+
<section class="profile__section border-lighter profile__qr-code" aria-labelledby="qr-heading" tabindex="-1">
|
|
2194
|
+
<h2 id="qr-heading" class="sr-only">QR code</h2>
|
|
2195
|
+
<div class="qrcode-card__frame flex-center">
|
|
2196
|
+
${Pe(e,n)}
|
|
285
2197
|
</div>
|
|
286
2198
|
</section>
|
|
287
|
-
|
|
288
|
-
`}function De(n,e){const t=n.dom.createElement("section");t.setAttribute("aria-labelledby","edit-profile-contact-heading"),t.classList.add("profileSection","section-bg","profile-form");const i=n.dom.createElement("header");i.classList.add("text-center","mb-md");const o=n.dom.createElement("h2");return o.id="edit-profile-contact-heading",o.classList.add("section-title"),o.textContent="Your profile",i.appendChild(o),t.appendChild(i),t.appendChild(function(n,e,t){const i=n.session.paneRegistry.byName(t);if(!i){const e=n.dom.createElement("div");return e.innerText=`Unable to load view: ${t}`,e}const o=i.render(e,n);let r;o&&"function"==typeof o.setAttribute?r=o:o&&o.nodeType===Node.TEXT_NODE?(r=n.dom.createElement("section"),r.appendChild(o)):(r=n.dom.createElement("section"),r.innerText=`View render did not return a valid Node for: ${t}`);return r.setAttribute("role","region"),r.setAttribute("aria-label",`${t} section`),r}(n,e,"contact")),t}var Re=r(6776),ze={};ze.styleTagTransform=p(),ze.setAttributes=c(),ze.insert=s().bind(null,"head"),ze.domAPI=i(),ze.insertStyleElement=A();e()(Re.A,ze);Re.A&&Re.A.locals&&Re.A.locals;var Me=r(5179),Oe={};Oe.styleTagTransform=p(),Oe.setAttributes=c(),Oe.insert=s().bind(null,"head"),Oe.domAPI=i(),Oe.insertStyleElement=A();e()(Me.A,Oe);Me.A&&Me.A.locals&&Me.A.locals;const Ue=bn.icons.iconBase+"noun_10636_grey.svg";function He(n,e,t,i,o){const r=Bn.store.each(t,o);(async()=>{Bn.store.fetcher&&await Promise.all(r.map(n=>{var e;return Bn.store.holds(n,null,null,null)?Promise.resolve():null===(e=Bn.store.fetcher)||void 0===e?void 0:e.load(n.value).catch(()=>{})})),r.sort((n,e)=>n.value>e.value?1:n.value<e.value?-1:0),bn.utils.syncTableToArray(e,r,r=>function(n,e,t,i,o,r){const a=t,s=n.createElement("img");s.src=function(n,e){const t=bn.widgets.findImage(n);if(t)return e.classList.add("profile-image"),t;return e.classList.add("default-profile-image"),Ue}((0,jn.sym)(t),s),s.alt=`Image of ${bn.utils.label((0,jn.sym)(t))}`;const l={image:s,title:bn.utils.label((0,jn.sym)(t)),link:!0};o&&(l.deleteFunction=function(){!async function(n,e,t,i,o,r){if(!Bn.store.updater)throw new Error("Store has no updater.");const a=Bn.store.statementsMatching(t,r,o,null);if(!a.length)return console.warn("No matching statement found to delete for",o.value),void He(n,e,t,i,r);try{if(await Bn.store.updater.update(a,[]),"function"==typeof Bn.store.removeStatements){if(Bn.store.holds(t,r,o,null))try{Bn.store.removeStatements(a)}catch(n){}}Bn.store.fetcher&&await Bn.store.fetcher.load(t.doc()),He(n,e,t,i,r)}catch(o){if(console.error("Error deleting:",o),"function"==typeof Bn.store.removeStatements)try{Bn.store.removeStatements(a)}catch(n){}Bn.store.fetcher&&await Bn.store.fetcher.load(t.doc()),He(n,e,t,i,r)}}(n,e,i,o,a,r)});return bn.widgets.renderAsRow(n,r,t,l)}(n,e,r,t,i,o))})()}function qe(n){if(n&&n.doc){return!!Bn.store.findTypeURIs(n.doc())[bn.ns.foaf("PersonalProfileDocument").uri]}return!1}const Ge=bn.icons.iconBase+"noun_34653_green.svg";const je=bn.icons.iconBase+"noun_34653_green.svg";const We={global:!0,icon:bn.icons.iconBase+"noun_492246.svg",name:"editProfile",label:()=>null,render:function(n,e){const t=e.dom,i=e.session.store,o=t.createElement("section");let r;o.setAttribute("data-testid","profile-editor"),o.setAttribute("role","region"),o.setAttribute("aria-label","Edit your profile");const a=t.createElement("main");a.setAttribute("id","profile-edit-main-content"),a.setAttribute("aria-busy","true"),a.setAttribute("tabindex","-1"),a.classList.add("profile-grid","no-focus-ring");const s=t.createElement("h1");s.classList.add("visually-hidden"),s.textContent="Edit Profile",a.appendChild(s),o.appendChild(a);const l=t.createElement("aside");l.classList.add("p-sm"),l.setAttribute("role","status"),l.setAttribute("aria-live","polite"),l.setAttribute("aria-atomic","true");const c=()=>{l.isConnected||o.appendChild(l)},d={dom:t,div:a,statusArea:l,me:null};return bn.login.ensureLoadedProfile(d).then(n=>{const o=n.me,s=o.doc();if(!i.updater)throw new Error("Store has no updater");if(i.any(o,bn.ns.solid("editableProfile")))r=i.any(o,bn.ns.solid("editableProfile"));else{if(!i.updater.editable(s.uri,i))return c(),void l.appendChild(bn.widgets.errorMessageBlock(t,`⚠️ Your profile ${s} is not editable, so we cannot do much here.`,"straw"));r=s}a.appendChild(De(e,o)),a.appendChild(function(n,e,t,i){const o=n.dom.createElement("section");o.setAttribute("data-testid","edit-cv-section"),o.setAttribute("aria-labelledby","edit-profile-cv-heading"),o.classList.add("profileSection","section-bg","profile-form");const r=n.dom.createElement("header");r.classList.add("text-center","mb-md");const a=n.dom.createElement("h2");if(a.id="edit-profile-cv-heading",a.classList.add("section-title"),a.textContent=Mn,r.appendChild(a),o.appendChild(r),!t){const e=n.dom.createElement("p");e.classList.add("p-md"),e.textContent="Login to add resume information to your profile.",o.appendChild(e)}return de(o,e,'@prefix os: <http://www.w3.org/2000/10/swap/os#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix org: <http://www.w3.org/ns/org#>.\n@prefix esco: <http://data.europa.eu/esco/model#>.\n@prefix wd: <http://www.wikidata.org/entity/>.\n@prefix wdt: <http://www.wikidata.org/prop/direct/>.\n\n@prefix : <#>.\n\n:this\n <http://purl.org/dc/elements/1.1/title> "Resume form" ;\n a ui:Form ;\n ui:parts (\n :CVGroup\n :SkillsHeading :SkillsForm\n :LanguagesHeading :LanguagesForm\n ).\n\n# Curriculum Vitae: membership of organizations\n\n:CVGroup a ui:Group; \n ui:weight 1; \n ui:parts ( \n :ResumeHeading \n :involvementWithOrganizationsForm \n ).\n\n:ResumeHeading a ui:Heading; \n ui:contents "Add your work experience" .\n\n:involvementWithOrganizationsForm a ui:Multiple;\n ui:label "work experience";\n ui:property org:member; \n ui:reverse true; # link back from role to member\n ui:ordered false; # Allow user to order CV secions rather than force date order? No.\n ui:part :RoleMembershipForm.\n\norg:member owl:inverse [ ui:label "Work experience" ]. # timelimited involvement\n\n# This is a big important form for one of a series of roles in the list.\n\n:RoleMembershipForm a ui:Group; \n ui:weight 3; \n ui:parts ( \n :MembershipFormHeading\n :RoleClassifier \n :roleNameField\n :escoOccupationField \n :orgField \n :RoleDatesForm \n :RoleDescriptionForm).\n\n:MembershipFormHeading a ui:Heading; \n ui:contents "Details of the role"@en, "Détailes de ce rôle"@fr .\n\n:roleNameField a ui:SingleLineTextField;\n ui:label "Job title";\n ui:property vcard:role .\n\n:escoOccupationField a ui:AutocompleteField;\n ui:label "Find in occupation catalog";\n ui:property org:role;\n ui:dataSource :ESCO_Occupation_DataSource;\n ui:targetClass schema:Occupation .\n\n :ESCO_Occupation_DataSource a ui:DataSource;\n schema:name "ESCO";\n ui:targetClass schema:Occupation ;\n schema:logo <https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif>;\n ui:searchByNameURI "https://ec.europa.eu/esco/api/search?language=$(language)&type=occupation&text=$(name)".\n\n:orgField a ui:Choice; \n ui:label "For organization"@en, "Pour l\'organisation"@fr;\n ui:canMintNew true; \n ui:use :OrganizationCreationForm ;\n ui:property org:organization;\n ui:from vcard:Organization .\n\nvcard:Organization ui:creationForm :OrganizationCreationForm .\n\n###### eposodes in one\'s career - Roles\n\n:RoleClassifier a ui:Classifier; \n ui:label "Job type"@en;\n ui:category solid:Role .\n\n:RoleDatesForm a ui:Options; \n ui:dependingOn rdf:type; \n ui:case\n [ ui:for solid:PastRole; ui:use :TwoDateForm ],\n [ ui:for solid:CurrentRole; ui:use :StartDateForm ],\n [ ui:for solid:FutureRole; ui:use :StartDateForm ].\n\n :TwoDateForm a ui:Group; \n ui:weight 0; \n ui:parts ( :StartDateForm :EndDateForm ) .\n :StartDateForm a ui:DateField; \n ui:label "Start"@en,"Début"@fr;\n ui:property schema:startDate .\n :EndDateForm a ui:DateField; \n ui:label "End"@en,"Fin"@fr;\n ui:property schema:endDate .\n\nsolid:Role a rdfs:Class;\n owl:disjointUnionOf ( solid:PastRole solid:CurrentRole solid:FutureRole ) ;\n owl:oneOf ( solid:CurrentRole solid:PastRole solid:FutureRole ). # Future Role too?\n\nsolid:PastRole a rdfs:Class; rdfs:label "Former role"@en, "Ancien rôle"@fr, "Vergangene Rolle"@de, "Rol anterior"@es .\nsolid:CurrentRole a rdfs:Class; rdfs:label "Current role"@en, "Rôle actuel"@fr, "Momentane Rolle"@de , "Rol actual"@es .\nsolid:FutureRole a rdfs:Class; rdfs:label "Future role"@en, "Rôle à venir"@fr, "Zukünftige Rolle"@de, "Rol futuro"@es .\n\n:RoleDescriptionForm a ui:MultiLineTextField; \n ui:property schema:description;\n ui:label "Describe your role" .\n\n###### Organizations\n\n:OrganizationCreationForm a ui:Form; \n schema:name "Form for editing an organization using public data" ;\n ui:parts ( \n :OrgClassifier \n :OrganizationNameField\n :OrgSwitch\n :homePageURIField ) .\n\n:OrgClassifier a ui:Classifier; \n ui:label "Type"@en;\n ui:category solid:InterestingOrganization .\n\n:OrgSwitch a ui:Options; \n ui:dependingOn rdf:type;\n ui:case\n [ ui:for schema:Corporation; ui:use :CorporationForm ],\n [ ui:for schema:GovernmentOrganization; ui:use :GovernmentOrganizationForm ],\n [ ui:for schema:PerformingGroup; ui:use :PerformingGroupForm ],\n [ ui:for schema:Project; ui:use :ProjectForm ],\n [ ui:for schema:NGO; ui:use :NGOForm ],\n [ ui:for schema:EducationalOrganization; ui:use :EducationalOrganizationForm ],\n [ ui:for schema:ResearchOrganization; ui:use :ResearchOrganizationForm ],\n [ ui:for schema:SportsOrganization; ui:use :SportsOrganizationForm ].\n\n:OrganizationNameField a ui:SingleLineTextField ;\n ui:label "Name";\n ui:maxLength "200" ;\n ui:property schema:name .\n\n:homePageURIField a ui:NamedNodeURIField;\n ui:label "Homepage"@en;\n ui:property schema:uri .\n\n# Ontology data to drive the :OrgClassifier classifier\nsolid:InterestingOrganization owl:disjointUnionOf (\n # Airline - a Corporation\n # Consortium - a Corporation or a NGO\n schema:Corporation\n schema:EducationalOrganization\n schema:ResearchOrganization # Proposed. https://github.com/schemaorg/schemaorg/issues/2877\n # FundingScheme - eh?\n schema:GovernmentOrganization\n # LibrarySystem\n # LocalBusiness - Corporation\n # MedicalOrganization - a Corporation or a NGO\n schema:NGO\n # NewsMediaOrganization - a Corporation or a NGO\n schema:PerformingGroup # a band\n schema:Project # like Solid\n schema:SportsOrganization) .\n\n# This until the schema.org ontology adopts it\nschema:ResearchOrganization a rdfs:Class; \n rdfs:label "Research Organization"@en, "Organization de Recherche"@fr ,"organización de investigación"@es, \n "منظمة البحث"@ar, "अनुसंधान संगठन"@hi, "Forschungsorganisation"@de, "shirika la utafiti"@sw .\n\n##### Depending on the type of org, chose a different form\n\n#### Corporation\n:CorporationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :CorporationAutocomplete ) .\n\n :CorporationAutocomplete a ui:AutocompleteField; \n ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q6881511>; # Enterprise\n ui:property solid:publicId; \n ui:dataSource :WikidataInstancesByName.\n\n :WikidataInstancesByName a ui:DataSource ;\n schema:name "Wikidata instances by name";\n ui:endpoint "https://query.wikidata.org/sparql" ;\n ui:searchByNameQuery """SELECT ?subject ?name\n WHERE {\n ?klass wdt:P279* $(targetClass) .\n ?subject wdt:P31 ?klass .\n ?subject rdfs:label ?name.\n FILTER regex(?name, "$(name)", "i")\n } LIMIT $(limit) """ ;\n\n # Note this form of the query is very experimental\n ui:searchByName [ ui:construct { ?subject schema:name ?name } ;\n ui:where { ?klass wdt:P279 ?targetClass .\n ?subject wdt:P31 ?klass; rdfs:label ?name .\n };\n ].\n\n#### Gouvernment\n:GovernmentOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :GovernmentOrganizationAutocomplete ) .\n\n :GovernmentOrganizationAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q327333>; # GovernmentOrganization\n ui:property solid:publicId; \n ui:dataSource :WikidataInstancesByName.\n\n#### Educational\n:EducationalOrganizationForm a ui:Group; \n ui:weight 1; \n ui:parts ( \n :EducationalOrganizationAutocomplete ) .\n\n :EducationalOrganizationAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q2385804>; # EducationalOrganization\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Research Group\n:ResearchOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :ResearchOrganizationAutocomplete ) .\n\n :ResearchOrganizationAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q31855>; # research institute\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### NGO\n:NGOForm a ui:Group; ui:weight 0; \n ui:parts ( \n :NGOAutocomplete ) .\n\n :NGOAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q163740>; # Non-profit org\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Performing group\n:PerformingGroupForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :PerformingGroupAutocomplete ) .\n\n :PerformingGroupAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q32178211>; # Music Org\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Project\n:ProjectForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :ProjectAutocomplete ) . # :ProjectAutocomplete - no: supress, as not in WD\n\n :ProjectAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q170584>; # Project\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#### Sports Organization\n :SportsOrganizationForm a ui:Group; \n ui:weight 0; \n ui:parts ( \n :SportsOrganizationAutocomplete ) .\n\n :SportsOrganizationAutocomplete\n a ui:AutocompleteField; ui:label "Find in wikidata";\n ui:targetClass <http://www.wikidata.org/entity/Q4438121>; # SportsOrganization\n ui:property solid:publicId; ui:dataSource :WikidataInstancesByName.\n\n#################### Skills\n\n:SkillsHeading a ui:Heading; \n ui:contents "Add your skills" .\n\n:SkillsForm a ui:Multiple;\n ui:label "skill";\n ui:property schema:skills;\n ui:ordered false; # Allow reader to order skills\n ui:part :SkillForm.\n\n:SkillForm a ui:Group; ui:weight 1; ui:parts ( :escoSkillField ).\n\n :escoSkillField a ui:AutocompleteField;\n ui:label "Find in skills catalog";\n ui:property solid:publicId;\n ui:dataSource :ESCO_Skill_DataSource;\n ui:targetClass schema:Skill .\n\n :ESCO_Skill_DataSource a ui:DataSource;\n schema:name "ESCO skill";\n ui:targetClass esco:Skill ;\n schema:logo <https://ec.europa.eu/esco/portal/static_resource2/images/logo/logo_en.gif>;\n ui:searchByNameURI "https://ec.europa.eu/esco/api/search?language=$(language)&limit=$(limit)&type=skill&text=$(name)".\n\n#################### Languages\n\n:LanguagesHeading a ui:Heading; ui:contents "Add your languages" .\n\n:LanguagesForm a ui:Multiple;\n ui:label "language";\n ui:property schema:knowsLanguage; \n ui:ordered true; # Allow user to order languages most important first.\n ui:part :LanguageForm.\n\n:LanguageForm a ui:Group; ui:weight 1; ui:parts ( :WikidataLanguageField ).\n\n :WikidataLanguageField a ui:AutocompleteField;\n ui:label "Language";\n ui:property solid:publicId; \n ui:dataSource :WikidataLanguageDataSource;\n ui:targetClass schema:Language .\n\n :WikidataLanguageDataSource\n schema:name "Find in wikidata";\n ui:endpoint "https://query.wikidata.org/sparql" ;\n ui:objectURIBase <https://www.w3.org/ns/iana/language-code/>;\n # Add this to any literal string returned as ?subject\n ui:searchByNameQuery """SELECT ?item ?subject ?name\n WHERE\n { ?item wdt:P305 ?subject .\n OPTIONAL {?item rdfs:label ?name}\n OPTIONAL {?item wdt:P1705 ?name}\n FILTER regex(?name, "$(name)", "i")\n FILTER regex(?subject, "^..$", "i")\n }""" .\n # Note we restrict code to two-letter codes with the second regex, so as to limit the deluge of languages\n # Hope there are not any important ones which have three-letter codes.\n # Omitted: SERVICE wikibase:label { bd:serviceParam wikibase:language "$(languages)". }',"resumeForm.ttl",i,n.dom,t),o}(e,o,r,i)),a.appendChild(function(n,e,t,i){const o=n.dom.createElement("section");o.setAttribute("data-testid","edit-social-section"),o.setAttribute("aria-labelledby","edit-profile-social-heading"),o.classList.add("profileSection","section-bg","profile-form");const r=n.dom.createElement("header");r.classList.add("text-center","mb-md");const a=n.dom.createElement("h2");if(a.id="edit-profile-social-heading",a.classList.add("section-title"),a.textContent=On,r.appendChild(a),o.appendChild(r),!t){const e=n.dom.createElement("p");e.classList.add("p-md"),e.textContent="Login to add social media accounts to your profile.",o.appendChild(e)}return de(o,e,le,"socialMedia.ttl",i,n.dom,t),o}(e,o,r,i)),a.appendChild(function(n,e,t,i){const o=n.dom.createElement("section");o.setAttribute("data-testid","edit-other-preferences-section"),o.setAttribute("aria-labelledby","edit-profile-other-preferences-heading"),o.classList.add("profileSection","section-bg","profile-form");const r=n.dom.createElement("header");r.classList.add("text-center","mb-md");const a=n.dom.createElement("h2");return a.id="edit-profile-other-preferences-heading",a.classList.add("section-title"),a.textContent="Other preferences",r.appendChild(a),o.appendChild(r),de(o,e,'@prefix os: <http://www.w3.org/2000/10/swap/os#> .\n@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.\n@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.\n\n@prefix owl: <http://www.w3.org/2002/07/owl#>.\n@prefix solid: <http://www.w3.org/ns/solid/terms#>.\n@prefix ui: <http://www.w3.org/ns/ui#>.\n@prefix schema: <http://schema.org/>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix vcard: <http://www.w3.org/2006/vcard/ns#>.\n@prefix wd: <http://www.wikidata.org/entity/>.\n@prefix wdt: <http://www.wikidata.org/prop/direct/>.\n\n@prefix : <#>.\n\n\n:this\n <http://purl.org/dc/elements/1.1/title> "Other preferences form" ;\n a ui:Form ;\n ui:parts (\n :styleGroup\n ).\n\n:styleGroup a ui:Group; ui:weight 0; \n ui:parts ( :styleHeading :backgroundColor :highlightColor ).\n\n:styleHeading a ui:Heading; ui:contents "The style of your public profile".\n\n:backgroundColor a ui:ColorField; ui:property solid:profileBackgroundColor;\n ui:label "Background color"; ui:default "#ffffff".\n:highlightColor a ui:ColorField; ui:property solid:profileHighlightColor;\n ui:label "Highlight color"; ui:default "#000000".',"otherPreferencesForm.ttl",i,n.dom,t),o}(e,o,r,i)),a.appendChild(function(n,e,t){const i=n.dom.createElement("section");i.setAttribute("aria-labelledby","edit-profile-friends-heading"),i.classList.add("profileSection","section-bg");const o=n.dom.createElement("header");o.classList.add("text-center","mb-md");const r=n.dom.createElement("h2");if(r.id="edit-profile-friends-heading",r.classList.add("section-title"),r.textContent=Un,o.appendChild(r),i.appendChild(o),t){let o=n.dom.createElement("div");o.classList.add("add-friend-button-container"),function(n,i){const o=n.appendChild(bn.widgets.button(i.dom,Ge,"Add a friend",l)),r=bn.ns.foaf("knows");o.setAttribute("class","add-button"),o.setAttribute("aria-label","Add a friend");const a=i.dom.createElement("span");async function l(o){const a=await bn.widgets.askName(i.dom,Bn.store,n,r,void 0,"WebID of the friend you");if(a){try{new URL(a)}catch{return void Hn(n,i,"Not a URL")}try{await Bn.store.fetcher.load(Bn.store.sym(a))}catch{return void Hn(n,i,"Not a valid WebID")}if(qe(Bn.store.sym(a)))return Yn(a,i,r).then(()=>{He(i.dom,s,e,t,r)}).catch(e=>{qn(n),Hn(n,i,e)});Hn(n,i,"WebID does not seem to exist")}}a.textContent="Add a friend",a.setAttribute("class","span"),n.appendChild(a)}(o,n),i.appendChild(o)}const a=i.appendChild(n.dom.createElement("table"));a.classList.add("edit-friends-attachment-outer");const s=a.appendChild(n.dom.createElement("tr")).appendChild(n.dom.createElement("td")).appendChild(n.dom.createElement("table"));return s.classList.add("attachmentTable","table","table-striped","table-hover"),a.refresh=He(n.dom,s,e,t,bn.ns.foaf("knows")),He(n.dom,s,e,t,bn.ns.foaf("knows")),i}(e,o,r)),a.appendChild(function(n,e,t){const i=n.dom.createElement("section");i.setAttribute("aria-labelledby","edit-profile-communities-heading"),i.classList.add("profileSection","section-bg");const o=n.dom.createElement("header");o.classList.add("text-center","mb-md");const r=n.dom.createElement("h2");if(r.id="edit-profile-communities-heading",r.classList.add("section-title"),r.textContent="Your communities",o.appendChild(r),i.appendChild(o),t){let o=n.dom.createElement("div");o.classList.add("add-community-button-container"),function(n,i){const o=n.appendChild(bn.widgets.button(i.dom,je,"Add a project or community",l)),r=bn.ns.solid("community");o.setAttribute("class","add-button"),o.setAttribute("aria-label","Add a new community");const a=i.dom.createElement("span");async function l(o){const a=await bn.widgets.askName(i.dom,Bn.store,n,r,void 0,"WebID of");if(a){try{new URL(a)}catch{return void Hn(n,i,"Not a URL")}try{await Bn.store.fetcher.load(Bn.store.sym(a))}catch{return void Hn(n,i,"Not a valid WebID")}if(qe(Bn.store.sym(a)))return Yn(a,i,r).then(()=>{He(i.dom,s,e,t,r)}).catch(e=>{qn(n),Hn(n,i,e)});Hn(n,i,"WebID does not seem to exist")}}a.textContent="Add a community or project",a.setAttribute("class","span"),n.appendChild(a)}(o,n),i.appendChild(o)}const a=i.appendChild(n.dom.createElement("table"));a.classList.add("edit-community-attachment-outer");const s=a.appendChild(n.dom.createElement("tr")).appendChild(n.dom.createElement("td")).appendChild(n.dom.createElement("table"));return s.classList.add("attachmentTable","table","table-striped","table-hover"),a.refresh=He(n.dom,s,e,t,bn.ns.solid("community")),He(n.dom,s,e,t,bn.ns.solid("community")),i}(e,o,r)),ue(a),a.setAttribute("aria-busy","false"),a.focus()}).catch(n=>{c(),l.appendChild(bn.widgets.errorMessageBlock(t,n,"#fee")),a.setAttribute("aria-busy","false")}),o}},Ve=We;var Ye=r(7583);const Qe={global:!1,icon:bn.icons.iconBase+"noun_15059.svg",name:"profile",label:function(n,e){const t=e.session.store.findTypeURIs(n);return t[bn.ns.vcard("Individual").uri]||t[bn.ns.foaf("Person").uri]||t[bn.ns.schema("Person").uri]?"Profile":null},editor:Ve,render:(n,e)=>{const t=e.dom.createElement("div");return async function(n,e){const t=n.each(e,bn.ns.rdfs("seeAlso"),null,e.doc());t.length>0&&await n.fetcher.load(t)}(e.session.store,n).then(async()=>{((n,e,t)=>{const i=t?.renderBefore??e;let o=i._$litPart$;if(void 0===o){const n=t?.renderBefore??null;i._$litPart$=o=new An(e.insertBefore(U(),n),n,void 0,t??{})}o._$AI(n)})(await Pe(n,e),t);const i=Array.from(t.getElementsByClassName("QRCode"));if(!i.length)return console.error("QRCode Ele missing");for(const n of i){const e=n.getAttribute("data-value");if(!e)return console.error("QRCode data-value missing");const t={type:"svg",color:{dark:n.getAttribute("highlightColor")||"#000000",light:n.getAttribute("backgroundColor")||"#ffffff"}};Ye.toString(e,t,function(e,t){e?console.error("QRcode error!",e):(n.innerHTML=t,n.style.width="80%",n.style.height="80%",n.style.margin="10%")})}}),t}},Ze=Qe})(),a=a.default})());
|
|
2199
|
+
`}(n,e)}
|
|
2200
|
+
</div>
|
|
2201
|
+
</aside>
|
|
2202
|
+
`}async function Nr(e,n,t){const i=n.session.store,o=function(e){let n="anonymous";return fe.authn.currentUser()&&fe.authn.currentUser().sameTerm(e)&&(n="owner"),fe.authn.currentUser()&&!fe.authn.currentUser().sameTerm(e)&&(n="authenticated"),n}(e),a=await $t(e,i),r=a.profileDetails,l=a.cvDetails,s=a.skills,d=a.languages,c=a.projects,A=a.bioDetails,p=a.social,u=a.contactInfo;return X`
|
|
2203
|
+
<div class="profile-pane-root">
|
|
2204
|
+
<main
|
|
2205
|
+
id="main-content"
|
|
2206
|
+
class="profile-grid"
|
|
2207
|
+
tabindex="-1"
|
|
2208
|
+
>
|
|
2209
|
+
<h1 id="profile-content-heading" class="sr-only">Profile for ${r.name}</h1>
|
|
2210
|
+
|
|
2211
|
+
<section
|
|
2212
|
+
class="profile__main flex-column gap-md p-sm"
|
|
2213
|
+
>
|
|
2214
|
+
<h2 id="profile-main-heading" class="sr-only">Main Profile Content</h2>
|
|
2215
|
+
|
|
2216
|
+
${Va(n,e,r,o,t)}
|
|
2217
|
+
${rr(i,e,A,o,t)}
|
|
2218
|
+
${function(e,n,t,i,o){const a=t||[],r=a.length>0;return X`
|
|
2219
|
+
${r||"owner"!==i?ea(e,n,a,i,o):na(e,n,a,i,o)}
|
|
2220
|
+
`}(i,e,l,o,t)}
|
|
2221
|
+
${function(e,n,t,i,o){const a=Array.isArray(t)&&t.length>0;return X`
|
|
2222
|
+
${a||"owner"!==i?_a(e,n,t,i,o):ba(e,n,0,i,o)}
|
|
2223
|
+
`}(i,e,c,o,t)}
|
|
2224
|
+
|
|
2225
|
+
</section>
|
|
2226
|
+
${Dr(i,e,p,s,d,u,o,t)}
|
|
2227
|
+
</main>
|
|
2228
|
+
</div>
|
|
2229
|
+
`}var Tr=a(7583);const jr={global:!1,icon:me.icons.iconBase+"noun_15059.svg",name:"profile",label:function(e,n){const t=n.session.store.findTypeURIs(e);return t[me.ns.vcard("Individual").uri]||t[me.ns.foaf("Person").uri]||t[me.ns.schema("Person").uri]?"Profile":null},render:(e,n)=>{const t=n.dom.createElement("div"),i=n.session.store,o=async()=>{ue(await Nr(e,n,o),t);const i=Array.from(t.getElementsByClassName("qrcode-card"));if(!i.length)return console.error("QRCode Ele missing");for(const e of i){const n=e.getAttribute("data-value");if(!n)return console.error("QRCode data-value missing");const t={type:"svg",color:{dark:"#000000",light:"#ffffff"}};Tr.toString(n,t,function(n,t){if(n)console.error("QRcode error!",n);else{const n=e.querySelector('div[role="img"]');if(!n)return void console.error("QRCode image container missing");n.innerHTML=t,n.style.width="100%",n.style.height="100%",n.style.margin="0"}})}};return async function(e,n){const t=e.each(n,me.ns.rdfs("seeAlso"),null,n.doc());t.length>0&&await e.fetcher.load(t)}(i,e).then(async()=>{await o()}),t}},zr=jr})(),r=r.default})());
|
|
289
2230
|
//# sourceMappingURL=profile-pane.min.js.map
|