solid-panes 4.4.2-3 → 4.4.2-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +0 -30
  2. package/dist/_virtual/_rolldown/runtime.cjs.js +1 -1
  3. package/dist/_virtual/~icons/lucide/folder-open.cjs.js +2 -0
  4. package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +1 -0
  5. package/dist/_virtual/~icons/lucide/folder-open.esm.js +11 -0
  6. package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +1 -0
  7. package/dist/_virtual/~icons/lucide/help-circle.cjs.js +2 -0
  8. package/dist/_virtual/~icons/lucide/help-circle.cjs.js.map +1 -0
  9. package/dist/_virtual/~icons/lucide/help-circle.esm.js +11 -0
  10. package/dist/_virtual/~icons/lucide/help-circle.esm.js.map +1 -0
  11. package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js +2 -0
  12. package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js.map +1 -0
  13. package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js +11 -0
  14. package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js.map +1 -0
  15. package/dist/_virtual/~icons/lucide/settings-2.cjs.js +2 -0
  16. package/dist/_virtual/~icons/lucide/settings-2.cjs.js.map +1 -0
  17. package/dist/_virtual/~icons/lucide/settings-2.esm.js +11 -0
  18. package/dist/_virtual/~icons/lucide/settings-2.esm.js.map +1 -0
  19. package/dist/_virtual/~icons/lucide/users.cjs.js +2 -0
  20. package/dist/_virtual/~icons/lucide/users.cjs.js.map +1 -0
  21. package/dist/_virtual/~icons/lucide/users.esm.js +11 -0
  22. package/dist/_virtual/~icons/lucide/users.esm.js.map +1 -0
  23. package/dist/components/header/Header.cjs.js +19 -0
  24. package/dist/components/header/Header.cjs.js.map +1 -0
  25. package/dist/components/header/Header.esm.js +228 -0
  26. package/dist/components/header/Header.esm.js.map +1 -0
  27. package/dist/components/header/Header.styles.cjs.js +2 -0
  28. package/dist/components/header/Header.styles.cjs.js.map +1 -0
  29. package/dist/components/header/Header.styles.esm.js +7 -0
  30. package/dist/components/header/Header.styles.esm.js.map +1 -0
  31. package/dist/components/header/index.cjs.js +1 -0
  32. package/dist/components/header/index.esm.js +1 -0
  33. package/dist/components/navbar/Navbar.cjs.js +15 -0
  34. package/dist/components/navbar/Navbar.cjs.js.map +1 -0
  35. package/dist/components/navbar/Navbar.d.ts +14 -0
  36. package/dist/components/navbar/Navbar.d.ts.map +1 -0
  37. package/dist/components/navbar/Navbar.esm.js +232 -0
  38. package/dist/components/navbar/Navbar.esm.js.map +1 -0
  39. package/dist/components/navbar/Navbar.styles.cjs.js +2 -0
  40. package/dist/components/navbar/Navbar.styles.cjs.js.map +1 -0
  41. package/dist/components/navbar/Navbar.styles.esm.js +7 -0
  42. package/dist/components/navbar/Navbar.styles.esm.js.map +1 -0
  43. package/dist/components/navbar/index.cjs.js +1 -0
  44. package/dist/components/navbar/index.d.ts +4 -0
  45. package/dist/components/navbar/index.d.ts.map +1 -0
  46. package/dist/components/navbar/index.esm.js +1 -0
  47. package/dist/dashboard/basicPreferences.cjs.js +1 -1
  48. package/dist/dashboard/basicPreferences.cjs.js.map +1 -1
  49. package/dist/dashboard/dashboardPane.cjs.js +2 -0
  50. package/dist/dashboard/dashboardPane.cjs.js.map +1 -0
  51. package/dist/dashboard/dashboardPane.esm.js +7 -0
  52. package/dist/dashboard/dashboardPane.esm.js.map +1 -0
  53. package/dist/dashboard/homepage.cjs.js +2 -0
  54. package/dist/dashboard/homepage.cjs.js.map +1 -0
  55. package/dist/dashboard/homepage.esm.js +26 -0
  56. package/dist/dashboard/homepage.esm.js.map +1 -0
  57. package/dist/form/pane.cjs.js +1 -1
  58. package/dist/form/pane.cjs.js.map +1 -1
  59. package/dist/form/pane.esm.js +2 -1
  60. package/dist/form/pane.esm.js.map +1 -1
  61. package/dist/home/homePane.cjs.js +1 -1
  62. package/dist/home/homePane.cjs.js.map +1 -1
  63. package/dist/humanReadablePane2.cjs.js.map +1 -1
  64. package/dist/humanReadablePane2.esm.js.map +1 -1
  65. package/dist/index.cjs.js +1 -1
  66. package/dist/index.cjs.js.map +1 -1
  67. package/dist/index.esm.js +12 -7
  68. package/dist/index.esm.js.map +1 -1
  69. package/dist/internal/internalPane2.cjs.js +1 -1
  70. package/dist/internal/internalPane2.cjs.js.map +1 -1
  71. package/dist/mainPage/header.cjs.js +1 -1
  72. package/dist/mainPage/header.cjs.js.map +1 -1
  73. package/dist/mainPage/header.d.ts.map +1 -1
  74. package/dist/mainPage/header.esm.js +65 -17
  75. package/dist/mainPage/header.esm.js.map +1 -1
  76. package/dist/mainPage/index.cjs.js +1 -1
  77. package/dist/mainPage/index.cjs.js.map +1 -1
  78. package/dist/mainPage/index.d.ts +1 -9
  79. package/dist/mainPage/index.d.ts.map +1 -1
  80. package/dist/mainPage/index.esm.js +19 -21
  81. package/dist/mainPage/index.esm.js.map +1 -1
  82. package/dist/mainPage/navbar.cjs.js +2 -0
  83. package/dist/mainPage/navbar.cjs.js.map +1 -0
  84. package/dist/mainPage/navbar.d.ts +3 -0
  85. package/dist/mainPage/navbar.d.ts.map +1 -0
  86. package/dist/mainPage/navbar.esm.js +66 -0
  87. package/dist/mainPage/navbar.esm.js.map +1 -0
  88. package/dist/outline/context.d.ts +1 -1
  89. package/dist/outline/manager2.cjs.js +2 -2
  90. package/dist/outline/manager2.cjs.js.map +1 -1
  91. package/dist/outline/manager2.esm.js +330 -453
  92. package/dist/outline/manager2.esm.js.map +1 -1
  93. package/dist/outline/propertyViews.cjs.js +1 -1
  94. package/dist/outline/propertyViews.cjs.js.map +1 -1
  95. package/dist/outline/queryByExample.esm.js +1 -0
  96. package/dist/outline/queryByExample.esm.js.map +1 -1
  97. package/dist/outline/userInput.cjs.js +3 -3
  98. package/dist/outline/userInput.cjs.js.map +1 -1
  99. package/dist/outline/userInput.esm.js +4 -6
  100. package/dist/outline/userInput.esm.js.map +1 -1
  101. package/dist/pad/padPane2.cjs.js +1 -1
  102. package/dist/pad/padPane2.cjs.js.map +1 -1
  103. package/dist/pad/padPane2.esm.js +2 -1
  104. package/dist/pad/padPane2.esm.js.map +1 -1
  105. package/dist/registerPanes.cjs.js +1 -1
  106. package/dist/registerPanes.cjs.js.map +1 -1
  107. package/dist/registerPanes.esm.js +1 -0
  108. package/dist/registerPanes.esm.js.map +1 -1
  109. package/dist/schedule/schedulePane2.cjs.js +1 -1
  110. package/dist/schedule/schedulePane2.cjs.js.map +1 -1
  111. package/dist/schedule/schedulePane2.esm.js +2 -1
  112. package/dist/schedule/schedulePane2.esm.js.map +1 -1
  113. package/dist/sharing/sharingPane.cjs.js +1 -1
  114. package/dist/sharing/sharingPane.cjs.js.map +1 -1
  115. package/dist/social/editProfileDetails.cjs.js +1 -1
  116. package/dist/social/editProfileDetails.cjs.js.map +1 -1
  117. package/dist/social/editProfileDetails.esm.js +2 -0
  118. package/dist/social/editProfileDetails.esm.js.map +1 -1
  119. package/dist/social/socialPane2.cjs.js +1 -1
  120. package/dist/social/socialPane2.cjs.js.map +1 -1
  121. package/dist/social/socialPane2.esm.js +1 -1
  122. package/dist/social/socialSections.cjs.js +1 -1
  123. package/dist/social/socialSections.cjs.js.map +1 -1
  124. package/dist/social/spinner.cjs.js +1 -0
  125. package/dist/social/spinner.esm.js +1 -0
  126. package/dist/social/triage.cjs.js +1 -1
  127. package/dist/social/triage.cjs.js.map +1 -1
  128. package/dist/tabbed/tabbedPane.cjs.js +1 -1
  129. package/dist/tabbed/tabbedPane.cjs.js.map +1 -1
  130. package/dist/transaction/pane.cjs.js.map +1 -1
  131. package/dist/transaction/pane.esm.js.map +1 -1
  132. package/dist/transaction/period.cjs.js.map +1 -1
  133. package/dist/transaction/period.esm.js.map +1 -1
  134. package/dist/trustedApplications/trustedApplications.dom.cjs.js +1 -1
  135. package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -1
  136. package/dist/trustedApplications/trustedApplications.utils.cjs.js +1 -1
  137. package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -1
  138. package/dist/trustedApplications/trustedApplications.view.cjs.js +1 -1
  139. package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -1
  140. package/dist/utils/paneUtils.cjs.js +2 -0
  141. package/dist/utils/paneUtils.cjs.js.map +1 -0
  142. package/dist/utils/paneUtils.d.ts +19 -0
  143. package/dist/utils/paneUtils.d.ts.map +1 -0
  144. package/dist/utils/paneUtils.esm.js +52 -0
  145. package/dist/utils/paneUtils.esm.js.map +1 -0
  146. package/dist/utils/podUtils.cjs.js +2 -0
  147. package/dist/utils/podUtils.cjs.js.map +1 -0
  148. package/dist/utils/podUtils.d.ts +4 -0
  149. package/dist/utils/podUtils.d.ts.map +1 -0
  150. package/dist/utils/podUtils.esm.js +46 -0
  151. package/dist/utils/podUtils.esm.js.map +1 -0
  152. package/dist/utils/webIdUtils.cjs.js +2 -0
  153. package/dist/utils/webIdUtils.cjs.js.map +1 -0
  154. package/dist/utils/webIdUtils.d.ts +6 -0
  155. package/dist/utils/webIdUtils.d.ts.map +1 -0
  156. package/dist/utils/webIdUtils.esm.js +48 -0
  157. package/dist/utils/webIdUtils.esm.js.map +1 -0
  158. package/dist/versionInfo.cjs.js +1 -1
  159. package/dist/versionInfo.cjs.js.map +1 -1
  160. package/dist/versionInfo.esm.js +3 -3
  161. package/dist/versionInfo.esm.js.map +1 -1
  162. package/package.json +10 -16
  163. package/dist/icons/dashboard.cjs.js +0 -2
  164. package/dist/icons/dashboard.cjs.js.map +0 -1
  165. package/dist/icons/dashboard.esm.js +0 -6
  166. package/dist/icons/dashboard.esm.js.map +0 -1
  167. package/dist/icons/iconHelper.cjs.js +0 -2
  168. package/dist/icons/iconHelper.cjs.js.map +0 -1
  169. package/dist/icons/iconHelper.esm.js +0 -17
  170. package/dist/icons/iconHelper.esm.js.map +0 -1
  171. package/dist/icons/menu.cjs.js +0 -9
  172. package/dist/icons/menu.cjs.js.map +0 -1
  173. package/dist/icons/menu.esm.js +0 -6
  174. package/dist/icons/menu.esm.js.map +0 -1
  175. package/dist/mainPage/footer.cjs.js +0 -2
  176. package/dist/mainPage/footer.cjs.js.map +0 -1
  177. package/dist/mainPage/footer.d.ts +0 -13
  178. package/dist/mainPage/footer.d.ts.map +0 -1
  179. package/dist/mainPage/footer.esm.js +0 -18
  180. package/dist/mainPage/footer.esm.js.map +0 -1
  181. package/dist/mainPage/menu.d.ts +0 -6
  182. package/dist/mainPage/menu.d.ts.map +0 -1
  183. package/dist/mainPage/menu2.cjs.js +0 -2
  184. package/dist/mainPage/menu2.cjs.js.map +0 -1
  185. package/dist/mainPage/menu2.esm.js +0 -184
  186. package/dist/mainPage/menu2.esm.js.map +0 -1
  187. package/dist/profileUtils/ownerProfile.cjs.js +0 -2
  188. package/dist/profileUtils/ownerProfile.cjs.js.map +0 -1
  189. package/dist/profileUtils/ownerProfile.d.ts +0 -5
  190. package/dist/profileUtils/ownerProfile.d.ts.map +0 -1
  191. package/dist/profileUtils/ownerProfile.esm.js +0 -50
  192. package/dist/profileUtils/ownerProfile.esm.js.map +0 -1
@@ -1,4 +1,4 @@
1
- (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.social-pane-host,.social-pane{--profile-interactive-cursor:pointer;background:var(--color-background,#f8f9fb);border-radius:var(--border-radius-base,.3125rem);box-sizing:border-box;width:100%;min-width:100%;max-width:none;margin:0;display:block;overflow:visible}.social-pane__header-content{align-items:flex-start;column-gap:var(--spacing-md,1.25rem);row-gap:var(--spacing-xxs,.3125rem);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.social-pane__header-media{grid-area:1/1}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;min-width:0;display:flex}.social-pane__header-actions{place-self:flex-start end;align-items:flex-start;gap:var(--spacing-xs,.5rem);flex-wrap:wrap;grid-area:1/3;margin-left:auto;display:flex}.social-pane__header-actions--friend{justify-content:center}.social-pane__header-actions--friend>solid-ui-button{--button-border-radius:var(--border-radius-md,.5rem);--button-hover-text:var(--color-primary,#7c4dff);--button-hover-border:var(--color-primary,#7c4dff);margin-inline:auto}.social-pane__header-summary{align-items:flex-start;gap:var(--spacing-xxs,.125rem);flex-direction:column;width:100%;max-width:100%;display:flex}.social-pane__header-stats{gap:var(--spacing-xs,.75rem);margin-top:var(--spacing-xxs,.3125rem);flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;display:flex}.social-pane__header-stat{appearance:none;cursor:var(--profile-interactive-cursor,pointer);color:var(--slate-700,#314158);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight,1.4);background:0 0;border:0;padding:0;text-decoration:none}.social-pane__header-stat+.social-pane__header-stat:before{content:"◆";color:var(--gray-400,#99a1af);margin-right:var(--spacing-xs,.75rem);vertical-align:middle;font-size:.5rem}.social-pane__header-stat:hover .social-pane__header-stat-label{text-decoration:underline}.social-pane__header-stat:focus-visible{outline:var(--border-width-medium,2px) solid #111827;outline-offset:2px}.social-pane__edit-button{--button-height-sm:0;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-font-size-sm:var(--font-size-sm,.875rem);--button-font-weight:var(--font-weight-regular,400);--button-line-height:var(--line-height-base,1.5);--button-icon-size-sm:.875rem;width:auto;min-width:0;max-width:none;display:inline-block;position:static}.social-pane__edit-button::part(button):hover{text-decoration:underline}.social-pane__edit-button::part(button):focus-visible{outline:var(--border-width-medium,2px) solid var(--color-primary,#7c4dff);outline-offset:2px}.social-pane__edit-button-label{align-items:center;gap:var(--spacing-xxs,.3125rem);display:inline-flex}.social-pane__edit-button .profile-section-collapsible__edit-icon,.social-pane__edit-button-icon{line-height:0;display:none}.social-pane__edit-button-label svg,.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{vertical-align:middle;flex:none;width:.875rem;height:.875rem;display:inline-block}.social-pane__edit-button-label svg path,.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-primary,#7c4dff);stroke:none}.social-pane__dialog-backdrop{z-index:1000;background:#0f172a73;padding:1rem;position:fixed;inset:0}.social-pane__dialog{background:var(--white,#fff);width:min(32rem,100%);max-height:calc(100vh - 2rem);color:var(--color-text,#111827);padding:var(--spacing-md,1.25rem);border-radius:1rem;position:relative;overflow:auto;box-shadow:0 20px 45px #0f172a40}.social-pane__dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md,1rem);padding-bottom:var(--spacing-base,.5rem);margin-bottom:var(--spacing-sm,.938rem);border-bottom:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);display:flex}.social-pane__dialog-title{margin:0 0 var(--spacing-base,.5rem)}.social-pane__dialog-close{--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;color:var(--color-text-subheading,#6b7280);cursor:pointer;flex:none;padding:0;line-height:0}.social-pane__dialog-close:hover{color:var(--color-text-primary,#364153)}.social-pane__dialog-close:focus-visible{outline:var(--border-width-medium,2px) solid var(--color-text-primary,#364153);outline-offset:2px}.social-pane__dialog-close svg{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem)}.social-pane__dialog-close svg path{fill:currentColor}.social-pane__dialog-form{gap:var(--spacing-sm,.938rem)}.social-pane__dialog-fields{gap:var(--spacing-sm,.938rem);flex-direction:column;display:flex}.social-pane__dialog-field{gap:.2rem}.social-pane__dialog-field-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs,.75rem);display:flex}.social-pane__dialog-row-list{flex-direction:column;gap:.2rem;display:flex}.social-pane__dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.social-pane__dialog-label{color:var(--gray-700,#364153);font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-md,500);margin:0;line-height:normal}.social-pane__dialog-input{box-sizing:border-box;resize:none;width:100%;min-height:auto}.social-pane__dialog-error{min-height:1.25rem;color:var(--color-warning,red);margin:0}.social-pane__dialog-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.social-pane__dialog-saving-overlay[hidden]{display:none}.social-pane__dialog.modal--saving .social-pane__dialog-form{opacity:.45;pointer-events:none}.social-pane__dialog .modal__saving-indicator{gap:0}.social-pane__dialog-row-button-icon{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.social-pane__dialog-row-button-icon svg{display:block}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add{box-sizing:border-box;--button-min-height:auto;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-height-sm:auto;--button-font-weight:var(--font-weight-md,500);--button-font-size-sm:var(--font-size-sm,.875rem);--button-line-height:var(--line-height-base,1.5);flex:none;justify-self:flex-start;width:auto;min-width:0;max-width:none;margin-left:auto}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){min-height:auto;padding:var(--spacing-xxs,.3125rem);color:var(--color-primary,#7c4dff);font-weight:var(--font-weight-md,500);background:0 0;border:none}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add:hover::part(button){text-decoration:underline}.social-pane__add-more-content{display:inline}.social-pane__add-more-inline{white-space:normal;display:inline}.social-pane__add-more-icon{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem);margin-right:var(--spacing-xxs,.3125rem);vertical-align:text-top;line-height:0;display:inline-block}.social-pane__add-more-icon svg{width:100%;height:100%;display:block}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove{min-height:var(--min-touch-target,44px);min-width:var(--min-touch-target,44px);color:var(--gray-300,#d1d5dc);--button-background:transparent;--button-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;--button-border:transparent;--button-border-width:0;--button-border-radius:var(--border-radius-base,.3125rem);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-primary,#7c4dff);--button-hover-box-shadow:none;--button-text:currentColor;--button-height-md:var(--min-touch-target,44px);--button-padding-md:0;--button-padding-x-sm:0;--button-icon-size-md:var(--icon-xxs,1rem);--button-icon-size-lg:var(--icon-xxs,1rem)}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:hover,.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:focus-within{color:var(--gray-300,#d1d5dc)}.social-pane__dialog-row-button-icon--remove svg{width:1rem;height:1rem}.social-pane__dialog-row-button-icon--remove svg path{stroke:currentColor}.social-pane__dialog-actions{justify-content:flex-end;gap:var(--spacing-xs,.75rem);padding-top:var(--spacing-base,.5rem);border-top:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);margin-top:0;display:flex}.social-pane__dialog-actions>solid-ui-button{--button-border-width:1px;--button-border-radius:var(--border-radius-base,.3125rem);--button-box-shadow:none;--button-hover-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;width:10.8rem}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--save{--button-font-size-md:var(--font-size-lg,1.125rem);--button-background:var(--color-primary,#7c4dff);--button-border:var(--color-primary,#7c4dff);--button-text:var(--white,#fff);--button-hover-background:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-border:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-text:var(--white,#fff)}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--cancel{--button-background:var(--white,#fff);--button-border:var(--gray-300,#d1d5dc);--button-font-weight:var(--font-weight-normal,normal);--button-text:var(--gray-800,#1e2939);--button-hover-background:var(--blue-900,#083575);--button-hover-border:var(--blue-900,#083575);--button-hover-text:var(--white,#fff);--button-font-size-md:var(--font-size-sm,.875rem)}.social-pane__header-name{color:var(--color-text-heading,#000);font-size:var(--font-size-xxl,1.75rem);font-weight:var(--font-weight-bold,600);text-indent:0;text-align:left;overflow-wrap:anywhere;margin:0;padding:0;line-height:1.2;transform:translate(-4px)}.social-pane__header-location{align-items:center;gap:var(--spacing-2xs,.625rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-normal,400);line-height:1.2;display:inline-flex}.social-pane__header-job-org{color:var(--color-text-subheading,#101828);white-space:normal;width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-md,500);text-align:left;margin:0;line-height:1.25}.social-pane__header-location-icon{line-height:0}.social-pane__header-location-icon svg{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem)}.social-profile-links{grid-template-columns:repeat(2,max-content);align-items:start;gap:.15rem 1rem;display:grid}.social-pane__header-hero{border-radius:var(--border-radius-full,.625rem);border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--gray-200,#e5e7eb) 50% / cover no-repeat;object-fit:cover;object-position:center;background-position:50%;width:140px;height:140px}.social-pane__header-hero-icon{border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--color-card-bg);flex-shrink:0;width:140px;height:140px;line-height:0;border-radius:var(--border-radius-full,.625rem)!important}.social-pane__header-hero-icon svg{width:100%;height:100%;display:block}.social-pane .social-layout{align-items:flex-start;gap:1rem;width:100%;display:flex}.social-pane .social-primary{flex:70%;grid-template-rows:auto minmax(0,auto);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-width:0;display:grid}.social-pane .social-primary__tabs{align-items:center;gap:var(--spacing-base,.5rem);z-index:1;background:0 0;grid-area:1/1;width:fit-content;max-width:100%;margin-bottom:0;padding:0;display:flex;position:relative}.social-pane .social-primary__tab{appearance:none;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;color:#374151;cursor:pointer;font:inherit;font-weight:var(--font-weight-bold,600);padding:var(--spacing-2xs,.625rem) 1rem;background:0 0;border-radius:0;transition:background-color .12s,color .12s,box-shadow .12s;box-shadow:none!important}.social-pane .social-primary__tab:hover{color:var(--grey-purple-900,#332746);background:var(--lavender-300,#e6dcff)!important;box-shadow:none!important}.social-pane .social-primary__tab[aria-selected=true],.social-pane .social-primary__tab--active{color:var(--grey-purple-900,#332746);border-bottom-color:var(--color-primary,#7c4dff);background:0 0;box-shadow:none!important}.social-pane .social-primary__tab:focus-visible{outline-offset:2px;outline:none;box-shadow:none!important}.social-pane .social-primary__panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:2/1;transition:opacity .16s,transform .16s,visibility 0s linear .16s;display:none;transform:translateY(.35rem)}.social-pane .social-primary__panel--active{opacity:1;visibility:visible;pointer-events:auto;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;transition:opacity .18s,transform .18s;display:block;transform:translateY(0)}.social-pane .social-pane__mutual-friends,.social-pane .social-pane__all-friends{padding-top:var(--spacing-xxxs,.2rem);margin-top:0}.social-pane .social-main{background-color:var(--color-card-bg,#fff);color:var(--color-text-primary,#364153);box-sizing:border-box;border-collapse:collapse;border:0;width:100%;padding:0;display:table}.social-pane .social-main--mutual{gap:var(--spacing-xs,.75rem);border-radius:var(--border-radius-lg,.75rem);margin-top:1em;margin-bottom:1em;padding:1rem}.social-pane .social-main--requests{gap:var(--spacing-md,1rem);border-radius:var(--border-radius-lg,.75rem);flex-direction:column;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.social-requests__note{color:var(--color-text-subheading,#475467);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__group{gap:var(--spacing-sm,.938rem)}.social-requests__group-header{flex-direction:column;gap:.125rem;display:flex}.social-requests__group-title{color:var(--color-text-heading,#101828);font-size:var(--font-size-lg,1.125rem);margin:0;line-height:1.25}.social-requests__group-description,.social-requests__empty{color:var(--color-text-subheading,#667085);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__table{margin-top:0}.social-pane .social-mutual-summary{gap:var(--spacing-base,.5rem)}.social-pane .social-mutual-summary-line{color:var(--slate-700,#314158);font-size:var(--font-size-sm,.95rem);line-height:var(--line-height-base,1.5);justify-content:flex-start;padding:1rem}.social-pane .social-mutual-summary-line--action{gap:var(--spacing-xxs,.75rem);flex-wrap:wrap}.social-pane .social-mutual-confirm-prompt{align-items:center;gap:var(--spacing-xxxs,.2rem);font-weight:var(--font-weight-semibold,600);flex-wrap:wrap;display:inline-flex}.social-pane .social-pane__friend-action--inline{z-index:auto;align-self:flex-start;position:static;top:auto;right:auto}.social-pane .social-mutual-checkbox-form{margin:0;padding:0 1rem 1rem;display:block}.social-pane .social-mutual-checkbox-form label{align-items:center;gap:var(--spacing-2xs,.65rem);color:var(--slate-700,#374151);font-size:var(--font-size-sm,.875rem);flex-wrap:wrap;line-height:1.4;display:inline-flex}.social-pane .social-mutual-checkbox-form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary,#7c4dff);margin:0}.social-pane .social-mutual-checkbox-form input[type=checkbox]:disabled{opacity:.65;cursor:not-allowed}.social-pane .social-friends-list{width:100%;margin-top:0}.social-pane .social-friends-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tbody{align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{table-layout:fixed;box-sizing:border-box;width:calc(50% - .375rem);display:inline-table}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr,.social-pane .social-friend-card{border:1px solid var(--gray-200,#e5e7eb);background:var(--white,#fff);border-radius:var(--border-radius-lg,.75rem);transition:box-shadow .14s,border-color .14s,transform .14s;overflow:visible;box-shadow:0 1px 3px #00000014}.social-pane .social-friends-grid>tr:hover,.social-pane .social-friends-grid>tbody>tr:hover,.social-pane .social-friend-card:hover{border-color:var(--gray-300,#d1d5dc);transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.social-pane .social-friends-grid>tr td,.social-pane .social-friends-grid>tbody>tr td,.social-pane .social-friend-card td{background:var(--color-background,#f8f9fb);box-sizing:border-box}.social-pane .social-friends-grid>tr>td:nth-child(2),.social-pane .social-friends-grid>tbody>tr>td:nth-child(2){width:auto;min-width:0;padding-left:1.4rem}.social-pane .social-friends-grid>tr>td:nth-child(3),.social-pane .social-friends-grid>tbody>tr>td:nth-child(3){vertical-align:top;width:2.5rem;min-width:2.5rem;padding-left:.25rem}.social-pane .social-friends-grid>tr>td:first-child,.social-pane .social-friends-grid>tbody>tr>td:first-child{padding-right:1.2rem}.social-pane .social-friends-grid td>div>div{overflow-wrap:anywhere;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important}.social-pane .social-friends-grid td>div>div button{white-space:normal!important}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child{flex-wrap:wrap;align-items:flex-start;gap:.2rem .4rem;min-width:0;display:flex}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child>span:first-of-type,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child>span:first-of-type{vertical-align:text-top;max-width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow-wrap:anywhere;margin-top:0;margin-bottom:0;display:inline-block;overflow:visible}.social-pane .social-friend-pronouns{margin-left:var(--spacing-xs,.25rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-regular,400);text-align:left;line-height:1.2;display:inline}.social-pane .social-friend-job-org{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;color:var(--color-text-subheading,#101828);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);text-align:left;margin:0;line-height:1.25}.social-pane .social-friend-location{color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-xs,.8125rem);overflow-wrap:anywhere;line-height:1.3}@media (width<=960px){.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%}}.social-pane .social-friends-header{padding:0 var(--spacing-xs,.75rem) var(--spacing-base,.5rem);background-color:var(--gray-100,#f3f4f6);caption-side:top;justify-content:space-between;align-items:center;margin-top:0;display:flex}.social-pane .social-friends-header-title{font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-bold,600);color:var(--color-text-primary,#364153)}.social-pane .social-friends-header-actions{justify-content:flex-end;align-items:center;display:inline-flex}.social-pane .social-friends-header-actions--standalone{align-items:center;gap:var(--spacing-xs,.75rem);justify-content:flex-start;padding:.7rem 1rem 0;display:flex}.social-pane .social-friends-header-dropzone{border-collapse:collapse}.social-pane .social-friends-header-dropzone-cell{padding:0}.social-pane .social-friends-header-hint{color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);line-height:1.4}.social-pane .social-friends-header-actions button{justify-content:center;align-items:center;display:inline-flex;overflow:hidden;border-width:0!important;width:2rem!important;min-width:2rem!important;height:2rem!important;margin:0!important;padding:0!important}.social-pane .social-friends-header-actions button img{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}div.social-pane{margin:0;padding-top:0;padding-bottom:0}.social-pane a{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:none}.social-pane a:hover{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:underline}.social-pane a:active{color:var(--color-primary,#7c4dff);text-decoration:none}.social-pane__link-button{white-space:nowrap;width:fit-content;max-width:100%;padding:var(--spacing-xxxs,.2rem) var(--spacing-base,.5rem);text-align:left;background-color:#0000;border:none;margin-top:0;margin-bottom:0;display:inline-flex}.social-pane__link-button>a{white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--color-primary,#7c4dff);background-color:#0000;display:inline-flex}.social-pane__link-button>a:link,.social-pane__link-button>a:visited,.social-pane__link-button>a:hover{color:var(--color-primary,#7c4dff)}.social-pane__link-button>a:hover{text-decoration:underline}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-media{display:contents}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location){text-align:left;justify-content:flex-start;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-primary__tabs,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-primary__tabs{margin-top:-.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-hero,.social-pane__header-hero-icon){aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-pronouns{font-size:.6875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-location,.social-pane__header-stat),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label){display:none!important}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon){justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg){width:.875rem;height:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path){fill:var(--color-text,#1a1a1a);stroke:none}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane .social-layout,.social-pane .social-primary,.social-layout,.social-primary),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-grid,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-friends-grid{display:block}:is(.social-pane-host,.social-pane)[data-input-mode=touch]{--profile-interactive-cursor:auto}:is(.social-pane-host,.social-pane)[data-input-mode=pointer]{--profile-interactive-cursor:pointer}@media (width<=600px){.social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}.social-pane__header-media{display:contents}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}.social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}.social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location{text-align:left;justify-content:flex-start;width:100%}.social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}.social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}.social-pane .social-primary__tabs{margin-top:-.5rem}.social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}.social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}.social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}.social-pane__header-hero,.social-pane__header-hero-icon{aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}.social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}.social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}.social-pane .social-friend-pronouns{font-size:.6875rem}.social-pane__header-location,.social-pane__header-stat,.social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}.social-pane__friend-action{--button-padding-sm:var(--spacing-xxxs,.2rem) var(--spacing-xxs-old,.3rem);--button-font-size-sm:var(--font-size-xs,.813rem);--button-border-radius-sm:var(--border-radius-base,.3125rem)}.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label{display:none!important}.social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon{justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{width:.875rem;height:.875rem}.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-text,#1a1a1a);stroke:none}.social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}.social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}.social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}.social-pane .social-layout,.social-pane .social-primary,.social-pane .social-friends-grid{display:block}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%;margin-bottom:var(--spacing-xs,.75rem);display:table}.social-pane .social-friends-grid>tr:last-child,.social-pane .social-friends-grid>tbody>tr:last-child{margin-bottom:0}.social-pane .social-main{width:100%}}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();;const e=require("./icons.cjs.js"),t=require("./socialSections.cjs.js"),n=require("./triage.cjs.js");let r=require("solid-ui"),i=require("solid-logic");function a(e,t){let n=t.environment?.layout??`desktop`,r=t.environment?.theme??`light`,i=t.environment?.inputMode??`pointer`;e.classList.add(`social-pane-host`),e.dataset.layout=n,e.dataset.theme=r,e.dataset.inputMode=i}var o={icon:r.icons.originalIconBase+`foaf/foafTiny.gif`,name:`social`,label:function(e,t){let n=t.session.store.findTypeURIs(e);return n[r.ns.foaf(`Person`).uri]||n[r.ns.vcard(`Individual`).uri]?`Friends`:null},global:!1,render:function(o,s){let c=s.dom,l=function(e,t){let n=[];for(let r=0;r<e.length;r++)for(let i=0;i<t.length;i++)if(t[i].sameTerm(e[r])){n.push(t[i]);break}return n},m=function(e){let t=new Set,n=[];for(let r of e)!r?.value||t.has(r.value)||(t.add(r.value),n.push(r));return n},h=function(e,t){if(!t)return e;let n=c.createElement(`a`);return n.setAttribute(`href`,t),n.appendChild(e),n},ee=function(e){return c.createTextNode(e)},g=function(){},te=function(e,t,n,i={}){let a=c.createElement(`form`),o=c.createElement(`label`),s=c.createElement(`input`),l=c.createElement(`span`);return l.className=`question`,typeof e==`string`?l.textContent=e:l.appendChild(e),s.setAttribute(`type`,`checkbox`),i.disabled&&(s.disabled=!0,i.disabledTitle&&(s.title=i.disabledTitle,s.setAttribute(`aria-label`,i.disabledTitle))),o.appendChild(l),o.appendChild(s),a.appendChild(o),s.checked=n,s.addEventListener(`click`,function(e){if(this.checked)try{_.UserInput.sparqler.insert_statement(t,function(e,n,i){if(l.className=`question`,!n){r.log.alert(`Error occurs while inserting `+t+`
1
+ (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.social-pane-host,.social-pane{--profile-interactive-cursor:pointer;background:var(--color-background,#f8f9fb);border-radius:var(--border-radius-base,.3125rem);box-sizing:border-box;width:100%;min-width:100%;max-width:none;margin-top:20px;display:block;overflow:visible}.social-pane__header-content{align-items:flex-start;column-gap:var(--spacing-md,1.25rem);row-gap:var(--spacing-xxs,.3125rem);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.social-pane__header-media{grid-area:1/1}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;min-width:0;display:flex}.social-pane__header-actions{place-self:flex-start end;align-items:flex-start;gap:var(--spacing-xs,.5rem);flex-wrap:wrap;grid-area:1/3;margin-left:auto;display:flex}.social-pane__header-actions--friend{justify-content:center}.social-pane__header-actions--friend>solid-ui-button{--button-border-radius:var(--border-radius-md,.5rem);--button-hover-text:var(--color-primary,#7c4dff);--button-hover-border:var(--color-primary,#7c4dff);margin-inline:auto}.social-pane__header-summary{align-items:flex-start;gap:var(--spacing-xxs,.125rem);flex-direction:column;width:100%;max-width:100%;display:flex}.social-pane__header-stats{gap:var(--spacing-xs,.75rem);margin-top:var(--spacing-xxs,.3125rem);flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;display:flex}.social-pane__header-stat{appearance:none;cursor:var(--profile-interactive-cursor,pointer);color:var(--slate-700,#314158);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight,1.4);background:0 0;border:0;padding:0;text-decoration:none}.social-pane__header-stat+.social-pane__header-stat:before{content:"◆";color:var(--gray-400,#99a1af);margin-right:var(--spacing-xs,.75rem);vertical-align:middle;font-size:.5rem}.social-pane__header-stat:hover .social-pane__header-stat-label{text-decoration:underline}.social-pane__header-stat:focus-visible{outline:var(--border-width-medium,2px) solid #111827;outline-offset:2px}.social-pane__edit-button{--button-height-sm:0;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-font-size-sm:var(--font-size-sm,.875rem);--button-font-weight:var(--font-weight-regular,400);--button-line-height:var(--line-height-base,1.5);--button-icon-size-sm:.875rem;width:auto;min-width:0;max-width:none;display:inline-block;position:static}.social-pane__edit-button::part(button):hover{text-decoration:underline}.social-pane__edit-button::part(button):focus-visible{outline:var(--border-width-medium,2px) solid var(--color-primary,#7c4dff);outline-offset:2px}.social-pane__edit-button-label{align-items:center;gap:var(--spacing-xxs,.3125rem);display:inline-flex}.social-pane__edit-button .profile-section-collapsible__edit-icon,.social-pane__edit-button-icon{line-height:0;display:none}.social-pane__edit-button-label svg,.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{vertical-align:middle;flex:none;width:.875rem;height:.875rem;display:inline-block}.social-pane__edit-button-label svg path,.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-primary,#7c4dff);stroke:none}.social-pane__dialog-backdrop{z-index:1000;background:#0f172a73;padding:1rem;position:fixed;inset:0}.social-pane__dialog{background:var(--white,#fff);width:min(32rem,100%);max-height:calc(100vh - 2rem);color:var(--color-text,#111827);padding:var(--spacing-md,1.25rem);border-radius:1rem;position:relative;overflow:auto;box-shadow:0 20px 45px #0f172a40}.social-pane__dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md,1rem);padding-bottom:var(--spacing-base,.5rem);margin-bottom:var(--spacing-sm,.938rem);border-bottom:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);display:flex}.social-pane__dialog-title{margin:0 0 var(--spacing-base,.5rem)}.social-pane__dialog-close{--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;color:var(--color-text-subheading,#6b7280);cursor:pointer;flex:none;padding:0;line-height:0}.social-pane__dialog-close:hover{color:var(--color-text-primary,#364153)}.social-pane__dialog-close:focus-visible{outline:var(--border-width-medium,2px) solid var(--color-text-primary,#364153);outline-offset:2px}.social-pane__dialog-close svg{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem)}.social-pane__dialog-close svg path{fill:currentColor}.social-pane__dialog-form{gap:var(--spacing-sm,.938rem)}.social-pane__dialog-fields{gap:var(--spacing-sm,.938rem);flex-direction:column;display:flex}.social-pane__dialog-field{gap:.2rem}.social-pane__dialog-field-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs,.75rem);display:flex}.social-pane__dialog-row-list{flex-direction:column;gap:.2rem;display:flex}.social-pane__dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.social-pane__dialog-label{color:var(--gray-700,#364153);font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-md,500);margin:0;line-height:normal}.social-pane__dialog-input{box-sizing:border-box;resize:none;width:100%;min-height:auto}.social-pane__dialog-error{min-height:1.25rem;color:var(--color-warning,red);margin:0}.social-pane__dialog-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.social-pane__dialog-saving-overlay[hidden]{display:none}.social-pane__dialog.modal--saving .social-pane__dialog-form{opacity:.45;pointer-events:none}.social-pane__dialog .modal__saving-indicator{gap:0}.social-pane__dialog-row-button-icon{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.social-pane__dialog-row-button-icon svg{display:block}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add{box-sizing:border-box;--button-min-height:auto;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-height-sm:auto;--button-font-weight:var(--font-weight-md,500);--button-font-size-sm:var(--font-size-sm,.875rem);--button-line-height:var(--line-height-base,1.5);flex:none;justify-self:flex-start;width:auto;min-width:0;max-width:none;margin-left:auto}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){min-height:auto;padding:var(--spacing-xxs,.3125rem);color:var(--color-primary,#7c4dff);font-weight:var(--font-weight-md,500);background:0 0;border:none}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add:hover::part(button){text-decoration:underline}.social-pane__add-more-content{display:inline}.social-pane__add-more-inline{white-space:normal;display:inline}.social-pane__add-more-icon{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem);margin-right:var(--spacing-xxs,.3125rem);vertical-align:text-top;line-height:0;display:inline-block}.social-pane__add-more-icon svg{width:100%;height:100%;display:block}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove{min-height:var(--min-touch-target,44px);min-width:var(--min-touch-target,44px);color:var(--gray-300,#d1d5dc);--button-background:transparent;--button-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;--button-border:transparent;--button-border-width:0;--button-border-radius:var(--border-radius-base,.3125rem);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-primary,#7c4dff);--button-hover-box-shadow:none;--button-text:currentColor;--button-height-md:var(--min-touch-target,44px);--button-padding-md:0;--button-padding-x-sm:0;--button-icon-size-md:var(--icon-xxs,1rem);--button-icon-size-lg:var(--icon-xxs,1rem)}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:hover,.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:focus-within{color:var(--gray-300,#d1d5dc)}.social-pane__dialog-row-button-icon--remove svg{width:1rem;height:1rem}.social-pane__dialog-row-button-icon--remove svg path{stroke:currentColor}.social-pane__dialog-actions{justify-content:flex-end;gap:var(--spacing-xs,.75rem);padding-top:var(--spacing-base,.5rem);border-top:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);margin-top:0;display:flex}.social-pane__dialog-actions>solid-ui-button{--button-border-width:1px;--button-border-radius:var(--border-radius-base,.3125rem);--button-box-shadow:none;--button-hover-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;width:10.8rem}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--save{--button-font-size-md:var(--font-size-lg,1.125rem);--button-background:var(--color-primary,#7c4dff);--button-border:var(--color-primary,#7c4dff);--button-text:var(--white,#fff);--button-hover-background:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-border:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-text:var(--white,#fff)}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--cancel{--button-background:var(--white,#fff);--button-border:var(--gray-300,#d1d5dc);--button-font-weight:var(--font-weight-normal,normal);--button-text:var(--gray-800,#1e2939);--button-hover-background:var(--blue-900,#083575);--button-hover-border:var(--blue-900,#083575);--button-hover-text:var(--white,#fff);--button-font-size-md:var(--font-size-sm,.875rem)}.social-pane__header-name{color:var(--color-text-heading,#000);font-size:var(--font-size-xxl,1.75rem);font-weight:var(--font-weight-bold,600);text-indent:0;text-align:left;overflow-wrap:anywhere;margin:0;padding:0;line-height:1.2;transform:translate(-4px)}.social-pane__header-location{align-items:center;gap:var(--spacing-2xs,.625rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-normal,400);line-height:1.2;display:inline-flex}.social-pane__header-job-org{color:var(--color-text-subheading,#101828);white-space:normal;width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-md,500);text-align:left;margin:0;line-height:1.25}.social-pane__header-location-icon{line-height:0}.social-pane__header-location-icon svg{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem)}.social-profile-links{grid-template-columns:repeat(2,max-content);align-items:start;gap:.15rem 1rem;display:grid}.social-pane__header-hero{border-radius:var(--border-radius-full,.625rem);border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--gray-200,#e5e7eb) 50% / cover no-repeat;object-fit:cover;object-position:center;background-position:50%;width:140px;height:140px}.social-pane__header-hero-icon{border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--color-card-bg);flex-shrink:0;width:140px;height:140px;line-height:0;border-radius:var(--border-radius-full,.625rem)!important}.social-pane__header-hero-icon svg{width:100%;height:100%;display:block}.social-pane .social-layout{align-items:flex-start;gap:1rem;width:100%;display:flex}.social-pane .social-primary{flex:70%;grid-template-rows:auto minmax(0,auto);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-width:0;display:grid}.social-pane .social-primary__tabs{align-items:center;gap:var(--spacing-base,.5rem);z-index:1;background:0 0;grid-area:1/1;width:fit-content;max-width:100%;margin-bottom:0;padding:0;display:flex;position:relative}.social-pane .social-primary__tab{appearance:none;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;color:#374151;cursor:pointer;font:inherit;font-weight:var(--font-weight-bold,600);padding:var(--spacing-2xs,.625rem) 1rem;background:0 0;border-radius:0;transition:background-color .12s,color .12s,box-shadow .12s;box-shadow:none!important}.social-pane .social-primary__tab:hover{color:var(--grey-purple-900,#332746);background:var(--lavender-300,#e6dcff)!important;box-shadow:none!important}.social-pane .social-primary__tab[aria-selected=true],.social-pane .social-primary__tab--active{color:var(--grey-purple-900,#332746);border-bottom-color:var(--color-primary,#7c4dff);background:0 0;box-shadow:none!important}.social-pane .social-primary__tab:focus-visible{outline-offset:2px;outline:none;box-shadow:none!important}.social-pane .social-primary__panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:2/1;transition:opacity .16s,transform .16s,visibility 0s linear .16s;display:none;transform:translateY(.35rem)}.social-pane .social-primary__panel--active{opacity:1;visibility:visible;pointer-events:auto;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;transition:opacity .18s,transform .18s;display:block;transform:translateY(0)}.social-pane .social-pane__mutual-friends,.social-pane .social-pane__all-friends{padding-top:var(--spacing-xxxs,.2rem);margin-top:0}.social-pane .social-main{background-color:var(--color-card-bg,#fff);color:var(--color-text-primary,#364153);box-sizing:border-box;border-collapse:collapse;border:0;width:100%;padding:0;display:table}.social-pane .social-main--mutual{gap:var(--spacing-xs,.75rem);border-radius:var(--border-radius-lg,.75rem);margin-top:1em;margin-bottom:1em;padding:1rem}.social-pane .social-main--requests{gap:var(--spacing-md,1rem);border-radius:var(--border-radius-lg,.75rem);flex-direction:column;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.social-requests__note{color:var(--color-text-subheading,#475467);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__group{gap:var(--spacing-sm,.938rem)}.social-requests__group-header{flex-direction:column;gap:.125rem;display:flex}.social-requests__group-title{color:var(--color-text-heading,#101828);font-size:var(--font-size-lg,1.125rem);margin:0;line-height:1.25}.social-requests__group-description,.social-requests__empty{color:var(--color-text-subheading,#667085);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__table{margin-top:0}.social-pane .social-mutual-summary{gap:var(--spacing-base,.5rem)}.social-pane .social-mutual-summary-line{color:var(--slate-700,#314158);font-size:var(--font-size-sm,.95rem);line-height:var(--line-height-base,1.5);justify-content:flex-start;padding:1rem}.social-pane .social-mutual-summary-line--action{gap:var(--spacing-xxs,.75rem);flex-wrap:wrap}.social-pane .social-mutual-confirm-prompt{align-items:center;gap:var(--spacing-xxxs,.2rem);font-weight:var(--font-weight-semibold,600);flex-wrap:wrap;display:inline-flex}.social-pane .social-pane__friend-action--inline{z-index:auto;align-self:flex-start;position:static;top:auto;right:auto}.social-pane .social-mutual-checkbox-form{margin:0;padding:0 1rem 1rem;display:block}.social-pane .social-mutual-checkbox-form label{align-items:center;gap:var(--spacing-2xs,.65rem);color:var(--slate-700,#374151);font-size:var(--font-size-sm,.875rem);flex-wrap:wrap;line-height:1.4;display:inline-flex}.social-pane .social-mutual-checkbox-form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary,#7c4dff);margin:0}.social-pane .social-mutual-checkbox-form input[type=checkbox]:disabled{opacity:.65;cursor:not-allowed}.social-pane .social-friends-list{width:100%;margin-top:0}.social-pane .social-friends-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tbody{align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{table-layout:fixed;box-sizing:border-box;width:calc(50% - .375rem);display:inline-table}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr,.social-pane .social-friend-card{border:1px solid var(--gray-200,#e5e7eb);background:var(--white,#fff);border-radius:var(--border-radius-lg,.75rem);transition:box-shadow .14s,border-color .14s,transform .14s;overflow:visible;box-shadow:0 1px 3px #00000014}.social-pane .social-friends-grid>tr:hover,.social-pane .social-friends-grid>tbody>tr:hover,.social-pane .social-friend-card:hover{border-color:var(--gray-300,#d1d5dc);transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.social-pane .social-friends-grid>tr td,.social-pane .social-friends-grid>tbody>tr td,.social-pane .social-friend-card td{background:var(--color-background,#f8f9fb);box-sizing:border-box}.social-pane .social-friends-grid>tr>td:nth-child(2),.social-pane .social-friends-grid>tbody>tr>td:nth-child(2){width:auto;min-width:0;padding-left:1.4rem}.social-pane .social-friends-grid>tr>td:nth-child(3),.social-pane .social-friends-grid>tbody>tr>td:nth-child(3){vertical-align:top;width:2.5rem;min-width:2.5rem;padding-left:.25rem}.social-pane .social-friends-grid>tr>td:first-child,.social-pane .social-friends-grid>tbody>tr>td:first-child{padding-right:1.2rem}.social-pane .social-friends-grid td>div>div{overflow-wrap:anywhere;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important}.social-pane .social-friends-grid td>div>div button{white-space:normal!important}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child{flex-wrap:wrap;align-items:flex-start;gap:.2rem .4rem;min-width:0;display:flex}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child>span:first-of-type,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child>span:first-of-type{vertical-align:text-top;max-width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow-wrap:anywhere;margin-top:0;margin-bottom:0;display:inline-block;overflow:visible}.social-pane .social-friend-pronouns{margin-left:var(--spacing-xs,.25rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-regular,400);text-align:left;line-height:1.2;display:inline}.social-pane .social-friend-job-org{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;color:var(--color-text-subheading,#101828);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);text-align:left;margin:0;line-height:1.25}.social-pane .social-friend-location{color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-xs,.8125rem);overflow-wrap:anywhere;line-height:1.3}@media (width<=960px){.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%}}.social-pane .social-friends-header{padding:0 var(--spacing-xs,.75rem) var(--spacing-base,.5rem);background-color:var(--gray-100,#f3f4f6);caption-side:top;justify-content:space-between;align-items:center;margin-top:0;display:flex}.social-pane .social-friends-header-title{font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-bold,600);color:var(--color-text-primary,#364153)}.social-pane .social-friends-header-actions{justify-content:flex-end;align-items:center;display:inline-flex}.social-pane .social-friends-header-actions--standalone{align-items:center;gap:var(--spacing-xs,.75rem);justify-content:flex-start;padding:.7rem 1rem 0;display:flex}.social-pane .social-friends-header-dropzone{border-collapse:collapse}.social-pane .social-friends-header-dropzone-cell{padding:0}.social-pane .social-friends-header-hint{color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);line-height:1.4}.social-pane .social-friends-header-actions button{justify-content:center;align-items:center;display:inline-flex;overflow:hidden;border-width:0!important;width:2rem!important;min-width:2rem!important;height:2rem!important;margin:0!important;padding:0!important}.social-pane .social-friends-header-actions button img{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}.social-pane a{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:none}.social-pane a:hover{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:underline}.social-pane a:active{color:var(--color-primary,#7c4dff);text-decoration:none}.social-pane__link-button{white-space:nowrap;width:fit-content;max-width:100%;padding:var(--spacing-xxxs,.2rem) var(--spacing-base,.5rem);text-align:left;background-color:#0000;border:none;margin-top:0;margin-bottom:0;display:inline-flex}.social-pane__link-button>a{white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--color-primary,#7c4dff);background-color:#0000;display:inline-flex}.social-pane__link-button>a:link,.social-pane__link-button>a:visited,.social-pane__link-button>a:hover{color:var(--color-primary,#7c4dff)}.social-pane__link-button>a:hover{text-decoration:underline}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-media{display:contents}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location){text-align:left;justify-content:flex-start;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-primary__tabs,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-primary__tabs{margin-top:-.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-hero,.social-pane__header-hero-icon){aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-pronouns{font-size:.6875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-location,.social-pane__header-stat),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label){display:none!important}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon){justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg){width:.875rem;height:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path){fill:var(--color-text,#1a1a1a);stroke:none}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane .social-layout,.social-pane .social-primary,.social-layout,.social-primary),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-grid,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-friends-grid{display:block}:is(.social-pane-host,.social-pane)[data-input-mode=touch]{--profile-interactive-cursor:auto}:is(.social-pane-host,.social-pane)[data-input-mode=pointer]{--profile-interactive-cursor:pointer}@media (width<=600px){.social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}.social-pane__header-media{display:contents}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}.social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}.social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location{text-align:left;justify-content:flex-start;width:100%}.social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}.social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}.social-pane .social-primary__tabs{margin-top:-.5rem}.social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}.social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}.social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}.social-pane__header-hero,.social-pane__header-hero-icon{aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}.social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}.social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}.social-pane .social-friend-pronouns{font-size:.6875rem}.social-pane__header-location,.social-pane__header-stat,.social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}.social-pane__friend-action{--button-padding-sm:var(--spacing-xxxs,.2rem) var(--spacing-xxs-old,.3rem);--button-font-size-sm:var(--font-size-xs,.813rem);--button-border-radius-sm:var(--border-radius-base,.3125rem)}.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label{display:none!important}.social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon{justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{width:.875rem;height:.875rem}.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-text,#1a1a1a);stroke:none}.social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}.social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}.social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}.social-pane .social-layout,.social-pane .social-primary,.social-pane .social-friends-grid{display:block}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%;margin-bottom:var(--spacing-xs,.75rem);display:table}.social-pane .social-friends-grid>tr:last-child,.social-pane .social-friends-grid>tbody>tr:last-child{margin-bottom:0}.social-pane .social-main{width:100%}}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();require("../_virtual/_rolldown/runtime.cjs.js");const e=require("./icons.cjs.js"),t=require("./socialSections.cjs.js"),n=require("./triage.cjs.js");let r=require("solid-ui"),i=require("solid-logic");function a(e,t){let n=t.environment?.layout??`desktop`,r=t.environment?.theme??`light`,i=t.environment?.inputMode??`pointer`;e.classList.add(`social-pane-host`),e.dataset.layout=n,e.dataset.theme=r,e.dataset.inputMode=i}var o={icon:r.icons.originalIconBase+`foaf/foafTiny.gif`,name:`social`,label:function(e,t){let n=t.session.store.findTypeURIs(e);return n[r.ns.foaf(`Person`).uri]||n[r.ns.vcard(`Individual`).uri]?`Friends`:null},global:!1,render:function(o,s){let c=s.dom,l=function(e,t){let n=[];for(let r=0;r<e.length;r++)for(let i=0;i<t.length;i++)if(t[i].sameTerm(e[r])){n.push(t[i]);break}return n},m=function(e){let t=new Set,n=[];for(let r of e)!r?.value||t.has(r.value)||(t.add(r.value),n.push(r));return n},h=function(e,t){if(!t)return e;let n=c.createElement(`a`);return n.setAttribute(`href`,t),n.appendChild(e),n},ee=function(e){return c.createTextNode(e)},g=function(){},te=function(e,t,n,i={}){let a=c.createElement(`form`),o=c.createElement(`label`),s=c.createElement(`input`),l=c.createElement(`span`);return l.className=`question`,typeof e==`string`?l.textContent=e:l.appendChild(e),s.setAttribute(`type`,`checkbox`),i.disabled&&(s.disabled=!0,i.disabledTitle&&(s.title=i.disabledTitle,s.setAttribute(`aria-label`,i.disabledTitle))),o.appendChild(l),o.appendChild(s),a.appendChild(o),s.checked=n,s.addEventListener(`click`,function(e){if(this.checked)try{_.UserInput.sparqler.insert_statement(t,function(e,n,i){if(l.className=`question`,!n){r.log.alert(`Error occurs while inserting `+t+`
2
2
 
3
3
  `+i),s.checked=!1;return}v.add(t.subject,t.predicate,t.object,t.why),g()})}catch(e){r.log.error(`Data write fails:`+e),r.log.alert(`Data write fails:`+e),s.checked=!1,l.className=`question`}else try{_.UserInput.sparqler.delete_statement(t,function(e,n,i){l.className=`question`,n?(v.removeMany(t.subject,t.predicate,t.object,t.why),g()):(r.log.alert(`Error occurs while deleting `+t+`
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"socialPane2.cjs.js","names":[],"sources":["../../src/social/socialPane.ts"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport './socialPane.css'\nimport { icons, utils, ns, log, widgets } from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport { LiveStore, NamedNode, Statement } from 'rdflib'\nimport { DataBrowserContext } from 'pane-registry'\nimport { locationIcon } from './icons'\nimport {\n createAllFriendsSection,\n createHeaderSection,\n FriendRowRenderers,\n createMutualSection,\n createRequestsSection,\n HeaderControls,\n SocialHeaderElement\n} from './socialSections'\nimport type { ViewerMode } from './socialSections'\nimport { FriendshipTriage, loadFriendshipTriage, triageFriends } from './triage'\n\nfunction applyEnvironmentAttributes (\n element: HTMLElement,\n context: DataBrowserContext\n): void {\n const layout = context.environment?.layout ?? 'desktop'\n const theme = context.environment?.theme ?? 'light'\n const inputMode = context.environment?.inputMode ?? 'pointer'\n\n element.classList.add('social-pane-host')\n element.dataset.layout = layout\n element.dataset.theme = theme\n element.dataset.inputMode = inputMode\n}\n\nexport const socialPane = {\n icon: icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[ns.foaf('Person').uri] ||\n types[ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n global: false,\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x: NamedNode[], y: NamedNode[]) {\n // Find common members of two lists\n const both: NamedNode[] = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const uniqueNodes = function (nodes: NamedNode[]) {\n const seen = new Set<string>()\n const unique: NamedNode[] = []\n for (const node of nodes) {\n if (!node?.value || seen.has(node.value)) continue\n seen.add(node.value)\n unique.push(node)\n }\n return unique\n }\n\n const link = function (contents: Node, uri: string | null | undefined) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str: string) {\n return dom.createTextNode(str)\n }\n\n let refreshRelationshipUi = function () {}\n\n const buildCheckboxForm = function (\n lab: string | Node,\n statement: Statement,\n state: boolean,\n options: { disabled?: boolean, disabledTitle?: string } = {}\n ) {\n const f = dom.createElement('form')\n const label = dom.createElement('label')\n const input = dom.createElement('input')\n const tx = dom.createElement('span')\n tx.className = 'question'\n if (typeof lab === 'string') {\n tx.textContent = lab\n } else {\n tx.appendChild(lab)\n }\n input.setAttribute('type', 'checkbox')\n if (options.disabled) {\n input.disabled = true\n if (options.disabledTitle) {\n input.title = options.disabledTitle\n input.setAttribute('aria-label', options.disabledTitle)\n }\n }\n label.appendChild(tx)\n label.appendChild(input)\n f.appendChild(label)\n const boxHandler = function (this: HTMLInputElement, _e: Event) {\n if (this.checked) {\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n log.alert(\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n refreshRelationshipUi()\n })\n } catch (e) {\n log.error('Data write fails:' + e)\n log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n refreshRelationshipUi()\n }\n })\n } catch (e) {\n log.alert('Delete fails:' + e)\n input.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const socialPane = dom.createElement('div')\n socialPane.classList.add('social-pane', 'flex-column', 'gap-xxs')\n applyEnvironmentAttributes(socialPane, context)\n const foaf = ns.foaf\n const vcard = ns.vcard\n const me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n const uniqueFriends = uniqueNodes(friends as NamedNode[])\n const myFriends = me ? uniqueNodes(kb.each(me, foaf('knows')) as NamedNode[]) : []\n const mutualConnections = me && !thisIsYou\n ? uniqueNodes(common(uniqueFriends, myFriends)).filter(friend => !kb.sameThings(friend, me))\n : []\n const mutualFriendCount = me && !thisIsYou ? mutualConnections.length : null\n const viewerMode = getViewerMode(s, me)\n\n // Do I have a public profile document?\n let profile: NamedNode | null = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming: boolean | NamedNode[] = false\n let outgoing: boolean | NamedNode[] = false\n\n const structure = socialPane.appendChild(dom.createElement('div'))\n structure.className = 'social-layout'\n const primary = structure.appendChild(dom.createElement('div'))\n primary.className = 'social-primary'\n\n const tabs = primary.appendChild(dom.createElement('div'))\n tabs.classList.add('social-primary__tabs', 'flex-center')\n tabs.setAttribute('role', 'tablist')\n tabs.setAttribute('aria-label', 'Social sections')\n\n const allFriendsTab = tabs.appendChild(dom.createElement('button'))\n allFriendsTab.className = 'social-primary__tab'\n allFriendsTab.type = 'button'\n allFriendsTab.id = 'social-tab-all-friends'\n allFriendsTab.textContent = 'All Friends'\n allFriendsTab.setAttribute('role', 'tab')\n allFriendsTab.setAttribute('aria-controls', 'social-panel-all-friends')\n allFriendsTab.setAttribute('aria-selected', 'true')\n allFriendsTab.tabIndex = 0\n\n const mutualTab = tabs.appendChild(dom.createElement('button'))\n mutualTab.className = 'social-primary__tab'\n mutualTab.type = 'button'\n mutualTab.id = 'social-tab-mutual'\n mutualTab.textContent = 'Mutual'\n mutualTab.setAttribute('role', 'tab')\n mutualTab.setAttribute('aria-controls', 'social-panel-mutual')\n mutualTab.setAttribute('aria-selected', 'false')\n mutualTab.tabIndex = -1\n\n if (me) {\n // The definition of FOAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n const doc = works[i]\n editable = outliner.UserInput.sparqler.editable(doc.uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n utils.escapeForXML(doc.uri) +\n '> is not remotely editable.'\n } else {\n profile = doc\n break\n }\n }\n }\n\n /*\n if (!profile) {\n say(\n message + '\\nI couldn\\'t find your editable personal profile document.'\n )\n } else {\n say('Editing your profile ' + profile + '.')\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n */\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n } // About someone else\n } // me is defined\n // End of you and s\n\n const shouldShowHeaderAddFriendAction = (mode: ViewerMode) => {\n return mode === 'authenticated' && !thisIsYou && !outgoing\n }\n\n const canEditOwnedProfile = viewerMode === 'owner' && editable\n const canManageRelationship = viewerMode === 'authenticated' && !thisIsYou && editable && Boolean(profile)\n const canModifyFriendsTab = canEditOwnedProfile\n\n let headerControls: HeaderControls = {\n canEdit: canEditOwnedProfile,\n viewerMode,\n showAddFriendAction: shouldShowHeaderAddFriendAction(viewerMode)\n }\n\n const header = createHeaderSection(context, s, headerControls, {\n friendCount: uniqueFriends.length,\n mutualFriendCount,\n onSelectFriends: function () {\n setActivePanel('all-friends')\n },\n onSelectMutual: typeof mutualFriendCount === 'number'\n ? function () {\n setActivePanel('mutual')\n }\n : undefined\n }, function () {\n return selectProfileData(context, s)\n })\n header.classList.add('social-pane__header-section', 'flex-column')\n socialPane.prepend(header)\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n const friendDetailsByUri = new Map<string, FriendDetails>()\n\n const hydrateFriendDetailsCache = function (friendNodes: NamedNode[]) {\n const nextCache = new Map<string, FriendDetails>()\n\n friendNodes.forEach(friendNode => {\n if (!friendNode?.value || friendNode.value === s.value) return\n nextCache.set(friendNode.value, toFriendDetails(kb, friendNode))\n })\n\n friendDetailsByUri.clear()\n nextCache.forEach((value, key) => {\n friendDetailsByUri.set(key, value)\n })\n }\n\n hydrateFriendDetailsCache(uniqueFriends)\n\n const renderSupportingInfo: FriendRowRenderers['renderSupportingInfo'] = function (target: NamedNode, renderDom: HTMLDocument) {\n const friend = friendDetailsByUri.get(target.value) || toFriendDetails(kb, target)\n friendDetailsByUri.set(target.value, friend)\n\n const container = renderDom.createElement('div')\n const jobAndOrganization = [friend.jobTitle, friend.organization].filter(Boolean).join(' | ')\n if (jobAndOrganization) {\n const jobLine = container.appendChild(renderDom.createElement('div'))\n jobLine.className = 'social-friend-job-org'\n jobLine.textContent = jobAndOrganization\n }\n\n if (friend.location) {\n const locationLine = container.appendChild(renderDom.createElement('div'))\n locationLine.className = 'social-friend-location'\n locationLine.innerHTML = `${locationIcon} ${friend.location}`\n }\n\n if (!container.childNodes.length) return null\n\n return container\n }\n\n const renderNameSuffix: FriendRowRenderers['renderNameSuffix'] = function (target: NamedNode, renderDom: HTMLDocument) {\n const friend = friendDetailsByUri.get(target.value) || toFriendDetails(kb, target)\n friendDetailsByUri.set(target.value, friend)\n const pronouns = friend.pronouns\n if (!pronouns) return null\n\n const suffix = renderDom.createElement('span')\n suffix.className = 'social-friend-pronouns'\n suffix.textContent = `(${pronouns})`\n return suffix\n }\n\n let mutualSection = me && !thisIsYou\n ? createMutualSection({\n dom,\n subject: s,\n familiar,\n me,\n meUri,\n incoming,\n outgoing,\n editable: canManageRelationship,\n profile,\n knows,\n mutualConnections,\n link,\n text,\n buildCheckboxForm,\n renderSupportingInfo,\n renderNameSuffix\n })\n : {\n section: dom.createElement('section'),\n content: dom.createElement('div'),\n refreshMutualFriends: function () {}\n }\n\n let mutualFriends = mutualSection.section\n let mutualContent = mutualSection.content\n if (!mutualFriends.className) {\n mutualFriends.className = 'social-pane__mutual-friends social-primary__panel'\n mutualFriends.id = 'social-panel-mutual'\n mutualFriends.setAttribute('role', 'tabpanel')\n mutualFriends.setAttribute('aria-labelledby', 'social-tab-mutual')\n mutualContent.className = 'social-main social-main--mutual'\n mutualFriends.appendChild(mutualContent)\n }\n primary.appendChild(mutualFriends)\n\n const allFriendsSection = createAllFriendsSection({\n dom,\n subject: s,\n profile: canModifyFriendsTab ? profile : null,\n editable: canModifyFriendsTab,\n renderSupportingInfo,\n renderNameSuffix\n })\n\n const allFriends = allFriendsSection.section\n const friendsList = allFriendsSection.friendsList\n primary.appendChild(allFriends)\n\n let requestsTriage: FriendshipTriage = triageFriends(kb, s)\n const requestsSection = createRequestsSection({\n dom,\n triage: requestsTriage,\n renderSupportingInfo,\n renderNameSuffix\n })\n const requestsPanel = requestsSection.section\n primary.appendChild(requestsPanel)\n\n const requestsTab = tabs.appendChild(dom.createElement('button'))\n requestsTab.className = 'social-primary__tab'\n requestsTab.type = 'button'\n requestsTab.id = 'social-tab-requests'\n requestsTab.textContent = 'Requests'\n requestsTab.setAttribute('role', 'tab')\n requestsTab.setAttribute('aria-controls', 'social-panel-requests')\n requestsTab.setAttribute('aria-selected', 'false')\n requestsTab.tabIndex = -1\n\n type SocialPanel = 'mutual' | 'all-friends' | 'requests'\n let activePanel: SocialPanel = 'all-friends'\n let showRequestsTab = viewerMode === 'owner'\n\n const setActivePanel = function (panel: SocialPanel) {\n activePanel = panel\n const showMutual = panel === 'mutual'\n const showAllFriends = panel === 'all-friends'\n const showRequests = showRequestsTab && panel === 'requests'\n mutualTab.classList.toggle('social-primary__tab--active', showMutual)\n mutualTab.setAttribute('aria-selected', String(showMutual))\n mutualTab.tabIndex = showMutual ? 0 : -1\n\n allFriendsTab.classList.toggle('social-primary__tab--active', showAllFriends)\n allFriendsTab.setAttribute('aria-selected', String(showAllFriends))\n allFriendsTab.tabIndex = showAllFriends ? 0 : -1\n\n requestsTab.classList.toggle('social-primary__tab--active', showRequests)\n requestsTab.setAttribute('aria-selected', String(showRequests))\n requestsTab.tabIndex = showRequests ? 0 : -1\n\n mutualFriends.classList.toggle('social-primary__panel--active', showMutual)\n mutualFriends.setAttribute('aria-hidden', String(!showMutual))\n\n allFriends.classList.toggle('social-primary__panel--active', showAllFriends)\n allFriends.setAttribute('aria-hidden', String(!showAllFriends))\n\n requestsPanel.classList.toggle('social-primary__panel--active', showRequests)\n requestsPanel.setAttribute('aria-hidden', String(!showRequests))\n requestsPanel.hidden = !showRequestsTab || !showRequests\n }\n const rebuildMutualSection = function () {\n if (!me || thisIsYou) return\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n\n const outgoingStatements = kb.statementsMatching(cme, knows, s)\n outgoing = outgoingStatements.length > 0\n\n const nextMutualSection = createMutualSection({\n dom,\n subject: s,\n familiar,\n me,\n meUri,\n incoming,\n outgoing,\n editable: canManageRelationship,\n profile,\n knows,\n mutualConnections,\n link,\n text,\n buildCheckboxForm,\n renderSupportingInfo,\n renderNameSuffix\n })\n\n mutualFriends.replaceWith(nextMutualSection.section)\n mutualSection = nextMutualSection\n mutualFriends = nextMutualSection.section\n mutualContent = nextMutualSection.content\n }\n\n refreshRelationshipUi = function () {\n rebuildMutualSection()\n headerControls = {\n ...headerControls,\n showAddFriendAction: shouldShowHeaderAddFriendAction(headerControls.viewerMode)\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n requestsTriage = triageFriends(kb, s)\n requestsSection.refreshRequests(requestsTriage)\n setActivePanel(activePanel)\n }\n\n setActivePanel('all-friends')\n\n const applyViewerMode = function (mode: ViewerMode) {\n const showMutualTab = mode === 'authenticated' && !thisIsYou\n showRequestsTab = mode === 'owner'\n mutualTab.hidden = !showMutualTab\n requestsTab.hidden = !showRequestsTab\n if (!showRequestsTab && activePanel === 'requests') {\n setActivePanel('all-friends')\n return\n }\n setActivePanel('all-friends')\n }\n\n mutualTab.addEventListener('click', function () {\n setActivePanel('mutual')\n })\n\n allFriendsTab.addEventListener('click', function () {\n setActivePanel('all-friends')\n })\n\n requestsTab.addEventListener('click', function () {\n setActivePanel('requests')\n })\n\n const refreshFriendsList = function () {\n const refresh = (friendsList as HTMLTableElement & { refresh?: () => void }).refresh\n if (typeof refresh !== 'function') return\n\n refresh.call(friendsList)\n }\n\n const refreshMutualFriends = function () {\n mutualSection.refreshMutualFriends()\n }\n\n ;(async () => {\n try {\n for await (const streamedFriends of streamFriends(context, s)) {\n friendDetailsByUri.clear()\n streamedFriends.forEach(friend => {\n friendDetailsByUri.set(friend.url, friend)\n })\n refreshFriendsList()\n refreshMutualFriends()\n }\n } catch {\n // Keep the initial snapshot if async friend loading fails.\n }\n })()\n\n ;(async () => {\n try {\n requestsTriage = await loadFriendshipTriage(context, s)\n requestsSection.refreshRequests(requestsTriage)\n refreshFriendsList()\n refreshMutualFriends()\n } catch {\n // Keep the initial requests snapshot if additional loading fails.\n }\n })()\n\n // Older triage logic is preserved below as a reusable data helper.\n\n applyViewerMode('anonymous')\n\n authn.checkUser()\n .then(webId => {\n const confirmedViewerMode = getViewerMode(s, webId)\n applyViewerMode(confirmedViewerMode)\n const confirmedCanEditOwnedProfile = confirmedViewerMode === 'owner' && editable\n headerControls = {\n ...headerControls,\n canEdit: confirmedCanEditOwnedProfile,\n viewerMode: confirmedViewerMode,\n showAddFriendAction: shouldShowHeaderAddFriendAction(confirmedViewerMode)\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n })\n .catch(() => {\n applyViewerMode('anonymous')\n headerControls = {\n ...headerControls,\n canEdit: false,\n viewerMode: 'anonymous',\n showAddFriendAction: false\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n })\n\n return socialPane\n } // render()\n} //\n// ends\n// ***************** Social Pane Selectors **********/\n/* Should move to another file, but will leave for now */\n/* Will create a social pane folder or maybe repo later */\n\nconst FRIEND_BATCH_SIZE = 3\n\nexport interface ProfileDetails {\n url: string\n imageUrl?: string\n name?: string\n nickname?: string\n jobTitle?: string\n organization?: string\n location?: string | null\n pronouns?: string\n birthdate?: string\n}\n\nexport interface FriendDetails extends ProfileDetails {\n subjectNode: NamedNode\n}\n\n/* pronounsAsText and formatLocation were copied from HeadingSection selectors */\nexport function pronounsAsText (store: LiveStore, subject: NamedNode): string {\n let pronouns = store.anyJS(subject, ns.solid('preferredSubjectPronoun')) || ''\n if (pronouns) {\n const them = store.anyJS(subject, ns.solid('preferredObjectPronoun'))\n if (them) {\n pronouns += '/' + them\n }\n }\n return pronouns || ''\n}\n\nfunction formatLocation (countryName: string | void, locality: string | void) {\n return countryName && locality\n ? `${locality}, ${countryName}`\n : countryName || locality || null\n}\n\nfunction toFriendDetails (store: any, friendNode: NamedNode): FriendDetails {\n const name =\n store.anyValue(friendNode, ns.vcard('fn')) ||\n store.anyValue(friendNode, ns.foaf('name')) ||\n null\n const nickname =\n store.anyValue(friendNode, ns.vcard('nickname')) ||\n store.anyValue(friendNode, ns.foaf('nick')) ||\n null\n const dateOfBirth = store.anyValue(friendNode, ns.vcard('bday')) || null\n const imageSrc = widgets.findImage(friendNode)\n const jobTitle = store.anyValue(friendNode, ns.vcard('role')) || null\n const orgName = store.anyValue(friendNode, ns.vcard('organization-name')) || null\n const primaryAddressEntryNode = store.any(friendNode, ns.vcard('hasAddress')) as NamedNode | null\n const address: NamedNode | null = primaryAddressEntryNode || null\n const countryName =\n address != null\n ? store.anyValue(address, ns.vcard('country-name'))\n : null\n const locality =\n address != null\n ? store.anyValue(address, ns.vcard('locality'))\n : null\n\n const location = formatLocation(countryName, locality)\n const pronouns = pronounsAsText(store, friendNode)\n\n return {\n url: friendNode.value,\n imageUrl: imageSrc,\n name,\n nickname,\n jobTitle,\n organization: orgName,\n birthdate: dateOfBirth,\n location,\n pronouns,\n subjectNode: friendNode\n }\n}\n\nexport async function * streamFriends (\n context: DataBrowserContext,\n subject: NamedNode,\n batchSize = FRIEND_BATCH_SIZE\n): AsyncGenerator<FriendDetails[], void, void> {\n const store = context.session.store\n const fetcher = (store as any)?.fetcher\n\n if (fetcher && typeof fetcher.load === 'function') {\n try {\n await fetcher.load(subject.doc())\n } catch {\n // Continue with whatever is already in the store.\n }\n }\n\n const seen = new Set<string>()\n const friendNodes = store.each(subject, ns.foaf('knows'), null, subject.doc())\n const uniqueFriendNodes: NamedNode[] = []\n\n for (const friendNode of friendNodes) {\n const key = friendNode?.value\n if (!key || seen.has(key) || subject.value === key) continue\n seen.add(key)\n uniqueFriendNodes.push(friendNode as NamedNode)\n }\n\n const friends: FriendDetails[] = []\n\n for (const friendNode of uniqueFriendNodes) {\n if (fetcher && typeof fetcher.load === 'function') {\n try {\n await fetcher.load(friendNode.doc())\n } catch {\n // Keep partial friend data when one linked document fails to load.\n }\n }\n\n friends.push(toFriendDetails(store, friendNode))\n\n if (friends.length % batchSize === 0) {\n yield [...friends]\n }\n }\n\n if (friends.length > 0 && friends.length % batchSize !== 0) {\n yield [...friends]\n }\n}\n\nexport async function extractFriends (context: DataBrowserContext, subject: NamedNode): Promise<FriendDetails[] | null> {\n let latestFriends: FriendDetails[] | null = null\n\n for await (const friends of streamFriends(context, subject)) {\n latestFriends = friends\n }\n\n return latestFriends\n}\n\nexport function selectProfileData (context: DataBrowserContext, subject: NamedNode): ProfileDetails | null {\n const store = context.session.store\n\n const name =\n store.anyValue(subject, ns.vcard('fn')) ||\n store.anyValue(subject, ns.foaf('name')) ||\n undefined\n const nickname =\n store.anyValue(subject, ns.vcard('nickname')) ||\n store.anyValue(subject, ns.foaf('nick')) ||\n undefined\n const dateOfBirth = store.anyValue(subject, ns.vcard('bday')) || undefined\n const imageSrc = widgets.findImage(subject)\n const jobTitle = store.anyValue(subject, ns.vcard('role')) || undefined\n const orgName = store.anyValue(subject, ns.vcard('organization-name')) || undefined\n const primaryAddressEntryNode = store.any(subject, ns.vcard('hasAddress')) as NamedNode | null\n const address: NamedNode | null = primaryAddressEntryNode || null\n const countryName =\n address != null\n ? store.anyValue(address, ns.vcard('country-name'))\n : undefined\n const locality =\n address != null\n ? store.anyValue(address, ns.vcard('locality'))\n : undefined\n\n const location = formatLocation(countryName, locality)\n const pronouns = pronounsAsText(store, subject)\n return {\n url: subject.value,\n imageUrl: imageSrc,\n name,\n nickname,\n jobTitle,\n organization: orgName,\n birthdate: dateOfBirth,\n location,\n pronouns\n }\n}\n\nexport type { ViewerMode } from './socialSections'\n\nfunction getViewerMode (subject: NamedNode, currentUser: unknown = authn.currentUser()): ViewerMode {\n const currentUserUri =\n typeof currentUser === 'string'\n ? currentUser\n : typeof currentUser === 'object' && currentUser !== null\n ? ((currentUser as { value?: string, uri?: string }).value ||\n (currentUser as { value?: string, uri?: string }).uri ||\n null)\n : null\n let mode: ViewerMode = 'anonymous'\n if (currentUserUri === subject.value) mode = 'owner'\n if (currentUserUri && currentUserUri !== subject.value) mode = 'authenticated'\n return mode\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"socialPane2.cjs.js","names":[],"sources":["../../src/social/socialPane.ts"],"sourcesContent":["/* Social Pane\n **\n ** This outline pane provides social network functions\n ** Using for example the FOAF ontology.\n ** Goal: A *distributed* version of facebook, advogato, etc etc\n ** - Similarly easy user interface, but data storage distributed\n ** - Read and write both user-private (address book) and public data clearly\n ** -- todo: use common code to get username and load profile and set 'me'\n */\n\nimport './socialPane.css'\nimport { icons, utils, ns, log, widgets } from 'solid-ui'\nimport { authn } from 'solid-logic'\nimport { LiveStore, NamedNode, Statement } from 'rdflib'\nimport { DataBrowserContext } from 'pane-registry'\nimport { locationIcon } from './icons'\nimport {\n createAllFriendsSection,\n createHeaderSection,\n FriendRowRenderers,\n createMutualSection,\n createRequestsSection,\n HeaderControls,\n SocialHeaderElement\n} from './socialSections'\nimport type { ViewerMode } from './socialSections'\nimport { FriendshipTriage, loadFriendshipTriage, triageFriends } from './triage'\n\nfunction applyEnvironmentAttributes (\n element: HTMLElement,\n context: DataBrowserContext\n): void {\n const layout = context.environment?.layout ?? 'desktop'\n const theme = context.environment?.theme ?? 'light'\n const inputMode = context.environment?.inputMode ?? 'pointer'\n\n element.classList.add('social-pane-host')\n element.dataset.layout = layout\n element.dataset.theme = theme\n element.dataset.inputMode = inputMode\n}\n\nexport const socialPane = {\n icon: icons.originalIconBase + 'foaf/foafTiny.gif',\n\n name: 'social',\n\n label: function (subject, context) {\n const kb = context.session.store\n const types = kb.findTypeURIs(subject)\n if (\n types[ns.foaf('Person').uri] ||\n types[ns.vcard('Individual').uri]\n ) {\n return 'Friends'\n }\n return null\n },\n global: false,\n\n render: function (s, context) {\n const dom = context.dom\n const common = function (x: NamedNode[], y: NamedNode[]) {\n // Find common members of two lists\n const both: NamedNode[] = []\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (y[j].sameTerm(x[i])) {\n both.push(y[j])\n break\n }\n }\n }\n return both\n }\n\n const uniqueNodes = function (nodes: NamedNode[]) {\n const seen = new Set<string>()\n const unique: NamedNode[] = []\n for (const node of nodes) {\n if (!node?.value || seen.has(node.value)) continue\n seen.add(node.value)\n unique.push(node)\n }\n return unique\n }\n\n const link = function (contents: Node, uri: string | null | undefined) {\n if (!uri) return contents\n const a = dom.createElement('a')\n a.setAttribute('href', uri)\n a.appendChild(contents)\n return a\n }\n\n const text = function (str: string) {\n return dom.createTextNode(str)\n }\n\n let refreshRelationshipUi = function () {}\n\n const buildCheckboxForm = function (\n lab: string | Node,\n statement: Statement,\n state: boolean,\n options: { disabled?: boolean, disabledTitle?: string } = {}\n ) {\n const f = dom.createElement('form')\n const label = dom.createElement('label')\n const input = dom.createElement('input')\n const tx = dom.createElement('span')\n tx.className = 'question'\n if (typeof lab === 'string') {\n tx.textContent = lab\n } else {\n tx.appendChild(lab)\n }\n input.setAttribute('type', 'checkbox')\n if (options.disabled) {\n input.disabled = true\n if (options.disabledTitle) {\n input.title = options.disabledTitle\n input.setAttribute('aria-label', options.disabledTitle)\n }\n }\n label.appendChild(tx)\n label.appendChild(input)\n f.appendChild(label)\n const boxHandler = function (this: HTMLInputElement, _e: Event) {\n if (this.checked) {\n try {\n outliner.UserInput.sparqler.insert_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n log.alert(\n 'Error occurs while inserting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = false // rollback UI\n return\n }\n kb.add(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n refreshRelationshipUi()\n })\n } catch (e) {\n log.error('Data write fails:' + e)\n log.alert('Data write fails:' + e)\n input.checked = false // rollback UI\n tx.className = 'question'\n }\n } else {\n try {\n outliner.UserInput.sparqler.delete_statement(statement, function (\n uri,\n success,\n errorBody\n ) {\n tx.className = 'question'\n if (!success) {\n log.alert(\n 'Error occurs while deleting ' +\n statement +\n '\\n\\n' +\n errorBody\n )\n input.checked = true // Rollback UI\n } else {\n kb.removeMany(\n statement.subject,\n statement.predicate,\n statement.object,\n statement.why\n )\n refreshRelationshipUi()\n }\n })\n } catch (e) {\n log.alert('Delete fails:' + e)\n input.checked = true // Rollback UI\n // return\n }\n }\n }\n input.checked = state\n input.addEventListener('click', boxHandler, false)\n return f\n }\n\n // ////////// Body of render():\n\n const outliner = context.getOutliner(dom)\n const kb = context.session.store\n const socialPane = dom.createElement('div')\n socialPane.classList.add('social-pane', 'flex-column', 'gap-xxs')\n applyEnvironmentAttributes(socialPane, context)\n const foaf = ns.foaf\n const vcard = ns.vcard\n const me = authn.currentUser()\n const meUri = me ? me.uri : null\n\n const thisIsYou = me && kb.sameThings(me, s)\n\n const knows = foaf('knows')\n // var givenName = kb.sym('http://www.w3.org/2000/10/swap/pim/contact#givenName')\n const familiar =\n kb.anyValue(s, foaf('givenname')) ||\n kb.anyValue(s, foaf('firstName')) ||\n kb.anyValue(s, foaf('nick')) ||\n kb.anyValue(s, foaf('name')) ||\n kb.anyValue(s, vcard('fn'))\n const friends = kb.each(s, knows)\n const uniqueFriends = uniqueNodes(friends as NamedNode[])\n const myFriends = me ? uniqueNodes(kb.each(me, foaf('knows')) as NamedNode[]) : []\n const mutualConnections = me && !thisIsYou\n ? uniqueNodes(common(uniqueFriends, myFriends)).filter(friend => !kb.sameThings(friend, me))\n : []\n const mutualFriendCount = me && !thisIsYou ? mutualConnections.length : null\n const viewerMode = getViewerMode(s, me)\n\n // Do I have a public profile document?\n let profile: NamedNode | null = null // This could be SPARQL { ?me foaf:primaryTopic [ a foaf:PersonalProfileDocument ] }\n let editable = false\n let incoming: boolean | NamedNode[] = false\n let outgoing: boolean | NamedNode[] = false\n\n const structure = socialPane.appendChild(dom.createElement('div'))\n structure.className = 'social-layout'\n const primary = structure.appendChild(dom.createElement('div'))\n primary.className = 'social-primary'\n\n const tabs = primary.appendChild(dom.createElement('div'))\n tabs.classList.add('social-primary__tabs', 'flex-center')\n tabs.setAttribute('role', 'tablist')\n tabs.setAttribute('aria-label', 'Social sections')\n\n const allFriendsTab = tabs.appendChild(dom.createElement('button'))\n allFriendsTab.className = 'social-primary__tab'\n allFriendsTab.type = 'button'\n allFriendsTab.id = 'social-tab-all-friends'\n allFriendsTab.textContent = 'All Friends'\n allFriendsTab.setAttribute('role', 'tab')\n allFriendsTab.setAttribute('aria-controls', 'social-panel-all-friends')\n allFriendsTab.setAttribute('aria-selected', 'true')\n allFriendsTab.tabIndex = 0\n\n const mutualTab = tabs.appendChild(dom.createElement('button'))\n mutualTab.className = 'social-primary__tab'\n mutualTab.type = 'button'\n mutualTab.id = 'social-tab-mutual'\n mutualTab.textContent = 'Mutual'\n mutualTab.setAttribute('role', 'tab')\n mutualTab.setAttribute('aria-controls', 'social-panel-mutual')\n mutualTab.setAttribute('aria-selected', 'false')\n mutualTab.tabIndex = -1\n\n if (me) {\n // The definition of FOAF personal profile document is ..\n const works = kb.each(undefined, foaf('primaryTopic'), me) // having me as primary topic\n let message = ''\n for (let i = 0; i < works.length; i++) {\n if (\n kb.whether(\n works[i],\n ns.rdf('type'),\n foaf('PersonalProfileDocument')\n )\n ) {\n const doc = works[i]\n editable = outliner.UserInput.sparqler.editable(doc.uri, kb)\n if (!editable) {\n message +=\n 'Your profile <' +\n utils.escapeForXML(doc.uri) +\n '> is not remotely editable.'\n } else {\n profile = doc\n break\n }\n }\n }\n\n /*\n if (!profile) {\n say(\n message + '\\nI couldn\\'t find your editable personal profile document.'\n )\n } else {\n say('Editing your profile ' + profile + '.')\n editable = outliner.UserInput.sparqler.editable(profile.uri, kb)\n }\n */\n\n if (thisIsYou) {\n // This is about me\n // pass... @@\n } else {\n // This is about someone else\n // My relationship with this person\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n outgoing = false\n const outgoingSt = kb.statementsMatching(cme, knows, s)\n if (outgoingSt.length) {\n outgoing = true\n if (!profile) profile = outgoingSt[0].why\n }\n } // About someone else\n } // me is defined\n // End of you and s\n\n const shouldShowHeaderAddFriendAction = (mode: ViewerMode) => {\n return mode === 'authenticated' && !thisIsYou && !outgoing\n }\n\n const canEditOwnedProfile = viewerMode === 'owner' && editable\n const canManageRelationship = viewerMode === 'authenticated' && !thisIsYou && editable && Boolean(profile)\n const canModifyFriendsTab = canEditOwnedProfile\n\n let headerControls: HeaderControls = {\n canEdit: canEditOwnedProfile,\n viewerMode,\n showAddFriendAction: shouldShowHeaderAddFriendAction(viewerMode)\n }\n\n const header = createHeaderSection(context, s, headerControls, {\n friendCount: uniqueFriends.length,\n mutualFriendCount,\n onSelectFriends: function () {\n setActivePanel('all-friends')\n },\n onSelectMutual: typeof mutualFriendCount === 'number'\n ? function () {\n setActivePanel('mutual')\n }\n : undefined\n }, function () {\n return selectProfileData(context, s)\n })\n header.classList.add('social-pane__header-section', 'flex-column')\n socialPane.prepend(header)\n\n // div.appendChild(dom.createTextNode(plural(friends.length, 'acquaintance') +'. '))\n\n // ///////////////////////////////////////////// Main block\n //\n // Should: Find the intersection and difference sets\n\n const friendDetailsByUri = new Map<string, FriendDetails>()\n\n const hydrateFriendDetailsCache = function (friendNodes: NamedNode[]) {\n const nextCache = new Map<string, FriendDetails>()\n\n friendNodes.forEach(friendNode => {\n if (!friendNode?.value || friendNode.value === s.value) return\n nextCache.set(friendNode.value, toFriendDetails(kb, friendNode))\n })\n\n friendDetailsByUri.clear()\n nextCache.forEach((value, key) => {\n friendDetailsByUri.set(key, value)\n })\n }\n\n hydrateFriendDetailsCache(uniqueFriends)\n\n const renderSupportingInfo: FriendRowRenderers['renderSupportingInfo'] = function (target: NamedNode, renderDom: HTMLDocument) {\n const friend = friendDetailsByUri.get(target.value) || toFriendDetails(kb, target)\n friendDetailsByUri.set(target.value, friend)\n\n const container = renderDom.createElement('div')\n const jobAndOrganization = [friend.jobTitle, friend.organization].filter(Boolean).join(' | ')\n if (jobAndOrganization) {\n const jobLine = container.appendChild(renderDom.createElement('div'))\n jobLine.className = 'social-friend-job-org'\n jobLine.textContent = jobAndOrganization\n }\n\n if (friend.location) {\n const locationLine = container.appendChild(renderDom.createElement('div'))\n locationLine.className = 'social-friend-location'\n locationLine.innerHTML = `${locationIcon} ${friend.location}`\n }\n\n if (!container.childNodes.length) return null\n\n return container\n }\n\n const renderNameSuffix: FriendRowRenderers['renderNameSuffix'] = function (target: NamedNode, renderDom: HTMLDocument) {\n const friend = friendDetailsByUri.get(target.value) || toFriendDetails(kb, target)\n friendDetailsByUri.set(target.value, friend)\n const pronouns = friend.pronouns\n if (!pronouns) return null\n\n const suffix = renderDom.createElement('span')\n suffix.className = 'social-friend-pronouns'\n suffix.textContent = `(${pronouns})`\n return suffix\n }\n\n let mutualSection = me && !thisIsYou\n ? createMutualSection({\n dom,\n subject: s,\n familiar,\n me,\n meUri,\n incoming,\n outgoing,\n editable: canManageRelationship,\n profile,\n knows,\n mutualConnections,\n link,\n text,\n buildCheckboxForm,\n renderSupportingInfo,\n renderNameSuffix\n })\n : {\n section: dom.createElement('section'),\n content: dom.createElement('div'),\n refreshMutualFriends: function () {}\n }\n\n let mutualFriends = mutualSection.section\n let mutualContent = mutualSection.content\n if (!mutualFriends.className) {\n mutualFriends.className = 'social-pane__mutual-friends social-primary__panel'\n mutualFriends.id = 'social-panel-mutual'\n mutualFriends.setAttribute('role', 'tabpanel')\n mutualFriends.setAttribute('aria-labelledby', 'social-tab-mutual')\n mutualContent.className = 'social-main social-main--mutual'\n mutualFriends.appendChild(mutualContent)\n }\n primary.appendChild(mutualFriends)\n\n const allFriendsSection = createAllFriendsSection({\n dom,\n subject: s,\n profile: canModifyFriendsTab ? profile : null,\n editable: canModifyFriendsTab,\n renderSupportingInfo,\n renderNameSuffix\n })\n\n const allFriends = allFriendsSection.section\n const friendsList = allFriendsSection.friendsList\n primary.appendChild(allFriends)\n\n let requestsTriage: FriendshipTriage = triageFriends(kb, s)\n const requestsSection = createRequestsSection({\n dom,\n triage: requestsTriage,\n renderSupportingInfo,\n renderNameSuffix\n })\n const requestsPanel = requestsSection.section\n primary.appendChild(requestsPanel)\n\n const requestsTab = tabs.appendChild(dom.createElement('button'))\n requestsTab.className = 'social-primary__tab'\n requestsTab.type = 'button'\n requestsTab.id = 'social-tab-requests'\n requestsTab.textContent = 'Requests'\n requestsTab.setAttribute('role', 'tab')\n requestsTab.setAttribute('aria-controls', 'social-panel-requests')\n requestsTab.setAttribute('aria-selected', 'false')\n requestsTab.tabIndex = -1\n\n type SocialPanel = 'mutual' | 'all-friends' | 'requests'\n let activePanel: SocialPanel = 'all-friends'\n let showRequestsTab = viewerMode === 'owner'\n\n const setActivePanel = function (panel: SocialPanel) {\n activePanel = panel\n const showMutual = panel === 'mutual'\n const showAllFriends = panel === 'all-friends'\n const showRequests = showRequestsTab && panel === 'requests'\n mutualTab.classList.toggle('social-primary__tab--active', showMutual)\n mutualTab.setAttribute('aria-selected', String(showMutual))\n mutualTab.tabIndex = showMutual ? 0 : -1\n\n allFriendsTab.classList.toggle('social-primary__tab--active', showAllFriends)\n allFriendsTab.setAttribute('aria-selected', String(showAllFriends))\n allFriendsTab.tabIndex = showAllFriends ? 0 : -1\n\n requestsTab.classList.toggle('social-primary__tab--active', showRequests)\n requestsTab.setAttribute('aria-selected', String(showRequests))\n requestsTab.tabIndex = showRequests ? 0 : -1\n\n mutualFriends.classList.toggle('social-primary__panel--active', showMutual)\n mutualFriends.setAttribute('aria-hidden', String(!showMutual))\n\n allFriends.classList.toggle('social-primary__panel--active', showAllFriends)\n allFriends.setAttribute('aria-hidden', String(!showAllFriends))\n\n requestsPanel.classList.toggle('social-primary__panel--active', showRequests)\n requestsPanel.setAttribute('aria-hidden', String(!showRequests))\n requestsPanel.hidden = !showRequestsTab || !showRequests\n }\n const rebuildMutualSection = function () {\n if (!me || thisIsYou) return\n\n const cme = kb.canon(me)\n incoming = kb.whether(s, knows, cme)\n\n const outgoingStatements = kb.statementsMatching(cme, knows, s)\n outgoing = outgoingStatements.length > 0\n\n const nextMutualSection = createMutualSection({\n dom,\n subject: s,\n familiar,\n me,\n meUri,\n incoming,\n outgoing,\n editable: canManageRelationship,\n profile,\n knows,\n mutualConnections,\n link,\n text,\n buildCheckboxForm,\n renderSupportingInfo,\n renderNameSuffix\n })\n\n mutualFriends.replaceWith(nextMutualSection.section)\n mutualSection = nextMutualSection\n mutualFriends = nextMutualSection.section\n mutualContent = nextMutualSection.content\n }\n\n refreshRelationshipUi = function () {\n rebuildMutualSection()\n headerControls = {\n ...headerControls,\n showAddFriendAction: shouldShowHeaderAddFriendAction(headerControls.viewerMode)\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n requestsTriage = triageFriends(kb, s)\n requestsSection.refreshRequests(requestsTriage)\n setActivePanel(activePanel)\n }\n\n setActivePanel('all-friends')\n\n const applyViewerMode = function (mode: ViewerMode) {\n const showMutualTab = mode === 'authenticated' && !thisIsYou\n showRequestsTab = mode === 'owner'\n mutualTab.hidden = !showMutualTab\n requestsTab.hidden = !showRequestsTab\n if (!showRequestsTab && activePanel === 'requests') {\n setActivePanel('all-friends')\n return\n }\n setActivePanel('all-friends')\n }\n\n mutualTab.addEventListener('click', function () {\n setActivePanel('mutual')\n })\n\n allFriendsTab.addEventListener('click', function () {\n setActivePanel('all-friends')\n })\n\n requestsTab.addEventListener('click', function () {\n setActivePanel('requests')\n })\n\n const refreshFriendsList = function () {\n const refresh = (friendsList as HTMLTableElement & { refresh?: () => void }).refresh\n if (typeof refresh !== 'function') return\n\n refresh.call(friendsList)\n }\n\n const refreshMutualFriends = function () {\n mutualSection.refreshMutualFriends()\n }\n\n ;(async () => {\n try {\n for await (const streamedFriends of streamFriends(context, s)) {\n friendDetailsByUri.clear()\n streamedFriends.forEach(friend => {\n friendDetailsByUri.set(friend.url, friend)\n })\n refreshFriendsList()\n refreshMutualFriends()\n }\n } catch {\n // Keep the initial snapshot if async friend loading fails.\n }\n })()\n\n ;(async () => {\n try {\n requestsTriage = await loadFriendshipTriage(context, s)\n requestsSection.refreshRequests(requestsTriage)\n refreshFriendsList()\n refreshMutualFriends()\n } catch {\n // Keep the initial requests snapshot if additional loading fails.\n }\n })()\n\n // Older triage logic is preserved below as a reusable data helper.\n\n applyViewerMode('anonymous')\n\n authn.checkUser()\n .then(webId => {\n const confirmedViewerMode = getViewerMode(s, webId)\n applyViewerMode(confirmedViewerMode)\n const confirmedCanEditOwnedProfile = confirmedViewerMode === 'owner' && editable\n headerControls = {\n ...headerControls,\n canEdit: confirmedCanEditOwnedProfile,\n viewerMode: confirmedViewerMode,\n showAddFriendAction: shouldShowHeaderAddFriendAction(confirmedViewerMode)\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n })\n .catch(() => {\n applyViewerMode('anonymous')\n headerControls = {\n ...headerControls,\n canEdit: false,\n viewerMode: 'anonymous',\n showAddFriendAction: false\n }\n ;(header as SocialHeaderElement).refreshSocialHeader?.(headerControls)\n })\n\n return socialPane\n } // render()\n} //\n// ends\n// ***************** Social Pane Selectors **********/\n/* Should move to another file, but will leave for now */\n/* Will create a social pane folder or maybe repo later */\n\nconst FRIEND_BATCH_SIZE = 3\n\nexport interface ProfileDetails {\n url: string\n imageUrl?: string\n name?: string\n nickname?: string\n jobTitle?: string\n organization?: string\n location?: string | null\n pronouns?: string\n birthdate?: string\n}\n\nexport interface FriendDetails extends ProfileDetails {\n subjectNode: NamedNode\n}\n\n/* pronounsAsText and formatLocation were copied from HeadingSection selectors */\nexport function pronounsAsText (store: LiveStore, subject: NamedNode): string {\n let pronouns = store.anyJS(subject, ns.solid('preferredSubjectPronoun')) || ''\n if (pronouns) {\n const them = store.anyJS(subject, ns.solid('preferredObjectPronoun'))\n if (them) {\n pronouns += '/' + them\n }\n }\n return pronouns || ''\n}\n\nfunction formatLocation (countryName: string | void, locality: string | void) {\n return countryName && locality\n ? `${locality}, ${countryName}`\n : countryName || locality || null\n}\n\nfunction toFriendDetails (store: any, friendNode: NamedNode): FriendDetails {\n const name =\n store.anyValue(friendNode, ns.vcard('fn')) ||\n store.anyValue(friendNode, ns.foaf('name')) ||\n null\n const nickname =\n store.anyValue(friendNode, ns.vcard('nickname')) ||\n store.anyValue(friendNode, ns.foaf('nick')) ||\n null\n const dateOfBirth = store.anyValue(friendNode, ns.vcard('bday')) || null\n const imageSrc = widgets.findImage(friendNode)\n const jobTitle = store.anyValue(friendNode, ns.vcard('role')) || null\n const orgName = store.anyValue(friendNode, ns.vcard('organization-name')) || null\n const primaryAddressEntryNode = store.any(friendNode, ns.vcard('hasAddress')) as NamedNode | null\n const address: NamedNode | null = primaryAddressEntryNode || null\n const countryName =\n address != null\n ? store.anyValue(address, ns.vcard('country-name'))\n : null\n const locality =\n address != null\n ? store.anyValue(address, ns.vcard('locality'))\n : null\n\n const location = formatLocation(countryName, locality)\n const pronouns = pronounsAsText(store, friendNode)\n\n return {\n url: friendNode.value,\n imageUrl: imageSrc,\n name,\n nickname,\n jobTitle,\n organization: orgName,\n birthdate: dateOfBirth,\n location,\n pronouns,\n subjectNode: friendNode\n }\n}\n\nexport async function * streamFriends (\n context: DataBrowserContext,\n subject: NamedNode,\n batchSize = FRIEND_BATCH_SIZE\n): AsyncGenerator<FriendDetails[], void, void> {\n const store = context.session.store\n const fetcher = (store as any)?.fetcher\n\n if (fetcher && typeof fetcher.load === 'function') {\n try {\n await fetcher.load(subject.doc())\n } catch {\n // Continue with whatever is already in the store.\n }\n }\n\n const seen = new Set<string>()\n const friendNodes = store.each(subject, ns.foaf('knows'), null, subject.doc())\n const uniqueFriendNodes: NamedNode[] = []\n\n for (const friendNode of friendNodes) {\n const key = friendNode?.value\n if (!key || seen.has(key) || subject.value === key) continue\n seen.add(key)\n uniqueFriendNodes.push(friendNode as NamedNode)\n }\n\n const friends: FriendDetails[] = []\n\n for (const friendNode of uniqueFriendNodes) {\n if (fetcher && typeof fetcher.load === 'function') {\n try {\n await fetcher.load(friendNode.doc())\n } catch {\n // Keep partial friend data when one linked document fails to load.\n }\n }\n\n friends.push(toFriendDetails(store, friendNode))\n\n if (friends.length % batchSize === 0) {\n yield [...friends]\n }\n }\n\n if (friends.length > 0 && friends.length % batchSize !== 0) {\n yield [...friends]\n }\n}\n\nexport async function extractFriends (context: DataBrowserContext, subject: NamedNode): Promise<FriendDetails[] | null> {\n let latestFriends: FriendDetails[] | null = null\n\n for await (const friends of streamFriends(context, subject)) {\n latestFriends = friends\n }\n\n return latestFriends\n}\n\nexport function selectProfileData (context: DataBrowserContext, subject: NamedNode): ProfileDetails | null {\n const store = context.session.store\n\n const name =\n store.anyValue(subject, ns.vcard('fn')) ||\n store.anyValue(subject, ns.foaf('name')) ||\n undefined\n const nickname =\n store.anyValue(subject, ns.vcard('nickname')) ||\n store.anyValue(subject, ns.foaf('nick')) ||\n undefined\n const dateOfBirth = store.anyValue(subject, ns.vcard('bday')) || undefined\n const imageSrc = widgets.findImage(subject)\n const jobTitle = store.anyValue(subject, ns.vcard('role')) || undefined\n const orgName = store.anyValue(subject, ns.vcard('organization-name')) || undefined\n const primaryAddressEntryNode = store.any(subject, ns.vcard('hasAddress')) as NamedNode | null\n const address: NamedNode | null = primaryAddressEntryNode || null\n const countryName =\n address != null\n ? store.anyValue(address, ns.vcard('country-name'))\n : undefined\n const locality =\n address != null\n ? store.anyValue(address, ns.vcard('locality'))\n : undefined\n\n const location = formatLocation(countryName, locality)\n const pronouns = pronounsAsText(store, subject)\n return {\n url: subject.value,\n imageUrl: imageSrc,\n name,\n nickname,\n jobTitle,\n organization: orgName,\n birthdate: dateOfBirth,\n location,\n pronouns\n }\n}\n\nexport type { ViewerMode } from './socialSections'\n\nfunction getViewerMode (subject: NamedNode, currentUser: unknown = authn.currentUser()): ViewerMode {\n const currentUserUri =\n typeof currentUser === 'string'\n ? currentUser\n : typeof currentUser === 'object' && currentUser !== null\n ? ((currentUser as { value?: string, uri?: string }).value ||\n (currentUser as { value?: string, uri?: string }).uri ||\n null)\n : null\n let mode: ViewerMode = 'anonymous'\n if (currentUserUri === subject.value) mode = 'owner'\n if (currentUserUri && currentUserUri !== subject.value) mode = 'authenticated'\n return mode\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.social-pane-host,.social-pane{--profile-interactive-cursor:pointer;background:var(--color-background,#f8f9fb);border-radius:var(--border-radius-base,.3125rem);box-sizing:border-box;width:100%;min-width:100%;max-width:none;margin:0;display:block;overflow:visible}.social-pane__header-content{align-items:flex-start;column-gap:var(--spacing-md,1.25rem);row-gap:var(--spacing-xxs,.3125rem);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.social-pane__header-media{grid-area:1/1}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;min-width:0;display:flex}.social-pane__header-actions{place-self:flex-start end;align-items:flex-start;gap:var(--spacing-xs,.5rem);flex-wrap:wrap;grid-area:1/3;margin-left:auto;display:flex}.social-pane__header-actions--friend{justify-content:center}.social-pane__header-actions--friend>solid-ui-button{--button-border-radius:var(--border-radius-md,.5rem);--button-hover-text:var(--color-primary,#7c4dff);--button-hover-border:var(--color-primary,#7c4dff);margin-inline:auto}.social-pane__header-summary{align-items:flex-start;gap:var(--spacing-xxs,.125rem);flex-direction:column;width:100%;max-width:100%;display:flex}.social-pane__header-stats{gap:var(--spacing-xs,.75rem);margin-top:var(--spacing-xxs,.3125rem);flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;display:flex}.social-pane__header-stat{appearance:none;cursor:var(--profile-interactive-cursor,pointer);color:var(--slate-700,#314158);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight,1.4);background:0 0;border:0;padding:0;text-decoration:none}.social-pane__header-stat+.social-pane__header-stat:before{content:"◆";color:var(--gray-400,#99a1af);margin-right:var(--spacing-xs,.75rem);vertical-align:middle;font-size:.5rem}.social-pane__header-stat:hover .social-pane__header-stat-label{text-decoration:underline}.social-pane__header-stat:focus-visible{outline:var(--border-width-medium,2px) solid #111827;outline-offset:2px}.social-pane__edit-button{--button-height-sm:0;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-font-size-sm:var(--font-size-sm,.875rem);--button-font-weight:var(--font-weight-regular,400);--button-line-height:var(--line-height-base,1.5);--button-icon-size-sm:.875rem;width:auto;min-width:0;max-width:none;display:inline-block;position:static}.social-pane__edit-button::part(button):hover{text-decoration:underline}.social-pane__edit-button::part(button):focus-visible{outline:var(--border-width-medium,2px) solid var(--color-primary,#7c4dff);outline-offset:2px}.social-pane__edit-button-label{align-items:center;gap:var(--spacing-xxs,.3125rem);display:inline-flex}.social-pane__edit-button .profile-section-collapsible__edit-icon,.social-pane__edit-button-icon{line-height:0;display:none}.social-pane__edit-button-label svg,.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{vertical-align:middle;flex:none;width:.875rem;height:.875rem;display:inline-block}.social-pane__edit-button-label svg path,.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-primary,#7c4dff);stroke:none}.social-pane__dialog-backdrop{z-index:1000;background:#0f172a73;padding:1rem;position:fixed;inset:0}.social-pane__dialog{background:var(--white,#fff);width:min(32rem,100%);max-height:calc(100vh - 2rem);color:var(--color-text,#111827);padding:var(--spacing-md,1.25rem);border-radius:1rem;position:relative;overflow:auto;box-shadow:0 20px 45px #0f172a40}.social-pane__dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md,1rem);padding-bottom:var(--spacing-base,.5rem);margin-bottom:var(--spacing-sm,.938rem);border-bottom:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);display:flex}.social-pane__dialog-title{margin:0 0 var(--spacing-base,.5rem)}.social-pane__dialog-close{--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;color:var(--color-text-subheading,#6b7280);cursor:pointer;flex:none;padding:0;line-height:0}.social-pane__dialog-close:hover{color:var(--color-text-primary,#364153)}.social-pane__dialog-close:focus-visible{outline:var(--border-width-medium,2px) solid var(--color-text-primary,#364153);outline-offset:2px}.social-pane__dialog-close svg{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem)}.social-pane__dialog-close svg path{fill:currentColor}.social-pane__dialog-form{gap:var(--spacing-sm,.938rem)}.social-pane__dialog-fields{gap:var(--spacing-sm,.938rem);flex-direction:column;display:flex}.social-pane__dialog-field{gap:.2rem}.social-pane__dialog-field-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs,.75rem);display:flex}.social-pane__dialog-row-list{flex-direction:column;gap:.2rem;display:flex}.social-pane__dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.social-pane__dialog-label{color:var(--gray-700,#364153);font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-md,500);margin:0;line-height:normal}.social-pane__dialog-input{box-sizing:border-box;resize:none;width:100%;min-height:auto}.social-pane__dialog-error{min-height:1.25rem;color:var(--color-warning,red);margin:0}.social-pane__dialog-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.social-pane__dialog-saving-overlay[hidden]{display:none}.social-pane__dialog.modal--saving .social-pane__dialog-form{opacity:.45;pointer-events:none}.social-pane__dialog .modal__saving-indicator{gap:0}.social-pane__dialog-row-button-icon{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.social-pane__dialog-row-button-icon svg{display:block}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add{box-sizing:border-box;--button-min-height:auto;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-height-sm:auto;--button-font-weight:var(--font-weight-md,500);--button-font-size-sm:var(--font-size-sm,.875rem);--button-line-height:var(--line-height-base,1.5);flex:none;justify-self:flex-start;width:auto;min-width:0;max-width:none;margin-left:auto}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){min-height:auto;padding:var(--spacing-xxs,.3125rem);color:var(--color-primary,#7c4dff);font-weight:var(--font-weight-md,500);background:0 0;border:none}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add:hover::part(button){text-decoration:underline}.social-pane__add-more-content{display:inline}.social-pane__add-more-inline{white-space:normal;display:inline}.social-pane__add-more-icon{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem);margin-right:var(--spacing-xxs,.3125rem);vertical-align:text-top;line-height:0;display:inline-block}.social-pane__add-more-icon svg{width:100%;height:100%;display:block}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove{min-height:var(--min-touch-target,44px);min-width:var(--min-touch-target,44px);color:var(--gray-300,#d1d5dc);--button-background:transparent;--button-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;--button-border:transparent;--button-border-width:0;--button-border-radius:var(--border-radius-base,.3125rem);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-primary,#7c4dff);--button-hover-box-shadow:none;--button-text:currentColor;--button-height-md:var(--min-touch-target,44px);--button-padding-md:0;--button-padding-x-sm:0;--button-icon-size-md:var(--icon-xxs,1rem);--button-icon-size-lg:var(--icon-xxs,1rem)}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:hover,.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:focus-within{color:var(--gray-300,#d1d5dc)}.social-pane__dialog-row-button-icon--remove svg{width:1rem;height:1rem}.social-pane__dialog-row-button-icon--remove svg path{stroke:currentColor}.social-pane__dialog-actions{justify-content:flex-end;gap:var(--spacing-xs,.75rem);padding-top:var(--spacing-base,.5rem);border-top:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);margin-top:0;display:flex}.social-pane__dialog-actions>solid-ui-button{--button-border-width:1px;--button-border-radius:var(--border-radius-base,.3125rem);--button-box-shadow:none;--button-hover-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;width:10.8rem}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--save{--button-font-size-md:var(--font-size-lg,1.125rem);--button-background:var(--color-primary,#7c4dff);--button-border:var(--color-primary,#7c4dff);--button-text:var(--white,#fff);--button-hover-background:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-border:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-text:var(--white,#fff)}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--cancel{--button-background:var(--white,#fff);--button-border:var(--gray-300,#d1d5dc);--button-font-weight:var(--font-weight-normal,normal);--button-text:var(--gray-800,#1e2939);--button-hover-background:var(--blue-900,#083575);--button-hover-border:var(--blue-900,#083575);--button-hover-text:var(--white,#fff);--button-font-size-md:var(--font-size-sm,.875rem)}.social-pane__header-name{color:var(--color-text-heading,#000);font-size:var(--font-size-xxl,1.75rem);font-weight:var(--font-weight-bold,600);text-indent:0;text-align:left;overflow-wrap:anywhere;margin:0;padding:0;line-height:1.2;transform:translate(-4px)}.social-pane__header-location{align-items:center;gap:var(--spacing-2xs,.625rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-normal,400);line-height:1.2;display:inline-flex}.social-pane__header-job-org{color:var(--color-text-subheading,#101828);white-space:normal;width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-md,500);text-align:left;margin:0;line-height:1.25}.social-pane__header-location-icon{line-height:0}.social-pane__header-location-icon svg{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem)}.social-profile-links{grid-template-columns:repeat(2,max-content);align-items:start;gap:.15rem 1rem;display:grid}.social-pane__header-hero{border-radius:var(--border-radius-full,.625rem);border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--gray-200,#e5e7eb) 50% / cover no-repeat;object-fit:cover;object-position:center;background-position:50%;width:140px;height:140px}.social-pane__header-hero-icon{border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--color-card-bg);flex-shrink:0;width:140px;height:140px;line-height:0;border-radius:var(--border-radius-full,.625rem)!important}.social-pane__header-hero-icon svg{width:100%;height:100%;display:block}.social-pane .social-layout{align-items:flex-start;gap:1rem;width:100%;display:flex}.social-pane .social-primary{flex:70%;grid-template-rows:auto minmax(0,auto);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-width:0;display:grid}.social-pane .social-primary__tabs{align-items:center;gap:var(--spacing-base,.5rem);z-index:1;background:0 0;grid-area:1/1;width:fit-content;max-width:100%;margin-bottom:0;padding:0;display:flex;position:relative}.social-pane .social-primary__tab{appearance:none;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;color:#374151;cursor:pointer;font:inherit;font-weight:var(--font-weight-bold,600);padding:var(--spacing-2xs,.625rem) 1rem;background:0 0;border-radius:0;transition:background-color .12s,color .12s,box-shadow .12s;box-shadow:none!important}.social-pane .social-primary__tab:hover{color:var(--grey-purple-900,#332746);background:var(--lavender-300,#e6dcff)!important;box-shadow:none!important}.social-pane .social-primary__tab[aria-selected=true],.social-pane .social-primary__tab--active{color:var(--grey-purple-900,#332746);border-bottom-color:var(--color-primary,#7c4dff);background:0 0;box-shadow:none!important}.social-pane .social-primary__tab:focus-visible{outline-offset:2px;outline:none;box-shadow:none!important}.social-pane .social-primary__panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:2/1;transition:opacity .16s,transform .16s,visibility 0s linear .16s;display:none;transform:translateY(.35rem)}.social-pane .social-primary__panel--active{opacity:1;visibility:visible;pointer-events:auto;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;transition:opacity .18s,transform .18s;display:block;transform:translateY(0)}.social-pane .social-pane__mutual-friends,.social-pane .social-pane__all-friends{padding-top:var(--spacing-xxxs,.2rem);margin-top:0}.social-pane .social-main{background-color:var(--color-card-bg,#fff);color:var(--color-text-primary,#364153);box-sizing:border-box;border-collapse:collapse;border:0;width:100%;padding:0;display:table}.social-pane .social-main--mutual{gap:var(--spacing-xs,.75rem);border-radius:var(--border-radius-lg,.75rem);margin-top:1em;margin-bottom:1em;padding:1rem}.social-pane .social-main--requests{gap:var(--spacing-md,1rem);border-radius:var(--border-radius-lg,.75rem);flex-direction:column;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.social-requests__note{color:var(--color-text-subheading,#475467);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__group{gap:var(--spacing-sm,.938rem)}.social-requests__group-header{flex-direction:column;gap:.125rem;display:flex}.social-requests__group-title{color:var(--color-text-heading,#101828);font-size:var(--font-size-lg,1.125rem);margin:0;line-height:1.25}.social-requests__group-description,.social-requests__empty{color:var(--color-text-subheading,#667085);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__table{margin-top:0}.social-pane .social-mutual-summary{gap:var(--spacing-base,.5rem)}.social-pane .social-mutual-summary-line{color:var(--slate-700,#314158);font-size:var(--font-size-sm,.95rem);line-height:var(--line-height-base,1.5);justify-content:flex-start;padding:1rem}.social-pane .social-mutual-summary-line--action{gap:var(--spacing-xxs,.75rem);flex-wrap:wrap}.social-pane .social-mutual-confirm-prompt{align-items:center;gap:var(--spacing-xxxs,.2rem);font-weight:var(--font-weight-semibold,600);flex-wrap:wrap;display:inline-flex}.social-pane .social-pane__friend-action--inline{z-index:auto;align-self:flex-start;position:static;top:auto;right:auto}.social-pane .social-mutual-checkbox-form{margin:0;padding:0 1rem 1rem;display:block}.social-pane .social-mutual-checkbox-form label{align-items:center;gap:var(--spacing-2xs,.65rem);color:var(--slate-700,#374151);font-size:var(--font-size-sm,.875rem);flex-wrap:wrap;line-height:1.4;display:inline-flex}.social-pane .social-mutual-checkbox-form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary,#7c4dff);margin:0}.social-pane .social-mutual-checkbox-form input[type=checkbox]:disabled{opacity:.65;cursor:not-allowed}.social-pane .social-friends-list{width:100%;margin-top:0}.social-pane .social-friends-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tbody{align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{table-layout:fixed;box-sizing:border-box;width:calc(50% - .375rem);display:inline-table}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr,.social-pane .social-friend-card{border:1px solid var(--gray-200,#e5e7eb);background:var(--white,#fff);border-radius:var(--border-radius-lg,.75rem);transition:box-shadow .14s,border-color .14s,transform .14s;overflow:visible;box-shadow:0 1px 3px #00000014}.social-pane .social-friends-grid>tr:hover,.social-pane .social-friends-grid>tbody>tr:hover,.social-pane .social-friend-card:hover{border-color:var(--gray-300,#d1d5dc);transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.social-pane .social-friends-grid>tr td,.social-pane .social-friends-grid>tbody>tr td,.social-pane .social-friend-card td{background:var(--color-background,#f8f9fb);box-sizing:border-box}.social-pane .social-friends-grid>tr>td:nth-child(2),.social-pane .social-friends-grid>tbody>tr>td:nth-child(2){width:auto;min-width:0;padding-left:1.4rem}.social-pane .social-friends-grid>tr>td:nth-child(3),.social-pane .social-friends-grid>tbody>tr>td:nth-child(3){vertical-align:top;width:2.5rem;min-width:2.5rem;padding-left:.25rem}.social-pane .social-friends-grid>tr>td:first-child,.social-pane .social-friends-grid>tbody>tr>td:first-child{padding-right:1.2rem}.social-pane .social-friends-grid td>div>div{overflow-wrap:anywhere;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important}.social-pane .social-friends-grid td>div>div button{white-space:normal!important}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child{flex-wrap:wrap;align-items:flex-start;gap:.2rem .4rem;min-width:0;display:flex}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child>span:first-of-type,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child>span:first-of-type{vertical-align:text-top;max-width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow-wrap:anywhere;margin-top:0;margin-bottom:0;display:inline-block;overflow:visible}.social-pane .social-friend-pronouns{margin-left:var(--spacing-xs,.25rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-regular,400);text-align:left;line-height:1.2;display:inline}.social-pane .social-friend-job-org{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;color:var(--color-text-subheading,#101828);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);text-align:left;margin:0;line-height:1.25}.social-pane .social-friend-location{color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-xs,.8125rem);overflow-wrap:anywhere;line-height:1.3}@media (width<=960px){.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%}}.social-pane .social-friends-header{padding:0 var(--spacing-xs,.75rem) var(--spacing-base,.5rem);background-color:var(--gray-100,#f3f4f6);caption-side:top;justify-content:space-between;align-items:center;margin-top:0;display:flex}.social-pane .social-friends-header-title{font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-bold,600);color:var(--color-text-primary,#364153)}.social-pane .social-friends-header-actions{justify-content:flex-end;align-items:center;display:inline-flex}.social-pane .social-friends-header-actions--standalone{align-items:center;gap:var(--spacing-xs,.75rem);justify-content:flex-start;padding:.7rem 1rem 0;display:flex}.social-pane .social-friends-header-dropzone{border-collapse:collapse}.social-pane .social-friends-header-dropzone-cell{padding:0}.social-pane .social-friends-header-hint{color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);line-height:1.4}.social-pane .social-friends-header-actions button{justify-content:center;align-items:center;display:inline-flex;overflow:hidden;border-width:0!important;width:2rem!important;min-width:2rem!important;height:2rem!important;margin:0!important;padding:0!important}.social-pane .social-friends-header-actions button img{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}div.social-pane{margin:0;padding-top:0;padding-bottom:0}.social-pane a{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:none}.social-pane a:hover{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:underline}.social-pane a:active{color:var(--color-primary,#7c4dff);text-decoration:none}.social-pane__link-button{white-space:nowrap;width:fit-content;max-width:100%;padding:var(--spacing-xxxs,.2rem) var(--spacing-base,.5rem);text-align:left;background-color:#0000;border:none;margin-top:0;margin-bottom:0;display:inline-flex}.social-pane__link-button>a{white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--color-primary,#7c4dff);background-color:#0000;display:inline-flex}.social-pane__link-button>a:link,.social-pane__link-button>a:visited,.social-pane__link-button>a:hover{color:var(--color-primary,#7c4dff)}.social-pane__link-button>a:hover{text-decoration:underline}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-media{display:contents}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location){text-align:left;justify-content:flex-start;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-primary__tabs,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-primary__tabs{margin-top:-.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-hero,.social-pane__header-hero-icon){aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-pronouns{font-size:.6875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-location,.social-pane__header-stat),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label){display:none!important}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon){justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg){width:.875rem;height:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path){fill:var(--color-text,#1a1a1a);stroke:none}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane .social-layout,.social-pane .social-primary,.social-layout,.social-primary),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-grid,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-friends-grid{display:block}:is(.social-pane-host,.social-pane)[data-input-mode=touch]{--profile-interactive-cursor:auto}:is(.social-pane-host,.social-pane)[data-input-mode=pointer]{--profile-interactive-cursor:pointer}@media (width<=600px){.social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}.social-pane__header-media{display:contents}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}.social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}.social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location{text-align:left;justify-content:flex-start;width:100%}.social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}.social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}.social-pane .social-primary__tabs{margin-top:-.5rem}.social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}.social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}.social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}.social-pane__header-hero,.social-pane__header-hero-icon{aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}.social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}.social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}.social-pane .social-friend-pronouns{font-size:.6875rem}.social-pane__header-location,.social-pane__header-stat,.social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}.social-pane__friend-action{--button-padding-sm:var(--spacing-xxxs,.2rem) var(--spacing-xxs-old,.3rem);--button-font-size-sm:var(--font-size-xs,.813rem);--button-border-radius-sm:var(--border-radius-base,.3125rem)}.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label{display:none!important}.social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon{justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{width:.875rem;height:.875rem}.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-text,#1a1a1a);stroke:none}.social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}.social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}.social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}.social-pane .social-layout,.social-pane .social-primary,.social-pane .social-friends-grid{display:block}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%;margin-bottom:var(--spacing-xs,.75rem);display:table}.social-pane .social-friends-grid>tr:last-child,.social-pane .social-friends-grid>tbody>tr:last-child{margin-bottom:0}.social-pane .social-main{width:100%}}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
1
+ (function(){try{if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`.social-pane-host,.social-pane{--profile-interactive-cursor:pointer;background:var(--color-background,#f8f9fb);border-radius:var(--border-radius-base,.3125rem);box-sizing:border-box;width:100%;min-width:100%;max-width:none;margin-top:20px;display:block;overflow:visible}.social-pane__header-content{align-items:flex-start;column-gap:var(--spacing-md,1.25rem);row-gap:var(--spacing-xxs,.3125rem);grid-template-columns:auto minmax(0,1fr) auto;width:100%;min-width:0;display:grid}.social-pane__header-media{grid-area:1/1}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;min-width:0;display:flex}.social-pane__header-actions{place-self:flex-start end;align-items:flex-start;gap:var(--spacing-xs,.5rem);flex-wrap:wrap;grid-area:1/3;margin-left:auto;display:flex}.social-pane__header-actions--friend{justify-content:center}.social-pane__header-actions--friend>solid-ui-button{--button-border-radius:var(--border-radius-md,.5rem);--button-hover-text:var(--color-primary,#7c4dff);--button-hover-border:var(--color-primary,#7c4dff);margin-inline:auto}.social-pane__header-summary{align-items:flex-start;gap:var(--spacing-xxs,.125rem);flex-direction:column;width:100%;max-width:100%;display:flex}.social-pane__header-stats{gap:var(--spacing-xs,.75rem);margin-top:var(--spacing-xxs,.3125rem);flex-wrap:wrap;justify-content:flex-start;align-self:flex-start;display:flex}.social-pane__header-stat{appearance:none;cursor:var(--profile-interactive-cursor,pointer);color:var(--slate-700,#314158);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight,1.4);background:0 0;border:0;padding:0;text-decoration:none}.social-pane__header-stat+.social-pane__header-stat:before{content:"◆";color:var(--gray-400,#99a1af);margin-right:var(--spacing-xs,.75rem);vertical-align:middle;font-size:.5rem}.social-pane__header-stat:hover .social-pane__header-stat-label{text-decoration:underline}.social-pane__header-stat:focus-visible{outline:var(--border-width-medium,2px) solid #111827;outline-offset:2px}.social-pane__edit-button{--button-height-sm:0;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-font-size-sm:var(--font-size-sm,.875rem);--button-font-weight:var(--font-weight-regular,400);--button-line-height:var(--line-height-base,1.5);--button-icon-size-sm:.875rem;width:auto;min-width:0;max-width:none;display:inline-block;position:static}.social-pane__edit-button::part(button):hover{text-decoration:underline}.social-pane__edit-button::part(button):focus-visible{outline:var(--border-width-medium,2px) solid var(--color-primary,#7c4dff);outline-offset:2px}.social-pane__edit-button-label{align-items:center;gap:var(--spacing-xxs,.3125rem);display:inline-flex}.social-pane__edit-button .profile-section-collapsible__edit-icon,.social-pane__edit-button-icon{line-height:0;display:none}.social-pane__edit-button-label svg,.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{vertical-align:middle;flex:none;width:.875rem;height:.875rem;display:inline-block}.social-pane__edit-button-label svg path,.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-primary,#7c4dff);stroke:none}.social-pane__dialog-backdrop{z-index:1000;background:#0f172a73;padding:1rem;position:fixed;inset:0}.social-pane__dialog{background:var(--white,#fff);width:min(32rem,100%);max-height:calc(100vh - 2rem);color:var(--color-text,#111827);padding:var(--spacing-md,1.25rem);border-radius:1rem;position:relative;overflow:auto;box-shadow:0 20px 45px #0f172a40}.social-pane__dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md,1rem);padding-bottom:var(--spacing-base,.5rem);margin-bottom:var(--spacing-sm,.938rem);border-bottom:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);display:flex}.social-pane__dialog-title{margin:0 0 var(--spacing-base,.5rem)}.social-pane__dialog-close{--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;color:var(--color-text-subheading,#6b7280);cursor:pointer;flex:none;padding:0;line-height:0}.social-pane__dialog-close:hover{color:var(--color-text-primary,#364153)}.social-pane__dialog-close:focus-visible{outline:var(--border-width-medium,2px) solid var(--color-text-primary,#364153);outline-offset:2px}.social-pane__dialog-close svg{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem)}.social-pane__dialog-close svg path{fill:currentColor}.social-pane__dialog-form{gap:var(--spacing-sm,.938rem)}.social-pane__dialog-fields{gap:var(--spacing-sm,.938rem);flex-direction:column;display:flex}.social-pane__dialog-field{gap:.2rem}.social-pane__dialog-field-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs,.75rem);display:flex}.social-pane__dialog-row-list{flex-direction:column;gap:.2rem;display:flex}.social-pane__dialog-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.social-pane__dialog-label{color:var(--gray-700,#364153);font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-md,500);margin:0;line-height:normal}.social-pane__dialog-input{box-sizing:border-box;resize:none;width:100%;min-height:auto}.social-pane__dialog-error{min-height:1.25rem;color:var(--color-warning,red);margin:0}.social-pane__dialog-saving-overlay{z-index:10;background:#ffffffc7;place-items:center;display:grid;position:absolute;inset:0}.social-pane__dialog-saving-overlay[hidden]{display:none}.social-pane__dialog.modal--saving .social-pane__dialog-form{opacity:.45;pointer-events:none}.social-pane__dialog .modal__saving-indicator{gap:0}.social-pane__dialog-row-button-icon{flex:none;justify-content:center;align-items:center;line-height:0;display:inline-flex}.social-pane__dialog-row-button-icon svg{display:block}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add{box-sizing:border-box;--button-min-height:auto;--button-padding-sm:var(--spacing-xxs,.3125rem);--button-background:transparent;--button-border:transparent;--button-border-width:0;--button-hover-background:transparent;--button-hover-border:transparent;--button-text:var(--color-primary,#7c4dff);--button-hover-text:var(--color-primary,#7c4dff);--button-height-sm:auto;--button-font-weight:var(--font-weight-md,500);--button-font-size-sm:var(--font-size-sm,.875rem);--button-line-height:var(--line-height-base,1.5);flex:none;justify-self:flex-start;width:auto;min-width:0;max-width:none;margin-left:auto}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){min-height:auto;padding:var(--spacing-xxs,.3125rem);color:var(--color-primary,#7c4dff);font-weight:var(--font-weight-md,500);background:0 0;border:none}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add:hover::part(button){text-decoration:underline}.social-pane__add-more-content{display:inline}.social-pane__add-more-inline{white-space:normal;display:inline}.social-pane__add-more-icon{width:var(--icon-xxxs,.75rem);height:var(--icon-xxxs,.75rem);margin-right:var(--spacing-xxs,.3125rem);vertical-align:text-top;line-height:0;display:inline-block}.social-pane__add-more-icon svg{width:100%;height:100%;display:block}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove{min-height:var(--min-touch-target,44px);min-width:var(--min-touch-target,44px);color:var(--gray-300,#d1d5dc);--button-background:transparent;--button-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;--button-border:transparent;--button-border-width:0;--button-border-radius:var(--border-radius-base,.3125rem);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-primary,#7c4dff);--button-hover-box-shadow:none;--button-text:currentColor;--button-height-md:var(--min-touch-target,44px);--button-padding-md:0;--button-padding-x-sm:0;--button-icon-size-md:var(--icon-xxs,1rem);--button-icon-size-lg:var(--icon-xxs,1rem)}.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:hover,.social-pane__dialog-row-list solid-ui-button.social-pane__dialog-row-button--remove:focus-within{color:var(--gray-300,#d1d5dc)}.social-pane__dialog-row-button-icon--remove svg{width:1rem;height:1rem}.social-pane__dialog-row-button-icon--remove svg path{stroke:currentColor}.social-pane__dialog-actions{justify-content:flex-end;gap:var(--spacing-xs,.75rem);padding-top:var(--spacing-base,.5rem);border-top:var(--border-width-sm,.1rem) solid var(--slate-200,#e2e8f0);margin-top:0;display:flex}.social-pane__dialog-actions>solid-ui-button{--button-border-width:1px;--button-border-radius:var(--border-radius-base,.3125rem);--button-box-shadow:none;--button-hover-box-shadow:none;--button-active-box-shadow:none;--button-active-transform:none;width:10.8rem}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--save{--button-font-size-md:var(--font-size-lg,1.125rem);--button-background:var(--color-primary,#7c4dff);--button-border:var(--color-primary,#7c4dff);--button-text:var(--white,#fff);--button-hover-background:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-border:color-mix(in srgb, var(--color-primary,#7c4dff) 90%, black);--button-hover-text:var(--white,#fff)}.social-pane__dialog-actions solid-ui-button.social-pane__dialog-button--cancel{--button-background:var(--white,#fff);--button-border:var(--gray-300,#d1d5dc);--button-font-weight:var(--font-weight-normal,normal);--button-text:var(--gray-800,#1e2939);--button-hover-background:var(--blue-900,#083575);--button-hover-border:var(--blue-900,#083575);--button-hover-text:var(--white,#fff);--button-font-size-md:var(--font-size-sm,.875rem)}.social-pane__header-name{color:var(--color-text-heading,#000);font-size:var(--font-size-xxl,1.75rem);font-weight:var(--font-weight-bold,600);text-indent:0;text-align:left;overflow-wrap:anywhere;margin:0;padding:0;line-height:1.2;transform:translate(-4px)}.social-pane__header-location{align-items:center;gap:var(--spacing-2xs,.625rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-normal,400);line-height:1.2;display:inline-flex}.social-pane__header-job-org{color:var(--color-text-subheading,#101828);white-space:normal;width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-md,500);text-align:left;margin:0;line-height:1.25}.social-pane__header-location-icon{line-height:0}.social-pane__header-location-icon svg{width:var(--icon-xxs,1rem);height:var(--icon-xxs,1rem)}.social-profile-links{grid-template-columns:repeat(2,max-content);align-items:start;gap:.15rem 1rem;display:grid}.social-pane__header-hero{border-radius:var(--border-radius-full,.625rem);border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--gray-200,#e5e7eb) 50% / cover no-repeat;object-fit:cover;object-position:center;background-position:50%;width:140px;height:140px}.social-pane__header-hero-icon{border:var(--border-width-sm,.1rem) solid var(--color-primary,#7c4dff);background:var(--color-card-bg);flex-shrink:0;width:140px;height:140px;line-height:0;border-radius:var(--border-radius-full,.625rem)!important}.social-pane__header-hero-icon svg{width:100%;height:100%;display:block}.social-pane .social-layout{align-items:flex-start;gap:1rem;width:100%;display:flex}.social-pane .social-primary{flex:70%;grid-template-rows:auto minmax(0,auto);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;min-width:0;display:grid}.social-pane .social-primary__tabs{align-items:center;gap:var(--spacing-base,.5rem);z-index:1;background:0 0;grid-area:1/1;width:fit-content;max-width:100%;margin-bottom:0;padding:0;display:flex;position:relative}.social-pane .social-primary__tab{appearance:none;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;color:#374151;cursor:pointer;font:inherit;font-weight:var(--font-weight-bold,600);padding:var(--spacing-2xs,.625rem) 1rem;background:0 0;border-radius:0;transition:background-color .12s,color .12s,box-shadow .12s;box-shadow:none!important}.social-pane .social-primary__tab:hover{color:var(--grey-purple-900,#332746);background:var(--lavender-300,#e6dcff)!important;box-shadow:none!important}.social-pane .social-primary__tab[aria-selected=true],.social-pane .social-primary__tab--active{color:var(--grey-purple-900,#332746);border-bottom-color:var(--color-primary,#7c4dff);background:0 0;box-shadow:none!important}.social-pane .social-primary__tab:focus-visible{outline-offset:2px;outline:none;box-shadow:none!important}.social-pane .social-primary__panel{opacity:0;visibility:hidden;pointer-events:none;grid-area:2/1;transition:opacity .16s,transform .16s,visibility 0s linear .16s;display:none;transform:translateY(.35rem)}.social-pane .social-primary__panel--active{opacity:1;visibility:visible;pointer-events:auto;border:0;border-bottom:var(--border-width-sm,.1rem) solid transparent;transition:opacity .18s,transform .18s;display:block;transform:translateY(0)}.social-pane .social-pane__mutual-friends,.social-pane .social-pane__all-friends{padding-top:var(--spacing-xxxs,.2rem);margin-top:0}.social-pane .social-main{background-color:var(--color-card-bg,#fff);color:var(--color-text-primary,#364153);box-sizing:border-box;border-collapse:collapse;border:0;width:100%;padding:0;display:table}.social-pane .social-main--mutual{gap:var(--spacing-xs,.75rem);border-radius:var(--border-radius-lg,.75rem);margin-top:1em;margin-bottom:1em;padding:1rem}.social-pane .social-main--requests{gap:var(--spacing-md,1rem);border-radius:var(--border-radius-lg,.75rem);flex-direction:column;margin-top:.75rem;margin-bottom:1rem;padding:1rem;display:flex}.social-requests__note{color:var(--color-text-subheading,#475467);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__group{gap:var(--spacing-sm,.938rem)}.social-requests__group-header{flex-direction:column;gap:.125rem;display:flex}.social-requests__group-title{color:var(--color-text-heading,#101828);font-size:var(--font-size-lg,1.125rem);margin:0;line-height:1.25}.social-requests__group-description,.social-requests__empty{color:var(--color-text-subheading,#667085);font-size:var(--font-size-sm,.875rem);margin:0;line-height:1.5}.social-requests__table{margin-top:0}.social-pane .social-mutual-summary{gap:var(--spacing-base,.5rem)}.social-pane .social-mutual-summary-line{color:var(--slate-700,#314158);font-size:var(--font-size-sm,.95rem);line-height:var(--line-height-base,1.5);justify-content:flex-start;padding:1rem}.social-pane .social-mutual-summary-line--action{gap:var(--spacing-xxs,.75rem);flex-wrap:wrap}.social-pane .social-mutual-confirm-prompt{align-items:center;gap:var(--spacing-xxxs,.2rem);font-weight:var(--font-weight-semibold,600);flex-wrap:wrap;display:inline-flex}.social-pane .social-pane__friend-action--inline{z-index:auto;align-self:flex-start;position:static;top:auto;right:auto}.social-pane .social-mutual-checkbox-form{margin:0;padding:0 1rem 1rem;display:block}.social-pane .social-mutual-checkbox-form label{align-items:center;gap:var(--spacing-2xs,.65rem);color:var(--slate-700,#374151);font-size:var(--font-size-sm,.875rem);flex-wrap:wrap;line-height:1.4;display:inline-flex}.social-pane .social-mutual-checkbox-form input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary,#7c4dff);margin:0}.social-pane .social-mutual-checkbox-form input[type=checkbox]:disabled{opacity:.65;cursor:not-allowed}.social-pane .social-friends-list{width:100%;margin-top:0}.social-pane .social-friends-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tbody{align-items:stretch;gap:var(--spacing-xs,.75rem);flex-wrap:wrap;width:100%;display:flex}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{table-layout:fixed;box-sizing:border-box;width:calc(50% - .375rem);display:inline-table}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr,.social-pane .social-friend-card{border:1px solid var(--gray-200,#e5e7eb);background:var(--white,#fff);border-radius:var(--border-radius-lg,.75rem);transition:box-shadow .14s,border-color .14s,transform .14s;overflow:visible;box-shadow:0 1px 3px #00000014}.social-pane .social-friends-grid>tr:hover,.social-pane .social-friends-grid>tbody>tr:hover,.social-pane .social-friend-card:hover{border-color:var(--gray-300,#d1d5dc);transform:translateY(-1px);box-shadow:0 6px 18px #0000001a}.social-pane .social-friends-grid>tr td,.social-pane .social-friends-grid>tbody>tr td,.social-pane .social-friend-card td{background:var(--color-background,#f8f9fb);box-sizing:border-box}.social-pane .social-friends-grid>tr>td:nth-child(2),.social-pane .social-friends-grid>tbody>tr>td:nth-child(2){width:auto;min-width:0;padding-left:1.4rem}.social-pane .social-friends-grid>tr>td:nth-child(3),.social-pane .social-friends-grid>tbody>tr>td:nth-child(3){vertical-align:top;width:2.5rem;min-width:2.5rem;padding-left:.25rem}.social-pane .social-friends-grid>tr>td:first-child,.social-pane .social-friends-grid>tbody>tr>td:first-child{padding-right:1.2rem}.social-pane .social-friends-grid td>div>div{overflow-wrap:anywhere;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important}.social-pane .social-friends-grid td>div>div button{white-space:normal!important}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child{flex-wrap:wrap;align-items:flex-start;gap:.2rem .4rem;min-width:0;display:flex}.social-pane .social-friends-grid>tr>td:nth-child(2)>div:first-child>span:first-of-type,.social-pane .social-friends-grid>tbody>tr>td:nth-child(2)>div:first-child>span:first-of-type{vertical-align:text-top;max-width:100%;font-size:var(--font-size-lg,1.125rem);font-weight:var(--font-weight-bold,600);line-height:var(--line-height-tight);text-overflow:clip;white-space:normal;overflow-wrap:anywhere;margin-top:0;margin-bottom:0;display:inline-block;overflow:visible}.social-pane .social-friend-pronouns{margin-left:var(--spacing-xs,.25rem);color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-regular,400);text-align:left;line-height:1.2;display:inline}.social-pane .social-friend-job-org{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0;color:var(--color-text-subheading,#101828);font-size:var(--font-size-sm,.875rem);font-weight:var(--font-weight-medium,500);text-align:left;margin:0;line-height:1.25}.social-pane .social-friend-location{color:var(--color-text-secondary,#6b7280);font-size:var(--font-size-xs,.8125rem);overflow-wrap:anywhere;line-height:1.3}@media (width<=960px){.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%}}.social-pane .social-friends-header{padding:0 var(--spacing-xs,.75rem) var(--spacing-base,.5rem);background-color:var(--gray-100,#f3f4f6);caption-side:top;justify-content:space-between;align-items:center;margin-top:0;display:flex}.social-pane .social-friends-header-title{font-size:var(--font-size-md,1rem);font-weight:var(--font-weight-bold,600);color:var(--color-text-primary,#364153)}.social-pane .social-friends-header-actions{justify-content:flex-end;align-items:center;display:inline-flex}.social-pane .social-friends-header-actions--standalone{align-items:center;gap:var(--spacing-xs,.75rem);justify-content:flex-start;padding:.7rem 1rem 0;display:flex}.social-pane .social-friends-header-dropzone{border-collapse:collapse}.social-pane .social-friends-header-dropzone-cell{padding:0}.social-pane .social-friends-header-hint{color:var(--color-text-secondary,#4a5565);font-size:var(--font-size-sm,.875rem);line-height:1.4}.social-pane .social-friends-header-actions button{justify-content:center;align-items:center;display:inline-flex;overflow:hidden;border-width:0!important;width:2rem!important;min-width:2rem!important;height:2rem!important;margin:0!important;padding:0!important}.social-pane .social-friends-header-actions button img{object-fit:contain;pointer-events:none;display:block;width:100%!important;height:100%!important}.social-pane a{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:none}.social-pane a:hover{color:var(--color-primary,#7c4dff);font-weight:700;text-decoration:underline}.social-pane a:active{color:var(--color-primary,#7c4dff);text-decoration:none}.social-pane__link-button{white-space:nowrap;width:fit-content;max-width:100%;padding:var(--spacing-xxxs,.2rem) var(--spacing-base,.5rem);text-align:left;background-color:#0000;border:none;margin-top:0;margin-bottom:0;display:inline-flex}.social-pane__link-button>a{white-space:normal;overflow-wrap:anywhere;max-width:100%;color:var(--color-primary,#7c4dff);background-color:#0000;display:inline-flex}.social-pane__link-button>a:link,.social-pane__link-button>a:visited,.social-pane__link-button>a:hover{color:var(--color-primary,#7c4dff)}.social-pane__link-button>a:hover{text-decoration:underline}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-media{display:contents}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location){text-align:left;justify-content:flex-start;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-primary__tabs,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-primary__tabs{margin-top:-.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-hero,.social-pane__header-hero-icon){aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-pronouns{font-size:.6875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__header-location,.social-pane__header-stat),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label){display:none!important}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon){justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg){width:.875rem;height:.875rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path){fill:var(--color-text,#1a1a1a);stroke:none}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}:is(.social-pane-host,.social-pane)[data-layout=mobile] :is(.social-pane .social-layout,.social-pane .social-primary,.social-layout,.social-primary),:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-pane .social-friends-grid,:is(.social-pane-host,.social-pane)[data-layout=mobile] .social-friends-grid{display:block}:is(.social-pane-host,.social-pane)[data-input-mode=touch]{--profile-interactive-cursor:auto}:is(.social-pane-host,.social-pane)[data-input-mode=pointer]{--profile-interactive-cursor:pointer}@media (width<=600px){.social-pane__header-content{align-items:start;column-gap:var(--spacing-md,1rem);grid-template-columns:4.375rem minmax(0,1fr) auto;row-gap:.25rem;padding:1rem 1rem 0;display:grid}.social-pane__header-media{display:contents}.social-pane__header-details{flex-direction:column;grid-area:1/2;align-items:flex-start;gap:.125rem;min-width:0;display:flex}.social-pane__header-actions{justify-content:flex-end;justify-self:end;gap:var(--spacing-2xs,.3125rem);grid-area:1/3;width:auto;margin-left:0}.social-pane__header-actions--friend{grid-area:3/1/auto/-1;justify-content:center;justify-self:stretch;width:100%;margin-top:.125rem;margin-left:0}.social-pane__header-summary{flex-direction:column;gap:0;width:100%;display:flex}.social-pane__header-name,.social-pane__header-job-org,.social-pane__header-location{text-align:left;justify-content:flex-start;width:100%}.social-pane__header-stats{justify-content:flex-start;align-self:flex-start;gap:var(--spacing-xs,.5rem);width:100%;margin-top:-.4375rem}.social-profile-links{row-gap:var(--spacing-xxxs,.2rem);grid-area:2/1/auto/-1;grid-template-columns:1fr;justify-items:start;margin-top:-.375rem;padding-left:0}.social-pane .social-primary__tabs{margin-top:-.5rem}.social-pane__link-button{justify-self:start;padding-left:0;padding-right:0}.social-pane__link-button>a{font-size:var(--font-size-sm,.875rem);text-align:left}.social-pane__dialog-field-header{grid-template-columns:minmax(0,1fr)}.social-pane__header-hero,.social-pane__header-hero-icon{aspect-ratio:1;grid-area:1/1;width:5rem;height:5rem}.social-pane__header-name{font-size:var(--font-size-xl,1.375rem);line-height:1.15}.social-pane__header-job-org{font-size:var(--font-size-md,1rem);line-height:1.25}.social-pane .social-friend-pronouns{font-size:.6875rem}.social-pane__header-location,.social-pane__header-stat,.social-pane .social-friend-location{font-size:var(--font-size-xxs,.75rem)}.social-pane__friend-action{--button-padding-sm:var(--spacing-xxxs,.2rem) var(--spacing-xxs-old,.3rem);--button-font-size-sm:var(--font-size-xs,.813rem);--button-border-radius-sm:var(--border-radius-base,.3125rem)}.social-pane__edit-button-label,.social-pane__edit-button .profile-section-collapsible__edit-label{display:none!important}.social-pane__edit-button{--button-background:transparent;--button-border-width:0;--button-border:transparent;--button-text:var(--color-text,#1a1a1a);--button-hover-background:var(--lavender-300,#e6dcff);--button-hover-border:transparent;--button-hover-text:var(--color-text,#1a1a1a);--button-font-size-sm:clamp(.9rem, 2.1vw, 1rem);--button-font-weight:var(--font-weight-regular,400);--button-icon-size-sm:.875rem}.social-pane__edit-button-icon,.social-pane__edit-button .profile-section-collapsible__edit-icon{justify-content:center;align-items:center;width:.875rem;height:.875rem;line-height:0;display:inline-flex}.social-pane__edit-button-icon svg,.social-pane__edit-button .profile-section-collapsible__edit-icon svg{width:.875rem;height:.875rem}.social-pane__edit-button-icon svg path,.social-pane__edit-button .profile-section-collapsible__edit-icon svg path{fill:var(--color-text,#1a1a1a);stroke:none}.social-pane__dialog-actions{justify-content:center;align-items:center;gap:var(--spacing-sm,.938rem);padding:var(--spacing-md,1rem) 0 0;margin:var(--spacing-md,1rem) auto 0;box-sizing:border-box;flex-direction:row;width:100%}.social-pane__dialog-actions>solid-ui-button{flex:none;width:10.8rem;min-width:8.5rem}.social-pane__dialog-field-header solid-ui-button.social-pane__dialog-row-button--add::part(button){font-size:var(--font-size-sm,.875rem);line-height:var(--line-height-base,1.5)}.social-pane .social-friends-header-actions--standalone{gap:var(--spacing-2xs,.625rem);flex-wrap:wrap;padding-top:.35rem}.social-pane .social-layout,.social-pane .social-primary,.social-pane .social-friends-grid{display:block}.social-pane .social-friends-grid>tr,.social-pane .social-friends-grid>tbody>tr{width:100%;margin-bottom:var(--spacing-xs,.75rem);display:table}.social-pane .social-friends-grid>tr:last-child,.social-pane .social-friends-grid>tbody>tr:last-child{margin-bottom:0}.social-pane .social-main{width:100%}}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
2
2
  import { locationIcon as e } from "./icons.esm.js";
3
3
  import { createAllFriendsSection as t, createHeaderSection as n, createMutualSection as r, createRequestsSection as i } from "./socialSections.esm.js";
4
4
  import { loadFriendshipTriage as a, triageFriends as o } from "./triage.esm.js";
@@ -1,2 +1,2 @@
1
- const e=require("./icons.cjs.js");require("./editProfileDetails.cjs.js");let t=require("solid-ui"),n=require("rdflib"),r=require("profile-pane");function i(n,i,o,s,c){let l=n.dom;n.session.store;let u=l.createElement(`header`);u.className=`social-pane__header`;let d=o,f=function(){u.replaceChildren();let o=c(),f=l.createElement(`div`);f.className=`social-pane__header-content`;let p=l.createElement(`div`);if(p.className=`social-pane__header-actions profile__actions profile__heading-actions`,!d.canEdit&&d.viewerMode===`authenticated`&&d.showAddFriendAction){p.classList.add(`social-pane__header-actions--friend`);let e=(0,r.createAddMeToYourFriendsButton)(i,n);e.classList.add(`flex-center`),p.appendChild(e)}u.appendChild(f);let m=l.createElement(`div`);m.className=`social-pane__header-media`,f.appendChild(m),o&&m.appendChild(a(l,o.imageUrl,o.name));let h=l.createElement(`div`);h.className=`social-pane__header-details`,f.appendChild(h),p.childNodes.length>0&&f.appendChild(p);let g=l.createElement(`div`);g.classList.add(`social-pane__header-summary`,`flex-column`),h.appendChild(g);let _=o?.name||t.utils.label(i),v=l.createElement(`h1`);v.classList.add(`social-pane__header-name`),v.appendChild(l.createTextNode(_)),g.appendChild(v);let y=[o?.jobTitle,o?.organization].filter(Boolean).join(` | `);if(y){let e=l.createElement(`div`);e.className=`social-pane__header-job-org`,e.textContent=y,g.appendChild(e)}if(o?.location){let t=l.createElement(`div`);t.className=`social-pane__header-location`;let n=l.createElement(`span`);n.classList.add(`social-pane__header-location-icon`,`inline-flex-row`),n.innerHTML=e.locationIcon,t.appendChild(n),t.appendChild(l.createTextNode(o.location)),g.appendChild(t)}let b=l.createElement(`div`);b.className=`social-pane__header-stats`;let x=l.createElement(`button`);x.className=`social-pane__header-stat`,x.type=`button`;let S=l.createElement(`span`);if(S.className=`social-pane__header-stat-label`,S.textContent=`${s.friendCount} friend${s.friendCount===1?``:`s`}`,x.appendChild(S),s.onSelectFriends&&x.addEventListener(`click`,s.onSelectFriends),b.appendChild(x),typeof s.mutualFriendCount==`number`){let e=l.createElement(`button`);e.className=`social-pane__header-stat`,e.type=`button`;let t=l.createElement(`span`);t.className=`social-pane__header-stat-label`,t.textContent=`${s.mutualFriendCount} mutual friend${s.mutualFriendCount===1?``:`s`}`,e.appendChild(t),s.onSelectMutual&&e.addEventListener(`click`,s.onSelectMutual),b.appendChild(e)}g.appendChild(b)};return u.refreshSocialHeader=function(e){d=e,f()},f(),u}function a(t,n,r=``){if(n){let e=t.createElement(`img`);return e.className=`social-pane__header-hero`,e.src=n,e.alt=r,e.width=180,e.height=180,e.loading=`eager`,e}let i=t.createElement(`div`);i.className=`social-pane__header-hero-alt flex-center`,i.setAttribute(`role`,`img`),i.setAttribute(`aria-label`,r),i.tabIndex=0;let a=t.createElement(`span`);return a.classList.add(`social-pane__header-hero-icon`,`inline-flex-row`),a.innerHTML=e.personInCircleIcon,i.appendChild(a),i}function o(e){let{dom:r,subject:i,familiar:a,me:o,meUri:s,incoming:c,outgoing:l,editable:u,profile:d,knows:f,mutualConnections:p,link:m,text:h,buildCheckboxForm:g,renderSupportingInfo:_,renderNameSuffix:v}=e,y=function(){},b=r.createElement(`section`);b.className=`social-pane__mutual-friends social-primary__panel`,b.id=`social-panel-mutual`,b.setAttribute(`role`,`tabpanel`),b.setAttribute(`aria-labelledby`,`social-tab-mutual`);let x=b.appendChild(r.createElement(`div`));x.classList.add(`social-main`,`social-main--mutual`,`flex-column`);let S=r.createElement(`div`);S.classList.add(`social-mutual-summary`,`flex-column`),x.appendChild(S);let C=function(){let e=S.appendChild(r.createElement(`div`));return e.classList.add(`social-mutual-summary-line`),e},w=function(){let e=C();return e.appendChild(m(h(`You`),s)),e.appendChild(h(` and `)),e.appendChild(m(h(a),i.uri)),e};if(!c)if(!l)w().appendChild(h(` have not said you know each other.`));else{let e=C();e.appendChild(m(h(`You`),s)),e.appendChild(h(` know `)),e.appendChild(m(h(a),i.uri)),e.appendChild(h(` (unconfirmed).`))}else if(l)w().appendChild(h(` say you know each other.`));else{S.classList.add(`social-mutual-summary--confirm`);let e=S.appendChild(r.createElement(`div`));e.classList.add(`social-mutual-summary-line`),e.appendChild(m(h(a),i.uri)),e.appendChild(h(` knows `)),e.appendChild(m(h(`you`),s)),e.appendChild(h(` (unconfirmed).`))}if(c&&!l){let e=r.createElement(`span`);e.className=`social-mutual-confirm-prompt`,e.appendChild(h(`Confirm you know `)),e.appendChild(m(h(a),i.uri));let t=g(e,new n.Statement(o,f,i,d??void 0),!!l,{disabled:!u,disabledTitle:u?void 0:`Your profile is not editable`});t.classList.add(`social-mutual-checkbox-form`),x.appendChild(t)}if(p.length){let e=x.appendChild(r.createElement(`table`));e.className=`social-main social-friends-list social-friends-grid`;let n=function(e){return t.widgets.personTR(r,t.ns.foaf(`knows`),e,{renderSupportingInfo:_,renderNameSuffix:v})};y=function(){let r=[...p].sort((e,n)=>{let r=t.utils.label(e)||e.value,i=t.utils.label(n)||n.value;return r.localeCompare(i)});t.utils.syncTableToArray(e,r,n,function(e,t){return n(t)})},y()}return{section:b,content:x,refreshMutualFriends:y}}function s(e){let{dom:n,subject:r,profile:i,editable:a,renderSupportingInfo:o,renderNameSuffix:s}=e,c=n.createElement(`section`);c.className=`social-pane__all-friends social-primary__panel`,c.id=`social-panel-all-friends`,c.setAttribute(`role`,`tabpanel`),c.setAttribute(`aria-labelledby`,`social-tab-all-friends`);let l=c.appendChild(n.createElement(`table`));l.className=`social-main`;let u=t.widgets.attachmentList(n,r,l,{doc:i,modify:!!a,predicate:t.ns.foaf(`knows`),noun:`friend`,refreshOnDocumentLoad:!1,renderSupportingInfo:o,renderNameSuffix:s});u.classList.add(`social-friends-list`),u.style.marginTop=`0`;let d=u.querySelector(`tr`),f=d?.children?.[0],p=d?.children?.[1],m=n.createElement(`div`);if(m.classList.add(`social-friends-header-actions`),f instanceof HTMLTableCellElement){f.classList.add(`social-friends-header-dropzone-cell`);let e=n.createElement(`table`);e.className=`social-friends-header-dropzone`,e.setAttribute(`role`,`presentation`),e.appendChild(n.createElement(`tbody`)).appendChild(n.createElement(`tr`)).appendChild(f),m.appendChild(e)}else if(f instanceof HTMLElement){for(;f.firstChild;)m.appendChild(f.firstChild);f.remove()}let h=m.querySelectorAll(`button`);if(a&&h.length>0){h.forEach(e=>{e.setAttribute(`title`,`Drop friend here`),e.setAttribute(`aria-label`,`Drop friend here`),e.querySelectorAll(`img`).forEach(e=>{e.setAttribute(`title`,`Drop friend here`),e.setAttribute(`alt`,`Drop friend here`)})});let e=n.createElement(`div`);e.className=`social-friends-header-actions social-friends-header-actions--standalone`,e.appendChild(m);let t=n.createElement(`span`);t.className=`social-friends-header-hint`,t.textContent=`Drag a WebId on the target to add a friend.`,e.appendChild(t),c.prepend(e)}p instanceof HTMLTableCellElement&&(p.colSpan=2);let g=u.querySelector(`td table`);return g instanceof HTMLTableElement&&g.classList.add(`social-friends-grid`),{section:c,mainTable:l,friendsList:u}}function c(e){let{dom:n,triage:r,renderSupportingInfo:i,renderNameSuffix:a}=e,o=n.createElement(`section`);o.className=`social-pane__requests social-primary__panel`,o.id=`social-panel-requests`,o.setAttribute(`role`,`tabpanel`),o.setAttribute(`aria-labelledby`,`social-tab-requests`);let s=o.appendChild(n.createElement(`div`));s.classList.add(`social-main`,`social-main--requests`,`flex-column`);let c=s.appendChild(n.createElement(`p`));c.className=`social-requests__note`,c.textContent=`Best effort preview: this view only reflects profile documents that are currently loaded. A dedicated inbox would still be needed for complete request discovery.`;let l=function(e,t,r){let i=s.appendChild(n.createElement(`section`));i.classList.add(`social-requests__group`,`flex-column`);let a=i.appendChild(n.createElement(`div`));a.className=`social-requests__group-header`;let o=a.appendChild(n.createElement(`h2`));o.className=`social-requests__group-title`,o.textContent=e;let c=a.appendChild(n.createElement(`p`));c.className=`social-requests__group-description`,c.textContent=t;let l=i.appendChild(n.createElement(`p`));l.className=`social-requests__empty`,l.textContent=r;let u=i.appendChild(n.createElement(`table`));return u.className=`social-main social-friends-list social-friends-grid social-requests__table`,{empty:l,table:u}},u=l(`Incoming requests`,`People who say they know this profile, but have not been confirmed yet.`,`No incoming requests are visible from the currently loaded data.`),d=l(`Awaiting confirmation`,`People this profile knows who have not linked back yet.`,`Nothing is waiting for confirmation right now.`),f=function(e){return t.widgets.personTR(n,t.ns.foaf(`knows`),e,{renderSupportingInfo:i,renderNameSuffix:a})},p=function(e){return[...e].sort((e,n)=>{let r=t.utils.label(e)||e.value,i=t.utils.label(n)||n.value;return r.localeCompare(i)})},m=function(e,n){let r=p(n);e.empty.hidden=r.length>0,e.table.hidden=r.length===0,t.utils.syncTableToArray(e.table,r,f,function(e,t){return f(t)})},h=function(e){m(u,e.requests),m(d,e.unconfirmed)};return h(r),{section:o,refreshRequests:h}}exports.createAllFriendsSection=s,exports.createHeaderSection=i,exports.createMutualSection=o,exports.createRequestsSection=c;
1
+ require("../_virtual/_rolldown/runtime.cjs.js");const e=require("./icons.cjs.js");require("./editProfileDetails.cjs.js");let t=require("solid-ui"),n=require("rdflib"),r=require("profile-pane");function i(n,i,o,s,c){let l=n.dom;n.session.store;let u=l.createElement(`header`);u.className=`social-pane__header`;let d=o,f=function(){u.replaceChildren();let o=c(),f=l.createElement(`div`);f.className=`social-pane__header-content`;let p=l.createElement(`div`);if(p.className=`social-pane__header-actions profile__actions profile__heading-actions`,!d.canEdit&&d.viewerMode===`authenticated`&&d.showAddFriendAction){p.classList.add(`social-pane__header-actions--friend`);let e=(0,r.createAddMeToYourFriendsButton)(i,n);e.classList.add(`flex-center`),p.appendChild(e)}u.appendChild(f);let m=l.createElement(`div`);m.className=`social-pane__header-media`,f.appendChild(m),o&&m.appendChild(a(l,o.imageUrl,o.name));let h=l.createElement(`div`);h.className=`social-pane__header-details`,f.appendChild(h),p.childNodes.length>0&&f.appendChild(p);let g=l.createElement(`div`);g.classList.add(`social-pane__header-summary`,`flex-column`),h.appendChild(g);let _=o?.name||t.utils.label(i),v=l.createElement(`h1`);v.classList.add(`social-pane__header-name`),v.appendChild(l.createTextNode(_)),g.appendChild(v);let y=[o?.jobTitle,o?.organization].filter(Boolean).join(` | `);if(y){let e=l.createElement(`div`);e.className=`social-pane__header-job-org`,e.textContent=y,g.appendChild(e)}if(o?.location){let t=l.createElement(`div`);t.className=`social-pane__header-location`;let n=l.createElement(`span`);n.classList.add(`social-pane__header-location-icon`,`inline-flex-row`),n.innerHTML=e.locationIcon,t.appendChild(n),t.appendChild(l.createTextNode(o.location)),g.appendChild(t)}let b=l.createElement(`div`);b.className=`social-pane__header-stats`;let x=l.createElement(`button`);x.className=`social-pane__header-stat`,x.type=`button`;let S=l.createElement(`span`);if(S.className=`social-pane__header-stat-label`,S.textContent=`${s.friendCount} friend${s.friendCount===1?``:`s`}`,x.appendChild(S),s.onSelectFriends&&x.addEventListener(`click`,s.onSelectFriends),b.appendChild(x),typeof s.mutualFriendCount==`number`){let e=l.createElement(`button`);e.className=`social-pane__header-stat`,e.type=`button`;let t=l.createElement(`span`);t.className=`social-pane__header-stat-label`,t.textContent=`${s.mutualFriendCount} mutual friend${s.mutualFriendCount===1?``:`s`}`,e.appendChild(t),s.onSelectMutual&&e.addEventListener(`click`,s.onSelectMutual),b.appendChild(e)}g.appendChild(b)};return u.refreshSocialHeader=function(e){d=e,f()},f(),u}function a(t,n,r=``){if(n){let e=t.createElement(`img`);return e.className=`social-pane__header-hero`,e.src=n,e.alt=r,e.width=180,e.height=180,e.loading=`eager`,e}let i=t.createElement(`div`);i.className=`social-pane__header-hero-alt flex-center`,i.setAttribute(`role`,`img`),i.setAttribute(`aria-label`,r),i.tabIndex=0;let a=t.createElement(`span`);return a.classList.add(`social-pane__header-hero-icon`,`inline-flex-row`),a.innerHTML=e.personInCircleIcon,i.appendChild(a),i}function o(e){let{dom:r,subject:i,familiar:a,me:o,meUri:s,incoming:c,outgoing:l,editable:u,profile:d,knows:f,mutualConnections:p,link:m,text:h,buildCheckboxForm:g,renderSupportingInfo:_,renderNameSuffix:v}=e,y=function(){},b=r.createElement(`section`);b.className=`social-pane__mutual-friends social-primary__panel`,b.id=`social-panel-mutual`,b.setAttribute(`role`,`tabpanel`),b.setAttribute(`aria-labelledby`,`social-tab-mutual`);let x=b.appendChild(r.createElement(`div`));x.classList.add(`social-main`,`social-main--mutual`,`flex-column`);let S=r.createElement(`div`);S.classList.add(`social-mutual-summary`,`flex-column`),x.appendChild(S);let C=function(){let e=S.appendChild(r.createElement(`div`));return e.classList.add(`social-mutual-summary-line`),e},w=function(){let e=C();return e.appendChild(m(h(`You`),s)),e.appendChild(h(` and `)),e.appendChild(m(h(a),i.uri)),e};if(!c)if(!l)w().appendChild(h(` have not said you know each other.`));else{let e=C();e.appendChild(m(h(`You`),s)),e.appendChild(h(` know `)),e.appendChild(m(h(a),i.uri)),e.appendChild(h(` (unconfirmed).`))}else if(l)w().appendChild(h(` say you know each other.`));else{S.classList.add(`social-mutual-summary--confirm`);let e=S.appendChild(r.createElement(`div`));e.classList.add(`social-mutual-summary-line`),e.appendChild(m(h(a),i.uri)),e.appendChild(h(` knows `)),e.appendChild(m(h(`you`),s)),e.appendChild(h(` (unconfirmed).`))}if(c&&!l){let e=r.createElement(`span`);e.className=`social-mutual-confirm-prompt`,e.appendChild(h(`Confirm you know `)),e.appendChild(m(h(a),i.uri));let t=g(e,new n.Statement(o,f,i,d??void 0),!!l,{disabled:!u,disabledTitle:u?void 0:`Your profile is not editable`});t.classList.add(`social-mutual-checkbox-form`),x.appendChild(t)}if(p.length){let e=x.appendChild(r.createElement(`table`));e.className=`social-main social-friends-list social-friends-grid`;let n=function(e){return t.widgets.personTR(r,t.ns.foaf(`knows`),e,{renderSupportingInfo:_,renderNameSuffix:v})};y=function(){let r=[...p].sort((e,n)=>{let r=t.utils.label(e)||e.value,i=t.utils.label(n)||n.value;return r.localeCompare(i)});t.utils.syncTableToArray(e,r,n,function(e,t){return n(t)})},y()}return{section:b,content:x,refreshMutualFriends:y}}function s(e){let{dom:n,subject:r,profile:i,editable:a,renderSupportingInfo:o,renderNameSuffix:s}=e,c=n.createElement(`section`);c.className=`social-pane__all-friends social-primary__panel`,c.id=`social-panel-all-friends`,c.setAttribute(`role`,`tabpanel`),c.setAttribute(`aria-labelledby`,`social-tab-all-friends`);let l=c.appendChild(n.createElement(`table`));l.className=`social-main`;let u=t.widgets.attachmentList(n,r,l,{doc:i,modify:!!a,predicate:t.ns.foaf(`knows`),noun:`friend`,refreshOnDocumentLoad:!1,renderSupportingInfo:o,renderNameSuffix:s});u.classList.add(`social-friends-list`),u.style.marginTop=`0`;let d=u.querySelector(`tr`),f=d?.children?.[0],p=d?.children?.[1],m=n.createElement(`div`);if(m.classList.add(`social-friends-header-actions`),f instanceof HTMLTableCellElement){f.classList.add(`social-friends-header-dropzone-cell`);let e=n.createElement(`table`);e.className=`social-friends-header-dropzone`,e.setAttribute(`role`,`presentation`),e.appendChild(n.createElement(`tbody`)).appendChild(n.createElement(`tr`)).appendChild(f),m.appendChild(e)}else if(f instanceof HTMLElement){for(;f.firstChild;)m.appendChild(f.firstChild);f.remove()}let h=m.querySelectorAll(`button`);if(a&&h.length>0){h.forEach(e=>{e.setAttribute(`title`,`Drop friend here`),e.setAttribute(`aria-label`,`Drop friend here`),e.querySelectorAll(`img`).forEach(e=>{e.setAttribute(`title`,`Drop friend here`),e.setAttribute(`alt`,`Drop friend here`)})});let e=n.createElement(`div`);e.className=`social-friends-header-actions social-friends-header-actions--standalone`,e.appendChild(m);let t=n.createElement(`span`);t.className=`social-friends-header-hint`,t.textContent=`Drag a WebId on the target to add a friend.`,e.appendChild(t),c.prepend(e)}p instanceof HTMLTableCellElement&&(p.colSpan=2);let g=u.querySelector(`td table`);return g instanceof HTMLTableElement&&g.classList.add(`social-friends-grid`),{section:c,mainTable:l,friendsList:u}}function c(e){let{dom:n,triage:r,renderSupportingInfo:i,renderNameSuffix:a}=e,o=n.createElement(`section`);o.className=`social-pane__requests social-primary__panel`,o.id=`social-panel-requests`,o.setAttribute(`role`,`tabpanel`),o.setAttribute(`aria-labelledby`,`social-tab-requests`);let s=o.appendChild(n.createElement(`div`));s.classList.add(`social-main`,`social-main--requests`,`flex-column`);let c=s.appendChild(n.createElement(`p`));c.className=`social-requests__note`,c.textContent=`Best effort preview: this view only reflects profile documents that are currently loaded. A dedicated inbox would still be needed for complete request discovery.`;let l=function(e,t,r){let i=s.appendChild(n.createElement(`section`));i.classList.add(`social-requests__group`,`flex-column`);let a=i.appendChild(n.createElement(`div`));a.className=`social-requests__group-header`;let o=a.appendChild(n.createElement(`h2`));o.className=`social-requests__group-title`,o.textContent=e;let c=a.appendChild(n.createElement(`p`));c.className=`social-requests__group-description`,c.textContent=t;let l=i.appendChild(n.createElement(`p`));l.className=`social-requests__empty`,l.textContent=r;let u=i.appendChild(n.createElement(`table`));return u.className=`social-main social-friends-list social-friends-grid social-requests__table`,{empty:l,table:u}},u=l(`Incoming requests`,`People who say they know this profile, but have not been confirmed yet.`,`No incoming requests are visible from the currently loaded data.`),d=l(`Awaiting confirmation`,`People this profile knows who have not linked back yet.`,`Nothing is waiting for confirmation right now.`),f=function(e){return t.widgets.personTR(n,t.ns.foaf(`knows`),e,{renderSupportingInfo:i,renderNameSuffix:a})},p=function(e){return[...e].sort((e,n)=>{let r=t.utils.label(e)||e.value,i=t.utils.label(n)||n.value;return r.localeCompare(i)})},m=function(e,n){let r=p(n);e.empty.hidden=r.length>0,e.table.hidden=r.length===0,t.utils.syncTableToArray(e.table,r,f,function(e,t){return f(t)})},h=function(e){m(u,e.requests),m(d,e.unconfirmed)};return h(r),{section:o,refreshRequests:h}}exports.createAllFriendsSection=s,exports.createHeaderSection=i,exports.createMutualSection=o,exports.createRequestsSection=c;
2
2
  //# sourceMappingURL=socialSections.cjs.js.map