solid-panes 4.5.0 → 5.0.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -40
- package/dist/RDFXMLPane.d.ts +2 -3
- package/dist/RDFXMLPane2.cjs.js +3 -0
- package/dist/RDFXMLPane2.cjs.js.map +1 -0
- package/dist/RDFXMLPane2.esm.js +55 -0
- package/dist/RDFXMLPane2.esm.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.cjs.js +1 -0
- package/dist/_virtual/~icons/lucide/arrow-left.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/arrow-left.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/arrow-left.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/arrow-left.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/ellipsis-vertical.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/folder-open.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/folder-open.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/folder-open.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/globe.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/globe.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/globe.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/globe.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/help-circle.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/help-circle.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/help-circle.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/help-circle.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/layout-dashboard.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/layout-dashboard.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/lock-keyhole.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/lock-keyhole.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/pencil.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/pencil.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/pencil.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/pencil.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/settings-2.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/settings-2.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/settings-2.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/settings-2.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/share-2.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/share-2.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/share-2.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/share-2.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/trash-2.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/trash-2.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/trash-2.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/trash-2.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/user.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/user.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/user.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/user.esm.js.map +1 -0
- package/dist/_virtual/~icons/lucide/users.cjs.js +2 -0
- package/dist/_virtual/~icons/lucide/users.cjs.js.map +1 -0
- package/dist/_virtual/~icons/lucide/users.esm.js +11 -0
- package/dist/_virtual/~icons/lucide/users.esm.js.map +1 -0
- package/dist/audio/audioPane.cjs.js +2 -0
- package/dist/audio/audioPane.cjs.js.map +1 -0
- package/dist/audio/audioPane.esm.js +99 -0
- package/dist/audio/audioPane.esm.js.map +1 -0
- package/dist/classInstancePane.cjs.js +2 -0
- package/dist/classInstancePane.cjs.js.map +1 -0
- package/dist/classInstancePane.esm.js +50 -0
- package/dist/classInstancePane.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js +14 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.d.ts +19 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.d.ts.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js +292 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js +2 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js +7 -0
- package/dist/components/file-explorer-header/FileExplorerHeader.styles.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js +22 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts +15 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.d.ts.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js +266 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js +2 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js +7 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderControls.styles.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js +19 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts +19 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.d.ts.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js +321 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js +2 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js +7 -0
- package/dist/components/file-explorer-header/FileExplorerHeaderSummary.styles.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js +13 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.d.ts +36 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.d.ts.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.esm.js +468 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.esm.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.cjs.js +2 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.esm.js +7 -0
- package/dist/components/file-explorer-header/FileExplorerProvider.styles.esm.js.map +1 -0
- package/dist/components/file-explorer-header/helper.cjs.js +2 -0
- package/dist/components/file-explorer-header/helper.cjs.js.map +1 -0
- package/dist/components/file-explorer-header/helper.d.ts +15 -0
- package/dist/components/file-explorer-header/helper.d.ts.map +1 -0
- package/dist/components/file-explorer-header/helper.esm.js +64 -0
- package/dist/components/file-explorer-header/helper.esm.js.map +1 -0
- package/dist/components/file-explorer-header/types.d.ts +2 -0
- package/dist/components/file-explorer-header/types.d.ts.map +1 -0
- package/dist/components/header/Header.cjs.js +19 -0
- package/dist/components/header/Header.cjs.js.map +1 -0
- package/dist/components/header/Header.d.ts +8 -0
- package/dist/components/header/Header.d.ts.map +1 -0
- package/dist/components/header/Header.esm.js +228 -0
- package/dist/components/header/Header.esm.js.map +1 -0
- package/dist/components/header/Header.styles.cjs.js +2 -0
- package/dist/components/header/Header.styles.cjs.js.map +1 -0
- package/dist/components/header/Header.styles.esm.js +7 -0
- package/dist/components/header/Header.styles.esm.js.map +1 -0
- package/dist/components/header/index.cjs.js +1 -0
- package/dist/components/header/index.d.ts +4 -0
- package/dist/components/header/index.d.ts.map +1 -0
- package/dist/components/header/index.esm.js +1 -0
- package/dist/components/navbar/Navbar.cjs.js +15 -0
- package/dist/components/navbar/Navbar.cjs.js.map +1 -0
- package/dist/components/navbar/Navbar.d.ts +14 -0
- package/dist/components/navbar/Navbar.d.ts.map +1 -0
- package/dist/components/navbar/Navbar.esm.js +232 -0
- package/dist/components/navbar/Navbar.esm.js.map +1 -0
- package/dist/components/navbar/Navbar.styles.cjs.js +2 -0
- package/dist/components/navbar/Navbar.styles.cjs.js.map +1 -0
- package/dist/components/navbar/Navbar.styles.esm.js +7 -0
- package/dist/components/navbar/Navbar.styles.esm.js.map +1 -0
- package/dist/components/navbar/index.cjs.js +1 -0
- package/dist/components/navbar/index.d.ts +4 -0
- package/dist/components/navbar/index.d.ts.map +1 -0
- package/dist/components/navbar/index.esm.js +1 -0
- package/dist/components/resource-actions-menu/DeleteResourceDialog.cjs.js +16 -0
- package/dist/components/resource-actions-menu/DeleteResourceDialog.cjs.js.map +1 -0
- package/dist/components/resource-actions-menu/DeleteResourceDialog.d.ts +8 -0
- package/dist/components/resource-actions-menu/DeleteResourceDialog.d.ts.map +1 -0
- package/dist/components/resource-actions-menu/DeleteResourceDialog.esm.js +215 -0
- package/dist/components/resource-actions-menu/DeleteResourceDialog.esm.js.map +1 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js +18 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.cjs.js.map +1 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts +16 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.d.ts.map +1 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js +260 -0
- package/dist/components/resource-actions-menu/ResourceActionsMenu.esm.js.map +1 -0
- package/dist/dashboard/basicPreferences.cjs.js +2 -0
- package/dist/dashboard/basicPreferences.cjs.js.map +1 -0
- package/dist/dashboard/basicPreferences.d.ts +1 -1
- package/dist/dashboard/basicPreferences.esm.js +70 -0
- package/dist/dashboard/basicPreferences.esm.js.map +1 -0
- package/dist/dashboard/dashboardPane.cjs.js +2 -0
- package/dist/dashboard/dashboardPane.cjs.js.map +1 -0
- package/dist/dashboard/dashboardPane.d.ts +1 -1
- package/dist/dashboard/dashboardPane.esm.js +7 -0
- package/dist/dashboard/dashboardPane.esm.js.map +1 -0
- package/dist/dashboard/homepage.cjs.js +2 -0
- package/dist/dashboard/homepage.cjs.js.map +1 -0
- package/dist/dashboard/homepage.d.ts +1 -1
- package/dist/dashboard/homepage.esm.js +26 -0
- package/dist/dashboard/homepage.esm.js.map +1 -0
- package/dist/dashboard/ontologyData.cjs.js +37 -0
- package/dist/dashboard/ontologyData.cjs.js.map +1 -0
- package/dist/dashboard/ontologyData.esm.js +6 -0
- package/dist/dashboard/ontologyData.esm.js.map +1 -0
- package/dist/dashboard/preferencesFormText.cjs.js +20 -0
- package/dist/dashboard/preferencesFormText.cjs.js.map +1 -0
- package/dist/dashboard/preferencesFormText.esm.js +6 -0
- package/dist/dashboard/preferencesFormText.esm.js.map +1 -0
- package/dist/dataContentPane.d.ts +2 -3
- package/dist/dataContentPane2.cjs.js +2 -0
- package/dist/dataContentPane2.cjs.js.map +1 -0
- package/dist/dataContentPane2.esm.js +109 -0
- package/dist/dataContentPane2.esm.js.map +1 -0
- package/dist/defaultPane.d.ts +2 -3
- package/dist/defaultPane2.cjs.js +2 -0
- package/dist/defaultPane2.cjs.js.map +1 -0
- package/dist/defaultPane2.esm.js +41 -0
- package/dist/defaultPane2.esm.js.map +1 -0
- package/dist/dev.d.ts +10 -0
- package/dist/dev.d.ts.map +1 -0
- package/dist/dokieli/dokieliPane.cjs.js +2 -0
- package/dist/dokieli/dokieliPane.cjs.js.map +1 -0
- package/dist/dokieli/dokieliPane.esm.js +39 -0
- package/dist/dokieli/dokieliPane.esm.js.map +1 -0
- package/dist/dokieli/{new.js → new.cjs.js} +4 -10
- package/dist/dokieli/new.cjs.js.map +1 -0
- package/dist/dokieli/new.esm.js +6 -0
- package/dist/dokieli/new.esm.js.map +1 -0
- package/dist/form/pane.cjs.js +4 -0
- package/dist/form/pane.cjs.js.map +1 -0
- package/dist/form/pane.d.ts +1 -2
- package/dist/form/pane.esm.js +122 -0
- package/dist/form/pane.esm.js.map +1 -0
- package/dist/home/homePane.cjs.js +2 -0
- package/dist/home/homePane.cjs.js.map +1 -0
- package/dist/home/homePane.d.ts +1 -1
- package/dist/home/homePane.esm.js +35 -0
- package/dist/home/homePane.esm.js.map +1 -0
- package/dist/humanReadablePane.d.ts +2 -3
- package/dist/humanReadablePane2.cjs.js +2 -0
- package/dist/humanReadablePane2.cjs.js.map +1 -0
- package/dist/humanReadablePane2.esm.js +123 -0
- package/dist/humanReadablePane2.esm.js.map +1 -0
- package/dist/icons/folder.cjs.js +2 -0
- package/dist/icons/folder.cjs.js.map +1 -0
- package/dist/icons/folder.esm.js +6 -0
- package/dist/icons/folder.esm.js.map +1 -0
- package/dist/icons/friends.cjs.js +2 -0
- package/dist/icons/friends.cjs.js.map +1 -0
- package/dist/icons/friends.esm.js +6 -0
- package/dist/icons/friends.esm.js.map +1 -0
- package/dist/icons/person.cjs.js +2 -0
- package/dist/icons/person.cjs.js.map +1 -0
- package/dist/icons/person.esm.js +6 -0
- package/dist/icons/person.esm.js.map +1 -0
- package/dist/imagePane.d.ts +2 -3
- package/dist/imagePane2.cjs.js +2 -0
- package/dist/imagePane2.cjs.js.map +1 -0
- package/dist/imagePane2.esm.js +32 -0
- package/dist/imagePane2.esm.js.map +1 -0
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.esm.js +31 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/internal/internalPane.d.ts +1 -2
- package/dist/internal/internalPane2.cjs.js +2 -0
- package/dist/internal/internalPane2.cjs.js.map +1 -0
- package/dist/internal/internalPane2.esm.js +104 -0
- package/dist/internal/internalPane2.esm.js.map +1 -0
- package/dist/mainPage/header.cjs.js +2 -0
- package/dist/mainPage/header.cjs.js.map +1 -0
- package/dist/mainPage/header.d.ts +1 -15
- package/dist/mainPage/header.d.ts.map +1 -1
- package/dist/mainPage/header.esm.js +72 -0
- package/dist/mainPage/header.esm.js.map +1 -0
- package/dist/mainPage/index.cjs.js +2 -0
- package/dist/mainPage/index.cjs.js.map +1 -0
- package/dist/mainPage/index.d.ts +3 -15
- package/dist/mainPage/index.d.ts.map +1 -1
- package/dist/mainPage/index.esm.js +36 -0
- package/dist/mainPage/index.esm.js.map +1 -0
- package/dist/mainPage/navbar.cjs.js +2 -0
- package/dist/mainPage/navbar.cjs.js.map +1 -0
- package/dist/mainPage/navbar.d.ts +3 -0
- package/dist/mainPage/navbar.d.ts.map +1 -0
- package/dist/mainPage/navbar.esm.js +66 -0
- package/dist/mainPage/navbar.esm.js.map +1 -0
- package/dist/n3Pane.d.ts +2 -3
- package/dist/n3Pane2.cjs.js +3 -0
- package/dist/n3Pane2.cjs.js.map +1 -0
- package/dist/n3Pane2.esm.js +52 -0
- package/dist/n3Pane2.esm.js.map +1 -0
- package/dist/outline/context.cjs.js +2 -0
- package/dist/outline/context.cjs.js.map +1 -0
- package/dist/outline/context.d.ts +3 -3
- package/dist/outline/context.esm.js +18 -0
- package/dist/outline/context.esm.js.map +1 -0
- package/dist/outline/manager2.cjs.js +2 -0
- package/dist/outline/manager2.cjs.js.map +1 -0
- package/dist/outline/manager2.esm.js +711 -0
- package/dist/outline/manager2.esm.js.map +1 -0
- package/dist/outline/outlineIcons.cjs.js +2 -0
- package/dist/outline/outlineIcons.cjs.js.map +1 -0
- package/dist/outline/outlineIcons.esm.js +10 -0
- package/dist/outline/outlineIcons.esm.js.map +1 -0
- package/dist/outline/propertyViews.cjs.js +2 -0
- package/dist/outline/propertyViews.cjs.js.map +1 -0
- package/dist/outline/propertyViews.esm.js +19 -0
- package/dist/outline/propertyViews.esm.js.map +1 -0
- package/dist/outline/queryByExample.cjs.js +2 -0
- package/dist/outline/queryByExample.cjs.js.map +1 -0
- package/dist/outline/queryByExample.esm.js +26 -0
- package/dist/outline/queryByExample.esm.js.map +1 -0
- package/dist/outline/sourcePaneIcon.d.ts +2 -0
- package/dist/outline/sourcePaneIcon.d.ts.map +1 -0
- package/dist/outline/userInput.cjs.js +61 -0
- package/dist/outline/userInput.cjs.js.map +1 -0
- package/dist/outline/userInput.esm.js +784 -0
- package/dist/outline/userInput.esm.js.map +1 -0
- package/dist/outline/viewAsImage.cjs.js +2 -0
- package/dist/outline/viewAsImage.cjs.js.map +1 -0
- package/dist/outline/viewAsImage.esm.js +10 -0
- package/dist/outline/viewAsImage.esm.js.map +1 -0
- package/dist/outline/viewAsMbox.cjs.js +2 -0
- package/dist/outline/viewAsMbox.cjs.js.map +1 -0
- package/dist/outline/viewAsMbox.esm.js +9 -0
- package/dist/outline/viewAsMbox.esm.js.map +1 -0
- package/dist/pad/padPane.d.ts +1 -2
- package/dist/pad/padPane2.cjs.js +2 -0
- package/dist/pad/padPane2.cjs.js.map +1 -0
- package/dist/pad/padPane2.esm.js +173 -0
- package/dist/pad/padPane2.esm.js.map +1 -0
- package/dist/playlist/playlistPane.cjs.js +2 -0
- package/dist/playlist/playlistPane.cjs.js.map +1 -0
- package/dist/playlist/playlistPane.esm.js +49 -0
- package/dist/playlist/playlistPane.esm.js.map +1 -0
- package/dist/registerPanes.cjs.js +2 -0
- package/dist/registerPanes.cjs.js.map +1 -0
- package/dist/registerPanes.esm.js +46 -0
- package/dist/registerPanes.esm.js.map +1 -0
- package/dist/schedule/formsForSchedule.cjs.js +117 -0
- package/dist/schedule/formsForSchedule.cjs.js.map +1 -0
- package/dist/schedule/formsForSchedule.esm.js +6 -0
- package/dist/schedule/formsForSchedule.esm.js.map +1 -0
- package/dist/schedule/schedulePane.d.ts +2 -4
- package/dist/schedule/schedulePane2.cjs.js +8 -0
- package/dist/schedule/schedulePane2.cjs.js.map +1 -0
- package/dist/schedule/schedulePane2.esm.js +385 -0
- package/dist/schedule/schedulePane2.esm.js.map +1 -0
- package/dist/sharing/sharingPane.cjs.js +2 -0
- package/dist/sharing/sharingPane.cjs.js.map +1 -0
- package/dist/sharing/sharingPane.esm.js +22 -0
- package/dist/sharing/sharingPane.esm.js.map +1 -0
- package/dist/slideshow/slideshowPane.cjs.js +2 -0
- package/dist/slideshow/slideshowPane.cjs.js.map +1 -0
- package/dist/slideshow/slideshowPane.esm.js +46 -0
- package/dist/slideshow/slideshowPane.esm.js.map +1 -0
- package/dist/social/editProfileDetails.cjs.js +2 -0
- package/dist/social/editProfileDetails.cjs.js.map +1 -0
- package/dist/social/editProfileDetails.d.ts +1 -2
- package/dist/social/editProfileDetails.esm.js +12 -0
- package/dist/social/editProfileDetails.esm.js.map +1 -0
- package/dist/social/icons.cjs.js +82 -0
- package/dist/social/icons.cjs.js.map +1 -0
- package/dist/social/{icons.js → icons.esm.js} +12 -18
- package/dist/social/icons.esm.js.map +1 -0
- package/dist/social/socialPane.d.ts +2 -3
- package/dist/social/socialPane2.cjs.js +6 -0
- package/dist/social/socialPane2.cjs.js.map +1 -0
- package/dist/social/socialPane2.esm.js +326 -0
- package/dist/social/socialPane2.esm.js.map +1 -0
- package/dist/social/socialSections.cjs.js +2 -0
- package/dist/social/socialSections.cjs.js.map +1 -0
- package/dist/social/socialSections.d.ts +2 -2
- package/dist/social/socialSections.esm.js +222 -0
- package/dist/social/socialSections.esm.js.map +1 -0
- package/dist/social/spinner.cjs.js +1 -0
- package/dist/social/spinner.esm.js +1 -0
- package/dist/social/triage.cjs.js +2 -0
- package/dist/social/triage.cjs.js.map +1 -0
- package/dist/social/triage.d.ts +2 -2
- package/dist/social/triage.esm.js +44 -0
- package/dist/social/triage.esm.js.map +1 -0
- package/dist/tabbed/tabbedPane.cjs.js +2 -0
- package/dist/tabbed/tabbedPane.cjs.js.map +1 -0
- package/dist/tabbed/tabbedPane.d.ts +1 -1
- package/dist/tabbed/tabbedPane.esm.js +38 -0
- package/dist/tabbed/tabbedPane.esm.js.map +1 -0
- package/dist/tableViewPane.cjs.js +2 -0
- package/dist/tableViewPane.cjs.js.map +1 -0
- package/dist/tableViewPane.esm.js +20 -0
- package/dist/tableViewPane.esm.js.map +1 -0
- package/dist/transaction/pane.cjs.js +8 -0
- package/dist/transaction/pane.cjs.js.map +1 -0
- package/dist/transaction/pane.esm.js +212 -0
- package/dist/transaction/pane.esm.js.map +1 -0
- package/dist/transaction/period.cjs.js +4 -0
- package/dist/transaction/period.cjs.js.map +1 -0
- package/dist/transaction/period.esm.js +126 -0
- package/dist/transaction/period.esm.js.map +1 -0
- package/dist/trip/tripPane.cjs.js +2 -0
- package/dist/trip/tripPane.cjs.js.map +1 -0
- package/dist/trip/tripPane.esm.js +85 -0
- package/dist/trip/tripPane.esm.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.dom.cjs.js +2 -0
- package/dist/trustedApplications/trustedApplications.dom.cjs.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.dom.d.ts +1 -1
- package/dist/trustedApplications/trustedApplications.dom.esm.js +108 -0
- package/dist/trustedApplications/trustedApplications.dom.esm.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.utils.cjs.js +2 -0
- package/dist/trustedApplications/trustedApplications.utils.cjs.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.utils.d.ts +1 -1
- package/dist/trustedApplications/trustedApplications.utils.esm.js +20 -0
- package/dist/trustedApplications/trustedApplications.utils.esm.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.view.cjs.js +2 -0
- package/dist/trustedApplications/trustedApplications.view.cjs.js.map +1 -0
- package/dist/trustedApplications/trustedApplications.view.d.ts +1 -1
- package/dist/trustedApplications/trustedApplications.view.esm.js +41 -0
- package/dist/trustedApplications/trustedApplications.view.esm.js.map +1 -0
- package/dist/ui/pane.cjs.js +4 -0
- package/dist/ui/pane.cjs.js.map +1 -0
- package/dist/ui/pane.esm.js +56 -0
- package/dist/ui/pane.esm.js.map +1 -0
- package/dist/utils/paneUtils.cjs.js +2 -0
- package/dist/utils/paneUtils.cjs.js.map +1 -0
- package/dist/utils/paneUtils.d.ts +19 -0
- package/dist/utils/paneUtils.d.ts.map +1 -0
- package/dist/utils/paneUtils.esm.js +52 -0
- package/dist/utils/paneUtils.esm.js.map +1 -0
- package/dist/utils/podUtils.cjs.js +2 -0
- package/dist/utils/podUtils.cjs.js.map +1 -0
- package/dist/utils/podUtils.d.ts +4 -0
- package/dist/utils/podUtils.d.ts.map +1 -0
- package/dist/utils/podUtils.esm.js +46 -0
- package/dist/utils/podUtils.esm.js.map +1 -0
- package/dist/utils/webIdUtils.cjs.js +2 -0
- package/dist/utils/webIdUtils.cjs.js.map +1 -0
- package/dist/utils/webIdUtils.d.ts +6 -0
- package/dist/utils/webIdUtils.d.ts.map +1 -0
- package/dist/utils/webIdUtils.esm.js +48 -0
- package/dist/utils/webIdUtils.esm.js.map +1 -0
- package/dist/versionInfo.cjs.js +2 -0
- package/dist/versionInfo.cjs.js.map +1 -0
- package/dist/versionInfo.esm.js +40 -0
- package/dist/versionInfo.esm.js.map +1 -0
- package/dist/video/videoPane.cjs.js +2 -0
- package/dist/video/videoPane.cjs.js.map +1 -0
- package/dist/video/videoPane.esm.js +25 -0
- package/dist/video/videoPane.esm.js.map +1 -0
- package/package.json +51 -66
- package/dist/0314353e28ce6e5539af.svg +0 -9
- package/dist/04567ff683933c35c465.png +0 -0
- package/dist/10163fd9b5a0e00d63a0.png +0 -0
- package/dist/1234dcb2eec2e45f252b.png +0 -0
- package/dist/20899934157df4db56cb.png +0 -0
- package/dist/33760bf79f097f449da5.png +0 -0
- package/dist/4cceba29ab33b1ddd9bb.svg +0 -6
- package/dist/578d2b6ed32e7624164e.png +0 -0
- package/dist/5f62a5b2b7e99b9640c7.png +0 -0
- package/dist/6525766ecd288ec60129.png +0 -0
- package/dist/7800be6f6c4b5b0f4f20.png +0 -0
- package/dist/7b7538c6f6b317968009.svg +0 -9
- package/dist/92d03142abe6efc0b42d.svg +0 -6
- package/dist/976473cf5fe24d657d4b.png +0 -0
- package/dist/RDFXMLPane.css +0 -70
- package/dist/RDFXMLPane.js +0 -100
- package/dist/argument/argumentPane.js +0 -60
- package/dist/attach/attachPane.js +0 -393
- package/dist/audio/audioPane.js +0 -181
- package/dist/bda84f59e7216675a208.png +0 -0
- package/dist/cd68e8f3990ba8b2139e.png +0 -0
- package/dist/classInstancePane.js +0 -91
- package/dist/dashboard/basicPreferences.js +0 -147
- package/dist/dashboard/dashboardPane.js +0 -73
- package/dist/dashboard/homepage.js +0 -42
- package/dist/dataContentPane.css +0 -271
- package/dist/dataContentPane.js +0 -226
- package/dist/defaultPane.css +0 -97
- package/dist/defaultPane.js +0 -81
- package/dist/dokieli/dokieliPane.js +0 -74
- package/dist/e7074a7e2cb69e51cfd3.png +0 -0
- package/dist/f3772696fb7ee53c23d8.png +0 -0
- package/dist/form/formPane.css +0 -120
- package/dist/form/pane.js +0 -250
- package/dist/home/homePane.js +0 -74
- package/dist/humanReadablePane.css +0 -129
- package/dist/humanReadablePane.js +0 -243
- package/dist/icons/clock.svg +0 -7
- package/dist/icons/comment.svg +0 -6
- package/dist/icons/dashboard.svg +0 -9
- package/dist/icons/downArrow.svg +0 -6
- package/dist/icons/folder.svg +0 -6
- package/dist/icons/friends.svg +0 -9
- package/dist/icons/help.svg +0 -8
- package/dist/icons/iconHelper.js +0 -23
- package/dist/icons/menu.svg +0 -8
- package/dist/icons/person.svg +0 -6
- package/dist/icons/personInCircle.svg +0 -8
- package/dist/icons/sharing.svg +0 -10
- package/dist/icons/signOut.svg +0 -8
- package/dist/icons/signUp.svg +0 -9
- package/dist/icons/star.svg +0 -3
- package/dist/imagePane.css +0 -4
- package/dist/imagePane.js +0 -67
- package/dist/index.js +0 -123
- package/dist/internal/internalPane.css +0 -14
- package/dist/internal/internalPane.js +0 -183
- package/dist/mainPage/footer.d.ts +0 -15
- package/dist/mainPage/footer.d.ts.map +0 -1
- package/dist/mainPage/footer.js +0 -29
- package/dist/mainPage/header.js +0 -203
- package/dist/mainPage/index.js +0 -78
- package/dist/mainPage/menu.css +0 -243
- package/dist/mainPage/menu.d.ts +0 -7
- package/dist/mainPage/menu.d.ts.map +0 -1
- package/dist/mainPage/menu.js +0 -436
- package/dist/microblogPane/mbStyle.css +0 -267
- package/dist/microblogPane/microblogPane.js +0 -1031
- package/dist/n3Pane.css +0 -49
- package/dist/n3Pane.js +0 -88
- package/dist/outline/context.js +0 -21
- package/dist/outline/manager.css +0 -78
- package/dist/outline/manager.js +0 -2115
- package/dist/outline/outlineIcons.js +0 -126
- package/dist/outline/propertyViews.js +0 -43
- package/dist/outline/queryByExample.js +0 -285
- package/dist/outline/userInput.js +0 -1821
- package/dist/outline/viewAsImage.js +0 -14
- package/dist/outline/viewAsMbox.js +0 -21
- package/dist/pad/padPane.css +0 -40
- package/dist/pad/padPane.js +0 -421
- package/dist/playlist/playlistPane.js +0 -119
- package/dist/profileUtils/ownerProfile.d.ts +0 -5
- package/dist/profileUtils/ownerProfile.d.ts.map +0 -1
- package/dist/profileUtils/ownerProfile.js +0 -84
- package/dist/registerPanes.js +0 -145
- package/dist/schedule/schedulePane.css +0 -294
- package/dist/schedule/schedulePane.js +0 -1022
- package/dist/sharing/sharingPane.js +0 -48
- package/dist/slideshow/slideshowPane.js +0 -79
- package/dist/social/editProfileDetails.js +0 -362
- package/dist/social/socialPane.css +0 -1464
- package/dist/social/socialPane.js +0 -651
- package/dist/social/socialSections.js +0 -393
- package/dist/social/spinner.js +0 -13
- package/dist/social/triage.js +0 -79
- package/dist/solid-panes.js +0 -84629
- package/dist/solid-panes.js.map +0 -1
- package/dist/solid-panes.min.js +0 -3933
- package/dist/solid-panes.min.js.map +0 -1
- package/dist/styles/tabbedtab.css +0 -1066
- package/dist/styles/utilities.css +0 -5
- package/dist/tabbed/tabbedPane.js +0 -59
- package/dist/tableViewPane.js +0 -56
- package/dist/transaction/pane.js +0 -477
- package/dist/transaction/period.js +0 -323
- package/dist/trip/tripPane.js +0 -174
- package/dist/trustedApplications/trustedApplications.dom.js +0 -145
- package/dist/trustedApplications/trustedApplications.utils.js +0 -23
- package/dist/trustedApplications/trustedApplications.view.js +0 -55
- package/dist/ui/pane.js +0 -146
- package/dist/versionInfo.js +0 -41
- package/dist/video/videoPane.js +0 -42
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons.esm.js","names":[],"sources":["../../src/social/icons.ts"],"sourcesContent":["/* Simpliest solution for now since we are only using it for the symposium\nand then we will use icons from solid-assets */\nconst html = String.raw\n\nexport const personInCircleIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" \n width=\"64\" \n height=\"64\" \n viewBox=\"0 0 64 64\" \n fill=\"none\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M32.0007 58.6666C46.7282 58.6666 58.6673 46.7275 58.6673 31.9999C58.6673 17.2723 46.7282 5.33325 32.0007 5.33325C17.2731 5.33325 5.33398 17.2723 5.33398 31.9999C5.33398 46.7275 17.2731 58.6666 32.0007 58.6666Z\" stroke=\"#CBD5E1\" stroke-width=\"5.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M32 34.6667C36.4183 34.6667 40 31.085 40 26.6667C40 22.2485 36.4183 18.6667 32 18.6667C27.5817 18.6667 24 22.2485 24 26.6667C24 31.085 27.5817 34.6667 32 34.6667Z\" stroke=\"#CBD5E1\" stroke-width=\"5.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M18.666 55.0986V50.6666C18.666 49.2521 19.2279 47.8955 20.2281 46.8954C21.2283 45.8952 22.5849 45.3333 23.9993 45.3333H39.9993C41.4138 45.3333 42.7704 45.8952 43.7706 46.8954C44.7708 47.8955 45.3327 49.2521 45.3327 50.6666V55.0986\" stroke=\"#CBD5E1\" stroke-width=\"5.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n`\nexport const editIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" \n width=\"14\" \n height=\"14\" \n viewBox=\"3 3 14 14\" \n fill=\"none\"\n aria-hidden=\"true\" \n focusable=\"false\"\n >\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.3063 3.34814C14.9271 3.34832 15.5236 3.59563 15.9625 4.03467C16.4012 4.47362 16.648 5.06935 16.6481 5.68994C16.648 6.31072 16.4004 6.90719 15.9615 7.34619L15.9606 7.34521L7.95373 15.355L7.95275 15.356C7.73845 15.5696 7.47464 15.7278 7.18517 15.8159H7.1842L4.57287 16.6079H4.57092C4.40678 16.6572 4.23224 16.6614 4.06603 16.6196C3.89974 16.5778 3.74793 16.4918 3.62658 16.3706C3.50526 16.2494 3.41865 16.0974 3.37658 15.9312C3.33472 15.7651 3.3383 15.5903 3.38732 15.4263L3.3883 15.4243L4.18127 12.813V12.811C4.27013 12.5215 4.42882 12.2574 4.64318 12.0435L12.651 4.03467V4.03369C13.09 3.59513 13.6857 3.34816 14.3063 3.34814ZM5.56213 12.9634C5.49841 13.0269 5.4509 13.1059 5.42443 13.1919L5.42345 13.1909L4.82189 15.1733L6.80627 14.5718C6.89221 14.5456 6.97114 14.4985 7.03478 14.4351L13.274 8.19482L11.8014 6.72217L5.56213 12.9634ZM14.3063 4.64893C14.0303 4.64894 13.7652 4.75864 13.5699 4.95361L12.7213 5.80225L14.194 7.2749L15.0426 6.42627L15.1119 6.3501C15.2635 6.16488 15.3473 5.93141 15.3473 5.68994C15.3472 5.41394 15.2377 5.14881 15.0426 4.95361C14.8474 4.75846 14.5823 4.64906 14.3063 4.64893Z\" fill=\"#1E2939\"/>\n </svg>\n`\nexport const locationIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" \n width=\"16\" \n height=\"16\" \n viewBox=\"0 0 16 16\" \n fill=\"none\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M13.3327 6.66659C13.3327 9.99525 9.64002 13.4619 8.40002 14.5326C8.2845 14.6194 8.14388 14.6664 7.99935 14.6664C7.85482 14.6664 7.7142 14.6194 7.59868 14.5326C6.35868 13.4619 2.66602 9.99525 2.66602 6.66659C2.66602 5.2521 3.22792 3.89554 4.22811 2.89535C5.22831 1.89516 6.58486 1.33325 7.99935 1.33325C9.41384 1.33325 10.7704 1.89516 11.7706 2.89535C12.7708 3.89554 13.3327 5.2521 13.3327 6.66659Z\" stroke=\"#4A5565\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M8 8.66675C9.10457 8.66675 10 7.77132 10 6.66675C10 5.56218 9.10457 4.66675 8 4.66675C6.89543 4.66675 6 5.56218 6 6.66675C6 7.77132 6.89543 8.66675 8 8.66675Z\" stroke=\"#4A5565\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n`\nexport const closeIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" \n width=\"12\" \n height=\"12\" \n viewBox=\"0 0 12 12\" \n fill=\"none\"\n aria-hidden=\"true\" \n focusable=\"false\"\n >\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.5301 0.244005C10.8555 -0.0813835 11.3834 -0.0812864 11.7088 0.244005C12.0338 0.569352 12.0338 1.09639 11.7088 1.42174L7.15416 5.97545L11.7088 10.5301C12.0341 10.8556 12.0342 11.3835 11.7088 11.7088C11.3835 12.0342 10.8556 12.0341 10.5301 11.7088L5.97545 7.15416L1.42174 11.7088C1.09639 12.0338 0.569351 12.0338 0.244004 11.7088C-0.0812866 11.3834 -0.0813828 10.8555 0.244004 10.5301L4.79772 5.97545L0.244004 1.42174C-0.0812866 1.09629 -0.0813828 0.569393 0.244004 0.244005C0.569393 -0.0813835 1.09629 -0.0812864 1.42174 0.244005L5.97545 4.79772L10.5301 0.244005Z\" fill=\"#4A5565\"/>\n </svg>\n`\nexport const trashIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" \n width=\"20\" \n height=\"20\" \n viewBox=\"0 0 20 20\" \n fill=\"none\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M8.33301 9.16675V14.1667\" stroke=\"#D1D5DC\" stroke-width=\"1.45833\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M11.667 9.16675V14.1667\" stroke=\"#D1D5DC\" stroke-width=\"1.45833\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.8337 5V16.6667C15.8337 17.1087 15.6581 17.5326 15.3455 17.8452C15.0329 18.1577 14.609 18.3333 14.167 18.3333H5.83366C5.39163 18.3333 4.96771 18.1577 4.65515 17.8452C4.34259 17.5326 4.16699 17.1087 4.16699 16.6667V5\" stroke=\"#D1D5DC\" stroke-width=\"1.45833\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M2.5 5H17.5\" stroke=\"#D1D5DC\" stroke-width=\"1.45833\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6.66699 5.00008V3.33341C6.66699 2.89139 6.84259 2.46746 7.15515 2.1549C7.46771 1.84234 7.89163 1.66675 8.33366 1.66675H11.667C12.109 1.66675 12.5329 1.84234 12.8455 2.1549C13.1581 2.46746 13.3337 2.89139 13.3337 3.33341V5.00008\" stroke=\"#D1D5DC\" stroke-width=\"1.45833\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n`\nexport const plusIcon = html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" \n width=\"12\" \n height=\"12\" \n viewBox=\"0 0 12 12\" \n fill=\"none\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <g clip-path=\"url(#clip0_3001_2564)\">\n <path d=\"M6.06055 0.10083C6.53372 0.101056 6.91793 0.485037 6.91797 0.958252V5.20532H11.165C11.6384 5.20532 12.0225 5.58936 12.0225 6.06274C12.0223 6.536 11.6383 6.92017 11.165 6.92017H6.91797V11.1663C6.91797 11.6395 6.53374 12.0235 6.06055 12.0237C5.58716 12.0237 5.20312 11.6396 5.20312 11.1663V6.92017H0.957031C0.483929 6.91994 0.0997601 6.53586 0.0996094 6.06274C0.0996094 5.5895 0.483837 5.20555 0.957031 5.20532H5.20312V0.958252C5.20316 0.484897 5.58718 0.10083 6.06055 0.10083Z\" fill=\"#7C4DFF\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_3001_2564\">\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n`\n"],"mappings":";AAEA,IAAM,IAAO,OAAO,KAEP,IAAqB,CAAI;;;;;;;;;;;;;;AAcd,CAAI;;;;;;;;;;;;AAY5B,IAAa,IAAe,CAAI;;;;;;;;;;;;;AAaP,CAAI;;;;;;;;;;;GAYJ,CAAI;;;;;;;;;;;;;;;GAgBL,CAAI"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import {
|
|
3
|
-
import { DataBrowserContext } from 'pane-registry';
|
|
1
|
+
import { LiveStore, NamedNode } from '../../node_modules/rdflib';
|
|
2
|
+
import { DataBrowserContext } from '../../node_modules/pane-registry';
|
|
4
3
|
export declare const socialPane: {
|
|
5
4
|
icon: string;
|
|
6
5
|
name: string;
|
|
@@ -0,0 +1,6 @@
|
|
|
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)}})();;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
|
+
|
|
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
|
+
|
|
5
|
+
`+i),s.checked=!0)})}catch(e){r.log.alert(`Delete fails:`+e),s.checked=!0}},!1),a},_=s.getOutliner(c),v=s.session.store,y=c.createElement(`div`);y.classList.add(`social-pane`,`flex-column`,`gap-xxs`),a(y,s);let b=r.ns.foaf,ne=r.ns.vcard,x=i.authn.currentUser(),re=x?x.uri:null,S=x&&v.sameThings(x,o),C=b(`knows`),ie=v.anyValue(o,b(`givenname`))||v.anyValue(o,b(`firstName`))||v.anyValue(o,b(`nick`))||v.anyValue(o,b(`name`))||v.anyValue(o,ne(`fn`)),w=m(v.each(o,C)),ae=x?m(v.each(x,b(`knows`))):[],T=x&&!S?m(l(w,ae)).filter(e=>!v.sameThings(e,x)):[],oe=x&&!S?T.length:null,E=p(o,x),D=null,O=!1,k=!1,A=!1,se=y.appendChild(c.createElement(`div`));se.className=`social-layout`;let j=se.appendChild(c.createElement(`div`));j.className=`social-primary`;let M=j.appendChild(c.createElement(`div`));M.classList.add(`social-primary__tabs`,`flex-center`),M.setAttribute(`role`,`tablist`),M.setAttribute(`aria-label`,`Social sections`);let N=M.appendChild(c.createElement(`button`));N.className=`social-primary__tab`,N.type=`button`,N.id=`social-tab-all-friends`,N.textContent=`All Friends`,N.setAttribute(`role`,`tab`),N.setAttribute(`aria-controls`,`social-panel-all-friends`),N.setAttribute(`aria-selected`,`true`),N.tabIndex=0;let P=M.appendChild(c.createElement(`button`));if(P.className=`social-primary__tab`,P.type=`button`,P.id=`social-tab-mutual`,P.textContent=`Mutual`,P.setAttribute(`role`,`tab`),P.setAttribute(`aria-controls`,`social-panel-mutual`),P.setAttribute(`aria-selected`,`false`),P.tabIndex=-1,x){let e=v.each(void 0,b(`primaryTopic`),x),t=``;for(let n=0;n<e.length;n++)if(v.whether(e[n],r.ns.rdf(`type`),b(`PersonalProfileDocument`))){let i=e[n];if(O=_.UserInput.sparqler.editable(i.uri,v),!O)t+=`Your profile <`+r.utils.escapeForXML(i.uri)+`> is not remotely editable.`;else{D=i;break}}if(!S){let e=v.canon(x);k=v.whether(o,C,e),A=!1;let t=v.statementsMatching(e,C,o);t.length&&(A=!0,D||=t[0].why)}}let F=e=>e===`authenticated`&&!S&&!A,I=E===`owner`&&O,ce=E===`authenticated`&&!S&&O&&!!D,le=I,L={canEdit:I,viewerMode:E,showAddFriendAction:F(E)},R=t.createHeaderSection(s,o,L,{friendCount:w.length,mutualFriendCount:oe,onSelectFriends:function(){Q(`all-friends`)},onSelectMutual:typeof oe==`number`?function(){Q(`mutual`)}:void 0},function(){return f(s,o)});R.classList.add(`social-pane__header-section`,`flex-column`),y.prepend(R);let z=new Map;(function(e){let t=new Map;e.forEach(e=>{!e?.value||e.value===o.value||t.set(e.value,u(v,e))}),z.clear(),t.forEach((e,t)=>{z.set(t,e)})})(w);let B=function(t,n){let r=z.get(t.value)||u(v,t);z.set(t.value,r);let i=n.createElement(`div`),a=[r.jobTitle,r.organization].filter(Boolean).join(` | `);if(a){let e=i.appendChild(n.createElement(`div`));e.className=`social-friend-job-org`,e.textContent=a}if(r.location){let t=i.appendChild(n.createElement(`div`));t.className=`social-friend-location`,t.innerHTML=`${e.locationIcon} ${r.location}`}return i.childNodes.length?i:null},V=function(e,t){let n=z.get(e.value)||u(v,e);z.set(e.value,n);let r=n.pronouns;if(!r)return null;let i=t.createElement(`span`);return i.className=`social-friend-pronouns`,i.textContent=`(${r})`,i},H=x&&!S?t.createMutualSection({dom:c,subject:o,familiar:ie,me:x,meUri:re,incoming:k,outgoing:A,editable:ce,profile:D,knows:C,mutualConnections:T,link:h,text:ee,buildCheckboxForm:te,renderSupportingInfo:B,renderNameSuffix:V}):{section:c.createElement(`section`),content:c.createElement(`div`),refreshMutualFriends:function(){}},U=H.section,W=H.content;U.className||(U.className=`social-pane__mutual-friends social-primary__panel`,U.id=`social-panel-mutual`,U.setAttribute(`role`,`tabpanel`),U.setAttribute(`aria-labelledby`,`social-tab-mutual`),W.className=`social-main social-main--mutual`,U.appendChild(W)),j.appendChild(U);let ue=t.createAllFriendsSection({dom:c,subject:o,profile:le?D:null,editable:le,renderSupportingInfo:B,renderNameSuffix:V}),G=ue.section,de=ue.friendsList;j.appendChild(G);let K=n.triageFriends(v,o),q=t.createRequestsSection({dom:c,triage:K,renderSupportingInfo:B,renderNameSuffix:V}),J=q.section;j.appendChild(J);let Y=M.appendChild(c.createElement(`button`));Y.className=`social-primary__tab`,Y.type=`button`,Y.id=`social-tab-requests`,Y.textContent=`Requests`,Y.setAttribute(`role`,`tab`),Y.setAttribute(`aria-controls`,`social-panel-requests`),Y.setAttribute(`aria-selected`,`false`),Y.tabIndex=-1;let X=`all-friends`,Z=E===`owner`,Q=function(e){X=e;let t=e===`mutual`,n=e===`all-friends`,r=Z&&e===`requests`;P.classList.toggle(`social-primary__tab--active`,t),P.setAttribute(`aria-selected`,String(t)),P.tabIndex=t?0:-1,N.classList.toggle(`social-primary__tab--active`,n),N.setAttribute(`aria-selected`,String(n)),N.tabIndex=n?0:-1,Y.classList.toggle(`social-primary__tab--active`,r),Y.setAttribute(`aria-selected`,String(r)),Y.tabIndex=r?0:-1,U.classList.toggle(`social-primary__panel--active`,t),U.setAttribute(`aria-hidden`,String(!t)),G.classList.toggle(`social-primary__panel--active`,n),G.setAttribute(`aria-hidden`,String(!n)),J.classList.toggle(`social-primary__panel--active`,r),J.setAttribute(`aria-hidden`,String(!r)),J.hidden=!Z||!r},fe=function(){if(!x||S)return;let e=v.canon(x);k=v.whether(o,C,e),A=v.statementsMatching(e,C,o).length>0;let n=t.createMutualSection({dom:c,subject:o,familiar:ie,me:x,meUri:re,incoming:k,outgoing:A,editable:ce,profile:D,knows:C,mutualConnections:T,link:h,text:ee,buildCheckboxForm:te,renderSupportingInfo:B,renderNameSuffix:V});U.replaceWith(n.section),H=n,U=n.section,W=n.content};g=function(){fe(),L={...L,showAddFriendAction:F(L.viewerMode)},R.refreshSocialHeader?.(L),K=n.triageFriends(v,o),q.refreshRequests(K),Q(X)},Q(`all-friends`);let $=function(e){let t=e===`authenticated`&&!S;if(Z=e===`owner`,P.hidden=!t,Y.hidden=!Z,!Z&&X===`requests`){Q(`all-friends`);return}Q(`all-friends`)};P.addEventListener(`click`,function(){Q(`mutual`)}),N.addEventListener(`click`,function(){Q(`all-friends`)}),Y.addEventListener(`click`,function(){Q(`requests`)});let pe=function(){let e=de.refresh;typeof e==`function`&&e.call(de)},me=function(){H.refreshMutualFriends()};return(async()=>{try{for await(let e of d(s,o))z.clear(),e.forEach(e=>{z.set(e.url,e)}),pe(),me()}catch{}})(),(async()=>{try{K=await n.loadFriendshipTriage(s,o),q.refreshRequests(K),pe(),me()}catch{}})(),$(`anonymous`),i.authn.checkUser().then(e=>{let t=p(o,e);$(t);let n=t===`owner`&&O;L={...L,canEdit:n,viewerMode:t,showAddFriendAction:F(t)},R.refreshSocialHeader?.(L)}).catch(()=>{$(`anonymous`),L={...L,canEdit:!1,viewerMode:`anonymous`,showAddFriendAction:!1},R.refreshSocialHeader?.(L)}),y}},s=3;function c(e,t){let n=e.anyJS(t,r.ns.solid(`preferredSubjectPronoun`))||``;if(n){let i=e.anyJS(t,r.ns.solid(`preferredObjectPronoun`));i&&(n+=`/`+i)}return n||``}function l(e,t){return e&&t?`${t}, ${e}`:e||t||null}function u(e,t){let n=e.anyValue(t,r.ns.vcard(`fn`))||e.anyValue(t,r.ns.foaf(`name`))||null,i=e.anyValue(t,r.ns.vcard(`nickname`))||e.anyValue(t,r.ns.foaf(`nick`))||null,a=e.anyValue(t,r.ns.vcard(`bday`))||null,o=r.widgets.findImage(t),s=e.anyValue(t,r.ns.vcard(`role`))||null,u=e.anyValue(t,r.ns.vcard(`organization-name`))||null,d=e.any(t,r.ns.vcard(`hasAddress`))||null,f=l(d==null?null:e.anyValue(d,r.ns.vcard(`country-name`)),d==null?null:e.anyValue(d,r.ns.vcard(`locality`))),p=c(e,t);return{url:t.value,imageUrl:o,name:n,nickname:i,jobTitle:s,organization:u,birthdate:a,location:f,pronouns:p,subjectNode:t}}async function*d(e,t,n=s){let i=e.session.store,a=i?.fetcher;if(a&&typeof a.load==`function`)try{await a.load(t.doc())}catch{}let o=new Set,c=i.each(t,r.ns.foaf(`knows`),null,t.doc()),l=[];for(let e of c){let n=e?.value;!n||o.has(n)||t.value===n||(o.add(n),l.push(e))}let d=[];for(let e of l){if(a&&typeof a.load==`function`)try{await a.load(e.doc())}catch{}d.push(u(i,e)),d.length%n===0&&(yield[...d])}d.length>0&&d.length%n!==0&&(yield[...d])}function f(e,t){let n=e.session.store,i=n.anyValue(t,r.ns.vcard(`fn`))||n.anyValue(t,r.ns.foaf(`name`))||void 0,a=n.anyValue(t,r.ns.vcard(`nickname`))||n.anyValue(t,r.ns.foaf(`nick`))||void 0,o=n.anyValue(t,r.ns.vcard(`bday`))||void 0,s=r.widgets.findImage(t),u=n.anyValue(t,r.ns.vcard(`role`))||void 0,d=n.anyValue(t,r.ns.vcard(`organization-name`))||void 0,f=n.any(t,r.ns.vcard(`hasAddress`))||null,p=l(f==null?void 0:n.anyValue(f,r.ns.vcard(`country-name`)),f==null?void 0:n.anyValue(f,r.ns.vcard(`locality`))),m=c(n,t);return{url:t.value,imageUrl:s,name:i,nickname:a,jobTitle:u,organization:d,birthdate:o,location:p,pronouns:m}}function p(e,t=i.authn.currentUser()){let n=typeof t==`string`?t:typeof t==`object`&&t&&(t.value||t.uri)||null,r=`anonymous`;return n===e.value&&(r=`owner`),n&&n!==e.value&&(r=`authenticated`),r}exports.pronounsAsText=c,exports.selectProfileData=f,exports.socialPane=o,exports.streamFriends=d;
|
|
6
|
+
//# sourceMappingURL=socialPane2.cjs.js.map
|
|
@@ -0,0 +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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"}
|