@vellumai/web 0.12.4-staging.2 → 0.12.4-staging.3
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/dist/assets/{a2a-invite-DizlchNv.js → a2a-invite-FVKbTs7U.js} +1 -1
- package/dist/assets/{about-page-Y8a--p-0.js → about-page-BOgOqskJ.js} +1 -1
- package/dist/assets/{account-page-oXqvFuC5.js → account-page-CIpiaQdA.js} +1 -1
- package/dist/assets/{account-shell-BW5fY_u7.js → account-shell-DF353qm4.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-CViUQ4Gg.js → acp-run-detail-panel-AnETmSXc.js} +1 -1
- package/dist/assets/{activation-list-route-swzAPcaY.js → activation-list-route-DD4LlouQ.js} +1 -1
- package/dist/assets/{activity-redirect-page-Wc2DZYeP.js → activity-redirect-page-B3gcwFtq.js} +1 -1
- package/dist/assets/{activity-steps-panel--otugh_6.js → activity-steps-panel-C6t9bncj.js} +1 -1
- package/dist/assets/{add-credits-modal-ZnKmvy6V.js → add-credits-modal-BHp9z7-k.js} +1 -1
- package/dist/assets/add-credits-modal-CFAKrqtS.js +1 -0
- package/dist/assets/{ai-page-BMR6BEti.js → ai-page-BYItH10R.js} +1 -1
- package/dist/assets/{android-billing-handoff-6shikm2k.js → android-billing-handoff-BtlRm2Gd.js} +1 -1
- package/dist/assets/{api-key-screen-CbnUNlGK.js → api-key-screen-ByV-2-g7.js} +1 -1
- package/dist/assets/{app-D8sMVA0h.js → app-DENERwru.js} +15 -15
- package/dist/assets/{app-info-z1hPo0V6.js → app-info-Df8Zh1Ev.js} +1 -1
- package/dist/assets/{archive-redirect-page-DEdZNQal.js → archive-redirect-page-BNPy7AD-.js} +1 -1
- package/dist/assets/{assistant-handle-modal-Rx01AWRM.js → assistant-handle-modal-CdAetGEu.js} +1 -1
- package/dist/assets/{assistant-inbox-page-route-CWfD1nW8.js → assistant-inbox-page-route-B8fD8gXz.js} +1 -1
- package/dist/assets/{assistant-inbox-upgrade-body-DnzMfD6M.js → assistant-inbox-upgrade-body-CXoZZXrZ.js} +1 -1
- package/dist/assets/{assistant-status-panel-Cox-mezz.js → assistant-status-panel-BPk7Kxlr.js} +1 -1
- package/dist/assets/auth-store-CE1eUA2L.js +1 -0
- package/dist/assets/{auth-welcome-screen-Bwm2MF1q.js → auth-welcome-screen-BxOOugV8.js} +1 -1
- package/dist/assets/avatar-bundled-components-zLu_3oxr.js +1 -0
- package/dist/assets/{avatar-random-DenoKEgP.js → avatar-random-BWf-lGuD.js} +2 -2
- package/dist/assets/{await-org-header-settled-BxLRQCmZ.js → await-org-header-settled-5KgElVC2.js} +1 -1
- package/dist/assets/{background-task-detail-panel-COBZw2lg.js → background-task-detail-panel-CoLWVbVP.js} +1 -1
- package/dist/assets/{billing-page-DfUj1I0G.js → billing-page-u3iPL5iM.js} +3 -3
- package/dist/assets/{billing-redirect-page-DKyiR6MR.js → billing-redirect-page-8P-IMyWs.js} +1 -1
- package/dist/assets/{bookmarks-page-CFEE1Uxr.js → bookmarks-page-CMs-USGy.js} +1 -1
- package/dist/assets/{bundle-confirm-page-B-d41LNa.js → bundle-confirm-page-Bivz7uCg.js} +1 -1
- package/dist/assets/{channel-transcript-panel-CmHEsFMk.js → channel-transcript-panel-CoCDuR4w.js} +1 -1
- package/dist/assets/{channels-page-route-CuAKuwQD.js → channels-page-route-CWW2AV7d.js} +1 -1
- package/dist/assets/{chat-info-panel-oH5Oyl38.js → chat-info-panel-DxgKF0-Z.js} +1 -1
- package/dist/assets/{checkout-continuation-C7ALmXXi.js → checkout-continuation-CoIAcRA6.js} +1 -1
- package/dist/assets/{checkout-page-BiKD4JLD.js → checkout-page-v01Qo0gF.js} +1 -1
- package/dist/assets/checkout-return-target-BEXPg1Xm.js +1 -0
- package/dist/assets/{command-palette-BlZE0DtA.js → command-palette-Dr8VDM0a.js} +1 -1
- package/dist/assets/command-palette-mO8-mIXR.js +1 -0
- package/dist/assets/{command-palette-window-page-B_vTgfMk.js → command-palette-window-page-DmpKHCvv.js} +1 -1
- package/dist/assets/{community-page-h4SSKpvs.js → community-page-5Koh1Pf6.js} +1 -1
- package/dist/assets/{companion-accent-CpX6aNlW.js → companion-accent-CUR6gi0-.js} +1 -1
- package/dist/assets/{companion-dock-zones-page-VmKgW5GB.js → companion-dock-zones-page-9SQJH2mx.js} +1 -1
- package/dist/assets/{companion-layout-TXE0PA9f.js → companion-layout-BwBXhmuK.js} +1 -1
- package/dist/assets/{companion-popover-C-jOy9ph.js → companion-popover-CoN3gFAQ.js} +1 -1
- package/dist/assets/{companion-popover-page-BroQfXvM.js → companion-popover-page-xU8NzRUt.js} +1 -1
- package/dist/assets/{companion-surface-DOIgH-bV.js → companion-surface-DciMeSdX.js} +1 -1
- package/dist/assets/{companion-surface-page-DRLXSLvn.js → companion-surface-page-BXNkpFnL.js} +1 -1
- package/dist/assets/{companion-tour-entry-B1IsGYch.js → companion-tour-entry-DpBBpsTm.js} +1 -1
- package/dist/assets/{companion-watch-frame-page-BrtR8aJG.js → companion-watch-frame-page-De2eR--u.js} +1 -1
- package/dist/assets/{connect-page-yTAoyfL3.js → connect-page-BY9XNM70.js} +1 -1
- package/dist/assets/{consent-controls-n1HIl_Qh.js → consent-controls-DA4_WXMW.js} +1 -1
- package/dist/assets/{contacts-gateway-CnUI-BQ8.js → contacts-gateway-CHhmYG8l.js} +1 -1
- package/dist/assets/{contacts-page-route-BeTKJ0wU.js → contacts-page-route-CC0cMZb-.js} +1 -1
- package/dist/assets/{copy-button-zFMI1aRE.js → copy-button-Dqj9pgai.js} +1 -1
- package/dist/assets/{credential-entry-page-BX5tgHs-.js → credential-entry-page-E0skRjEq.js} +1 -1
- package/dist/assets/{credentials-page-DO12GLZa.js → credentials-page-Bbv5IdF2.js} +1 -1
- package/dist/assets/{csv-preview-DTvQhodp.js → csv-preview-BZvGLQt-.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-CKPdbPhO.js → danger-zone-redirect-page-C3qhfYKv.js} +1 -1
- package/dist/assets/{debug-page-KaXTLZ3j.js → debug-page-C-Ywh5nC.js} +1 -1
- package/dist/assets/deploy-dialogs-CZ-O-8sD.js +1 -0
- package/dist/assets/{deploy-dialogs-D1N0Mx60.js → deploy-dialogs-D5Qdi1vH.js} +1 -1
- package/dist/assets/{desktop-preview-content-BGP-Q4ES.js → desktop-preview-content-Xi711BL9.js} +2 -2
- package/dist/assets/{desktop-status-DhhVXu3M.js → desktop-status-BbT1c7b_.js} +1 -1
- package/dist/assets/{desktop-viewer-BS0GRBKw.js → desktop-viewer-lMZgr2r9.js} +1 -1
- package/dist/assets/{detail-card-5ja97d__.js → detail-card-DDxZkd-7.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-C_TanbFS.js → detail-panel-stop-button-DyvekPdW.js} +1 -1
- package/dist/assets/{detail-primitives-DlHfs3NY.js → detail-primitives-xBJj2j5D.js} +1 -1
- package/dist/assets/{developer-page-Ia_M--jA.js → developer-page-BlR6sar3.js} +1 -1
- package/dist/assets/{devices-redirect-page-Dicfe-Xh.js → devices-redirect-page-C8Qz95f9.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DLKil78N.js → dictation-overlay-page-DDxg0QzC.js} +1 -1
- package/dist/assets/document-load-CG8Q8LRf.js +1 -0
- package/dist/assets/{document-load-D7lS0Qam.js → document-load-GN11Lnmr.js} +1 -1
- package/dist/assets/{document-viewer-page-Bvnx2eMP.js → document-viewer-page-B2wKfrx7.js} +1 -1
- package/dist/assets/{emails-page-D3O_HhPG.js → emails-page-Ci9aUWrH.js} +1 -1
- package/dist/assets/{file-diff-view-D1j-t0cs.js → file-diff-view-C4U-n-O9.js} +1 -1
- package/dist/assets/{file-editor-CDuPINUR.js → file-editor--R6096fM.js} +1 -1
- package/dist/assets/{general-page-CsElCUdU.js → general-page-CqCp6Me6.js} +1 -1
- package/dist/assets/{hatching-screen-DAfWJUbK.js → hatching-screen-7pDOoqwh.js} +1 -1
- package/dist/assets/{hosting-screen-AXFQL3em.js → hosting-screen-CHSZgQLi.js} +1 -1
- package/dist/assets/{identity-page-route-DAr3l3g4.js → identity-page-route-DpQvcDHq.js} +1 -1
- package/dist/assets/{inspect-page-EGAIWdPZ.js → inspect-page-b7igjrsV.js} +3 -3
- package/dist/assets/{integrations-page-BOgg6KK3.js → integrations-page-Cz7Y5vMl.js} +1 -1
- package/dist/assets/{intelligence-layout-BPa8zuju.js → intelligence-layout-DnjbMbDE.js} +1 -1
- package/dist/assets/intelligence-layout-slots-store-BfLm_A1U.js +1 -0
- package/dist/assets/{keyboard-shortcuts-redirect-page-3JddlI6I.js → keyboard-shortcuts-redirect-page-BfTGiMBu.js} +1 -1
- package/dist/assets/{latest-assistant-text-fShWplU9.js → latest-assistant-text-rUBCqKvi.js} +1 -1
- package/dist/assets/{library-detail-page-CqqXK7mJ.js → library-detail-page-DNzuWZto.js} +1 -1
- package/dist/assets/{library-page-Db5rMvEu.js → library-page-oq9n8kJD.js} +1 -1
- package/dist/assets/local-mode-BMtnOCcG.js +1 -0
- package/dist/assets/{login-page-BbfY1JYR.js → login-page-CKRIURnO.js} +1 -1
- package/dist/assets/{logout-page-DoibQ_Ri.js → logout-page-DZPABSW1.js} +1 -1
- package/dist/assets/{logs-layout-Dobrj5WD.js → logs-layout-DPlXp8Rh.js} +1 -1
- package/dist/assets/{markdown-preview-CNgPT8Ns.js → markdown-preview-CwbBTBu2.js} +1 -1
- package/dist/assets/{media-preview-BB_3EZbz.js → media-preview-B6tAR_x0.js} +1 -1
- package/dist/assets/{memory-page-route-DLi_ptkl.js → memory-page-route-BUS5CbQs.js} +1 -1
- package/dist/assets/{memory-router-playground-page-DozE3X0H.js → memory-router-playground-page-BFhyMSjo.js} +1 -1
- package/dist/assets/{message-files-panel-BPTDooXh.js → message-files-panel-B694eW_k.js} +1 -1
- package/dist/assets/{metric-card-D0M85__8.js → metric-card-fY2ytHE4.js} +1 -1
- package/dist/assets/native-attachment-pickers-DHZmHnSA.js +1 -0
- package/dist/assets/native-file-CclvrIb0.js +1 -0
- package/dist/assets/{notifications-page-Ysp5efLW.js → notifications-page-C7HhfTeF.js} +1 -1
- package/dist/assets/{oauth-complete-page-CDxvG_L-.js → oauth-complete-page-DFCMLqQ6.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-CwJxBm2S.js → oauth-popup-complete-page-DRFAcmAw.js} +1 -1
- package/dist/assets/{old-chats-page-route-BcqodIdi.js → old-chats-page-route-hErpZLlC.js} +1 -1
- package/dist/assets/paired-platform-identity-RifmymbD.js +1 -0
- package/dist/assets/{pairing-page-DIcQb9OJ.js → pairing-page-riPEbJey.js} +1 -1
- package/dist/assets/password-reset-page-CbBkAgmg.js +1 -0
- package/dist/assets/{pdf-file-preview-DX0ZQoVT.js → pdf-file-preview-BtiyDYWM.js} +1 -1
- package/dist/assets/{personality-page-D4cC26jw.js → personality-page-6Gpjy7yv.js} +1 -1
- package/dist/assets/{personality-page-BFiUCJ1L.js → personality-page-DNnwdm8u.js} +1 -1
- package/dist/assets/{personality-sliders-BM4di6t9.js → personality-sliders-CBzy0hBL.js} +1 -1
- package/dist/assets/{plans-page-miRpUo-U.js → plans-page-N7GVXOjn.js} +1 -1
- package/dist/assets/{platform-loopback-page-CCG5On-e.js → platform-loopback-page-BgOWVvMY.js} +1 -1
- package/dist/assets/{plugin-detail-page-Dt5XsCxQ.js → plugin-detail-page-D5JZqJNP.js} +1 -1
- package/dist/assets/{plugins-page-B_d5EVPw.js → plugins-page-Cm6aC5cD.js} +1 -1
- package/dist/assets/plugins-surface-DFlmJdMv.js +1 -0
- package/dist/assets/{preview-error-DoWnZxU0.js → preview-error-72bCczYp.js} +1 -1
- package/dist/assets/{privacy-page-BmyUhMnI.js → privacy-page-OnCEFV_L.js} +1 -1
- package/dist/assets/{privacy-screen-CuOvxzA8.js → privacy-screen-CfWOYhCe.js} +1 -1
- package/dist/assets/{profile-card-DSHsAWzC.js → profile-card-BsnTkBKo.js} +1 -1
- package/dist/assets/{provider-callback-page-BVSe9lzW.js → provider-callback-page-D9yWa1A0.js} +1 -1
- package/dist/assets/{provider-key-Dn1NaLjs.js → provider-key-CZzjiAkE.js} +1 -1
- package/dist/assets/{provider-signup-page-B8wHDvGe.js → provider-signup-page-BvfntdQM.js} +1 -1
- package/dist/assets/{quick-input-page-BcTqo_SA.js → quick-input-page-B83Kz5SJ.js} +1 -1
- package/dist/assets/{referral-modal-CXPg4U-L.js → referral-modal-1pjnqBsD.js} +1 -1
- package/dist/assets/referral-modal-DtcanVzv.js +1 -0
- package/dist/assets/{research-mock-page-lCKcSGWS.js → research-mock-page-CjTYNTUe.js} +1 -1
- package/dist/assets/{research-onboarding-route-CXMe3vp7.js → research-onboarding-route-BJOH_84-.js} +1 -1
- package/dist/assets/{review-terms-screen-CcKEKn6x.js → review-terms-screen-Cx8K_F-E.js} +1 -1
- package/dist/assets/routes-B6d_2LBB.js +1 -0
- package/dist/assets/{schedules-C862mQ95.js → schedules-AatsZCvw.js} +1 -1
- package/dist/assets/{schedules-page-Vm7pjI-3.js → schedules-page-t9TH0x4P.js} +1 -1
- package/dist/assets/{security-redirect-page-Cf6N-pAp.js → security-redirect-page-qJHlofPo.js} +1 -1
- package/dist/assets/{select-assistant-screen-DmC81TOi.js → select-assistant-screen-Cv2HoXMC.js} +1 -1
- package/dist/assets/{self-hosted-servers-CuhcBUtc.js → self-hosted-servers-o6yBM9bM.js} +1 -1
- package/dist/assets/{service-form-controls-Q1QYmu0R.js → service-form-controls-B9ObOv9F.js} +1 -1
- package/dist/assets/{setting-row-bAvkY8qq.js → setting-row-B0LsP9pN.js} +1 -1
- package/dist/assets/{settings-divider-JNNvLiiq.js → settings-divider-Dt6RBWfk.js} +1 -1
- package/dist/assets/{settings-layout-kZQ0T-wh.js → settings-layout-B3ruc4iH.js} +1 -1
- package/dist/assets/share-feedback-modal-BpIQNjHK.js +1 -0
- package/dist/assets/{share-feedback-modal-C1NM5ZQA.js → share-feedback-modal-veiYaAaT.js} +1 -1
- package/dist/assets/{sidebar-tree-C31ptvb9.js → sidebar-tree-DIHisqCB.js} +1 -1
- package/dist/assets/{signup-page-BgeUPiLo.js → signup-page-DYr4nTuo.js} +1 -1
- package/dist/assets/{signup-shell-qd7yOKsi.js → signup-shell-C9bZrGxl.js} +1 -1
- package/dist/assets/{skill-detail-page-Cx1j6Kur.js → skill-detail-page-z8BBDq_s.js} +1 -1
- package/dist/assets/{skill-detail-panel-CEblhGiR.js → skill-detail-panel-DM-_Rsdq.js} +1 -1
- package/dist/assets/{skill-removal-dialog-sFJ2FlXs.js → skill-removal-dialog-BXFlN95X.js} +1 -1
- package/dist/assets/{skills-page-DwaV4t6G.js → skills-page-CRqoCQYQ.js} +1 -1
- package/dist/assets/{sounds-page-DIwns3JM.js → sounds-page-Dl8_dJCl.js} +1 -1
- package/dist/assets/{start-screen-Bhe95rpT.js → start-screen-HN8at0TN.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-6st6DWoq.js → stt-language-picker-modal-B8piSfB-.js} +1 -1
- package/dist/assets/{subagent-detail-panel-zJtzbOlF.js → subagent-detail-panel-DYp4YRs_.js} +1 -1
- package/dist/assets/{superpowers-page-Cpl22-6n.js → superpowers-page-DbUzITGO.js} +1 -1
- package/dist/assets/{system-events-page-C2YAEfJf.js → system-events-page-BTsJ2sdd.js} +1 -1
- package/dist/assets/{system-events-redirect-page-CVuxUaY0.js → system-events-redirect-page-BVFwY_c3.js} +1 -1
- package/dist/assets/{text-preview-BO6RkCx5.js → text-preview-JHCp9h9-.js} +1 -1
- package/dist/assets/{theme-stage-page-DhT0XNI2.js → theme-stage-page-CRKRHAb2.js} +1 -1
- package/dist/assets/{tiptap-document-editor-BcLk_m4Z.js → tiptap-document-editor-CKe5wwrN.js} +1 -1
- package/dist/assets/{tool-detail-panel-DgLms60D.js → tool-detail-panel-41qEO2UV.js} +1 -1
- package/dist/assets/tool-detail-panel-joFGH16p.js +1 -0
- package/dist/assets/{trait-cycle-row-DaQ1Ws3F.js → trait-cycle-row-CjHGJs48.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-CA1adXlD.js → upgrade-cancel-page-DPSwre2I.js} +1 -1
- package/dist/assets/{upgrade-success-page-DQgW1mUo.js → upgrade-success-page-BlBU0-WD.js} +1 -1
- package/dist/assets/{usage-redirect-page-CUIv8k9u.js → usage-redirect-page-BVH_EQJk.js} +1 -1
- package/dist/assets/{use-app-delete-rBDVuftC.js → use-app-delete-D4RAWVu5.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-IZ1p17bP.js → use-assistant-identity-details-C3KGgDiz.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-CPok4Xxh.js → use-checkout-dismiss-refresh-Bn3vk9HQ.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-C6D5cD0V.js → use-edge-swipe-back-CIvyTWTH.js} +1 -1
- package/dist/assets/{use-hotkey-recorder-CQ81x0jZ.js → use-hotkey-recorder-G8nr82pe.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-CEz7AGhb.js → use-invite-link-dialog-UQY5waWL.js} +1 -1
- package/dist/assets/{use-plugins-list-D7kaVDLa.js → use-plugins-list-39Vnyb74.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-B3O40EpG.js → use-return-to-short-circuit-BqroTbAZ.js} +1 -1
- package/dist/assets/{use-side-list-room-jwL301KF.js → use-side-list-room-CPXqXrjy.js} +1 -1
- package/dist/assets/{use-skill-actions-10SaGQ2V.js → use-skill-actions-DPdCCsXT.js} +1 -1
- package/dist/assets/{use-skill-detail-files-OgBPzm48.js → use-skill-detail-files-DzrOeNuu.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-B1wPMmZz.js +1 -0
- package/dist/assets/{use-transcript-message-by-id-Iq7GcnGe.js → use-transcript-message-by-id-DwROz3Zz.js} +1 -1
- package/dist/assets/{voice-page-CaiYChec.js → voice-page-BKNPhRE9.js} +1 -1
- package/dist/assets/{wake-detail-panel-CT3DYLQZ.js → wake-detail-panel-hDNZoZAE.js} +1 -1
- package/dist/assets/{weather-forecast-display-BFdH_k1K.js → weather-forecast-display-yIsnynMo.js} +1 -1
- package/dist/assets/{welcome-screen-CqkJbp4o.js → welcome-screen-DwnVIgZJ.js} +1 -1
- package/dist/assets/{workflow-detail-panel-C-eS7Dvm.js → workflow-detail-panel-t97vD08W.js} +1 -1
- package/dist/assets/{workspace-page-BlTW2cBW.js → workspace-page-D9Wv2-tf.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/add-credits-modal-8XswoyyE.js +0 -1
- package/dist/assets/auth-store-Cl64mEJk.js +0 -1
- package/dist/assets/avatar-bundled-components-D5UflXXI.js +0 -1
- package/dist/assets/checkout-return-target-DMdfJOOA.js +0 -1
- package/dist/assets/command-palette-w64ApCdQ.js +0 -1
- package/dist/assets/deploy-dialogs-CRJiVPdx.js +0 -1
- package/dist/assets/document-load-DSIq6Sq0.js +0 -1
- package/dist/assets/intelligence-layout-slots-store-BJaDjomF.js +0 -1
- package/dist/assets/local-mode-D_3DvD-d.js +0 -1
- package/dist/assets/native-attachment-pickers-CwbujgDo.js +0 -1
- package/dist/assets/native-file-D0pwPgoW.js +0 -1
- package/dist/assets/paired-platform-identity-T0oJWAAF.js +0 -1
- package/dist/assets/password-reset-page-C7NkRhLd.js +0 -1
- package/dist/assets/plugins-surface-BxV_0iuU.js +0 -1
- package/dist/assets/referral-modal-CI2bBp4q.js +0 -1
- package/dist/assets/routes-QuWxfGvc.js +0 -1
- package/dist/assets/share-feedback-modal-C1e2jpWO.js +0 -1
- package/dist/assets/tool-detail-panel-BmOzPhuv.js +0 -1
- package/dist/assets/use-supports-credentials-settings-DuYuJNsF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$i as t,Bs as n,EC as r,H as i,JS as a,KS as o,Nf as s,Qi as c,Rx as l,Sl as u,WS as d,Xf as f,Xi as p,Yf as m,Zf as h,_f as g,bC as _,cC as v,dh as y,eS as b,ea as x,gC as S,lv as ee,mC as C,nC as w,nm as te,nt as T,qS as E,rm as D,w as ne}from"./app-D8sMVA0h.js";import{I as O,N as k,Qn as A,Yn as j,j as M,tr as re}from"./vendor-DEhKVoiV.js";import{_ as ie,f as ae,n as oe,r as se,t as ce,x as N}from"./react-B9IgSVeK.js";import{Bi as P,Dn as le,Kt as F,Lt as ue,Ra as I,Vn as de,Ya as L,Zt as R,_a as fe,_t as z,br as pe,tr as me,vt as B,x as V,za as H}from"./icons-C0wyat6T.js";import{t as U}from"./ellipsis-vertical-Bg7ccW1x.js";import{t as W}from"./detail-card-5ja97d__.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-jwL301KF.js";import{c as G,i as ve,n as ye,r as K,t as be}from"./use-invite-link-dialog-CEz7AGhb.js";import{a as xe,i as Se,n as Ce,t as we}from"./contacts-gateway-CnUI-BQ8.js";var q=L(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Te=L(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),J=e(N(),1),Ee=new Set([`slack`]);function De(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Oe(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function ke(e){let t=Oe(e.toLowerCase());return t?O(t,{ns:`contacts`}):e}var Ae=`New Contact`;function je(e){return e===Ae}var Y=ce();function Me({channels:e,pendingChannelKey:n=null,onConnect:r,onDisconnect:i}){let{t:a}=M(`contacts`),[s,c]=(0,J.useState)(null);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,t)=>(0,Y.jsxs)(`div`,{children:[t>0?(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,Y.jsx)(Ne,{channel:e,pending:n===e.key,onConnect:r?()=>r(e.key):void 0,onDisconnect:i&&e.canDisconnect?()=>c(e.key):void 0})]},e.key))}),(0,Y.jsx)(o,{open:s!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:s?t(s):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{s&&i&&i(s),c(null)},onCancel:()=>c(null)})]})}function Ne({channel:e,pending:n,onConnect:i,onDisconnect:a}){let{t:o}=M(`contacts`),s=e.configured,{Icon:c,label:l}=x(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(p,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t(e.key)}),s&&e.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(c,{className:`h-3 w-3`}),l]}),a?(0,Y.jsx)(r,{variant:`danger`,onClick:a,disabled:n,children:o(n?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(r,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(oe,{to:`${b.channels}?setup=${e.key}`,children:o(`actions.manage`)})})]}):i?(0,Y.jsx)(r,{variant:`outlined`,onClick:i,disabled:n,children:o(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(v,{tone:r,children:n})}function Z(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Pe({assistantName:e,...t}){let{t:r}=M(`contacts`),i=n(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:r(`assistantChannelsDetail.title`,{name:i}),accessory:(0,Y.jsx)(X,{role:`assistant`}),compactAccessory:!0}),(0,Y.jsx)(W,{title:r(`assistantChannelsDetail.channelsTitle`),subtitle:r(`assistantChannelsDetail.channelsSubtitle`,{name:i}),children:(0,Y.jsx)(Me,{...t})})]})}var Fe=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Ie(e){return Fe.has(e)}function Le(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Q(e){return e.supportsVerification||Le(e)}function Re(e){return!!e?.address?.trim()}function ze(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&De(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||Le(e)?{kind:`unverified`}:{kind:`setup`}}function Be(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||Ie(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Ve({channelId:e,name:t,className:n,style:r}){let i=c(e);if(i)return(0,J.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(fe,{className:n,style:r});case`hash`:return(0,Y.jsx)(pe,{className:n,style:r});case`send`:return(0,Y.jsx)(z,{className:n,style:r});case`phone`:return(0,Y.jsx)(F,{className:n,style:r});case`mail`:return(0,Y.jsx)(de,{className:n,style:r});case`message-square`:return(0,Y.jsx)(le,{className:n,style:r});default:return(0,Y.jsx)(q,{className:n,style:r})}}function $({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:i,verifyLoading:a,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=M(`contacts`),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=e=>{p&&(l?.(p.info.id,e),m(null))},y=Be(t,e,r);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[n&&(0,Y.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:f(`contactChannelsSection.loadFailed`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,Y.jsxs)(`div`,{children:[t>0&&(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Y.jsx)(He,{info:e,existing:n,setupLabel:i??f(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:c?()=>c(e.id):void 0,onVerify:l&&Q(e)?()=>m({info:e,existing:n}):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Ee.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p?(0,Y.jsx)(Ue,{info:p.info,existing:p.existing,verifySubject:s,onConfirm:v,onCancel:()=>m(null)}):null,h&&(0,Y.jsx)(o,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function He({info:e,existing:t,setupLabel:n,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let{t:l}=M(`contacts`),u=ze(e,t);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(Ve,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:u.kind===`connected`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(P,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),s?(0,Y.jsx)(r,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`verified`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(P,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),s?(0,Y.jsx)(r,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,Y.jsx)(r,{variant:`outlined`,onClick:o,disabled:!o||i,children:l(i?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[c?(0,Y.jsxs)(r,{onClick:c,children:[(0,Y.jsx)(me,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(r,{variant:`outlined`,onClick:a,disabled:!a,children:n})]}):null})]})}function Ue({info:e,existing:t,verifySubject:n,onConfirm:i,onCancel:s}){let{t:c}=M(`contacts`),[l,u]=(0,J.useState)(t?.address?.trim()??``),d=(0,J.useRef)(null),f=(0,J.useId)(),p=l.trim();return Re(t)?(0,Y.jsx)(o,{open:!0,title:c(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label}),message:c(n===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:e.label}),confirmLabel:c(`actions.verify`),onConfirm:()=>{i()},onCancel:s}):(0,Y.jsx)(a.Root,{open:!0,onOpenChange:e=>{e||s()},children:(0,Y.jsx)(a.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),d.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),s()},children:(0,Y.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),p.length!==0&&i(p)},children:[(0,Y.jsx)(a.Header,{children:(0,Y.jsx)(a.Title,{children:c(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(a.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(a.Description,{children:c(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(w,{ref:d,id:f,label:c(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:l,onChange:e=>{u(e.target.value)},placeholder:c(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,Y.jsxs)(a.Footer,{children:[(0,Y.jsx)(r,{variant:`outlined`,type:`button`,onClick:s,children:c(`actions.cancel`)}),(0,Y.jsx)(r,{type:`submit`,disabled:p.length===0,children:c(`actions.verify`)})]})]})})})}function We(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function Ge(e,t){switch(t){case`none`:return e(`contactPermissions.preset.none`);case`low`:return e(`contactPermissions.preset.low`);case`medium`:return e(`contactPermissions.preset.medium`);case`high`:return e(`contactPermissions.preset.high`)}}function Ke(e,t){if(t===null)return e(`contactPermissions.inheritDescription`);switch(t){case`none`:return e(`contactPermissions.description.none`);case`low`:return e(`contactPermissions.description.low`);case`medium`:return e(`contactPermissions.description.medium`);case`high`:return e(`contactPermissions.description.high`)}}function qe(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Je({contact:e,pending:t,onAutoApproveThresholdChange:n}){let{t:r}=M(`contacts`),a=We(e.autoApproveThreshold)?e.autoApproveThreshold:null,o=a===null?null:i.find(e=>e.riskThreshold===a);return(0,Y.jsx)(W,{title:r(`contactPermissions.title`),subtitle:r(`contactPermissions.subtitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`contact-permissions`,children:[(0,Y.jsx)(`div`,{style:{maxWidth:280},children:(0,Y.jsx)(d,{value:o?.id??null,placeholder:r(`contactPermissions.inheritLabel`),disabled:t,onSelectNone:()=>{n(null)},onChange:e=>{let t=i.find(t=>t.id===e);t&&n(t.riskThreshold)},options:[{value:null,label:r(`contactPermissions.inheritLabel`)},...i.map(e=>{let t=e.icon;return{value:e.id,label:Ge(r,e.riskThreshold),icon:(0,Y.jsx)(t,{className:`h-3.5 w-3.5`})}})]})}),(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Ke(r,a)})]})})}function Ye(e){return(0,Y.jsx)(Xe,{...e},e.contact.id)}function Xe({contact:e,savePending:t,deletePending:n,verifyPending:i,mergePending:a=!1,canMerge:s=!1,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,onSave:d,onDelete:f,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_,pendingAutoApproveThreshold:v,onAutoApproveThresholdChange:y}){let{t:b}=M(`contacts`),x=je(e.displayName),[S,ee]=(0,J.useState)(x?``:e.displayName),[C,te]=(0,J.useState)(e.notes??``),[T,E]=(0,J.useState)(!1),D=S.trim(),ne=C.trim(),O=x?``:e.displayName,k=e.notes??``,A=D!==O||ne!==k,j=D.length>0&&A&&!t&&!n,re=x&&e.channels.length===0&&e.interactionCount===0,ie=D||(x?b(`contact.draftName`):e.displayName),ae=b(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:ie,accessory:(0,Y.jsx)(X,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:ae,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(w,{label:b(`contact.nameLabel`),type:`text`,value:S,onChange:e=>ee(e.target.value),placeholder:b(`contactDetailView.namePlaceholder`),autoFocus:x,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(w,{label:b(`contact.notesLabel`),type:`text`,value:C,onChange:e=>te(e.target.value),placeholder:b(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(r,{type:`button`,onClick:()=>d({displayName:D,notes:ne}),disabled:!j,children:b(t?`actions.saving`:`actions.save`)}),p?(0,Y.jsx)(r,{type:`button`,variant:`outlined`,onClick:p,disabled:!s||re||A||a||t||n,title:s?re?b(`contactDetailView.mergeBlockedUnsavedDraft`):A?b(`contact.mergeBlockedUnsaved`):void 0:b(`contact.mergeBlockedNoCandidates`),children:b(a?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(r,{type:`button`,variant:`danger`,onClick:()=>{re?f():E(!0)},disabled:n,children:b(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(W,{title:b(`contactDetailView.linkedAccountsTitle`),subtitle:b(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)($,{contactChannels:e.channels,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,verifyLoading:i,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),qe(e)&&y?(0,Y.jsx)(Je,{contact:e,pending:v,onAutoApproveThresholdChange:y}):null,(0,Y.jsx)(o,{open:T,title:b(`contactDetailView.deleteConfirmTitle`,{name:ie}),message:b(`contactDetailView.deleteConfirmMessage`),confirmLabel:b(`actions.delete`),destructive:!0,onConfirm:()=>{E(!1),f()},onCancel:()=>E(!1)})]})}function Ze(e){return(0,Y.jsx)(Qe,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Qe({open:e,survivor:t,candidates:n,pending:i,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=M(`contacts`),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(null);(0,J.useEffect)(()=>{f&&!n.some(e=>e.id===f)&&p(null)},[n,f]);let m=(0,J.useMemo)(()=>{let e=u.trim().toLowerCase();return e?n.filter(t=>t.displayName.toLowerCase().includes(e)):n},[n,u]),h=f?n.find(e=>e.id===f)??null:null,g=rt(t);return(0,Y.jsx)(a.Root,{open:e,onOpenChange:e=>{!e&&!i&&c()},children:(0,Y.jsxs)(a.Content,{size:`md`,children:[(0,Y.jsxs)(a.Header,{icon:Te,children:[(0,Y.jsx)(a.Title,{children:h?l(`contactMergeDialog.titlePicked`,{donor:h.displayName,survivor:g}):l(`contactMergeDialog.titlePicking`,{survivor:g})}),(0,Y.jsx)(a.Description,{children:l(h?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(a.Body,{className:`flex flex-col gap-3`,children:[h?(0,Y.jsx)(tt,{survivor:t,donor:h}):n.length===0?(0,Y.jsx)(nt,{}):(0,Y.jsx)($e,{search:u,onSearch:d,candidates:m,onPick:p}),o?(0,Y.jsx)(S,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,Y.jsx)(a.Footer,{children:h?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(r,{variant:`outlined`,onClick:()=>p(null),disabled:i,leftIcon:(0,Y.jsx)(H,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,Y.jsx)(r,{variant:`danger`,onClick:()=>s(h.id),disabled:i,children:l(i?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(r,{variant:`outlined`,onClick:c,disabled:i,children:l(`actions.cancel`)})})]})})}function $e({search:e,onSearch:t,candidates:n,onPick:r}){let{t:i}=M(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(w,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:i(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(B,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,Y.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":i(`contactMergeDialog.listAriaLabel`),children:n.length===0?(0,Y.jsx)(S,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:i(`contactsList.noMatches`)}):n.map(e=>(0,Y.jsx)(et,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function et({contact:e,onPick:t}){let n=at(e).join(` | `)||void 0;return(0,Y.jsx)(_,{asChild:!0,children:(0,Y.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function tt({survivor:e,donor:t}){let{t:n}=M(`contacts`),r=rt(e),{moved:i,duplicates:a}=it(e,t);return(0,Y.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,Y.jsx)(`li`,{children:(0,Y.jsx)(k,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,Y.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,Y.jsx)(`li`,{children:n(`contactMergeDialog.channelsMoved`,{count:i.length,survivor:r,channels:i.map(e=>ke(e.type)).join(`, `)})}),a.length>0?(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.duplicatesSkipped`,{count:a.length,survivor:r})}):null,t.notes?(0,Y.jsx)(`li`,{children:n(`contactMergeDialog.notesAppended`)}):null,(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.irreversible`)})]})}function nt(){let{t:e}=M(`contacts`);return(0,Y.jsx)(S,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function rt(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?O(`survivorName.you`,{ns:`contacts`}):O(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||O(`survivorName.thisContact`,{ns:`contacts`})}function it(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function at(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(ke(e)))}return n}function ot({loading:e,guardian:t,assistantName:n,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1,search:l,onSearchChange:u}){let{t:d}=M(`contacts`),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,Y.jsx)(C.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(C.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:d(`contactsList.heading`)}),(0,Y.jsx)(r,{type:`button`,variant:`ghost`,loading:c,iconOnly:(0,Y.jsx)(ue,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":d(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,Y.jsx)(st,{name:t.displayName?d(`contactsList.youNamed`,{name:t.displayName}):d(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,Y.jsx)(st,{name:n?.trim()||d(`contactsList.assistantFallback`),role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,Y.jsx)(w,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:d(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(B,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,Y.jsx)(st,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:d(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(r,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,loading:c,leftIcon:(0,Y.jsx)(V,{"aria-hidden":!0}),children:d(`contactsList.add`)})]})})}function st({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let{t:c}=M(`contacts`),l=r&&r.length>0?r.join(` | `):void 0,u=o===`pencil`?(0,Y.jsx)(R,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):o===`more`?(0,Y.jsx)(U,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,Y.jsx)(_,{asChild:!0,active:i,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),l?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:l}):null]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,Y.jsx)(v,{tone:s?`positive`:`neutral`,children:c(s?`contactsList.verified`:`contactsList.unverified`)}),(0,Y.jsx)(X,{role:t,contactType:n}),u]})]})})}function ct(e){return(0,Y.jsx)(lt,{...e},e.contact.id)}function lt({contact:e,savePending:t,verifyPending:n,mergePending:i=!1,canMerge:a=!1,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,onSave:l,onMerge:u,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p,onGenerateInviteLink:m}){let{t:h}=M(`contacts`),g=e.displayName.startsWith(`vellum-principal-`),_=g?``:e.displayName,[v,y]=(0,J.useState)(_),[b,x]=(0,J.useState)(e.notes??``),S=v.trim(),ee=b.trim(),C=S!==_.trim()||ee!==(e.notes??``).trim(),te=C&&!t,T=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:g?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(w,{label:h(`contact.nameLabel`),type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:h(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsx)(w,{label:h(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:h(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(r,{variant:`primary`,onClick:()=>l({displayName:S||e.displayName,notes:ee}),disabled:!te,children:h(t?`actions.saving`:`actions.save`)}),u?(0,Y.jsx)(r,{variant:`outlined`,onClick:u,disabled:!a||C||i||t,title:a?C?h(`contact.mergeBlockedUnsaved`):void 0:h(`contact.mergeBlockedNoCandidates`),children:h(i?`actions.merging`:`actions.merge`)}):null]})]})}),(0,Y.jsx)(W,{title:h(`guardianDetailView.channelsTitle`),subtitle:h(`guardianDetailView.channelsSubtitle`),children:(0,Y.jsx)($,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,setupLabel:h(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),m?(0,Y.jsx)(K,{onClick:m}):null]})}function ut(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function dt(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function ft({open:e,channelLabel:t,contactName:n,accounts:i,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=M(`contacts`),[p,m]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&m(``)},[e]);let h=(0,J.useMemo)(()=>ut(i??[],p),[i,p]),g=c!=null;return(0,Y.jsx)(a.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,Y.jsxs)(a.Content,{size:`sm`,children:[(0,Y.jsxs)(a.Header,{children:[(0,Y.jsx)(a.Title,{children:f(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(a.Description,{children:(0,Y.jsx)(k,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:n},components:{contact:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,Y.jsxs)(a.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(w,{type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,Y.jsx)(B,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--system-negative-strong)]`,children:s}):null,(0,Y.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):h.length===0?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,Y.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:dt(e.displayName)}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,Y.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,Y.jsxs)(a.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,Y.jsx)(k,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,Y.jsxs)(r,{variant:`link`,className:`shrink-0`,onClick:d,disabled:g,children:[f(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(I,{className:`h-3.5 w-3.5`})]}):null]})]})})}function pt({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,J.useState)(!1),o=j({mutationFn:n=>Ce(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),E.success(O(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),r()}}),s=(0,J.useCallback)(()=>{o.reset(),a(!0)},[o]),c=(0,J.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),l=(0,J.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:c,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?O(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:l}}var mt=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],ht=[];function gt({assistantId:e,onStartSetupConversation:t}){let{t:r}=M(`contacts`),i=g.use.a2aChannel(),a=l.use.name(),o=re(),[c]=ie(),u=c.get(`setup`),d=u&&y(u)?u:null,[p,_]=(0,J.useState)({kind:`assistant`}),v=be(e),{paneRef:x,hasRoomForList:S,drawerOpen:C,openDrawer:w,closeDrawer:T}=_e(),[O,k]=(0,J.useState)(``),[ae,oe]=(0,J.useState)(!1),ce=n(a),N=(0,J.useMemo)(()=>({path:{assistant_id:e}}),[e]),P=f(N),le=A({...m(N),enabled:!!e,select:e=>e.contacts}),F=ye({assistantId:e,onStartSetupConversation:t}),ue=A({...s({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await ee({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:mt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),I=ue.data??ht,de=ue.isError,L=le.data,R=(0,J.useMemo)(()=>L?.find(e=>e.role===`guardian`)??null,[L]),fe=(0,J.useMemo)(()=>L?.filter(e=>e.role!==`guardian`)??[],[L]),z=(0,J.useMemo)(()=>p.kind===`contact`?L?.find(e=>e.id===p.contactId)??null:null,[L,p]),pe=(0,J.useMemo)(()=>!L||!z?[]:L.filter(e=>e.id!==z.id&&e.role!==`guardian`),[L,z]),me=pe.length>0,B=(0,J.useRef)(!!d);(0,J.useEffect)(()=>{B.current||R&&(B.current=!0,_({kind:`contact`,contactId:R.id}))},[R]);let V=(0,J.useCallback)(()=>o.invalidateQueries({queryKey:P}),[o,P]),H=j({mutationFn:()=>Se(e,{displayName:Ae}),onMutate:async()=>{await o.cancelQueries({queryKey:P})},onSuccess:e=>{h(o,N,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),_({kind:`contact`,contactId:e.id})},onError:G(r(`contactsPage.createFailed`)),onSettled:()=>V()}),U=j({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{h(o,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),_({kind:`assistant`})},onError:G(r(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=j({mutationFn:({contactId:t,patch:n})=>Se(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{h(o,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(r(`contactsPage.saveFailed`)),onSettled:()=>V()}),K=j({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Se(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{h(o,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(r(`contactPermissions.saveFailed`)),onSettled:()=>V()}),q=D({onMutate:async()=>{await o.cancelQueries({queryKey:P})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(h(o,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),_({kind:`contact`,contactId:n.id})),oe(!1),E.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,J.useCallback)(e=>{_(e),T(),oe(!1),q.reset()},[T,q]),Ee=(0,J.useCallback)(()=>{q.reset(),oe(!0)},[q]),De=(0,J.useCallback)(()=>{q.isPending||(oe(!1),q.reset())},[q]),Oe=te({onSuccess:()=>V()}),je=(0,J.useCallback)((t,n)=>{Oe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Oe,e]),Me=(0,J.useCallback)(()=>{H.isPending||H.mutate()},[H]),Ne=(0,J.useCallback)(e=>{if(!t)return;let n=I.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.contact;r&&t(r)},[I,t]),X=(0,J.useCallback)(e=>{if(!t)return;let n=I.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.guardian;r&&t(r)},[I,t]),Z=j({mutationFn:t=>xe(e,t.channelId),onSuccess:()=>V(),onError:G(r(`contactsPage.verifyFailed`))}),Fe=j({mutationFn:t=>{if(!z)throw Error(`No contact selected`);return Ce(e,{id:z.id,displayName:z.displayName},{type:t.type,address:t.address})},onSuccess:()=>V(),onError:G(r(`contactsPage.verifyFailed`))}),Ie=(0,J.useCallback)((e,t)=>{if(!z)return;let n=t?.trim();if(n){Fe.mutate({type:e,address:n});return}let r=z.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&Z.mutate({channelId:r.id})},[z,Fe,Z]),Q=pt({assistantId:e,channelType:`slack`,contact:z?{id:z.id,displayName:z.displayName}:null,onLinked:V}),Re=A({...ne(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=F.channels.some(e=>e.key===`slack`&&e.configured),Be=(0,J.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),Ve=U.isPending?U.variables:null,$=(0,J.useMemo)(()=>{if(!z)return null;let e=z;return W.isPending&&W.variables?.contactId===z.id&&(e={...e,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}),K.isPending&&K.variables?.contactId===z.id&&(e={...e,autoApproveThreshold:K.variables.autoApproveThreshold}),e},[z,W.isPending,W.variables,K.isPending,K.variables]);if(d)return(0,Y.jsx)(se,{to:`${b.channels}?setup=${d}`,replace:!0});let He={loading:le.isLoading,assistantName:ce,guardian:R?{id:R.id,displayName:R.displayName.startsWith(`vellum-principal-`)?``:R.displayName,role:R.role,channelTypes:yt(R.channels,i)}:null,regularContacts:fe.filter(e=>e.id!==Ve).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:yt(e.channels,i),verified:vt(e.channels)})),selection:p,onAddContact:Me,addingContact:H.isPending,search:O,onSearchChange:k};return(0,Y.jsxs)(`div`,{ref:x,className:`flex min-h-0 flex-1 overflow-hidden ${S?`flex-row gap-6`:`flex-col gap-4`}`,children:[S?(0,Y.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,Y.jsx)(ot,{...He,onSelect:Te})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(ge,{onClick:w})}),(0,Y.jsx)(he,{open:C,onClose:T,title:r(`contactsPage.title`),children:(0,Y.jsx)(ot,{...He,onSelect:Te})})]}),(0,Y.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ve?(0,Y.jsx)(Pe,{assistantName:ce,channels:F.channels,pendingChannelKey:F.pendingChannelKey,onConnect:F.onSetup,onDisconnect:F.onDisconnect}):$?$.role===`guardian`?(0,Y.jsx)(ct,{contact:$,savePending:W.isPending,verifyPending:Z.isPending||Fe.isPending,mergePending:q.isPending,canMerge:me,availableChannels:I,channelsLoadFailed:de,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?X:void 0,onVerifyChannel:Ie,onRevokeChannel:je,onGenerateInviteLink:i?v.open:void 0}):(0,Y.jsx)(Ye,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:Z.isPending||Fe.isPending,mergePending:q.isPending,canMerge:me,availableChannels:I,channelsLoadFailed:de,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Ne:void 0,onVerifyChannel:Ie,onRevokeChannel:je,onLinkAccount:ze?Be:void 0,pendingAutoApproveThreshold:K.isPending,onAutoApproveThresholdChange:e=>{K.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):(0,Y.jsx)(_t,{})}),z?(0,Y.jsx)(Ze,{open:ae,survivor:z,candidates:pe,pending:q.isPending,errorMessage:q.error instanceof Error?q.error.message:q.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>q.mutate({path:{assistant_id:e},body:{keepId:z.id,mergeId:t}}),onClose:De}):null,(0,Y.jsx)(ft,{open:Q.dialogOpen,channelLabel:ke(`slack`),contactName:z?.displayName??``,accounts:Re.data,loading:Re.isLoading,errorMessage:Re.isError?r(`contactsPage.rosterLoadFailed`):Q.linkErrorMessage,pendingAccountId:Q.pendingAccountId,onPick:Q.pick,onClose:Q.close,onInviteInstead:t?()=>{Q.close(),Ne(Q.channelType)}:void 0}),(0,Y.jsx)(ve,{open:v.isOpen,assistantId:e,onClose:v.close})]})}function _t(){let{t:e}=M(`contacts`);return(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function vt(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||De(e)))}function yt(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(ke(e)))}return r}function bt(){let e=ae(),t=T();return(0,Y.jsx)(gt,{assistantId:t,onStartSetupConversation:t=>{u(e,{prompt:t})}},t)}export{bt as ContactsPageRoute};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$i as t,Bs as n,EC as r,H as i,JS as a,KS as o,Nf as s,Qi as c,Rx as l,Sl as u,WS as d,Xf as f,Xi as p,Yf as m,Zf as h,_f as g,bC as _,cC as v,dh as y,eS as b,ea as x,gC as S,lv as ee,mC as C,nC as w,nm as te,nt as T,qS as E,rm as D,w as ne}from"./app-DENERwru.js";import{I as O,N as k,Qn as A,Yn as j,j as M,tr as re}from"./vendor-DEhKVoiV.js";import{_ as ie,f as ae,n as oe,r as se,t as ce,x as N}from"./react-B9IgSVeK.js";import{Bi as P,Dn as le,Kt as F,Lt as ue,Ra as I,Vn as de,Ya as L,Zt as R,_a as fe,_t as z,br as pe,tr as me,vt as B,x as V,za as H}from"./icons-C0wyat6T.js";import{t as U}from"./ellipsis-vertical-Bg7ccW1x.js";import{t as W}from"./detail-card-DDxZkd-7.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-CPXqXrjy.js";import{c as G,i as ve,n as ye,r as K,t as be}from"./use-invite-link-dialog-UQY5waWL.js";import{a as xe,i as Se,n as Ce,t as we}from"./contacts-gateway-CHhmYG8l.js";var q=L(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Te=L(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),J=e(N(),1),Ee=new Set([`slack`]);function De(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function Oe(e){switch(e){case`slack`:return`channelType.slack`;case`telegram`:return`channelType.telegram`;case`discord`:return`channelType.discord`;case`whatsapp`:return`channelType.whatsapp`;case`a2a`:return`channelType.a2a`;case`phone`:return`channelType.phone`;case`email`:return`channelType.email`;default:return null}}function ke(e){let t=Oe(e.toLowerCase());return t?O(t,{ns:`contacts`}):e}var Ae=`New Contact`;function je(e){return e===Ae}var Y=ce();function Me({channels:e,pendingChannelKey:n=null,onConnect:r,onDisconnect:i}){let{t:a}=M(`contacts`),[s,c]=(0,J.useState)(null);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,t)=>(0,Y.jsxs)(`div`,{children:[t>0?(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,Y.jsx)(Ne,{channel:e,pending:n===e.key,onConnect:r?()=>r(e.key):void 0,onDisconnect:i&&e.canDisconnect?()=>c(e.key):void 0})]},e.key))}),(0,Y.jsx)(o,{open:s!==null,title:a(`assistantContactChannels.disconnectConfirmTitle`,{channel:s?t(s):``}),message:a(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:a(`actions.disconnect`),destructive:!0,onConfirm:()=>{s&&i&&i(s),c(null)},onCancel:()=>c(null)})]})}function Ne({channel:e,pending:n,onConnect:i,onDisconnect:a}){let{t:o}=M(`contacts`),s=e.configured,{Icon:c,label:l}=x(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(p,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:t(e.key)}),s&&e.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:s?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(c,{className:`h-3 w-3`}),l]}),a?(0,Y.jsx)(r,{variant:`danger`,onClick:a,disabled:n,children:o(n?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(r,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(oe,{to:`${b.channels}?setup=${e.key}`,children:o(`actions.manage`)})})]}):i?(0,Y.jsx)(r,{variant:`outlined`,onClick:i,disabled:n,children:o(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(v,{tone:r,children:n})}function Z(e,t){switch(e){case`guardian`:return{label:`Guardian`,tone:`positive`};case`assistant`:return{label:`Assistant`,tone:`negative`};default:return t===`assistant`?{label:`Assistant`,tone:`negative`}:{label:`Human`,tone:`warning`}}}function Pe({assistantName:e,...t}){let{t:r}=M(`contacts`),i=n(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:r(`assistantChannelsDetail.title`,{name:i}),accessory:(0,Y.jsx)(X,{role:`assistant`}),compactAccessory:!0}),(0,Y.jsx)(W,{title:r(`assistantChannelsDetail.channelsTitle`),subtitle:r(`assistantChannelsDetail.channelsSubtitle`,{name:i}),children:(0,Y.jsx)(Me,{...t})})]})}var Fe=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Ie(e){return Fe.has(e)}function Le(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Q(e){return e.supportsVerification||Le(e)}function Re(e){return!!e?.address?.trim()}function ze(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&De(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||Le(e)?{kind:`unverified`}:{kind:`setup`}}function Be(e,t,n){let r=[],i=new Set;if(e)for(let t of e)t.id===`a2a`&&!n||(r.push(t),i.add(t.id));for(let e of t)e.status===`revoked`||i.has(e.type)||e.type===`a2a`&&!n||Ie(e.type)&&(r.push({id:e.type,source:`default`,label:e.type.charAt(0).toUpperCase()+e.type.slice(1),subtitle:``,icon:`help-circle`,supportsVerification:!1,setupMessages:{guardian:``,contact:``}}),i.add(e.type));return r}function Ve({channelId:e,name:t,className:n,style:r}){let i=c(e);if(i)return(0,J.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(fe,{className:n,style:r});case`hash`:return(0,Y.jsx)(pe,{className:n,style:r});case`send`:return(0,Y.jsx)(z,{className:n,style:r});case`phone`:return(0,Y.jsx)(F,{className:n,style:r});case`mail`:return(0,Y.jsx)(de,{className:n,style:r});case`message-square`:return(0,Y.jsx)(le,{className:n,style:r});default:return(0,Y.jsx)(q,{className:n,style:r})}}function $({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:i,verifyLoading:a,verifySubject:s=`self`,onSetupChannel:c,onVerifyChannel:l,onRevokeChannel:u,onLinkAccount:d}){let{t:f}=M(`contacts`),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=e=>{p&&(l?.(p.info.id,e),m(null))},y=Be(t,e,r);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[n&&(0,Y.jsx)(`div`,{className:`px-1 py-2 text-sm`,style:{color:`var(--content-secondary)`},role:`status`,children:f(`contactChannelsSection.loadFailed`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,Y.jsxs)(`div`,{children:[t>0&&(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Y.jsx)(He,{info:e,existing:n,setupLabel:i??f(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:c?()=>c(e.id):void 0,onVerify:l&&Q(e)?()=>m({info:e,existing:n}):void 0,onRevoke:u&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:d&&Ee.has(e.id)?()=>d(e.id):void 0})]},e.id)})]}),p?(0,Y.jsx)(Ue,{info:p.info,existing:p.existing,verifySubject:s,onConfirm:v,onCancel:()=>m(null)}):null,h&&(0,Y.jsx)(o,{open:!0,title:f(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:f(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:f(`actions.revoke`),destructive:!0,onConfirm:()=>{u?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function He({info:e,existing:t,setupLabel:n,verifyLoading:i,onSetup:a,onVerify:o,onRevoke:s,onLinkAccount:c}){let{t:l}=M(`contacts`),u=ze(e,t);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(Ve,{channelId:e.id,name:e.icon,className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e.label}),t?.address?(0,Y.jsx)(`span`,{className:`truncate text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:t.address}):null,(0,Y.jsx)(`div`,{className:`ml-auto flex shrink-0 items-center gap-2`,children:u.kind===`connected`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(P,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),s?(0,Y.jsx)(r,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`verified`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 h-8 px-2.5 rounded-md whitespace-nowrap select-none text-body-small-emphasised leading-none bg-[var(--content-default)] text-[var(--surface-base)]`,children:[(0,Y.jsx)(P,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),s?(0,Y.jsx)(r,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,Y.jsx)(r,{variant:`outlined`,onClick:o,disabled:!o||i,children:l(i?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[c?(0,Y.jsxs)(r,{onClick:c,children:[(0,Y.jsx)(me,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(r,{variant:`outlined`,onClick:a,disabled:!a,children:n})]}):null})]})}function Ue({info:e,existing:t,verifySubject:n,onConfirm:i,onCancel:s}){let{t:c}=M(`contacts`),[l,u]=(0,J.useState)(t?.address?.trim()??``),d=(0,J.useRef)(null),f=(0,J.useId)(),p=l.trim();return Re(t)?(0,Y.jsx)(o,{open:!0,title:c(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label}),message:c(n===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:e.label}),confirmLabel:c(`actions.verify`),onConfirm:()=>{i()},onCancel:s}):(0,Y.jsx)(a.Root,{open:!0,onOpenChange:e=>{e||s()},children:(0,Y.jsx)(a.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),d.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),s()},children:(0,Y.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),p.length!==0&&i(p)},children:[(0,Y.jsx)(a.Header,{children:(0,Y.jsx)(a.Title,{children:c(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(a.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(a.Description,{children:c(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(w,{ref:d,id:f,label:c(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:l,onChange:e=>{u(e.target.value)},placeholder:c(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,Y.jsxs)(a.Footer,{children:[(0,Y.jsx)(r,{variant:`outlined`,type:`button`,onClick:s,children:c(`actions.cancel`)}),(0,Y.jsx)(r,{type:`submit`,disabled:p.length===0,children:c(`actions.verify`)})]})]})})})}function We(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function Ge(e,t){switch(t){case`none`:return e(`contactPermissions.preset.none`);case`low`:return e(`contactPermissions.preset.low`);case`medium`:return e(`contactPermissions.preset.medium`);case`high`:return e(`contactPermissions.preset.high`)}}function Ke(e,t){if(t===null)return e(`contactPermissions.inheritDescription`);switch(t){case`none`:return e(`contactPermissions.description.none`);case`low`:return e(`contactPermissions.description.low`);case`medium`:return e(`contactPermissions.description.medium`);case`high`:return e(`contactPermissions.description.high`)}}function qe(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Je({contact:e,pending:t,onAutoApproveThresholdChange:n}){let{t:r}=M(`contacts`),a=We(e.autoApproveThreshold)?e.autoApproveThreshold:null,o=a===null?null:i.find(e=>e.riskThreshold===a);return(0,Y.jsx)(W,{title:r(`contactPermissions.title`),subtitle:r(`contactPermissions.subtitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,"data-testid":`contact-permissions`,children:[(0,Y.jsx)(`div`,{style:{maxWidth:280},children:(0,Y.jsx)(d,{value:o?.id??null,placeholder:r(`contactPermissions.inheritLabel`),disabled:t,onSelectNone:()=>{n(null)},onChange:e=>{let t=i.find(t=>t.id===e);t&&n(t.riskThreshold)},options:[{value:null,label:r(`contactPermissions.inheritLabel`)},...i.map(e=>{let t=e.icon;return{value:e.id,label:Ge(r,e.riskThreshold),icon:(0,Y.jsx)(t,{className:`h-3.5 w-3.5`})}})]})}),(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:Ke(r,a)})]})})}function Ye(e){return(0,Y.jsx)(Xe,{...e},e.contact.id)}function Xe({contact:e,savePending:t,deletePending:n,verifyPending:i,mergePending:a=!1,canMerge:s=!1,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,onSave:d,onDelete:f,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_,pendingAutoApproveThreshold:v,onAutoApproveThresholdChange:y}){let{t:b}=M(`contacts`),x=je(e.displayName),[S,ee]=(0,J.useState)(x?``:e.displayName),[C,te]=(0,J.useState)(e.notes??``),[T,E]=(0,J.useState)(!1),D=S.trim(),ne=C.trim(),O=x?``:e.displayName,k=e.notes??``,A=D!==O||ne!==k,j=D.length>0&&A&&!t&&!n,re=x&&e.channels.length===0&&e.interactionCount===0,ie=D||(x?b(`contact.draftName`):e.displayName),ae=b(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:ie,accessory:(0,Y.jsx)(X,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:ae,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(w,{label:b(`contact.nameLabel`),type:`text`,value:S,onChange:e=>ee(e.target.value),placeholder:b(`contactDetailView.namePlaceholder`),autoFocus:x,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(w,{label:b(`contact.notesLabel`),type:`text`,value:C,onChange:e=>te(e.target.value),placeholder:b(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(r,{type:`button`,onClick:()=>d({displayName:D,notes:ne}),disabled:!j,children:b(t?`actions.saving`:`actions.save`)}),p?(0,Y.jsx)(r,{type:`button`,variant:`outlined`,onClick:p,disabled:!s||re||A||a||t||n,title:s?re?b(`contactDetailView.mergeBlockedUnsavedDraft`):A?b(`contact.mergeBlockedUnsaved`):void 0:b(`contact.mergeBlockedNoCandidates`),children:b(a?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(r,{type:`button`,variant:`danger`,onClick:()=>{re?f():E(!0)},disabled:n,children:b(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(W,{title:b(`contactDetailView.linkedAccountsTitle`),subtitle:b(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)($,{contactChannels:e.channels,availableChannels:c,channelsLoadFailed:l,a2aEnabled:u,verifyLoading:i,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:g,onLinkAccount:_})}),qe(e)&&y?(0,Y.jsx)(Je,{contact:e,pending:v,onAutoApproveThresholdChange:y}):null,(0,Y.jsx)(o,{open:T,title:b(`contactDetailView.deleteConfirmTitle`,{name:ie}),message:b(`contactDetailView.deleteConfirmMessage`),confirmLabel:b(`actions.delete`),destructive:!0,onConfirm:()=>{E(!1),f()},onCancel:()=>E(!1)})]})}function Ze(e){return(0,Y.jsx)(Qe,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function Qe({open:e,survivor:t,candidates:n,pending:i,errorMessage:o,onMerge:s,onClose:c}){let{t:l}=M(`contacts`),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(null);(0,J.useEffect)(()=>{f&&!n.some(e=>e.id===f)&&p(null)},[n,f]);let m=(0,J.useMemo)(()=>{let e=u.trim().toLowerCase();return e?n.filter(t=>t.displayName.toLowerCase().includes(e)):n},[n,u]),h=f?n.find(e=>e.id===f)??null:null,g=rt(t);return(0,Y.jsx)(a.Root,{open:e,onOpenChange:e=>{!e&&!i&&c()},children:(0,Y.jsxs)(a.Content,{size:`md`,children:[(0,Y.jsxs)(a.Header,{icon:Te,children:[(0,Y.jsx)(a.Title,{children:h?l(`contactMergeDialog.titlePicked`,{donor:h.displayName,survivor:g}):l(`contactMergeDialog.titlePicking`,{survivor:g})}),(0,Y.jsx)(a.Description,{children:l(h?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(a.Body,{className:`flex flex-col gap-3`,children:[h?(0,Y.jsx)(tt,{survivor:t,donor:h}):n.length===0?(0,Y.jsx)(nt,{}):(0,Y.jsx)($e,{search:u,onSearch:d,candidates:m,onPick:p}),o?(0,Y.jsx)(S,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:o}):null]}),(0,Y.jsx)(a.Footer,{children:h?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(r,{variant:`outlined`,onClick:()=>p(null),disabled:i,leftIcon:(0,Y.jsx)(H,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,Y.jsx)(r,{variant:`danger`,onClick:()=>s(h.id),disabled:i,children:l(i?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(r,{variant:`outlined`,onClick:c,disabled:i,children:l(`actions.cancel`)})})]})})}function $e({search:e,onSearch:t,candidates:n,onPick:r}){let{t:i}=M(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(w,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:i(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(B,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}),(0,Y.jsx)(`div`,{className:`flex max-h-[320px] min-h-[120px] flex-col gap-1 overflow-y-auto`,role:`listbox`,"aria-label":i(`contactMergeDialog.listAriaLabel`),children:n.length===0?(0,Y.jsx)(S,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:i(`contactsList.noMatches`)}):n.map(e=>(0,Y.jsx)(et,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function et({contact:e,onPick:t}){let n=at(e).join(` | `)||void 0;return(0,Y.jsx)(_,{asChild:!0,children:(0,Y.jsx)(`button`,{type:`button`,onClick:t,role:`option`,"aria-selected":`false`,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e.displayName}),n?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default text-(--content-tertiary)`,children:n}):null]})})})}function tt({survivor:e,donor:t}){let{t:n}=M(`contacts`),r=rt(e),{moved:i,duplicates:a}=it(e,t);return(0,Y.jsxs)(`ul`,{className:`flex flex-col gap-2 text-body-medium-lighter text-(--content-secondary)`,children:[(0,Y.jsx)(`li`,{children:(0,Y.jsx)(k,{i18nKey:`contactMergeDialog.donorDeleted`,ns:`contacts`,values:{donor:t.displayName},components:{donor:(0,Y.jsx)(`span`,{className:`text-(--content-default)`})}})}),(0,Y.jsx)(`li`,{children:n(`contactMergeDialog.channelsMoved`,{count:i.length,survivor:r,channels:i.map(e=>ke(e.type)).join(`, `)})}),a.length>0?(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.duplicatesSkipped`,{count:a.length,survivor:r})}):null,t.notes?(0,Y.jsx)(`li`,{children:n(`contactMergeDialog.notesAppended`)}):null,(0,Y.jsx)(`li`,{className:`text-(--content-tertiary)`,children:n(`contactMergeDialog.irreversible`)})]})}function nt(){let{t:e}=M(`contacts`);return(0,Y.jsx)(S,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function rt(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?O(`survivorName.you`,{ns:`contacts`}):O(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||O(`survivorName.thisContact`,{ns:`contacts`})}function it(e,t){let n=[],r=[];for(let i of t.channels)i.status!==`revoked`&&(e.channels.some(e=>e.type===i.type&&e.address.toLowerCase()===i.address.toLowerCase())?r.push(i):n.push(i));return{moved:n,duplicates:r}}function at(e){let t=new Set,n=[];for(let r of e.channels){if(r.status===`revoked`)continue;let e=r.type.toLowerCase();t.has(e)||(t.add(e),n.push(ke(e)))}return n}function ot({loading:e,guardian:t,assistantName:n,regularContacts:i,selection:a,onSelect:o,onAddContact:s,addingContact:c=!1,search:l,onSearchChange:u}){let{t:d}=M(`contacts`),f=l.trim()?i.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):i;return(0,Y.jsx)(C.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(C.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:d(`contactsList.heading`)}),(0,Y.jsx)(r,{type:`button`,variant:`ghost`,loading:c,iconOnly:(0,Y.jsx)(ue,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":d(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,Y.jsx)(st,{name:t.displayName?d(`contactsList.youNamed`,{name:t.displayName}):d(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:a?.kind===`contact`&&a.contactId===t.id,onClick:()=>o({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,Y.jsx)(st,{name:n?.trim()||d(`contactsList.assistantFallback`),role:`assistant`,selected:a?.kind===`assistant`,onClick:()=>o({kind:`assistant`}),trailingIcon:`more`})]}),(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),i.length>0?(0,Y.jsx)(w,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:d(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(B,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,i.length>0?(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[f.map(e=>(0,Y.jsx)(st,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:a?.kind===`contact`&&a.contactId===e.id,onClick:()=>o({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),f.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:d(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(r,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,loading:c,leftIcon:(0,Y.jsx)(V,{"aria-hidden":!0}),children:d(`contactsList.add`)})]})})}function st({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:s}){let{t:c}=M(`contacts`),l=r&&r.length>0?r.join(` | `):void 0,u=o===`pencil`?(0,Y.jsx)(R,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):o===`more`?(0,Y.jsx)(U,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,Y.jsx)(_,{asChild:!0,active:i,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),l?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:l}):null]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[s===void 0?null:(0,Y.jsx)(v,{tone:s?`positive`:`neutral`,children:c(s?`contactsList.verified`:`contactsList.unverified`)}),(0,Y.jsx)(X,{role:t,contactType:n}),u]})]})})}function ct(e){return(0,Y.jsx)(lt,{...e},e.contact.id)}function lt({contact:e,savePending:t,verifyPending:n,mergePending:i=!1,canMerge:a=!1,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,onSave:l,onMerge:u,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p,onGenerateInviteLink:m}){let{t:h}=M(`contacts`),g=e.displayName.startsWith(`vellum-principal-`),_=g?``:e.displayName,[v,y]=(0,J.useState)(_),[b,x]=(0,J.useState)(e.notes??``),S=v.trim(),ee=b.trim(),C=S!==_.trim()||ee!==(e.notes??``).trim(),te=C&&!t,T=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(W,{title:g?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:T,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(w,{label:h(`contact.nameLabel`),type:`text`,value:v,onChange:e=>y(e.target.value),placeholder:h(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsx)(w,{label:h(`contact.notesLabel`),type:`text`,value:b,onChange:e=>x(e.target.value),placeholder:h(`guardianDetailView.notesPlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(r,{variant:`primary`,onClick:()=>l({displayName:S||e.displayName,notes:ee}),disabled:!te,children:h(t?`actions.saving`:`actions.save`)}),u?(0,Y.jsx)(r,{variant:`outlined`,onClick:u,disabled:!a||C||i||t,title:a?C?h(`contact.mergeBlockedUnsaved`):void 0:h(`contact.mergeBlockedNoCandidates`),children:h(i?`actions.merging`:`actions.merge`)}):null]})]})}),(0,Y.jsx)(W,{title:h(`guardianDetailView.channelsTitle`),subtitle:h(`guardianDetailView.channelsSubtitle`),children:(0,Y.jsx)($,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,setupLabel:h(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),m?(0,Y.jsx)(K,{onClick:m}):null]})}function ut(e,t){let n=t.trim().toLowerCase().replace(/^@/,``);return n===``?e:e.filter(e=>e.displayName.toLowerCase().includes(n)||e.username.toLowerCase().includes(n))}function dt(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function ft({open:e,channelLabel:t,contactName:n,accounts:i,loading:o,errorMessage:s,pendingAccountId:c,onPick:l,onClose:u,onInviteInstead:d}){let{t:f}=M(`contacts`),[p,m]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&m(``)},[e]);let h=(0,J.useMemo)(()=>ut(i??[],p),[i,p]),g=c!=null;return(0,Y.jsx)(a.Root,{open:e,onOpenChange:e=>!e&&u(),children:(0,Y.jsxs)(a.Content,{size:`sm`,children:[(0,Y.jsxs)(a.Header,{children:[(0,Y.jsx)(a.Title,{children:f(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(a.Description,{children:(0,Y.jsx)(k,{i18nKey:`linkAccountDialog.description`,ns:`contacts`,values:{channel:t,name:n},components:{contact:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-default)]`})}})})]}),(0,Y.jsxs)(a.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(w,{type:`search`,value:p,onChange:e=>m(e.target.value),placeholder:f(`linkAccountDialog.searchPlaceholder`),"aria-label":f(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,Y.jsx)(B,{className:`h-4 w-4`}),fullWidth:!0}),s?(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--system-negative-strong)]`,children:s}):null,(0,Y.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:o?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.loading`)}):h.length===0?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(i?.length??0)===0?f(`linkAccountDialog.noMembers`):f(`linkAccountDialog.noMatches`)}):(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:h.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>l(e),disabled:g,className:`flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-[var(--surface-overlay)] disabled:cursor-not-allowed disabled:opacity-60`,children:[e.imageUrl?(0,Y.jsx)(`img`,{src:e.imageUrl,alt:``,className:`h-8 w-8 shrink-0 rounded-full`}):(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--tag-bg-neutral)] text-body-small-emphasised text-[color:var(--content-secondary)]`,children:dt(e.displayName)}),(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-default)]`,children:e.displayName}),(0,Y.jsxs)(`span`,{className:`truncate text-body-small-default text-[color:var(--content-tertiary)]`,children:[`@`,e.username]})]}),c===e.id?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:f(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,Y.jsxs)(a.Footer,{className:`items-center justify-between gap-3 border-t border-[var(--border-base)]`,children:[(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-tertiary)]`,children:(0,Y.jsx)(k,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),d?(0,Y.jsxs)(r,{variant:`link`,className:`shrink-0`,onClick:d,disabled:g,children:[f(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(I,{className:`h-3.5 w-3.5`})]}):null]})]})})}function pt({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,J.useState)(!1),o=j({mutationFn:n=>Ce(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),E.success(O(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),r()}}),s=(0,J.useCallback)(()=>{o.reset(),a(!0)},[o]),c=(0,J.useCallback)(()=>{o.isPending||(o.reset(),a(!1))},[o]),l=(0,J.useCallback)(e=>{!n||o.isPending||o.mutate({contact:n,account:e})},[n,o]);return{channelType:t,dialogOpen:i,open:s,close:c,linkErrorMessage:o.error instanceof Error?o.error.message:o.error?O(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:l}}var mt=[{id:`slack`,source:`default`,label:`Slack`,subtitle:`Message your assistant from Slack`,icon:`hash`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Slack. Can you help me set that up?`,contact:`I'd like to verify a contact's Slack identity. Can you walk me through it?`}},{id:`telegram`,source:`default`,label:`Telegram`,subtitle:`Message your assistant from Telegram`,icon:`send`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian on Telegram. Can you help me set that up?`,contact:`I'd like to verify a contact's Telegram identity. Can you walk me through it?`}},{id:`phone`,source:`default`,label:`Phone Calling`,subtitle:`Call or text your assistant via phone`,icon:`phone`,supportsVerification:!0,setupMessages:{guardian:`I'd like to verify my identity as your guardian for phone calls. Can you help me set that up?`,contact:`I'd like to verify a contact's phone number. Can you help me set that up?`}}],ht=[];function gt({assistantId:e,onStartSetupConversation:t}){let{t:r}=M(`contacts`),i=g.use.a2aChannel(),a=l.use.name(),o=re(),[c]=ie(),u=c.get(`setup`),d=u&&y(u)?u:null,[p,_]=(0,J.useState)({kind:`assistant`}),v=be(e),{paneRef:x,hasRoomForList:S,drawerOpen:C,openDrawer:w,closeDrawer:T}=_e(),[O,k]=(0,J.useState)(``),[ae,oe]=(0,J.useState)(!1),ce=n(a),N=(0,J.useMemo)(()=>({path:{assistant_id:e}}),[e]),P=f(N),le=A({...m(N),enabled:!!e,select:e=>e.contacts}),F=ye({assistantId:e,onStartSetupConversation:t}),ue=A({...s({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await ee({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:mt};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),I=ue.data??ht,de=ue.isError,L=le.data,R=(0,J.useMemo)(()=>L?.find(e=>e.role===`guardian`)??null,[L]),fe=(0,J.useMemo)(()=>L?.filter(e=>e.role!==`guardian`)??[],[L]),z=(0,J.useMemo)(()=>p.kind===`contact`?L?.find(e=>e.id===p.contactId)??null:null,[L,p]),pe=(0,J.useMemo)(()=>!L||!z?[]:L.filter(e=>e.id!==z.id&&e.role!==`guardian`),[L,z]),me=pe.length>0,B=(0,J.useRef)(!!d);(0,J.useEffect)(()=>{B.current||R&&(B.current=!0,_({kind:`contact`,contactId:R.id}))},[R]);let V=(0,J.useCallback)(()=>o.invalidateQueries({queryKey:P}),[o,P]),H=j({mutationFn:()=>Se(e,{displayName:Ae}),onMutate:async()=>{await o.cancelQueries({queryKey:P})},onSuccess:e=>{h(o,N,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),_({kind:`contact`,contactId:e.id})},onError:G(r(`contactsPage.createFailed`)),onSettled:()=>V()}),U=j({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{h(o,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),_({kind:`assistant`})},onError:G(r(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=j({mutationFn:({contactId:t,patch:n})=>Se(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{h(o,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(r(`contactsPage.saveFailed`)),onSettled:()=>V()}),K=j({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Se(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{h(o,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:G(r(`contactPermissions.saveFailed`)),onSettled:()=>V()}),q=D({onMutate:async()=>{await o.cancelQueries({queryKey:P})},onSuccess:(e,t)=>{let n=e.contact,i=t.body.mergeId;n&&(h(o,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===n.id?n:e)}:void 0),_({kind:`contact`,contactId:n.id})),oe(!1),E.success(r(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,J.useCallback)(e=>{_(e),T(),oe(!1),q.reset()},[T,q]),Ee=(0,J.useCallback)(()=>{q.reset(),oe(!0)},[q]),De=(0,J.useCallback)(()=>{q.isPending||(oe(!1),q.reset())},[q]),Oe=te({onSuccess:()=>V()}),je=(0,J.useCallback)((t,n)=>{Oe.mutate({path:{assistant_id:e,contactChannelId:t},body:{status:`revoked`}})},[Oe,e]),Me=(0,J.useCallback)(()=>{H.isPending||H.mutate()},[H]),Ne=(0,J.useCallback)(e=>{if(!t)return;let n=I.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.contact;r&&t(r)},[I,t]),X=(0,J.useCallback)(e=>{if(!t)return;let n=I.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.guardian;r&&t(r)},[I,t]),Z=j({mutationFn:t=>xe(e,t.channelId),onSuccess:()=>V(),onError:G(r(`contactsPage.verifyFailed`))}),Fe=j({mutationFn:t=>{if(!z)throw Error(`No contact selected`);return Ce(e,{id:z.id,displayName:z.displayName},{type:t.type,address:t.address})},onSuccess:()=>V(),onError:G(r(`contactsPage.verifyFailed`))}),Ie=(0,J.useCallback)((e,t)=>{if(!z)return;let n=t?.trim();if(n){Fe.mutate({type:e,address:n});return}let r=z.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&Z.mutate({channelId:r.id})},[z,Fe,Z]),Q=pt({assistantId:e,channelType:`slack`,contact:z?{id:z.id,displayName:z.displayName}:null,onLinked:V}),Re=A({...ne(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=F.channels.some(e=>e.key===`slack`&&e.configured),Be=(0,J.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),Ve=U.isPending?U.variables:null,$=(0,J.useMemo)(()=>{if(!z)return null;let e=z;return W.isPending&&W.variables?.contactId===z.id&&(e={...e,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}),K.isPending&&K.variables?.contactId===z.id&&(e={...e,autoApproveThreshold:K.variables.autoApproveThreshold}),e},[z,W.isPending,W.variables,K.isPending,K.variables]);if(d)return(0,Y.jsx)(se,{to:`${b.channels}?setup=${d}`,replace:!0});let He={loading:le.isLoading,assistantName:ce,guardian:R?{id:R.id,displayName:R.displayName.startsWith(`vellum-principal-`)?``:R.displayName,role:R.role,channelTypes:yt(R.channels,i)}:null,regularContacts:fe.filter(e=>e.id!==Ve).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:yt(e.channels,i),verified:vt(e.channels)})),selection:p,onAddContact:Me,addingContact:H.isPending,search:O,onSearchChange:k};return(0,Y.jsxs)(`div`,{ref:x,className:`flex min-h-0 flex-1 overflow-hidden ${S?`flex-row gap-6`:`flex-col gap-4`}`,children:[S?(0,Y.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,Y.jsx)(ot,{...He,onSelect:Te})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(ge,{onClick:w})}),(0,Y.jsx)(he,{open:C,onClose:T,title:r(`contactsPage.title`),children:(0,Y.jsx)(ot,{...He,onSelect:Te})})]}),(0,Y.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:p.kind===`assistant`||p.kind===`contact`&&p.contactId===Ve?(0,Y.jsx)(Pe,{assistantName:ce,channels:F.channels,pendingChannelKey:F.pendingChannelKey,onConnect:F.onSetup,onDisconnect:F.onDisconnect}):$?$.role===`guardian`?(0,Y.jsx)(ct,{contact:$,savePending:W.isPending,verifyPending:Z.isPending||Fe.isPending,mergePending:q.isPending,canMerge:me,availableChannels:I,channelsLoadFailed:de,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?X:void 0,onVerifyChannel:Ie,onRevokeChannel:je,onGenerateInviteLink:i?v.open:void 0}):(0,Y.jsx)(Ye,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:Z.isPending||Fe.isPending,mergePending:q.isPending,canMerge:me,availableChannels:I,channelsLoadFailed:de,a2aEnabled:i,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Ne:void 0,onVerifyChannel:Ie,onRevokeChannel:je,onLinkAccount:ze?Be:void 0,pendingAutoApproveThreshold:K.isPending,onAutoApproveThresholdChange:e=>{K.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):(0,Y.jsx)(_t,{})}),z?(0,Y.jsx)(Ze,{open:ae,survivor:z,candidates:pe,pending:q.isPending,errorMessage:q.error instanceof Error?q.error.message:q.error?r(`contactsPage.mergeFailed`):null,onMerge:t=>q.mutate({path:{assistant_id:e},body:{keepId:z.id,mergeId:t}}),onClose:De}):null,(0,Y.jsx)(ft,{open:Q.dialogOpen,channelLabel:ke(`slack`),contactName:z?.displayName??``,accounts:Re.data,loading:Re.isLoading,errorMessage:Re.isError?r(`contactsPage.rosterLoadFailed`):Q.linkErrorMessage,pendingAccountId:Q.pendingAccountId,onPick:Q.pick,onClose:Q.close,onInviteInstead:t?()=>{Q.close(),Ne(Q.channelType)}:void 0}),(0,Y.jsx)(ve,{open:v.isOpen,assistantId:e,onClose:v.close})]})}function _t(){let{t:e}=M(`contacts`);return(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-16`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:e(`contactsPage.emptyBody`)})})}function vt(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||De(e)))}function yt(e,t){let n=new Set,r=[];for(let i of e){if(i.status===`revoked`)continue;let e=i.type.toLowerCase();n.has(e)||e===`a2a`&&!t||(n.add(e),r.push(ke(e)))}return r}function bt(){let e=ae(),t=T();return(0,Y.jsx)(gt,{assistantId:t,onStartSetupConversation:t=>{u(e,{prompt:t})}},t)}export{bt as ContactsPageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{EC as e,vy as t}from"./app-
|
|
1
|
+
import{EC as e,vy as t}from"./app-DENERwru.js";import{j as n}from"./vendor-DEhKVoiV.js";import{t as r}from"./react-B9IgSVeK.js";import{Ji as i,li as a}from"./icons-C0wyat6T.js";var o=r();function s({text:r,ariaLabel:s,className:c}){let{t:l}=n(),{copy:u,copied:d}=t({errorMessage:l(`copyButton.copyFailed`)});return(0,o.jsx)(e,{variant:`ghost`,size:`compact`,iconOnly:d?(0,o.jsx)(i,{"aria-hidden":!0}):(0,o.jsx)(a,{"aria-hidden":!0}),tintColor:d?`var(--system-positive-strong)`:void 0,"aria-label":d?l(`copyButton.copied`):s,className:c,onClick:()=>u(typeof r==`function`?r():r)})}export{s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{EC as t,mC as n,nC as r,o_ as i}from"./app-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{EC as t,mC as n,nC as r,o_ as i}from"./app-DENERwru.js";import{j as a}from"./vendor-DEhKVoiV.js";import{t as o,x as s}from"./react-B9IgSVeK.js";import{Ui as c,Yn as l,dr as u,zi as d}from"./icons-C0wyat6T.js";var f=e(s(),1),p=`/v1/credential-requests/peek`,m=`/v1/credential-requests/submit`;function h(e){return e>0xe8d4a51000?e:e*1e3}function g(e){let t=e?.error?.code;return t===`INVALID`?`invalid`:t===`EXPIRED`?`expired`:t===`USED`?`used`:null}function _(e){let t=e;return typeof t?.service==`string`&&typeof t.field==`string`&&(t.label===null||typeof t.label==`string`)&&typeof t.expiresAt==`number`}async function v(e,t){let n=await fetch(i(p),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e}),signal:t}),r=await n.json().catch(()=>null);return n.ok&&_(r)?{status:`ok`,request:r}:n.status===404?{status:g(r)??`invalid`}:{status:`error`}}async function y(e,t,n){let r=await fetch(i(m),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:e,value:t}),signal:n});if(r.ok)return{status:`ok`};let a=await r.json().catch(()=>null);return r.status===404?{status:g(a)??`invalid`}:r.status===502?{status:`store-failed`}:{status:`error`}}var b=o();function x(e){let[t,n]=(0,f.useState)(()=>Date.now());return(0,f.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function S(e){let t=Math.max(0,Math.ceil(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function C({icon:e,title:t,children:n}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e,(0,b.jsx)(`h1`,{className:`text-xl font-semibold`,children:t})]}),(0,b.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:n})]})}function w(){let{t:e}=a(`credential-requests`),[i]=(0,f.useState)(()=>new URLSearchParams(window.location.hash.replace(/^#/,``)).get(`token`)?.trim()||new URLSearchParams(window.location.search).get(`token`)?.trim()||null),[o,s]=(0,f.useState)({kind:`loading`}),[p,m]=(0,f.useState)(``),[g,_]=(0,f.useState)(!1),[w,T]=(0,f.useState)(null),E=x(1e3);(0,f.useEffect)(()=>{let e=new URL(window.location.href),t=new URLSearchParams(e.hash.replace(/^#/,``));if(!t.has(`token`)&&!e.searchParams.has(`token`))return;e.searchParams.delete(`token`),t.delete(`token`);let n=t.toString();window.history.replaceState(window.history.state,``,`${e.pathname}${e.search}${n?`#${n}`:``}`)},[]),(0,f.useEffect)(()=>{if(!i){s({kind:`invalid`});return}let e=new AbortController;return(async()=>{let t=await v(i,e.signal).catch(()=>({status:`error`}));e.signal.aborted||(t.status===`ok`?s({kind:`form`,request:t.request}):s({kind:t.status}))})(),()=>{e.abort()}},[i]);let D=async e=>{if(e.preventDefault(),!i||o.kind!==`form`||!p.trim()||g)return;_(!0),T(null);let t=await y(i,p).catch(()=>({status:`error`}));switch(_(!1),t.status){case`ok`:m(``),s({kind:`success`});break;case`invalid`:case`expired`:case`used`:s({kind:t.status});break;case`store-failed`:m(``),s({kind:`store-failed`});break;case`error`:T(`Something went wrong while submitting. Check your connection and try again.`);break}},O=o.kind===`form`?h(o.request.expiresAt):null,k=o.kind===`form`&&O!==null&&O>E,A;if(o.kind===`loading`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(l,{className:`h-5 w-5 animate-spin text-blue-600`,"aria-hidden":!0}),title:e(`credentialEntry.checkingTitle`),children:e(`credentialEntry.checkingBody`)});else if(o.kind===`success`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(d,{className:`h-5 w-5 text-green-600`,"aria-hidden":!0}),title:e(`credentialEntry.savedTitle`),children:e(`credentialEntry.savedBody`)});else if(o.kind===`invalid`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(c,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.invalidTitle`),children:e(`credentialEntry.invalidBody`)});else if(o.kind===`expired`||o.kind===`form`&&!k)A=(0,b.jsx)(C,{icon:(0,b.jsx)(c,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.expiredTitle`),children:e(`credentialEntry.expiredBody`)});else if(o.kind===`used`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(c,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.usedTitle`),children:e(`credentialEntry.usedBody`)});else if(o.kind===`store-failed`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(c,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.storeFailedTitle`),children:e(`credentialEntry.storeFailedBody`)});else if(o.kind===`error`)A=(0,b.jsx)(C,{icon:(0,b.jsx)(c,{className:`h-5 w-5 text-red-600`,"aria-hidden":!0}),title:e(`credentialEntry.errorTitle`),children:e(`credentialEntry.errorBody`)});else{let{request:n}=o,i=`${n.service}:${n.field}`,a=(O??0)-E;A=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(u,{className:`h-5 w-5 text-blue-600`,"aria-hidden":!0}),(0,b.jsx)(`h1`,{className:`text-xl font-semibold`,children:e(`credentialEntry.heading`)})]}),(0,b.jsxs)(`div`,{className:`rounded-md border border-[var(--border-subtle)] bg-[var(--surface-sunken)] p-4`,children:[(0,b.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:n.label||i}),(0,b.jsxs)(`p`,{className:`mt-1 font-mono text-body-small-default text-[var(--content-tertiary)]`,children:[n.label?`${i} · `:``,e(`credentialEntry.oneTimeEntry`)]})]}),(0,b.jsx)(`p`,{className:`text-sm leading-6 text-[var(--content-secondary)]`,children:e(`credentialEntry.instructions`)}),(0,b.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>void D(e),children:[(0,b.jsx)(r,{label:e(`credentialEntry.valueLabel`),type:`password`,value:p,onChange:e=>m(e.target.value),placeholder:e(`credentialEntry.valuePlaceholder`),autoComplete:`off`,autoFocus:!0,fullWidth:!0,errorText:w??void 0}),(0,b.jsx)(t,{type:`submit`,disabled:g||!p.trim(),loading:g,children:e(`credentialEntry.submit`)})]}),(0,b.jsx)(`p`,{className:`text-xs text-[var(--content-tertiary)]`,children:e(`credentialEntry.expiresIn`,{remaining:S(a),time:new Date(O??0).toLocaleTimeString()})})]})}return(0,b.jsx)(`main`,{className:`flex min-h-svh items-center justify-center bg-[var(--background)] px-6 py-10 text-[var(--content-default)]`,children:(0,b.jsx)(`div`,{className:`w-full max-w-md`,children:(0,b.jsx)(n.Root,{bordered:!0,elevated:!0,padding:`lg`,children:(0,b.jsx)(`div`,{className:`flex flex-col gap-4`,children:A})})})})}export{w as CredentialEntryPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{EC as t,Ih as n,JS as r,KS as i,OC as a,Rx as o,XS as s,_f as c,_y as l,bv as u,cC as d,dS as f,et as p,i as m,im as h,lS as g,mC as _,nC as v,nS as y,nt as b,pS as x,qS as S,tt as ee,yv as te,yy as C}from"./app-D8sMVA0h.js";import{Qn as ne,j as w,tr as T}from"./vendor-DEhKVoiV.js";import{t as E,x as D}from"./react-B9IgSVeK.js";import{A as O,Ji as k,Lt as A,Xr as j,Yn as M,Yr as N,dr as P,li as F,tr as I,vt as re}from"./icons-C0wyat6T.js";import{t as ie}from"./detail-card-5ja97d__.js";import{t as L}from"./use-supports-credentials-settings-DuYuJNsF.js";var R=e(D(),1),z=`CREDENTIAL_IN_USE`;function ae(e){if(!(e instanceof x)||e.code!==z)return null;let t=e.details;if(!t||typeof t!=`object`||!(`connections`in t))return null;let{connections:n}=t;return!Array.isArray(n)||!n.every(e=>typeof e==`string`)?null:n}function oe(e){return new Intl.ListFormat(y(),{style:`long`,type:`conjunction`}).format(e)}var B=E(),V=1500;function H(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function se({credential:e,assistantId:n,generatingLink:r,deleting:i,onGenerateLink:o,onDelete:s}){let{t:c}=w(`settings`),l=`${e.service}:${e.field}`,u=r||i,d=[e.alias?l:null,e.createdAt?c(`credentialRow.addedMetadata`,{date:H(e.createdAt)}):null].filter(e=>!!e);return(0,B.jsx)(_.Root,{children:(0,B.jsxs)(_.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,B.jsx)(P,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.alias||l}),(0,B.jsx)(`div`,{className:`mt-0.5 flex min-w-0 items-center`,children:(0,B.jsx)(U,{assistantId:n,credential:e})}),d.length>0&&(0,B.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:d.join(` · `)})]}),(0,B.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,B.jsx)(a,{content:c(`credentialRow.generateLinkLabel`),side:`top`,children:(0,B.jsx)(t,{variant:`outlined`,onClick:o,disabled:u,"aria-label":c(`credentialRow.generateLinkAriaLabel`,{name:l}),loading:r,iconOnly:(0,B.jsx)(I,{"aria-hidden":!0})})}),(0,B.jsx)(a,{content:c(`credentialRow.deleteLabel`),side:`top`,children:(0,B.jsx)(t,{variant:`dangerOutline`,onClick:s,disabled:u,"aria-label":c(`credentialRow.deleteAriaLabel`,{name:l}),loading:i,iconOnly:(0,B.jsx)(O,{"aria-hidden":!0})})})]})]})})}function U({assistantId:e,credential:t}){let{t:n}=w(`settings`),[r,i]=(0,R.useState)(null),[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1),l=(0,R.useRef)(null),d=(0,R.useRef)(0),f=`${t.service}:${t.field}`,p=(0,R.useCallback)(()=>{d.current++,i(null),o(!1),c(!1),l.current&&=(clearTimeout(l.current),null)},[]);(0,R.useEffect)(()=>{p()},[t.updatedAt,p]);let m=(0,R.useCallback)(async()=>{let r=++d.current;o(!0);try{let{data:n}=await u({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});d.current===r&&i(n.value)}catch{d.current===r&&S.error(n(`credentialRow.revealFailedToast`,{name:f}))}finally{d.current===r&&o(!1)}},[e,t.service,t.field,f,n]),h=(0,R.useCallback)(()=>{r!=null&&C(r,{errorMessage:n(`credentialRow.copyFailedToast`),onCopied:()=>{c(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>c(!1),V)}})},[r,n]),g=r!==null;return t.hasSecret?(0,B.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 align-middle font-mono text-body-medium-lighter`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:()=>g?p():void m(),disabled:a,"aria-label":n(g?`credentialRow.hideValueAriaLabel`:`credentialRow.revealValueAriaLabel`,{name:f}),title:n(g?`credentialRow.hideValueTitle`:`credentialRow.clickToRevealTitle`),"data-private":!0,className:`min-w-0 truncate rounded-sm text-left transition-[filter,color] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] ${g?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:g?r:t.scrubbedValue}),a?(0,B.jsx)(M,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):g?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`button`,{type:`button`,onClick:h,"aria-label":n(`credentialRow.copyValueAriaLabel`,{name:f}),title:n(`credentialRow.copyValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:s?(0,B.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,B.jsx)(F,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,B.jsx)(`button`,{type:`button`,onClick:p,"aria-label":n(`credentialRow.hideValueAriaLabel`,{name:f}),title:n(`credentialRow.hideValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,B.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,B.jsx)(`button`,{type:`button`,onClick:()=>void m(),"aria-label":n(`credentialRow.revealValueAriaLabel`,{name:f}),title:n(`credentialRow.clickToRevealTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,B.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,B.jsx)(`span`,{className:`min-w-0 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:t.scrubbedValue})}function ce(e){return e>0xe8d4a51000?e:e*1e3}async function le(e,t){let{data:n,response:r}=await l.post({url:`/v1/assistants/{assistant_id}/credential-requests`,path:{assistant_id:e},body:t});if(!r?.ok)throw Error(`Failed to create credential request: ${r?.status}`);return n}var W=6;function G(){let e=b(),t=L(e),n=o.use.assistantId();return o.use.version()!==null&&n===e&&!t?(0,B.jsx)(m,{}):t?(0,B.jsx)(K,{}):null}function K(){let{t:e}=w(`settings`),a=b(),o=T(),l=n(),u=ee(a),m=ne({queryKey:u,queryFn:async()=>{let{data:e}=await te({path:{assistant_id:a},body:{},throwOnError:!0});return{credentials:e.credentials,managedCredentials:e.managedCredentials}},enabled:l,retry:f}),y=(0,R.useMemo)(()=>m.data?.credentials??[],[m.data]),x=c.use.settingsDeveloperNav(),E=(0,R.useMemo)(()=>x?m.data?.managedCredentials??[]:[],[x,m.data]),[D,O]=(0,R.useState)(!1),[k,j]=(0,R.useState)(`own`),[N,L]=(0,R.useState)(``),[z,V]=(0,R.useState)(null),[H,U]=(0,R.useState)(null),[G,K]=(0,R.useState)(null),[ue,q]=(0,R.useState)(null),J=h({onSuccess:(t,n)=>{o.invalidateQueries({queryKey:u}),S.success(e(`credentialsPage.deleteSuccessToast`,{name:`${n.body.service}:${n.body.field}`}))},onError:(t,n)=>{let r=ae(t),i=y.find(e=>e.service===n.body.service&&e.field===n.body.field);if(r&&i){U({credential:i,connections:r});return}g(t,{context:`credentials-delete`}),S.error(t.message||e(`credentialsPage.deleteErrorToast`))}}),de=J.isPending?`${J.variables?.body?.service}:${J.variables?.body?.field}`:null,Y=(0,R.useMemo)(()=>{let e=N.trim().toLowerCase();return e?y.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):y},[y,N]);(0,R.useEffect)(()=>{y.length<=W&&L(``)},[y.length]),(0,R.useEffect)(()=>{y.length===0&&E.length>0&&j(`managed`)},[y.length,E.length]);let X=(e,t)=>{J.mutate({path:{assistant_id:a},body:{service:e.service,field:e.field,...t?{force:!0}:{}}})},fe=()=>{let e=z;V(null),e&&X(e,!1)},pe=()=>{let e=H;U(null),e&&X(e.credential,!0)},me=async t=>{let n=`${t.service}:${t.field}`;q(n);try{let r=await le(a,{service:t.service,field:t.field,label:t.alias??void 0});r.ok&&r.url?K({name:n,url:r.url,expiresAt:r.expiresAt??null}):S.error(r.error||e(`credentialsPage.generateLinkFailedToast`))}catch(t){S.error(t instanceof Error?t.message:e(`credentialsPage.generateLinkFailedToast`))}finally{q(null)}},he=()=>{let t=G?.url;t&&C(t,{successMessage:e(`credentialsPage.linkCopiedToast`),errorMessage:e(`credentialsPage.linkCopyFailedToast`)})};if(m.isLoading)return(0,B.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,B.jsx)(M,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=y.length>0,Q=E.length>0,ge=y.length>W,$=k===`managed`&&Q,_e=!$,ve=[{value:`own`,label:e(`credentialsPage.segmentYourOwn`)},{value:`managed`,label:e(`credentialsPage.segmentManaged`)}];return(0,B.jsxs)(`div`,{className:`space-y-4`,children:[(0,B.jsx)(ie,{title:e(`credentialsPage.title`),subtitle:e($?`credentialsPage.subtitleManaged`:`credentialsPage.subtitleOwn`),accessory:(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Q?(0,B.jsx)(s,{items:ve,value:k,onChange:j,ariaLabel:e(`credentialsPage.credentialSourceAriaLabel`)}):null,_e&&Z?(0,B.jsx)(t,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>O(!0),leftIcon:(0,B.jsx)(A,{"aria-hidden":!0}),children:e(`credentialsPage.addButton`)}):null]}),children:$?(0,B.jsx)(`div`,{className:`space-y-2`,children:E.map(t=>(0,B.jsx)(_.Root,{children:(0,B.jsxs)(_.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,B.jsx)(P,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:t.provider}),(0,B.jsxs)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:[t.accountInfo??t.handle,` · `,t.status]})]}),(0,B.jsx)(d,{tone:`neutral`,children:e(`credentialsPage.managedTag`)})]})},t.handle))}):(0,B.jsxs)(`div`,{className:`space-y-4`,children:[Z?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[ge?(0,B.jsx)(v,{type:`text`,value:N,onChange:e=>L(e.target.value),placeholder:e(`credentialsPage.searchPlaceholder`),"aria-label":e(`credentialsPage.searchAriaLabel`),leftIcon:(0,B.jsx)(re,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,Y.length===0?(0,B.jsx)(`p`,{className:`px-1 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.noMatch`,{query:N.trim()})}):(0,B.jsx)(`div`,{className:`space-y-2`,children:Y.map(e=>{let t=`${e.service}:${e.field}`;return(0,B.jsx)(se,{credential:e,assistantId:a,generatingLink:ue===t,deleting:de===t,onGenerateLink:()=>void me(e),onDelete:()=>V(e)},e.credentialId??t)})})]}):(0,B.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-6 py-12 text-center`,children:[(0,B.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,B.jsx)(P,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`,"aria-hidden":!0})}),(0,B.jsx)(`h3`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`credentialsPage.emptyTitle`)}),(0,B.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.emptySubtitle`)})]}),Z?null:(0,B.jsx)(t,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>O(!0),className:`w-full border-dashed`,leftIcon:(0,B.jsx)(A,{"aria-hidden":!0}),children:e(`credentialsPage.addCredentialButton`)})]})}),(0,B.jsx)(i,{open:z!==null,title:e(`credentialsPage.deleteConfirmTitle`),message:z?e(`credentialsPage.deleteConfirmMessage`,{name:`${z.service}:${z.field}`}):``,confirmLabel:e(`credentialsPage.deleteConfirmLabel`),destructive:!0,onConfirm:fe,onCancel:()=>V(null)}),(0,B.jsx)(i,{open:H!==null,title:e(`credentialsPage.inUseTitle`),message:H?e(`credentialsPage.inUseMessage`,{count:H.connections.length,name:`${H.credential.service}:${H.credential.field}`,connections:oe(H.connections)}):``,confirmLabel:e(`credentialsPage.inUseConfirmLabel`),destructive:!0,onConfirm:pe,onCancel:()=>U(null)}),(0,B.jsx)(p,{open:D,onClose:()=>O(!1)}),(0,B.jsx)(r.Root,{open:G!==null,onOpenChange:e=>{e||K(null)},children:(0,B.jsxs)(r.Content,{size:`sm`,children:[(0,B.jsxs)(r.Header,{icon:I,children:[(0,B.jsx)(r.Title,{children:e(`credentialsPage.oneTimeLinkModalTitle`)}),(0,B.jsx)(r.Description,{children:G?e(`credentialsPage.oneTimeLinkModalDescription`,{name:G.name,expiresClause:G.expiresAt===null?``:e(`credentialsPage.oneTimeLinkModalExpiresClause`,{expiresAt:new Date(ce(G.expiresAt)).toLocaleString()})}):``})]}),(0,B.jsx)(r.Body,{children:(0,B.jsx)(v,{label:e(`credentialsPage.linkLabel`),type:`text`,readOnly:!0,value:G?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,B.jsx)(r.Footer,{children:(0,B.jsx)(t,{type:`button`,size:`compact`,onClick:he,leftIcon:(0,B.jsx)(F,{"aria-hidden":!0}),children:e(`credentialsPage.copyLinkButton`)})})]})})]})}export{G as CredentialsPage};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{EC as t,Ih as n,JS as r,KS as i,OC as a,Rx as o,XS as s,_f as c,_y as l,bv as u,cC as d,dS as f,et as p,i as m,im as h,lS as g,mC as _,nC as v,nS as y,nt as b,pS as x,qS as S,tt as ee,yv as te,yy as C}from"./app-DENERwru.js";import{Qn as ne,j as w,tr as T}from"./vendor-DEhKVoiV.js";import{t as E,x as D}from"./react-B9IgSVeK.js";import{A as O,Ji as k,Lt as A,Xr as j,Yn as M,Yr as N,dr as P,li as F,tr as I,vt as re}from"./icons-C0wyat6T.js";import{t as ie}from"./detail-card-DDxZkd-7.js";import{t as L}from"./use-supports-credentials-settings-B1wPMmZz.js";var R=e(D(),1),z=`CREDENTIAL_IN_USE`;function ae(e){if(!(e instanceof x)||e.code!==z)return null;let t=e.details;if(!t||typeof t!=`object`||!(`connections`in t))return null;let{connections:n}=t;return!Array.isArray(n)||!n.every(e=>typeof e==`string`)?null:n}function oe(e){return new Intl.ListFormat(y(),{style:`long`,type:`conjunction`}).format(e)}var B=E(),V=1500;function H(e){if(!e)return``;try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function se({credential:e,assistantId:n,generatingLink:r,deleting:i,onGenerateLink:o,onDelete:s}){let{t:c}=w(`settings`),l=`${e.service}:${e.field}`,u=r||i,d=[e.alias?l:null,e.createdAt?c(`credentialRow.addedMetadata`,{date:H(e.createdAt)}):null].filter(e=>!!e);return(0,B.jsx)(_.Root,{children:(0,B.jsxs)(_.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,B.jsx)(P,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:e.alias||l}),(0,B.jsx)(`div`,{className:`mt-0.5 flex min-w-0 items-center`,children:(0,B.jsx)(U,{assistantId:n,credential:e})}),d.length>0&&(0,B.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:d.join(` · `)})]}),(0,B.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,B.jsx)(a,{content:c(`credentialRow.generateLinkLabel`),side:`top`,children:(0,B.jsx)(t,{variant:`outlined`,onClick:o,disabled:u,"aria-label":c(`credentialRow.generateLinkAriaLabel`,{name:l}),loading:r,iconOnly:(0,B.jsx)(I,{"aria-hidden":!0})})}),(0,B.jsx)(a,{content:c(`credentialRow.deleteLabel`),side:`top`,children:(0,B.jsx)(t,{variant:`dangerOutline`,onClick:s,disabled:u,"aria-label":c(`credentialRow.deleteAriaLabel`,{name:l}),loading:i,iconOnly:(0,B.jsx)(O,{"aria-hidden":!0})})})]})]})})}function U({assistantId:e,credential:t}){let{t:n}=w(`settings`),[r,i]=(0,R.useState)(null),[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1),l=(0,R.useRef)(null),d=(0,R.useRef)(0),f=`${t.service}:${t.field}`,p=(0,R.useCallback)(()=>{d.current++,i(null),o(!1),c(!1),l.current&&=(clearTimeout(l.current),null)},[]);(0,R.useEffect)(()=>{p()},[t.updatedAt,p]);let m=(0,R.useCallback)(async()=>{let r=++d.current;o(!0);try{let{data:n}=await u({path:{assistant_id:e},body:{service:t.service,field:t.field},throwOnError:!0});d.current===r&&i(n.value)}catch{d.current===r&&S.error(n(`credentialRow.revealFailedToast`,{name:f}))}finally{d.current===r&&o(!1)}},[e,t.service,t.field,f,n]),h=(0,R.useCallback)(()=>{r!=null&&C(r,{errorMessage:n(`credentialRow.copyFailedToast`),onCopied:()=>{c(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>c(!1),V)}})},[r,n]),g=r!==null;return t.hasSecret?(0,B.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 align-middle font-mono text-body-medium-lighter`,children:[(0,B.jsx)(`button`,{type:`button`,onClick:()=>g?p():void m(),disabled:a,"aria-label":n(g?`credentialRow.hideValueAriaLabel`:`credentialRow.revealValueAriaLabel`,{name:f}),title:n(g?`credentialRow.hideValueTitle`:`credentialRow.clickToRevealTitle`),"data-private":!0,className:`min-w-0 truncate rounded-sm text-left transition-[filter,color] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] ${g?`text-[var(--content-secondary)]`:`select-none text-[var(--content-tertiary)] blur-[3px] hover:blur-[2px]`}`,children:g?r:t.scrubbedValue}),a?(0,B.jsx)(M,{className:`h-3.5 w-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):g?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(`button`,{type:`button`,onClick:h,"aria-label":n(`credentialRow.copyValueAriaLabel`,{name:f}),title:n(`credentialRow.copyValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:s?(0,B.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0}):(0,B.jsx)(F,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,B.jsx)(`button`,{type:`button`,onClick:p,"aria-label":n(`credentialRow.hideValueAriaLabel`,{name:f}),title:n(`credentialRow.hideValueTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,B.jsx)(j,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,B.jsx)(`button`,{type:`button`,onClick:()=>void m(),"aria-label":n(`credentialRow.revealValueAriaLabel`,{name:f}),title:n(`credentialRow.clickToRevealTitle`),className:`shrink-0 rounded-sm p-0.5 text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)]`,children:(0,B.jsx)(N,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}):(0,B.jsx)(`span`,{className:`min-w-0 truncate font-mono text-body-medium-lighter text-[var(--content-tertiary)]`,children:t.scrubbedValue})}function ce(e){return e>0xe8d4a51000?e:e*1e3}async function le(e,t){let{data:n,response:r}=await l.post({url:`/v1/assistants/{assistant_id}/credential-requests`,path:{assistant_id:e},body:t});if(!r?.ok)throw Error(`Failed to create credential request: ${r?.status}`);return n}var W=6;function G(){let e=b(),t=L(e),n=o.use.assistantId();return o.use.version()!==null&&n===e&&!t?(0,B.jsx)(m,{}):t?(0,B.jsx)(K,{}):null}function K(){let{t:e}=w(`settings`),a=b(),o=T(),l=n(),u=ee(a),m=ne({queryKey:u,queryFn:async()=>{let{data:e}=await te({path:{assistant_id:a},body:{},throwOnError:!0});return{credentials:e.credentials,managedCredentials:e.managedCredentials}},enabled:l,retry:f}),y=(0,R.useMemo)(()=>m.data?.credentials??[],[m.data]),x=c.use.settingsDeveloperNav(),E=(0,R.useMemo)(()=>x?m.data?.managedCredentials??[]:[],[x,m.data]),[D,O]=(0,R.useState)(!1),[k,j]=(0,R.useState)(`own`),[N,L]=(0,R.useState)(``),[z,V]=(0,R.useState)(null),[H,U]=(0,R.useState)(null),[G,K]=(0,R.useState)(null),[ue,q]=(0,R.useState)(null),J=h({onSuccess:(t,n)=>{o.invalidateQueries({queryKey:u}),S.success(e(`credentialsPage.deleteSuccessToast`,{name:`${n.body.service}:${n.body.field}`}))},onError:(t,n)=>{let r=ae(t),i=y.find(e=>e.service===n.body.service&&e.field===n.body.field);if(r&&i){U({credential:i,connections:r});return}g(t,{context:`credentials-delete`}),S.error(t.message||e(`credentialsPage.deleteErrorToast`))}}),de=J.isPending?`${J.variables?.body?.service}:${J.variables?.body?.field}`:null,Y=(0,R.useMemo)(()=>{let e=N.trim().toLowerCase();return e?y.filter(t=>[t.service,t.field,`${t.service}:${t.field}`,t.alias??``].join(` `).toLowerCase().includes(e)):y},[y,N]);(0,R.useEffect)(()=>{y.length<=W&&L(``)},[y.length]),(0,R.useEffect)(()=>{y.length===0&&E.length>0&&j(`managed`)},[y.length,E.length]);let X=(e,t)=>{J.mutate({path:{assistant_id:a},body:{service:e.service,field:e.field,...t?{force:!0}:{}}})},fe=()=>{let e=z;V(null),e&&X(e,!1)},pe=()=>{let e=H;U(null),e&&X(e.credential,!0)},me=async t=>{let n=`${t.service}:${t.field}`;q(n);try{let r=await le(a,{service:t.service,field:t.field,label:t.alias??void 0});r.ok&&r.url?K({name:n,url:r.url,expiresAt:r.expiresAt??null}):S.error(r.error||e(`credentialsPage.generateLinkFailedToast`))}catch(t){S.error(t instanceof Error?t.message:e(`credentialsPage.generateLinkFailedToast`))}finally{q(null)}},he=()=>{let t=G?.url;t&&C(t,{successMessage:e(`credentialsPage.linkCopiedToast`),errorMessage:e(`credentialsPage.linkCopyFailedToast`)})};if(m.isLoading)return(0,B.jsx)(`div`,{className:`flex items-center justify-center py-10`,children:(0,B.jsx)(M,{className:`h-5 w-5 animate-spin text-[var(--content-disabled)]`})});let Z=y.length>0,Q=E.length>0,ge=y.length>W,$=k===`managed`&&Q,_e=!$,ve=[{value:`own`,label:e(`credentialsPage.segmentYourOwn`)},{value:`managed`,label:e(`credentialsPage.segmentManaged`)}];return(0,B.jsxs)(`div`,{className:`space-y-4`,children:[(0,B.jsx)(ie,{title:e(`credentialsPage.title`),subtitle:e($?`credentialsPage.subtitleManaged`:`credentialsPage.subtitleOwn`),accessory:(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[Q?(0,B.jsx)(s,{items:ve,value:k,onChange:j,ariaLabel:e(`credentialsPage.credentialSourceAriaLabel`)}):null,_e&&Z?(0,B.jsx)(t,{type:`button`,variant:`primary`,size:`regular`,onClick:()=>O(!0),leftIcon:(0,B.jsx)(A,{"aria-hidden":!0}),children:e(`credentialsPage.addButton`)}):null]}),children:$?(0,B.jsx)(`div`,{className:`space-y-2`,children:E.map(t=>(0,B.jsx)(_.Root,{children:(0,B.jsxs)(_.Body,{padding:`sm`,className:`flex items-center gap-4 px-4`,children:[(0,B.jsx)(P,{className:`h-5 w-5 shrink-0 text-[var(--content-secondary)]`,"aria-hidden":!0}),(0,B.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,B.jsx)(`p`,{className:`truncate text-title-small text-[var(--content-default)]`,children:t.provider}),(0,B.jsxs)(`p`,{className:`truncate text-body-medium-lighter text-[var(--content-tertiary)]`,children:[t.accountInfo??t.handle,` · `,t.status]})]}),(0,B.jsx)(d,{tone:`neutral`,children:e(`credentialsPage.managedTag`)})]})},t.handle))}):(0,B.jsxs)(`div`,{className:`space-y-4`,children:[Z?(0,B.jsxs)(`div`,{className:`space-y-3`,children:[ge?(0,B.jsx)(v,{type:`text`,value:N,onChange:e=>L(e.target.value),placeholder:e(`credentialsPage.searchPlaceholder`),"aria-label":e(`credentialsPage.searchAriaLabel`),leftIcon:(0,B.jsx)(re,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,Y.length===0?(0,B.jsx)(`p`,{className:`px-1 py-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.noMatch`,{query:N.trim()})}):(0,B.jsx)(`div`,{className:`space-y-2`,children:Y.map(e=>{let t=`${e.service}:${e.field}`;return(0,B.jsx)(se,{credential:e,assistantId:a,generatingLink:ue===t,deleting:de===t,onGenerateLink:()=>void me(e),onDelete:()=>V(e)},e.credentialId??t)})})]}):(0,B.jsxs)(`div`,{className:`flex flex-col items-center justify-center px-6 py-12 text-center`,children:[(0,B.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,B.jsx)(P,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`,"aria-hidden":!0})}),(0,B.jsx)(`h3`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`credentialsPage.emptyTitle`)}),(0,B.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`credentialsPage.emptySubtitle`)})]}),Z?null:(0,B.jsx)(t,{type:`button`,variant:`outlined`,size:`compact`,onClick:()=>O(!0),className:`w-full border-dashed`,leftIcon:(0,B.jsx)(A,{"aria-hidden":!0}),children:e(`credentialsPage.addCredentialButton`)})]})}),(0,B.jsx)(i,{open:z!==null,title:e(`credentialsPage.deleteConfirmTitle`),message:z?e(`credentialsPage.deleteConfirmMessage`,{name:`${z.service}:${z.field}`}):``,confirmLabel:e(`credentialsPage.deleteConfirmLabel`),destructive:!0,onConfirm:fe,onCancel:()=>V(null)}),(0,B.jsx)(i,{open:H!==null,title:e(`credentialsPage.inUseTitle`),message:H?e(`credentialsPage.inUseMessage`,{count:H.connections.length,name:`${H.credential.service}:${H.credential.field}`,connections:oe(H.connections)}):``,confirmLabel:e(`credentialsPage.inUseConfirmLabel`),destructive:!0,onConfirm:pe,onCancel:()=>U(null)}),(0,B.jsx)(p,{open:D,onClose:()=>O(!1)}),(0,B.jsx)(r.Root,{open:G!==null,onOpenChange:e=>{e||K(null)},children:(0,B.jsxs)(r.Content,{size:`sm`,children:[(0,B.jsxs)(r.Header,{icon:I,children:[(0,B.jsx)(r.Title,{children:e(`credentialsPage.oneTimeLinkModalTitle`)}),(0,B.jsx)(r.Description,{children:G?e(`credentialsPage.oneTimeLinkModalDescription`,{name:G.name,expiresClause:G.expiresAt===null?``:e(`credentialsPage.oneTimeLinkModalExpiresClause`,{expiresAt:new Date(ce(G.expiresAt)).toLocaleString()})}):``})]}),(0,B.jsx)(r.Body,{children:(0,B.jsx)(v,{label:e(`credentialsPage.linkLabel`),type:`text`,readOnly:!0,value:G?.url??``,onFocus:e=>e.currentTarget.select(),fullWidth:!0})}),(0,B.jsx)(r.Footer,{children:(0,B.jsx)(t,{type:`button`,size:`compact`,onClick:he,leftIcon:(0,B.jsx)(F,{"aria-hidden":!0}),children:e(`credentialsPage.copyLinkButton`)})})]})})]})}export{G as CredentialsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{gC as t,or as n}from"./app-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{gC as t,or as n}from"./app-DENERwru.js";import{j as r,ot as i}from"./vendor-DEhKVoiV.js";import{t as a,x as o}from"./react-B9IgSVeK.js";import{t as s}from"./preview-error-72bCczYp.js";var c=e(o(),1),l=[`,`,`;`,` `];function u(e){let t=e.trim();return t===``?!1:/^[+-]?(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?$/.test(t)}function d(e,t){let n=0,r=!1,i=!1;for(let a=0;a<e.length;a+=1){let o=e[a];if(r){o===`"`&&(e[a+1]===`"`?a+=1:r=!1),i=!0;continue}if(o===`"`){r=!0,i=!0;continue}if(o===`
|
|
2
2
|
`||o===`\r`){if(i)break;continue}o===t&&(n+=1),i=!0}return n}function f(e){let t=l[0],n=0;for(let r of l){let i=d(e,r);i>n&&(t=r,n=i)}return t}function p(e,t){let n=[],r=[],i=``,a=!1,o=!1,s=()=>{r.push(i),i=``,r.length===1&&r[0]===``||n.push(r),r=[]};for(let c=0;c<e.length;c+=1){let l=e[c];if(a){l===`"`?e[c+1]===`"`?(i+=`"`,c+=1):a=!1:i+=l;continue}if(l===`"`&&i===``){a=!0;continue}if(l===t){r.push(i),i=``;continue}if(l===`\r`||l===`
|
|
3
3
|
`){if(l===`\r`&&e[c+1]===`
|
|
4
4
|
`&&(c+=1),s(),n.length>=5e3)return o=e.slice(c+1).trim()!==``,{records:n,truncated:o};continue}i+=l}return(i!==``||r.length>0)&&s(),{records:n,truncated:o}}function m(e){let t=e[0];return!t||e.length<2||t.some(e=>e.trim()===``||u(e))?!1:e.slice(1).some(e=>e.some(e=>u(e)))}function h(e){let t=e.charCodeAt(0)===65279?e.slice(1):e;if(t.trim()===``)return{headers:null,rows:[],truncated:!1};let{records:n,truncated:r}=p(t,f(t));if(n.length===0)return{headers:null,rows:[],truncated:r};let i=n.reduce((e,t)=>Math.max(e,t.length),0),a=Math.min(i,200),o=i>200,s=n.map(e=>{let t=e.slice(0,a);for(;t.length<a;)t.push(``);return t}),c=m(s);return{headers:c?s[0]:null,rows:c?s.slice(1):s,truncated:r||o}}var g=a(),_=30,v=`border-b border-r border-[var(--border-element)] px-2 py-1 align-top last:border-r-0`,y={Table:({style:e,...t})=>(0,g.jsx)(`table`,{...t,className:`w-full min-w-max border-collapse text-body-small-default text-[var(--content-default)]`,style:e}),TableRow:({item:e,...t})=>(0,g.jsx)(`tr`,{...t})};function b({blob:e,filename:a}){let{t:o}=r(`chat`),[l,u]=(0,c.useState)(null),[d,f]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let t=!1;return u(null),f(!1),e.text().then(e=>{t||u(e)},()=>{t||f(!0)}),()=>{t=!0}},[e]);let p=(0,c.useMemo)(()=>l===null?null:h(l),[l]),m=p?.headers??null,b=(0,c.useCallback)(()=>m===null?null:(0,g.jsx)(`tr`,{children:m.map((e,t)=>(0,g.jsx)(`th`,{scope:`col`,title:e,className:`${v} bg-[var(--surface-sunken)] text-left text-body-small-emphasised`,children:(0,g.jsx)(`span`,{className:`block max-w-[20rem] truncate`,children:e})},t))}),[m]);if(d)return(0,g.jsx)(s,{filename:a});if(p===null)return(0,g.jsx)(n,{});let x=m?.length??p.rows[0]?.length??0;return x===0?(0,g.jsx)(`div`,{role:`status`,className:`flex h-full items-center justify-center p-4`,children:(0,g.jsx)(t,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:o(`csvPreview.emptyFile`)})}):(0,g.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,g.jsx)(i,{data:p.rows,initialItemCount:Math.min(p.rows.length,_),components:y,fixedHeaderContent:m===null?void 0:b,itemContent:(e,t)=>t.map((e,t)=>(0,g.jsx)(`td`,{title:e,className:v,children:(0,g.jsx)(`span`,{className:`block max-w-[20rem] truncate`,children:e})},t)),className:`min-h-0 flex-1`}),(0,g.jsx)(t,{as:`p`,variant:`label-small-default`,className:`shrink-0 border-t border-[var(--border-element)] px-3 py-1.5 text-[var(--content-tertiary)]`,children:p.truncated?o(`csvPreview.summaryTruncated`,{rows:p.rows.length,columns:x}):o(`csvPreview.summary`,{rows:p.rows.length,columns:x})})]})}export{b as CsvPreview};
|
package/dist/assets/{danger-zone-redirect-page-CKPdbPhO.js → danger-zone-redirect-page-C3qhfYKv.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{eS as t}from"./app-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{eS as t}from"./app-DENERwru.js";import{f as n,x as r}from"./react-B9IgSVeK.js";var i=e(r(),1);function a(){let e=n();return(0,i.useEffect)(()=>{e(t.settings.general,{replace:!0})},[e]),null}export{a as DangerZoneRedirectPage};
|