six-degrees 0.6.0 → 0.8.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-path-routes-manifest.json +4 -0
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +42 -14
- package/.next/standalone/.next/routes-manifest.json +24 -0
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +26 -18
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +26 -18
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +25 -16
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin-delete/route.js +2 -2
- package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js +2 -2
- package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js +2 -2
- package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js +2 -2
- package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js +3 -3
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/route.js +3 -3
- package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js +2 -2
- package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/backup/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/data/backup/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/data/backup/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/data/backup/route.js +7 -0
- package/.next/standalone/.next/server/app/api/data/backup/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/data/backup/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/data/backup/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/data/csv/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/data/csv/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/data/csv/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/data/csv/route.js +8 -0
- package/.next/standalone/.next/server/app/api/data/csv/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/data/csv/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/data/csv/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/data/export/route.js +1 -1
- package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/import/route.js +1 -1
- package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restore/route/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/api/data/restore/route/build-manifest.json +12 -0
- package/.next/standalone/.next/server/app/api/data/restore/route/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/api/data/restore/route.js +7 -0
- package/.next/standalone/.next/server/app/api/data/restore/route.js.map +5 -0
- package/.next/standalone/.next/server/app/api/data/restore/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/data/restore/route_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/api/data/reveal/route.js +1 -1
- package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js +2 -2
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js +2 -2
- package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js +2 -2
- package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +2 -2
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js +3 -3
- package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js +2 -2
- package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js +5 -3
- package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js +3 -3
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js +3 -3
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js +3 -3
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js +2 -2
- package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/crm/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/crm/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/messages/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/messages/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js +2 -2
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js +2 -2
- package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js +2 -2
- package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js +2 -2
- package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page.js +1 -1
- package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/import.html +1 -1
- package/.next/standalone/.next/server/app/import.rsc +32 -24
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +29 -22
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +20 -15
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +29 -22
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/insights/page/app-paths-manifest.json +3 -0
- package/.next/standalone/.next/server/app/insights/page/build-manifest.json +20 -0
- package/.next/standalone/.next/server/app/insights/page/next-font-manifest.json +11 -0
- package/.next/standalone/.next/server/app/insights/page/react-loadable-manifest.json +1 -0
- package/.next/standalone/.next/server/app/insights/page/server-reference-manifest.json +4 -0
- package/.next/standalone/.next/server/app/insights/page.js +13 -0
- package/.next/standalone/.next/server/app/insights/page.js.map +5 -0
- package/.next/standalone/.next/server/app/insights/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/insights/page_client-reference-manifest.js +3 -0
- package/.next/standalone/.next/server/app/insights.html +1 -0
- package/.next/standalone/.next/server/app/insights.meta +26 -0
- package/.next/standalone/.next/server/app/insights.rsc +35 -0
- package/.next/standalone/.next/server/app/insights.segments/_full.segment.rsc +35 -0
- package/.next/standalone/.next/server/app/insights.segments/_tree.segment.rsc +4 -0
- package/.next/standalone/.next/server/app/insights.segments/insights/__PAGE__.segment.rsc +33 -0
- package/.next/standalone/.next/server/app/launch/page.js +1 -1
- package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/launch.html +2 -2
- package/.next/standalone/.next/server/app/launch.rsc +32 -24
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths.html +1 -1
- package/.next/standalone/.next/server/app/paths.rsc +32 -24
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +21 -18
- package/.next/standalone/.next/server/app/profile/page.js +1 -1
- package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/profile.html +1 -1
- package/.next/standalone/.next/server/app/profile.rsc +32 -24
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app/queue/page.js +1 -1
- package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/queue.html +1 -1
- package/.next/standalone/.next/server/app/queue.rsc +32 -24
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +21 -18
- package/.next/standalone/.next/server/app/scores/page.js +1 -1
- package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/scores/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/scores.html +1 -1
- package/.next/standalone/.next/server/app/scores.rsc +32 -24
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +32 -24
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +20 -18
- package/.next/standalone/.next/server/app/setup/page.js +1 -1
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +32 -24
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +21 -18
- package/.next/standalone/.next/server/app/social/page.js +1 -1
- package/.next/standalone/.next/server/app/social/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +32 -24
- package/.next/standalone/.next/server/app/social.segments/_full.segment.rsc +32 -24
- package/.next/standalone/.next/server/app/social.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/social.segments/social/__PAGE__.segment.rsc +23 -18
- package/.next/standalone/.next/server/app-paths-manifest.json +4 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00la_y0._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__05_3-22._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__066rab1._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07t47cm._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cj5jqc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e0fei3._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0fooke1._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljnyho._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o5-tcg._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qrnous._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__15wc9e-._.js → [root-of-the-server]__0r-0t-9._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ra6xyg._.js +15 -0
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__20rwfdw._.js → [root-of-the-server]__0rcpjad._.js} +6 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t3v1a1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t6y79e._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wmexuc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0x29muh._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xu34sz._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__133knx1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__15-17hl._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19b7mig._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1a_6x37._.js +8 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1an_8pa._.js +7 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bbcwub._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1ducpz2._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1eris29._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1gjo_cq._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qcm08_._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1tir0vc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1w25q0m._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1xhyinn._.js +3 -0
- package/.next/standalone/.next/server/chunks/_072jl0y._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0lw8_i0._.js +1 -1
- package/.next/standalone/.next/server/chunks/_0sqqpzb._.js +3 -0
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +7 -7
- package/.next/standalone/.next/server/chunks/_1fn30_l._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1iwkh8t._.js +1 -1
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_backup_route_actions_0zoj04p.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_csv_route_actions_0l6m7lg.js +3 -0
- package/.next/standalone/.next/server/chunks/_next-internal_server_app_api_data_restore_route_actions_0-b05bv.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_02iz_9q._.js +4 -0
- package/.next/standalone/.next/server/chunks/lib_05agvk3._.js +4 -0
- package/.next/standalone/.next/server/chunks/lib_0v84u66._.js +4 -0
- package/.next/standalone/.next/server/chunks/lib_db-client_0_dch35.js +174 -0
- package/.next/standalone/.next/server/chunks/lib_linkedin-export_12imqxg.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_rpc_00nndai.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_03ibb-x.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_03ri3ji.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_078ce48.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0a69mgr.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0c9d9ti.js +7 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0cej3t8.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0cmh4g6.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0nx2_pc.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0r79-w1.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0t552z6.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0yx8ynd.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_12p-o9-.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1466dnb.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1sryxv6.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1trn-x5.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1ygu_mv.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0egamyq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qd8pzm._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0qdeuyo._.js → [root-of-the-server]__1-012q1._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_04am_h8._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_06rgzfh._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_07zb7lu._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0_79idq._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0gds903._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0hb-dhy._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0klqt9z._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_14jak5s._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_14nxd3q._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1cj2yog._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1fm1ih_._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1hdqw0-._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_1k2nmbw._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_1r62six._.js +7 -0
- package/.next/standalone/.next/server/chunks/ssr/_next-internal_server_app_insights_page_actions_0-0tf75.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_141w189._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_0uuff77._.js +25 -2
- package/.next/standalone/.next/server/chunks/ssr/app_components_1j3q-h5._.js +25 -2
- package/.next/standalone/.next/server/chunks/ssr/app_components_CompanyScores_1g0mytz.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_settings_SectorPicker_1c-29qw.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_components_ui_0pdmz2z.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_import_page_1fmu6_l.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_insights_page_1d_chja.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_launch_page_19t0dyd.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +26 -14
- package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_profile_page_0u3-l5y.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_queue_page_0c6znd6.js +11 -11
- package/.next/standalone/.next/server/chunks/ssr/app_settings_page_1f8mjj_.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +12 -13
- package/.next/standalone/.next/server/chunks/ssr/app_social_page_0h7zxda.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{lib_1c4ieuw._.js → lib_csv_1ttiu_h.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/lib_galaxy-lab_108_lu-.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/lib_separation_1305zsx.js +3 -0
- package/.next/standalone/.next/server/edge/chunks/[root-of-the-server]__0pco7a6._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/next-font-manifest.js +1 -1
- package/.next/standalone/.next/server/next-font-manifest.json +4 -0
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/prefetch-hints.json +14 -0
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/02wnf8dkxegxg.js +34 -0
- package/.next/standalone/.next/static/chunks/03-_esd2x_yk6.js +1 -0
- package/.next/standalone/.next/static/chunks/03-demj2iy-0p.js +44 -0
- package/.next/standalone/.next/static/chunks/0838_s6w-i_ik.js +1 -0
- package/.next/standalone/.next/static/chunks/0_1r-3csplxnj.js +1 -0
- package/.next/standalone/.next/static/chunks/0ka4prpk3w9wn.js +34 -0
- package/.next/standalone/.next/static/chunks/0kscsqnvfq3-r.js +1 -0
- package/.next/standalone/.next/static/chunks/0s_xxwp7z88vv.js +1 -0
- package/.next/standalone/.next/static/chunks/1-nnl8amfm4yh.js +57 -0
- package/.next/standalone/.next/static/chunks/112mv-com-mqa.js +21 -0
- package/.next/standalone/.next/static/chunks/1bkt_hhjzvbh8.js +1 -0
- package/.next/standalone/.next/static/chunks/1cmphb3kh2ers.css +3 -0
- package/.next/standalone/.next/static/chunks/1d8yv3k_atka7.js +1 -0
- package/.next/standalone/.next/static/chunks/{0ws7zy0w57ufi.js → 1eyajb9ntzlrl.js} +1 -1
- package/.next/standalone/.next/static/chunks/1z9lb-dbcg4aa.js +1 -0
- package/.next/standalone/.next/static/chunks/23hc51oa4vkhc.js +5 -0
- package/.next/standalone/.next/static/chunks/27n8k9wxlz5-7.js +1 -0
- package/.next/standalone/.next/static/chunks/2q9i7pcxcnph1.js +7 -0
- package/.next/standalone/.next/static/chunks/2w-y83mjlpnse.js +1 -0
- package/.next/standalone/.next/static/chunks/2ws1xf293j-tm.js +5 -0
- package/.next/standalone/.next/static/chunks/2z1-q0_vunbql.js +2 -0
- package/.next/standalone/.next/static/chunks/34g73qhayuevu.js +1 -0
- package/.next/standalone/.next/static/chunks/3cqn-r-y5rrw1.js +5 -0
- package/.next/standalone/.next/static/chunks/3opgg1efrx8q6.js +1 -0
- package/.next/standalone/.next/static/chunks/3p51fpxxi4d5y.js +34 -0
- package/.next/standalone/.next/static/chunks/3y40z6of3r9py.js +1 -0
- package/.next/standalone/.next/static/chunks/403dpflln8ah5.js +1 -0
- package/.next/standalone/.next/static/chunks/43pg2sursiypz.js +1 -0
- package/.next/standalone/CHANGELOG.md +203 -0
- package/.next/standalone/README.md +96 -50
- package/.next/standalone/SECURITY.md +25 -11
- package/.next/standalone/app/api/data/backup/route.js +25 -0
- package/.next/standalone/app/api/data/csv/route.js +74 -0
- package/.next/standalone/app/api/data/export/route.js +1 -1
- package/.next/standalone/app/api/data/restore/route.js +48 -0
- package/.next/standalone/app/api/data/reveal/route.js +19 -6
- package/.next/standalone/app/api/data/route.js +15 -4
- package/.next/standalone/app/api/ingest/route.js +1 -1
- package/.next/standalone/app/api/outreach/route.js +13 -73
- package/.next/standalone/app/api/queue/route.js +1 -1
- package/.next/standalone/app/api/scraper/route.js +217 -36
- package/.next/standalone/app/api/social/crm/route.js +2 -1
- package/.next/standalone/app/components/AppHeader.js +41 -21
- package/.next/standalone/app/components/AppTabs.js +12 -8
- package/.next/standalone/app/components/AutoConnect.js +286 -0
- package/.next/standalone/app/components/AutoScanButton.js +2 -2
- package/.next/standalone/app/components/Avatar.js +1 -1
- package/.next/standalone/app/components/ChainView.js +258 -113
- package/.next/standalone/app/components/CirclePanel.js +16 -16
- package/.next/standalone/app/components/ClusterSpinner.js +64 -0
- package/.next/standalone/app/components/CompanyScores.js +20 -20
- package/.next/standalone/app/components/EmptyState.js +39 -18
- package/.next/standalone/app/components/FieldStep.js +15 -13
- package/.next/standalone/app/components/FilterPanel.js +25 -18
- package/.next/standalone/app/components/ForceGraph.js +49 -14
- package/.next/standalone/app/components/GalaxyLab.js +33 -33
- package/.next/standalone/app/components/GridView.js +18 -18
- package/.next/standalone/app/components/LegacyScoresCard.js +10 -11
- package/.next/standalone/app/components/LinkedInLimits.js +57 -27
- package/.next/standalone/app/components/LiquidGlass.js +99 -0
- package/.next/standalone/app/components/ListView.js +20 -20
- package/.next/standalone/app/components/MapControls.js +5 -5
- package/.next/standalone/app/components/MappingProgress.js +16 -16
- package/.next/standalone/app/components/NoteDetail.js +13 -13
- package/.next/standalone/app/components/OnboardingGate.js +4 -4
- package/.next/standalone/app/components/OutlinkQuest.js +56 -35
- package/.next/standalone/app/components/PathsAnalyzer.js +37 -36
- package/.next/standalone/app/components/PeopleMap.js +21 -21
- package/.next/standalone/app/components/RingsView.js +11 -11
- package/.next/standalone/app/components/ScanRadar.js +84 -39
- package/.next/standalone/app/components/ScanStatusBar.js +40 -21
- package/.next/standalone/app/components/ScanTrail.js +21 -8
- package/.next/standalone/app/components/SeparationView.js +172 -124
- package/.next/standalone/app/components/Sidebar.js +308 -199
- package/.next/standalone/app/components/StaleServerBanner.js +4 -4
- package/.next/standalone/app/components/TheirCircle.js +26 -26
- package/.next/standalone/app/components/ThemeDefs.js +42 -0
- package/.next/standalone/app/components/ThemeLoader.js +20 -1
- package/.next/standalone/app/components/UpdatePanel.js +22 -22
- package/.next/standalone/app/components/UserProvider.js +22 -15
- package/.next/standalone/app/components/insights/Boards.js +275 -0
- package/.next/standalone/app/components/insights/PeopleView.js +266 -0
- package/.next/standalone/app/components/insights/Rail.js +156 -0
- package/.next/standalone/app/components/insights/Report.js +382 -0
- package/.next/standalone/app/components/insights/parts.js +239 -0
- package/.next/standalone/app/components/settings/AppearanceSection.js +47 -24
- package/.next/standalone/app/components/settings/DataSection.js +276 -109
- package/.next/standalone/app/components/settings/NetworkHealthSection.js +13 -13
- package/.next/standalone/app/components/settings/SectorPicker.js +12 -12
- package/.next/standalone/app/components/settings/SectorSection.js +13 -14
- package/.next/standalone/app/components/settings/TierSection.js +9 -9
- package/.next/standalone/app/components/settings/TitleSection.js +11 -11
- package/.next/standalone/app/components/settings/UsageSection.js +360 -0
- package/.next/standalone/app/components/ui.js +8 -8
- package/.next/standalone/app/globals.css +161 -5
- package/.next/standalone/app/import/page.js +94 -38
- package/.next/standalone/app/insights/page.js +220 -0
- package/.next/standalone/app/launch/page.js +5 -5
- package/.next/standalone/app/layout.js +6 -2
- package/.next/standalone/app/page.js +53 -53
- package/.next/standalone/app/paths/page.js +63 -63
- package/.next/standalone/app/profile/page.js +58 -58
- package/.next/standalone/app/queue/page.js +84 -72
- package/.next/standalone/app/scores/page.js +2 -2
- package/.next/standalone/app/settings/page.js +16 -13
- package/.next/standalone/app/setup/page.js +236 -133
- package/.next/standalone/app/social/Crm.js +63 -62
- package/.next/standalone/app/social/SocialHub.js +22 -22
- package/.next/standalone/app/social/Thread.js +7 -7
- package/.next/standalone/app/social/page.js +2 -2
- package/.next/standalone/lib/auto-connect.js +145 -0
- package/.next/standalone/lib/backups.js +458 -0
- package/.next/standalone/lib/chain-layout.js +32 -0
- package/.next/standalone/lib/companies.js +1 -1
- package/.next/standalone/lib/csv-store.js +131 -0
- package/.next/standalone/lib/csv.js +137 -39
- package/.next/standalone/lib/data-folder.js +19 -3
- package/.next/standalone/lib/data-import.js +5 -2
- package/.next/standalone/lib/db-client.js +78 -20
- package/.next/standalone/lib/demo.js +5 -4
- package/.next/standalone/lib/galaxy-export.js +9 -2
- package/.next/standalone/lib/galaxy-lab.js +19 -5
- package/.next/standalone/lib/galaxy-layouts.js +43 -0
- package/.next/standalone/lib/gate.js +10 -4
- package/.next/standalone/lib/in-progress.js +46 -0
- package/.next/standalone/lib/ingest.js +1 -1
- package/.next/standalone/lib/insights-board.js +613 -0
- package/.next/standalone/lib/linkedin-limits.js +240 -14
- package/.next/standalone/lib/liquid-glass.js +59 -0
- package/.next/standalone/lib/notifications.js +13 -0
- package/.next/standalone/lib/requests-client.js +10 -0
- package/.next/standalone/lib/requests.js +124 -0
- package/.next/standalone/lib/scan-pace.js +11 -0
- package/.next/standalone/lib/scan-progress.js +20 -0
- package/.next/standalone/lib/scan-risk.js +44 -0
- package/.next/standalone/lib/scan-state.js +1 -0
- package/.next/standalone/lib/scanner-setup.js +97 -15
- package/.next/standalone/lib/scraper-client.js +35 -8
- package/.next/standalone/lib/search-risk.js +7 -3
- package/.next/standalone/lib/settings-client.js +5 -3
- package/.next/standalone/lib/settings.js +13 -0
- package/.next/standalone/lib/social-store.js +3 -2
- package/.next/standalone/lib/synced-setting.js +46 -0
- package/.next/standalone/lib/theme-store.js +42 -10
- package/.next/standalone/lib/themes.js +111 -21
- package/.next/standalone/lib/usage.js +200 -0
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/scrape.py +595 -11
- package/.next/static/chunks/02wnf8dkxegxg.js +34 -0
- package/.next/static/chunks/03-_esd2x_yk6.js +1 -0
- package/.next/static/chunks/03-demj2iy-0p.js +44 -0
- package/.next/static/chunks/0838_s6w-i_ik.js +1 -0
- package/.next/static/chunks/0_1r-3csplxnj.js +1 -0
- package/.next/static/chunks/0ka4prpk3w9wn.js +34 -0
- package/.next/static/chunks/0kscsqnvfq3-r.js +1 -0
- package/.next/static/chunks/0s_xxwp7z88vv.js +1 -0
- package/.next/static/chunks/1-nnl8amfm4yh.js +57 -0
- package/.next/static/chunks/112mv-com-mqa.js +21 -0
- package/.next/static/chunks/1bkt_hhjzvbh8.js +1 -0
- package/.next/static/chunks/1cmphb3kh2ers.css +3 -0
- package/.next/static/chunks/1d8yv3k_atka7.js +1 -0
- package/.next/static/chunks/{0ws7zy0w57ufi.js → 1eyajb9ntzlrl.js} +1 -1
- package/.next/static/chunks/1z9lb-dbcg4aa.js +1 -0
- package/.next/static/chunks/23hc51oa4vkhc.js +5 -0
- package/.next/static/chunks/27n8k9wxlz5-7.js +1 -0
- package/.next/static/chunks/2q9i7pcxcnph1.js +7 -0
- package/.next/static/chunks/2w-y83mjlpnse.js +1 -0
- package/.next/static/chunks/2ws1xf293j-tm.js +5 -0
- package/.next/static/chunks/2z1-q0_vunbql.js +2 -0
- package/.next/static/chunks/34g73qhayuevu.js +1 -0
- package/.next/static/chunks/3cqn-r-y5rrw1.js +5 -0
- package/.next/static/chunks/3opgg1efrx8q6.js +1 -0
- package/.next/static/chunks/3p51fpxxi4d5y.js +34 -0
- package/.next/static/chunks/3y40z6of3r9py.js +1 -0
- package/.next/static/chunks/403dpflln8ah5.js +1 -0
- package/.next/static/chunks/43pg2sursiypz.js +1 -0
- package/CHANGELOG.md +203 -0
- package/README.md +96 -50
- package/SECURITY.md +25 -11
- package/lib/auto-connect.js +145 -0
- package/lib/backups.js +458 -0
- package/lib/chain-layout.js +32 -0
- package/lib/companies.js +1 -1
- package/lib/csv-store.js +131 -0
- package/lib/csv.js +137 -39
- package/lib/data-folder.js +19 -3
- package/lib/data-import.js +5 -2
- package/lib/db-client.js +78 -20
- package/lib/demo.js +5 -4
- package/lib/galaxy-export.js +9 -2
- package/lib/galaxy-lab.js +19 -5
- package/lib/galaxy-layouts.js +43 -0
- package/lib/gate.js +10 -4
- package/lib/in-progress.js +46 -0
- package/lib/ingest.js +1 -1
- package/lib/insights-board.js +613 -0
- package/lib/linkedin-limits.js +240 -14
- package/lib/liquid-glass.js +59 -0
- package/lib/notifications.js +13 -0
- package/lib/requests-client.js +10 -0
- package/lib/requests.js +124 -0
- package/lib/scan-pace.js +11 -0
- package/lib/scan-progress.js +20 -0
- package/lib/scan-risk.js +44 -0
- package/lib/scan-state.js +1 -0
- package/lib/scanner-setup.js +97 -15
- package/lib/scraper-client.js +35 -8
- package/lib/search-risk.js +7 -3
- package/lib/settings-client.js +5 -3
- package/lib/settings.js +13 -0
- package/lib/social-store.js +3 -2
- package/lib/synced-setting.js +46 -0
- package/lib/theme-store.js +42 -10
- package/lib/themes.js +111 -21
- package/lib/usage.js +200 -0
- package/package.json +1 -1
- package/scripts/scrape.py +595 -11
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-rnla2._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__13dx4sd._.js +0 -8
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__14ou7j5._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16iu0hv._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1kbl21f._.js +0 -3
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rphsdk._.js +0 -3
- package/.next/standalone/.next/server/chunks/_02twlca._.js +0 -10
- package/.next/standalone/.next/server/chunks/lib_0851sk0._.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_1q7p2ro._.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_1r6l86l._.js +0 -8
- package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +0 -174
- package/.next/standalone/.next/server/chunks/lib_rpc_04s8mzr.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_053z7as.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0b_-2te.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0dhbxdm.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0dxlk31.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0f8b-qc.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0pzie7_.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0r76fq_.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0ut7pjp.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_15zyqaz.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_18zpjtq.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1a8xkiz.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1e_55xo.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1oxfd1_.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1s0lod0.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__08oxiqh._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_03l7vge._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_08g31gm._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0gk_ofx._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0nwsf93._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0vho1lb._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1-658fq._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1bc46kz._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1f_n00p._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_2105jz8._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/app_components_0t908t-._.js +0 -3
- package/.next/standalone/.next/static/chunks/02pq76u7y4v9-.js +0 -22
- package/.next/standalone/.next/static/chunks/0cmq0exd4d0h9.js +0 -1
- package/.next/standalone/.next/static/chunks/0i02yxppzds1o.js +0 -1
- package/.next/standalone/.next/static/chunks/0m_p4k-q2qh--.js +0 -1
- package/.next/standalone/.next/static/chunks/0oyslj62jkubd.js +0 -1
- package/.next/standalone/.next/static/chunks/0vo-l8hxneba6.css +0 -3
- package/.next/standalone/.next/static/chunks/0yh8z2tbrc5i_.js +0 -1
- package/.next/standalone/.next/static/chunks/17-rhp8sg4m1b.js +0 -44
- package/.next/standalone/.next/static/chunks/172e10mi-tpo_.js +0 -34
- package/.next/standalone/.next/static/chunks/1ei5vbe2uw6fl.js +0 -1
- package/.next/standalone/.next/static/chunks/1f7_pl_wq7lh3.js +0 -11
- package/.next/standalone/.next/static/chunks/1jzbe7zdx9vbj.js +0 -2
- package/.next/standalone/.next/static/chunks/1m3017gp790pw.js +0 -45
- package/.next/standalone/.next/static/chunks/1t20e8u0st7ep.js +0 -1
- package/.next/standalone/.next/static/chunks/2-ch9rm27eril.js +0 -11
- package/.next/standalone/.next/static/chunks/2ldv-v3s9yaif.js +0 -1
- package/.next/standalone/.next/static/chunks/3bp284gjf7dyq.js +0 -1
- package/.next/standalone/.next/static/chunks/3k1f6clbn3gj3.js +0 -7
- package/.next/standalone/.next/static/chunks/3l4t8je6iguzc.js +0 -1
- package/.next/standalone/.next/static/chunks/3tplzuc9jk-tl.js +0 -1
- package/.next/standalone/.next/static/chunks/42m0bqr8pbovz.js +0 -11
- package/.next/static/chunks/02pq76u7y4v9-.js +0 -22
- package/.next/static/chunks/0cmq0exd4d0h9.js +0 -1
- package/.next/static/chunks/0i02yxppzds1o.js +0 -1
- package/.next/static/chunks/0m_p4k-q2qh--.js +0 -1
- package/.next/static/chunks/0oyslj62jkubd.js +0 -1
- package/.next/static/chunks/0vo-l8hxneba6.css +0 -3
- package/.next/static/chunks/0yh8z2tbrc5i_.js +0 -1
- package/.next/static/chunks/17-rhp8sg4m1b.js +0 -44
- package/.next/static/chunks/172e10mi-tpo_.js +0 -34
- package/.next/static/chunks/1ei5vbe2uw6fl.js +0 -1
- package/.next/static/chunks/1f7_pl_wq7lh3.js +0 -11
- package/.next/static/chunks/1jzbe7zdx9vbj.js +0 -2
- package/.next/static/chunks/1m3017gp790pw.js +0 -45
- package/.next/static/chunks/1t20e8u0st7ep.js +0 -1
- package/.next/static/chunks/2-ch9rm27eril.js +0 -11
- package/.next/static/chunks/2ldv-v3s9yaif.js +0 -1
- package/.next/static/chunks/3bp284gjf7dyq.js +0 -1
- package/.next/static/chunks/3k1f6clbn3gj3.js +0 -7
- package/.next/static/chunks/3l4t8je6iguzc.js +0 -1
- package/.next/static/chunks/3tplzuc9jk-tl.js +0 -1
- package/.next/static/chunks/42m0bqr8pbovz.js +0 -11
- /package/.next/standalone/.next/static/{dQUvvVSXqbkEFC3-CNcwT → 3NCyJyAPDCEYsYTwF1Ieu}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{dQUvvVSXqbkEFC3-CNcwT → 3NCyJyAPDCEYsYTwF1Ieu}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{dQUvvVSXqbkEFC3-CNcwT → 3NCyJyAPDCEYsYTwF1Ieu}/_ssgManifest.js +0 -0
- /package/.next/static/{dQUvvVSXqbkEFC3-CNcwT → 3NCyJyAPDCEYsYTwF1Ieu}/_buildManifest.js +0 -0
- /package/.next/static/{dQUvvVSXqbkEFC3-CNcwT → 3NCyJyAPDCEYsYTwF1Ieu}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{dQUvvVSXqbkEFC3-CNcwT → 3NCyJyAPDCEYsYTwF1Ieu}/_ssgManifest.js +0 -0
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33821,e=>{"use strict";var t=e.i(43476),n=e.i(71645),r=e.i(22016),o=e.i(18566),l=e.i(26005),i=e.i(76760),a=e.i(30215);let s=["#FFD700","#9B59B6","#3498DB"],u=`
|
|
2
|
-
@keyframes trail-in { from { transform: scale(0); opacity: 0; } }
|
|
3
|
-
@keyframes trail-pulse { 0%, 100% { opacity: 0.45; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.25); } }
|
|
4
|
-
.scan-trail { transition: opacity 1.2s ease; }
|
|
5
|
-
.scan-trail .dot { animation: trail-in 0.35s cubic-bezier(0.2, 0.9, 0.3, 1.3); }
|
|
6
|
-
.scan-trail .dot.newest { box-shadow: 0 0 6px 1px currentColor; }
|
|
7
|
-
.scan-trail .seed { animation: trail-pulse 1.4s ease-in-out infinite; }
|
|
8
|
-
@media (prefers-reduced-motion: reduce) {
|
|
9
|
-
.scan-trail .dot, .scan-trail .seed { animation: none; }
|
|
10
|
-
.scan-trail { transition: none; }
|
|
11
|
-
}`;function d({inset:e}){let o=(0,a.default)(),l=(0,n.useRef)(null),[i,c]=(0,n.useState)(60),[f,g]=(0,n.useState)({on:!1,pages:0,label:""}),p=o.running&&!o.pending,m=o.target?.name?`Scanning ${o.target.name}`:"Scanning";p&&(!f.on||f.pages!==(o.pages||0)||f.label!==m)&&g({on:!0,pages:o.pages||0,label:m}),(0,n.useEffect)(()=>{if(p||!f.on)return;let e=setTimeout(()=>g(e=>({...e,on:!1})),4e3);return()=>clearTimeout(e)},[p,f.on]),(0,n.useEffect)(()=>{let e=l.current;if(!e)return;let t=new ResizeObserver(()=>c(Math.max(8,Math.floor(e.clientWidth/9)-4)));return t.observe(e),()=>t.disconnect()},[]);let{pages:h}=f,y=Math.max(0,h-i),b=[];for(let e=y;e<h;e++)b.push(e);let x=`${f.label}: ${0===h?"starting":`${h.toLocaleString("en-US")} page${1===h?"":"s"} read`}. Open the Scan page`;return(0,t.jsxs)("div",{ref:l,"aria-hidden":!f.on,style:{position:"absolute",left:e,right:e,bottom:-4,height:7,pointerEvents:"none"},children:[(0,t.jsx)("style",{children:u}),(0,t.jsxs)(r.default,{href:"/setup",title:x,tabIndex:f.on?0:-1,className:"scan-trail",style:{position:"absolute",left:0,top:0,height:7,display:"flex",alignItems:"center",gap:4,pointerEvents:f.on?"auto":"none",opacity:+!!f.on,textDecoration:"none"},children:[y>0&&(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:700,color:"#889",marginRight:2,fontVariantNumeric:"tabular-nums"},children:["+",y.toLocaleString("en-US")]}),b.map(e=>{let n=s[e%s.length];return(0,t.jsx)("span",{className:`dot${e===h-1?" newest":""}`,style:{width:5,height:5,borderRadius:"50%",background:n,color:n,flexShrink:0}},e)}),f.on&&(0,t.jsx)("span",{className:"seed",style:{width:5,height:5,borderRadius:"50%",background:"#00ff88",flexShrink:0}})]})]})}var c=e.i(15812),f=e.i(40996),g=e.i(19821),p=e.i(98658),m=e.i(64745);let h={fontWeight:700,margin:0,whiteSpace:"nowrap",background:"linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"};function y({isMobile:e,onOpen:r,openId:l}){let{userId:i}=(0,c.useUser)(),a=(0,o.useRouter)(),[s,u]=(0,n.useState)([]),[d,f]=(0,n.useState)(!1),g=(0,n.useRef)(!1),p=(0,n.useRef)(r);(0,n.useEffect)(()=>{p.current=r}),(0,n.useEffect)(()=>{i&&fetch(`/api/notifications?userId=${i}`).then(e=>e.json()).then(e=>{let t=e.notifications||[];u(t);let n=null!=l&&!g.current&&t.find(e=>String(e.id)===String(l));n&&p.current&&(g.current=!0,p.current(n))}).catch(()=>{})},[i,l]);let m=s.filter(e=>!e.seen).length,h=e=>{e.seen||(fetch("/api/notifications",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"mark-seen",id:e.id})}).catch(()=>{}),u(t=>t.map(t=>t.id===e.id?{...t,seen:!0}:t))),f(!1),r?r(e):a.push(`/?note=${encodeURIComponent(e.id)}`)};return(0,t.jsxs)("div",{style:{position:"relative"},children:[(0,t.jsxs)("button",{onClick:()=>f(!d),title:"Notifications","aria-label":m?`Notifications, ${m} new`:"Notifications",style:{width:e?28:32,height:e?28:32,borderRadius:"50%",border:"none",cursor:"pointer",background:"rgba(255,255,255,0.06)",color:"#888",fontSize:e?12:14,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:["🔔",m>0&&(0,t.jsx)("span",{style:{position:"absolute",top:-2,right:-2,width:16,height:16,borderRadius:"50%",background:"#ff5050",color:"#fff",fontSize:9,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center"},children:m})]}),d&&(0,t.jsxs)("div",{style:{position:"absolute",top:40,right:0,width:320,maxHeight:400,background:"color-mix(in srgb, var(--sd-bg) 97%, transparent)",border:"1px solid rgba(255,255,255,0.1)",borderRadius:12,overflow:"hidden",zIndex:100,backdropFilter:"blur(12px)",WebkitBackdropFilter:"blur(12px)",boxShadow:"0 8px 32px rgba(0,0,0,0.5)"},children:[(0,t.jsxs)("div",{style:{padding:"12px 16px",borderBottom:"1px solid rgba(255,255,255,0.08)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)("span",{style:{fontWeight:700,fontSize:14},children:"Notifications"}),m>0&&(0,t.jsx)("button",{onClick:()=>{fetch("/api/notifications",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"mark-all-seen"})}),u(e=>e.map(e=>({...e,seen:!0})))},style:{background:"none",border:"none",color:"#3498DB",fontSize:11,cursor:"pointer",fontWeight:600},children:"Mark all read"})]}),(0,t.jsx)("div",{style:{overflowY:"auto",maxHeight:340},children:0===s.length?(0,t.jsx)("div",{style:{padding:20,textAlign:"center",color:"#555",fontSize:12},children:"No notifications yet"}):s.slice(0,20).map(e=>(0,t.jsx)("div",{role:"button",tabIndex:0,onClick:()=>h(e),onKeyDown:t=>{"Enter"===t.key&&h(e)},onMouseEnter:e=>{e.currentTarget.style.background="rgba(255,255,255,0.06)"},onMouseLeave:t=>{t.currentTarget.style.background=e.seen?"transparent":"rgba(255,215,0,0.04)"},style:{padding:"10px 16px",borderBottom:"1px solid rgba(255,255,255,0.04)",cursor:"pointer",background:e.seen?"transparent":"rgba(255,215,0,0.04)"},children:(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"flex-start"},children:[(0,t.jsx)("span",{style:{fontSize:16},children:e.icon||"📌"}),(0,t.jsxs)("div",{style:{flex:1},children:[(0,t.jsxs)("div",{style:{fontSize:12,fontWeight:600,color:e.seen?"#888":"#fff"},children:[e.title,(0,t.jsx)("span",{style:{color:"#556",marginLeft:6},children:"›"})]}),e.message&&(0,t.jsx)("div",{style:{fontSize:10,color:"#666",marginTop:2},children:e.message}),(0,t.jsx)("div",{style:{fontSize:9,color:"#444",marginTop:3},children:new Date(e.created_at).toLocaleDateString()})]})]})},e.id))})]})]})}function b({isMobile:e}){let n=(0,a.default)(),r=n.running&&"refresh"===n.action,o=(0,f.busyReason)(n);return(0,t.jsxs)("button",{onClick:async()=>{try{let e=(0,f.notReadyMessage)(await (0,f.scraperStatus)());if(e)return void alert(e);if(!window.confirm("Check for new connections?\n\nThis opens a Chrome window on your LinkedIn connections list and reads it from the newest, stopping once it reaches people already saved. It usually takes under a minute. It reads your own list, not a search, so it doesn’t use your search budget, but like any scan it is LinkedIn traffic from your account."))return;await (0,f.beginScrape)("refresh"),alert("Checking for new connections — watch it on the Scan page.")}catch(e){alert(e.message)}},disabled:!!o,title:o?`${o}. One scan at a time.`:"Check for new connections: reads your LinkedIn connections list from the newest","aria-label":"Check for new connections",style:{height:e?28:32,padding:e?"0 10px":"0 14px",borderRadius:16,border:"1px solid rgba(0,255,136,0.3)",cursor:o?"not-allowed":"pointer",opacity:o?.45:1,background:"rgba(0,255,136,0.08)",color:"#bff5d9",fontSize:e?11:12.5,fontWeight:700,display:"flex",alignItems:"center",gap:6,whiteSpace:"nowrap",flexShrink:0},children:[(0,t.jsx)("span",{"aria-hidden":"true",style:{fontSize:e?12:14},children:"↻"}),r?"Checking…":e?"New":"Check for new"]})}let x=null;function w({isMobile:e,csvMode:r,level:o}){let{userId:l}=(0,c.useUser)(),i=m.IS_DEMO?"sample":r?"csv":"own",a=(0,n.useSyncExternalStore)(p.watchLevel,()=>(0,p.levelNow)(i),()=>null);(0,n.useEffect)(()=>{null!=o?(0,p.rememberLevel)(o,i):null!=a||m.IS_DEMO||r||!l||(x||(x=(0,g.loadNetwork)(l).then(e=>(0,p.networkLevel)(e.degree1,e.degree2)).catch(()=>(x=null,null))),x.then(e=>{null!=e&&(0,p.rememberLevel)(e,i)}))},[o,a,r,i,l]);let s=o??a;return(0,t.jsx)("a",{href:m.IS_DEMO?"/launch":r?"/import":"/profile",title:null!=s?`Your profile \xb7 level ${s}`:"Your profile",style:{width:e?30:36,height:e?30:36,borderRadius:"50%",display:"flex",alignItems:"center",justifyContent:"center",background:"linear-gradient(135deg, #FFD700, #FF6B35)",color:"#000",fontWeight:800,fontSize:e?11:14,textDecoration:"none",marginLeft:e?2:4,flexShrink:0},children:s??""})}e.s(["default",0,function({active:e,isMobile:o,csvMode:a=!1,onMode:s,chips:u,level:c,onOpenNote:f,openNoteId:g=null,brand:p="h1",children:x}){let S=function(){let[e,t]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=()=>t(window.innerWidth<768);return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),e}(),k=o??S,v=!m.IS_DEMO&&!a;return(0,t.jsxs)("header",{style:{position:"relative",padding:k?"10px 12px":"20px 30px",borderBottom:"1px solid rgba(255,255,255,0.1)",flexShrink:0,background:"var(--sd-header)",backdropFilter:"var(--sd-header-blur)",WebkitBackdropFilter:"var(--sd-header-blur)"},children:[(0,t.jsxs)("div",{style:k?{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:6,marginBottom:4}:{display:"grid",gridTemplateColumns:"1fr auto 1fr",alignItems:"center",gap:16,marginBottom:8},children:[(0,t.jsx)(r.default,{href:"/",style:{textDecoration:"none",justifySelf:"start"},children:(0,t.jsx)(p,{style:{...h,fontSize:k?16:28},children:"Six Degrees"})}),(0,t.jsx)(l.default,{active:e,isMobile:k,csvMode:a,onMode:s,after:v?(0,t.jsx)(i.default,{isMobile:k}):null,children:u}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"flex-end",justifySelf:"end",gap:k?4:8},children:[!m.IS_DEMO&&(0,t.jsx)(r.default,{href:"/settings",title:"Settings","aria-label":"Settings",style:{width:k?28:32,height:k?28:32,borderRadius:"50%",flexShrink:0,background:"rgba(255,255,255,0.06)",color:"#888",fontSize:k?14:16,textDecoration:"none",display:"flex",alignItems:"center",justifyContent:"center"},children:"⚙︎"}),v&&(0,t.jsx)(y,{isMobile:k,onOpen:f,openId:g}),v&&(0,t.jsx)(b,{isMobile:k}),(0,t.jsx)(w,{isMobile:k,csvMode:a,level:c})]})]}),x,v&&(0,t.jsx)(d,{inset:k?12:30})]})}],33821)},26005,76760,e=>{"use strict";var t=e.i(43476),n=e.i(22016),r=e.i(64745);let o=[{key:"network",label:"Network Circle",short:"Circle",on:{background:"#fff",color:"#000"},off:{background:"transparent",color:"#888"}},{key:"degrees",label:"Degrees",on:{background:"linear-gradient(135deg, #FFD700, #FF6B35)",color:"#000"},off:{background:"rgba(255,255,255,0.12)",color:"#fff"}},{key:"separation",label:"Separation",on:{background:"linear-gradient(135deg, #00E5FF, #FFD700 55%, #FF7043)",color:"#000"},off:{background:"rgba(255,255,255,0.12)",color:"#fff"}}],l=[{key:"paths",href:"/paths",label:"Paths",color:"#00ff88",on:"linear-gradient(135deg, #00ff88, #3498DB)",demo:!0},{key:"outlink",href:"/queue",label:"Outlink",color:"#FF6B35",on:"linear-gradient(135deg, #FF6B35, #FFD700)",own:!0},{key:"scan",href:"/setup",label:"Scan",color:"#666",on:"linear-gradient(135deg, #00ff88, #1abc9c)",own:!0}];e.s(["default",0,function({active:e,isMobile:i=!1,csvMode:a=!1,onMode:s,children:u,after:d}){let c={padding:i?"6px 10px":"8px 16px",borderRadius:6,border:"none",fontSize:i?11:13,fontWeight:600,textDecoration:"none"};return(0,t.jsxs)("div",{id:"main-tabs",style:{display:"flex",gap:i?2:4,background:"rgba(255,255,255,0.08)",borderRadius:8,padding:i?2:3,flexWrap:i?"wrap":"nowrap"},children:[o.map(r=>{let o={...c,cursor:"pointer",...e===r.key?r.on:r.off},l=i&&r.short?r.short:r.label;return s?(0,t.jsx)("button",{type:"button",onClick:()=>s(r.key),style:o,children:l},r.key):(0,t.jsx)(n.default,{href:`/?mode=${r.key}`,style:{...o,display:"flex",alignItems:"center"},children:l},r.key)}),u,l.filter(e=>!r.IS_DEMO&&(!e.own||!a)).map(r=>{let o=e===r.key;return(0,t.jsxs)(n.default,{href:r.href,title:r.title,"aria-current":o?"page":void 0,style:{...c,display:"flex",alignItems:"center",gap:4,background:o?r.on:"rgba(255,255,255,0.06)",color:o?"#000":r.color},children:[r.label,r.badge&&(0,t.jsx)("span",{style:{fontSize:9,opacity:.7,marginLeft:2},children:r.badge})]},r.key)}),d]})}],26005);var i=e.i(71645),a=e.i(40996),s=e.i(68792);e.s(["default",0,function({isMobile:e=!1}){let r=(0,i.useSyncExternalStore)(s.watchAllDay,s.allDayNow,()=>!1),[o,l]=(0,i.useState)(()=>(0,a.scannerNow)()),[u,d]=(0,i.useState)(!1);if((0,i.useEffect)(()=>(0,a.watchScanner)(()=>{l((0,a.scannerNow)()),d(!1)}),[]),!r)return null;let c=o?.running&&String(o.action||"").startsWith("auto-bridge"),f={padding:e?"8px 12px":"8px 16px",borderRadius:6,fontSize:13,fontWeight:600,textDecoration:"none",display:"flex",alignItems:"center",gap:6,whiteSpace:"nowrap"};if(c)return(0,t.jsxs)(n.default,{href:"/setup",title:"Auto scan is running: see it on the Scan page",style:{...f,background:"rgba(0,255,136,0.15)",color:"#00ff88",border:"1px solid rgba(0,255,136,0.45)"},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"#00ff88"}}),"Auto scan"]});let g=o?.running||u;return(0,t.jsxs)("button",{onClick:()=>{d(!0),(0,s.startAutoScan)().catch(()=>d(!1))},disabled:g,title:g?"The scanner is busy: one scan at a time":"Start the all-day Auto-Bridge (experimental)",style:{...f,cursor:g?"default":"pointer",background:"rgba(255,255,255,0.04)",color:g?"#555":"#8b9a9a",border:"1px solid rgba(255,215,0,0.25)"},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"#556"}}),"Auto scan"]})}],76760)},30215,e=>{"use strict";var t=e.i(71645),n=e.i(40996);e.s(["default",0,function(){return(0,t.useSyncExternalStore)(n.watchScanner,n.scannerNow,()=>n.SCANNER_UNKNOWN)}])},39160,84278,e=>{"use strict";var t=e.i(7214),n=e.i(7837);function r(e){let t=String(e||"").trim();if(!t)return null;let n=t.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2}))?(?:\s*UTC)?$/);if(n)return Date.UTC(+n[1],n[2]-1,+n[3],+n[4],+n[5],+(n[6]||0));if(n=t.match(/^(\d{1,2})\/(\d{1,2})\/(\d{2,4}),?\s+(\d{1,2}):(\d{2})\s*(AM|PM)?$/i)){let e=100>+n[3]?2e3+ +n[3]:+n[3],t=n[4]%12;return"PM"===(n[6]||"").toUpperCase()&&(t+=12),Date.UTC(e,n[1]-1,+n[2],t,+n[5])}if(n=t.match(/^([A-Za-z]{3,9})\s+(\d{4})$/)){let e=Date.parse(`1 ${n[1]} ${n[2]} UTC`);return Number.isNaN(e)?null:e}let r=Date.parse(/\d{4}$/.test(t)?`${t} UTC`:t);return Number.isNaN(r)?null:r}let o=e=>(0,t.keyFor)({profile_url:e});function l(e=[]){let t=new Map;for(let n of e){let e=o(n["sender profile url"]),r=n["conversation id"];r&&e&&(t.has(e)||t.set(e,new Set),t.get(e).add(r))}let n=null;for(let[e,r]of t)(!n||r.size>t.get(n).size)&&(n=e);return n}let i=e=>{let t=f(e);return t?`name:${t}`:null},a=/sponsored/i,s=/in\s?mail/i,u=/linkedin\.com\/(company|showcase|school)\//i,d=e=>/^(yes|true|1)$/i.test(String(e||"").trim());function c(e,t){if(!e||!e.total)return"never";let n=t-e.last;return n<=2592e6||e.recent>=3?"warm":n<=31536e6?"cool":"dormant"}let f=e=>String(e||"").split(",")[0].normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9 ]+/g," ").replace(/\s+/g," ").trim();e.s(["buildConversations",0,function(e=[],{keepText:t=!1}={}){let n=l(e),c=new Map;for(let t of e)n&&o(t["sender profile url"])===n&&t.from&&c.set(t.from,(c.get(t.from)||0)+1);let g=f([...c].sort((e,t)=>t[1]-e[1])[0]?.[0]||""),p=e=>!!e&&(e===n||!!g&&e===`name:${g}`),m={},h=new Map,y=0,b=0;for(let n of e){let e=n["conversation id"],l=r(n.date);if(!e||null==l){b+=1;continue}if(d(n["is message draft"])){y+=1;continue}let c=o(n["sender profile url"])||i(n.from);c&&n.from&&!m[c]&&(m[c]=String(n.from).trim());let f=String(n["recipient profile urls"]||"").split(/[,;\s]+/).filter(Boolean).map(o),g=String(n.to||"").split(",").map(e=>e.trim()).filter(Boolean),x=f.length?f:g.map(i).filter(Boolean);f.length&&f.length===g.length&&f.forEach((e,t)=>{m[e]||(m[e]=g[t])}),f.length||g.forEach(e=>{let t=i(e);t&&!m[t]&&(m[t]=e)}),h.has(e)||h.set(e,{id:e,title:"",everyone:new Set,messages:[],kind:null,folder:"",newest:-1/0});let w=h.get(e);c&&w.everyone.add(c),x.forEach(e=>w.everyone.add(e)),w.kind=w.kind||function(e){let t=String(e.folder||""),n=String(e["conversation title"]||"");return a.test(t)||a.test(n)||u.test(String(e["sender profile url"]||""))?"sponsored":s.test(t)||s.test(n)?"inmail":null}(n),l>=w.newest&&(w.newest=l,w.folder=String(n.folder||"").trim().toLowerCase().slice(0,30));let S={t:l,fromMe:p(c)};t&&(S.text=[n.subject,n.content].map(e=>String(e||"").trim()).filter(Boolean).join("\n\n"),!w.title&&n["conversation title"]&&(w.title=String(n["conversation title"]).trim())),w.messages.push(S)}let x=[];for(let e of h.values()){let n=[...e.everyone].filter(e=>e&&!p(e)).sort();e.messages.sort((e,t)=>e.t-t.t);let r={id:e.id,people:n,group:n.length>1,kind:e.kind,folder:e.folder,messages:e.messages};t&&(r.title=e.title),x.push(r)}for(let e of Object.keys(m))p(e)&&delete m[e];return{self:n,conversations:x,names:m,drafts:y,skipped:b}},"buildInvitations",0,function(e=[],{keepText:t=!1}={}){let n=[];for(let l of e){let e=String(l.direction||"").toUpperCase();if("INCOMING"!==e&&"OUTGOING"!==e)continue;let a="INCOMING"===e?"in":"out",s=String(("in"===a?l.from:l.to)||"").trim(),u=o("in"===a?l.inviterprofileurl:l.inviteeprofileurl),d=(u&&/\/in\//.test(u)?u:null)||i(s);if(!d)continue;let c=r(l["sent at"]),f={id:`${a}|${d}|${c??""}`,dir:a,key:d,name:s.slice(0,120),t:c};t&&String(l.message||"").trim()&&(f.note=String(l.message).trim().slice(0,2e3)),n.push(f)}return n.sort((e,t)=>(t.t||0)-(e.t||0))},"careerChapters",0,function(e=[],t=[],n=Date.now()){let l=e.map(e=>({company:e["company name"]||"",title:e.title||"",from:r(e["started on"]),to:r(e["finished on"])})).filter(e=>e.company&&null!=e.from).sort((e,t)=>e.from-t.from),i=t.map(e=>({url:o(e.url||e.profile_url),t:r(e["connected on"]||e.connected_on)})).filter(e=>null!=e.t);return l.map(e=>{let t=e.to??n,r=i.filter(n=>n.t>=e.from&&n.t<t);return{...e,to:e.to,made:r.length,people:r.map(e=>e.url)}})},"conversationSummary",0,function(e){let t=e.messages[e.messages.length-1];return{id:e.id,people:e.people,group:e.group,kind:e.kind||null,folder:e.folder||"",last:t?t.t:null,lastFromThem:t?!t.fromMe:null,count:e.messages.length,mine:e.messages.filter(e=>e.fromMe).length}},"invitationSplit",0,function(e=[]){let t=0,n=0;for(let r of e){let e=String(r.direction||"").toUpperCase();"INCOMING"===e?t+=1:"OUTGOING"===e&&(n+=1)}return{incoming:t,outgoing:n,total:t+n}},"messageStats",0,function(e=[]){let t=l(e),n=new Map;for(let t of e){let e=o(t["sender profile url"]),l=t["conversation id"];if(!l||!e)continue;let i=String(t["recipient profile urls"]||"").split(/[,;\s]+/).filter(Boolean).map(o),a=r(t.date);if(null==a)continue;n.has(l)||n.set(l,{people:new Set,msgs:[]});let s=n.get(l);s.people.add(e),i.forEach(e=>s.people.add(e)),s.msgs.push({from:e,t:a})}let i=0,a=new Map;for(let e of n.values()){let n=[...e.people].filter(e=>e!==t);if(1!==n.length||!e.people.has(t))continue;let r=n[0],o=a.get(r)||{last:0,lastFromThem:!1,total:0,times:[]};for(let n of e.msgs)o.total+=1,o.times.push(n.t),n.t>=o.last&&(o.last=n.t,o.lastFromThem=n.from!==t),n.t>i&&(i=n.t);a.set(r,o)}for(let e of a.values())e.recent=e.times.filter(e=>e>i-7776e6).length,delete e.times;return{self:t,asOf:i||null,people:a}},"nameKey",0,f,"postingEffect",0,function(e=[],t=[]){let n=e.map(e=>({t:r(e.date),link:e.sharelink||e["share link"]||""})).filter(e=>null!=e.t).sort((e,t)=>e.t-t.t),o=t.map(e=>r(e["connected on"]||e.connected_on)).filter(e=>null!=e).sort((e,t)=>e-t);if(!o.length)return{posts:[],usualWeek:0,afterPosts:0};let l=Math.max(6048e5,o[o.length-1]-o[0]),i=o.length/l*6048e5,a=n.map(e=>({...e,week:o.filter(t=>t>=e.t&&t<e.t+6048e5).length})),s=a.length?a.reduce((e,t)=>e+t.week,0)/a.length:0;return{posts:a,usualWeek:i,afterPosts:s}},"readTable",0,function(e,t){let r=(0,n.parseCsv)(String(e||"")),o=r.findIndex(e=>e.some(e=>e.trim().toLowerCase()===t.toLowerCase()));if(o<0)return[];let l=r[o].map(e=>e.trim().toLowerCase());return r.slice(o+1).filter(e=>e.some(e=>e.trim())).map(e=>Object.fromEntries(l.map((t,n)=>[t,(e[n]??"").trim()])))},"warmthOf",0,c],84278);let g="six-degrees-galaxy-lab",p="six-degrees-galaxy-layouts",m=Object.freeze({on:!0,gravity:0,rings:1,push:15,pull:1,distance:1,dotSize:1,lines:1,sizeBy:"power",orbit:0,names:"key",branch:!1,colourBy:"tier",speed:15,loop:!1,labels:!0,v:2}),h=["gravity","rings","push","pull","distance","orbit","dotSize","lines","sizeBy","names","branch","colourBy","speed","loop"],y=["gravity","rings","push","pull","distance"],b=Object.freeze({gravity:.8,rings:0,push:6,pull:6,distance:.15,sizeBy:"links"}),x=Object.freeze({rings:{lines:1},orbit:{lines:1},clusters:{lines:3}}),w=Object.freeze({gravity:0,rings:3,push:6,pull:4,distance:.22,sizeBy:"power"}),S=new Set,k=null;function v(){return k||(k=function(){try{let e=JSON.parse(localStorage.getItem(g)||"null");if(!e||"object"!=typeof e)return m;return{...m,...e,...e.v===m.v?{}:{branch:!1},v:m.v,on:!0}}catch{return m}}()),k}function M(e){k=null===e?{...m,labels:v().labels}:{...v(),...e,on:!0};try{localStorage.setItem(g,JSON.stringify(k))}catch{}S.forEach(e=>e())}let j=null,I=new Set;function C(){if(!j){try{j=JSON.parse(localStorage.getItem(p)||"[]")}catch{j=[]}Array.isArray(j)||(j=[])}return j}function F(e){j=e;try{localStorage.setItem(p,JSON.stringify(e))}catch{}I.forEach(e=>e())}let N=new Set,O={at:null,playing:!1,min:null,max:null,of:0,find:"",fly:0,found:0,fit:0,social:void 0},B=null;function E(e){let t={...O,...e};Object.keys(e).every(e=>Object.is(t[e],O[e]))||(O=t,N.forEach(e=>e()))}function D(){cancelAnimationFrame(B),B=null,E({playing:!1})}let L=null;function z(e){let n=new Map;for(let[r,o]of Object.entries(e?.people||{}))n.set((0,t.keyFor)({profile_url:r}),{...o});for(let[r,o]of Object.entries(e?.live||{})){let e=(0,t.keyFor)({profile_url:r}),l=n.get(e)||{total:0,recent:0};o.last&&(!l.last||o.last>l.last)&&(l.last=o.last,"boolean"==typeof o.lastFromThem&&(l.lastFromThem=o.lastFromThem)),l.unread=o.unread,l.total=Math.max(l.total||0,1),n.set(e,l)}let r=Math.max(e?.asOf||0,e?.liveAt&&Date.parse(e.liveAt)||0);for(let e of n.values())(e.last||0)>r&&(r=e.last);return{merged:n,asOf:r,chapters:e?.chapters||[],posts:e?.posts?.posts||[]}}let T={1:"#4FC3F7",2:"#BA68C8",3:"#FFB74D"},$=["#FF6B6B","#4ECDC4","#FFD93D","#A29BFE","#00B894","#FD79A8","#74B9FF","#E17055"],A={warm:"#FF7043",cool:"#4FC3F7",dormant:"#8D6E63",never:"#546E7A"},_="#4a5568",R=["#2b1b6b","#6a1b9a","#c2185b","#f4511e","#ffb300","#fff3b0"];function U(e){let t=Math.max(0,Math.min(1,Number(e)||0))*(R.length-1),n=Math.min(R.length-2,Math.floor(t)),r=t-n,o=R[n],l=R[n+1];return`#${[1,3,5].map(e=>Math.round(parseInt(o.slice(e,e+2),16)*(1-r)+parseInt(l.slice(e,e+2),16)*r).toString(16).padStart(2,"0")).join("")}`}function W(e=[],t=()=>0){let n=[...new Set(e.map(t))].sort((e,t)=>e-t),r=new Map(n.map((e,t)=>[e,n.length>1?t/(n.length-1):1]));return e=>r.get(t(e))??0}let P=e=>String(e||"").trim().toLowerCase();e.s(["CLUSTERS",0,b,"FORCE_KEYS",0,y,"LAB_DEFAULTS",0,m,"LAYOUT_LOOKS",0,x,"ORBIT",0,w,"applyLayout",0,function(e){let t=C().find(t=>t.name===e);t&&M(Object.fromEntries(h.filter(e=>e in t.settings).map(e=>[e,t.settings[e]])))},"bornTimes",0,function(e,t){let n=new Map(e.map(e=>[e.id,e])),r=new Map,o=(e,l=0)=>{if(r.has(e.id))return r.get(e.id);let i=-1/0,a=t.get(e.id);if(1===e.degree||null==a||l>6){let t=e.connected_date?Date.parse(e.connected_date):NaN;i=Number.isNaN(t)?-1/0:t}return null!=a&&n.has(a)&&l<=6&&(i=Math.max(i,o(n.get(a),l+1))),r.set(e.id,i),i};return e.map(e=>o(e))},"chapterAt",0,function(e,t){let n=null;for(let r of e?.chapters||[])Number.isFinite(r.from)&&r.from<=t&&(!n||r.from>n.from)&&(n=r);return n&&(!Number.isFinite(n.to)||n.to>t)?n:null},"clockNow",0,()=>O,"colourScheme",0,function(e,n,r,o){if("degree"===e)return{of:e=>T[Math.min(e.degree||1,3)],legend:[["1st",T[1]],["2nd",T[2]],["3rd+",T[3]]]};if("company"===e){let e=new Map;for(let t of n){let n=P(t.company);if(!n)continue;let r=e.get(n)||{name:String(t.company).trim(),n:0};r.n+=1,e.set(n,r)}let t=[...e.entries()].filter(([,e])=>e.n>1).sort((e,t)=>t[1].n-e[1].n).slice(0,$.length),r=new Map(t.map(([e],t)=>[e,$[t]]));return{of:e=>r.get(P(e.company))||_,legend:[...t.map(([,e],t)=>[e.name,$[t]]),["Other",_]]}}if("heat"===e){let e=function(e=[]){return W(e,t.score)}(n);return{of:t=>U(e(t)),heat:e,legend:[["Cold",U(.1)],["Warm",U(.45)],["Hot",U(.75)],["Hottest",U(1)]]}}return"warmth"===e&&o?{of:e=>1===(e.degree||1)?A[c(o.merged.get((0,t.keyFor)(e)),o.asOf)]:"#2d3748",legend:[["Warm",A.warm],["Cool",A.cool],["Dormant",A.dormant],["Never messaged",A.never]]}:{of:e=>r[e.tier]||"#666",legend:Object.entries(r)}},"effectiveLab",0,e=>e.on?e:e.labels===m.labels?m:{...m,labels:e.labels},"findMatches",0,function(e,t){let n=String(t||"").trim().toLowerCase();if(n.length<2)return null;let r=new Set;for(let t of e)[t.name,t.company,t.role,t.headline].some(e=>e&&String(e).toLowerCase().includes(n))&&r.add(t.id);return r},"forgetLayout",0,function(e){F(C().filter(t=>t.name!==e))},"heatBy",0,W,"heatColour",0,U,"labNow",0,v,"layoutOf",0,function(e){let t=t=>Object.entries(t).every(([t,n])=>e[t]===n);return y.every(t=>e[t]===m[t])?"rings":t(b)?"clusters":t(w)?"orbit":null},"layoutsNow",0,C,"loadSocial",0,function(){return L||(L=fetch("/api/social").then(e=>e.ok?e.json():{}).then(e=>{E({social:e.social?z(e.social):null})}).catch(()=>E({social:null}))),L},"mergeSocial",0,z,"milestones",0,function(e){let t=[];for(let n of e?.chapters||[])Number.isFinite(n.from)&&t.push({t:n.from,kind:"job",label:n.company});for(let n of e?.posts||[])Number.isFinite(n.t)&&t.push({t:n.t,kind:"post",label:"You posted"});return t.sort((e,t)=>e.t-t.t)},"pause",0,D,"play",0,function e(){if(null==O.min||null==O.max||O.max<=O.min)return;let t=O.max-O.min,n=1e3*Math.max(1,Number(v().speed)||15),r=null==O.at||O.at>=O.max?O.min:O.at,o=performance.now()-(r-O.min)/t*n;E({at:r,playing:!0});let l=r=>{let i=Math.min(O.max,O.min+(r-o)/n*t);if(E({at:i}),i>=O.max){B=null,E({playing:!1}),v().loop&&setTimeout(()=>{B||O.at!==O.max||(E({at:O.min}),e())},1200);return}B=requestAnimationFrame(l)};cancelAnimationFrame(B),B=requestAnimationFrame(l)},"reachCounts",0,function(e,t){let n=new Map(e.map(e=>[e.id,0]));for(let r of e){let e=t.get(r.id);for(let r=0;null!=e&&r<7;r++)n.set(e,(n.get(e)||0)+1),e=t.get(e)}return n},"saveLayout",0,function(e){let t=String(e||"").trim().slice(0,40);if(!t)return;let n=v(),r=Object.fromEntries(h.map(e=>[e,n[e]]));F([...C().filter(e=>e.name!==t),{name:t,settings:r}])},"setClock",0,E,"setLab",0,M,"stopReplay",0,function(){D(),E({at:null})},"watchClock",0,function(e){return N.add(e),()=>N.delete(e)},"watchLab",0,function(e){S.add(e);let t=t=>{t.key===g&&(k=null,e())};return window.addEventListener("storage",t),()=>{S.delete(e),window.removeEventListener("storage",t)}},"watchLayouts",0,function(e){return I.add(e),()=>I.delete(e)}],39160)},98658,e=>{"use strict";function t(e=[],n=[]){let r={S:0,A:0,B:0,C:0,D:0};for(let t of e)r[t.tier]=(r[t.tier]||0)+1;let o=0;for(let e of n)"S"===e.tier&&(o+=1);let l=new Set(n.map(e=>e.source_connection_id).filter(Boolean)).size,i=e.filter(e=>e.is_catalyst).length;return 100*r.S+40*r.A+15*r.B+5*r.C+ +r.D+200*l+150*i+50*o+e.length}let n=e=>Math.floor(Math.sqrt(Math.max(0,e)/10)),r="six-degrees-level",o={},l=new Set;function i(e="own"){if(!(e in o))try{let t=sessionStorage.getItem(`${r}:${e}`),n=null==t?NaN:Number(t);o[e]=Number.isFinite(n)?n:null}catch{o[e]=null}return o[e]}e.s(["levelNow",0,i,"levelOf",0,n,"networkLevel",0,(e,r)=>n(t(e,r)),"networkPower",0,t,"rememberLevel",0,function(e,t="own"){if(i(t)!==e){o[t]=e;try{sessionStorage.setItem(`${r}:${t}`,String(e))}catch{}l.forEach(e=>e())}},"watchLevel",0,function(e){return l.add(e),()=>l.delete(e)}])},19821,e=>{"use strict";async function t(e){let t=e?`/api/network?userId=${encodeURIComponent(e)}`:"/api/network",n=await fetch(t);if(!n.ok)throw Error(`Failed to load network (${n.status})`);let r=await n.json();return{degree1:r.degree1||[],degree2:r.degree2||[],degree3:r.degree3||[],ties:Number(r.ties)||0}}e.s(["loadNetwork",0,t])},7214,36774,e=>{"use strict";let t=/^[A-Za-z0-9_-]+\.(webp|jpg|jpeg|png)$/,n="/avatars/";function r(e){return"string"==typeof e&&e.startsWith(n)&&t.test(e.slice(n.length))?e:null}e.s(["localPhoto",0,r],36774);let o={S:0,A:1,B:2,C:3,D:4};function l(e){let t=parseFloat(e?.power_score);return Number.isFinite(t)?t:0}function i(e){return Math.round(10*l(e))/10}function a(e){return String(e?.profile_url||"").split(/[?#]/)[0].replace(/\/+$/,"")||`id:${e?.id}`}let s=(e,t)=>String(e??"").localeCompare(String(t??""),void 0,{numeric:!0});function u(e,t){return(o[e.tier]??9)-(o[t.tier]??9)||l(t)-l(e)||String(e.name||"").localeCompare(String(t.name||""))||s(e.id,t.id)}function d(e,t){return e.bridge&&t.bridge?u(e.bridge,t.bridge):e.bridge?-1:t.bridge?1:s(e.id,t.id)}function c(e,t){return t.score-e.score||t.waysIn-e.waysIn||d(e.routes[0]||f,t.routes[0]||f)||String(e.person.name||"").localeCompare(String(t.person.name||""))||(e.key<t.key?-1:+(e.key>t.key))}let f={id:null,bridge:null};function g(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length<2?t[0]||"":`${t[0]} ${t[t.length-1].charAt(0)}.`}function p(e,t){let n=String(e||"");return t<=1?n?"…":"":n.length>t?`${n.slice(0,t-1)}…`:n}e.s(["TIERS",0,["S","A","B","C","D"],"compareBridges",0,u,"comparePower",0,c,"convergeLayout",0,function(e,t=800,n=!1,{cards:r=!1,mutuals:o=0}={}){let l=r?46:n?40:34,i=Math.round(t*(n?.44:.36)),a=Math.round(t*(n?.8:r?.6:.62)),s=[],u=null;for(let t of e?.routes||[])t.bridge?s.push({id:t.id,bridge:t.bridge,unresolved:!1,count:1}):u?u.count++:s.push(u={id:null,bridge:null,unresolved:!0,count:1});let d=Math.max(0,Math.floor(Number(o)||0)-(e?.waysIn||0)),c=Math.min(60,d),f=r?12:11,m=r?220:n?96:120,h=Math.max(1,Math.floor(m/f)+1),y=Math.ceil(c/h),b=c?40+y*f:0,x=Math.max(0,s.length-1)*l+b,w=Math.max(n?190:r?250:220,32+x+48),S=w/2,k=S-x/2,v=Math.max(4,Math.floor((i-10-42)/6)),M=s.map((e,t)=>{let n=e.unresolved?`can't be named (${e.count})`:e.bridge.name||"";return{...e,x:i,y:k+t*l,r:6,primary:0===t&&!e.unresolved,label:n.length<=v?n:p(e.unresolved?n:g(n),v)}}),j={x:a,y:S,r:17*!r,rings:r?[]:[32,50,70].filter(e=>e<=S-4)},I=M.map(t=>({key:e?.key,bridgeId:t.id,primary:t.primary,unresolved:t.unresolved,tier:t.bridge?.tier??null,x1:t.x,y1:t.y,x2:j.x,y2:j.y})),C={x:20,y:S,r:14},F=M.map(e=>({id:e.id,x1:C.x,y1:C.y,x2:e.x,y2:e.y})),N=e?[{key:e.key,p:e,x:j.x,y:j.y,r:j.r,rings:j.rings,big:!0,label:""}]:[],O=k+Math.max(0,s.length-1)*l+40,B=r?i-236+8:i-m,E=Array.from({length:c},(e,t)=>({x:B+t%h*f,y:O+Math.floor(t/h)*f})),D=e?.waysIn?e.waysIn/(e.waysIn+d):1;return{width:t,height:w,you:C,target:j,people:N,bridges:M,links:I,spokes:F,ghosts:E,unscanned:d,ghostLabel:c?{x:B,y:O-13}:null,drawn:D}},"keyFor",0,a,"mapCount",0,function(e,t=10){let n=Math.max(0,Math.min(100,Number(e)||0));return n<=50?t:Math.max(1,Math.round(t*(100-n)/50))},"mostMutuals",0,function(e=[],t=()=>0,n=7){return[...e].sort((e,n)=>Math.max(t(n)||0,n.waysIn)-Math.max(t(e)||0,e.waysIn)||n.waysIn-e.waysIn||c(e,n)).slice(0,n)},"routeIndex",0,function(e=[]){let t=new Map;for(let n of e||[]){let e=a(n),r=t.get(e);r||(r=new Set,t.set(e,r)),r.add(n.source_connection_id??null)}return t},"routesFor",0,function(e,t,n){return e?[...t?.get(a(e))??(null!=e.source_connection_id?new Set([e.source_connection_id]):new Set)].map(e=>({id:e,bridge:n?.get(e)??null})).sort(d):[]},"score",0,l,"score1",0,i,"separationPeople",0,function(e=[],t=[]){let n=new Map;for(let e of t||[])n.set(e.id,e);let o=new Map,l=new Map;for(let t of e||[]){let e=a(t);l.set(t.id,e);let n=o.get(e);n?function(e,t){let n=i(e)-i(t);if(n)return n>0;let o=!!r(e.profile_image_url);return!!r(t.profile_image_url)!==o?o:0>s(e.id,t.id)}(t,n.person)&&(n.person=t):(n={key:e,person:t,rowIds:[],routeIds:new Set},o.set(e,n)),n.rowIds.push(t.id),n.routeIds.add(t.source_connection_id??null)}let u={people:o.size,byTier:{S:0,A:0,B:0,C:0,D:0},multi:0,bridges:0,unresolvedIds:0,peopleOnlyUnresolved:0,onlyUnresolvedVia:0},f=new Set,g=new Set,p=new Set,m=[];for(let e of o.values()){let t=[...e.routeIds].map(e=>({id:e,bridge:n.get(e)??null}));t.sort(d);let r=t.filter(e=>e.bridge);for(let e of t)(e.bridge?f:g).add(e.id);if(!r.length)for(let e of(u.peopleOnlyUnresolved++,t))p.add(e.id);let{person:o}=e,l=o.tier;void 0!==u.byTier[l]&&u.byTier[l]++,t.length>1&&u.multi++,m.push({key:e.key,person:o,score:i(o),tier:l,routes:t,waysIn:t.length,rowIds:e.rowIds,haystack:[o.name,o.headline,o.company,o.role,...r.map(e=>e.bridge.name)].filter(Boolean).join("\n").toLowerCase(),rank:0,tied:!1})}return u.bridges=f.size,u.unresolvedIds=g.size,u.onlyUnresolvedVia=p.size,m.sort(c),function(e){for(let t=0;t<e.length;t++){let n=e[t],r=e[t-1],o=r&&r.score===n.score&&r.waysIn===n.waysIn;n.rank=o?r.rank:t+1,o&&(n.tied=!0,r.tied=!0)}}(m),{people:m,rowToKey:l,summary:u}},"shortName",0,g,"summitLayout",0,function(e=[],t=800,n=!1,{cards:r=!1}={}){let o=r?45:n?36:26,l=Math.round(.42*t),i=Math.round(.58*t),a=e.map((e,n)=>{var l;return{key:e.key,p:e,x:i,y:16+n*o,r:r?0:(l=e.waysIn)>=4?8.5:3===l?7:2===l?5.5:4,label:p(`#${e.rank}${e.tied?"=":""} ${e.person.name||""}`,Math.floor((t-i-60)/6.2))}}),s=new Map,d="\0unresolved";for(let e of a)for(let t of e.p.routes){let n=t.bridge?t.id:d,r=s.get(n);r||(r={id:t.bridge?t.id:null,bridge:t.bridge,unresolved:!t.bridge,ys:[],count:0},s.set(n,r)),r.count++,r.ys.push(e.y)}let c=[...s.values()].map(e=>({...e,bary:e.ys.reduce((e,t)=>e+t,0)/e.ys.length}));c.sort((e,t)=>e.bary-t.bary||e.unresolved-t.unresolved||(e.bridge&&t.bridge?u(e.bridge,t.bridge):0));let f=a.length?a[a.length-1].y:16,m=function(e=[],t=18,n=0){let r=[];e.forEach((e,n)=>{for(r.push({sum:e-n*t,count:1});r.length>1&&r[r.length-2].sum/r[r.length-2].count>r[r.length-1].sum/r[r.length-1].count;){let e=r.pop();r[r.length-1].sum+=e.sum,r[r.length-1].count+=e.count}});let o=r.flatMap(e=>Array(e.count).fill(e.sum/e.count)).map((e,n)=>e+n*t),l=o.length&&o[0]<n?n-o[0]:0;return o.map(e=>e+l)}(c.map(e=>e.bary),r?32:18,16),h=Math.max(4,Math.floor((l-10-42)/6));c.forEach((e,t)=>{if(e.x=l,e.y=m[t],e.r=5,e.unresolved)e.label=p(`can't be named (${e.count})`,h);else{let t=e.bridge.name||"";e.label=t.length<=h?t:p(g(t),h)}delete e.ys});let y=new Map(c.map(e=>[e.unresolved?d:e.id,e]));for(let e of c)e.onlyFor=0,e.bestFor=0;for(let e of a){let t=e.p.routes[0],n=t?y.get(t.bridge?t.id:d):null;n&&n.bestFor++,1===e.p.waysIn&&n&&n.onlyFor++}let b=[];for(let e of a){let t=new Set;e.p.routes.forEach((n,r)=>{let o=n.bridge?n.id:d;if(t.has(o))return;t.add(o);let l=y.get(o);b.push({key:e.key,bridgeId:l.id,primary:0===r&&!l.unresolved,unresolved:l.unresolved,tier:l.bridge?.tier??null,x1:l.x,y1:l.y,x2:e.x,y2:e.y})})}let x=Math.max(f,c.length?c[c.length-1].y:0),w=a.length?Math.ceil(x+16):0,S={x:20,y:a.length?(16+Math.max(f,x))/2:16,r:14},k=c.map(e=>({id:e.id,x1:S.x,y1:S.y,x2:e.x,y2:e.y}));return{width:t,height:w,you:S,people:a,bridges:c,links:b,spokes:k}}],7214)}]);
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,85957,e=>{"use strict";var t=e.i(43476),n=e.i(71645),o=e.i(33821),i=e.i(99883),r=e.i(18566),l=e.i(40996),s=e.i(19821),a=e.i(64745),d=e.i(7837),c=e.i(2776);e.i(47716);var h=e.i(36534),p=e.i(77899),u=e.i(17983),f=e.i(43079),g=e.i(52048),x=e.i(47560),y=e.i(94657),m=e.i(7214),b=e.i(89154),v=e.i(82044),j=e.i(39160);let k=Object.freeze({live:!1,spread:1,pull:1,links:1}),S={fontSize:10.5,color:"#667",lineHeight:1.45,marginTop:6},w=[{key:"spread",label:"Spread",min:.2,max:4,step:.05,tip:"How hard bubbles push each other apart."},{key:"pull",label:"Pull to their group",min:0,max:4,step:.05,tip:"How hard each bubble keeps to its sector. At 0 they find their own shape."},{key:"links",label:"Pull along lines",min:0,max:6,step:.05,tip:"How hard two bubbles joined by a line pull together."}];function M({colourBy:e,onColourBy:n,physics:o,onPhysics:i,heatHint:r}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:G,children:"Colour"}),(0,t.jsx)(U,{value:e,onChange:n,options:[["sector","Sector"],["heat","Heat"]]}),"heat"===e&&(0,t.jsx)("div",{style:S,children:r}),(0,t.jsx)("div",{style:G,children:"Physics"}),(0,t.jsx)(U,{value:o.live?"on":"off",onChange:e=>i({...o,live:"on"===e}),options:[["off","Still"],["on","Live"]]}),o.live?(0,t.jsxs)("div",{style:{marginTop:8},children:[w.map(e=>(0,t.jsxs)("label",{title:e.tip,style:{display:"block",marginBottom:6},children:[(0,t.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",fontSize:11,color:"#aab"},children:[(0,t.jsx)("span",{children:e.label}),(0,t.jsxs)("span",{style:{color:o[e.key]===k[e.key]?"#556":"#cfe6f7",fontVariantNumeric:"tabular-nums"},children:[o[e.key].toFixed(2),"×"]})]}),(0,t.jsx)("input",{type:"range",min:e.min,max:e.max,step:e.step,value:o[e.key],onChange:t=>i({...o,[e.key]:Number(t.target.value)}),style:{width:"100%",accentColor:"#3498DB"}})]},e.key)),(0,t.jsx)("div",{style:S,children:"Drag a bubble and the ones joined to it follow. Click still opens it."}),(0,t.jsx)("button",{type:"button",onClick:()=>i({...k,live:!0}),style:{marginTop:6,padding:"4px 10px",borderRadius:6,fontSize:10.5,cursor:"pointer",border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.04)",color:"#aab"},children:"Reset the forces"})]}):(0,t.jsx)("div",{style:S,children:"Live lets the bubbles move: drag them, and change the forces that lay the map out."})]})}function z(e,t){let[,o]=(0,n.useState)(0),i=(0,n.useRef)(null),r=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(!t.live||!e.nodes.length)return;let n=0,r=(0,f.forceSimulation)(e.nodes).force("x",(0,g.forceX)(e=>e.ax).strength(.12*t.pull)).force("y",(0,x.forceY)(e=>e.ay).strength(.12*t.pull)).force("collide",(0,h.forceCollide)(e=>e.r+3).iterations(2)).force("charge",(0,u.forceManyBody)().strength(-25*t.spread)).force("link",(0,p.forceLink)(e.edges).id(e=>e.id).strength(e=>(e.k??.1)*t.links).distance(60*Math.sqrt(t.spread))).alpha(.15).on("tick",()=>{n||(n=requestAnimationFrame(()=>{n=0,o(e=>e+1)}))});return i.current=r,()=>{r.stop(),cancelAnimationFrame(n),i.current=null}},[e,t.live,t.spread,t.pull,t.links]),{drag:t.live?(e,t)=>{let n=i.current;if(!n)return;let o=e.currentTarget.ownerSVGElement,l=o?.getScreenCTM();if(!l)return;let s=l.inverse(),a=e=>{let t=o.createSVGPoint();return t.x=e.clientX,t.y=e.clientY,t.matrixTransform(s)},d={x:e.clientX,y:e.clientY};r.current=!1;let c=e=>{Math.hypot(e.clientX-d.x,e.clientY-d.y)>3&&(r.current=!0);let n=a(e);t.fx=n.x,t.fy=n.y},h=()=>{t.fx=null,t.fy=null,n.alphaTarget(0),window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",h)},p=a(e);t.fx=p.x,t.fy=p.y,n.alphaTarget(.08).restart(),window.addEventListener("pointermove",c),window.addEventListener("pointerup",h)}:null,clicked:()=>!r.current||(r.current=!1,!1)}}function C({id:e}){return(0,t.jsx)("defs",{children:[0,1,2,3,4,5].map(n=>(0,t.jsxs)("radialGradient",{id:`${e}-${n}`,children:[(0,t.jsx)("stop",{offset:"0",stopColor:(0,j.heatColour)(n/5),stopOpacity:.16+.07*n}),(0,t.jsx)("stop",{offset:"1",stopColor:(0,j.heatColour)(n/5),stopOpacity:0})]},n))})}function B({id:e,nodes:n,heat:o}){return(0,t.jsx)("g",{style:{mixBlendMode:"screen",pointerEvents:"none"},children:n.filter(e=>o(e)>=.5).map(n=>(0,t.jsx)("circle",{cx:n.x,cy:n.y,r:1.9*n.r+18,fill:`url(#${e}-${Math.round(5*o(n))})`},n.id))})}var F=e.i(44902),$=e.i(54322);let R=$.TIER_COLORS,T=[...b.INDUSTRIES,b.UNKNOWN_INDUSTRY],I=e=>Number(e||0).toLocaleString("en-US"),W={value:{label:"Cluster value",of:e=>e.value,k:2},size:{label:"Cluster size",of:e=>e.size,k:2.6},s:{label:"S tier inside",of:e=>e.S,k:6}};function O({d1:e=[],d2:o=[],top:i=null,look:l=null,colourBy:s="sector",physics:a=k}){let d=(0,r.useRouter)(),[c,h]=(0,n.useState)("value"),[p,u]=(0,n.useState)("scanned"),[f,g]=(0,n.useState)(()=>(0,F.makeGrid)([1])),[x,y]=(0,n.useState)(()=>new Set),[j,S]=(0,n.useState)(""),[w,M]=(0,n.useState)(!0),[z,C]=(0,n.useState)("top"),B=(0,n.useMemo)(()=>(function(e=[],t=[],{maxLinks:n=400}={}){let o=new Set((e||[]).map(e=>e.id)),i=new Map,r=new Map;for(let e of t||[]){let t=e?.source_connection_id;if(null==t||!o.has(t))continue;let n=(0,m.keyFor)(e),l=i.get(t);l||i.set(t,l=new Map),l.has(n)||l.set(n,e);let s=r.get(n);s||r.set(n,s=new Set),s.add(t)}let l=(e||[]).map(e=>{let t=i.get(e.id),n=0,o=0,l=0;if(t)for(let[e,i]of t)"S"===i.tier?n++:"A"===i.tier&&o++,r.get(e)?.size===1&&l++;let s=t?t.size:0;return{person:e,id:e.id,key:(0,m.keyFor)(e),size:s,S:n,A:o,value:(({size:e=0,S:t=0,A:n=0}={})=>e+2*t+n)({size:s,S:n,A:o}),only:l,share:s?l/s:0}}),s=new Map;for(let e of r.values()){if(e.size<2||e.size>8)continue;let t=[...e].sort();for(let e=0;e<t.length;e++)for(let n=e+1;n<t.length;n++){let o=`${t[e]}\u0000${t[n]}`;s.set(o,(s.get(o)||0)+1)}}let a=[...s].map(([e,t])=>{let[n,o]=e.split("\0");return{a:n,b:o,shared:t}}).sort((e,t)=>t.shared-e.shared||(e.a<t.a?-1:1)).slice(0,n),d=l.filter(e=>e.size>0).map(e=>e.value).sort((e,t)=>e-t);return{people:l,links:a,rank:e=>{let t=l.find(t=>t.id===e);if(!t||!t.size||d.length<2)return null;let n=0;for(;n<d.length&&d[n]<t.value;)n++;return n/(d.length-1)}}})(e,o),[e,o]),$=(0,n.useMemo)(()=>(0,F.gridCounts)({1:B.people.filter(e=>"all"===p||e.size>0).map(e=>e.person)}),[B,p]),R=(0,n.useMemo)(()=>{let e=new Map;for(let t of B.people)e.set(t.id,(0,b.industryOf)((0,b.companyOf)(t.person),t.person.headline));return e},[B]),D=(0,n.useMemo)(()=>B.people.filter(e=>e.size>0).length,[B]),L=(0,n.useMemo)(()=>{let e=j.trim().toLowerCase();return B.people.filter(t=>("all"===p||t.size>0)&&(0,F.shows)(f,t.person.tier,1)&&!x.has(R.get(t.id).key)&&(!e||String(t.person.name||"").toLowerCase().includes(e))).sort((e,t)=>t.value-e.value||t.size-e.size)},[B,p,f,x,j,R]),N=(0,n.useMemo)(()=>{let e=new Map;for(let t of B.people){if("all"!==p&&!t.size)continue;let n=R.get(t.id).key;e.set(n,(e.get(n)||0)+1)}return T.filter(t=>e.get(t.key)).map(t=>({...t,count:e.get(t.key)})).sort((e,t)=>t.count-e.count)},[B,p,R]);return(0,t.jsxs)("div",{style:{flex:1,minHeight:0,display:"flex"},children:[(0,t.jsxs)(Y,{open:w,onToggle:()=>M(e=>!e),children:[i,(0,t.jsx)("div",{style:G,children:"Filter"}),(0,t.jsx)("input",{value:j,onChange:e=>S(e.target.value),placeholder:"Find a person",style:{width:"100%",boxSizing:"border-box",padding:"6px 10px",borderRadius:7,border:"1px solid rgba(255,255,255,0.1)",background:"rgba(255,255,255,0.05)",color:"#fff",fontSize:13,marginBottom:8}}),(0,t.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:(0,t.jsx)(U,{value:p,onChange:u,options:[["scanned",`Scanned (${I(D)})`],["all",`All (${I(B.people.length)})`]]})}),(0,t.jsx)("div",{style:{marginTop:12},children:(0,t.jsx)(v.TierGrid,{grid:f,counts:$,onChange:g,mode:"paths"})}),(0,t.jsx)("div",{style:G,children:"Sectors"}),(0,t.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:N.map(e=>{let n=x.has(e.key);return(0,t.jsxs)("button",{title:n?"Show on the map":"Hide from the map",onClick:()=>y(t=>{let n=new Set(t);return n.has(e.key)?n.delete(e.key):n.add(e.key),n}),style:{display:"inline-flex",alignItems:"center",gap:6,padding:"3px 10px",borderRadius:14,cursor:"pointer",border:`1px solid ${e.color}55`,background:n?"transparent":`${e.color}14`,color:"#cfd8d8",fontSize:11.5,opacity:n?.4:1},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:e.color}}),e.label," ",(0,t.jsx)("span",{style:{color:"#778"},children:I(e.count)})]},e.key)})}),(0,t.jsx)("div",{style:{fontSize:10.5,color:"#667",marginTop:6},children:"Inferred from where each connection works."}),(0,t.jsx)("div",{style:G,children:"Read the map"}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",marginBottom:4},children:"Bubble size"}),(0,t.jsx)(U,{value:c,onChange:h,options:Object.entries(W).map(([e,t])=>[e,t.label])}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",margin:"10px 0 4px"},children:"Names"}),(0,t.jsx)(U,{value:z,onChange:C,options:[["top","Biggest"],["all","All"],["none","None"]]}),l]}),(0,t.jsx)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",paddingTop:40,boxSizing:"border-box"},children:(0,t.jsx)(A,{people:L,links:B.links,sizeBy:W[c],sectorOf:R,rank:B.rank,names:z,colourBy:s,physics:a,onOpen:e=>d.push(`/?chain=${encodeURIComponent(e)}`)})})]})}function A({people:e,links:o,sizeBy:i,sectorOf:r,rank:l,onOpen:s,names:a="top",colourBy:d="sector",physics:c=k}){let y=(0,n.useRef)(null),{w:m,h:v}=H(y),[S,w]=(0,n.useState)(null),M=(0,n.useMemo)(()=>{let t=e.slice(0,400),n=new Set(t.map(e=>e.id)),l=[...new Set(t.map(e=>r.get(e.id).key))],s=new Map(l.map((e,t)=>{let n=t/Math.max(1,l.length)*Math.PI*2-Math.PI/2;return[e,{x:260*Math.cos(n),y:260*Math.sin(n)}]})),a=t.map(e=>{let t=s.get(r.get(e.id).key);return{id:e.id,p:e,sector:r.get(e.id),r:e.size?4+Math.sqrt(Math.max(0,i.of(e)))*i.k:3,x:t.x+(P(String(e.id))-.5)*40,y:t.y+(P(`${e.id}#`)-.5)*40,ax:t.x,ay:t.y}}),d=o.filter(e=>n.has(e.a)&&n.has(e.b)).map(e=>({source:e.a,target:e.b,weight:e.shared,k:Math.min(.25,.02*e.shared)})),c=(0,f.forceSimulation)(a).force("x",(0,g.forceX)(e=>s.get(e.sector.key).x).strength(.12)).force("y",(0,x.forceY)(e=>s.get(e.sector.key).y).strength(.12)).force("collide",(0,h.forceCollide)(e=>e.r+3)).force("charge",(0,u.forceManyBody)().strength(-25)).force("link",(0,p.forceLink)(d).id(e=>e.id).strength(e=>e.k).distance(60)).stop();for(let e=0;e<320;e++)c.tick();let y=a.flatMap(e=>[e.x-e.r,e.x+e.r]),m=a.flatMap(e=>[e.y-e.r,e.y+e.r]),v=a.length?{x:Math.min(...y)-60,y:Math.min(...m)-40,w:Math.max(...y)-Math.min(...y)+120,h:Math.max(...m)-Math.min(...m)+80}:{x:-300,y:-300,w:600,h:600},j=l.map(e=>{let t=a.filter(t=>t.sector.key===e),n=t.reduce((e,t)=>e+t.x,0)/t.length,o=t.reduce((e,t)=>e+t.y,0)/t.length,i=Math.hypot(n,o)||1,r=n/i,l=o/i,s=Math.max(...t.map(e=>(e.x-n)*r+(e.y-o)*l+e.r));return{key:e,x:n+r*(s+16),y:o+l*(s+16)+4,anchor:r>.35?"start":r<-.35?"end":"middle",ind:(0,b.industryByKey)(e)}});for(let e of j){let t=7.5*e.ind.label.length,n="start"===e.anchor?e.x:"end"===e.anchor?e.x-t:e.x-t/2,o=Math.max(v.x+v.w,n+t+10);v.x=Math.min(v.x,n-10),v.w=o-v.x;let i=Math.max(v.y+v.h,e.y+12);v.y=Math.min(v.y,e.y-18),v.h=i-v.y}return v.h+=Math.max(60,.1*v.h),{nodes:a,edges:d,box:v,labels:j,cut:Math.max(0,e.length-t.length)}},[e,o,i,r]),{drag:F,clicked:$}=z(M,c),T=(0,n.useMemo)(()=>(0,j.heatBy)(M.nodes,e=>(function({size:e=0,S:t=0,A:n=0}={}){return e?(3*t+2*n+Math.max(0,e-t-n))/e:-1})(e.p)),[M]),W="heat"===d,O=S?M.nodes.find(e=>e.id===S):null,L=(0,n.useMemo)(()=>{if(!S)return null;let e=new Set([S]);for(let t of M.edges)t.source.id===S&&e.add(t.target.id),t.target.id===S&&e.add(t.source.id);return e},[S,M]),N=(0,n.useMemo)(()=>new Set("none"===a?[]:M.nodes.filter(e=>e.p.size).slice(0,"all"===a?1/0:28).map(e=>e.id)),[M,a]),E=m&&v?Math.min(m/M.box.w,v/M.box.h):1,_=(m-M.box.w*E)/2,U=(v-M.box.h*E)/2;return(0,t.jsxs)("div",{ref:y,style:{flex:1,minHeight:360,position:"relative"},children:[m>0&&(0,t.jsxs)("svg",{width:m,height:v,viewBox:`${M.box.x} ${M.box.y} ${M.box.w} ${M.box.h}`,style:{display:"block",touchAction:F?"none":void 0},children:[W&&(0,t.jsx)(C,{id:"pplheat"}),W&&(0,t.jsx)(B,{id:"pplheat",nodes:M.nodes.filter(e=>e.p.size),heat:T}),(0,t.jsx)("g",{children:M.edges.map((e,n)=>{let o=S&&(e.source.id===S||e.target.id===S);return(0,t.jsx)("line",{x1:e.source.x,y1:e.source.y,x2:e.target.x,y2:e.target.y,stroke:o?"#FF6B35":"#8fa6c0",strokeOpacity:o?.8:S?.03:.09,strokeWidth:o?1+Math.log2(1+e.weight):.4+.4*Math.log2(1+e.weight)},n)})}),M.labels.map(e=>(0,t.jsx)("text",{x:e.x,y:e.y,textAnchor:e.anchor,fontSize:13,fontWeight:800,fill:e.ind.color,opacity:.85,children:e.ind.label},e.key)),M.nodes.map(e=>{let{p:n}=e,o=L&&!L.has(e.id);return(0,t.jsxs)("g",{transform:`translate(${e.x},${e.y})`,style:{cursor:F?"grab":n.size?"pointer":"default"},opacity:o?.18:1,onMouseEnter:()=>w(e.id),onMouseLeave:()=>w(null),onPointerDown:F?t=>F(t,e):void 0,onClick:()=>{$()&&n.size&&s(e.id)},children:[(0,t.jsx)("circle",{r:e.r,fill:n.size?W?(0,j.heatColour)(T(e)):e.sector.color:"#3a3f55",fillOpacity:n.size?.92:.6,stroke:S===e.id?"#fff":n.S?R.S:"rgba(0,0,0,0.35)",strokeWidth:S===e.id?2.5:n.S?Math.min(4,1+n.S/40):.6}),n.size>0&&n.only>0&&(0,t.jsx)("circle",{r:e.r*Math.sqrt(n.share)*.85,fill:"#fff",fillOpacity:.3}),(N.has(e.id)||S===e.id)&&(0,t.jsx)("text",{y:e.r+11,textAnchor:"middle",fontSize:10,fill:"#e6edf0",style:{pointerEvents:"none"},paintOrder:"stroke",stroke:"rgba(0,0,0,0.6)",strokeWidth:3,children:n.person.name})]},e.id)})]}),O&&(0,t.jsx)(D,{n:O,at:{x:_+(O.x-M.box.x)*E,y:U+(O.y-M.box.y)*E,r:O.r*E},w:m,rank:l(O.id)}),(0,t.jsxs)("div",{style:{position:"absolute",left:12,bottom:10,fontSize:11,color:"#778",lineHeight:1.6,pointerEvents:"none"},children:["Bubble = one of your connections, sized by ",i.label.toLowerCase()," (value: S tier counts 3, A tier 2, everyone else 1)",W?"; colour = how strong their cluster is, person for person, cold to white hot":"","; white centre = the share of their cluster only they can open; gold ring = S tier inside.",(0,t.jsx)("br",{}),"A line = two of your connections whose clusters share people. Grey = not scanned yet.",M.cut?` Showing the 400 largest of ${I(M.cut+400)}.`:""]})]})}function D({n:e,at:n,w:o,rank:i}){let{p:r}=e,l=n.x+n.r+14+280>o?Math.max(8,n.x-n.r-14-280):n.x+n.r+14,s=[r.person.role,(0,b.companyOf)(r.person)].filter(Boolean).join(" @ ")||r.person.headline||"";return(0,t.jsxs)("div",{style:{position:"absolute",left:l,top:Math.max(8,n.y-70),width:280,pointerEvents:"none",zIndex:5,padding:"12px 14px",borderRadius:12,background:"rgba(8,10,22,0.96)",border:`1px solid ${e.sector.color}99`,boxShadow:"0 12px 40px rgba(0,0,0,0.6)",fontSize:12,lineHeight:1.45,color:"#ddd"},children:[(0,t.jsx)("div",{style:{fontSize:15,fontWeight:800,color:"#fff"},children:r.person.name}),(0,t.jsxs)("div",{style:{fontSize:11.5,color:"#8a8fa8"},children:[s,r.person.tier?` \xb7 ${r.person.tier}-tier`:""," · ",e.sector.label]}),r.size?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"6px 10px",margin:"10px 0 8px"},children:[(0,t.jsx)(L,{value:I(r.value),label:"cluster value",color:"#FFD700"}),(0,t.jsx)(L,{value:I(r.size),label:"people in their cluster"}),(0,t.jsx)(L,{value:`${I(r.S)} S \xb7 ${I(r.A)} A`,label:"the strongest among them",color:"#FFD700"}),(0,t.jsx)(L,{value:`${I(r.only)} (${Math.round(100*r.share)}%)`,label:"only through them",color:"#00E5FF"})]}),(0,t.jsxs)("div",{style:{fontSize:11.5,color:"#aab"},children:[1===i?"The most valuable cluster you’ve scanned. ":null!=i?`Worth more than ${Math.round(100*i)}% of the clusters you’ve scanned. `:"","Click to open it in Bridge Chains."]})]}):(0,t.jsx)("div",{style:{fontSize:11.5,color:"#aab",marginTop:8},children:"Their circle isn’t scanned yet, so there’s no cluster to size."})]})}function L({value:e,label:n,color:o="#fff"}){return(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{style:{fontSize:15,fontWeight:800,color:o},children:e}),(0,t.jsx)("div",{style:{fontSize:10.5,color:"#8a8fa8"},children:n})]})}let N=$.TIER_COLORS,E="1px solid rgba(255,255,255,0.1)",_=[...b.INDUSTRIES,b.UNKNOWN_INDUSTRY];function P(e){let t=0x811c9dc5;for(let n=0;n<e.length;n++)t=Math.imul(t^e.charCodeAt(n),0x1000193);return(t>>>0)%1e3/1e3}function U({value:e,onChange:n,options:o}){return(0,t.jsx)("div",{style:{display:"flex",borderRadius:7,overflow:"hidden",border:E},children:o.map(([o,i])=>(0,t.jsx)("button",{onClick:()=>n(o),style:{padding:"5px 10px",fontSize:11.5,fontWeight:600,border:"none",cursor:"pointer",background:e===o?"rgba(52,152,219,0.25)":"transparent",color:e===o?"#cfe6f7":"#8b9a9a"},children:i},o))})}function H(e){let[t,o]=(0,n.useState)({w:0,h:0});return(0,n.useEffect)(()=>{let t=e.current;if(!t)return;let n=()=>{let e=t.getBoundingClientRect();o(t=>t.w===Math.round(e.width)&&t.h===Math.round(e.height)?t:{w:Math.round(e.width),h:Math.round(e.height)})};n();let i=new ResizeObserver(n);return i.observe(t),()=>i.disconnect()},[e]),t}function Y({open:e,onToggle:n,children:o}){return e?(0,t.jsxs)("aside",{style:{width:300,flexShrink:0,height:"100%",overflowY:"auto",boxSizing:"border-box",padding:"16px 14px",borderRight:"1px solid rgba(52,152,219,0.15)",background:"var(--sd-panel)",fontSize:13},children:[(0,t.jsxs)("button",{type:"button",onClick:n,style:{display:"flex",alignItems:"center",gap:6,width:"100%",marginBottom:14,padding:"6px 12px",borderRadius:6,cursor:"pointer",background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.1)",color:"#aaa",fontSize:12,fontWeight:600},children:[(0,t.jsx)("span",{style:{fontSize:16},children:"›"})," Close"]}),o]}):(0,t.jsxs)("button",{type:"button",onClick:n,style:{position:"fixed",left:16,top:140,zIndex:30,cursor:"pointer",height:36,borderRadius:18,padding:"0 14px 0 10px",display:"flex",alignItems:"center",gap:6,background:"rgba(52,152,219,0.15)",border:"2px solid rgba(52,152,219,0.5)",color:"#3498DB",fontWeight:700,boxShadow:"0 0 12px rgba(52,152,219,0.3)",backdropFilter:"blur(8px)"},children:[(0,t.jsx)("span",{style:{fontSize:18},children:"›"}),(0,t.jsx)("span",{style:{fontSize:11,fontWeight:600},children:"Filters"})]})}let G={fontSize:9,fontWeight:700,color:"#555",letterSpacing:1,margin:"14px 0 6px",textTransform:"uppercase"};function X(e,t){return(!t.grid||!!(0,F.shows)(t.grid,e.tier,Number(e.degree)||1))&&("senior"!==t.seniority||!!(0,b.isSenior)(e.headline))&&("csuite"!==t.seniority||!((0,b.getSeniority)(e.headline).level<6))}function q({show:e,onShow:n}){return(0,t.jsxs)("div",{style:{marginBottom:6},children:[(0,t.jsx)("div",{style:{...G,marginTop:0},children:"Bubbles are"}),(0,t.jsx)(U,{value:e,onChange:n,options:[["companies","Companies"],["people","People"]]})]})}function K({d1:e=[],d2:o=[],d3:i=[],initialShow:r="companies",onOpenCompany:l}){let[s,a]=(0,n.useState)(r),[d,c]=(0,n.useState)(()=>({seniority:"all",grid:(0,F.makeGrid)([1,2,3])})),[h,p]=(0,n.useState)("sector"),[u,f]=(0,n.useState)(k),[g,x]=(0,n.useState)(()=>new Set),[y,m]=(0,n.useState)(""),[v,j]=(0,n.useState)(null),[S,w]=(0,n.useState)(!0),[z,C]=(0,n.useState)("people"),[B,$]=(0,n.useState)("top"),R=(0,n.useMemo)(()=>[...e,...o,...i],[e,o,i]),T=(0,n.useMemo)(()=>(0,F.gridCounts)({1:e,2:o,3:i}),[e,o,i]),I=(0,n.useMemo)(()=>(0,b.buildCompanyIndex)(R),[R]),W=(0,n.useMemo)(()=>(0,b.companyLinks)(e,o),[e,o]),A=(0,n.useMemo)(()=>{let e=y.trim().toLowerCase(),t=[];for(let n of I.values()){if(g.has(n.industry.key)||e&&!n.name.toLowerCase().includes(e))continue;let o=n.people.filter(e=>X(e,d));o.length&&t.push({...n,shown:o})}return t.sort((e,t)=>t.shown.length-e.shown.length)},[I,d,g,y]),D=(0,n.useMemo)(()=>{let e=new Map(_.map(e=>[e.key,{...e,people:[],companies:new Map}])),t=new Set;for(let n of R){let o=n.profile_url||`id:${n.id}`;if(t.has(o)||(t.add(o),!X(n,d)))continue;let i=(0,b.companyOf)(n),r=i?I.get(i)?.industry||(0,b.industryOf)(i,n.headline):(0,b.industryOf)(null,n.headline),l=e.get(r.key);l.people.push(n),i&&l.companies.set(i,(l.companies.get(i)||0)+1)}return[...e.values()].filter(e=>e.people.length).sort((e,t)=>t.people.length-e.people.length)},[R,I,d]),L=v?.kind==="company"?I.get(v.key):v?.kind==="industry"?D.find(e=>e.key===v.key):null,N=e=>(0,t.jsx)(M,{colourBy:h,onColourBy:p,physics:u,onPhysics:f,heatHint:e});return"people"===s?(0,t.jsx)(O,{d1:e,d2:o,top:(0,t.jsx)(q,{show:s,onShow:a}),colourBy:h,physics:u,look:N("How strong each cluster is, person for person (S counts 3, A 2, the rest 1): the hotter, the stronger. Size is still how big it is.")}):(0,t.jsxs)("div",{style:{display:"flex",flex:1,minHeight:0},children:[(0,t.jsxs)(Y,{open:S,onToggle:()=>w(e=>!e),children:[(0,t.jsx)(q,{show:s,onShow:a}),(0,t.jsx)(V,{filters:d,setFilters:c,counts:T,query:y,setQuery:m,industries:D,hidden:g,setHidden:x,onIndustry:e=>j({kind:"industry",key:e})}),(0,t.jsx)("div",{style:G,children:"Read the map"}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",marginBottom:4},children:"Bubble size"}),(0,t.jsx)(U,{value:z,onChange:C,options:[["people","Your people"],["sa","S & A there"],["known","You know"]]}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",margin:"10px 0 4px"},children:"Names"}),(0,t.jsx)(U,{value:B,onChange:$,options:[["top","Biggest"],["all","All"],["none","None"]]}),N("How strong your people at each company are: the average power score of the five strongest. The hotter, the stronger; size is still how many.")]}),(0,t.jsx)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",paddingTop:40,boxSizing:"border-box"},children:(0,t.jsx)(Q,{companies:A,links:W,focus:v,sizeBy:z,labels:B,colourBy:h,physics:u,onCompany:e=>j({kind:"company",key:e}),onIndustry:e=>j({kind:"industry",key:e}),onClear:()=>j(null)})}),L&&(0,t.jsx)(ee,{focus:v,data:L,index:I,links:W,d1:e,d2:o,filters:d,onClose:()=>j(null),onCompany:e=>j({kind:"company",key:e}),onIndustry:e=>j({kind:"industry",key:e}),onOpenCompany:l})]})}function V({filters:e,setFilters:n,counts:o,query:i,setQuery:r,industries:l,hidden:s,setHidden:a,onIndustry:d}){let c=(e,t)=>n(n=>({...n,[e]:t}));return(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[(0,t.jsx)("div",{style:G,children:"Filter"}),(0,t.jsx)("input",{value:i,onChange:e=>r(e.target.value),placeholder:"Find a company",style:{padding:"6px 10px",borderRadius:7,border:E,background:"rgba(255,255,255,0.05)",color:"#fff",fontSize:13,width:"100%",boxSizing:"border-box"}}),(0,t.jsx)(v.TierGrid,{grid:e.grid,counts:o,onChange:e=>c("grid",e),mode:"paths"}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",marginTop:-10},children:"Level"}),(0,t.jsx)(U,{value:e.seniority,onChange:e=>c("seniority",e),options:[["all","Any level"],["senior","Director+"],["csuite","C-suite"]]}),(0,t.jsx)("div",{style:G,children:"Industries"}),(0,t.jsxs)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[l.map(e=>{let n=s.has(e.key);return(0,t.jsxs)("span",{style:{display:"inline-flex",borderRadius:14,border:`1px solid ${e.color}55`,overflow:"hidden",opacity:n?.4:1},children:[(0,t.jsx)("button",{title:n?"Show on the map":"Hide from the map",onClick:()=>a(t=>{let n=new Set(t);return n.has(e.key)?n.delete(e.key):n.add(e.key),n}),style:{padding:"3px 7px",border:"none",background:`${e.color}22`,cursor:"pointer",color:e.color,fontSize:11},children:"●"}),(0,t.jsxs)("button",{onClick:()=>d(e.key),title:"Analyse this industry",style:{padding:"3px 9px 3px 5px",border:"none",background:"transparent",cursor:"pointer",color:"#cfd8d8",fontSize:11.5},children:[e.label," ",(0,t.jsx)("span",{style:{color:"#778"},children:e.people.length})]})]},e.key)}),(0,t.jsx)("span",{style:{fontSize:11,color:"#667",alignSelf:"center"},children:"Inferred from companies and headlines. ● hides one; its name opens it."})]})]})}function Q({companies:e,links:o,focus:i,onCompany:r,onIndustry:l,onClear:s,sizeBy:a="people",labels:d="top",colourBy:c="sector",physics:y=k}){let v=(0,n.useRef)(null),{w:S,h:w}=H(v),[M,F]=(0,n.useState)(null),$=(0,n.useMemo)(()=>{let t=e.slice(0,140),n=new Set(t.map(e=>e.name)),i=[...new Set(t.map(e=>e.industry.key))],r=new Map(i.map((e,t)=>{let n=t/Math.max(1,i.length)*Math.PI*2-Math.PI/2;return[e,{x:260*Math.cos(n),y:260*Math.sin(n)}]})),l=t.map(e=>({id:e.name,co:e,r:4+Math.sqrt("sa"===a?e.shown.filter(e=>"S"===e.tier||"A"===e.tier).length:"known"===a?e.d1:e.shown.length)*("people"===a?3.4:5),x:r.get(e.industry.key).x+(P(e.name)-.5)*40,y:r.get(e.industry.key).y+(P(e.name+"#")-.5)*40,ax:r.get(e.industry.key).x,ay:r.get(e.industry.key).y})),s=o.filter(e=>n.has(e.a)&&n.has(e.b)).map(e=>({source:e.a,target:e.b,weight:e.weight,via:e.via.size,k:Math.min(.25,.03*e.weight)})),d=(0,f.forceSimulation)(l).force("x",(0,g.forceX)(e=>r.get(e.co.industry.key).x).strength(.12)).force("y",(0,x.forceY)(e=>r.get(e.co.industry.key).y).strength(.12)).force("collide",(0,h.forceCollide)(e=>e.r+3)).force("charge",(0,u.forceManyBody)().strength(-25)).force("link",(0,p.forceLink)(s).id(e=>e.id).strength(e=>e.k).distance(60)).stop();for(let e=0;e<320;e++)d.tick();let c=l.flatMap(e=>[e.x-e.r,e.x+e.r]),y=l.flatMap(e=>[e.y-e.r,e.y+e.r]),m=l.length?{x:Math.min(...c)-60,y:Math.min(...y)-40,w:Math.max(...c)-Math.min(...c)+120,h:Math.max(...y)-Math.min(...y)+80}:{x:-300,y:-300,w:600,h:600},v=i.map(e=>{let t=l.filter(t=>t.co.industry.key===e),n=t.reduce((e,t)=>e+t.x,0)/t.length,o=t.reduce((e,t)=>e+t.y,0)/t.length,i=Math.hypot(n,o)||1,r=n/i,s=o/i,a=Math.max(...t.map(e=>(e.x-n)*r+(e.y-o)*s+e.r));return{key:e,x:n+r*(a+16),y:o+s*(a+16)+4,anchor:r>.35?"start":r<-.35?"end":"middle",ind:(0,b.industryByKey)(e)}});for(let e of v){let t=7.5*e.ind.label.length,n="start"===e.anchor?e.x:"end"===e.anchor?e.x-t:e.x-t/2,o=Math.max(m.x+m.w,n+t+10);m.x=Math.min(m.x,n-10),m.w=o-m.x;let i=Math.max(m.y+m.h,e.y+12);m.y=Math.min(m.y,e.y-18),m.h=i-m.y}return m.h+=Math.max(60,.1*m.h),{nodes:l,edges:s,box:m,labels:v,cut:Math.max(0,e.length-t.length)}},[e,o,a]),{drag:R,clicked:T}=z($,y),I=(0,n.useMemo)(()=>{let e=new Map($.nodes.map(e=>[e.id,function(e=[]){let t=e.map(m.score).sort((e,t)=>t-e).slice(0,5);return t.length?t.reduce((e,t)=>e+t,0)/t.length:0}(e.co.shown)]));return(0,j.heatBy)($.nodes,t=>e.get(t.id))},[$]),W="heat"===c,O=M||(i?.kind==="company"?i.key:null),A=i?.kind==="industry"?i.key:null,D=(0,n.useMemo)(()=>{if(!O)return null;let e=new Set([O]);for(let t of $.edges)t.source.id===O&&e.add(t.target.id),t.target.id===O&&e.add(t.source.id);return e},[O,$]),L=(0,n.useMemo)(()=>new Set("none"===d?[]:("all"===d?$.nodes:[...$.nodes].sort((e,t)=>t.r-e.r).slice(0,28)).map(e=>e.id)),[$,d]);return(0,t.jsxs)("div",{ref:v,style:{flex:1,minHeight:360,position:"relative"},onClick:s,children:[S>0&&(0,t.jsxs)("svg",{width:S,height:w,viewBox:`${$.box.x} ${$.box.y} ${$.box.w} ${$.box.h}`,style:{display:"block",touchAction:R?"none":void 0},children:[W&&(0,t.jsx)(C,{id:"coheat"}),W&&(0,t.jsx)(B,{id:"coheat",nodes:$.nodes,heat:I}),(0,t.jsx)("g",{children:$.edges.map((e,n)=>{let o=O&&(e.source.id===O||e.target.id===O);return(0,t.jsx)("line",{x1:e.source.x,y1:e.source.y,x2:e.target.x,y2:e.target.y,stroke:o?"#FF6B35":"#8fa6c0",strokeOpacity:o?.8:O?.04:.14,strokeWidth:o?1+Math.log2(1+e.weight):.4+.5*Math.log2(1+e.weight)},n)})}),$.labels.map(e=>(0,t.jsx)("text",{x:e.x,y:e.y,textAnchor:e.anchor,fontSize:13,fontWeight:800,fill:e.ind.color,opacity:A&&A!==e.key?.25:.85,style:{cursor:"pointer"},onClick:t=>{t.stopPropagation(),l(e.key)},children:e.ind.label},e.key)),$.nodes.map(e=>{let n=D&&!D.has(e.id)||A&&e.co.industry.key!==A,o=i?.kind==="company"&&i.key===e.id;return(0,t.jsxs)("g",{transform:`translate(${e.x},${e.y})`,style:{cursor:R?"grab":"pointer"},opacity:n?.18:1,onMouseEnter:()=>F(e.id),onMouseLeave:()=>F(null),onPointerDown:R?t=>R(t,e):void 0,onClick:t=>{t.stopPropagation(),T()&&r(e.id)},children:[(0,t.jsx)("title",{children:`${e.co.name} \xb7 ${e.co.industry.label} (inferred)
|
|
2
|
-
${e.co.d1} you know \xb7 ${e.co.d2} reachable${e.co.d3?` \xb7 ${e.co.d3} further`:""}`}),(0,t.jsx)("circle",{r:e.r,fill:W?(0,j.heatColour)(I(e)):e.co.industry.color,fillOpacity:W?.9:.75,stroke:o?"#fff":e.co.S?N.S:"rgba(0,0,0,0.35)",strokeWidth:o?2.5:e.co.S?1.5:.6}),e.co.d1>0&&(0,t.jsx)("circle",{r:e.r*Math.sqrt(e.co.d1/Math.max(1,e.co.people.length)),fill:"#fff",fillOpacity:.35}),(L.has(e.id)||e.id===O||o)&&(0,t.jsx)("text",{y:e.r+11,textAnchor:"middle",fontSize:10,fill:"#e6edf0",style:{pointerEvents:"none"},children:e.co.name})]},e.id)})]}),(0,t.jsxs)("div",{style:{position:"absolute",left:12,bottom:10,fontSize:11,color:"#778",lineHeight:1.6,pointerEvents:"none"},children:["Bubble = a company, sized by your people there; ",W?"colour = how strong they are, cold to white hot":"colour = its industry","; white centre = the share you already know; gold ring = an S-tier person inside.",(0,t.jsx)("br",{}),"A line = one of your connections at one company knows people at the other.",$.cut?` Showing the 140 largest; ${$.cut} smaller companies are in Companies.`:""]})]})}function Z({parts:e,total:n}){return(0,t.jsx)("div",{style:{display:"flex",height:6,borderRadius:3,overflow:"hidden",background:"rgba(255,255,255,0.06)"},children:e.map(([e,o],i)=>(0,t.jsx)("div",{style:{width:`${e/Math.max(1,n)*100}%`,background:o}},i))})}function J({p:e,note:n}){return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 0",fontSize:12.5},children:[(0,t.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:N[e.tier]||"#667",flexShrink:0}}),(0,t.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,t.jsx)("div",{style:{fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:n||e.headline})]})]})}function ee({focus:e,data:o,index:i,links:r,d1:l,d2:s,filters:a,onClose:d,onCompany:c,onIndustry:h,onOpenCompany:p}){let u,f,g,x="company"===e.kind,y=o.people.filter(e=>X(e,a)),m=(0,n.useMemo)(()=>{let e=new Map;for(let t of y){let n=(0,b.getSeniority)(t.headline);e.set(n.label,{n:(e.get(n.label)?.n||0)+1,level:n.level})}return[...e.entries()].sort((e,t)=>t[1].level-e[1].level)},[y]),v=(0,n.useMemo)(()=>x?(0,b.waysInto)(o.name,l,s):null,[x,o,l,s]),j=(0,n.useMemo)(()=>x?r.filter(e=>e.a===o.name||e.b===o.name).map(e=>({name:e.a===o.name?e.b:e.a,weight:e.weight})).sort((e,t)=>t.weight-e.weight).slice(0,8):[],[x,r,o]),k=[...y].sort((e,t)=>(Number(t.power_score)||0)-(Number(e.power_score)||0)).slice(0,6),S=x?o.industry:o,w=y.filter(e=>1===e.degree).length,M=y.filter(e=>2===e.degree).length,z=x?[]:[...o.companies.entries()].sort((e,t)=>t[1]-e[1]).slice(0,10);return(0,t.jsxs)("aside",{style:{width:360,flexShrink:0,borderLeft:E,overflow:"auto",padding:16,background:"rgba(255,255,255,0.02)"},children:[(0,t.jsx)("button",{onClick:d,style:{background:"none",border:"none",color:"#888",cursor:"pointer",fontSize:12,padding:0},children:"✕ Close"}),(0,t.jsxs)("div",{style:{fontSize:10,letterSpacing:1,color:"#8b9a9a",marginTop:8},children:[x?"COMPANY":"INDUSTRY"," ANALYZER"]}),(0,t.jsx)("h2",{style:{margin:"4px 0 6px",fontSize:20},children:x?o.name:o.label}),x&&h?(0,t.jsxs)("button",{type:"button",onClick:()=>h(S.key),title:`Open ${S.label}: everyone there and its top companies`,style:{fontSize:11,padding:"2px 8px",borderRadius:10,border:"none",cursor:"pointer",background:`${S.color}22`,color:S.color},children:[S.label," · inferred →"]}):(0,t.jsxs)("span",{style:{fontSize:11,padding:"2px 8px",borderRadius:10,background:`${S.color}22`,color:S.color},children:[S.label,x?" · inferred":""]}),x&&(0,t.jsx)(en,{name:o.name}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:8,margin:"14px 0"},children:[[w,"you know","#00ff88"],[M,"reachable","#FF6B35"],[y.filter(e=>(0,b.isSenior)(e.headline)).length,"director+","#FFD700"]].map(([e,n,o])=>(0,t.jsxs)("div",{style:{padding:8,borderRadius:8,background:"rgba(255,255,255,0.04)",textAlign:"center"},children:[(0,t.jsx)("div",{style:{fontSize:20,fontWeight:800,color:o},children:e}),(0,t.jsx)("div",{style:{fontSize:10.5,color:"#8b9a9a"},children:n})]},n))}),(0,t.jsx)(et,{title:"By level",children:m.map(([e,{n}])=>(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"110px 1fr 28px",gap:8,alignItems:"center",fontSize:11.5,marginBottom:4},children:[(0,t.jsx)("span",{style:{color:"#aab7b7"},children:e}),(0,t.jsx)(Z,{total:y.length,parts:[[n,"#3498DB"]]}),(0,t.jsx)("span",{style:{color:"#778",textAlign:"right"},children:n})]},e))}),x&&v&&(0,t.jsxs)(et,{title:"Ways in",children:[v.direct.length>0&&(0,t.jsxs)("div",{style:{fontSize:11,color:"#00ff88",margin:"2px 0"},children:["You already know ",v.direct.length," here"]}),(u=new Map(v.bridges.map(({bridge:e,n:t})=>[e.id,t])),f=[...v.direct].sort((e,t)=>(u.get(t.id)||0)-(u.get(e.id)||0)).slice(0,4),g=new Set(v.direct.map(e=>e.id)),(0,t.jsxs)(t.Fragment,{children:[f.map(e=>(0,t.jsx)(J,{p:e,note:u.get(e.id)?`works here \xb7 knows ${u.get(e.id)} here`:`works here \xb7 ${e.headline||""}`},e.id)),v.bridges.filter(({bridge:e})=>!g.has(e.id)).slice(0,5).map(({bridge:e,n})=>(0,t.jsx)(J,{p:e,note:`knows ${n} ${1===n?"person":"people"} here`},e.id))]})),!v.direct.length&&!v.bridges.length&&(0,t.jsx)("div",{style:{fontSize:12,color:"#778"},children:"No one you know links here yet."})]}),(0,t.jsx)(et,{title:x?"Most powerful people here":"Most powerful people in this industry",children:k.map(e=>(0,t.jsx)(J,{p:e,note:`${1===e.degree?"you know them":2===e.degree?"2nd degree":"3rd+"} \xb7 ${e.headline||""}`},e.id))}),x&&j.length>0&&(0,t.jsx)(et,{title:"Connected companies",children:(0,t.jsx)("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:j.map(e=>(0,t.jsxs)("button",{onClick:()=>c(e.name),style:{padding:"3px 9px",borderRadius:10,border:E,background:`${i.get(e.name)?.industry.color||"#666"}22`,color:"#dfe6e9",fontSize:11.5,cursor:"pointer"},children:[e.name," ",(0,t.jsx)("span",{style:{color:"#778"},children:e.weight})]},e.name))})}),!x&&(0,t.jsx)(et,{title:"Companies",children:z.map(([e,n])=>(0,t.jsxs)("div",{onClick:()=>c(e),style:{display:"grid",gridTemplateColumns:"1fr 60px 24px",gap:8,alignItems:"center",fontSize:12,padding:"3px 0",cursor:"pointer"},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e}),(0,t.jsx)(Z,{total:z[0][1],parts:[[n,S.color]]}),(0,t.jsx)("span",{style:{color:"#778",textAlign:"right"},children:n})]},e))}),x&&p&&(0,t.jsxs)("button",{onClick:()=>p(o),style:{marginTop:14,width:"100%",padding:"10px",borderRadius:8,border:"none",cursor:"pointer",fontWeight:700,background:"linear-gradient(135deg, #00ff88, #3498DB)",color:"#000"},children:["Path to the top of ",o.name," →"]})]})}function et({title:e,children:n}){return(0,t.jsxs)("div",{style:{marginTop:14},children:[(0,t.jsx)("div",{style:{fontSize:10.5,letterSpacing:.8,color:"#8b9a9a",fontWeight:700,marginBottom:6},children:e.toUpperCase()}),n]})}function en({name:e}){let{companies:n,setScore:o}=(0,y.useCompanyScores)(),i=n?.find(t=>t.name===e);if(!i)return null;let r={yours:"your score",known:"known list",network:"estimated",default:"unknown company"}[i.source];return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:10,fontSize:12,color:"#aab7b7"},children:["Company score ",(0,t.jsx)("b",{style:{color:"#fff",fontSize:15},children:i.score}),"/10 · ",r,(0,t.jsx)("span",{style:{marginLeft:"auto"},children:(0,t.jsx)(y.ScorePicker,{company:i,onSet:o,compact:!0})})]})}var eo=e.i(15812),ei=e.i(30215),er=e.i(22016),el=e.i(36774);let es=[["map","Map"],["companies","Companies"]];function ea(){let{userId:e}=(0,eo.useUser)(),[c,h]=(0,n.useState)([]),[p,u]=(0,n.useState)(null),[f,g]=(0,n.useState)([]),[x,y]=(0,n.useState)(!0),[m,v]=(0,n.useState)([]),[j,k]=(0,n.useState)([]),[S,w]=(0,n.useState)([]),M=(0,r.useSearchParams)().get("tab"),[z,C]=(0,n.useState)(()=>es.some(([e])=>e===M)?M:"map"),B=(0,r.useRouter)();(0,n.useEffect)(()=>{"scores"===M&&B.replace("/settings#companies")},[M,B]),(0,n.useEffect)(()=>p?void(0,i.setNotchTabs)(null):((0,i.setNotchTabs)({items:es.map(([e,t])=>({key:e,label:t})),current:z,onPick:C}),()=>(0,i.setNotchTabs)(null)),[z,p]);let[F,$]=(0,n.useState)(0),[R,T]=(0,n.useState)(!1);(0,n.useEffect)(()=>{!a.IS_DEMO&&e&&t();async function t(){let t=(0,d.hasCsvNetwork)()?(0,d.loadCsvNetwork)():null;T(!!t);let n=[],o=[],i=[];if(t)n=t.degree1,o=t.degree2||[];else{let t=await (0,s.loadNetwork)(e);n=t.degree1,o=t.degree2,i=t.degree3}v(n),k(o),w(i||[]);let r={},l=new Set;[...n,...o,...i].forEach(e=>{if(l.has(e.profile_url))return;l.add(e.profile_url);let t=(0,b.companyOf)(e);t&&(r[t]||(r[t]={name:t,d1:0,d2:0,d3:0,sCount:0,aCount:0,people:[]}),1===e.degree?r[t].d1++:2===e.degree?r[t].d2++:r[t].d3++,"S"===e.tier&&r[t].sCount++,"A"===e.tier&&r[t].aCount++,r[t].people.push(e))}),h(Object.values(r).filter(e=>e.d1+e.d2+e.d3>=3).sort((e,t)=>3*t.sCount+2*t.aCount+t.d1+t.d2+t.d3-(3*e.sCount+2*e.aCount+e.d1+e.d2+e.d3))),y(!1)}},[e,F]);let[I,W]=(0,n.useState)(!1),[O,A]=(0,n.useState)([]),D=(0,ei.default)(),L=!I&&D.running?(0,l.busyReason)(D):null;function N(e){let t=new Set(m.map(e=>e.profile_url)),n=new Set([...m,...j].map(e=>e.profile_url)),o=new Map,i=0;for(let n of e)t.has(n.profile_url||n.profileUrl)&&(i++,o.set(n.id,(o.get(n.id)||0)+1));return e.map(e=>({...e,connected:t.has(e.profile_url||e.profileUrl),known:n.has(e.profile_url||e.profileUrl),seniority:(0,b.getSeniority)(e.headline),mutualCount:i-(o.get(e.id)||0)}))}function E(e){u(e),g(N(e.people))}async function _(){if(a.IS_DEMO||R||!p)return;let e=!1;try{e="1"===localStorage.getItem("six-degrees-company-scan-ok")}catch{}if(!e){if(!window.confirm("Company scans are experimental: they have not been tested against live LinkedIn yet, so the results may be incomplete. Like any scan, it opens a Chrome window and counts toward the profile views LinkedIn watches.\n\nRun it anyway?"))return;try{localStorage.setItem("six-degrees-company-scan-ok","1")}catch{}}W(!0),A(["Checking the scanner..."]);let t=(0,l.notReadyMessage)(await (0,l.scraperStatus)().catch(()=>null));if(t){A([t]),W(!1);return}try{let e=await (0,l.runScrape)("company",{name:p.name,onLog:A});if(0===e.exitCode){A(e=>[...e,"Loading the new people..."]);let e=await fetch(`/api/connections?scanned_company=${encodeURIComponent(p.name)}&limit=500`),t=(await e.json()).connections||[];t.length?(g(N(t)),A(e=>[...e,`${t.length} people at ${p.name}.`])):A(e=>[...e,"Nothing new was found."])}}catch(e){A([e.message||"Failed to start the scan"])}finally{W(!1)}}let P=new Map;for(let e of m)P.has(e.id)||P.set(e.id,e);let U=new Set(m.map(e=>e.profile_url)),H={},Y=0;f.forEach(e=>{let t=e.seniority.key;H[t]||(H[t]={...e.seniority,people:[]}),e.connected&&Y++;let n=Math.min(90,12*e.mutualCount);e.seniority.level<=1?n+=20:e.seniority.level<=2?n+=10:e.seniority.level>=5&&(n-=10),n=Math.max(5,Math.min(95,n)),e.connected&&(n=100);let o=null;if(2===e.degree&&e.source_connection_id){let t=P.get(e.source_connection_id);t&&(o=t.name)}let i={0:5,1:10,2:20,3:35,4:50,5:75,6:100}[e.seniority.level]||10;H[t].people.push({...e,likelihood:n,bridgeName:o,xp:i})}),Object.values(H).forEach(e=>e.people.sort((e,t)=>t.likelihood-e.likelihood));let G=Object.values(H).sort((e,t)=>t.level-e.level);return a.IS_DEMO?(0,t.jsxs)("div",{style:{minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:12,background:"var(--sd-page)",color:"rgba(255,255,255,0.7)",fontFamily:"var(--sd-font)"},children:[(0,t.jsx)("h1",{style:{fontSize:20,fontWeight:700,margin:0,color:"#fff"},children:"Not part of the demo"}),(0,t.jsx)("p",{style:{fontSize:13,margin:0},children:"The public demo includes the Network Circle and Degrees views only."}),(0,t.jsx)(er.default,{href:"/",style:{fontSize:13,color:"#888",textDecoration:"none"},children:"← Back to the network"})]}):x?(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"var(--sd-page)",color:"#fff"},children:"Loading..."}):(0,t.jsxs)("div",{style:{height:"100vh",background:"var(--sd-page)",color:"#fff",fontFamily:"var(--sd-font)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsx)(o.default,{active:"paths",csvMode:R}),p&&(0,t.jsx)("div",{style:{padding:"10px 24px",borderBottom:"1px solid rgba(255,255,255,0.08)",flexShrink:0},children:(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",gap:12},children:p&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>{u(null),g([])},style:{background:"none",border:"none",color:"#888",cursor:"pointer",fontSize:12},children:"← Companies"}),(0,t.jsx)("span",{style:{fontSize:13,fontWeight:600},children:p.name}),(0,t.jsxs)("span",{style:{fontSize:11,color:"#888"},children:[Y,"/",f.length," connected"]}),R?(0,t.jsx)("span",{style:{marginLeft:"auto",fontSize:11,color:"#888"},children:"Scanning needs your own network"}):(0,t.jsx)("button",{onClick:_,disabled:I||!!L,title:L?`${L}. One scan at a time.`:void 0,style:{marginLeft:"auto",padding:"5px 12px",borderRadius:6,border:"none",cursor:I||L?"not-allowed":"pointer",background:I||L?"#333":"rgba(0,255,136,0.15)",color:I||L?"#555":"#00ff88",fontSize:11,fontWeight:600},children:I?"Scanning...":L?"Scanner busy":"+ Scan Full Company"}),(0,t.jsx)("span",{title:"Not yet tested against live LinkedIn. Results may be incomplete.",style:{fontSize:9.5,fontWeight:800,letterSpacing:.6,padding:"3px 7px",borderRadius:20,border:"1px solid rgba(255,215,0,0.45)",color:"#FFD700"},children:"EXPERIMENTAL"})]})})}),p||"companies"===z?(0,t.jsx)("div",{style:{flex:1,overflow:"auto",padding:"16px 24px"},children:(0,t.jsxs)("div",{style:{maxWidth:700,margin:"0 auto"},children:[!p&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("p",{style:{fontSize:13,color:"#888",marginBottom:16},children:["Pick a company to see your path to the top. Based on ",m.length+j.length," people in your network."]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:c.slice(0,60).map(e=>(0,t.jsxs)("button",{onClick:()=>E(e),style:{padding:"14px",borderRadius:10,border:"none",cursor:"pointer",textAlign:"left",background:"rgba(255,255,255,0.04)",transition:"background 0.15s",borderLeft:`3px solid ${e.sCount>0?"#FFD700":e.aCount>0?"#9B59B6":"#3498DB"}`},onMouseEnter:e=>e.currentTarget.style.background="rgba(255,255,255,0.08)",onMouseLeave:e=>e.currentTarget.style.background="rgba(255,255,255,0.04)",children:[(0,t.jsx)("div",{style:{fontSize:14,fontWeight:700,color:"#fff",marginBottom:4},children:e.name}),(0,t.jsxs)("div",{style:{display:"flex",gap:8,fontSize:10,color:"#888"},children:[(0,t.jsxs)("span",{style:{color:"#00ff88"},children:[e.d1," connected"]}),(0,t.jsxs)("span",{children:[e.d2+e.d3," locked"]})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:6,marginTop:4,fontSize:9},children:[e.sCount>0&&(0,t.jsxs)("span",{style:{color:"#FFD700",fontWeight:600},children:[e.sCount,"S"]}),e.aCount>0&&(0,t.jsxs)("span",{style:{color:"#9B59B6",fontWeight:600},children:[e.aCount,"A"]}),(0,t.jsxs)("span",{style:{color:"#555"},children:[e.d1+e.d2," total"]})]}),(0,t.jsx)("div",{style:{height:3,background:"rgba(255,255,255,0.08)",borderRadius:2,marginTop:6},children:(0,t.jsx)("div",{style:{height:"100%",borderRadius:2,width:`${e.d1/Math.max(e.d1+e.d2+e.d3,1)*100}%`,background:e.sCount>0?"#FFD700":"#00ff88"}})})]},e.name))})]}),I&&(0,t.jsxs)("div",{style:{padding:"10px",borderRadius:8,background:"rgba(0,255,136,0.06)",border:"1px solid rgba(0,255,136,0.2)",marginBottom:12},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4},children:[(0,t.jsx)("div",{style:{width:6,height:6,borderRadius:"50%",background:"#00ff88",animation:"pulse 1s infinite"}}),(0,t.jsx)("span",{style:{fontSize:10,fontWeight:600,color:"#00ff88"},children:"Scanning LinkedIn..."})]}),(0,t.jsx)("div",{style:{fontFamily:"monospace",fontSize:9,color:"#777",maxHeight:60,overflow:"auto"},children:O.map((e,n)=>(0,t.jsx)("div",{children:e},n))})]}),p&&G.map(e=>(0,t.jsxs)("div",{style:{marginBottom:16},children:[(0,t.jsxs)("div",{style:{padding:"8px 12px",borderRadius:6,marginBottom:4,background:e.level>=5?"rgba(255,215,0,0.08)":e.level>=3?"rgba(155,89,182,0.08)":"rgba(52,152,219,0.08)",borderLeft:`3px solid ${e.level>=5?"#FFD700":e.level>=3?"#9B59B6":"#3498DB"}`,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{style:{fontSize:12,fontWeight:700,color:e.level>=5?"#FFD700":e.level>=3?"#9B59B6":"#3498DB"},children:e.label}),e.level>=5&&(0,t.jsx)("span",{style:{fontSize:9,color:"#FF6B35",marginLeft:8,fontWeight:700},children:"TARGET"})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[(0,t.jsxs)("span",{style:{fontSize:9,color:"#FF6B35",fontWeight:600},children:["+",e.people.filter(e=>!e.connected).reduce((e,t)=>e+(t.xp||0),0)," XP"]}),(0,t.jsxs)("span",{style:{fontSize:10,color:"#666"},children:[e.people.filter(e=>e.connected).length,"/",e.people.length]})]})]}),e.people.map((n,o)=>(0,t.jsx)(ed,{p:n,level:e,companyPeople:f,d1Urls:U,selectedCompany:p},n.id||o))]},e.key))]})}):(0,t.jsx)(K,{d1:m,d2:j,d3:S,initialShow:"people"===M?"people":"companies",onOpenCompany:e=>E({...e,sCount:e.S,aCount:e.A})})]})}function ed({p:e,level:o,companyPeople:i,d1Urls:r,selectedCompany:l}){let[s,a]=(0,n.useState)(!1),d=[];if(s&&!e.connected){let t=i.filter(t=>t.seniority.level>e.seniority.level&&!r.has(t.profile_url||t.profileUrl)),n=i.filter(t=>t.seniority.level===e.seniority.level&&t.id!==e.id),o=t.length;o>0&&d.push({icon:"⬆️",text:`Adding them gives you a mutual with ${o} people above in the hierarchy`,color:"#00ff88"});let l=n.filter(e=>r.has(e.profile_url||e.profileUrl)).length;l>0?d.push({icon:"🤝",text:`${l} people at their level already connected — high social proof`,color:"#FFD700"}):d.push({icon:"🎯",text:"First connection at this level — opens a new layer",color:"#3498DB"}),e.bridgeName&&d.push({icon:"🔗",text:`Reachable through ${e.bridgeName} — warm intro possible`,color:"#FF6B35"}),e.seniority.level>=5?d.push({icon:"👑",text:`${e.seniority.label} — decision maker, high strategic value but low accept rate`,color:"#FFD700"}):e.seniority.level>=3?d.push({icon:"📊",text:`${e.seniority.label} — middle management, good balance of access and accept rate`,color:"#9B59B6"}):d.push({icon:"✅",text:`${e.seniority.label} — highest accept rate, builds mutual foundation for people above`,color:"#00ff88"}),e.likelihood>=60?d.push({icon:"🔥",text:`${e.likelihood}% likely to accept — strong mutual overlap + approachable role`,color:"#00ff88"}):e.likelihood>=30?d.push({icon:"⚡",text:`${e.likelihood}% likely — moderate chance, add more people at their level first`,color:"#FFD700"}):d.push({icon:"🔒",text:`${e.likelihood}% likely — low chance right now, build more connections below them first`,color:"#ff5050"})}return(0,t.jsxs)("div",{style:{borderBottom:"1px solid rgba(255,255,255,0.03)"},children:[(0,t.jsxs)("div",{onClick:()=>a(!s),style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",cursor:"pointer",opacity:e.connected?.7:1},onMouseEnter:e=>e.currentTarget.style.background="rgba(255,255,255,0.04)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,t.jsx)("span",{style:{fontSize:8,color:"#555",flexShrink:0,width:10},children:s?"▾":"▸"}),(0,t.jsx)("div",{style:{width:18,height:18,borderRadius:"50%",flexShrink:0,fontSize:8,display:"flex",alignItems:"center",justifyContent:"center",background:e.connected?"rgba(0,255,136,0.2)":"rgba(255,255,255,0.05)",color:e.connected?"#00ff88":"#555",border:`1px solid ${e.connected?"rgba(0,255,136,0.3)":"rgba(255,255,255,0.1)"}`},children:e.connected?"✓":"🔒"}),(0,el.localPhoto)(e.profile_image_url||e.imageUrl)?(0,t.jsx)("img",{src:(0,el.localPhoto)(e.profile_image_url||e.imageUrl),alt:"",style:{width:26,height:26,borderRadius:"50%",objectFit:"cover",flexShrink:0},onError:e=>e.target.style.display="none"}):(0,t.jsx)("div",{style:{width:26,height:26,borderRadius:"50%",flexShrink:0,fontSize:10,fontWeight:700,background:"#333",color:"#888",display:"flex",alignItems:"center",justifyContent:"center"},children:e.name?.charAt(0)}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.jsx)("div",{style:{fontSize:8,color:"#666",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.headline?.substring(0,45)})]}),!e.connected&&e.bridgeName&&(0,t.jsxs)("span",{style:{fontSize:8,color:"#FF6B35",flexShrink:0,maxWidth:55,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["via ",e.bridgeName.split(" ")[0]]}),!e.connected&&(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,flexShrink:0},children:[(0,t.jsxs)("span",{style:{fontSize:8,fontWeight:700,color:"#FF6B35"},children:["+",e.xp]}),(0,t.jsxs)("div",{style:{fontSize:9,fontWeight:700,minWidth:30,textAlign:"right",color:e.likelihood>=60?"#00ff88":e.likelihood>=30?"#FFD700":"#ff5050"},children:[e.likelihood,"%"]})]}),!e.connected&&(0,t.jsx)("a",{href:e.profile_url||e.profileUrl,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),style:{padding:"3px 7px",borderRadius:4,fontSize:8,fontWeight:700,background:"#0077B5",color:"#fff",textDecoration:"none",flexShrink:0},children:"Add"})]}),s&&(0,t.jsxs)("div",{style:{padding:"8px 12px 10px 44px",background:"rgba(255,255,255,0.02)",borderTop:"1px solid rgba(255,255,255,0.04)"},children:[(0,t.jsx)("div",{style:{fontSize:11,color:"#aaa",marginBottom:8},children:e.headline||"No headline available"}),(0,t.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"center",marginBottom:8,flexWrap:"wrap"},children:[(0,t.jsxs)("div",{style:{display:"inline-block",padding:"2px 8px",borderRadius:4,fontSize:9,fontWeight:600,background:e.seniority.level>=5?"rgba(255,215,0,0.1)":e.seniority.level>=3?"rgba(155,89,182,0.1)":"rgba(52,152,219,0.1)",color:e.seniority.level>=5?"#FFD700":e.seniority.level>=3?"#9B59B6":"#3498DB",border:`1px solid ${e.seniority.level>=5?"rgba(255,215,0,0.2)":e.seniority.level>=3?"rgba(155,89,182,0.2)":"rgba(52,152,219,0.2)"}`},children:[e.seniority.label," · Level ",e.seniority.level]}),!e.connected&&(0,t.jsxs)("div",{style:{display:"inline-block",padding:"2px 8px",borderRadius:4,fontSize:9,fontWeight:700,background:"rgba(255,107,53,0.1)",color:"#FF6B35",border:"1px solid rgba(255,107,53,0.2)"},children:["+",e.xp," XP"]})]}),!e.connected&&d.length>0&&(0,t.jsxs)("div",{style:{marginTop:4},children:[(0,t.jsx)("div",{style:{fontSize:9,fontWeight:700,color:"#888",letterSpacing:.5,marginBottom:4},children:"STRATEGIC VALUE"}),d.map((e,n)=>(0,t.jsxs)("div",{style:{display:"flex",gap:6,alignItems:"flex-start",padding:"2px 0",fontSize:10,color:"#bbb"},children:[(0,t.jsx)("span",{style:{fontSize:11,lineHeight:1},children:e.icon}),(0,t.jsx)("span",{style:{color:e.color},children:e.text})]},n))]}),e.connected&&(0,t.jsxs)("div",{style:{fontSize:10,color:"#00ff88",fontWeight:600},children:["✓ Already connected — contributes as mutual for others at ",l?.name]})]})]})}e.s(["default",0,function(){return(0,t.jsx)(c.default,{children:(0,t.jsx)(n.Suspense,{children:(0,t.jsx)(ea,{})})})}],85957)}]);
|