@vellumai/web 0.12.2-dev.202609182015.188de8a → 0.12.2-dev.202609182114.335fa56
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-BkJsiMCk.js → a2a-invite-Ci3O-UuB.js} +1 -1
- package/dist/assets/{about-page-DKz6hc6m.js → about-page-B-7lyYEB.js} +1 -1
- package/dist/assets/{account-page-D2086vlm.js → account-page-CGtIVDfJ.js} +1 -1
- package/dist/assets/{account-shell-BzbAvUcW.js → account-shell-DLy0Ad5J.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-D1q28OPn.js → acp-run-detail-panel-D1WXDwZ3.js} +1 -1
- package/dist/assets/{activation-list-route-CymK18w2.js → activation-list-route-B5Ewg5yz.js} +1 -1
- package/dist/assets/{activity-redirect-page-DCcfRUi_.js → activity-redirect-page-2lUB6VgV.js} +1 -1
- package/dist/assets/{activity-steps-panel-BYjkiE5D.js → activity-steps-panel-Ba9xwFXj.js} +1 -1
- package/dist/assets/add-credits-modal-DqL2PtAm.js +1 -0
- package/dist/assets/{add-credits-modal-4Etl1PAt.js → add-credits-modal-xD_fI3hc.js} +1 -1
- package/dist/assets/{ai-page-CkrearYq.js → ai-page-BBz-BfyC.js} +1 -1
- package/dist/assets/{android-billing-handoff-B_bu7Rr8.js → android-billing-handoff-BBh13NBZ.js} +1 -1
- package/dist/assets/{api-key-screen-STe5cIxn.js → api-key-screen-DLdU9-qN.js} +1 -1
- package/dist/assets/{app-BfK0IQIk.js → app-BBUxTj9g.js} +65 -65
- package/dist/assets/{app-info-mmyV2q32.js → app-info-CtXHTQ8I.js} +1 -1
- package/dist/assets/{archive-redirect-page-BB3zYu05.js → archive-redirect-page-CR1hXS8u.js} +1 -1
- package/dist/assets/{assistant-handle-modal-CgnaRG-5.js → assistant-handle-modal-BAfB5jfI.js} +1 -1
- package/dist/assets/{assistant-inbox-page-route-CZEp6qpH.js → assistant-inbox-page-route-BCzsw_dR.js} +1 -1
- package/dist/assets/{assistant-inbox-upgrade-body-gHf4cLXK.js → assistant-inbox-upgrade-body-DqRg_E8P.js} +1 -1
- package/dist/assets/{assistant-status-panel-BTvZ573v.js → assistant-status-panel-CXtpB-3s.js} +1 -1
- package/dist/assets/auth-store-VfQBlZjf.js +1 -0
- package/dist/assets/{auth-welcome-screen-BTwCPZYQ.js → auth-welcome-screen-eEmmCa7a.js} +1 -1
- package/dist/assets/avatar-bundled-components-CBxBRJHT.js +1 -0
- package/dist/assets/{avatar-random-Bu1JUc-m.js → avatar-random-CmFgdVYy.js} +2 -2
- package/dist/assets/{await-org-header-settled-DIoy1_Jd.js → await-org-header-settled-rFkQnSY1.js} +1 -1
- package/dist/assets/{background-task-detail-panel-DJsB3oAn.js → background-task-detail-panel-CujUAl64.js} +1 -1
- package/dist/assets/{billing-page-KdEbDnk2.js → billing-page-C3fvhOOQ.js} +3 -3
- package/dist/assets/{billing-redirect-page-B0JXbuDV.js → billing-redirect-page-CKl8d4sb.js} +1 -1
- package/dist/assets/{bookmarks-page-VALGfihg.js → bookmarks-page-B2YSfE6-.js} +1 -1
- package/dist/assets/{bundle-confirm-page-CaLFi7ku.js → bundle-confirm-page-gJCzHRKr.js} +1 -1
- package/dist/assets/{channel-transcript-panel-D4KVRmwh.js → channel-transcript-panel-D5L38TzO.js} +1 -1
- package/dist/assets/{channels-page-route-COc0hysG.js → channels-page-route-afqHw3N0.js} +1 -1
- package/dist/assets/{chat-info-panel-pW2_d9mO.js → chat-info-panel-DTA_-olk.js} +1 -1
- package/dist/assets/{checkout-continuation-9qrV5c78.js → checkout-continuation-5Jtm_JrA.js} +1 -1
- package/dist/assets/{checkout-page-DxpEqYIc.js → checkout-page-DULnZwd9.js} +1 -1
- package/dist/assets/checkout-return-target-DWik-led.js +1 -0
- package/dist/assets/{command-palette-E9QrPenm.js → command-palette-BD0yvfbb.js} +1 -1
- package/dist/assets/command-palette-CVX6w4zo.js +1 -0
- package/dist/assets/{command-palette-window-page-CZXCfB57.js → command-palette-window-page-Bk5U7P1e.js} +1 -1
- package/dist/assets/common-2tBLDaGA.js +1 -0
- package/dist/assets/common-BbH8TVsn.js +1 -0
- package/dist/assets/common-CLiCbaO-.js +1 -0
- package/dist/assets/{common-c9S--s7Z.js → common-WxNH1jIH.js} +1 -1
- package/dist/assets/{community-page-Cj2Wd0lm.js → community-page-CUQ3qu-V.js} +1 -1
- package/dist/assets/{companion-accent-DDGqoGt7.js → companion-accent-BYoVCdU1.js} +1 -1
- package/dist/assets/{companion-dock-zones-page-DTi3NZqD.js → companion-dock-zones-page-sX6B3NE_.js} +1 -1
- package/dist/assets/{companion-layout-oDK2JvY4.js → companion-layout-33AE1gia.js} +1 -1
- package/dist/assets/{companion-popover-DbIXR8Bk.js → companion-popover-TujVt-Ar.js} +1 -1
- package/dist/assets/{companion-popover-page-BSLD45sw.js → companion-popover-page-ByBb4sHd.js} +1 -1
- package/dist/assets/{companion-surface-page-BO8ktCPi.js → companion-surface-page-BbWzCHgm.js} +1 -1
- package/dist/assets/{companion-watch-frame-page-DFn5w5vu.js → companion-watch-frame-page-BIETd4hp.js} +1 -1
- package/dist/assets/{connect-page-Do1DxTJR.js → connect-page-BO1XQJwf.js} +1 -1
- package/dist/assets/{consent-controls-D99GwSSN.js → consent-controls-DZjKfsjW.js} +1 -1
- package/dist/assets/{contacts-gateway-BC6WaVFg.js → contacts-gateway-B5O7Ne74.js} +1 -1
- package/dist/assets/{contacts-page-route-CXW0fKwC.js → contacts-page-route-CWQ8xq2e.js} +1 -1
- package/dist/assets/{copy-button-CmwoARVB.js → copy-button-BIeybJYd.js} +1 -1
- package/dist/assets/{credential-entry-page-DfXFeMIN.js → credential-entry-page-BRvUcU5-.js} +1 -1
- package/dist/assets/{credentials-page-DRVB3E60.js → credentials-page-BCpKSirx.js} +1 -1
- package/dist/assets/{csv-preview-CiaeYC20.js → csv-preview-sSdnMx-6.js} +1 -1
- package/dist/assets/{danger-zone-redirect-page-B4c2l_0r.js → danger-zone-redirect-page-521j5Kuo.js} +1 -1
- package/dist/assets/{debug-page-CvyE149B.js → debug-page-Ci2myxA0.js} +1 -1
- package/dist/assets/deploy-dialogs-pkluahDA.js +1 -0
- package/dist/assets/{deploy-dialogs-mEenw05v.js → deploy-dialogs-u3yfw8HJ.js} +1 -1
- package/dist/assets/{desktop-preview-content-DWlmtZ40.js → desktop-preview-content-DYVVZr2w.js} +2 -2
- package/dist/assets/{desktop-status-u4hV53HS.js → desktop-status-B4ofrNCE.js} +1 -1
- package/dist/assets/{desktop-viewer-CFOGac24.js → desktop-viewer-CxxkXSPF.js} +1 -1
- package/dist/assets/{detail-card-CZVSMSNs.js → detail-card-BhMBZjzu.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-CoA_583J.js → detail-panel-stop-button-BXvuwM0g.js} +1 -1
- package/dist/assets/detail-primitives-Bh6NmCv7.js +1 -0
- package/dist/assets/{developer-page-Co9T6jqJ.js → developer-page-CC5VjRqN.js} +1 -1
- package/dist/assets/{devices-redirect-page-CbXvqz4V.js → devices-redirect-page-sytJWmif.js} +1 -1
- package/dist/assets/{dictation-overlay-page-DohFzjtT.js → dictation-overlay-page-wEGaipQM.js} +1 -1
- package/dist/assets/document-load-C91qCZur.js +1 -0
- package/dist/assets/{document-load-DGt33NFw.js → document-load-Cxy5V3Q3.js} +1 -1
- package/dist/assets/{document-viewer-page-DMRNTqY7.js → document-viewer-page-CF5Qsyn0.js} +1 -1
- package/dist/assets/{emails-page-CgbmlG_-.js → emails-page-CF5E8gMK.js} +1 -1
- package/dist/assets/{file-diff-view-D0X_TuVO.js → file-diff-view-DeCwZxAs.js} +1 -1
- package/dist/assets/{file-editor-vMWOc28f.js → file-editor-kOM9p3-b.js} +1 -1
- package/dist/assets/{general-page-DRoY1Iej.js → general-page-CHuT-gI-.js} +1 -1
- package/dist/assets/{hatching-screen-BNJtdwkK.js → hatching-screen-CRUvQYM3.js} +1 -1
- package/dist/assets/{hosting-screen-BZRT7l7I.js → hosting-screen-cKl8LkVn.js} +1 -1
- package/dist/assets/{identity-page-route-CFrCh_KE.js → identity-page-route-A6PcJJKj.js} +1 -1
- package/dist/assets/{inspect-page-BHkl8Ibk.js → inspect-page-C98uAPdc.js} +3 -3
- package/dist/assets/{integrations-page-BYqa4ZWD.js → integrations-page-C8x-gkb9.js} +1 -1
- package/dist/assets/{intelligence-layout-eis9JaHj.js → intelligence-layout-ChW1oIoj.js} +1 -1
- package/dist/assets/intelligence-layout-slots-store-D8qMofvo.js +1 -0
- package/dist/assets/{keyboard-shortcuts-redirect-page-Lb1SQwRg.js → keyboard-shortcuts-redirect-page-BYcDZHs7.js} +1 -1
- package/dist/assets/{latest-assistant-text-T4hNgVuv.js → latest-assistant-text-Dnh6k0g4.js} +1 -1
- package/dist/assets/{library-detail-page-CWDBsQis.js → library-detail-page-DRUffaFd.js} +1 -1
- package/dist/assets/{library-page-Mg60THux.js → library-page-dNnf_D2k.js} +1 -1
- package/dist/assets/local-mode-DI-seN56.js +1 -0
- package/dist/assets/{login-page-DQCXCIr1.js → login-page-BPkEvkFD.js} +1 -1
- package/dist/assets/{logout-page-7dYOYnPb.js → logout-page-D3opSUZI.js} +1 -1
- package/dist/assets/{logs-layout-CY2j2fvO.js → logs-layout-ZkvUiVsu.js} +1 -1
- package/dist/assets/{markdown-preview-CfEjiWNm.js → markdown-preview-MnyvCMa3.js} +1 -1
- package/dist/assets/{media-preview-BaQUTRiQ.js → media-preview-BQxdPaMe.js} +1 -1
- package/dist/assets/{memory-page-route-C03izhfJ.js → memory-page-route-6Xr4vUpi.js} +1 -1
- package/dist/assets/{memory-router-playground-page-DdjGQ-b9.js → memory-router-playground-page-CaTWoBrm.js} +1 -1
- package/dist/assets/{message-files-panel-DCFWS80s.js → message-files-panel-CL8oaeEs.js} +1 -1
- package/dist/assets/{metric-card-BPdD5GIY.js → metric-card-Bk5HVUSj.js} +1 -1
- package/dist/assets/native-attachment-pickers-DSMoNnpj.js +1 -0
- package/dist/assets/native-file-BsIX0824.js +1 -0
- package/dist/assets/{notifications-page-BrufA0ep.js → notifications-page-BwawEEVb.js} +1 -1
- package/dist/assets/{oauth-complete-page-CU0ZFKgo.js → oauth-complete-page-E8VFzbV8.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-CWV5_KjG.js → oauth-popup-complete-page-BPruZqf-.js} +1 -1
- package/dist/assets/paired-platform-identity-DC-PSt-z.js +1 -0
- package/dist/assets/{pairing-page-BWvSec2z.js → pairing-page-pUxc_Q6w.js} +1 -1
- package/dist/assets/password-reset-page-D_XJ_720.js +1 -0
- package/dist/assets/{pdf-file-preview-BDNFrYwL.js → pdf-file-preview-CcYLZEEX.js} +1 -1
- package/dist/assets/{personality-page-BeDOP0Yx.js → personality-page-D7ltEpyD.js} +1 -1
- package/dist/assets/{personality-page-BgCVuORF.js → personality-page-DJ8ZQNex.js} +1 -1
- package/dist/assets/{personality-sliders-DPrI9-Un.js → personality-sliders-B_qi0jNr.js} +1 -1
- package/dist/assets/{plans-page-Dulw9Q1k.js → plans-page-DjMkYu8P.js} +1 -1
- package/dist/assets/{platform-loopback-page-SyOClPdC.js → platform-loopback-page-B7YadjAM.js} +1 -1
- package/dist/assets/{plugin-detail-page-ycy32YsM.js → plugin-detail-page-DJHgAPt-.js} +1 -1
- package/dist/assets/{plugins-page-6VvPNQ_q.js → plugins-page-t9j6WJsi.js} +1 -1
- package/dist/assets/plugins-surface-DY7rojgP.js +1 -0
- package/dist/assets/{preview-error-CYKkv16g.js → preview-error-CTmJUZ1U.js} +1 -1
- package/dist/assets/{privacy-page-CFrLoQuJ.js → privacy-page-CcVYTYFw.js} +1 -1
- package/dist/assets/{privacy-screen-BuIFw79d.js → privacy-screen-D6KWda_d.js} +1 -1
- package/dist/assets/{profile-card-DOKegb-a.js → profile-card-B0q-4VDK.js} +1 -1
- package/dist/assets/{provider-callback-page-CPnDutdc.js → provider-callback-page-DUPzWdsn.js} +1 -1
- package/dist/assets/{provider-key-AVs0qMXM.js → provider-key-Bt_1m-Ip.js} +1 -1
- package/dist/assets/{provider-signup-page-DTPzoL0u.js → provider-signup-page-Dyube2uE.js} +1 -1
- package/dist/assets/{quick-input-page-B0ICyEgU.js → quick-input-page-phOYFcWE.js} +1 -1
- package/dist/assets/{referral-modal-1zPoMtxP.js → referral-modal-BpEe6RfT.js} +1 -1
- package/dist/assets/referral-modal-YlLIteDB.js +1 -0
- package/dist/assets/{research-mock-page-D-e9x0aU.js → research-mock-page-3sH3Ojod.js} +1 -1
- package/dist/assets/{research-onboarding-route-DtHB29VX.js → research-onboarding-route-W8ZOplPi.js} +1 -1
- package/dist/assets/{review-terms-screen-BbXyCCa7.js → review-terms-screen-p7rIoNoi.js} +1 -1
- package/dist/assets/routes-vi064rNI.js +1 -0
- package/dist/assets/{schedules-DfRCZ1RP.js → schedules-G-fQS88Z.js} +1 -1
- package/dist/assets/{schedules-page-Dcpdy1n1.js → schedules-page-Bz8dQuZ9.js} +1 -1
- package/dist/assets/{security-redirect-page-BqN7nDmC.js → security-redirect-page-nqyQ-l9I.js} +1 -1
- package/dist/assets/{select-assistant-screen-D7lOSn8K.js → select-assistant-screen-DTbgqPJ8.js} +1 -1
- package/dist/assets/{self-hosted-servers-mfRYC3V6.js → self-hosted-servers-TGCgx_Zl.js} +1 -1
- package/dist/assets/{service-form-controls-yfiFapqu.js → service-form-controls-BYas0Fj1.js} +1 -1
- package/dist/assets/{setting-row-hz10CsiO.js → setting-row-DeKbamTb.js} +1 -1
- package/dist/assets/{settings-divider-BTsvGg8f.js → settings-divider-fX1al4v0.js} +1 -1
- package/dist/assets/{settings-layout-CJfkUjGu.js → settings-layout-_uQXbZvN.js} +1 -1
- package/dist/assets/share-feedback-modal-BbfX56Tb.js +1 -0
- package/dist/assets/{share-feedback-modal-CxxySevk.js → share-feedback-modal-Bgjk4m6g.js} +1 -1
- package/dist/assets/{sidebar-tree-Bu-uVPbk.js → sidebar-tree-BxII4vqO.js} +1 -1
- package/dist/assets/{signup-page-NLKt0-kE.js → signup-page--iXCz-aP.js} +1 -1
- package/dist/assets/{signup-shell-DU-HQ4Is.js → signup-shell-D2m_KGDx.js} +1 -1
- package/dist/assets/{skill-detail-page-D2ynj5TG.js → skill-detail-page-DApsFagl.js} +1 -1
- package/dist/assets/{skill-detail-panel-CkzKPc65.js → skill-detail-panel-D2ghwCqP.js} +1 -1
- package/dist/assets/{skill-removal-dialog-Cf4V-l2v.js → skill-removal-dialog-C3KKFPCH.js} +1 -1
- package/dist/assets/{skills-page-q_IVfLb3.js → skills-page-CMueiEEK.js} +1 -1
- package/dist/assets/{sounds-page-CtaSO0c4.js → sounds-page-CaRGElXh.js} +1 -1
- package/dist/assets/{start-screen-DeowChgG.js → start-screen-C380uTIT.js} +1 -1
- package/dist/assets/{stt-language-picker-modal-MgMG4vnJ.js → stt-language-picker-modal-wNybXxLn.js} +1 -1
- package/dist/assets/{subagent-detail-panel-CkE-6d0V.js → subagent-detail-panel--lLPuYen.js} +1 -1
- package/dist/assets/{superpowers-page-11wxZ3sf.js → superpowers-page-CwGBMECu.js} +1 -1
- package/dist/assets/{system-events-page-NUG1UJD3.js → system-events-page-CbQnTv1L.js} +1 -1
- package/dist/assets/{system-events-redirect-page-DbsB8RE5.js → system-events-redirect-page-DRZUqIqZ.js} +1 -1
- package/dist/assets/{text-preview-qkNRFUQt.js → text-preview-CYUN4rc9.js} +1 -1
- package/dist/assets/{theme-stage-page-Vy0XYtTa.js → theme-stage-page-ic-Boi69.js} +1 -1
- package/dist/assets/{tiptap-document-editor-D3VgM1Ce.js → tiptap-document-editor-SsIwSFSZ.js} +1 -1
- package/dist/assets/tool-detail-panel-CKZ_M0Qj.js +1 -0
- package/dist/assets/{tool-detail-panel-kkHVCqRn.js → tool-detail-panel-XwRKFU13.js} +3 -3
- package/dist/assets/{trait-cycle-row-BlgCseYI.js → trait-cycle-row-DNn4F74m.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-s6e4nG1l.js → upgrade-cancel-page-DqQHOlQ0.js} +1 -1
- package/dist/assets/{upgrade-success-page-D6SM1pxp.js → upgrade-success-page-tVasRCy_.js} +1 -1
- package/dist/assets/{usage-redirect-page-BNYnnsnf.js → usage-redirect-page-D3aVssCL.js} +1 -1
- package/dist/assets/{use-app-delete-CQbN9rtt.js → use-app-delete-DtftSu08.js} +1 -1
- package/dist/assets/{use-assistant-identity-details-CrhYb7qF.js → use-assistant-identity-details-BHojBIzM.js} +1 -1
- package/dist/assets/{use-checkout-dismiss-refresh-q4n835g5.js → use-checkout-dismiss-refresh-DbSG9nq4.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-CeKk6gy9.js → use-edge-swipe-back-Dx2dMUF5.js} +1 -1
- package/dist/assets/{use-hotkey-recorder-BA2YaGIX.js → use-hotkey-recorder-DHnuMF6T.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-6IXyqacJ.js → use-invite-link-dialog-DNFvVMTr.js} +1 -1
- package/dist/assets/{use-plugins-list-CHpcMGs_.js → use-plugins-list-D0KJteNK.js} +1 -1
- package/dist/assets/{use-return-to-short-circuit-2kdbf5Q4.js → use-return-to-short-circuit-CFPNKSTK.js} +1 -1
- package/dist/assets/{use-side-list-room-BhFIS5Le.js → use-side-list-room-BEt4nE6h.js} +1 -1
- package/dist/assets/{use-skill-actions-Kdf5x1HU.js → use-skill-actions-C7qa2xLE.js} +1 -1
- package/dist/assets/{use-skill-detail-files-DAyyrFN5.js → use-skill-detail-files-_1GQxDTx.js} +1 -1
- package/dist/assets/use-supports-credentials-settings-ChozdHJ0.js +1 -0
- package/dist/assets/{use-transcript-message-by-id-D3l5WRCF.js → use-transcript-message-by-id-BaIMdiwS.js} +1 -1
- package/dist/assets/{voice-page-faAl_Nti.js → voice-page-BJ51XPpw.js} +1 -1
- package/dist/assets/{wake-detail-panel-WzSOhew8.js → wake-detail-panel-DkAaJeZE.js} +1 -1
- package/dist/assets/{weather-forecast-display-DIwophHB.js → weather-forecast-display-ty6o7LuP.js} +1 -1
- package/dist/assets/{welcome-screen-DCDAeMA9.js → welcome-screen-B9BqQr5N.js} +1 -1
- package/dist/assets/{workflow-detail-panel-CtBcOGfQ.js → workflow-detail-panel--kczknYa.js} +1 -1
- package/dist/assets/{workspace-page-DBInjaOS.js → workspace-page-G1xUhgr7.js} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/add-credits-modal-DNsSoNjD.js +0 -1
- package/dist/assets/auth-store-EAev0DJN.js +0 -1
- package/dist/assets/avatar-bundled-components-DhB1DyLm.js +0 -1
- package/dist/assets/checkout-return-target-CI8LVYVE.js +0 -1
- package/dist/assets/command-palette-Cmcx1U8W.js +0 -1
- package/dist/assets/common-B1Nsu-f_.js +0 -1
- package/dist/assets/common-BOcNovqr.js +0 -1
- package/dist/assets/common-B_WI9sIg.js +0 -1
- package/dist/assets/deploy-dialogs-DCxRLpl7.js +0 -1
- package/dist/assets/detail-primitives-f9ovBHes.js +0 -1
- package/dist/assets/document-load-D5E61ZgQ.js +0 -1
- package/dist/assets/intelligence-layout-slots-store-Cg1S2hhY.js +0 -1
- package/dist/assets/local-mode-C2LpbCQF.js +0 -1
- package/dist/assets/native-attachment-pickers-CenfaGLR.js +0 -1
- package/dist/assets/native-file-L8dxZeiL.js +0 -1
- package/dist/assets/paired-platform-identity-6K-FDEvo.js +0 -1
- package/dist/assets/password-reset-page-GkXM4m0d.js +0 -1
- package/dist/assets/plugins-surface-BKEqqJBL.js +0 -1
- package/dist/assets/referral-modal-C-PDjzho.js +0 -1
- package/dist/assets/routes-PhQIek7i.js +0 -1
- package/dist/assets/share-feedback-modal-yqSXIF2c.js +0 -1
- package/dist/assets/tool-detail-panel-DSA9JyHJ.js +0 -1
- package/dist/assets/use-supports-credentials-settings-CRzbQVNd.js +0 -1
package/dist/assets/{companion-surface-page-BO8ktCPi.js → companion-surface-page-BbWzCHgm.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ac as t,Cc as n,Dc as r,Ec as i,Fc as a,Gu as o,Ic as s,Jh as c,Ji as l,Ku as u,Lc as d,Mc as f,NS as p,Nc as m,Oc as h,Pc as g,Pi as _,Qh as v,Rc as y,Sc as b,Tc as x,Uu as S,Vc as C,Wu as ee,Xh as w,Zh as te,_c as T,_n as E,bc as ne,fc as D,gc as O,hc as re,pc as k,sS as ie,uc as ae,vS as A,vc as oe,wc as se,xc as ce,yc as le,zc as ue}from"./app-BfK0IQIk.js";import{f as de,g as fe,j}from"./vendor-ajttH1pP.js";import{t as pe,x as me}from"./react-B9IgSVeK.js";import{Ai as he,Cr as ge,Fa as _e,G as M,Gi as ve,Ka as ye,Ki as be,Tn as xe,Wi as Se,Xr as Ce,Ya as we,Yr as Te,Zt as Ee,bt as De,h as N,i as P,m as Oe,qi as ke,wn as Ae,yn as F}from"./icons-C0wyat6T.js";import{n as je}from"./companion-accent-DDGqoGt7.js";import{n as Me,t as Ne}from"./companion-popover-DbIXR8Bk.js";import{n as Pe,r as Fe,t as Ie}from"./companion-layout-oDK2JvY4.js";var Le=we(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Re=we(`screen-share`,[[`path`,{d:`M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3`,key:`i8wdob`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m17 8 5-5`,key:`fqif7o`}],[`path`,{d:`M17 3h5v5`,key:`1o3tu8`}]]),I=we(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),L=e(me(),1),R=pe(),ze=460,Be=3,Ve=88,He=3,Ue=[`screens`,`tabs`,`windows`],We=(e,t)=>t===`screens`?e.displays.length:t===`tabs`?e.tabs.length:e.windows.length,Ge=e=>Ue.find(t=>We(e,t)>0)??`screens`,z=e=>e.kind===`display`?`display-${e.displayId}`:`window-${e.windowId}`;function B({sources:e,captureThumbnail:t,cardGrowth:n=`up`,avatarBox:r=c,optionsBox:i=c,cardRef:a,label:o,onPick:s,onAllowScreenRecording:l}){let{t:u}=j(),{inUnits:d,lineAt:f,introStepOff:m}=Ie(r,i),h=d(m(n)),g={left:`50%`,top:f(n,0),transform:n===`up`?`translate(-50%, calc(-100% - ${h}px))`:`translate(-50%, ${h}px)`},_=e!==null&&e.screenRecordingGranted===!1,v=_?null:e,y=v===null?[]:Ue.filter(e=>We(v,e)>0),b=v!==null&&y.length===0,[x,S]=(0,L.useState)(null),C=v===null?`screens`:x!==null&&y.includes(x)?x:Ge(v),ee=(0,L.useMemo)(()=>v===null?[]:C===`screens`?v.displays.map(e=>{let t={kind:`display`,displayId:e.displayId};return{key:z(t),target:t}}):C===`windows`?v.windows.map(e=>{let t={kind:`window`,windowId:e.windowId};return{key:z(t),target:t}}):[],[C,v]),[w,te]=(0,L.useState)(new Map),T=(0,L.useRef)(new Set),E=(0,L.useRef)(0),ne=(0,L.useRef)(!1);(0,L.useEffect)(()=>(ne.current=!0,()=>{ne.current=!1}),[]),(0,L.useEffect)(()=>{T.current=new Set,E.current+=1,te(new Map),S(null)},[e]);let D=(0,L.useRef)(null);(0,L.useEffect)(()=>{D.current!==null&&(D.current.scrollTop=0)},[C]),(0,L.useEffect)(()=>{if(t!==void 0)for(let{key:e,target:n}of ee){if(T.current.has(e))continue;T.current.add(e);let r=E.current,i=t=>{!ne.current||r!==E.current||te(n=>new Map(n).set(e,t))};t(n).then(i,()=>{i(null)})}},[t,ee]);let O=e=>t===void 0?null:w.get(e),re=e=>u(e===`screens`?`companionSurface.captureScreens`:e===`tabs`?`companionSurface.captureTabs`:`companionSurface.captureWindows`);return(0,R.jsxs)(`div`,{ref:a,role:`group`,"aria-label":o??u(`companionSurface.capturePicker`),"data-companion-capture-picker":!0,"data-theme":`dark`,className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 p-1.5 shadow-lg shadow-black/40`,style:{width:ze,...g},onPointerDown:e=>{e.stopPropagation()},children:[y.length>1&&(0,R.jsx)(ie,{className:`mx-auto mb-1.5 w-auto shrink-0`,items:y.map(e=>({value:e,label:re(e)})),value:C,ariaLabel:u(`companionSurface.captureKind`),onChange:S}),(0,R.jsx)(A,{ref:D,className:`max-h-48 flex-col px-0.5`,size:24,fadeEdges:`end`,hideScrollBar:!0,children:(0,R.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`capture-sources`,children:[e===null&&(0,R.jsx)(Ye,{}),_&&(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 py-2`,"data-slot":`capture-needs-grant`,children:[(0,R.jsx)(`span`,{className:`text-[12px] text-white/70`,children:u(`companionSurface.captureScreenRecordingOff`)}),(0,R.jsx)(p,{variant:`primary`,size:`compact`,className:`shrink-0`,onClick:l,children:u(`companionSurface.captureTurnOnScreenRecording`)})]}),v!==null&&C===`screens`&&(0,R.jsx)(Ke,{children:v.displays.map(e=>{let t=u(`companionSurface.captureScreen`,{n:e.index+1}),n=z({kind:`display`,displayId:e.displayId});return(0,R.jsx)(qe,{title:t,ariaLabel:t,answer:O(n),fallback:(0,R.jsx)(F,{className:`size-5 text-white/40`,"aria-hidden":!0}),onClick:()=>{s?.({kind:`display`,displayId:e.displayId})}},n)})}),v!==null&&C===`windows`&&(0,R.jsx)(Ke,{children:v.windows.map(e=>{let t=z({kind:`window`,windowId:e.windowId}),n=e.title===``?e.app:e.title;return(0,R.jsx)(qe,{title:n,ariaLabel:e.title===``?n:`${n} (${e.app})`,answer:O(t),fallback:(0,R.jsx)(V,{icon:e.icon,large:!0}),icon:(0,R.jsx)(V,{icon:e.icon}),onClick:()=>{s?.({kind:`window`,windowId:e.windowId})}},t)})}),v!==null&&C===`tabs`&&(0,R.jsx)(`div`,{className:`flex flex-col`,children:v.tabs.map(e=>(0,R.jsx)(Je,{icon:(0,R.jsx)(V,{icon:e.icon}),title:e.title,onClick:()=>{s?.({kind:`tab`,chromeWindowId:e.chromeWindowId,tabIndex:e.tabIndex})}},`tab-${e.chromeWindowId}-${e.tabIndex}`))}),b&&(0,R.jsx)(`span`,{className:`px-2 py-3 text-[12px] text-white/50`,children:u(`companionSurface.captureNothing`)})]})})]})}function Ke({children:e}){return(0,R.jsx)(`div`,{className:`grid gap-1.5 py-0.5`,style:{gridTemplateColumns:`repeat(${Be}, minmax(0, 1fr))`},children:e})}function qe({title:e,ariaLabel:t,answer:n,fallback:r,icon:i,onClick:a}){return(0,R.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`group flex min-w-0 flex-col gap-1 rounded-lg p-1 text-left transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:a,children:[(0,R.jsx)(`span`,{"data-slot":`capture-preview`,className:`flex items-center justify-center overflow-hidden rounded-md bg-black/40 ring-1 ring-white/10 ${n===void 0?`animate-pulse`:``}`,style:{height:Ve},children:n==null?r:(0,R.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`max-h-full max-w-full object-contain`})}),(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[i,(0,R.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-white/75 group-hover:text-white/90`,children:e})]})]})}function Je({icon:e,title:t,onClick:n}){return(0,R.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`flex h-8 w-full shrink-0 items-center gap-2 rounded-lg px-2 text-left text-[12px] text-white/85 transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:n,children:[e,(0,R.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}function V({icon:e,large:t=!1}){return(0,R.jsx)(`span`,{className:`flex shrink-0 items-center justify-center overflow-hidden ring-1 ring-white/10 ${t?`size-7 rounded-lg`:`size-3.5 rounded-[4px]`}`,children:e===void 0?(0,R.jsx)(ye,{className:t?`size-5 text-white/40`:`size-3 text-white/70`,"aria-hidden":!0}):(0,R.jsx)(`img`,{src:e,alt:``,className:`size-full`,draggable:!1})})}function Ye(){return(0,R.jsx)(Ke,{children:Array.from({length:He},(e,t)=>(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 p-1`,"aria-hidden":!0,children:[(0,R.jsx)(`span`,{className:`animate-pulse rounded-md bg-white/10`,style:{height:Ve}}),(0,R.jsx)(`span`,{className:`h-2 animate-pulse rounded-full bg-white/10`,style:{width:t===0?`70%`:`45%`}})]},t))})}var Xe=260;function Ze({offer:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=c,optionsBox:i=c,cardRef:a,onAnswer:o}){let{t:s}=j(),l=e.reason===`claimed`?s(`companionSurface.offerVersion`):s(`companionSurface.offerNowhere`),{inUnits:u,avatarHalf:d,lineAt:f,edgeAt:p,introStepOff:m}=Ie(r,i),h=u(m(n)),g=p(t,-d),_={top:f(n,0),transform:n===`up`?`translateY(calc(-100% - ${h}px))`:`translateY(${h}px)`};return(0,R.jsxs)(`div`,{ref:a,role:`group`,"aria-label":l,"data-companion-dictation-offer":!0,className:`absolute flex flex-col gap-2 rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:Xe,...g,..._},onPointerDown:e=>{e.stopPropagation()},children:[(0,R.jsx)(`p`,{className:`text-[11px] font-medium tracking-wide text-white/45 uppercase select-none`,children:l}),(0,R.jsx)(A,{className:`max-h-40 flex-col`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,R.jsx)(`p`,{dir:`auto`,className:`text-[13px] leading-[1.45] text-white/90`,children:e.text})}),(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1 pt-0.5`,children:[(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/55 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>o?.(`dismiss`),children:e.reason===`claimed`?s(`companionSurface.notNow`):s(`companionSurface.offerDiscard`)}),e.reason===`claimed`?(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/70 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>o?.(`quit`),children:s(`companionSurface.offerQuit`,{app:e.app})}):null,(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>o?.(e.reason===`claimed`?`use`:`copy`),children:e.reason===`claimed`?s(`companionSurface.offerUse`):s(`companionSurface.offerCopy`)})]})]})}var H={min:3,max:10},Qe=(e=Math.random)=>{let t=e();return t<1/3?`top`:t<2/3?`topLeft`:`topRight`},$e=1600,et=.22,tt=.04,U=4,W=(e,t)=>{let n=Math.min(.95,Math.max(.25,e.eyeCenterFrac+e.eyeHalfFrac+tt)),r=Math.min(t,24,14/n),i=r*n;return{size:r,exposed:i,clip:{width:r+2*U,height:i+U},rest:i+2}},G=(e,t=Math.random)=>(e.min+t()*(e.max-e.min))*1e3;function nt(e,t=H){let[n,r]=(0,L.useState)(0),{min:i,max:a}=t;return(0,L.useEffect)(()=>{if(!e)return;let t,n=()=>{t=setTimeout(()=>{r(e=>e+1),n()},G({min:i,max:a}))};return n(),()=>{clearTimeout(t)}},[e,i,a]),n}var rt=(e,t,n={width:0,height:0})=>{let r=e===`topLeft`?n.width/4:e===`topRight`?n.width*3/4:n.width/2;return{slot:{width:t.width,height:t.height,bottom:`100%`,left:r-t.width/2}}};function it({character:e,capsule:t,enabled:n,held:r=!1,edge:i,interval:a=H,className:o,style:s}){let c=de(),u=(0,L.useMemo)(()=>E(l,e),[e]),d=nt(n&&!r&&!c&&u!==null,a),[f,p]=(0,L.useState)(!1),[m,h]=(0,L.useState)(`top`);if((0,L.useEffect)(()=>{if(d===0)return;h(Qe()),p(!0);let e=setTimeout(()=>{p(!1)},$e);return()=>{clearTimeout(e)}},[d]),u===null||c)return null;let g=W(u,t.width),v=r||f,y=i??m,b=rt(y,g.clip,t);return(0,R.jsx)(`div`,{className:`companion-peek ${o??``}`,style:{width:t.width,height:t.height,...s},"data-risen":v,"data-edge":y,"aria-hidden":!0,children:(0,R.jsx)(`div`,{className:`absolute`,style:b.slot,children:(0,R.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:(0,R.jsx)(fe.div,{className:`absolute left-1/2`,style:{width:g.size,height:g.size,marginLeft:-g.size/2,top:g.clip.height-g.exposed},initial:{y:g.rest},animate:{y:v?0:g.rest},transition:r?{duration:0}:v?{type:`spring`,stiffness:280,damping:14}:{duration:et,ease:`easeIn`},children:(0,R.jsx)(_,{components:l,traits:e,size:g.size})})})})})}var K=(0,L.createContext)(`above`),at=`#5eead4`,ot=new Set([`transcribing`,`thinking`,`speaking`]),q=28,J={idle:{width:64,height:14},closing:q,rim:2,bloom:4},st=J.idle,ct=(e,t,n)=>[`inset 0 0 0 ${t}px color-mix(in srgb, ${e} 78%, transparent)`,`0 0 ${n}px color-mix(in srgb, ${e} 85%, transparent)`,`0 0 ${n*4}px color-mix(in srgb, ${e} 42%, transparent)`,`0 8px 24px rgba(0, 0, 0, 0.45)`].join(`, `),Y=244,lt=200,ut=120,dt={watching:40,summary:220,dictating:Y+32,offer:lt+32,call:4+ut+180},ft=84,pt={width:28,height:ft+140+20};function mt({phase:e,assistantName:t=``,accentHex:n=at,avatarSrc:r,character:i,hovered:a=!1,growth:o=`right`,avatarBox:s=c,optionsBox:l=c,cardGrowth:u=`up`,dock:d=`bottom`,rootRef:f,restingPillRef:p,avatarRef:m,onSurfacePointerDown:h,onSurfaceContextMenu:g,spotlight:_,avatarStaged:v=!1,avatarTucked:y=!1,onWatch:b,onTeach:x,picking:S=!1,sharing:C=!1,shareEnabled:ee=!1,sharePicking:w=!1,onShare:te,onStopShare:T,annotating:E=!1,annotationTool:ne,onAnnotationTool:D,drawToolsRef:O,onAnnotate:re,marked:k=!1,onClearMarks:ie,openPicker:ae,voicesPickable:A=!1,onPicker:oe,shortcuts:se,onAvatarClick:ce,working:le=!1,watching:ue=!1,watchRetro:fe,onWatchRetro:pe,dictationOffer:me,offer:he,watchEnabled:ge=!1,dictating:_e,dictationText:M=``,call:ve,onControl:ye,intro:be,picker:xe,prompt:Se,promptRef:Ce,promptsDeferred:we=0,onReviewPrompts:Te}){let{t:Ee}=j(),De=e!==`resting`,N=e===`call`||e===`dictating`||e===`offer`||e===`summary`||e===`watching`,P=(0,L.useRef)(null),[Oe,ke]=(0,L.useState)(null),Ae=_===`talk`?void 0:_;(0,L.useEffect)(()=>{if(Ae===void 0){ke(null);return}return _t(P,`[data-control="${Ae}"]`,e=>{ke(e.x)})},[Ae,e,C]);let[F,je]=(0,L.useState)(null);(0,L.useEffect)(()=>{if(!v){je(null);return}return _t(P,`[data-avatar-stage]`,je)},[v,e]);let[Me,Ne]=(0,L.useState)(!1);(0,L.useEffect)(()=>{if(e!==`hover`){Ne(!1);return}let t=setTimeout(()=>{Ne(!0)},500);return()=>{clearTimeout(t)}},[e]);let Pe=be==null?_===`talk`||e===`hover`&&Me:!1,Fe=fe===`pending`,Le=le||ve!==void 0&&ot.has(ve.phase),Re=de(),I=(0,L.useRef)(null),[ze,Be]=(0,L.useState)(null),Ve=(0,L.useRef)(0);(0,L.useLayoutEffect)(()=>{let e=I.current;if(!e)return;let t=()=>{Be({width:e.scrollWidth-Ve.current,height:e.scrollHeight})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let{scale:He,avatarRel:Ue,avatarHalf:We,baseline:Ge,gap:z,inUnits:B,lineAt:Ke,edgeAt:qe}=Ie(s,l),Je=e===`call`,V=Je&&(d===`left`||d===`right`),Ye=V?d===`left`?`right`:`left`:`above`,Xe=N?V?(ze?.width??pt.width)+16:(ze?.width??dt[e])+16:0,Ze=N?(ze?.height??pt.height)+16:0,H=Je&&!V&&Se!=null,Qe=(0,L.useRef)(null),[$e,et]=(0,L.useState)(0);(0,L.useLayoutEffect)(()=>{let e=Qe.current;if(!H||e===null)return;let t=()=>{et(Math.ceil(e.getBoundingClientRect().width/He))};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[H,Se,He]);let tt=H?Math.max(Xe,$e):Xe,U=tt-Xe;(0,L.useLayoutEffect)(()=>{Ve.current=U},[U]);let W=V?`50%`:Ke(u,0),G=qe(o,We+z),nt=s/c,rt=De?{width:J.closing*nt,height:J.closing*nt}:J.idle,it=be!=null,q=Je?{width:tt,...V?{height:Ze}:{},left:`50%`,top:W,transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`}:{width:Xe,...G,top:Ke(u,Ge),transform:`translateY(-100%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},st=F===null?Oe!==null&&!V?`${Oe}px`:Je&&!V?`calc(50% - ${tt/2+B(We+z)}px)`:`50%`:`${F.x}px`,Y=F===null?Oe!==null&&!V?`calc(${W} - ${B(We+z)+22}px)`:V?`calc(50% - ${Ze/2+B(We+z)}px)`:W:`${F.y}px`;return(0,R.jsxs)(`div`,{ref:P,className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/He}%`,height:`${100/He}%`,transform:`scale(${He})`},children:[H?(0,R.jsx)(Tt,{dock:d,top:W,width:tt,accentHex:n,lit:N,promptRef:Ce,children:Se}):null,H?(0,R.jsx)(`div`,{ref:Qe,inert:!0,"aria-hidden":!0,"data-theme":`dark`,className:`pointer-events-none invisible absolute top-0 left-0 w-max max-w-[640px]`,children:Se}):null,(0,R.jsxs)(`div`,{className:`absolute flex cursor-grab items-center rounded-full duration-300 select-none active:cursor-grabbing ${V?`flex-col transition-[width,height] will-change-[width,height]`:`h-11 transition-[width] will-change-[width]`} ${!Je&&o===`left`?`justify-end`:``}`,style:q,onPointerDown:h,onContextMenu:g,ref:f,children:[(0,R.jsx)(`span`,{className:`absolute inset-0 rounded-full transition-opacity duration-200 ${H?`bg-[#17181b]`:`border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40`}`,style:{opacity:+!!N},"aria-hidden":!0}),Je&&(0,R.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 rounded-full transition-opacity duration-200`,style:{opacity:N&&!H?1:0,"--companion-ring-accent":n},"aria-hidden":!0}),(0,R.jsx)(`div`,{className:`relative flex shrink-0 items-center ${V?`flex-col`:`h-11`}`,style:V?{paddingBlock:8,paddingInline:8}:{paddingInline:8},children:(0,R.jsx)(`div`,{className:`flex items-center gap-1 overflow-hidden transition-opacity duration-200 ${V?`min-h-0 flex-col`:`min-w-0`}`,ref:I,inert:!N,style:{opacity:+!!N,transitionDelay:N?`120ms`:`0ms`},children:e===`call`?(0,R.jsx)(K.Provider,{value:Ye,children:(0,R.jsx)(Et,{call:ve,assistantName:t,spotlight:_,watching:ue,watchEnabled:ge,picking:S,sharing:C,shareEnabled:ee,sharePicking:w,annotating:E,marked:k,annotationTool:ne,vertical:V,drawToolsPlacement:V?d===`left`?`right`:`left`:u===`up`?`above`:`below`,drawToolsRef:O,onAnnotationTool:D,onControl:ye,onWatch:b,onTeach:x,onShare:te,onStopShare:T,onAnnotate:re,onClearMarks:ie,openPicker:ae,voicesPickable:A,onPicker:oe,pickerSide:V?d===`left`?`right`:`left`:d===`top`?`below`:`above`,shortcuts:se,promptsDeferred:we,lineExtra:U,onReviewPrompts:Te})}):e===`dictating`&&_e!==void 0?(0,R.jsx)(bt,{dictating:_e,dictationText:M}):e===`summary`&&fe!==void 0?(0,R.jsx)(wt,{retro:fe,onWatchRetro:pe}):e===`offer`&&me!==void 0?(0,R.jsx)(xt,{offer:me}):(0,R.jsx)(St,{watching:ue,onWatch:b})})})]}),(0,R.jsx)(`div`,{className:`absolute cursor-grab active:cursor-grabbing`,style:{width:B(J.idle.width),height:B(J.idle.height),pointerEvents:De?`none`:void 0,left:`50%`,top:W,transform:`translate(-50%, -50%)`},onPointerDown:h,onContextMenu:g,ref:p,"aria-hidden":!0,children:(0,R.jsx)(`div`,{className:`absolute top-1/2 left-1/2 rounded-full transition-[width,height,opacity] duration-300`,style:{width:B(rt.width),height:B(rt.height),transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:Re?`opacity`:void 0,boxShadow:ct(n,B(J.rim),B(J.bloom)),opacity:De||F!==null||it&&!y?0:1}})}),(0,R.jsx)(yt,{className:Pe?`opacity-100`:`opacity-0`,"data-companion-name":Pe?`shown`:`hidden`,style:{left:`50%`,top:W,transform:`translate(-50%, calc(-100% - ${B(We)}px - ${vt}px))`},label:Ee(`companionSurface.talk`)}),(0,R.jsx)(X,{label:Ee(e===`call`?`companionSurface.openVellum`:`companionSurface.talk`),accentHex:n,avatarSrc:r,character:i,attentive:a,busy:Le||ue||Fe,collapsed:!De&&(!it||y),restingScale:c/s,style:{left:st,top:Y,zIndex:F===null?void 0:2,transform:`translate(-50%, -50%)${Ue===1?``:` scale(${Ue})`}`,transition:Re?void 0:Oe===null&&F===null?`left 300ms cubic-bezier(.2,.8,.2,1), top 300ms cubic-bezier(.2,.8,.2,1)`:`left 420ms cubic-bezier(.34,1.56,.64,1), top 420ms cubic-bezier(.34,1.56,.64,1)`},elementRef:m,onPointerDown:h,onContextMenu:g,onClick:ce}),be,xe,he]})}var ht=`rgba(28, 28, 30, 0.55)`,gt=`backdrop-blur-md backdrop-saturate-150`,_t=(e,t,n)=>{let r=0,i=performance.now(),a=()=>{let o=e.current,s=o?.querySelector(t);if(o&&s){let e=o.getBoundingClientRect(),t=s.getBoundingClientRect(),r=e.width===0?1:o.offsetWidth/e.width;n({x:(t.left+t.width/2-e.left)*r,y:(t.top+t.height/2-e.top)*r})}performance.now()-i<500&&(r=requestAnimationFrame(a))};return a(),()=>{cancelAnimationFrame(r)}},vt=4;function yt({className:e,style:t,label:n,shortcut:r,beak:i=`down`,...a}){return(0,R.jsxs)(`span`,{className:`pointer-events-none absolute rounded-md px-2 py-1 text-[11px] leading-4 font-medium whitespace-nowrap text-white/90 shadow-md shadow-black/30 transition-opacity duration-200 ${gt} ${e}`,style:{...t,backgroundColor:ht},"aria-hidden":!0,...a,children:[n,r===void 0?null:(0,R.jsx)(`span`,{className:`ml-1.5 font-normal text-white/60`,"data-shortcut":!0,children:r}),(0,R.jsx)(`span`,{className:`absolute ${i===`down`?`top-full left-1/2 h-1.5 w-2.5 -translate-x-1/2`:i===`left`?`top-1/2 right-full h-2.5 w-1.5 -translate-y-1/2`:`top-1/2 left-full h-2.5 w-1.5 -translate-y-1/2`} ${gt}`,style:{backgroundColor:ht,clipPath:i===`down`?`polygon(0 0, 100% 0, 50% 100%)`:i===`left`?`polygon(100% 0, 100% 100%, 0 50%)`:`polygon(0 0, 0 100%, 100% 50%)`},"aria-hidden":!0})]})}function X({accentHex:e,avatarSrc:t,character:n,busy:r=!1,attentive:i=!1,collapsed:a=!1,restingScale:o=1,label:s,style:c,elementRef:u,onPointerDown:d,onContextMenu:f,onClick:p}){let m=de();return(0,R.jsxs)(`div`,{role:`button`,"aria-label":s,className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:c,ref:u,onPointerDown:d,onContextMenu:f,onClick:p,children:[n===void 0?null:(0,R.jsx)(it,{character:n,capsule:st,enabled:a&&!r,className:`absolute top-1/2 left-1/2 transition-opacity duration-200`,style:{transform:`translate(-50%, -50%) scale(${o})`,opacity:+!!a}}),(0,R.jsx)(`div`,{className:`transition-[opacity,transform] duration-300`,style:{opacity:+!a,transform:a?`scale(0.35)`:`scale(1)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:m?`opacity`:void 0},children:(0,R.jsx)(`div`,{className:`companion-avatar-bob relative grid place-items-center`,style:{animation:m?`none`:void 0},children:n===void 0?t===void 0?(0,R.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:e},"aria-hidden":!0}):(0,R.jsx)(`img`,{src:t,alt:``,draggable:!1,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)] [-webkit-user-drag:none]`}):(0,R.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,R.jsx)(_,{components:l,traits:n,size:q,isAssistantBusy:r,attentive:i})})})})]})}function bt({dictating:e,dictationText:t}){let{t:n}=j(),r=t.trim();return(0,R.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,R.jsx)(_e,{className:`size-4 shrink-0`,"aria-hidden":!0}),r?(0,R.jsx)(`span`,{dir:`auto`,className:`flex justify-end overflow-hidden text-[12px] whitespace-nowrap text-white/85`,style:{width:Y},children:(0,R.jsx)(`span`,{className:`shrink-0`,children:r})}):(0,R.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:Y},children:n(e===`listening`?`companionSurface.dictating`:`companionSurface.dictatingTranscribing`)})]})}function xt({offer:e}){let{t}=j();return(0,R.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,R.jsx)(_e,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:lt},children:e.reason===`claimed`?t(`companionSurface.offerHeard`,{app:e.app}):t(`companionSurface.offerNowhere`)})]})}function St({watching:e=!1,onWatch:t}){return(0,R.jsx)(R.Fragment,{children:e&&(0,R.jsx)(Nt,{onWatch:t})})}function Ct({watching:e,watchEnabled:t,picking:n,dimmed:r,onWatch:i,onTeach:a}){let{t:o}=j();return t?(0,R.jsx)(Q,{icon:(0,R.jsx)(Te,{className:`size-4`}),label:o(`companionSurface.teach`),dimmed:r,pressed:e||n,onClick:e?i:a??i}):e?(0,R.jsx)(Nt,{onWatch:i}):null}function wt({retro:e,onWatchRetro:t}){let{t:n}=j();return e===`pending`?(0,R.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:n(`companionSurface.summarizing`)}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Q,{icon:(0,R.jsx)(De,{className:`size-4`}),label:n(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{t?.(!0)}}),(0,R.jsx)(Q,{icon:(0,R.jsx)(P,{className:`size-4`}),label:n(`companionSurface.notNow`),showLabel:!0,onClick:()=>{t?.(!1)}})]})}function Tt({dock:e,top:t,width:n,accentHex:r,lit:i,promptRef:a,children:o}){let s=e===`top`;return(0,R.jsxs)(`div`,{ref:a,"data-theme":`dark`,className:`absolute`,style:{left:`50%`,top:t,width:n,transform:s?`translate(-50%, 0)`:`translate(-50%, -100%)`,[s?`paddingTop`:`paddingBottom`]:22},onPointerDown:e=>{e.stopPropagation()},children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-0 bg-[#17181b] shadow-lg shadow-black/40 ${s?`rounded-b-[22px]`:`rounded-t-[22px]`}`}),(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute right-4 left-4 h-px bg-white/10`,style:s?{top:22}:{bottom:22}}),(0,R.jsx)(`span`,{"aria-hidden":!0,className:`companion-working-ring pointer-events-none absolute transition-opacity duration-200`,style:{left:-2,right:-2,top:s?-24:-2,bottom:s?-2:-24,borderRadius:24,opacity:+!!i,"--companion-ring-accent":r}}),(0,R.jsx)(`div`,{className:`relative`,children:o})]})}function Et({call:e,assistantName:t,spotlight:n,watching:r,watchEnabled:i,picking:a,sharing:o,shareEnabled:s,sharePicking:c,annotating:l,marked:u,annotationTool:d,vertical:f,drawToolsPlacement:p,drawToolsRef:m,onAnnotationTool:h,onControl:g,onWatch:_,onTeach:v,onShare:y,onStopShare:b,onAnnotate:x,onClearMarks:S,openPicker:C,voicesPickable:ee,onPicker:w,pickerSide:te,shortcuts:T,promptsDeferred:E=0,onReviewPrompts:ne,lineExtra:D=0}){let{t:O}=j();if(e===void 0)return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Dt,{vertical:f,extra:D,text:t===``?O(`companionSurface.calling`):O(`companionSurface.callingNamed`,{name:t})}),(0,R.jsx)(Ct,{watching:r,watchEnabled:i,picking:a,onWatch:_,onTeach:v}),(0,R.jsx)(Mt,{onControl:g})]});let re=e.detail||e.label,{muted:k,outputMuted:ie}=e,ae=e.assistantName;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Dt,{vertical:f,extra:D,text:re}),E>0?(0,R.jsx)(`button`,{type:`button`,"data-theme":`dark`,"aria-label":O(`companionPopover.pendingBadge`,{count:E}),className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-[var(--system-negative-weak)] text-[13px] text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-hover)] hover:text-white`,onPointerDown:e=>{e.stopPropagation()},onClick:()=>{ne?.()},children:E}):null,(0,R.jsx)(Ct,{watching:r,watchEnabled:i,picking:a,dimmed:n!==void 0,onWatch:_,onTeach:v}),(0,R.jsx)(Ot,{sharing:o,shareEnabled:s,sharePicking:c,shortcut:s?T?.share:void 0,spotlit:n===`share`,dimmed:n!==void 0&&n!==`share`,onShare:y,onStopShare:b}),(0,R.jsx)(kt,{sharing:o,annotating:l,spotlit:n===`draw`,dimmed:n!==void 0&&n!==`draw`,shortcut:s?T?.draw:void 0,tool:d,placement:p,toolsRef:m,onAnnotate:x,onTool:h}),(0,R.jsx)(jt,{sharing:o,marked:u,dimmed:n!==void 0,onClearMarks:S}),(0,R.jsx)(Q,{icon:k?(0,R.jsx)(xe,{className:`size-4`}):(0,R.jsx)(Ae,{className:`size-4`}),label:O(k?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),shortcut:T?.muteMicrophone,control:`mute`,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(k?`unmuteMicrophone`:`muteMicrophone`)}}),(0,R.jsx)(Lt,{picker:`microphones`,label:O(`companionSurface.chooseMicrophone`),side:te,open:C===`microphones`,onPicker:w}),(0,R.jsx)(Q,{icon:ie?(0,R.jsx)(Oe,{className:`size-4`}):(0,R.jsx)(N,{className:`size-4`}),label:ae===``?O(ie?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`):O(ie?`companionSurface.unmuteAssistantNamed`:`companionSurface.muteAssistantNamed`,{name:ae}),shortcut:T?.muteAssistant,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(ie?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),ee?(0,R.jsx)(Lt,{picker:`voices`,label:O(`companionSurface.chooseVoice`),side:te,open:C===`voices`,onPicker:w}):null,(0,R.jsx)(Mt,{dimmed:n!==void 0,onControl:g})]})}function Dt({vertical:e,text:t,extra:n=0}){return e?(0,R.jsx)(`span`,{className:`mt-1 shrink-0 truncate text-[12px] text-white/85`,style:{height:ft,writingMode:`vertical-rl`},"data-label":`line`,children:t}):(0,R.jsx)(`span`,{className:`ml-1 shrink-0 truncate text-[12px] text-white/85`,style:{width:ut+n},"data-label":`line`,children:t})}function Ot({sharing:e,shareEnabled:t,sharePicking:n,shortcut:r,spotlit:i,dimmed:a,onShare:o,onStopShare:s}){let{t:c}=j();return!t&&!e?null:(0,R.jsx)(Q,{icon:(0,R.jsx)(Re,{className:`size-4`}),label:c(`companionSurface.share`),shortcut:r,control:`share`,spotlit:i,dimmed:a,pressed:e||n,onClick:e?s:o})}function kt({sharing:e,annotating:t,shortcut:n,spotlit:r,dimmed:i,tool:a,placement:o,toolsRef:s,onAnnotate:c,onTool:l}){let{t:u}=j();return e?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Q,{icon:(0,R.jsx)(Ee,{className:`size-4`}),label:u(`companionSurface.draw`),shortcut:n,control:`draw`,spotlit:r,dimmed:i,pressed:t,className:`companion-draw-anchor`,onClick:()=>{c?.(!t)}}),t&&a!==void 0&&(0,R.jsx)(At,{tool:a,placement:o,toolsRef:s,onTool:l})]}):null}function At({tool:e,placement:t,toolsRef:n,onTool:r}){let{t:i}=j(),a=[{tool:`freehand`,icon:(0,R.jsx)(Ee,{className:`size-4`}),label:i(`companionSurface.drawFreehand`)},{tool:`line`,icon:(0,R.jsx)(I,{className:`size-4`}),label:i(`companionSurface.drawLine`)},{tool:`box`,icon:(0,R.jsx)(M,{className:`size-4`}),label:i(`companionSurface.drawBox`)},{tool:`circle`,icon:(0,R.jsx)(he,{className:`size-4`}),label:i(`companionSurface.drawCircle`)}];return(0,R.jsx)(`div`,{className:`companion-draw-tools absolute flex items-center gap-0.5 rounded-full border border-white/10 bg-[#17181b]/95 p-0.5 shadow-lg shadow-black/40 companion-draw-tools-${t} ${t===`left`||t===`right`?`flex-col`:``}`,role:`group`,"aria-label":i(`companionSurface.drawTools`),"data-testid":`companion-draw-tools`,ref:n,onPointerDown:e=>{e.stopPropagation()},children:a.map(t=>(0,R.jsx)(Q,{icon:t.icon,label:t.label,pressed:e===t.tool,onClick:()=>{r?.(t.tool)}},t.tool))})}function jt({sharing:e,marked:t,dimmed:n,onClearMarks:r}){let{t:i}=j();return!e||!t?null:(0,R.jsx)(Q,{icon:(0,R.jsx)(Le,{className:`size-4`}),label:i(`companionSurface.clearMarks`),dimmed:n,onClick:()=>{r?.()}})}function Mt({dimmed:e,onControl:t}){let{t:n}=j();return(0,R.jsx)(Q,{icon:(0,R.jsx)(P,{className:`size-4`,strokeWidth:2.5}),label:n(`companionSurface.endSession`),tone:`negative`,dimmed:e,onClick:()=>{t?.(`endSession`)}})}function Nt({onWatch:e}){let{t}=j();return(0,R.jsx)(Q,{icon:(0,R.jsx)(Ce,{className:`size-4`}),label:t(`companionSurface.stopTeaching`),onClick:e})}var Z=`-translate-y-[calc(50%+22px)]`,Pt={right:`translate-x-[calc(50%+22px)]`,left:`-translate-x-[calc(50%+22px)]`},Ft=e=>e===`above`?{className:Z,beak:`down`}:{className:Pt[e],beak:e===`right`?`left`:`right`},It={above:Se,below:ke,left:be,right:ve};function Lt({picker:e,label:t,side:n,open:r,onPicker:i}){if(i===void 0)return null;let a=It[n];return(0,R.jsx)(Q,{icon:(0,R.jsx)(a,{className:`size-3.5`,strokeWidth:2.25}),label:t,pressed:r,narrow:!0,onClick:()=>{i(e)}})}function Q({icon:e,label:t,shortcut:n,tone:r,showLabel:i=!1,pressed:a,spotlit:o=!1,dimmed:s=!1,control:c,narrow:l=!1,className:u=``,onClick:d}){let f=Ft((0,L.useContext)(K));return(0,R.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,"data-control":c,onClick:d,onPointerDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center justify-center gap-1.5 rounded-full text-[12px] transition-[background-color,opacity] duration-200 hover:bg-white/15 ${l?`-mx-1 px-0.5`:`px-2`} ${u} ${a===!0||o?`bg-white/15`:``} ${s?`opacity-35`:``} ${r===`negative`?`text-[#ff6b6b]`:r===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,i?(0,R.jsx)(`span`,{children:t}):(0,R.jsx)(yt,{label:t,shortcut:n,className:`opacity-0 group-hover:opacity-100 ${f.className}`,beak:f.beak,"data-label":`hover`})]})}var Rt=244,zt=192,Bt=3e3,Vt=6,Ht={idle:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.idle.body`},meet:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},key:{title:`companionIntro.talk.title`},share:{title:`companionIntro.share.title`,body:`companionIntro.share.body`},draw:{title:`companionIntro.draw.title`,body:`companionIntro.draw.body`},mute:{title:`companionIntro.mute.title`,body:`companionIntro.mute.body`},try:{title:`companionIntro.try.title`,body:`companionIntro.try.body`}},Ut=e=>{switch(e){case`share`:case`draw`:case`mute`:return e;default:return}},Wt=e=>({phase:`listening`,label:e,accentHex:``,muted:!1,outputMuted:!1,detail:``,approvalRequestId:``,assistantName:``}),Gt={share:`⌥S`,draw:`⌥D`,muteMicrophone:`⌥M`,muteAssistant:`⌥A`},$={share:{icon:(0,R.jsx)(Re,{className:`size-5`}),shortcut:Gt.share},draw:{icon:(0,R.jsx)(Ee,{className:`size-5`}),shortcut:Gt.draw},mute:{icon:(0,R.jsx)(Ae,{className:`size-5`}),shortcut:Gt.muteMicrophone}},Kt=e=>Ut(e)===void 0?null:`call`,qt=(e,t)=>Ut(e)===void 0?null:{call:Wt(t),sharing:e!==`share`};function Jt({beat:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=c,optionsBox:i=c,accentHex:a,assistantName:o,cardRef:s,onAdvance:l,micGranted:u,greeted:d=!1,voiceKeyTaps:f=0}){let{t:p}=j(),m=w.indexOf(e),h=m===w.length-1,g=m<=0,_=Ht[e],y=te[e],b=e===`share`||e===`draw`||e===`mute`?$[e]:void 0,[x,S]=(0,L.useState)(!1);(0,L.useEffect)(()=>{S(!1)},[e]),(0,L.useEffect)(()=>{if(!x)return;let e=setTimeout(()=>{S(!1)},Bt);return()=>{clearTimeout(e)}},[x]),(0,L.useEffect)(()=>{S(!1)},[f]);let[C,ee]=(0,L.useState)(f),[T,E]=(0,L.useState)(e);T===e?f<C&&ee(f):(E(e),ee(f));let ne=Math.min(Math.max(f-C,0),2),{inUnits:D,avatarHalf:O,gap:re,lineAt:k,edgeAt:ie,introStepOff:ae}=Ie(r,i),A=n===`down`||Ut(e)===void 0?D(ae(n)):D(O+re)+22+D(O)+Vt,oe=ie(t,-O),se={top:k(n,0),transform:n===`up`?`translateY(calc(-100% - ${A}px))`:`translateY(${A}px)`};return(0,R.jsxs)(`div`,{ref:s,role:`group`,"aria-label":p(`companionIntro.ariaLabel`),className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:Rt,height:zt,...oe,...se},onPointerDown:e=>{e.stopPropagation()},children:[(0,R.jsx)(`button`,{type:`button`,"aria-label":p(`companionIntro.close`),className:`absolute top-2 right-2 flex size-6 items-center justify-center rounded-full text-white/45 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>l?.(`dismiss`),children:(0,R.jsx)(P,{className:`size-3.5`})}),(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2`,children:[(0,R.jsx)(`p`,{className:`pr-6 text-[13px] leading-tight font-medium text-white`,children:(0,R.jsx)(`span`,{className:`line-clamp-2`,children:`titleNamed`in _&&o!==void 0?p(_.titleNamed,{name:o}):p(_.title)})}),`body`in _?(0,R.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:p(e===`talk`&&d?`companionIntro.talk.greeted`:_.body)}):null,e===`talk`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,R.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0})}),d&&u===!1?(0,R.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:p(`companionIntro.talk.prompt`)}):null]}),e===`key`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:p(x?`companionIntro.key.scolded`:`companionIntro.talk.gesture`)}),(0,R.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,R.jsx)(Yt,{label:`fn`,taps:ne,scolded:x,take:()=>{S(!0)}})})]}),e===`try`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-3`,children:[(0,R.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0}),(0,R.jsx)(Yt,{label:`fn`,taps:ne,scolded:x,take:()=>{S(!0)}})]}),(0,R.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:p(x?`companionIntro.key.scolded`:`companionIntro.try.how`)})]}),b!==void 0&&(0,R.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-4`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,R.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-white/10 text-white/85`,children:b.icon}),(0,R.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:p(`companionIntro.call.click`)})]}),(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,R.jsx)(`span`,{className:`flex h-10 items-center rounded-xl border border-white/15 bg-white/10 px-3 text-[13px] font-medium text-white/85`,children:b.shortcut}),(0,R.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:p(`companionIntro.call.shortcut`)})]})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-2`,children:[(0,R.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:v.map(e=>(0,R.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:e===y?a??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[g?null:(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-3 text-[12px] text-white/60 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>l?.(`back`),children:p(`companionIntro.back`)}),(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>l?.(`next`),children:p(h?`companionIntro.done`:`companionIntro.next`)})]})]})]})}function Yt({label:e,taps:t=0,scolded:n=!1,take:r}){let i=t>=2?`border-emerald-300/90 bg-emerald-400/55 text-emerald-50`:t===1?`border-emerald-400/70 bg-emerald-400/20 text-emerald-100`:`border-white/20 bg-white/10 text-white/85`,a=(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ge,{className:`size-4`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`absolute bottom-1 left-1.5 text-[9px] leading-none opacity-70`,"aria-hidden":!0,children:e})]}),o=`relative inline-flex size-11 items-center justify-center rounded-lg border font-medium shadow-[inset_0_-2px_0_rgba(0,0,0,.4)] transition-[color,background-color,border-color,transform] ${i} ${n?`scale-90 opacity-70`:``}`;return r===void 0?(0,R.jsx)(`span`,{className:o,"aria-label":e,children:a}):(0,R.jsx)(`button`,{type:`button`,className:`${o}${t===0?`hover:border-white/40 hover:bg-white/20`:``}`,"aria-label":e,onClick:r,children:a})}var Xt=3,Zt=2400,Qt=440;function $t(){let{t:e}=j(),[l,p]=(0,L.useState)(`right`),[_,v]=(0,L.useState)(`up`),[w,te]=(0,L.useState)(`bottom`),[E,ie]=(0,L.useState)(c),[A,de]=(0,L.useState)(c),[fe,pe]=(0,L.useState)(),[me,he]=(0,L.useState)(),[ge,_e]=(0,L.useState)(),[M,ve]=(0,L.useState)(null),[ye,be]=(0,L.useState)(!1),[xe,Se]=(0,L.useState)(void 0),[Ce,we]=(0,L.useState)(``),[Te,Ee]=(0,L.useState)(``),[De,N]=(0,L.useState)(!1),[P,Oe]=(0,L.useState)(!1),[ke,Ae]=(0,L.useState)(void 0),[F,Ie]=(0,L.useState)(void 0),[Le,Re]=(0,L.useState)(!1),[I,ze]=(0,L.useState)(void 0),[Be,Ve]=(0,L.useState)(void 0),[He,Ue]=(0,L.useState)(!1),[We,Ge]=(0,L.useState)(!1),[z,Ke]=(0,L.useState)(void 0),[qe,Je]=(0,L.useState)(!1),[V,Ye]=(0,L.useState)(!1),[Xe,H]=(0,L.useState)(!1),[Qe,$e]=(0,L.useState)(!1),[et,tt]=(0,L.useState)(void 0),[U,W]=(0,L.useState)(!1),[G,nt]=(0,L.useState)(`teach`),[rt,it]=(0,L.useState)(null),K=(0,L.useRef)(0),[at,ot]=(0,L.useState)(!1),[q,J]=(0,L.useState)(null),[st,ct]=(0,L.useState)(0),Y=(0,L.useRef)(!1),lt=(0,L.useRef)(null),ut=(0,L.useRef)(null),dt=(0,L.useRef)(null),ft=(0,L.useRef)(null),pt=(0,L.useRef)(null),ht=(0,L.useRef)(null),gt=(0,L.useRef)(null),_t=(0,L.useRef)(null),vt=(0,L.useRef)(!1),yt=(0,L.useCallback)(e=>{_t.current=e,e===null&&vt.current&&(vt.current=!1,Y.current=!1,t(!1))},[]),X=(0,L.useRef)(null),bt=(0,L.useRef)(null),xt=(0,L.useRef)(!1);(0,L.useEffect)(()=>{let e=e=>{p(e.growth),v(e.cardGrowth),te(e.dock??`bottom`),ie(e.avatarBox),de(e.optionsBox??e.avatarBox),pe(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),he(e.character),_e(e.accentHex),ve(e.call),be(e.dialing===!0),Ee(e.assistantName),N(e.working),Oe(e.watching===!0),Se(e.dictating),we(e.dictationText??``),Ae(e.watchRetro),Ie(e.dictationOffer),ze(e.popover),Re(e.voicesPickable===!0),Ve(e.popoverView),Ue(e.watchEnabled===!0),Ge(e.watchTargets===!0),Ke(e.screenShare),Je(e.screenShareEnabled===!0),Ye(e.annotating===!0),H((e.coachmarks?.length??0)>0),$e(e.marksCleared!==void 0),tt(e.annotationTool),J(e.intro),ct(e.voiceKeyTaps??0)},t=s(e);return ce().then(t=>{t&&e(t)}),t},[]),(0,L.useEffect)(()=>()=>{t(!1)},[]);let St=M!==null||ye,Ct=z!==void 0,wt=(0,L.useMemo)(()=>ae()?ue():void 0,[]);(0,L.useEffect)(()=>{St||(K.current+=1,W(!1))},[St]),(0,L.useEffect)(()=>{P&&G===`teach`&&(K.current+=1,W(!1))},[P,G]),(0,L.useEffect)(()=>{Ct&&G===`share`&&(K.current+=1,W(!1))},[Ct,G]);let Tt=(e,t)=>{it(null),nt(e),W(!0);let n=++K.current;b().then(e=>{if(n===K.current){if(e!==null){it(e);return}W(!1),t()}})},Et=U&&rt?.screenRecordingGranted===!1;(0,L.useEffect)(()=>{if(Et)return u(e=>{if(e.screen?.status!==`granted`)return;let t=++K.current;b().then(e=>{t!==K.current||e===null||it(e)})})},[Et]);let Dt=()=>{if(!We){y();return}if(U&&G===`teach`){K.current+=1,W(!1);return}Tt(`teach`,y)},Ot=()=>{if(U&&G===`share`){K.current+=1,W(!1);return}Tt(`share`,()=>void 0)};(0,L.useEffect)(()=>{!U&&Y.current&&(Y.current=!1,t(!1))},[U]),(0,L.useEffect)(()=>{F===void 0&&Y.current&&(Y.current=!1,t(!1))},[F]);let kt=(0,L.useRef)(!1),At=I!==void 0&&Be!==void 0&&Be!==`deferred`&&(M!==null||ye)&&w!==`left`&&w!==`right`,jt=At?I?.id:void 0;(0,L.useLayoutEffect)(()=>{let e=gt.current;if(jt===void 0||e===null)return;let t=()=>{h(jt,e.getBoundingClientRect().height)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[jt,Be]),(0,L.useEffect)(()=>{!At&&kt.current&&(kt.current=!1,Y.current=!1,t(!1))},[At]);let Mt=e=>{if(K.current+=1,W(!1),G===`share`){m(e);return}y(e)},Nt=e=>{Y.current!==e&&(Y.current=e,t(e))},Z=q!==null&&M===null&&!ye,Pt=(0,L.useRef)(Z);(0,L.useEffect)(()=>{Pt.current&&!Z&&(ot(!1),Nt(!1)),Pt.current=Z},[Z]);let Ft=Kt(q),It=Z?qt(q,e(`companionIntro.call.line`)):null,[Lt,Q]=(0,L.useState)(null),Rt=Z&&(q===`talk`||q===`try`),zt=Z&&q===`idle`&&at;(0,L.useEffect)(()=>{zt&&k(`next`)},[zt]);let[Bt,Vt]=(0,L.useState)(!1);(0,L.useEffect)(()=>{Vt(!1)},[q]);let Ht=(0,L.useCallback)(()=>{if(Lt!==!1){k(`try`);return}o(`microphone`).then(e=>{Q(e?.status===`granted`),k(`try`)})},[Lt]);(0,L.useEffect)(()=>{if(!Bt)return;let e=setTimeout(()=>{k(`next`)},Zt);return()=>{clearTimeout(e)}},[Bt]);let Wt=Z&&q===`talk`;(0,L.useEffect)(()=>{if(!Wt)return;let e=()=>{S().then(e=>{Q(e===null?null:e.microphone.status===`granted`)})};e();let t=setInterval(e,2e3);return()=>{clearInterval(t)}},[Wt]);let $=It!==null,Yt=M!==null||ye?`call`:xe===void 0?F===void 0?P?`watching`:ke===void 0?Ft??(at?`hover`:`resting`):`summary`:`offer`:`dictating`,$t=e=>{if(X.current!==null&&e.buttons===0&&(X.current=null,x()),X.current!==null){let{x:t,y:r}=X.current;n(e.screenX-t,e.screenY-r),X.current={x:e.screenX,y:e.screenY};let i=bt.current;i!==null&&Math.abs(e.screenX-i.x)+Math.abs(e.screenY-i.y)>Xt&&(xt.current=!0);return}let t=dt.current;if(!t)return;let r=lt.current?.getBoundingClientRect()??null,i=ut.current?.getBoundingClientRect()??null,a=r!==null&&r.width>0?r:i!==null&&i.width>0?i:null,o=Fe({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:a}),s=ft.current,c=s!==null&&Pe(s.getBoundingClientRect(),e.clientX,e.clientY),l=ht.current,u=l!==null&&Pe(l.getBoundingClientRect(),e.clientX,e.clientY),d=pt.current,f=d!==null&&Pe(d.getBoundingClientRect(),e.clientX,e.clientY),p=gt.current,m=p!==null&&Pe(p.getBoundingClientRect(),e.clientX,e.clientY),h=_t.current,g=h!==null&&Pe(h.getBoundingClientRect(),e.clientX,e.clientY);ot(o),vt.current=g,kt.current=m,Nt(o||c||f||u||g||m)},en=je(M,ge,me),tn=I===void 0||Be!==`deferred`?0:I.kind===`approvals`?I.items.length:1;return(0,R.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:$t,onMouseUp:()=>{X.current!==null&&(X.current=null,x())},onPointerCancel:()=>{X.current!==null&&(X.current=null,x()),ot(!1),Nt(!1)},onMouseLeave:()=>{X.current===null&&(ot(!1),Nt(!1))},children:(0,R.jsx)(mt,{phase:Yt,growth:l,cardGrowth:_,dock:w,avatarBox:E,optionsBox:A,avatarSrc:fe,character:me,hovered:at,accentHex:en,call:M??It?.call??void 0,assistantName:Te,dictating:xe,dictationText:Ce,working:De,watching:P,watchRetro:ke,onWatchRetro:T,dictationOffer:F,offer:F===void 0?null:(0,R.jsx)(Ze,{offer:F,growth:l,cardGrowth:_,avatarBox:E,optionsBox:A,cardRef:ht,onAnswer:e=>{re(e,F.id)}}),watchEnabled:He,spotlight:Ut(q),avatarStaged:Rt,avatarTucked:Z&&q===`idle`,intro:!Z||q===null?null:(0,R.jsx)(Jt,{beat:q,growth:l,cardGrowth:_,avatarBox:E,optionsBox:A,accentHex:en,assistantName:Te===``?void 0:Te,cardRef:ft,micGranted:Lt??void 0,greeted:Bt,voiceKeyTaps:st,onAdvance:e=>{if(e===`try`){Ht();return}k(e)}}),rootRef:lt,restingPillRef:ut,avatarRef:dt,onSurfacePointerDown:e=>{e.button===0&&e.target.closest(`button, a`)===null&&(e.currentTarget.setPointerCapture(e.pointerId),X.current={x:e.screenX,y:e.screenY},bt.current={x:e.screenX,y:e.screenY},xt.current=!1)},onSurfaceContextMenu:e=>{(window.getSelection()?.toString().trim().length??0)>0||(e.preventDefault(),g())},onAvatarClick:()=>{if(!(xt.current||$)){if(Z&&q===`talk`){Vt(!0);return}if(Z&&q===`try`){Ht();return}if(M!==null||ye){D();return}a()}},onWatch:()=>{$||y()},onTeach:$?void 0:Dt,picking:U&&G===`teach`,sharing:It?.sharing??Ct,shareEnabled:$||qe,sharePicking:U&&G===`share`,onShare:$?void 0:Ot,onStopShare:$?void 0:()=>{m()},annotating:V,onAnnotate:$?void 0:e=>{i(e)},marked:Qe&&(Xe||V),onClearMarks:$?void 0:()=>{le()},openPicker:I?.kind===`microphones`||I?.kind===`voices`?I.kind:void 0,voicesPickable:Le,onPicker:!$&&ne()?e=>{d(e)}:void 0,annotationTool:et,onAnnotationTool:$?void 0:e=>{r(e)},drawToolsRef:yt,shortcuts:$?Gt:wt,picker:U?(0,R.jsx)(B,{sources:rt,captureThumbnail:oe,cardGrowth:_,avatarBox:E,optionsBox:A,cardRef:pt,label:G===`share`?e(`companionSurface.sharePicker`):void 0,onPick:Mt,onAllowScreenRecording:()=>{ee(`screen`).catch(()=>void 0)}}):null,prompt:!At||I===void 0?null:Be===`row`&&(I.kind===`approvals`||I.kind===`secret`)?(0,R.jsx)(Me,{popover:I,onAnswer:e=>{O(e,I.id)},onView:e=>{f(I.id,e)}}):(0,R.jsx)(Ne,{attached:!0,popover:I,view:Be??`expanded`,style:{maxHeight:Qt},onAnswer:e=>{O(e,I.id)},onView:e=>{f(I.id,e)},onOpenLink:e=>{se(e)}},I.id),promptRef:gt,promptsDeferred:tn,onReviewPrompts:()=>{I!==void 0&&f(I.id,`expanded`)},onControl:$?void 0:(e,t)=>{C(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{$t as CompanionSurfacePage};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ac as t,Cc as n,Dc as r,Ec as i,Fc as a,Gu as o,Ic as s,Jh as c,Ji as l,Ku as u,Lc as d,Mc as f,NS as p,Nc as m,Oc as h,Pc as g,Pi as _,Qh as v,Rc as y,Sc as b,Tc as x,Uu as S,Vc as C,Wu as ee,Xh as w,Zh as te,_c as T,_n as E,bc as ne,fc as D,gc as O,hc as re,pc as k,sS as ie,uc as ae,vS as A,vc as oe,wc as se,xc as ce,yc as le,zc as ue}from"./app-BBUxTj9g.js";import{f as de,g as fe,j}from"./vendor-ajttH1pP.js";import{t as pe,x as me}from"./react-B9IgSVeK.js";import{Ai as he,Cr as ge,Fa as _e,G as M,Gi as ve,Ka as ye,Ki as be,Tn as xe,Wi as Se,Xr as Ce,Ya as we,Yr as Te,Zt as Ee,bt as De,h as N,i as P,m as Oe,qi as ke,wn as Ae,yn as F}from"./icons-C0wyat6T.js";import{n as je}from"./companion-accent-BYoVCdU1.js";import{n as Me,t as Ne}from"./companion-popover-TujVt-Ar.js";import{n as Pe,r as Fe,t as Ie}from"./companion-layout-33AE1gia.js";var Le=we(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Re=we(`screen-share`,[[`path`,{d:`M13 3H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-3`,key:`i8wdob`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m17 8 5-5`,key:`fqif7o`}],[`path`,{d:`M17 3h5v5`,key:`1o3tu8`}]]),I=we(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),L=e(me(),1),R=pe(),ze=460,Be=3,Ve=88,He=3,Ue=[`screens`,`tabs`,`windows`],We=(e,t)=>t===`screens`?e.displays.length:t===`tabs`?e.tabs.length:e.windows.length,Ge=e=>Ue.find(t=>We(e,t)>0)??`screens`,z=e=>e.kind===`display`?`display-${e.displayId}`:`window-${e.windowId}`;function B({sources:e,captureThumbnail:t,cardGrowth:n=`up`,avatarBox:r=c,optionsBox:i=c,cardRef:a,label:o,onPick:s,onAllowScreenRecording:l}){let{t:u}=j(),{inUnits:d,lineAt:f,introStepOff:m}=Ie(r,i),h=d(m(n)),g={left:`50%`,top:f(n,0),transform:n===`up`?`translate(-50%, calc(-100% - ${h}px))`:`translate(-50%, ${h}px)`},_=e!==null&&e.screenRecordingGranted===!1,v=_?null:e,y=v===null?[]:Ue.filter(e=>We(v,e)>0),b=v!==null&&y.length===0,[x,S]=(0,L.useState)(null),C=v===null?`screens`:x!==null&&y.includes(x)?x:Ge(v),ee=(0,L.useMemo)(()=>v===null?[]:C===`screens`?v.displays.map(e=>{let t={kind:`display`,displayId:e.displayId};return{key:z(t),target:t}}):C===`windows`?v.windows.map(e=>{let t={kind:`window`,windowId:e.windowId};return{key:z(t),target:t}}):[],[C,v]),[w,te]=(0,L.useState)(new Map),T=(0,L.useRef)(new Set),E=(0,L.useRef)(0),ne=(0,L.useRef)(!1);(0,L.useEffect)(()=>(ne.current=!0,()=>{ne.current=!1}),[]),(0,L.useEffect)(()=>{T.current=new Set,E.current+=1,te(new Map),S(null)},[e]);let D=(0,L.useRef)(null);(0,L.useEffect)(()=>{D.current!==null&&(D.current.scrollTop=0)},[C]),(0,L.useEffect)(()=>{if(t!==void 0)for(let{key:e,target:n}of ee){if(T.current.has(e))continue;T.current.add(e);let r=E.current,i=t=>{!ne.current||r!==E.current||te(n=>new Map(n).set(e,t))};t(n).then(i,()=>{i(null)})}},[t,ee]);let O=e=>t===void 0?null:w.get(e),re=e=>u(e===`screens`?`companionSurface.captureScreens`:e===`tabs`?`companionSurface.captureTabs`:`companionSurface.captureWindows`);return(0,R.jsxs)(`div`,{ref:a,role:`group`,"aria-label":o??u(`companionSurface.capturePicker`),"data-companion-capture-picker":!0,"data-theme":`dark`,className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 p-1.5 shadow-lg shadow-black/40`,style:{width:ze,...g},onPointerDown:e=>{e.stopPropagation()},children:[y.length>1&&(0,R.jsx)(ie,{className:`mx-auto mb-1.5 w-auto shrink-0`,items:y.map(e=>({value:e,label:re(e)})),value:C,ariaLabel:u(`companionSurface.captureKind`),onChange:S}),(0,R.jsx)(A,{ref:D,className:`max-h-48 flex-col px-0.5`,size:24,fadeEdges:`end`,hideScrollBar:!0,children:(0,R.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`capture-sources`,children:[e===null&&(0,R.jsx)(Ye,{}),_&&(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-2 py-2`,"data-slot":`capture-needs-grant`,children:[(0,R.jsx)(`span`,{className:`text-[12px] text-white/70`,children:u(`companionSurface.captureScreenRecordingOff`)}),(0,R.jsx)(p,{variant:`primary`,size:`compact`,className:`shrink-0`,onClick:l,children:u(`companionSurface.captureTurnOnScreenRecording`)})]}),v!==null&&C===`screens`&&(0,R.jsx)(Ke,{children:v.displays.map(e=>{let t=u(`companionSurface.captureScreen`,{n:e.index+1}),n=z({kind:`display`,displayId:e.displayId});return(0,R.jsx)(qe,{title:t,ariaLabel:t,answer:O(n),fallback:(0,R.jsx)(F,{className:`size-5 text-white/40`,"aria-hidden":!0}),onClick:()=>{s?.({kind:`display`,displayId:e.displayId})}},n)})}),v!==null&&C===`windows`&&(0,R.jsx)(Ke,{children:v.windows.map(e=>{let t=z({kind:`window`,windowId:e.windowId}),n=e.title===``?e.app:e.title;return(0,R.jsx)(qe,{title:n,ariaLabel:e.title===``?n:`${n} (${e.app})`,answer:O(t),fallback:(0,R.jsx)(V,{icon:e.icon,large:!0}),icon:(0,R.jsx)(V,{icon:e.icon}),onClick:()=>{s?.({kind:`window`,windowId:e.windowId})}},t)})}),v!==null&&C===`tabs`&&(0,R.jsx)(`div`,{className:`flex flex-col`,children:v.tabs.map(e=>(0,R.jsx)(Je,{icon:(0,R.jsx)(V,{icon:e.icon}),title:e.title,onClick:()=>{s?.({kind:`tab`,chromeWindowId:e.chromeWindowId,tabIndex:e.tabIndex})}},`tab-${e.chromeWindowId}-${e.tabIndex}`))}),b&&(0,R.jsx)(`span`,{className:`px-2 py-3 text-[12px] text-white/50`,children:u(`companionSurface.captureNothing`)})]})})]})}function Ke({children:e}){return(0,R.jsx)(`div`,{className:`grid gap-1.5 py-0.5`,style:{gridTemplateColumns:`repeat(${Be}, minmax(0, 1fr))`},children:e})}function qe({title:e,ariaLabel:t,answer:n,fallback:r,icon:i,onClick:a}){return(0,R.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`group flex min-w-0 flex-col gap-1 rounded-lg p-1 text-left transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:a,children:[(0,R.jsx)(`span`,{"data-slot":`capture-preview`,className:`flex items-center justify-center overflow-hidden rounded-md bg-black/40 ring-1 ring-white/10 ${n===void 0?`animate-pulse`:``}`,style:{height:Ve},children:n==null?r:(0,R.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`max-h-full max-w-full object-contain`})}),(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[i,(0,R.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-white/75 group-hover:text-white/90`,children:e})]})]})}function Je({icon:e,title:t,onClick:n}){return(0,R.jsxs)(`button`,{type:`button`,"aria-label":t,"data-slot":`capture-source`,className:`flex h-8 w-full shrink-0 items-center gap-2 rounded-lg px-2 text-left text-[12px] text-white/85 transition-colors outline-none hover:bg-white/10 focus-visible:ring-1 focus-visible:ring-white/40 focus-visible:ring-inset active:bg-white/15`,onClick:n,children:[e,(0,R.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}function V({icon:e,large:t=!1}){return(0,R.jsx)(`span`,{className:`flex shrink-0 items-center justify-center overflow-hidden ring-1 ring-white/10 ${t?`size-7 rounded-lg`:`size-3.5 rounded-[4px]`}`,children:e===void 0?(0,R.jsx)(ye,{className:t?`size-5 text-white/40`:`size-3 text-white/70`,"aria-hidden":!0}):(0,R.jsx)(`img`,{src:e,alt:``,className:`size-full`,draggable:!1})})}function Ye(){return(0,R.jsx)(Ke,{children:Array.from({length:He},(e,t)=>(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 p-1`,"aria-hidden":!0,children:[(0,R.jsx)(`span`,{className:`animate-pulse rounded-md bg-white/10`,style:{height:Ve}}),(0,R.jsx)(`span`,{className:`h-2 animate-pulse rounded-full bg-white/10`,style:{width:t===0?`70%`:`45%`}})]},t))})}var Xe=260;function Ze({offer:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=c,optionsBox:i=c,cardRef:a,onAnswer:o}){let{t:s}=j(),l=e.reason===`claimed`?s(`companionSurface.offerVersion`):s(`companionSurface.offerNowhere`),{inUnits:u,avatarHalf:d,lineAt:f,edgeAt:p,introStepOff:m}=Ie(r,i),h=u(m(n)),g=p(t,-d),_={top:f(n,0),transform:n===`up`?`translateY(calc(-100% - ${h}px))`:`translateY(${h}px)`};return(0,R.jsxs)(`div`,{ref:a,role:`group`,"aria-label":l,"data-companion-dictation-offer":!0,className:`absolute flex flex-col gap-2 rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:Xe,...g,..._},onPointerDown:e=>{e.stopPropagation()},children:[(0,R.jsx)(`p`,{className:`text-[11px] font-medium tracking-wide text-white/45 uppercase select-none`,children:l}),(0,R.jsx)(A,{className:`max-h-40 flex-col`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,R.jsx)(`p`,{dir:`auto`,className:`text-[13px] leading-[1.45] text-white/90`,children:e.text})}),(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1 pt-0.5`,children:[(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/55 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>o?.(`dismiss`),children:e.reason===`claimed`?s(`companionSurface.notNow`):s(`companionSurface.offerDiscard`)}),e.reason===`claimed`?(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-2.5 text-[12px] text-white/70 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>o?.(`quit`),children:s(`companionSurface.offerQuit`,{app:e.app})}):null,(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>o?.(e.reason===`claimed`?`use`:`copy`),children:e.reason===`claimed`?s(`companionSurface.offerUse`):s(`companionSurface.offerCopy`)})]})]})}var H={min:3,max:10},Qe=(e=Math.random)=>{let t=e();return t<1/3?`top`:t<2/3?`topLeft`:`topRight`},$e=1600,et=.22,tt=.04,U=4,W=(e,t)=>{let n=Math.min(.95,Math.max(.25,e.eyeCenterFrac+e.eyeHalfFrac+tt)),r=Math.min(t,24,14/n),i=r*n;return{size:r,exposed:i,clip:{width:r+2*U,height:i+U},rest:i+2}},G=(e,t=Math.random)=>(e.min+t()*(e.max-e.min))*1e3;function nt(e,t=H){let[n,r]=(0,L.useState)(0),{min:i,max:a}=t;return(0,L.useEffect)(()=>{if(!e)return;let t,n=()=>{t=setTimeout(()=>{r(e=>e+1),n()},G({min:i,max:a}))};return n(),()=>{clearTimeout(t)}},[e,i,a]),n}var rt=(e,t,n={width:0,height:0})=>{let r=e===`topLeft`?n.width/4:e===`topRight`?n.width*3/4:n.width/2;return{slot:{width:t.width,height:t.height,bottom:`100%`,left:r-t.width/2}}};function it({character:e,capsule:t,enabled:n,held:r=!1,edge:i,interval:a=H,className:o,style:s}){let c=de(),u=(0,L.useMemo)(()=>E(l,e),[e]),d=nt(n&&!r&&!c&&u!==null,a),[f,p]=(0,L.useState)(!1),[m,h]=(0,L.useState)(`top`);if((0,L.useEffect)(()=>{if(d===0)return;h(Qe()),p(!0);let e=setTimeout(()=>{p(!1)},$e);return()=>{clearTimeout(e)}},[d]),u===null||c)return null;let g=W(u,t.width),v=r||f,y=i??m,b=rt(y,g.clip,t);return(0,R.jsx)(`div`,{className:`companion-peek ${o??``}`,style:{width:t.width,height:t.height,...s},"data-risen":v,"data-edge":y,"aria-hidden":!0,children:(0,R.jsx)(`div`,{className:`absolute`,style:b.slot,children:(0,R.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:(0,R.jsx)(fe.div,{className:`absolute left-1/2`,style:{width:g.size,height:g.size,marginLeft:-g.size/2,top:g.clip.height-g.exposed},initial:{y:g.rest},animate:{y:v?0:g.rest},transition:r?{duration:0}:v?{type:`spring`,stiffness:280,damping:14}:{duration:et,ease:`easeIn`},children:(0,R.jsx)(_,{components:l,traits:e,size:g.size})})})})})}var K=(0,L.createContext)(`above`),at=`#5eead4`,ot=new Set([`transcribing`,`thinking`,`speaking`]),q=28,J={idle:{width:64,height:14},closing:q,rim:2,bloom:4},st=J.idle,ct=(e,t,n)=>[`inset 0 0 0 ${t}px color-mix(in srgb, ${e} 78%, transparent)`,`0 0 ${n}px color-mix(in srgb, ${e} 85%, transparent)`,`0 0 ${n*4}px color-mix(in srgb, ${e} 42%, transparent)`,`0 8px 24px rgba(0, 0, 0, 0.45)`].join(`, `),Y=244,lt=200,ut=120,dt={watching:40,summary:220,dictating:Y+32,offer:lt+32,call:4+ut+180},ft=84,pt={width:28,height:ft+140+20};function mt({phase:e,assistantName:t=``,accentHex:n=at,avatarSrc:r,character:i,hovered:a=!1,growth:o=`right`,avatarBox:s=c,optionsBox:l=c,cardGrowth:u=`up`,dock:d=`bottom`,rootRef:f,restingPillRef:p,avatarRef:m,onSurfacePointerDown:h,onSurfaceContextMenu:g,spotlight:_,avatarStaged:v=!1,avatarTucked:y=!1,onWatch:b,onTeach:x,picking:S=!1,sharing:C=!1,shareEnabled:ee=!1,sharePicking:w=!1,onShare:te,onStopShare:T,annotating:E=!1,annotationTool:ne,onAnnotationTool:D,drawToolsRef:O,onAnnotate:re,marked:k=!1,onClearMarks:ie,openPicker:ae,voicesPickable:A=!1,onPicker:oe,shortcuts:se,onAvatarClick:ce,working:le=!1,watching:ue=!1,watchRetro:fe,onWatchRetro:pe,dictationOffer:me,offer:he,watchEnabled:ge=!1,dictating:_e,dictationText:M=``,call:ve,onControl:ye,intro:be,picker:xe,prompt:Se,promptRef:Ce,promptsDeferred:we=0,onReviewPrompts:Te}){let{t:Ee}=j(),De=e!==`resting`,N=e===`call`||e===`dictating`||e===`offer`||e===`summary`||e===`watching`,P=(0,L.useRef)(null),[Oe,ke]=(0,L.useState)(null),Ae=_===`talk`?void 0:_;(0,L.useEffect)(()=>{if(Ae===void 0){ke(null);return}return _t(P,`[data-control="${Ae}"]`,e=>{ke(e.x)})},[Ae,e,C]);let[F,je]=(0,L.useState)(null);(0,L.useEffect)(()=>{if(!v){je(null);return}return _t(P,`[data-avatar-stage]`,je)},[v,e]);let[Me,Ne]=(0,L.useState)(!1);(0,L.useEffect)(()=>{if(e!==`hover`){Ne(!1);return}let t=setTimeout(()=>{Ne(!0)},500);return()=>{clearTimeout(t)}},[e]);let Pe=be==null?_===`talk`||e===`hover`&&Me:!1,Fe=fe===`pending`,Le=le||ve!==void 0&&ot.has(ve.phase),Re=de(),I=(0,L.useRef)(null),[ze,Be]=(0,L.useState)(null),Ve=(0,L.useRef)(0);(0,L.useLayoutEffect)(()=>{let e=I.current;if(!e)return;let t=()=>{Be({width:e.scrollWidth-Ve.current,height:e.scrollHeight})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let{scale:He,avatarRel:Ue,avatarHalf:We,baseline:Ge,gap:z,inUnits:B,lineAt:Ke,edgeAt:qe}=Ie(s,l),Je=e===`call`,V=Je&&(d===`left`||d===`right`),Ye=V?d===`left`?`right`:`left`:`above`,Xe=N?V?(ze?.width??pt.width)+16:(ze?.width??dt[e])+16:0,Ze=N?(ze?.height??pt.height)+16:0,H=Je&&!V&&Se!=null,Qe=(0,L.useRef)(null),[$e,et]=(0,L.useState)(0);(0,L.useLayoutEffect)(()=>{let e=Qe.current;if(!H||e===null)return;let t=()=>{et(Math.ceil(e.getBoundingClientRect().width/He))};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[H,Se,He]);let tt=H?Math.max(Xe,$e):Xe,U=tt-Xe;(0,L.useLayoutEffect)(()=>{Ve.current=U},[U]);let W=V?`50%`:Ke(u,0),G=qe(o,We+z),nt=s/c,rt=De?{width:J.closing*nt,height:J.closing*nt}:J.idle,it=be!=null,q=Je?{width:tt,...V?{height:Ze}:{},left:`50%`,top:W,transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`}:{width:Xe,...G,top:Ke(u,Ge),transform:`translateY(-100%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},st=F===null?Oe!==null&&!V?`${Oe}px`:Je&&!V?`calc(50% - ${tt/2+B(We+z)}px)`:`50%`:`${F.x}px`,Y=F===null?Oe!==null&&!V?`calc(${W} - ${B(We+z)+22}px)`:V?`calc(50% - ${Ze/2+B(We+z)}px)`:W:`${F.y}px`;return(0,R.jsxs)(`div`,{ref:P,className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/He}%`,height:`${100/He}%`,transform:`scale(${He})`},children:[H?(0,R.jsx)(Tt,{dock:d,top:W,width:tt,accentHex:n,lit:N,promptRef:Ce,children:Se}):null,H?(0,R.jsx)(`div`,{ref:Qe,inert:!0,"aria-hidden":!0,"data-theme":`dark`,className:`pointer-events-none invisible absolute top-0 left-0 w-max max-w-[640px]`,children:Se}):null,(0,R.jsxs)(`div`,{className:`absolute flex cursor-grab items-center rounded-full duration-300 select-none active:cursor-grabbing ${V?`flex-col transition-[width,height] will-change-[width,height]`:`h-11 transition-[width] will-change-[width]`} ${!Je&&o===`left`?`justify-end`:``}`,style:q,onPointerDown:h,onContextMenu:g,ref:f,children:[(0,R.jsx)(`span`,{className:`absolute inset-0 rounded-full transition-opacity duration-200 ${H?`bg-[#17181b]`:`border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40`}`,style:{opacity:+!!N},"aria-hidden":!0}),Je&&(0,R.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 rounded-full transition-opacity duration-200`,style:{opacity:N&&!H?1:0,"--companion-ring-accent":n},"aria-hidden":!0}),(0,R.jsx)(`div`,{className:`relative flex shrink-0 items-center ${V?`flex-col`:`h-11`}`,style:V?{paddingBlock:8,paddingInline:8}:{paddingInline:8},children:(0,R.jsx)(`div`,{className:`flex items-center gap-1 overflow-hidden transition-opacity duration-200 ${V?`min-h-0 flex-col`:`min-w-0`}`,ref:I,inert:!N,style:{opacity:+!!N,transitionDelay:N?`120ms`:`0ms`},children:e===`call`?(0,R.jsx)(K.Provider,{value:Ye,children:(0,R.jsx)(Et,{call:ve,assistantName:t,spotlight:_,watching:ue,watchEnabled:ge,picking:S,sharing:C,shareEnabled:ee,sharePicking:w,annotating:E,marked:k,annotationTool:ne,vertical:V,drawToolsPlacement:V?d===`left`?`right`:`left`:u===`up`?`above`:`below`,drawToolsRef:O,onAnnotationTool:D,onControl:ye,onWatch:b,onTeach:x,onShare:te,onStopShare:T,onAnnotate:re,onClearMarks:ie,openPicker:ae,voicesPickable:A,onPicker:oe,pickerSide:V?d===`left`?`right`:`left`:d===`top`?`below`:`above`,shortcuts:se,promptsDeferred:we,lineExtra:U,onReviewPrompts:Te})}):e===`dictating`&&_e!==void 0?(0,R.jsx)(bt,{dictating:_e,dictationText:M}):e===`summary`&&fe!==void 0?(0,R.jsx)(wt,{retro:fe,onWatchRetro:pe}):e===`offer`&&me!==void 0?(0,R.jsx)(xt,{offer:me}):(0,R.jsx)(St,{watching:ue,onWatch:b})})})]}),(0,R.jsx)(`div`,{className:`absolute cursor-grab active:cursor-grabbing`,style:{width:B(J.idle.width),height:B(J.idle.height),pointerEvents:De?`none`:void 0,left:`50%`,top:W,transform:`translate(-50%, -50%)`},onPointerDown:h,onContextMenu:g,ref:p,"aria-hidden":!0,children:(0,R.jsx)(`div`,{className:`absolute top-1/2 left-1/2 rounded-full transition-[width,height,opacity] duration-300`,style:{width:B(rt.width),height:B(rt.height),transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:Re?`opacity`:void 0,boxShadow:ct(n,B(J.rim),B(J.bloom)),opacity:De||F!==null||it&&!y?0:1}})}),(0,R.jsx)(yt,{className:Pe?`opacity-100`:`opacity-0`,"data-companion-name":Pe?`shown`:`hidden`,style:{left:`50%`,top:W,transform:`translate(-50%, calc(-100% - ${B(We)}px - ${vt}px))`},label:Ee(`companionSurface.talk`)}),(0,R.jsx)(X,{label:Ee(e===`call`?`companionSurface.openVellum`:`companionSurface.talk`),accentHex:n,avatarSrc:r,character:i,attentive:a,busy:Le||ue||Fe,collapsed:!De&&(!it||y),restingScale:c/s,style:{left:st,top:Y,zIndex:F===null?void 0:2,transform:`translate(-50%, -50%)${Ue===1?``:` scale(${Ue})`}`,transition:Re?void 0:Oe===null&&F===null?`left 300ms cubic-bezier(.2,.8,.2,1), top 300ms cubic-bezier(.2,.8,.2,1)`:`left 420ms cubic-bezier(.34,1.56,.64,1), top 420ms cubic-bezier(.34,1.56,.64,1)`},elementRef:m,onPointerDown:h,onContextMenu:g,onClick:ce}),be,xe,he]})}var ht=`rgba(28, 28, 30, 0.55)`,gt=`backdrop-blur-md backdrop-saturate-150`,_t=(e,t,n)=>{let r=0,i=performance.now(),a=()=>{let o=e.current,s=o?.querySelector(t);if(o&&s){let e=o.getBoundingClientRect(),t=s.getBoundingClientRect(),r=e.width===0?1:o.offsetWidth/e.width;n({x:(t.left+t.width/2-e.left)*r,y:(t.top+t.height/2-e.top)*r})}performance.now()-i<500&&(r=requestAnimationFrame(a))};return a(),()=>{cancelAnimationFrame(r)}},vt=4;function yt({className:e,style:t,label:n,shortcut:r,beak:i=`down`,...a}){return(0,R.jsxs)(`span`,{className:`pointer-events-none absolute rounded-md px-2 py-1 text-[11px] leading-4 font-medium whitespace-nowrap text-white/90 shadow-md shadow-black/30 transition-opacity duration-200 ${gt} ${e}`,style:{...t,backgroundColor:ht},"aria-hidden":!0,...a,children:[n,r===void 0?null:(0,R.jsx)(`span`,{className:`ml-1.5 font-normal text-white/60`,"data-shortcut":!0,children:r}),(0,R.jsx)(`span`,{className:`absolute ${i===`down`?`top-full left-1/2 h-1.5 w-2.5 -translate-x-1/2`:i===`left`?`top-1/2 right-full h-2.5 w-1.5 -translate-y-1/2`:`top-1/2 left-full h-2.5 w-1.5 -translate-y-1/2`} ${gt}`,style:{backgroundColor:ht,clipPath:i===`down`?`polygon(0 0, 100% 0, 50% 100%)`:i===`left`?`polygon(100% 0, 100% 100%, 0 50%)`:`polygon(0 0, 0 100%, 100% 50%)`},"aria-hidden":!0})]})}function X({accentHex:e,avatarSrc:t,character:n,busy:r=!1,attentive:i=!1,collapsed:a=!1,restingScale:o=1,label:s,style:c,elementRef:u,onPointerDown:d,onContextMenu:f,onClick:p}){let m=de();return(0,R.jsxs)(`div`,{role:`button`,"aria-label":s,className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:c,ref:u,onPointerDown:d,onContextMenu:f,onClick:p,children:[n===void 0?null:(0,R.jsx)(it,{character:n,capsule:st,enabled:a&&!r,className:`absolute top-1/2 left-1/2 transition-opacity duration-200`,style:{transform:`translate(-50%, -50%) scale(${o})`,opacity:+!!a}}),(0,R.jsx)(`div`,{className:`transition-[opacity,transform] duration-300`,style:{opacity:+!a,transform:a?`scale(0.35)`:`scale(1)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:m?`opacity`:void 0},children:(0,R.jsx)(`div`,{className:`companion-avatar-bob relative grid place-items-center`,style:{animation:m?`none`:void 0},children:n===void 0?t===void 0?(0,R.jsx)(`span`,{className:`relative size-7 rounded-full drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,style:{background:e},"aria-hidden":!0}):(0,R.jsx)(`img`,{src:t,alt:``,draggable:!1,className:`relative size-7 rounded-full object-contain drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)] [-webkit-user-drag:none]`}):(0,R.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,R.jsx)(_,{components:l,traits:n,size:q,isAssistantBusy:r,attentive:i})})})})]})}function bt({dictating:e,dictationText:t}){let{t:n}=j(),r=t.trim();return(0,R.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,R.jsx)(_e,{className:`size-4 shrink-0`,"aria-hidden":!0}),r?(0,R.jsx)(`span`,{dir:`auto`,className:`flex justify-end overflow-hidden text-[12px] whitespace-nowrap text-white/85`,style:{width:Y},children:(0,R.jsx)(`span`,{className:`shrink-0`,children:r})}):(0,R.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:Y},children:n(e===`listening`?`companionSurface.dictating`:`companionSurface.dictatingTranscribing`)})]})}function xt({offer:e}){let{t}=j();return(0,R.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,R.jsx)(_e,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:lt},children:e.reason===`claimed`?t(`companionSurface.offerHeard`,{app:e.app}):t(`companionSurface.offerNowhere`)})]})}function St({watching:e=!1,onWatch:t}){return(0,R.jsx)(R.Fragment,{children:e&&(0,R.jsx)(Nt,{onWatch:t})})}function Ct({watching:e,watchEnabled:t,picking:n,dimmed:r,onWatch:i,onTeach:a}){let{t:o}=j();return t?(0,R.jsx)(Q,{icon:(0,R.jsx)(Te,{className:`size-4`}),label:o(`companionSurface.teach`),dimmed:r,pressed:e||n,onClick:e?i:a??i}):e?(0,R.jsx)(Nt,{onWatch:i}):null}function wt({retro:e,onWatchRetro:t}){let{t:n}=j();return e===`pending`?(0,R.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:n(`companionSurface.summarizing`)}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Q,{icon:(0,R.jsx)(De,{className:`size-4`}),label:n(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{t?.(!0)}}),(0,R.jsx)(Q,{icon:(0,R.jsx)(P,{className:`size-4`}),label:n(`companionSurface.notNow`),showLabel:!0,onClick:()=>{t?.(!1)}})]})}function Tt({dock:e,top:t,width:n,accentHex:r,lit:i,promptRef:a,children:o}){let s=e===`top`;return(0,R.jsxs)(`div`,{ref:a,"data-theme":`dark`,className:`absolute`,style:{left:`50%`,top:t,width:n,transform:s?`translate(-50%, 0)`:`translate(-50%, -100%)`,[s?`paddingTop`:`paddingBottom`]:22},onPointerDown:e=>{e.stopPropagation()},children:[(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-0 bg-[#17181b] shadow-lg shadow-black/40 ${s?`rounded-b-[22px]`:`rounded-t-[22px]`}`}),(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute right-4 left-4 h-px bg-white/10`,style:s?{top:22}:{bottom:22}}),(0,R.jsx)(`span`,{"aria-hidden":!0,className:`companion-working-ring pointer-events-none absolute transition-opacity duration-200`,style:{left:-2,right:-2,top:s?-24:-2,bottom:s?-2:-24,borderRadius:24,opacity:+!!i,"--companion-ring-accent":r}}),(0,R.jsx)(`div`,{className:`relative`,children:o})]})}function Et({call:e,assistantName:t,spotlight:n,watching:r,watchEnabled:i,picking:a,sharing:o,shareEnabled:s,sharePicking:c,annotating:l,marked:u,annotationTool:d,vertical:f,drawToolsPlacement:p,drawToolsRef:m,onAnnotationTool:h,onControl:g,onWatch:_,onTeach:v,onShare:y,onStopShare:b,onAnnotate:x,onClearMarks:S,openPicker:C,voicesPickable:ee,onPicker:w,pickerSide:te,shortcuts:T,promptsDeferred:E=0,onReviewPrompts:ne,lineExtra:D=0}){let{t:O}=j();if(e===void 0)return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Dt,{vertical:f,extra:D,text:t===``?O(`companionSurface.calling`):O(`companionSurface.callingNamed`,{name:t})}),(0,R.jsx)(Ct,{watching:r,watchEnabled:i,picking:a,onWatch:_,onTeach:v}),(0,R.jsx)(Mt,{onControl:g})]});let re=e.detail||e.label,{muted:k,outputMuted:ie}=e,ae=e.assistantName;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Dt,{vertical:f,extra:D,text:re}),E>0?(0,R.jsx)(`button`,{type:`button`,"data-theme":`dark`,"aria-label":O(`companionPopover.pendingBadge`,{count:E}),className:`flex size-7 shrink-0 items-center justify-center rounded-full bg-[var(--system-negative-weak)] text-[13px] text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-hover)] hover:text-white`,onPointerDown:e=>{e.stopPropagation()},onClick:()=>{ne?.()},children:E}):null,(0,R.jsx)(Ct,{watching:r,watchEnabled:i,picking:a,dimmed:n!==void 0,onWatch:_,onTeach:v}),(0,R.jsx)(Ot,{sharing:o,shareEnabled:s,sharePicking:c,shortcut:s?T?.share:void 0,spotlit:n===`share`,dimmed:n!==void 0&&n!==`share`,onShare:y,onStopShare:b}),(0,R.jsx)(kt,{sharing:o,annotating:l,spotlit:n===`draw`,dimmed:n!==void 0&&n!==`draw`,shortcut:s?T?.draw:void 0,tool:d,placement:p,toolsRef:m,onAnnotate:x,onTool:h}),(0,R.jsx)(jt,{sharing:o,marked:u,dimmed:n!==void 0,onClearMarks:S}),(0,R.jsx)(Q,{icon:k?(0,R.jsx)(xe,{className:`size-4`}):(0,R.jsx)(Ae,{className:`size-4`}),label:O(k?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),shortcut:T?.muteMicrophone,control:`mute`,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(k?`unmuteMicrophone`:`muteMicrophone`)}}),(0,R.jsx)(Lt,{picker:`microphones`,label:O(`companionSurface.chooseMicrophone`),side:te,open:C===`microphones`,onPicker:w}),(0,R.jsx)(Q,{icon:ie?(0,R.jsx)(Oe,{className:`size-4`}):(0,R.jsx)(N,{className:`size-4`}),label:ae===``?O(ie?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`):O(ie?`companionSurface.unmuteAssistantNamed`:`companionSurface.muteAssistantNamed`,{name:ae}),shortcut:T?.muteAssistant,spotlit:n===`mute`,dimmed:n!==void 0&&n!==`mute`,onClick:()=>{g?.(ie?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),ee?(0,R.jsx)(Lt,{picker:`voices`,label:O(`companionSurface.chooseVoice`),side:te,open:C===`voices`,onPicker:w}):null,(0,R.jsx)(Mt,{dimmed:n!==void 0,onControl:g})]})}function Dt({vertical:e,text:t,extra:n=0}){return e?(0,R.jsx)(`span`,{className:`mt-1 shrink-0 truncate text-[12px] text-white/85`,style:{height:ft,writingMode:`vertical-rl`},"data-label":`line`,children:t}):(0,R.jsx)(`span`,{className:`ml-1 shrink-0 truncate text-[12px] text-white/85`,style:{width:ut+n},"data-label":`line`,children:t})}function Ot({sharing:e,shareEnabled:t,sharePicking:n,shortcut:r,spotlit:i,dimmed:a,onShare:o,onStopShare:s}){let{t:c}=j();return!t&&!e?null:(0,R.jsx)(Q,{icon:(0,R.jsx)(Re,{className:`size-4`}),label:c(`companionSurface.share`),shortcut:r,control:`share`,spotlit:i,dimmed:a,pressed:e||n,onClick:e?s:o})}function kt({sharing:e,annotating:t,shortcut:n,spotlit:r,dimmed:i,tool:a,placement:o,toolsRef:s,onAnnotate:c,onTool:l}){let{t:u}=j();return e?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Q,{icon:(0,R.jsx)(Ee,{className:`size-4`}),label:u(`companionSurface.draw`),shortcut:n,control:`draw`,spotlit:r,dimmed:i,pressed:t,className:`companion-draw-anchor`,onClick:()=>{c?.(!t)}}),t&&a!==void 0&&(0,R.jsx)(At,{tool:a,placement:o,toolsRef:s,onTool:l})]}):null}function At({tool:e,placement:t,toolsRef:n,onTool:r}){let{t:i}=j(),a=[{tool:`freehand`,icon:(0,R.jsx)(Ee,{className:`size-4`}),label:i(`companionSurface.drawFreehand`)},{tool:`line`,icon:(0,R.jsx)(I,{className:`size-4`}),label:i(`companionSurface.drawLine`)},{tool:`box`,icon:(0,R.jsx)(M,{className:`size-4`}),label:i(`companionSurface.drawBox`)},{tool:`circle`,icon:(0,R.jsx)(he,{className:`size-4`}),label:i(`companionSurface.drawCircle`)}];return(0,R.jsx)(`div`,{className:`companion-draw-tools absolute flex items-center gap-0.5 rounded-full border border-white/10 bg-[#17181b]/95 p-0.5 shadow-lg shadow-black/40 companion-draw-tools-${t} ${t===`left`||t===`right`?`flex-col`:``}`,role:`group`,"aria-label":i(`companionSurface.drawTools`),"data-testid":`companion-draw-tools`,ref:n,onPointerDown:e=>{e.stopPropagation()},children:a.map(t=>(0,R.jsx)(Q,{icon:t.icon,label:t.label,pressed:e===t.tool,onClick:()=>{r?.(t.tool)}},t.tool))})}function jt({sharing:e,marked:t,dimmed:n,onClearMarks:r}){let{t:i}=j();return!e||!t?null:(0,R.jsx)(Q,{icon:(0,R.jsx)(Le,{className:`size-4`}),label:i(`companionSurface.clearMarks`),dimmed:n,onClick:()=>{r?.()}})}function Mt({dimmed:e,onControl:t}){let{t:n}=j();return(0,R.jsx)(Q,{icon:(0,R.jsx)(P,{className:`size-4`,strokeWidth:2.5}),label:n(`companionSurface.endSession`),tone:`negative`,dimmed:e,onClick:()=>{t?.(`endSession`)}})}function Nt({onWatch:e}){let{t}=j();return(0,R.jsx)(Q,{icon:(0,R.jsx)(Ce,{className:`size-4`}),label:t(`companionSurface.stopTeaching`),onClick:e})}var Z=`-translate-y-[calc(50%+22px)]`,Pt={right:`translate-x-[calc(50%+22px)]`,left:`-translate-x-[calc(50%+22px)]`},Ft=e=>e===`above`?{className:Z,beak:`down`}:{className:Pt[e],beak:e===`right`?`left`:`right`},It={above:Se,below:ke,left:be,right:ve};function Lt({picker:e,label:t,side:n,open:r,onPicker:i}){if(i===void 0)return null;let a=It[n];return(0,R.jsx)(Q,{icon:(0,R.jsx)(a,{className:`size-3.5`,strokeWidth:2.25}),label:t,pressed:r,narrow:!0,onClick:()=>{i(e)}})}function Q({icon:e,label:t,shortcut:n,tone:r,showLabel:i=!1,pressed:a,spotlit:o=!1,dimmed:s=!1,control:c,narrow:l=!1,className:u=``,onClick:d}){let f=Ft((0,L.useContext)(K));return(0,R.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,"data-control":c,onClick:d,onPointerDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center justify-center gap-1.5 rounded-full text-[12px] transition-[background-color,opacity] duration-200 hover:bg-white/15 ${l?`-mx-1 px-0.5`:`px-2`} ${u} ${a===!0||o?`bg-white/15`:``} ${s?`opacity-35`:``} ${r===`negative`?`text-[#ff6b6b]`:r===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,i?(0,R.jsx)(`span`,{children:t}):(0,R.jsx)(yt,{label:t,shortcut:n,className:`opacity-0 group-hover:opacity-100 ${f.className}`,beak:f.beak,"data-label":`hover`})]})}var Rt=244,zt=192,Bt=3e3,Vt=6,Ht={idle:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.idle.body`},meet:{title:`companionIntro.idle.title`,titleNamed:`companionIntro.idle.titleNamed`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},key:{title:`companionIntro.talk.title`},share:{title:`companionIntro.share.title`,body:`companionIntro.share.body`},draw:{title:`companionIntro.draw.title`,body:`companionIntro.draw.body`},mute:{title:`companionIntro.mute.title`,body:`companionIntro.mute.body`},try:{title:`companionIntro.try.title`,body:`companionIntro.try.body`}},Ut=e=>{switch(e){case`share`:case`draw`:case`mute`:return e;default:return}},Wt=e=>({phase:`listening`,label:e,accentHex:``,muted:!1,outputMuted:!1,detail:``,approvalRequestId:``,assistantName:``}),Gt={share:`⌥S`,draw:`⌥D`,muteMicrophone:`⌥M`,muteAssistant:`⌥A`},$={share:{icon:(0,R.jsx)(Re,{className:`size-5`}),shortcut:Gt.share},draw:{icon:(0,R.jsx)(Ee,{className:`size-5`}),shortcut:Gt.draw},mute:{icon:(0,R.jsx)(Ae,{className:`size-5`}),shortcut:Gt.muteMicrophone}},Kt=e=>Ut(e)===void 0?null:`call`,qt=(e,t)=>Ut(e)===void 0?null:{call:Wt(t),sharing:e!==`share`};function Jt({beat:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=c,optionsBox:i=c,accentHex:a,assistantName:o,cardRef:s,onAdvance:l,micGranted:u,greeted:d=!1,voiceKeyTaps:f=0}){let{t:p}=j(),m=w.indexOf(e),h=m===w.length-1,g=m<=0,_=Ht[e],y=te[e],b=e===`share`||e===`draw`||e===`mute`?$[e]:void 0,[x,S]=(0,L.useState)(!1);(0,L.useEffect)(()=>{S(!1)},[e]),(0,L.useEffect)(()=>{if(!x)return;let e=setTimeout(()=>{S(!1)},Bt);return()=>{clearTimeout(e)}},[x]),(0,L.useEffect)(()=>{S(!1)},[f]);let[C,ee]=(0,L.useState)(f),[T,E]=(0,L.useState)(e);T===e?f<C&&ee(f):(E(e),ee(f));let ne=Math.min(Math.max(f-C,0),2),{inUnits:D,avatarHalf:O,gap:re,lineAt:k,edgeAt:ie,introStepOff:ae}=Ie(r,i),A=n===`down`||Ut(e)===void 0?D(ae(n)):D(O+re)+22+D(O)+Vt,oe=ie(t,-O),se={top:k(n,0),transform:n===`up`?`translateY(calc(-100% - ${A}px))`:`translateY(${A}px)`};return(0,R.jsxs)(`div`,{ref:s,role:`group`,"aria-label":p(`companionIntro.ariaLabel`),className:`absolute flex flex-col rounded-2xl border border-white/10 bg-[#17181b]/95 px-3.5 py-3 shadow-lg shadow-black/40`,style:{width:Rt,height:zt,...oe,...se},onPointerDown:e=>{e.stopPropagation()},children:[(0,R.jsx)(`button`,{type:`button`,"aria-label":p(`companionIntro.close`),className:`absolute top-2 right-2 flex size-6 items-center justify-center rounded-full text-white/45 transition-colors hover:bg-white/10 hover:text-white/80`,onClick:()=>l?.(`dismiss`),children:(0,R.jsx)(P,{className:`size-3.5`})}),(0,R.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2`,children:[(0,R.jsx)(`p`,{className:`pr-6 text-[13px] leading-tight font-medium text-white`,children:(0,R.jsx)(`span`,{className:`line-clamp-2`,children:`titleNamed`in _&&o!==void 0?p(_.titleNamed,{name:o}):p(_.title)})}),`body`in _?(0,R.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:p(e===`talk`&&d?`companionIntro.talk.greeted`:_.body)}):null,e===`talk`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,R.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0})}),d&&u===!1?(0,R.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:p(`companionIntro.talk.prompt`)}):null]}),e===`key`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:p(x?`companionIntro.key.scolded`:`companionIntro.talk.gesture`)}),(0,R.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,R.jsx)(Yt,{label:`fn`,taps:ne,scolded:x,take:()=>{S(!0)}})})]}),e===`try`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-3`,children:[(0,R.jsx)(`span`,{"data-avatar-stage":!0,className:`block size-11`,"aria-hidden":!0}),(0,R.jsx)(Yt,{label:`fn`,taps:ne,scolded:x,take:()=>{S(!0)}})]}),(0,R.jsx)(`p`,{className:`text-center text-[11px] leading-tight text-white/45`,children:p(x?`companionIntro.key.scolded`:`companionIntro.try.how`)})]}),b!==void 0&&(0,R.jsxs)(`div`,{className:`flex flex-1 items-center justify-center gap-4`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,R.jsx)(`span`,{className:`flex size-10 items-center justify-center rounded-xl bg-white/10 text-white/85`,children:b.icon}),(0,R.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:p(`companionIntro.call.click`)})]}),(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-1.5`,children:[(0,R.jsx)(`span`,{className:`flex h-10 items-center rounded-xl border border-white/15 bg-white/10 px-3 text-[13px] font-medium text-white/85`,children:b.shortcut}),(0,R.jsx)(`span`,{className:`text-[10px] leading-none text-white/40`,children:p(`companionIntro.call.shortcut`)})]})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2 pt-2`,children:[(0,R.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:v.map(e=>(0,R.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:e===y?a??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[g?null:(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full px-3 text-[12px] text-white/60 transition-colors hover:bg-white/10 hover:text-white`,onClick:()=>l?.(`back`),children:p(`companionIntro.back`)}),(0,R.jsx)(`button`,{type:`button`,className:`h-7 rounded-full bg-white/15 px-3 text-[12px] text-white transition-colors hover:bg-white/25`,onClick:()=>l?.(`next`),children:p(h?`companionIntro.done`:`companionIntro.next`)})]})]})]})}function Yt({label:e,taps:t=0,scolded:n=!1,take:r}){let i=t>=2?`border-emerald-300/90 bg-emerald-400/55 text-emerald-50`:t===1?`border-emerald-400/70 bg-emerald-400/20 text-emerald-100`:`border-white/20 bg-white/10 text-white/85`,a=(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ge,{className:`size-4`,"aria-hidden":!0}),(0,R.jsx)(`span`,{className:`absolute bottom-1 left-1.5 text-[9px] leading-none opacity-70`,"aria-hidden":!0,children:e})]}),o=`relative inline-flex size-11 items-center justify-center rounded-lg border font-medium shadow-[inset_0_-2px_0_rgba(0,0,0,.4)] transition-[color,background-color,border-color,transform] ${i} ${n?`scale-90 opacity-70`:``}`;return r===void 0?(0,R.jsx)(`span`,{className:o,"aria-label":e,children:a}):(0,R.jsx)(`button`,{type:`button`,className:`${o}${t===0?`hover:border-white/40 hover:bg-white/20`:``}`,"aria-label":e,onClick:r,children:a})}var Xt=3,Zt=2400,Qt=440;function $t(){let{t:e}=j(),[l,p]=(0,L.useState)(`right`),[_,v]=(0,L.useState)(`up`),[w,te]=(0,L.useState)(`bottom`),[E,ie]=(0,L.useState)(c),[A,de]=(0,L.useState)(c),[fe,pe]=(0,L.useState)(),[me,he]=(0,L.useState)(),[ge,_e]=(0,L.useState)(),[M,ve]=(0,L.useState)(null),[ye,be]=(0,L.useState)(!1),[xe,Se]=(0,L.useState)(void 0),[Ce,we]=(0,L.useState)(``),[Te,Ee]=(0,L.useState)(``),[De,N]=(0,L.useState)(!1),[P,Oe]=(0,L.useState)(!1),[ke,Ae]=(0,L.useState)(void 0),[F,Ie]=(0,L.useState)(void 0),[Le,Re]=(0,L.useState)(!1),[I,ze]=(0,L.useState)(void 0),[Be,Ve]=(0,L.useState)(void 0),[He,Ue]=(0,L.useState)(!1),[We,Ge]=(0,L.useState)(!1),[z,Ke]=(0,L.useState)(void 0),[qe,Je]=(0,L.useState)(!1),[V,Ye]=(0,L.useState)(!1),[Xe,H]=(0,L.useState)(!1),[Qe,$e]=(0,L.useState)(!1),[et,tt]=(0,L.useState)(void 0),[U,W]=(0,L.useState)(!1),[G,nt]=(0,L.useState)(`teach`),[rt,it]=(0,L.useState)(null),K=(0,L.useRef)(0),[at,ot]=(0,L.useState)(!1),[q,J]=(0,L.useState)(null),[st,ct]=(0,L.useState)(0),Y=(0,L.useRef)(!1),lt=(0,L.useRef)(null),ut=(0,L.useRef)(null),dt=(0,L.useRef)(null),ft=(0,L.useRef)(null),pt=(0,L.useRef)(null),ht=(0,L.useRef)(null),gt=(0,L.useRef)(null),_t=(0,L.useRef)(null),vt=(0,L.useRef)(!1),yt=(0,L.useCallback)(e=>{_t.current=e,e===null&&vt.current&&(vt.current=!1,Y.current=!1,t(!1))},[]),X=(0,L.useRef)(null),bt=(0,L.useRef)(null),xt=(0,L.useRef)(!1);(0,L.useEffect)(()=>{let e=e=>{p(e.growth),v(e.cardGrowth),te(e.dock??`bottom`),ie(e.avatarBox),de(e.optionsBox??e.avatarBox),pe(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),he(e.character),_e(e.accentHex),ve(e.call),be(e.dialing===!0),Ee(e.assistantName),N(e.working),Oe(e.watching===!0),Se(e.dictating),we(e.dictationText??``),Ae(e.watchRetro),Ie(e.dictationOffer),ze(e.popover),Re(e.voicesPickable===!0),Ve(e.popoverView),Ue(e.watchEnabled===!0),Ge(e.watchTargets===!0),Ke(e.screenShare),Je(e.screenShareEnabled===!0),Ye(e.annotating===!0),H((e.coachmarks?.length??0)>0),$e(e.marksCleared!==void 0),tt(e.annotationTool),J(e.intro),ct(e.voiceKeyTaps??0)},t=s(e);return ce().then(t=>{t&&e(t)}),t},[]),(0,L.useEffect)(()=>()=>{t(!1)},[]);let St=M!==null||ye,Ct=z!==void 0,wt=(0,L.useMemo)(()=>ae()?ue():void 0,[]);(0,L.useEffect)(()=>{St||(K.current+=1,W(!1))},[St]),(0,L.useEffect)(()=>{P&&G===`teach`&&(K.current+=1,W(!1))},[P,G]),(0,L.useEffect)(()=>{Ct&&G===`share`&&(K.current+=1,W(!1))},[Ct,G]);let Tt=(e,t)=>{it(null),nt(e),W(!0);let n=++K.current;b().then(e=>{if(n===K.current){if(e!==null){it(e);return}W(!1),t()}})},Et=U&&rt?.screenRecordingGranted===!1;(0,L.useEffect)(()=>{if(Et)return u(e=>{if(e.screen?.status!==`granted`)return;let t=++K.current;b().then(e=>{t!==K.current||e===null||it(e)})})},[Et]);let Dt=()=>{if(!We){y();return}if(U&&G===`teach`){K.current+=1,W(!1);return}Tt(`teach`,y)},Ot=()=>{if(U&&G===`share`){K.current+=1,W(!1);return}Tt(`share`,()=>void 0)};(0,L.useEffect)(()=>{!U&&Y.current&&(Y.current=!1,t(!1))},[U]),(0,L.useEffect)(()=>{F===void 0&&Y.current&&(Y.current=!1,t(!1))},[F]);let kt=(0,L.useRef)(!1),At=I!==void 0&&Be!==void 0&&Be!==`deferred`&&(M!==null||ye)&&w!==`left`&&w!==`right`,jt=At?I?.id:void 0;(0,L.useLayoutEffect)(()=>{let e=gt.current;if(jt===void 0||e===null)return;let t=()=>{h(jt,e.getBoundingClientRect().height)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[jt,Be]),(0,L.useEffect)(()=>{!At&&kt.current&&(kt.current=!1,Y.current=!1,t(!1))},[At]);let Mt=e=>{if(K.current+=1,W(!1),G===`share`){m(e);return}y(e)},Nt=e=>{Y.current!==e&&(Y.current=e,t(e))},Z=q!==null&&M===null&&!ye,Pt=(0,L.useRef)(Z);(0,L.useEffect)(()=>{Pt.current&&!Z&&(ot(!1),Nt(!1)),Pt.current=Z},[Z]);let Ft=Kt(q),It=Z?qt(q,e(`companionIntro.call.line`)):null,[Lt,Q]=(0,L.useState)(null),Rt=Z&&(q===`talk`||q===`try`),zt=Z&&q===`idle`&&at;(0,L.useEffect)(()=>{zt&&k(`next`)},[zt]);let[Bt,Vt]=(0,L.useState)(!1);(0,L.useEffect)(()=>{Vt(!1)},[q]);let Ht=(0,L.useCallback)(()=>{if(Lt!==!1){k(`try`);return}o(`microphone`).then(e=>{Q(e?.status===`granted`),k(`try`)})},[Lt]);(0,L.useEffect)(()=>{if(!Bt)return;let e=setTimeout(()=>{k(`next`)},Zt);return()=>{clearTimeout(e)}},[Bt]);let Wt=Z&&q===`talk`;(0,L.useEffect)(()=>{if(!Wt)return;let e=()=>{S().then(e=>{Q(e===null?null:e.microphone.status===`granted`)})};e();let t=setInterval(e,2e3);return()=>{clearInterval(t)}},[Wt]);let $=It!==null,Yt=M!==null||ye?`call`:xe===void 0?F===void 0?P?`watching`:ke===void 0?Ft??(at?`hover`:`resting`):`summary`:`offer`:`dictating`,$t=e=>{if(X.current!==null&&e.buttons===0&&(X.current=null,x()),X.current!==null){let{x:t,y:r}=X.current;n(e.screenX-t,e.screenY-r),X.current={x:e.screenX,y:e.screenY};let i=bt.current;i!==null&&Math.abs(e.screenX-i.x)+Math.abs(e.screenY-i.y)>Xt&&(xt.current=!0);return}let t=dt.current;if(!t)return;let r=lt.current?.getBoundingClientRect()??null,i=ut.current?.getBoundingClientRect()??null,a=r!==null&&r.width>0?r:i!==null&&i.width>0?i:null,o=Fe({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:a}),s=ft.current,c=s!==null&&Pe(s.getBoundingClientRect(),e.clientX,e.clientY),l=ht.current,u=l!==null&&Pe(l.getBoundingClientRect(),e.clientX,e.clientY),d=pt.current,f=d!==null&&Pe(d.getBoundingClientRect(),e.clientX,e.clientY),p=gt.current,m=p!==null&&Pe(p.getBoundingClientRect(),e.clientX,e.clientY),h=_t.current,g=h!==null&&Pe(h.getBoundingClientRect(),e.clientX,e.clientY);ot(o),vt.current=g,kt.current=m,Nt(o||c||f||u||g||m)},en=je(M,ge,me),tn=I===void 0||Be!==`deferred`?0:I.kind===`approvals`?I.items.length:1;return(0,R.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:$t,onMouseUp:()=>{X.current!==null&&(X.current=null,x())},onPointerCancel:()=>{X.current!==null&&(X.current=null,x()),ot(!1),Nt(!1)},onMouseLeave:()=>{X.current===null&&(ot(!1),Nt(!1))},children:(0,R.jsx)(mt,{phase:Yt,growth:l,cardGrowth:_,dock:w,avatarBox:E,optionsBox:A,avatarSrc:fe,character:me,hovered:at,accentHex:en,call:M??It?.call??void 0,assistantName:Te,dictating:xe,dictationText:Ce,working:De,watching:P,watchRetro:ke,onWatchRetro:T,dictationOffer:F,offer:F===void 0?null:(0,R.jsx)(Ze,{offer:F,growth:l,cardGrowth:_,avatarBox:E,optionsBox:A,cardRef:ht,onAnswer:e=>{re(e,F.id)}}),watchEnabled:He,spotlight:Ut(q),avatarStaged:Rt,avatarTucked:Z&&q===`idle`,intro:!Z||q===null?null:(0,R.jsx)(Jt,{beat:q,growth:l,cardGrowth:_,avatarBox:E,optionsBox:A,accentHex:en,assistantName:Te===``?void 0:Te,cardRef:ft,micGranted:Lt??void 0,greeted:Bt,voiceKeyTaps:st,onAdvance:e=>{if(e===`try`){Ht();return}k(e)}}),rootRef:lt,restingPillRef:ut,avatarRef:dt,onSurfacePointerDown:e=>{e.button===0&&e.target.closest(`button, a`)===null&&(e.currentTarget.setPointerCapture(e.pointerId),X.current={x:e.screenX,y:e.screenY},bt.current={x:e.screenX,y:e.screenY},xt.current=!1)},onSurfaceContextMenu:e=>{(window.getSelection()?.toString().trim().length??0)>0||(e.preventDefault(),g())},onAvatarClick:()=>{if(!(xt.current||$)){if(Z&&q===`talk`){Vt(!0);return}if(Z&&q===`try`){Ht();return}if(M!==null||ye){D();return}a()}},onWatch:()=>{$||y()},onTeach:$?void 0:Dt,picking:U&&G===`teach`,sharing:It?.sharing??Ct,shareEnabled:$||qe,sharePicking:U&&G===`share`,onShare:$?void 0:Ot,onStopShare:$?void 0:()=>{m()},annotating:V,onAnnotate:$?void 0:e=>{i(e)},marked:Qe&&(Xe||V),onClearMarks:$?void 0:()=>{le()},openPicker:I?.kind===`microphones`||I?.kind===`voices`?I.kind:void 0,voicesPickable:Le,onPicker:!$&&ne()?e=>{d(e)}:void 0,annotationTool:et,onAnnotationTool:$?void 0:e=>{r(e)},drawToolsRef:yt,shortcuts:$?Gt:wt,picker:U?(0,R.jsx)(B,{sources:rt,captureThumbnail:oe,cardGrowth:_,avatarBox:E,optionsBox:A,cardRef:pt,label:G===`share`?e(`companionSurface.sharePicker`):void 0,onPick:Mt,onAllowScreenRecording:()=>{ee(`screen`).catch(()=>void 0)}}):null,prompt:!At||I===void 0?null:Be===`row`&&(I.kind===`approvals`||I.kind===`secret`)?(0,R.jsx)(Me,{popover:I,onAnswer:e=>{O(e,I.id)},onView:e=>{f(I.id,e)}}):(0,R.jsx)(Ne,{attached:!0,popover:I,view:Be??`expanded`,style:{maxHeight:Qt},onAnswer:e=>{O(e,I.id)},onView:e=>{f(I.id,e)},onOpenLink:e=>{se(e)}},I.id),promptRef:gt,promptsDeferred:tn,onReviewPrompts:()=>{I!==void 0&&f(I.id,`expanded`)},onControl:$?void 0:(e,t)=>{C(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{$t as CompanionSurfacePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ic as t,Kh as n,kc as r,mc as i,qh as a,xc as o}from"./app-BfK0IQIk.js";import{j as s}from"./vendor-ajttH1pP.js";import{t as c,x as l}from"./react-B9IgSVeK.js";import{n as u}from"./companion-accent-DDGqoGt7.js";var d=e(l(),1);function f(e){let t=e>>>0;return()=>{t=t+1831565813>>>0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}function p(e,t){return Math.round(e*1e3)*73856093^Math.round(t*1e3)*19349663}function m(e,t){if(e.length<2)return``;let n=n=>t?e[(n+e.length)%e.length]:e[Math.min(Math.max(n,0),e.length-1)],r=n(0),i=`M ${h(r.x)} ${h(r.y)}`,a=t?e.length:e.length-1;for(let e=0;e<a;e+=1){let t=n(e-1),r=n(e),a=n(e+1),o=n(e+2),s={x:r.x+(a.x-t.x)/6,y:r.y+(a.y-t.y)/6},c={x:a.x-(o.x-r.x)/6,y:a.y-(o.y-r.y)/6};i+=` C ${h(s.x)} ${h(s.y)}, ${h(c.x)} ${h(c.y)}, ${h(a.x)} ${h(a.y)}`}return t?`${i} Z`:i}function h(e){return Math.round(e*100)/100}var g=.09,_=.05,v=.028;function y(e){return Math.min(Math.max(e,0),g)}var b=1.5;b-Math.SQRT2*(b-1);function x(e,t){let n=Math.min(t*b,Math.min(e.width,e.height)/2+t),r=n-t,i=r,a=e.width-r,o=r,s=e.height-r,c={x:Math.max(a-i,0),y:Math.max(s-o,0)},l=Math.PI*n/2,u=[l,c.x,l,c.y,l,c.x,l,c.y],d=u.reduce((e,t)=>e+t,0),f=[{centre:{x:i,y:o},from:Math.PI},{centre:{x:a,y:o},from:-Math.PI/2},{centre:{x:a,y:s},from:0},{centre:{x:i,y:s},from:Math.PI/2}];return{at:e=>{let t=e%1*d;t<0&&(t+=d);for(let e=0;e<u.length;e+=1){let r=u[e];if(t>r&&e<u.length-1){t-=r;continue}let c=r===0?0:Math.min(t/r,1),l=f[e/2];if(e%2==0){let e=l.from+Math.PI/2*c;return{x:l.centre.x+Math.cos(e)*n,y:l.centre.y+Math.sin(e)*n}}let[d,p]=[[{x:i,y:o-n},{x:a,y:o-n}],[{x:a+n,y:o},{x:a+n,y:s}],[{x:a,y:s+n},{x:i,y:s+n}],[{x:i-n,y:s},{x:i-n,y:o}]][(e-1)/2];return{x:d.x+(p.x-d.x)*c,y:d.y+(p.y-d.y)*c}}return{x:0,y:0}},length:d}}function S(e,t){let n=t.padding??8,r={x:e.width/2,y:e.height/2},i=x(e,n),a=y(t.strength),o=f(t.seed),s=[];for(let e=0;e<=13;e+=1){let t=i.at(.18+1.055*e/13),n={x:t.x-r.x,y:t.y-r.y},c=Math.hypot(n.x,n.y)||1,l=o()*a*c;s.push({x:t.x+n.x/c*l,y:t.y+n.y/c*l})}return s}function C(e,t){return m(S(e,t),!1)}function w(e){let t=e.gap??10,n=y(e.strength),r=f(e.seed),i=e.length+t,a=Math.max(28,e.length*.55),o=a/2,s={x:o,y:i},c={x:o,y:t},l=r()<.5?-1:1,u=a*.17*l,d=e=>({x:(1-e)*(1-e)*s.x+2*(1-e)*e*(o+u)+e*e*c.x,y:(1-e)*(1-e)*s.y+2*(1-e)*e*((s.y+c.y)/2)+e*e*c.y}),p=[];for(let e=0;e<=9;e+=1){let t=e/9,i=d(t),o=(1-t)*(1-t),s=(r()-.5)*2*n*a*o;p.push({x:i.x+s,y:i.y})}let g=d(1-1/9),_=Math.atan2(c.y-g.y,c.x-g.x),v=Math.max(11,e.length*.3),b=.42,x=`M ${h(c.x+Math.cos(_-Math.PI+b)*v)} ${h(c.y+Math.sin(_-Math.PI+b)*v)} L ${h(c.x)} ${h(c.y)} L ${h(c.x+Math.cos(_-Math.PI-b)*v)} ${h(c.y+Math.sin(_-Math.PI-b)*v)}`;return{shaft:m(p,!1),head:x,width:a,height:i}}function T(){let[e,t]=(0,d.useState)(()=>({width:typeof window>`u`?0:window.innerWidth,height:typeof window>`u`?0:window.innerHeight}));return(0,d.useEffect)(()=>{let e=()=>{t({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e}var E=c(),D=.6,O=10,k=52,A=10,j=k+A,M=10,N=8;function P(e,t){let n=e.kind===`point`?j:0,r=e.kind===`point`?e.y:e.y+e.height,i=e.kind===`point`?0:e.width,a=(1-r)*t-n,o=e.y*t-n;return{above:a<58&&o>a,trailing:e.x+i>D}}function F(e,t,n){let r=n?1-e.y:e.kind===`point`?e.y:e.y+e.height,i=Math.max(t-58,0),a=e.kind===`point`?k:0;return Math.round(Math.min(r*t+a+O,i))}function I(e){let t=Math.min(Math.max(e,0),1)*100;return`${Number(t.toFixed(4))}%`}function L(e){let t=e.kind===`region`?`${e.width},${e.height}`:`point`;return`${e.kind},${e.x},${e.y},${t},${e.caption??``}`}function R({mark:e,box:t}){let n=Math.max(e.width*t.width,1),r=Math.max(e.height*t.height,1),i=M+N,a=C({width:n,height:r},{strength:_,seed:p(e.x,e.y),padding:M});return(0,E.jsxs)(`svg`,{className:`companion-coachmark`,"data-testid":`companion-coachmark`,"aria-hidden":`true`,viewBox:`${-i} ${-i} ${n+i*2} ${r+i*2}`,width:n+i*2,height:r+i*2,style:{left:Math.round(e.x*t.width-i),top:Math.round(e.y*t.height-i)},children:[(0,E.jsx)(`path`,{className:`companion-coachmark-halo`,d:a}),(0,E.jsx)(`path`,{className:`companion-coachmark-ink`,d:a})]})}function z({mark:e,above:t,box:n}){let r=w({length:k,approach:t?`above`:`below`,strength:v,seed:p(e.x,e.y),gap:A});return(0,E.jsxs)(`svg`,{className:`companion-coachmark-pointer`,"data-testid":`companion-coachmark-pointer`,"data-above":t?``:void 0,"aria-hidden":`true`,viewBox:`0 0 ${r.width} ${r.height}`,width:r.width,height:r.height,style:{left:Math.round(e.x*n.width-r.width/2),top:Math.round(e.y*n.height-(t?r.height:0)),...t?{"--companion-coachmark-turn":`rotate(180deg)`}:{}},children:[(0,E.jsx)(`path`,{className:`companion-coachmark-halo`,d:r.shaft}),(0,E.jsx)(`path`,{className:`companion-coachmark-halo`,d:r.head}),(0,E.jsx)(`path`,{className:`companion-coachmark-ink`,d:r.shaft}),(0,E.jsx)(`path`,{className:`companion-coachmark-ink`,d:r.head})]})}function B({marks:e,ink:t}){let n=T();return(0,E.jsx)(`div`,{className:`pointer-events-none fixed inset-0`,"data-testid":`companion-coachmarks`,style:{"--companion-ring-accent":t},role:`presentation`,children:e.map(e=>{let{above:t,trailing:r}=P(e,n.height),i=`${F(e,n.height,t)}px`;return(0,E.jsxs)(d.Fragment,{children:[e.kind===`region`?(0,E.jsx)(R,{mark:e,box:n}):(0,E.jsx)(z,{mark:e,above:t,box:n}),e.caption!==void 0&&e.caption!==``&&(0,E.jsx)(`div`,{className:`companion-coachmark-caption`,"data-testid":`companion-coachmark-caption`,"data-above":t?``:void 0,"data-trailing":r?``:void 0,style:{...r?{right:I(1-(e.kind===`region`?e.x+e.width:e.x))}:{left:I(e.x)},...t?{bottom:i}:{top:i},maxWidth:I(.4)},children:e.caption})]},L(e))})})}var V=4500,H=e=>Math.min(Math.max(e,0),1);function U(e,t,n){switch(e){case`line`:return[t,n];case`box`:return[t,{x:n.x,y:t.y},n,{x:t.x,y:n.y},t];case`circle`:{let e=(t.x+n.x)/2,r=(t.y+n.y)/2,i=Math.abs(n.x-t.x)/2,a=Math.abs(n.y-t.y)/2;return Array.from({length:49},(t,n)=>{let o=n/48*Math.PI*2;return{x:e+i*Math.cos(o),y:r+a*Math.sin(o)}})}}}function W(e,t,r){let i=(t.x-e.x)*r,a=t.y-e.y;return i*i+a*a>=n**2}var G=`<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/>`;function K(e){let t=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><g stroke="#ffffff" stroke-width="4">${G}</g><g stroke="${e}" stroke-width="2">${G}</g></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(t)}") 2 22, crosshair`}function q({ink:e,cleared:t=0,tool:n=`freehand`}){let[o,s]=(0,d.useState)([]),c=(0,d.useRef)([]),l=(0,d.useRef)(null),u=(0,d.useRef)({x:0,y:0}),f=(0,d.useRef)(!1),p=(0,d.useRef)(0),m=(0,d.useRef)(new Set),h=T(),g=h.height===0?1:h.width/h.height,_=(0,d.useRef)(e);(0,d.useEffect)(()=>{_.current=e},[e]),(0,d.useEffect)(()=>{let e=m.current;return()=>{for(let t of e)clearTimeout(t);e.clear(),l.current!==null&&(l.current=null,i(`released`,[],_.current))}},[]);let v=(0,d.useCallback)(e=>{c.current=e,s(e)},[]),y=(0,d.useRef)(t);(0,d.useEffect)(()=>{t!==y.current&&(y.current=t,v(c.current.filter(e=>e.id===l.current)))},[t,v]);let b=e=>({x:h.width===0?0:H(e.clientX/h.width),y:h.height===0?0:H(e.clientY/h.height)}),x=()=>{l.current===null&&(f.current=!0,r(!0))},S=()=>{f.current&&(f.current=!1,r(!1))},C=t=>{if(S(),l.current!==null)return;t.currentTarget.setPointerCapture(t.pointerId);let n=p.current++;l.current=n;let r=b(t);u.current=r,v([...c.current,{id:n,points:[r],spent:!1}]),i(`drawing`,[],e)},w=e=>{S();let t=l.current;if(t===null)return;let r=b(e),i=c.current.find(e=>e.id===t);if(i===void 0)return;let a=i.points[i.points.length-1];a!==void 0&&!W(a,r,g)||v(c.current.map(e=>e.id===t?{...e,points:n===`freehand`?[...e.points,r].slice(-512):U(n,u.current,r)}:e))},D=t=>{if(l.current===null)return;l.current=null,t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId);let n=c.current.map(e=>({...e,spent:!0}));v(n),i(`released`,n.slice(-24).map(e=>({points:e.points})),e);let r=new Set(n.map(e=>e.id)),a=setTimeout(()=>{m.current.delete(a),v(c.current.filter(e=>!r.has(e.id)))},V+900);m.current.add(a)},O=a*Math.min(h.width,h.height),k=(0,d.useMemo)(()=>K(e),[e]);return(0,E.jsx)(`svg`,{className:`companion-share-annotation fixed inset-0 h-full w-full`,style:{cursor:n===`freehand`?k:`crosshair`,"--companion-ink-hold":`${V}ms`,"--companion-ink-fade":`900ms`},"data-testid":`companion-share-annotation`,"data-cleared":t,"data-tool":n,role:`presentation`,onPointerDown:C,onPointerMove:w,onPointerUp:D,onPointerCancel:D,onWheel:x,children:o.map(t=>(0,E.jsx)(J,{stroke:t,box:h,width:O,ink:e},t.id))})}function J({stroke:e,box:t,width:n,ink:r}){let i=e.spent?`companion-share-ink companion-share-ink-spent`:`companion-share-ink`,a=e.points[0];return e.points.length===1&&a!==void 0?(0,E.jsx)(`circle`,{className:i,cx:a.x*t.width,cy:a.y*t.height,r:n/2,fill:r}):(0,E.jsx)(`polyline`,{className:i,points:e.points.map(e=>`${e.x*t.width},${e.y*t.height}`).join(` `),fill:`none`,stroke:r,strokeWidth:n,strokeLinecap:`round`,strokeLinejoin:`round`})}function Y(e,t){return e?{kind:`teaching`}:t===void 0?null:{kind:`sharing`,target:t}}function X({read:e,assistantName:t,style:n}){let{t:r}=s(),i=t!==``,a=e.kind===`teaching`?i?r(`companionWatchFramePage.teachingNamed`,{name:t}):r(`companionWatchFramePage.teaching`):e.target.kind===`display`?i?r(`companionWatchFramePage.sharingScreenNamed`,{name:t}):r(`companionWatchFramePage.sharingScreen`):i?r(`companionWatchFramePage.sharingWindowNamed`,{name:t}):r(`companionWatchFramePage.sharingWindow`);return(0,E.jsxs)(`div`,{className:`companion-watch-frame-label`,"data-testid":`companion-watch-frame-label`,"data-read":e.kind,style:n,children:[(0,E.jsx)(`span`,{className:`companion-watch-frame-label-dot`}),a]})}function Z(e,t){let n=(0,d.useRef)({captureCount:e,watching:t}),[r,i]=(0,d.useState)(0);return(0,d.useEffect)(()=>{let r=n.current;if(n.current={captureCount:e,watching:t},!t){i(0);return}r.watching&&e>r.captureCount&&i(e=>e+1)},[e,t]),r}function Q(){let[e,n]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=t(n);return o().then(e=>{e&&n(e)}),e},[]);let r=e?.watching===!0,i=e?.screenShare!==void 0,a=Y(r,e?.screenShare),s=a!==null,c=Z(e?.captureCount??0,r),l=u(e?.call??null,e?.accentHex,e?.character),f=l===void 0?void 0:{"--companion-ring-accent":l},p=e?.frameInsetTop??0,m=p>0?{...f,"--companion-frame-inset":`${p}px`}:f,h=e?.annotating===!0,g=i&&!r?e?.coachmarks??[]:[];return(0,E.jsxs)(`div`,{className:`pointer-events-none h-screen w-screen bg-transparent`,role:`presentation`,"aria-hidden":!0,children:[s&&(0,E.jsx)(`div`,{className:`companion-watch-frame fixed inset-0`,style:f}),a!==null&&(0,E.jsx)(X,{read:a,assistantName:e?.assistantName??``,style:m}),r&&c>0&&(0,E.jsx)(`div`,{className:`companion-watch-frame-flash fixed inset-0`,style:f},c),h&&(0,E.jsx)(q,{ink:l??`#5eead4`,cleared:e?.marksCleared??0,tool:e?.annotationTool}),g.length>0&&(0,E.jsx)(B,{marks:g,ink:l??`#5eead4`})]})}export{Q as CompanionWatchFramePage};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ic as t,Kh as n,kc as r,mc as i,qh as a,xc as o}from"./app-BBUxTj9g.js";import{j as s}from"./vendor-ajttH1pP.js";import{t as c,x as l}from"./react-B9IgSVeK.js";import{n as u}from"./companion-accent-BYoVCdU1.js";var d=e(l(),1);function f(e){let t=e>>>0;return()=>{t=t+1831565813>>>0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}function p(e,t){return Math.round(e*1e3)*73856093^Math.round(t*1e3)*19349663}function m(e,t){if(e.length<2)return``;let n=n=>t?e[(n+e.length)%e.length]:e[Math.min(Math.max(n,0),e.length-1)],r=n(0),i=`M ${h(r.x)} ${h(r.y)}`,a=t?e.length:e.length-1;for(let e=0;e<a;e+=1){let t=n(e-1),r=n(e),a=n(e+1),o=n(e+2),s={x:r.x+(a.x-t.x)/6,y:r.y+(a.y-t.y)/6},c={x:a.x-(o.x-r.x)/6,y:a.y-(o.y-r.y)/6};i+=` C ${h(s.x)} ${h(s.y)}, ${h(c.x)} ${h(c.y)}, ${h(a.x)} ${h(a.y)}`}return t?`${i} Z`:i}function h(e){return Math.round(e*100)/100}var g=.09,_=.05,v=.028;function y(e){return Math.min(Math.max(e,0),g)}var b=1.5;b-Math.SQRT2*(b-1);function x(e,t){let n=Math.min(t*b,Math.min(e.width,e.height)/2+t),r=n-t,i=r,a=e.width-r,o=r,s=e.height-r,c={x:Math.max(a-i,0),y:Math.max(s-o,0)},l=Math.PI*n/2,u=[l,c.x,l,c.y,l,c.x,l,c.y],d=u.reduce((e,t)=>e+t,0),f=[{centre:{x:i,y:o},from:Math.PI},{centre:{x:a,y:o},from:-Math.PI/2},{centre:{x:a,y:s},from:0},{centre:{x:i,y:s},from:Math.PI/2}];return{at:e=>{let t=e%1*d;t<0&&(t+=d);for(let e=0;e<u.length;e+=1){let r=u[e];if(t>r&&e<u.length-1){t-=r;continue}let c=r===0?0:Math.min(t/r,1),l=f[e/2];if(e%2==0){let e=l.from+Math.PI/2*c;return{x:l.centre.x+Math.cos(e)*n,y:l.centre.y+Math.sin(e)*n}}let[d,p]=[[{x:i,y:o-n},{x:a,y:o-n}],[{x:a+n,y:o},{x:a+n,y:s}],[{x:a,y:s+n},{x:i,y:s+n}],[{x:i-n,y:s},{x:i-n,y:o}]][(e-1)/2];return{x:d.x+(p.x-d.x)*c,y:d.y+(p.y-d.y)*c}}return{x:0,y:0}},length:d}}function S(e,t){let n=t.padding??8,r={x:e.width/2,y:e.height/2},i=x(e,n),a=y(t.strength),o=f(t.seed),s=[];for(let e=0;e<=13;e+=1){let t=i.at(.18+1.055*e/13),n={x:t.x-r.x,y:t.y-r.y},c=Math.hypot(n.x,n.y)||1,l=o()*a*c;s.push({x:t.x+n.x/c*l,y:t.y+n.y/c*l})}return s}function C(e,t){return m(S(e,t),!1)}function w(e){let t=e.gap??10,n=y(e.strength),r=f(e.seed),i=e.length+t,a=Math.max(28,e.length*.55),o=a/2,s={x:o,y:i},c={x:o,y:t},l=r()<.5?-1:1,u=a*.17*l,d=e=>({x:(1-e)*(1-e)*s.x+2*(1-e)*e*(o+u)+e*e*c.x,y:(1-e)*(1-e)*s.y+2*(1-e)*e*((s.y+c.y)/2)+e*e*c.y}),p=[];for(let e=0;e<=9;e+=1){let t=e/9,i=d(t),o=(1-t)*(1-t),s=(r()-.5)*2*n*a*o;p.push({x:i.x+s,y:i.y})}let g=d(1-1/9),_=Math.atan2(c.y-g.y,c.x-g.x),v=Math.max(11,e.length*.3),b=.42,x=`M ${h(c.x+Math.cos(_-Math.PI+b)*v)} ${h(c.y+Math.sin(_-Math.PI+b)*v)} L ${h(c.x)} ${h(c.y)} L ${h(c.x+Math.cos(_-Math.PI-b)*v)} ${h(c.y+Math.sin(_-Math.PI-b)*v)}`;return{shaft:m(p,!1),head:x,width:a,height:i}}function T(){let[e,t]=(0,d.useState)(()=>({width:typeof window>`u`?0:window.innerWidth,height:typeof window>`u`?0:window.innerHeight}));return(0,d.useEffect)(()=>{let e=()=>{t({width:window.innerWidth,height:window.innerHeight})};return e(),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[]),e}var E=c(),D=.6,O=10,k=52,A=10,j=k+A,M=10,N=8;function P(e,t){let n=e.kind===`point`?j:0,r=e.kind===`point`?e.y:e.y+e.height,i=e.kind===`point`?0:e.width,a=(1-r)*t-n,o=e.y*t-n;return{above:a<58&&o>a,trailing:e.x+i>D}}function F(e,t,n){let r=n?1-e.y:e.kind===`point`?e.y:e.y+e.height,i=Math.max(t-58,0),a=e.kind===`point`?k:0;return Math.round(Math.min(r*t+a+O,i))}function I(e){let t=Math.min(Math.max(e,0),1)*100;return`${Number(t.toFixed(4))}%`}function L(e){let t=e.kind===`region`?`${e.width},${e.height}`:`point`;return`${e.kind},${e.x},${e.y},${t},${e.caption??``}`}function R({mark:e,box:t}){let n=Math.max(e.width*t.width,1),r=Math.max(e.height*t.height,1),i=M+N,a=C({width:n,height:r},{strength:_,seed:p(e.x,e.y),padding:M});return(0,E.jsxs)(`svg`,{className:`companion-coachmark`,"data-testid":`companion-coachmark`,"aria-hidden":`true`,viewBox:`${-i} ${-i} ${n+i*2} ${r+i*2}`,width:n+i*2,height:r+i*2,style:{left:Math.round(e.x*t.width-i),top:Math.round(e.y*t.height-i)},children:[(0,E.jsx)(`path`,{className:`companion-coachmark-halo`,d:a}),(0,E.jsx)(`path`,{className:`companion-coachmark-ink`,d:a})]})}function z({mark:e,above:t,box:n}){let r=w({length:k,approach:t?`above`:`below`,strength:v,seed:p(e.x,e.y),gap:A});return(0,E.jsxs)(`svg`,{className:`companion-coachmark-pointer`,"data-testid":`companion-coachmark-pointer`,"data-above":t?``:void 0,"aria-hidden":`true`,viewBox:`0 0 ${r.width} ${r.height}`,width:r.width,height:r.height,style:{left:Math.round(e.x*n.width-r.width/2),top:Math.round(e.y*n.height-(t?r.height:0)),...t?{"--companion-coachmark-turn":`rotate(180deg)`}:{}},children:[(0,E.jsx)(`path`,{className:`companion-coachmark-halo`,d:r.shaft}),(0,E.jsx)(`path`,{className:`companion-coachmark-halo`,d:r.head}),(0,E.jsx)(`path`,{className:`companion-coachmark-ink`,d:r.shaft}),(0,E.jsx)(`path`,{className:`companion-coachmark-ink`,d:r.head})]})}function B({marks:e,ink:t}){let n=T();return(0,E.jsx)(`div`,{className:`pointer-events-none fixed inset-0`,"data-testid":`companion-coachmarks`,style:{"--companion-ring-accent":t},role:`presentation`,children:e.map(e=>{let{above:t,trailing:r}=P(e,n.height),i=`${F(e,n.height,t)}px`;return(0,E.jsxs)(d.Fragment,{children:[e.kind===`region`?(0,E.jsx)(R,{mark:e,box:n}):(0,E.jsx)(z,{mark:e,above:t,box:n}),e.caption!==void 0&&e.caption!==``&&(0,E.jsx)(`div`,{className:`companion-coachmark-caption`,"data-testid":`companion-coachmark-caption`,"data-above":t?``:void 0,"data-trailing":r?``:void 0,style:{...r?{right:I(1-(e.kind===`region`?e.x+e.width:e.x))}:{left:I(e.x)},...t?{bottom:i}:{top:i},maxWidth:I(.4)},children:e.caption})]},L(e))})})}var V=4500,H=e=>Math.min(Math.max(e,0),1);function U(e,t,n){switch(e){case`line`:return[t,n];case`box`:return[t,{x:n.x,y:t.y},n,{x:t.x,y:n.y},t];case`circle`:{let e=(t.x+n.x)/2,r=(t.y+n.y)/2,i=Math.abs(n.x-t.x)/2,a=Math.abs(n.y-t.y)/2;return Array.from({length:49},(t,n)=>{let o=n/48*Math.PI*2;return{x:e+i*Math.cos(o),y:r+a*Math.sin(o)}})}}}function W(e,t,r){let i=(t.x-e.x)*r,a=t.y-e.y;return i*i+a*a>=n**2}var G=`<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/><path d="m15 5 4 4"/>`;function K(e){let t=`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"><g stroke="#ffffff" stroke-width="4">${G}</g><g stroke="${e}" stroke-width="2">${G}</g></svg>`;return`url("data:image/svg+xml,${encodeURIComponent(t)}") 2 22, crosshair`}function q({ink:e,cleared:t=0,tool:n=`freehand`}){let[o,s]=(0,d.useState)([]),c=(0,d.useRef)([]),l=(0,d.useRef)(null),u=(0,d.useRef)({x:0,y:0}),f=(0,d.useRef)(!1),p=(0,d.useRef)(0),m=(0,d.useRef)(new Set),h=T(),g=h.height===0?1:h.width/h.height,_=(0,d.useRef)(e);(0,d.useEffect)(()=>{_.current=e},[e]),(0,d.useEffect)(()=>{let e=m.current;return()=>{for(let t of e)clearTimeout(t);e.clear(),l.current!==null&&(l.current=null,i(`released`,[],_.current))}},[]);let v=(0,d.useCallback)(e=>{c.current=e,s(e)},[]),y=(0,d.useRef)(t);(0,d.useEffect)(()=>{t!==y.current&&(y.current=t,v(c.current.filter(e=>e.id===l.current)))},[t,v]);let b=e=>({x:h.width===0?0:H(e.clientX/h.width),y:h.height===0?0:H(e.clientY/h.height)}),x=()=>{l.current===null&&(f.current=!0,r(!0))},S=()=>{f.current&&(f.current=!1,r(!1))},C=t=>{if(S(),l.current!==null)return;t.currentTarget.setPointerCapture(t.pointerId);let n=p.current++;l.current=n;let r=b(t);u.current=r,v([...c.current,{id:n,points:[r],spent:!1}]),i(`drawing`,[],e)},w=e=>{S();let t=l.current;if(t===null)return;let r=b(e),i=c.current.find(e=>e.id===t);if(i===void 0)return;let a=i.points[i.points.length-1];a!==void 0&&!W(a,r,g)||v(c.current.map(e=>e.id===t?{...e,points:n===`freehand`?[...e.points,r].slice(-512):U(n,u.current,r)}:e))},D=t=>{if(l.current===null)return;l.current=null,t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId);let n=c.current.map(e=>({...e,spent:!0}));v(n),i(`released`,n.slice(-24).map(e=>({points:e.points})),e);let r=new Set(n.map(e=>e.id)),a=setTimeout(()=>{m.current.delete(a),v(c.current.filter(e=>!r.has(e.id)))},V+900);m.current.add(a)},O=a*Math.min(h.width,h.height),k=(0,d.useMemo)(()=>K(e),[e]);return(0,E.jsx)(`svg`,{className:`companion-share-annotation fixed inset-0 h-full w-full`,style:{cursor:n===`freehand`?k:`crosshair`,"--companion-ink-hold":`${V}ms`,"--companion-ink-fade":`900ms`},"data-testid":`companion-share-annotation`,"data-cleared":t,"data-tool":n,role:`presentation`,onPointerDown:C,onPointerMove:w,onPointerUp:D,onPointerCancel:D,onWheel:x,children:o.map(t=>(0,E.jsx)(J,{stroke:t,box:h,width:O,ink:e},t.id))})}function J({stroke:e,box:t,width:n,ink:r}){let i=e.spent?`companion-share-ink companion-share-ink-spent`:`companion-share-ink`,a=e.points[0];return e.points.length===1&&a!==void 0?(0,E.jsx)(`circle`,{className:i,cx:a.x*t.width,cy:a.y*t.height,r:n/2,fill:r}):(0,E.jsx)(`polyline`,{className:i,points:e.points.map(e=>`${e.x*t.width},${e.y*t.height}`).join(` `),fill:`none`,stroke:r,strokeWidth:n,strokeLinecap:`round`,strokeLinejoin:`round`})}function Y(e,t){return e?{kind:`teaching`}:t===void 0?null:{kind:`sharing`,target:t}}function X({read:e,assistantName:t,style:n}){let{t:r}=s(),i=t!==``,a=e.kind===`teaching`?i?r(`companionWatchFramePage.teachingNamed`,{name:t}):r(`companionWatchFramePage.teaching`):e.target.kind===`display`?i?r(`companionWatchFramePage.sharingScreenNamed`,{name:t}):r(`companionWatchFramePage.sharingScreen`):i?r(`companionWatchFramePage.sharingWindowNamed`,{name:t}):r(`companionWatchFramePage.sharingWindow`);return(0,E.jsxs)(`div`,{className:`companion-watch-frame-label`,"data-testid":`companion-watch-frame-label`,"data-read":e.kind,style:n,children:[(0,E.jsx)(`span`,{className:`companion-watch-frame-label-dot`}),a]})}function Z(e,t){let n=(0,d.useRef)({captureCount:e,watching:t}),[r,i]=(0,d.useState)(0);return(0,d.useEffect)(()=>{let r=n.current;if(n.current={captureCount:e,watching:t},!t){i(0);return}r.watching&&e>r.captureCount&&i(e=>e+1)},[e,t]),r}function Q(){let[e,n]=(0,d.useState)(null);(0,d.useEffect)(()=>{let e=t(n);return o().then(e=>{e&&n(e)}),e},[]);let r=e?.watching===!0,i=e?.screenShare!==void 0,a=Y(r,e?.screenShare),s=a!==null,c=Z(e?.captureCount??0,r),l=u(e?.call??null,e?.accentHex,e?.character),f=l===void 0?void 0:{"--companion-ring-accent":l},p=e?.frameInsetTop??0,m=p>0?{...f,"--companion-frame-inset":`${p}px`}:f,h=e?.annotating===!0,g=i&&!r?e?.coachmarks??[]:[];return(0,E.jsxs)(`div`,{className:`pointer-events-none h-screen w-screen bg-transparent`,role:`presentation`,"aria-hidden":!0,children:[s&&(0,E.jsx)(`div`,{className:`companion-watch-frame fixed inset-0`,style:f}),a!==null&&(0,E.jsx)(X,{read:a,assistantName:e?.assistantName??``,style:m}),r&&c>0&&(0,E.jsx)(`div`,{className:`companion-watch-frame-flash fixed inset-0`,style:f},c),h&&(0,E.jsx)(q,{ink:l??`#5eead4`,cleared:e?.marksCleared??0,tool:e?.annotationTool}),g.length>0&&(0,E.jsx)(B,{marks:g,ink:l??`#5eead4`})]})}export{Q as CompanionWatchFramePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{CS as t,NS as n,SS as r,et as i,fx as a,iS as o}from"./app-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{CS as t,NS as n,SS as r,et as i,fx as a,iS as o}from"./app-BBUxTj9g.js";import{Jn as s,er as c,j as l}from"./vendor-ajttH1pP.js";import{_ as u,f as d,t as f,x as p}from"./react-B9IgSVeK.js";import{D as m,Yn as h,tr as g}from"./icons-C0wyat6T.js";import{n as _}from"./a2a-invite-Ci3O-UuB.js";import{r as v}from"./contacts-gateway-B5O7Ne74.js";var y=e(p(),1),b=f();function x(e){let t=e[0];return typeof t==`object`&&!!t&&t._id===`contactsGet`}function S(e){switch(e){case`expired`:case`not_found`:return`connectPage.errorExpired`;case`already_redeemed_by_other`:return`connectPage.errorAlreadyRedeemed`;case`sender_not_found`:return`connectPage.errorSenderNotFound`;case`not_platform_managed`:return`connectPage.errorNotPlatformManaged`;default:return null}}function C(){return(0,b.jsx)(w,{assistantId:i()})}function w({assistantId:e}){let{t:i}=l(`contacts`),f=d(),p=c(),[C]=u(),w=(0,y.useMemo)(()=>_(C),[C]),T=s({mutationFn:()=>{if(!w)throw Error(`Invalid invite link`);return v(e,{senderAssistantId:w.senderAssistantId,token:w.token})},onSuccess:e=>{e.success&&(p.invalidateQueries({predicate:e=>x(e.queryKey)}),e.alreadyConnected?o(i(`connectPage.alreadyConnected`)):o(i(`connectPage.connected`)),f(a.contacts.root))}}),E=(0,y.useCallback)(()=>{f(a.contacts.root)},[f]),D=(0,y.useCallback)(()=>{T.mutate()},[T]),O=(0,y.useMemo)(()=>{if(T.isError)return T.error instanceof Error?T.error.message:i(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?i(e):T.data.error||i(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,i]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(r,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(g,{className:`h-6 w-6`,style:{color:`var(--content-secondary)`}}),(0,b.jsx)(t,{variant:`title-small`,children:i(`connectPage.title`)})]}),(0,b.jsx)(t,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:i(`connectPage.body`)}),O&&(0,b.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md p-3`,style:{backgroundColor:`var(--surface-negative-subtle)`,color:`var(--system-negative-strong)`},children:[(0,b.jsx)(m,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(t,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(n,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(h,{className:`h-4 w-4 animate-spin`}),i(`actions.connecting`)]}):i(`actions.connect`)}),(0,b.jsx)(n,{variant:`outlined`,onClick:E,disabled:T.isPending,children:i(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(r,{className:`w-full max-w-md`,children:(0,b.jsxs)(`div`,{className:`flex flex-col gap-4 p-6`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,b.jsx)(m,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(t,{variant:`title-small`,children:i(`connectPage.invalidTitle`)})]}),(0,b.jsx)(t,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:i(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(n,{variant:`primary`,onClick:E,children:i(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SS as e,dS as t,dx as n,fx as r}from"./app-
|
|
1
|
+
import{SS as e,dS as t,dx as n,fx as r}from"./app-BBUxTj9g.js";import{N as i,j as a}from"./vendor-ajttH1pP.js";import{t as o}from"./react-B9IgSVeK.js";import{t as s}from"./setting-row-DeKbamTb.js";var c=o(),l=[`[&_button[data-state=checked]]:bg-[var(--primary-base)]`,`[&_svg]:text-[var(--content-inset)]`,`[&_button[data-state=unchecked]]:bg-[var(--surface-base)]`,`[&_button[data-state=unchecked]]:border-[var(--border-element)]`].join(` `),u=`mb-2.5 ml-1 text-body-small-default font-medium uppercase tracking-wider text-[var(--content-tertiary)]`,d={privacy:{href:r.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:r.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:r,onChange:a}){let o=d[e];return(0,c.jsx)(t,{checked:r,onCheckedChange:e=>a(e===!0),label:(0,c.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:(0,c.jsx)(i,{i18nKey:`consentControls.agreeTo`,ns:`onboarding`,values:{policy:o.text},components:{link:(0,c.jsx)(`a`,{href:n(o.href),target:`_blank`,rel:`noreferrer`,className:`underline`})}})}),"aria-label":o.aria,className:l})}function p(){return(0,c.jsx)(`div`,{className:`h-px bg-[var(--surface-active)] dark:bg-[var(--surface-lift)]`})}function m({notes:e}){let{t}=a(`onboarding`);return!e||e.length===0?null:(0,c.jsxs)(`div`,{className:`rounded-r-md border-l-2 border-[var(--content-secondary)] bg-[var(--surface-base)] py-3 pl-3.5 pr-3.5`,children:[(0,c.jsx)(`p`,{className:`text-body-small-default font-medium text-[var(--content-secondary)]`,children:t(`consentControls.whatsChanged`)}),e.length===1?(0,c.jsx)(`p`,{className:`mt-1.5 text-body-medium-lighter text-[var(--content-default)]`,children:e[0]}):(0,c.jsx)(`ul`,{className:`mt-2 flex flex-col gap-1.5`,children:e.map(e=>(0,c.jsxs)(`li`,{className:`flex gap-2.5 text-body-medium-lighter text-[var(--content-default)]`,children:[(0,c.jsx)(`span`,{"aria-hidden":!0,className:`mt-[0.5em] h-1 w-1 flex-none rounded-full bg-[var(--content-tertiary)]`}),(0,c.jsx)(`span`,{children:e})]},e))})]})}function h({electron:t,showAnalytics:n=!0,showDiagnostics:r=!0,shareAnalytics:i,shareDiagnostics:o,onShareAnalyticsChange:l,onShareDiagnosticsChange:d,className:f,style:m}){let{t:h}=a(`onboarding`);return(0,c.jsxs)(`section`,{className:f,style:m,children:[(0,c.jsx)(`p`,{className:u,children:h(`consentControls.privacyPreferences`)}),(0,c.jsx)(e,{padding:t?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${t?`gap-3`:`gap-4`}`,children:[n&&(0,c.jsx)(s,{label:h(`consentControls.analyticsLabel`),helperText:h(`consentControls.analyticsHelp`),checked:i,onChange:l}),n&&r&&(0,c.jsx)(p,{}),r&&(0,c.jsx)(s,{label:h(`consentControls.diagnosticsLabel`),helperText:h(`consentControls.diagnosticsHelp`),checked:o,onChange:d})]})})]})}function g({electron:e,showPrivacy:t=!0,showTos:n=!0,privacyConsent:r,tosAccepted:i,onPrivacyChange:o,onTosChange:s,privacyNotes:l,tosNotes:d,className:p,style:h}){let{t:g}=a(`onboarding`);return(0,c.jsxs)(`section`,{className:p,style:h,children:[(0,c.jsx)(`p`,{className:u,children:g(`consentControls.agreements`)}),(0,c.jsxs)(`div`,{className:`flex flex-col pl-2 ${e?`gap-3.5`:`gap-4`}`,children:[t&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:l}),(0,c.jsx)(f,{kind:`privacy`,checked:r,onChange:o})]}),n&&(0,c.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,c.jsx)(m,{notes:d}),(0,c.jsx)(f,{kind:`tos`,checked:i,onChange:s})]})]})]})}export{h as n,g as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Bd as e,Ex as t,Ox as n,Tx as r,Vd as i,s_ as a,zd as o}from"./app-
|
|
1
|
+
import{Bd as e,Ex as t,Ox as n,Tx as r,Vd as i,s_ as a,zd as o}from"./app-BBUxTj9g.js";async function s(e,a){let{data:o,error:s,response:c}=await i({path:{assistant_id:e},body:a,throwOnError:!1});if(t(c,s,`Failed to save contact`),!c.ok||!o?.contact)throw new r(c.status,n(s,c,`Failed to save contact`));return o.contact}async function c(i,a){let{error:o,response:s}=await e({path:{assistant_id:i,contact_id:a},throwOnError:!1});if(t(s,o,`Failed to delete contact`),!s.ok&&s.status!==204)throw new r(s.status,n(o,s,`Failed to delete contact`))}async function l(e,i){let{error:a,response:s}=await o({path:{assistant_id:e,channel_id:i},throwOnError:!1});if(t(s,a,`Failed to verify channel`),!s.ok)throw new r(s.status,n(a,s,`Failed to verify channel`))}async function u(e,t,n){let i=(await s(e,{id:t.id,displayName:t.displayName,channels:[{type:n.type,address:n.address}]})).channels.find(e=>e.type===n.type&&e.address.toLowerCase()===n.address.toLowerCase());if(!i)throw new r(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new r(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(e,i){let{data:o,error:s,response:c}=await a.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:e},body:{sender_assistant_id:i.senderAssistantId,token:i.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(t(c,s,`Failed to redeem A2A invite`),!c.ok)throw new r(c.status,n(s,c,`Failed to redeem A2A invite`));return{success:o?.success??!0,alreadyConnected:o?.already_connected,error:o?.error,errorCode:o?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{B as t,CS as n,DS as r,Fi as i,Li as a,NS as o,Om as s,Pd as c,Ri as l,S as u,SS as d,Uc as f,Xb as p,Xd as m,aS as h,bp as g,ds as _,et as v,ff as y,fx as b,gS as x,iS as S,mf as C,pS as w,pf as T,rS as E,tS as ee,x_ as te,yp as D,zi as O}from"./app-BfK0IQIk.js";import{I as k,Jn as A,N as j,Zn as ne,er as re,j as M}from"./vendor-ajttH1pP.js";import{_ as ie,f as ae,n as N,r as oe,t as se,x as P}from"./react-B9IgSVeK.js";import{Bi as F,Dn as ce,Kt as I,Lt as le,Ra as L,Vn as ue,Ya as R,Yn as z,Zt as de,_a as B,_t as fe,br as pe,tr as me,vt as V,x as H,za as U}from"./icons-C0wyat6T.js";import{t as W}from"./ellipsis-vertical-Bg7ccW1x.js";import{t as G}from"./detail-card-CZVSMSNs.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-BhFIS5Le.js";import{c as K,i as ve,n as ye,r as q,t as be}from"./use-invite-link-dialog-6IXyqacJ.js";import{a as xe,i as Se,n as Ce,t as we}from"./contacts-gateway-BC6WaVFg.js";var Te=R(`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`}]]),Ee=R(`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(P(),1),De=new Set([`slack`]);function Oe(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function ke(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 Ae(e){let t=ke(e.toLowerCase());return t?k(t,{ns:`contacts`}):e}var je=`New Contact`;function Me(e){return e===je}var Y=se();function Ne({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:i}=M(`contacts`),[a,o]=(0,J.useState)(null);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,Y.jsxs)(`div`,{children:[i>0?(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,Y.jsx)(Pe,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r&&e.canDisconnect?()=>o(e.key):void 0})]},e.key))}),(0,Y.jsx)(E,{open:a!==null,title:i(`assistantContactChannels.disconnectConfirmTitle`,{channel:a?l(a):``}),message:i(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:i(`actions.disconnect`),destructive:!0,onConfirm:()=>{a&&r&&r(a),o(null)},onCancel:()=>o(null)})]})}function Pe({channel:e,pending:t,onConnect:n,onDisconnect:r}){let{t:a}=M(`contacts`),s=e.configured,{Icon:c,label:u}=O(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(i,{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:l(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`}),u]}),r?(0,Y.jsx)(o,{variant:`danger`,onClick:r,disabled:t,children:a(t?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(o,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(N,{to:`${b.channels}?setup=${e.key}`,children:a(`actions.manage`)})})]}):n?(0,Y.jsx)(o,{variant:`outlined`,onClick:n,disabled:t,children:a(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(x,{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 Fe({assistantName:e,...t}){let{t:n}=M(`contacts`),r=_(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:n(`assistantChannelsDetail.title`,{name:r}),accessory:(0,Y.jsx)(X,{role:`assistant`}),compactAccessory:!0}),(0,Y.jsx)(G,{title:n(`assistantChannelsDetail.channelsTitle`),subtitle:n(`assistantChannelsDetail.channelsSubtitle`,{name:r}),children:(0,Y.jsx)(Ne,{...t})})]})}var Ie=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Q(e){return Ie.has(e)}function Le(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Re(e){return e.supportsVerification||Le(e)}function ze(e){return!!e?.address?.trim()}function Be(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&Oe(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||Le(e)?{kind:`unverified`}:{kind:`setup`}}function Ve(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||Q(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 $({channelId:e,name:t,className:n,style:r}){let i=a(e);if(i)return(0,J.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(B,{className:n,style:r});case`hash`:return(0,Y.jsx)(pe,{className:n,style:r});case`send`:return(0,Y.jsx)(fe,{className:n,style:r});case`phone`:return(0,Y.jsx)(I,{className:n,style:r});case`mail`:return(0,Y.jsx)(ue,{className:n,style:r});case`message-square`:return(0,Y.jsx)(ce,{className:n,style:r});default:return(0,Y.jsx)(Te,{className:n,style:r})}}function He({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:i,verifyLoading:a,verifySubject:o=`self`,onSetupChannel:s,onVerifyChannel:c,onRevokeChannel:l,onLinkAccount:u}){let{t:d}=M(`contacts`),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),g=new Map;for(let t of e)t.status!==`revoked`&&(g.has(t.type)||g.set(t.type,t));let _=e=>{f&&(c?.(f.info.id,e),p(null))},v=Ve(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:d(`contactChannelsSection.loadFailed`)}),v.map((e,t)=>{let n=g.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)(Ue,{info:e,existing:n,setupLabel:i??d(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:s?()=>s(e.id):void 0,onVerify:c&&Re(e)?()=>p({info:e,existing:n}):void 0,onRevoke:l&&n?()=>h({channelId:n.id,channel:e}):void 0,onLinkAccount:u&&De.has(e.id)?()=>u(e.id):void 0})]},e.id)})]}),f?(0,Y.jsx)(We,{info:f.info,existing:f.existing,verifySubject:o,onConfirm:_,onCancel:()=>p(null)}):null,m&&(0,Y.jsx)(E,{open:!0,title:d(`contactChannelsSection.revokeConfirmTitle`,{channel:m.channel.label}),message:d(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:d(`actions.revoke`),destructive:!0,onConfirm:()=>{l?.(m.channelId,m.channel.id),h(null)},onCancel:()=>h(null)})]})}function Ue({info:e,existing:t,setupLabel:n,verifyLoading:r,onSetup:i,onVerify:a,onRevoke:s,onLinkAccount:c}){let{t:l}=M(`contacts`),u=Be(e,t);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)($,{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)(F,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),s?(0,Y.jsx)(o,{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)(F,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),s?(0,Y.jsx)(o,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,Y.jsx)(o,{variant:`outlined`,onClick:a,disabled:!a||r,children:l(r?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[c?(0,Y.jsxs)(o,{onClick:c,children:[(0,Y.jsx)(me,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(o,{variant:`outlined`,onClick:i,disabled:!i,children:n})]}):null})]})}function We({info:e,existing:t,verifySubject:n,onConfirm:r,onCancel:i}){let{t:a}=M(`contacts`),[s,c]=(0,J.useState)(t?.address?.trim()??``),l=(0,J.useRef)(null),u=(0,J.useId)(),d=s.trim();return ze(t)?(0,Y.jsx)(E,{open:!0,title:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label}),message:a(n===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:e.label}),confirmLabel:a(`actions.verify`),onConfirm:()=>{r()},onCancel:i}):(0,Y.jsx)(h.Root,{open:!0,onOpenChange:e=>{e||i()},children:(0,Y.jsx)(h.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),i()},children:(0,Y.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),d.length!==0&&r(d)},children:[(0,Y.jsx)(h.Header,{children:(0,Y.jsx)(h.Title,{children:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(h.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(h.Description,{children:a(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(w,{ref:l,id:u,label:a(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:s,onChange:e=>{c(e.target.value)},placeholder:a(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,Y.jsxs)(h.Footer,{children:[(0,Y.jsx)(o,{variant:`outlined`,type:`button`,onClick:i,children:a(`actions.cancel`)}),(0,Y.jsx)(o,{type:`submit`,disabled:d.length===0,children:a(`actions.verify`)})]})]})})})}function Ge(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function Ke(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 qe(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 Je(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Ye({contact:e,pending:n,onAutoApproveThresholdChange:r}){let{t:i}=M(`contacts`),a=Ge(e.autoApproveThreshold)?e.autoApproveThreshold:null,o=a===null?null:t.find(e=>e.riskThreshold===a);return(0,Y.jsx)(G,{title:i(`contactPermissions.title`),subtitle:i(`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)(ee,{value:o?.id??null,placeholder:i(`contactPermissions.inheritLabel`),disabled:n,onSelectNone:()=>{r(null)},onChange:e=>{let n=t.find(t=>t.id===e);n&&r(n.riskThreshold)},options:[{value:null,label:i(`contactPermissions.inheritLabel`)},...t.map(e=>{let t=e.icon;return{value:e.id,label:Ke(i,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:qe(i,a)})]})})}function Xe(e){return(0,Y.jsx)(Ze,{...e},e.contact.id)}function Ze({contact:e,savePending:t,deletePending:n,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onDelete:d,onMerge:f,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g,pendingAutoApproveThreshold:_,onAutoApproveThresholdChange:v}){let{t:y}=M(`contacts`),b=Me(e.displayName),[x,S]=(0,J.useState)(b?``:e.displayName),[C,T]=(0,J.useState)(e.notes??``),[ee,te]=(0,J.useState)(!1),D=x.trim(),O=C.trim(),k=b?``:e.displayName,A=e.notes??``,j=D!==k||O!==A,ne=D.length>0&&j&&!t&&!n,re=b&&e.channels.length===0&&e.interactionCount===0,ie=D||(b?y(`contact.draftName`):e.displayName),ae=y(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{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:y(`contact.nameLabel`),type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:y(`contactDetailView.namePlaceholder`),autoFocus:b,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(w,{label:y(`contact.notesLabel`),type:`text`,value:C,onChange:e=>T(e.target.value),placeholder:y(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(o,{type:`button`,onClick:()=>u({displayName:D,notes:O}),disabled:!ne,children:y(t?`actions.saving`:`actions.save`)}),f?(0,Y.jsx)(o,{type:`button`,variant:`outlined`,onClick:f,disabled:!a||re||j||i||t||n,title:a?re?y(`contactDetailView.mergeBlockedUnsavedDraft`):j?y(`contact.mergeBlockedUnsaved`):void 0:y(`contact.mergeBlockedNoCandidates`),children:y(i?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(o,{type:`button`,variant:`danger`,onClick:()=>{re?d():te(!0)},disabled:n,children:y(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(G,{title:y(`contactDetailView.linkedAccountsTitle`),subtitle:y(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,verifyLoading:r,verifySubject:`contact`,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g})}),Je(e)&&v?(0,Y.jsx)(Ye,{contact:e,pending:_,onAutoApproveThresholdChange:v}):null,(0,Y.jsx)(E,{open:ee,title:y(`contactDetailView.deleteConfirmTitle`,{name:ie}),message:y(`contactDetailView.deleteConfirmMessage`),confirmLabel:y(`actions.delete`),destructive:!0,onConfirm:()=>{te(!1),d()},onCancel:()=>te(!1)})]})}function Qe(e){return(0,Y.jsx)($e,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function $e({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:s,onClose:c}){let{t:l}=M(`contacts`),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(null);(0,J.useEffect)(()=>{f&&!r.some(e=>e.id===f)&&p(null)},[r,f]);let m=(0,J.useMemo)(()=>{let e=u.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,u]),g=f?r.find(e=>e.id===f)??null:null,_=it(t);return(0,Y.jsx)(h.Root,{open:e,onOpenChange:e=>{!e&&!i&&c()},children:(0,Y.jsxs)(h.Content,{size:`md`,children:[(0,Y.jsxs)(h.Header,{icon:Ee,children:[(0,Y.jsx)(h.Title,{children:g?l(`contactMergeDialog.titlePicked`,{donor:g.displayName,survivor:_}):l(`contactMergeDialog.titlePicking`,{survivor:_})}),(0,Y.jsx)(h.Description,{children:l(g?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(h.Body,{className:`flex flex-col gap-3`,children:[g?(0,Y.jsx)(nt,{survivor:t,donor:g}):r.length===0?(0,Y.jsx)(rt,{}):(0,Y.jsx)(et,{search:u,onSearch:d,candidates:m,onPick:p}),a?(0,Y.jsx)(n,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,Y.jsx)(h.Footer,{children:g?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(o,{variant:`outlined`,onClick:()=>p(null),disabled:i,leftIcon:(0,Y.jsx)(U,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,Y.jsx)(o,{variant:`danger`,onClick:()=>s(g.id),disabled:i,children:l(i?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(o,{variant:`outlined`,onClick:c,disabled:i,children:l(`actions.cancel`)})})]})})}function et({search:e,onSearch:t,candidates:r,onPick:i}){let{t:a}=M(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(w,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(V,{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":a(`contactMergeDialog.listAriaLabel`),children:r.length===0?(0,Y.jsx)(n,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,Y.jsx)(tt,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function tt({contact:e,onPick:t}){let n=ot(e).join(` | `)||void 0;return(0,Y.jsx)(r,{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 nt({survivor:e,donor:t}){let{t:n}=M(`contacts`),r=it(e),{moved:i,duplicates:a}=at(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)(j,{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=>Ae(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 rt(){let{t:e}=M(`contacts`);return(0,Y.jsx)(n,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function it(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?k(`survivorName.you`,{ns:`contacts`}):k(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||k(`survivorName.thisContact`,{ns:`contacts`})}function at(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 ot(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(Ae(e)))}return n}function st({loading:e,guardian:t,assistantName:n,regularContacts:r,selection:i,onSelect:a,onAddContact:s,addingContact:c=!1,search:l,onSearchChange:u}){let{t:f}=M(`contacts`),p=l.trim()?r.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):r;return(0,Y.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(d.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:f(`contactsList.heading`)}),(0,Y.jsx)(o,{type:`button`,variant:`ghost`,iconOnly:c?(0,Y.jsx)(z,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(le,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,Y.jsx)(ct,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:i?.kind===`contact`&&i.contactId===t.id,onClick:()=>a({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,Y.jsx)(ct,{name:n?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:i?.kind===`assistant`,onClick:()=>a({kind:`assistant`}),trailingIcon:`more`})]}),(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),r.length>0?(0,Y.jsx)(w,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(V,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,r.length>0?(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[p.map(e=>(0,Y.jsx)(ct,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:i?.kind===`contact`&&i.contactId===e.id,onClick:()=>a({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),p.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(o,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,Y.jsx)(z,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(H,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function ct({name:e,role:t,contactType:n,channelTypes:i,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=M(`contacts`),u=i&&i.length>0?i.join(` | `):void 0,d=s===`pencil`?(0,Y.jsx)(de,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,Y.jsx)(W,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,Y.jsx)(r,{asChild:!0,active:a,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:o,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}),u?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,Y.jsx)(x,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,Y.jsx)(X,{role:t,contactType:n}),d]})]})})}function lt(e){return(0,Y.jsx)(ut,{...e},e.contact.id)}function ut({contact:e,savePending:t,verifyPending:n,mergePending:r=!1,canMerge:i=!1,availableChannels:a,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(),C=b.trim(),T=S!==_.trim()||C!==(e.notes??``).trim(),E=T&&!t,ee=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:g?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:ee,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)(o,{variant:`primary`,onClick:()=>l({displayName:S||e.displayName,notes:C}),disabled:!E,children:h(t?`actions.saving`:`actions.save`)}),u?(0,Y.jsx)(o,{variant:`outlined`,onClick:u,disabled:!i||T||r||t,title:i?T?h(`contact.mergeBlockedUnsaved`):void 0:h(`contact.mergeBlockedNoCandidates`),children:h(r?`actions.merging`:`actions.merge`)}):null]})]})}),(0,Y.jsx)(G,{title:h(`guardianDetailView.channelsTitle`),subtitle:h(`guardianDetailView.channelsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:a,channelsLoadFailed:s,a2aEnabled:c,setupLabel:h(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),m?(0,Y.jsx)(q,{onClick:m}):null]})}function dt(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 ft(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function pt({open:e,channelLabel:t,contactName:n,accounts:r,loading:i,errorMessage:a,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let{t:d}=M(`contacts`),[f,p]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&p(``)},[e]);let m=(0,J.useMemo)(()=>dt(r??[],f),[r,f]),g=s!=null;return(0,Y.jsx)(h.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,Y.jsxs)(h.Content,{size:`sm`,children:[(0,Y.jsxs)(h.Header,{children:[(0,Y.jsx)(h.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(h.Description,{children:(0,Y.jsx)(j,{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)(h.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(w,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:d(`linkAccountDialog.searchPlaceholder`),"aria-label":d(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,Y.jsx)(V,{className:`h-4 w-4`}),fullWidth:!0}),a?(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:a}):null,(0,Y.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:i?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.loading`)}):m.length===0?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(r?.length??0)===0?d(`linkAccountDialog.noMembers`):d(`linkAccountDialog.noMatches`)}):(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:m.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>c(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:ft(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]})]}),s===e.id?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,Y.jsxs)(h.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)(j,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),u?(0,Y.jsxs)(o,{variant:`link`,className:`shrink-0`,onClick:u,disabled:g,children:[d(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(L,{className:`h-3.5 w-3.5`})]}):null]})]})})}function mt({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,J.useState)(!1),o=A({mutationFn:n=>Ce(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),S.success(k(`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?k(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:l}}var ht=[{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?`}}],gt=[];function _t({assistantId:e,onStartSetupConversation:t}){let{t:n}=M(`contacts`),r=c.use.a2aChannel(),i=p.use.name(),a=re(),[o]=ie(),l=o.get(`setup`),d=l&&s(l)?l:null,[f,h]=(0,J.useState)({kind:`assistant`}),v=be(e),{paneRef:x,hasRoomForList:w,drawerOpen:E,openDrawer:ee,closeDrawer:O}=_e(),[k,j]=(0,J.useState)(``),[ae,N]=(0,J.useState)(!1),se=_(i),P=(0,J.useMemo)(()=>({path:{assistant_id:e}}),[e]),F=T(P),ce=ne({...y(P),enabled:!!e,select:e=>e.contacts}),I=ye({assistantId:e,onStartSetupConversation:t}),le=ne({...m({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await te({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:ht};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),L=le.data??gt,ue=le.isError,R=ce.data,z=(0,J.useMemo)(()=>R?.find(e=>e.role===`guardian`)??null,[R]),de=(0,J.useMemo)(()=>R?.filter(e=>e.role!==`guardian`)??[],[R]),B=(0,J.useMemo)(()=>f.kind===`contact`?R?.find(e=>e.id===f.contactId)??null:null,[R,f]),fe=(0,J.useMemo)(()=>!R||!B?[]:R.filter(e=>e.id!==B.id&&e.role!==`guardian`),[R,B]),pe=fe.length>0,me=(0,J.useRef)(!!d);(0,J.useEffect)(()=>{me.current||z&&(me.current=!0,h({kind:`contact`,contactId:z.id}))},[z]);let V=(0,J.useCallback)(()=>a.invalidateQueries({queryKey:F}),[a,F]),H=A({mutationFn:()=>Se(e,{displayName:je}),onMutate:async()=>{await a.cancelQueries({queryKey:F})},onSuccess:e=>{C(a,P,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),h({kind:`contact`,contactId:e.id})},onError:K(n(`contactsPage.createFailed`)),onSettled:()=>V()}),U=A({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{C(a,P,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),h({kind:`assistant`})},onError:K(n(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=A({mutationFn:({contactId:t,patch:n})=>Se(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{C(a,P,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(n(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=A({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Se(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{C(a,P,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(n(`contactPermissions.saveFailed`)),onSettled:()=>V()}),q=g({onMutate:async()=>{await a.cancelQueries({queryKey:F})},onSuccess:(e,t)=>{let r=e.contact,i=t.body.mergeId;r&&(C(a,P,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===r.id?r:e)}:void 0),h({kind:`contact`,contactId:r.id})),N(!1),S.success(n(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,J.useCallback)(e=>{h(e),O(),N(!1),q.reset()},[O,q]),Ee=(0,J.useCallback)(()=>{q.reset(),N(!0)},[q]),De=(0,J.useCallback)(()=>{q.isPending||(N(!1),q.reset())},[q]),Oe=D({onSuccess:()=>V()}),ke=(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=L.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.contact;r&&t(r)},[L,t]),Pe=(0,J.useCallback)(e=>{if(!t)return;let n=L.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.guardian;r&&t(r)},[L,t]),X=A({mutationFn:t=>xe(e,t.channelId),onSuccess:()=>V(),onError:K(n(`contactsPage.verifyFailed`))}),Z=A({mutationFn:t=>{if(!B)throw Error(`No contact selected`);return Ce(e,{id:B.id,displayName:B.displayName},{type:t.type,address:t.address})},onSuccess:()=>V(),onError:K(n(`contactsPage.verifyFailed`))}),Ie=(0,J.useCallback)((e,t)=>{if(!B)return;let n=t?.trim();if(n){Z.mutate({type:e,address:n});return}let r=B.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&X.mutate({channelId:r.id})},[B,Z,X]),Q=mt({assistantId:e,channelType:`slack`,contact:B?{id:B.id,displayName:B.displayName}:null,onLinked:V}),Re=ne({...u(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=I.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(!B)return null;let e=B;return W.isPending&&W.variables?.contactId===B.id&&(e={...e,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}),G.isPending&&G.variables?.contactId===B.id&&(e={...e,autoApproveThreshold:G.variables.autoApproveThreshold}),e},[B,W.isPending,W.variables,G.isPending,G.variables]);if(d)return(0,Y.jsx)(oe,{to:`${b.channels}?setup=${d}`,replace:!0});let He={loading:ce.isLoading,assistantName:se,guardian:z?{id:z.id,displayName:z.displayName.startsWith(`vellum-principal-`)?``:z.displayName,role:z.role,channelTypes:bt(z.channels,r)}:null,regularContacts:de.filter(e=>e.id!==Ve).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:bt(e.channels,r),verified:yt(e.channels)})),selection:f,onAddContact:Me,addingContact:H.isPending,search:k,onSearchChange:j};return(0,Y.jsxs)(`div`,{ref:x,className:`flex min-h-0 flex-1 overflow-hidden ${w?`flex-row gap-6`:`flex-col gap-4`}`,children:[w?(0,Y.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,Y.jsx)(st,{...He,onSelect:Te})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(ge,{onClick:ee})}),(0,Y.jsx)(he,{open:E,onClose:O,title:n(`contactsPage.title`),children:(0,Y.jsx)(st,{...He,onSelect:Te})})]}),(0,Y.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:f.kind===`assistant`||f.kind===`contact`&&f.contactId===Ve?(0,Y.jsx)(Fe,{assistantName:se,channels:I.channels,pendingChannelKey:I.pendingChannelKey,onConnect:I.onSetup,onDisconnect:I.onDisconnect}):$?$.role===`guardian`?(0,Y.jsx)(lt,{contact:$,savePending:W.isPending,verifyPending:X.isPending||Z.isPending,mergePending:q.isPending,canMerge:pe,availableChannels:L,channelsLoadFailed:ue,a2aEnabled:r,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Pe:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onGenerateInviteLink:r?v.open:void 0}):(0,Y.jsx)(Xe,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:X.isPending||Z.isPending,mergePending:q.isPending,canMerge:pe,availableChannels:L,channelsLoadFailed:ue,a2aEnabled:r,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Ne:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onLinkAccount:ze?Be:void 0,pendingAutoApproveThreshold:G.isPending,onAutoApproveThresholdChange:e=>{G.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):(0,Y.jsx)(vt,{})}),B?(0,Y.jsx)(Qe,{open:ae,survivor:B,candidates:fe,pending:q.isPending,errorMessage:q.error instanceof Error?q.error.message:q.error?n(`contactsPage.mergeFailed`):null,onMerge:t=>q.mutate({path:{assistant_id:e},body:{keepId:B.id,mergeId:t}}),onClose:De}):null,(0,Y.jsx)(pt,{open:Q.dialogOpen,channelLabel:Ae(`slack`),contactName:B?.displayName??``,accounts:Re.data,loading:Re.isLoading,errorMessage:Re.isError?n(`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 vt(){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 yt(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||Oe(e)))}function bt(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(Ae(e)))}return r}function xt(){let e=ae(),t=v();return(0,Y.jsx)(_t,{assistantId:t,onStartSetupConversation:t=>{f(e,{prompt:t})}},t)}export{xt as ContactsPageRoute};
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{B as t,CS as n,DS as r,Fi as i,Li as a,NS as o,Om as s,Pd as c,Ri as l,S as u,SS as d,Uc as f,Xb as p,Xd as m,aS as h,bp as g,ds as _,et as v,ff as y,fx as b,gS as x,iS as S,mf as C,pS as w,pf as T,rS as E,tS as ee,x_ as te,yp as D,zi as O}from"./app-BBUxTj9g.js";import{I as k,Jn as A,N as j,Zn as ne,er as re,j as M}from"./vendor-ajttH1pP.js";import{_ as ie,f as ae,n as N,r as oe,t as se,x as P}from"./react-B9IgSVeK.js";import{Bi as F,Dn as ce,Kt as I,Lt as le,Ra as L,Vn as ue,Ya as R,Yn as z,Zt as de,_a as B,_t as fe,br as pe,tr as me,vt as V,x as H,za as U}from"./icons-C0wyat6T.js";import{t as W}from"./ellipsis-vertical-Bg7ccW1x.js";import{t as G}from"./detail-card-BhMBZjzu.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-BEt4nE6h.js";import{c as K,i as ve,n as ye,r as q,t as be}from"./use-invite-link-dialog-DNFvVMTr.js";import{a as xe,i as Se,n as Ce,t as we}from"./contacts-gateway-B5O7Ne74.js";var Te=R(`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`}]]),Ee=R(`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(P(),1),De=new Set([`slack`]);function Oe(e){return e.status===`verified`||e.status===`active`&&e.verifiedAt!=null}function ke(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 Ae(e){let t=ke(e.toLowerCase());return t?k(t,{ns:`contacts`}):e}var je=`New Contact`;function Me(e){return e===je}var Y=se();function Ne({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:i}=M(`contacts`),[a,o]=(0,J.useState)(null);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex flex-col`,children:e.map((e,i)=>(0,Y.jsxs)(`div`,{children:[i>0?(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}):null,(0,Y.jsx)(Pe,{channel:e,pending:t===e.key,onConnect:n?()=>n(e.key):void 0,onDisconnect:r&&e.canDisconnect?()=>o(e.key):void 0})]},e.key))}),(0,Y.jsx)(E,{open:a!==null,title:i(`assistantContactChannels.disconnectConfirmTitle`,{channel:a?l(a):``}),message:i(`assistantContactChannels.disconnectConfirmMessage`),confirmLabel:i(`actions.disconnect`),destructive:!0,onConfirm:()=>{a&&r&&r(a),o(null)},onCancel:()=>o(null)})]})}function Pe({channel:e,pending:t,onConnect:n,onDisconnect:r}){let{t:a}=M(`contacts`),s=e.configured,{Icon:c,label:u}=O(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(i,{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:l(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`}),u]}),r?(0,Y.jsx)(o,{variant:`danger`,onClick:r,disabled:t,children:a(t?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(o,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(N,{to:`${b.channels}?setup=${e.key}`,children:a(`actions.manage`)})})]}):n?(0,Y.jsx)(o,{variant:`outlined`,onClick:n,disabled:t,children:a(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(x,{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 Fe({assistantName:e,...t}){let{t:n}=M(`contacts`),r=_(e);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:n(`assistantChannelsDetail.title`,{name:r}),accessory:(0,Y.jsx)(X,{role:`assistant`}),compactAccessory:!0}),(0,Y.jsx)(G,{title:n(`assistantChannelsDetail.channelsTitle`),subtitle:n(`assistantChannelsDetail.channelsSubtitle`,{name:r}),children:(0,Y.jsx)(Ne,{...t})})]})}var Ie=new Set([`telegram`,`phone`,`vellum`,`whatsapp`,`slack`,`email`,`platform`,`a2a`]);function Q(e){return Ie.has(e)}function Le(e){return typeof e.source==`string`&&e.source.startsWith(`plugin:`)}function Re(e){return e.supportsVerification||Le(e)}function ze(e){return!!e?.address?.trim()}function Be(e,t){return e.id===`a2a`?t&&t.status!==`revoked`?{kind:`connected`}:{kind:`setup`}:t!=null&&Oe(t)?{kind:`verified`}:t?.status===`blocked`?{kind:`none`}:t&&t.status!==`revoked`||Le(e)?{kind:`unverified`}:{kind:`setup`}}function Ve(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||Q(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 $({channelId:e,name:t,className:n,style:r}){let i=a(e);if(i)return(0,J.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(B,{className:n,style:r});case`hash`:return(0,Y.jsx)(pe,{className:n,style:r});case`send`:return(0,Y.jsx)(fe,{className:n,style:r});case`phone`:return(0,Y.jsx)(I,{className:n,style:r});case`mail`:return(0,Y.jsx)(ue,{className:n,style:r});case`message-square`:return(0,Y.jsx)(ce,{className:n,style:r});default:return(0,Y.jsx)(Te,{className:n,style:r})}}function He({contactChannels:e,availableChannels:t,channelsLoadFailed:n,a2aEnabled:r,setupLabel:i,verifyLoading:a,verifySubject:o=`self`,onSetupChannel:s,onVerifyChannel:c,onRevokeChannel:l,onLinkAccount:u}){let{t:d}=M(`contacts`),[f,p]=(0,J.useState)(null),[m,h]=(0,J.useState)(null),g=new Map;for(let t of e)t.status!==`revoked`&&(g.has(t.type)||g.set(t.type,t));let _=e=>{f&&(c?.(f.info.id,e),p(null))},v=Ve(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:d(`contactChannelsSection.loadFailed`)}),v.map((e,t)=>{let n=g.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)(Ue,{info:e,existing:n,setupLabel:i??d(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:s?()=>s(e.id):void 0,onVerify:c&&Re(e)?()=>p({info:e,existing:n}):void 0,onRevoke:l&&n?()=>h({channelId:n.id,channel:e}):void 0,onLinkAccount:u&&De.has(e.id)?()=>u(e.id):void 0})]},e.id)})]}),f?(0,Y.jsx)(We,{info:f.info,existing:f.existing,verifySubject:o,onConfirm:_,onCancel:()=>p(null)}):null,m&&(0,Y.jsx)(E,{open:!0,title:d(`contactChannelsSection.revokeConfirmTitle`,{channel:m.channel.label}),message:d(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:d(`actions.revoke`),destructive:!0,onConfirm:()=>{l?.(m.channelId,m.channel.id),h(null)},onCancel:()=>h(null)})]})}function Ue({info:e,existing:t,setupLabel:n,verifyLoading:r,onSetup:i,onVerify:a,onRevoke:s,onLinkAccount:c}){let{t:l}=M(`contacts`),u=Be(e,t);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)($,{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)(F,{className:`h-3 w-3`}),l(`channelStatus.connected`)]}),s?(0,Y.jsx)(o,{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)(F,{className:`h-3 w-3`}),l(`channelStatus.verified`)]}),s?(0,Y.jsx)(o,{variant:`danger`,onClick:s,children:l(`actions.revoke`)}):null]}):u.kind===`unverified`?(0,Y.jsx)(o,{variant:`outlined`,onClick:a,disabled:!a||r,children:l(r?`actions.verifying`:`actions.verify`)}):u.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[c?(0,Y.jsxs)(o,{onClick:c,children:[(0,Y.jsx)(me,{className:`h-3.5 w-3.5`}),l(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(o,{variant:`outlined`,onClick:i,disabled:!i,children:n})]}):null})]})}function We({info:e,existing:t,verifySubject:n,onConfirm:r,onCancel:i}){let{t:a}=M(`contacts`),[s,c]=(0,J.useState)(t?.address?.trim()??``),l=(0,J.useRef)(null),u=(0,J.useId)(),d=s.trim();return ze(t)?(0,Y.jsx)(E,{open:!0,title:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label}),message:a(n===`contact`?`contactChannelsSection.verifyConfirmMessageContact`:`contactChannelsSection.verifyConfirmMessageGuardian`,{channel:e.label}),confirmLabel:a(`actions.verify`),onConfirm:()=>{r()},onCancel:i}):(0,Y.jsx)(h.Root,{open:!0,onOpenChange:e=>{e||i()},children:(0,Y.jsx)(h.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),l.current?.focus()},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),i()},children:(0,Y.jsxs)(`form`,{className:`flex flex-col`,onSubmit:e=>{e.preventDefault(),d.length!==0&&r(d)},children:[(0,Y.jsx)(h.Header,{children:(0,Y.jsx)(h.Title,{children:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(h.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(h.Description,{children:a(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(w,{ref:l,id:u,label:a(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:s,onChange:e=>{c(e.target.value)},placeholder:a(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,Y.jsxs)(h.Footer,{children:[(0,Y.jsx)(o,{variant:`outlined`,type:`button`,onClick:i,children:a(`actions.cancel`)}),(0,Y.jsx)(o,{type:`submit`,disabled:d.length===0,children:a(`actions.verify`)})]})]})})})}function Ge(e){return e===`none`||e===`low`||e===`medium`||e===`high`}function Ke(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 qe(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 Je(e){return e.role!==`guardian`&&e.contactType!==`assistant`}function Ye({contact:e,pending:n,onAutoApproveThresholdChange:r}){let{t:i}=M(`contacts`),a=Ge(e.autoApproveThreshold)?e.autoApproveThreshold:null,o=a===null?null:t.find(e=>e.riskThreshold===a);return(0,Y.jsx)(G,{title:i(`contactPermissions.title`),subtitle:i(`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)(ee,{value:o?.id??null,placeholder:i(`contactPermissions.inheritLabel`),disabled:n,onSelectNone:()=>{r(null)},onChange:e=>{let n=t.find(t=>t.id===e);n&&r(n.riskThreshold)},options:[{value:null,label:i(`contactPermissions.inheritLabel`)},...t.map(e=>{let t=e.icon;return{value:e.id,label:Ke(i,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:qe(i,a)})]})})}function Xe(e){return(0,Y.jsx)(Ze,{...e},e.contact.id)}function Ze({contact:e,savePending:t,deletePending:n,verifyPending:r,mergePending:i=!1,canMerge:a=!1,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,onSave:u,onDelete:d,onMerge:f,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g,pendingAutoApproveThreshold:_,onAutoApproveThresholdChange:v}){let{t:y}=M(`contacts`),b=Me(e.displayName),[x,S]=(0,J.useState)(b?``:e.displayName),[C,T]=(0,J.useState)(e.notes??``),[ee,te]=(0,J.useState)(!1),D=x.trim(),O=C.trim(),k=b?``:e.displayName,A=e.notes??``,j=D!==k||O!==A,ne=D.length>0&&j&&!t&&!n,re=b&&e.channels.length===0&&e.interactionCount===0,ie=D||(b?y(`contact.draftName`):e.displayName),ae=y(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{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:y(`contact.nameLabel`),type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:y(`contactDetailView.namePlaceholder`),autoFocus:b,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(w,{label:y(`contact.notesLabel`),type:`text`,value:C,onChange:e=>T(e.target.value),placeholder:y(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(o,{type:`button`,onClick:()=>u({displayName:D,notes:O}),disabled:!ne,children:y(t?`actions.saving`:`actions.save`)}),f?(0,Y.jsx)(o,{type:`button`,variant:`outlined`,onClick:f,disabled:!a||re||j||i||t||n,title:a?re?y(`contactDetailView.mergeBlockedUnsavedDraft`):j?y(`contact.mergeBlockedUnsaved`):void 0:y(`contact.mergeBlockedNoCandidates`),children:y(i?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(o,{type:`button`,variant:`danger`,onClick:()=>{re?d():te(!0)},disabled:n,children:y(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(G,{title:y(`contactDetailView.linkedAccountsTitle`),subtitle:y(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:s,channelsLoadFailed:c,a2aEnabled:l,verifyLoading:r,verifySubject:`contact`,onSetupChannel:p,onVerifyChannel:m,onRevokeChannel:h,onLinkAccount:g})}),Je(e)&&v?(0,Y.jsx)(Ye,{contact:e,pending:_,onAutoApproveThresholdChange:v}):null,(0,Y.jsx)(E,{open:ee,title:y(`contactDetailView.deleteConfirmTitle`,{name:ie}),message:y(`contactDetailView.deleteConfirmMessage`),confirmLabel:y(`actions.delete`),destructive:!0,onConfirm:()=>{te(!1),d()},onCancel:()=>te(!1)})]})}function Qe(e){return(0,Y.jsx)($e,{...e},`${e.survivor.id}:${e.open?`open`:`closed`}`)}function $e({open:e,survivor:t,candidates:r,pending:i,errorMessage:a,onMerge:s,onClose:c}){let{t:l}=M(`contacts`),[u,d]=(0,J.useState)(``),[f,p]=(0,J.useState)(null);(0,J.useEffect)(()=>{f&&!r.some(e=>e.id===f)&&p(null)},[r,f]);let m=(0,J.useMemo)(()=>{let e=u.trim().toLowerCase();return e?r.filter(t=>t.displayName.toLowerCase().includes(e)):r},[r,u]),g=f?r.find(e=>e.id===f)??null:null,_=it(t);return(0,Y.jsx)(h.Root,{open:e,onOpenChange:e=>{!e&&!i&&c()},children:(0,Y.jsxs)(h.Content,{size:`md`,children:[(0,Y.jsxs)(h.Header,{icon:Ee,children:[(0,Y.jsx)(h.Title,{children:g?l(`contactMergeDialog.titlePicked`,{donor:g.displayName,survivor:_}):l(`contactMergeDialog.titlePicking`,{survivor:_})}),(0,Y.jsx)(h.Description,{children:l(g?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(h.Body,{className:`flex flex-col gap-3`,children:[g?(0,Y.jsx)(nt,{survivor:t,donor:g}):r.length===0?(0,Y.jsx)(rt,{}):(0,Y.jsx)(et,{search:u,onSearch:d,candidates:m,onPick:p}),a?(0,Y.jsx)(n,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,Y.jsx)(h.Footer,{children:g?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(o,{variant:`outlined`,onClick:()=>p(null),disabled:i,leftIcon:(0,Y.jsx)(U,{"aria-hidden":!0}),children:l(`actions.back`)}),(0,Y.jsx)(o,{variant:`danger`,onClick:()=>s(g.id),disabled:i,children:l(i?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(o,{variant:`outlined`,onClick:c,disabled:i,children:l(`actions.cancel`)})})]})})}function et({search:e,onSearch:t,candidates:r,onPick:i}){let{t:a}=M(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(w,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(V,{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":a(`contactMergeDialog.listAriaLabel`),children:r.length===0?(0,Y.jsx)(n,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):r.map(e=>(0,Y.jsx)(tt,{contact:e,onPick:()=>i(e.id)},e.id))})]})}function tt({contact:e,onPick:t}){let n=ot(e).join(` | `)||void 0;return(0,Y.jsx)(r,{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 nt({survivor:e,donor:t}){let{t:n}=M(`contacts`),r=it(e),{moved:i,duplicates:a}=at(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)(j,{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=>Ae(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 rt(){let{t:e}=M(`contacts`);return(0,Y.jsx)(n,{as:`p`,variant:`body-medium-lighter`,className:`px-3 py-6 text-center text-(--content-tertiary)`,children:e(`contactMergeDialog.empty`)})}function it(e){return e.role===`guardian`?!e.displayName||e.displayName.startsWith(`vellum-principal-`)?k(`survivorName.you`,{ns:`contacts`}):k(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||k(`survivorName.thisContact`,{ns:`contacts`})}function at(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 ot(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(Ae(e)))}return n}function st({loading:e,guardian:t,assistantName:n,regularContacts:r,selection:i,onSelect:a,onAddContact:s,addingContact:c=!1,search:l,onSearchChange:u}){let{t:f}=M(`contacts`),p=l.trim()?r.filter(e=>e.displayName.toLowerCase().includes(l.trim().toLowerCase())):r;return(0,Y.jsx)(d.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(d.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:f(`contactsList.heading`)}),(0,Y.jsx)(o,{type:`button`,variant:`ghost`,iconOnly:c?(0,Y.jsx)(z,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(le,{"aria-hidden":!0}),onClick:s,disabled:c,"aria-label":f(`contactsList.addAriaLabel`),tintColor:`var(--content-secondary)`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[t?(0,Y.jsx)(ct,{name:t.displayName?f(`contactsList.youNamed`,{name:t.displayName}):f(`contactsList.you`),role:t.role,channelTypes:t.channelTypes,selected:i?.kind===`contact`&&i.contactId===t.id,onClick:()=>a({kind:`contact`,contactId:t.id}),trailingIcon:`pencil`}):null,(0,Y.jsx)(ct,{name:n?.trim()||f(`contactsList.assistantFallback`),role:`assistant`,selected:i?.kind===`assistant`,onClick:()=>a({kind:`assistant`}),trailingIcon:`more`})]}),(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),r.length>0?(0,Y.jsx)(w,{type:`text`,value:l,onChange:e=>u(e.target.value),placeholder:f(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(V,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0}):null,r.length>0?(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto flex flex-col gap-1`,children:[p.map(e=>(0,Y.jsx)(ct,{name:e.displayName,role:e.role,contactType:e.contactType,channelTypes:e.channelTypes,verified:e.verified,selected:i?.kind===`contact`&&i.contactId===e.id,onClick:()=>a({kind:`contact`,contactId:e.id}),trailingIcon:`more`},e.id)),p.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:f(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(o,{type:`button`,variant:`ghost`,onClick:s,disabled:c,tintColor:`var(--primary-base)`,leftIcon:c?(0,Y.jsx)(z,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(H,{"aria-hidden":!0}),children:f(`contactsList.add`)})]})})}function ct({name:e,role:t,contactType:n,channelTypes:i,selected:a,onClick:o,trailingIcon:s,verified:c}){let{t:l}=M(`contacts`),u=i&&i.length>0?i.join(` | `):void 0,d=s===`pencil`?(0,Y.jsx)(de,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):s===`more`?(0,Y.jsx)(W,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):void 0;return(0,Y.jsx)(r,{asChild:!0,active:a,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:o,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}),u?(0,Y.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:u}):null]}),(0,Y.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1`,children:[c===void 0?null:(0,Y.jsx)(x,{tone:c?`positive`:`neutral`,children:l(c?`contactsList.verified`:`contactsList.unverified`)}),(0,Y.jsx)(X,{role:t,contactType:n}),d]})]})})}function lt(e){return(0,Y.jsx)(ut,{...e},e.contact.id)}function ut({contact:e,savePending:t,verifyPending:n,mergePending:r=!1,canMerge:i=!1,availableChannels:a,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(),C=b.trim(),T=S!==_.trim()||C!==(e.notes??``).trim(),E=T&&!t,ee=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:g?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:ee,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)(o,{variant:`primary`,onClick:()=>l({displayName:S||e.displayName,notes:C}),disabled:!E,children:h(t?`actions.saving`:`actions.save`)}),u?(0,Y.jsx)(o,{variant:`outlined`,onClick:u,disabled:!i||T||r||t,title:i?T?h(`contact.mergeBlockedUnsaved`):void 0:h(`contact.mergeBlockedNoCandidates`),children:h(r?`actions.merging`:`actions.merge`)}):null]})]})}),(0,Y.jsx)(G,{title:h(`guardianDetailView.channelsTitle`),subtitle:h(`guardianDetailView.channelsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:a,channelsLoadFailed:s,a2aEnabled:c,setupLabel:h(`guardianDetailView.setupLabel`),verifyLoading:n,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p})}),m?(0,Y.jsx)(q,{onClick:m}):null]})}function dt(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 ft(e){let t=e.trim().split(/\s+/).filter(Boolean);return`${t[0]?.[0]??`?`}${t.length>1?t[t.length-1]?.[0]??``:``}`.toUpperCase()}function pt({open:e,channelLabel:t,contactName:n,accounts:r,loading:i,errorMessage:a,pendingAccountId:s,onPick:c,onClose:l,onInviteInstead:u}){let{t:d}=M(`contacts`),[f,p]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&p(``)},[e]);let m=(0,J.useMemo)(()=>dt(r??[],f),[r,f]),g=s!=null;return(0,Y.jsx)(h.Root,{open:e,onOpenChange:e=>!e&&l(),children:(0,Y.jsxs)(h.Content,{size:`sm`,children:[(0,Y.jsxs)(h.Header,{children:[(0,Y.jsx)(h.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(h.Description,{children:(0,Y.jsx)(j,{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)(h.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(w,{type:`search`,value:f,onChange:e=>p(e.target.value),placeholder:d(`linkAccountDialog.searchPlaceholder`),"aria-label":d(`linkAccountDialog.searchAriaLabel`,{channel:t}),leftIcon:(0,Y.jsx)(V,{className:`h-4 w-4`}),fullWidth:!0}),a?(0,Y.jsx)(`p`,{className:`text-body-small-default text-[color:var(--content-negative)]`,children:a}):null,(0,Y.jsx)(`div`,{className:`max-h-80 overflow-y-auto`,children:i?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.loading`)}):m.length===0?(0,Y.jsx)(`p`,{className:`py-4 text-center text-body-small-default text-[color:var(--content-tertiary)]`,children:(r?.length??0)===0?d(`linkAccountDialog.noMembers`):d(`linkAccountDialog.noMatches`)}):(0,Y.jsx)(`ul`,{className:`flex flex-col`,children:m.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>c(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:ft(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]})]}),s===e.id?(0,Y.jsx)(`span`,{className:`ml-auto shrink-0 text-body-small-default text-[color:var(--content-tertiary)]`,children:d(`linkAccountDialog.linking`)}):null]})},e.id))})})]}),(0,Y.jsxs)(h.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)(j,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),u?(0,Y.jsxs)(o,{variant:`link`,className:`shrink-0`,onClick:u,disabled:g,children:[d(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(L,{className:`h-3.5 w-3.5`})]}):null]})]})})}function mt({assistantId:e,channelType:t,contact:n,onLinked:r}){let[i,a]=(0,J.useState)(!1),o=A({mutationFn:n=>Ce(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{a(!1),S.success(k(`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?k(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:o.isPending?o.variables.account.id:null,pick:l}}var ht=[{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?`}}],gt=[];function _t({assistantId:e,onStartSetupConversation:t}){let{t:n}=M(`contacts`),r=c.use.a2aChannel(),i=p.use.name(),a=re(),[o]=ie(),l=o.get(`setup`),d=l&&s(l)?l:null,[f,h]=(0,J.useState)({kind:`assistant`}),v=be(e),{paneRef:x,hasRoomForList:w,drawerOpen:E,openDrawer:ee,closeDrawer:O}=_e(),[k,j]=(0,J.useState)(``),[ae,N]=(0,J.useState)(!1),se=_(i),P=(0,J.useMemo)(()=>({path:{assistant_id:e}}),[e]),F=T(P),ce=ne({...y(P),enabled:!!e,select:e=>e.contacts}),I=ye({assistantId:e,onStartSetupConversation:t}),le=ne({...m({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await te({path:{assistant_id:e},signal:t,throwOnError:!1});if(i?.status===404)return{channels:ht};if(!i||!i.ok)throw r??Error(`Failed to fetch channel availability`);return n},select:e=>e.channels}),L=le.data??gt,ue=le.isError,R=ce.data,z=(0,J.useMemo)(()=>R?.find(e=>e.role===`guardian`)??null,[R]),de=(0,J.useMemo)(()=>R?.filter(e=>e.role!==`guardian`)??[],[R]),B=(0,J.useMemo)(()=>f.kind===`contact`?R?.find(e=>e.id===f.contactId)??null:null,[R,f]),fe=(0,J.useMemo)(()=>!R||!B?[]:R.filter(e=>e.id!==B.id&&e.role!==`guardian`),[R,B]),pe=fe.length>0,me=(0,J.useRef)(!!d);(0,J.useEffect)(()=>{me.current||z&&(me.current=!0,h({kind:`contact`,contactId:z.id}))},[z]);let V=(0,J.useCallback)(()=>a.invalidateQueries({queryKey:F}),[a,F]),H=A({mutationFn:()=>Se(e,{displayName:je}),onMutate:async()=>{await a.cancelQueries({queryKey:F})},onSuccess:e=>{C(a,P,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),h({kind:`contact`,contactId:e.id})},onError:K(n(`contactsPage.createFailed`)),onSettled:()=>V()}),U=A({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{C(a,P,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),h({kind:`assistant`})},onError:K(n(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=A({mutationFn:({contactId:t,patch:n})=>Se(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{C(a,P,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(n(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=A({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Se(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{C(a,P,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(n(`contactPermissions.saveFailed`)),onSettled:()=>V()}),q=g({onMutate:async()=>{await a.cancelQueries({queryKey:F})},onSuccess:(e,t)=>{let r=e.contact,i=t.body.mergeId;r&&(C(a,P,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==i).map(e=>e.id===r.id?r:e)}:void 0),h({kind:`contact`,contactId:r.id})),N(!1),S.success(n(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,J.useCallback)(e=>{h(e),O(),N(!1),q.reset()},[O,q]),Ee=(0,J.useCallback)(()=>{q.reset(),N(!0)},[q]),De=(0,J.useCallback)(()=>{q.isPending||(N(!1),q.reset())},[q]),Oe=D({onSuccess:()=>V()}),ke=(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=L.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.contact;r&&t(r)},[L,t]),Pe=(0,J.useCallback)(e=>{if(!t)return;let n=L.find(t=>t.id===e);if(!n||Le(n))return;let r=n.setupMessages.guardian;r&&t(r)},[L,t]),X=A({mutationFn:t=>xe(e,t.channelId),onSuccess:()=>V(),onError:K(n(`contactsPage.verifyFailed`))}),Z=A({mutationFn:t=>{if(!B)throw Error(`No contact selected`);return Ce(e,{id:B.id,displayName:B.displayName},{type:t.type,address:t.address})},onSuccess:()=>V(),onError:K(n(`contactsPage.verifyFailed`))}),Ie=(0,J.useCallback)((e,t)=>{if(!B)return;let n=t?.trim();if(n){Z.mutate({type:e,address:n});return}let r=B.channels.find(t=>t.type===e&&t.status!==`revoked`);r?.address?.trim()&&X.mutate({channelId:r.id})},[B,Z,X]),Q=mt({assistantId:e,channelType:`slack`,contact:B?{id:B.id,displayName:B.displayName}:null,onLinked:V}),Re=ne({...u(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=I.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(!B)return null;let e=B;return W.isPending&&W.variables?.contactId===B.id&&(e={...e,displayName:W.variables.patch.displayName,notes:W.variables.patch.notes}),G.isPending&&G.variables?.contactId===B.id&&(e={...e,autoApproveThreshold:G.variables.autoApproveThreshold}),e},[B,W.isPending,W.variables,G.isPending,G.variables]);if(d)return(0,Y.jsx)(oe,{to:`${b.channels}?setup=${d}`,replace:!0});let He={loading:ce.isLoading,assistantName:se,guardian:z?{id:z.id,displayName:z.displayName.startsWith(`vellum-principal-`)?``:z.displayName,role:z.role,channelTypes:bt(z.channels,r)}:null,regularContacts:de.filter(e=>e.id!==Ve).map(e=>({id:e.id,displayName:e.displayName,role:e.role,contactType:e.contactType,channelTypes:bt(e.channels,r),verified:yt(e.channels)})),selection:f,onAddContact:Me,addingContact:H.isPending,search:k,onSearchChange:j};return(0,Y.jsxs)(`div`,{ref:x,className:`flex min-h-0 flex-1 overflow-hidden ${w?`flex-row gap-6`:`flex-col gap-4`}`,children:[w?(0,Y.jsx)(`aside`,{className:`min-h-0 w-[320px] shrink-0 overflow-y-auto self-stretch`,children:(0,Y.jsx)(st,{...He,onSelect:Te})}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(ge,{onClick:ee})}),(0,Y.jsx)(he,{open:E,onClose:O,title:n(`contactsPage.title`),children:(0,Y.jsx)(st,{...He,onSelect:Te})})]}),(0,Y.jsx)(`section`,{className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:f.kind===`assistant`||f.kind===`contact`&&f.contactId===Ve?(0,Y.jsx)(Fe,{assistantName:se,channels:I.channels,pendingChannelKey:I.pendingChannelKey,onConnect:I.onSetup,onDisconnect:I.onDisconnect}):$?$.role===`guardian`?(0,Y.jsx)(lt,{contact:$,savePending:W.isPending,verifyPending:X.isPending||Z.isPending,mergePending:q.isPending,canMerge:pe,availableChannels:L,channelsLoadFailed:ue,a2aEnabled:r,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Pe:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onGenerateInviteLink:r?v.open:void 0}):(0,Y.jsx)(Xe,{contact:$,savePending:W.isPending,deletePending:U.isPending,verifyPending:X.isPending||Z.isPending,mergePending:q.isPending,canMerge:pe,availableChannels:L,channelsLoadFailed:ue,a2aEnabled:r,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onDelete:()=>{U.mutate($.id)},onMerge:Ee,onSetupChannel:t?Ne:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onLinkAccount:ze?Be:void 0,pendingAutoApproveThreshold:G.isPending,onAutoApproveThresholdChange:e=>{G.mutate({contactId:$.id,displayName:$.displayName,autoApproveThreshold:e})}}):(0,Y.jsx)(vt,{})}),B?(0,Y.jsx)(Qe,{open:ae,survivor:B,candidates:fe,pending:q.isPending,errorMessage:q.error instanceof Error?q.error.message:q.error?n(`contactsPage.mergeFailed`):null,onMerge:t=>q.mutate({path:{assistant_id:e},body:{keepId:B.id,mergeId:t}}),onClose:De}):null,(0,Y.jsx)(pt,{open:Q.dialogOpen,channelLabel:Ae(`slack`),contactName:B?.displayName??``,accounts:Re.data,loading:Re.isLoading,errorMessage:Re.isError?n(`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 vt(){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 yt(e){return e.some(e=>e.status!==`revoked`&&(e.type===`a2a`||Oe(e)))}function bt(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(Ae(e)))}return r}function xt(){let e=ae(),t=v();return(0,Y.jsx)(_t,{assistantId:t,onStartSetupConversation:t=>{f(e,{prompt:t})}},t)}export{xt as ContactsPageRoute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Av as e,NS as t}from"./app-
|
|
1
|
+
import{Av as e,NS as t}from"./app-BBUxTj9g.js";import{j as n}from"./vendor-ajttH1pP.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}=e({errorMessage:l(`copyButton.copyFailed`)});return(0,o.jsx)(t,{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{NS as t,SS as n,pS as r,yg as i}from"./app-
|
|
1
|
+
import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{NS as t,SS as n,pS as r,yg as i}from"./app-BBUxTj9g.js";import{j as a}from"./vendor-ajttH1pP.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(--background-muted)] 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(),leftIcon:g?(0,b.jsx)(l,{className:`animate-spin`,"aria-hidden":!0}):void 0,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-default)] px-6 py-10 text-[var(--content-primary)]`,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};
|