@vellumai/web 0.12.2-staging.4 → 0.12.2-staging.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/dist/assets/{a2a-invite-C-d__v0P.js → a2a-invite-D7Z1FvN-.js} +1 -1
  2. package/dist/assets/{about-page-BMTVVfA2.js → about-page-JRNWZ7kb.js} +1 -1
  3. package/dist/assets/{account-page-Bu04CQvW.js → account-page-Fw9S3qL2.js} +1 -1
  4. package/dist/assets/{account-shell-0TviHaBf.js → account-shell-BZp2-g1N.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-w4reCx6D.js → acp-run-detail-panel-2Nc7KPDZ.js} +1 -1
  6. package/dist/assets/{activation-list-route-CSuVtIeq.js → activation-list-route-L2lNhfTD.js} +1 -1
  7. package/dist/assets/{activity-redirect-page-Cgmmb8Rc.js → activity-redirect-page-ClzSvQoo.js} +1 -1
  8. package/dist/assets/{activity-steps-panel-C26DS_qd.js → activity-steps-panel-DSJiB6_Z.js} +1 -1
  9. package/dist/assets/{add-credits-modal-IIKnKS9l.js → add-credits-modal-CAUxaNjZ.js} +1 -1
  10. package/dist/assets/add-credits-modal-CXZ_HMMM.js +1 -0
  11. package/dist/assets/{ai-page-_iWq21vC.js → ai-page-yAJ8z8PM.js} +1 -1
  12. package/dist/assets/{android-billing-handoff-BVx_2Qs0.js → android-billing-handoff-BxVpZpp4.js} +1 -1
  13. package/dist/assets/{api-key-screen-xui6n8NR.js → api-key-screen-Ccta6gO2.js} +1 -1
  14. package/dist/assets/{app-info-4gR8gnBC.js → app-info-Csu7V_TE.js} +1 -1
  15. package/dist/assets/app-p4YU9h0P.js +392 -0
  16. package/dist/assets/{archive-redirect-page-D1zUz-Kn.js → archive-redirect-page-CzxO3IP6.js} +1 -1
  17. package/dist/assets/{assistant-status-panel-B-woG0mJ.js → assistant-status-panel-WAUlzwkS.js} +1 -1
  18. package/dist/assets/auth-store-Ck1z7eSl.js +1 -0
  19. package/dist/assets/{auth-welcome-screen-BsYIoTpq.js → auth-welcome-screen-pfPKjv5w.js} +1 -1
  20. package/dist/assets/avatar-bundled-components-D1XVsaGL.js +1 -0
  21. package/dist/assets/{avatar-random-DTCQMspt.js → avatar-random-Cki-Ly_C.js} +2 -2
  22. package/dist/assets/{await-org-header-settled-euao9G4w.js → await-org-header-settled-6bT0rbUs.js} +1 -1
  23. package/dist/assets/{background-task-detail-panel-Bm7wkZ5w.js → background-task-detail-panel-BYCUOtG5.js} +1 -1
  24. package/dist/assets/{billing-page-BkUfkbYS.js → billing-page-DUNd0r_e.js} +3 -3
  25. package/dist/assets/{billing-redirect-page-A8_L7A4l.js → billing-redirect-page-Dl__amIR.js} +1 -1
  26. package/dist/assets/{bookmarks-page-Db3QFcDm.js → bookmarks-page-5HR6Klms.js} +1 -1
  27. package/dist/assets/{bundle-confirm-page-Cnb49ExR.js → bundle-confirm-page-BxHGHYtw.js} +1 -1
  28. package/dist/assets/{channel-transcript-panel-DFDoSX5e.js → channel-transcript-panel-O29G6BfM.js} +1 -1
  29. package/dist/assets/{channels-page-route-9NljMyj4.js → channels-page-route-BsAycszP.js} +1 -1
  30. package/dist/assets/{chat-info-panel-BENFQ0tW.js → chat-info-panel-C3GOJkgC.js} +1 -1
  31. package/dist/assets/{checkout-continuation-C38t4ayV.js → checkout-continuation-CI0HG33e.js} +1 -1
  32. package/dist/assets/{checkout-page-B6HAgaEv.js → checkout-page-KqQmNMqQ.js} +1 -1
  33. package/dist/assets/checkout-return-target-B4WZzAGx.js +1 -0
  34. package/dist/assets/command-palette-BPcXUSG_.js +1 -0
  35. package/dist/assets/{command-palette-BIYpDozl.js → command-palette-DxolRnp8.js} +1 -1
  36. package/dist/assets/{command-palette-window-page-BMC7dzK0.js → command-palette-window-page-B4sEAiOF.js} +1 -1
  37. package/dist/assets/{community-page-BxDoLG0_.js → community-page-OsB5Ahr9.js} +1 -1
  38. package/dist/assets/{companion-accent-pu5Xu8Z6.js → companion-accent-BhdiAsTr.js} +1 -1
  39. package/dist/assets/{companion-dock-zones-page-BEfMdIVO.js → companion-dock-zones-page-xJmPXMgY.js} +1 -1
  40. package/dist/assets/{companion-layout-Ye64fIzN.js → companion-layout-BPhlz6Wp.js} +1 -1
  41. package/dist/assets/{companion-popover-Bs6A6445.js → companion-popover-BsbCOPDj.js} +1 -1
  42. package/dist/assets/{companion-popover-page-7jpYeiIN.js → companion-popover-page-4ULIStvW.js} +1 -1
  43. package/dist/assets/{companion-surface-page-BrMY3X-F.js → companion-surface-page-BU0SxRLT.js} +1 -1
  44. package/dist/assets/{companion-watch-frame-page-Bk0N7E-g.js → companion-watch-frame-page-BwKy3_MW.js} +1 -1
  45. package/dist/assets/{connect-page-Bf8bYBAk.js → connect-page-BDVFjuF6.js} +1 -1
  46. package/dist/assets/{consent-controls-N6cnmytV.js → consent-controls-BXRj0Z62.js} +1 -1
  47. package/dist/assets/{contacts-gateway-C_BunUUf.js → contacts-gateway-jgC2hJQu.js} +1 -1
  48. package/dist/assets/{contacts-page-route-DIxMGBde.js → contacts-page-route-C8DyP00R.js} +1 -1
  49. package/dist/assets/{credential-entry-page-2ek7NaCu.js → credential-entry-page-DZm1DSNe.js} +1 -1
  50. package/dist/assets/{credentials-page-D3PvFMgc.js → credentials-page-BFptIyXc.js} +1 -1
  51. package/dist/assets/{csv-preview-BB-EmIxC.js → csv-preview-DYuTN03x.js} +1 -1
  52. package/dist/assets/{danger-zone-redirect-page-BVmYzrKj.js → danger-zone-redirect-page-BgNNmPcD.js} +1 -1
  53. package/dist/assets/{debug-page-CJOt0BAt.js → debug-page-CsudFgfJ.js} +1 -1
  54. package/dist/assets/{deploy-dialogs-BSCor8jx.js → deploy-dialogs-BXow2FID.js} +1 -1
  55. package/dist/assets/deploy-dialogs-Bh91S82o.js +1 -0
  56. package/dist/assets/{desktop-preview-content-BIp4Vpgt.js → desktop-preview-content-DZb6VLVc.js} +2 -2
  57. package/dist/assets/{desktop-status-CHoj8auj.js → desktop-status-Dg1h8ABX.js} +1 -1
  58. package/dist/assets/{desktop-viewer-86gYrlm2.js → desktop-viewer-38EXOmZ4.js} +1 -1
  59. package/dist/assets/{detail-card-CGafPdBQ.js → detail-card-BpqiAUnN.js} +1 -1
  60. package/dist/assets/{detail-panel-stop-button-BqhRaB6y.js → detail-panel-stop-button-BFDJ5Gir.js} +1 -1
  61. package/dist/assets/{detail-primitives-DIBzx3XJ.js → detail-primitives-CYiljnNr.js} +1 -1
  62. package/dist/assets/{developer-page-p4Ylxemb.js → developer-page-BIPONPKj.js} +1 -1
  63. package/dist/assets/{devices-redirect-page-BcyaUgzH.js → devices-redirect-page-DwI95Deo.js} +1 -1
  64. package/dist/assets/{dictation-overlay-page-C9yEcxKh.js → dictation-overlay-page-Du7FXduO.js} +1 -1
  65. package/dist/assets/{document-load-CZeb0od7.js → document-load-B4r-kmWD.js} +1 -1
  66. package/dist/assets/document-load-Bcy7cK7m.js +1 -0
  67. package/dist/assets/{document-viewer-page-L_O7lYHa.js → document-viewer-page-BzftukxE.js} +1 -1
  68. package/dist/assets/{emails-page-fgZebuJ7.js → emails-page-Cp6XS4Jh.js} +1 -1
  69. package/dist/assets/{environment-store-7mW8BRRm.js → environment-store-DXa_IPIU.js} +1 -1
  70. package/dist/assets/{file-diff-view-B9dRfPbB.js → file-diff-view-DIBSfwHd.js} +1 -1
  71. package/dist/assets/{file-editor-DtbuATs6.js → file-editor-gXTdPzcn.js} +1 -1
  72. package/dist/assets/{general-page-iMRa5Ucp.js → general-page-Du-jPHaf.js} +1 -1
  73. package/dist/assets/{hatching-screen-C9GXGQ2P.js → hatching-screen-BZup1IEp.js} +1 -1
  74. package/dist/assets/{hosting-screen-D8bCW4Uz.js → hosting-screen-B1uKDCEA.js} +1 -1
  75. package/dist/assets/{identity-page-route-D0fpi7db.js → identity-page-route-Cm6K_bBR.js} +1 -1
  76. package/dist/assets/{inspect-page-C2T5Wpgw.js → inspect-page-iBkyiBTD.js} +3 -3
  77. package/dist/assets/{integrations-page-3cwkXYyq.js → integrations-page-CVmr89JP.js} +1 -1
  78. package/dist/assets/{intelligence-layout-jyahyAWu.js → intelligence-layout-CzYFqgC5.js} +1 -1
  79. package/dist/assets/intelligence-layout-slots-store-C5ni0SPd.js +1 -0
  80. package/dist/assets/{keyboard-shortcuts-redirect-page-Bcl-FjyB.js → keyboard-shortcuts-redirect-page-VOpK_vkw.js} +1 -1
  81. package/dist/assets/{latest-assistant-text-HB3-JTrf.js → latest-assistant-text-CRS_nZkk.js} +1 -1
  82. package/dist/assets/{library-detail-page-DTptYQAF.js → library-detail-page-CYDXCYR7.js} +1 -1
  83. package/dist/assets/{library-page-D0OfVER_.js → library-page-DU9_fODf.js} +1 -1
  84. package/dist/assets/local-mode-BwMCd1ly.js +1 -0
  85. package/dist/assets/{login-page-BA3GjFvS.js → login-page-OqpqflhY.js} +1 -1
  86. package/dist/assets/{logout-page-Dp--IQJm.js → logout-page-B75MMPkh.js} +1 -1
  87. package/dist/assets/{logs-layout-C4SjgNAl.js → logs-layout-Dj1ybnfw.js} +1 -1
  88. package/dist/assets/{markdown-preview-CBu26q1U.js → markdown-preview-r7bRpgS4.js} +1 -1
  89. package/dist/assets/{media-preview-CrddXQMc.js → media-preview-ozDVMMcK.js} +1 -1
  90. package/dist/assets/{memory-page-route-BzLfpam9.js → memory-page-route-DSoeQ_G0.js} +1 -1
  91. package/dist/assets/{memory-router-playground-page-CP0Eurny.js → memory-router-playground-page-Cica9Nbb.js} +1 -1
  92. package/dist/assets/{message-files-panel-CDzpeEx4.js → message-files-panel-DwXYI7Vj.js} +1 -1
  93. package/dist/assets/{metric-card-Dkx47Ug0.js → metric-card-CRZNAmE4.js} +1 -1
  94. package/dist/assets/native-attachment-pickers-DH76HUOD.js +1 -0
  95. package/dist/assets/native-file-AwxfXJFy.js +1 -0
  96. package/dist/assets/{notifications-page-1r0ehmHL.js → notifications-page-8XrbAs9c.js} +1 -1
  97. package/dist/assets/{oauth-complete-page-D8yKCOVn.js → oauth-complete-page-B-oiboUF.js} +1 -1
  98. package/dist/assets/{oauth-popup-complete-page-DzPqlG80.js → oauth-popup-complete-page-DbkS3Ktn.js} +1 -1
  99. package/dist/assets/paired-platform-identity-BN-Q3FiP.js +1 -0
  100. package/dist/assets/{pairing-page-DhmG1Tkg.js → pairing-page-CL3aDKN8.js} +1 -1
  101. package/dist/assets/password-reset-page-9EUcZrPc.js +1 -0
  102. package/dist/assets/{pdf-file-preview-ElX646lL.js → pdf-file-preview-DWb95OOo.js} +1 -1
  103. package/dist/assets/{personality-page-DXW5MuRz.js → personality-page-Cd4rs_nw.js} +1 -1
  104. package/dist/assets/{personality-page-BqW5uuDF.js → personality-page-DRi1SkGz.js} +1 -1
  105. package/dist/assets/{personality-sliders-BuInNb35.js → personality-sliders-r9DH0oqr.js} +1 -1
  106. package/dist/assets/{plans-page-B87o5Bm-.js → plans-page-3TPIVG-V.js} +1 -1
  107. package/dist/assets/{platform-loopback-page--ynU4rVO.js → platform-loopback-page-6AkvXRD1.js} +1 -1
  108. package/dist/assets/{plugin-detail-page-lbmmlIpx.js → plugin-detail-page-C2PIC2NZ.js} +1 -1
  109. package/dist/assets/{plugins-page-BM44sOv4.js → plugins-page-Y18LhhDz.js} +1 -1
  110. package/dist/assets/plugins-surface-rSnCf7eu.js +1 -0
  111. package/dist/assets/{preview-error-B6mdXJ98.js → preview-error-BWXX5254.js} +1 -1
  112. package/dist/assets/{privacy-page-BqqU59zB.js → privacy-page-zDZFH9JY.js} +1 -1
  113. package/dist/assets/{privacy-screen-CW2gbeYL.js → privacy-screen-BdvoQ-DB.js} +1 -1
  114. package/dist/assets/{provider-callback-page-PVHvQXqC.js → provider-callback-page-CFS4DEY_.js} +1 -1
  115. package/dist/assets/{provider-key-fvCko3IH.js → provider-key-CYTAv7Kh.js} +1 -1
  116. package/dist/assets/{provider-signup-page-D6kN0d9F.js → provider-signup-page-C89a_7j5.js} +1 -1
  117. package/dist/assets/{quick-input-page-DMs0592w.js → quick-input-page-5f0AEU1o.js} +1 -1
  118. package/dist/assets/referral-modal-BciUQDfu.js +1 -0
  119. package/dist/assets/{referral-modal-C5ePy9XT.js → referral-modal-Dk1Vo23P.js} +1 -1
  120. package/dist/assets/{research-mock-page-D3X9Fw83.js → research-mock-page-DWfJd3UP.js} +1 -1
  121. package/dist/assets/{research-onboarding-route-Bk2Zl9y9.js → research-onboarding-route-Bd2vn3i5.js} +1 -1
  122. package/dist/assets/{review-terms-screen-CU9h0Gz5.js → review-terms-screen-M8IjrJH-.js} +1 -1
  123. package/dist/assets/routes-D_UALtH1.js +1 -0
  124. package/dist/assets/{schedules-Cslj2E_n.js → schedules-C83Ua4R6.js} +1 -1
  125. package/dist/assets/{schedules-page-7QBCwWLg.js → schedules-page-lT5NcWNK.js} +1 -1
  126. package/dist/assets/{security-redirect-page-D6C5fIZt.js → security-redirect-page-BcTO6hEV.js} +1 -1
  127. package/dist/assets/{select-assistant-screen-BO9WTRBj.js → select-assistant-screen-DAwfV-mz.js} +1 -1
  128. package/dist/assets/{self-hosted-servers-sqp6RgAQ.js → self-hosted-servers-BmfZpV_S.js} +1 -1
  129. package/dist/assets/{service-form-controls-C5nQsTzh.js → service-form-controls-B3_1_Epi.js} +1 -1
  130. package/dist/assets/{setting-row-Dqextrfj.js → setting-row-Dz9SXznO.js} +1 -1
  131. package/dist/assets/{settings-divider-D-IFmB_l.js → settings-divider-C1j4hJMG.js} +1 -1
  132. package/dist/assets/{settings-layout-Bh7MaZ4H.js → settings-layout-CQfyqDUr.js} +1 -1
  133. package/dist/assets/{share-feedback-modal-DsaGXNnY.js → share-feedback-modal-Ka1FQwFE.js} +1 -1
  134. package/dist/assets/share-feedback-modal-sGkJieen.js +1 -0
  135. package/dist/assets/{sidebar-tree-BgVhUiEU.js → sidebar-tree-BSRyDJ-e.js} +1 -1
  136. package/dist/assets/{signup-page-CzQJSqzn.js → signup-page-CcJHavhm.js} +1 -1
  137. package/dist/assets/{signup-shell-C1cGo11n.js → signup-shell-D9ohM8Rf.js} +1 -1
  138. package/dist/assets/{skill-detail-page-BN8Rwzuu.js → skill-detail-page-CGtKgK0P.js} +1 -1
  139. package/dist/assets/{skill-detail-panel-DVrh3t_h.js → skill-detail-panel-Bpl_9hRY.js} +1 -1
  140. package/dist/assets/{skill-removal-dialog-CkduZswH.js → skill-removal-dialog-C91c4ZfS.js} +1 -1
  141. package/dist/assets/{skills-page-DS76T-t4.js → skills-page-DpwPDybh.js} +1 -1
  142. package/dist/assets/{sounds-page-Bqrv7A7h.js → sounds-page-CzL0Egaq.js} +1 -1
  143. package/dist/assets/{start-screen-Cz9LflKA.js → start-screen-Cph32ejI.js} +1 -1
  144. package/dist/assets/{stt-language-picker-modal-Ckz32Oh1.js → stt-language-picker-modal-3iCIcD10.js} +1 -1
  145. package/dist/assets/{subagent-detail-panel-C2AI9zu4.js → subagent-detail-panel-DF4ZXV2K.js} +1 -1
  146. package/dist/assets/{superpowers-page-CMOvPhlc.js → superpowers-page-DmqxKZ6y.js} +1 -1
  147. package/dist/assets/{system-events-page-D0fUUNzD.js → system-events-page-BP_Rw924.js} +1 -1
  148. package/dist/assets/{system-events-redirect-page-Dr4-w7Y1.js → system-events-redirect-page-sLsausvS.js} +1 -1
  149. package/dist/assets/{text-preview-DozGQuv6.js → text-preview-CKO4jBfL.js} +1 -1
  150. package/dist/assets/{theme-stage-page-CcBBPfjV.js → theme-stage-page-BIBA5J8a.js} +1 -1
  151. package/dist/assets/{tiptap-document-editor-Db4_RKhj.js → tiptap-document-editor-C3jfHfr_.js} +1 -1
  152. package/dist/assets/{tool-detail-panel-CNNnmtM6.js → tool-detail-panel-BkWuCCm0.js} +1 -1
  153. package/dist/assets/tool-detail-panel-msAhgoxJ.js +1 -0
  154. package/dist/assets/{trait-cycle-row-C1uqLkCi.js → trait-cycle-row-leO22btH.js} +1 -1
  155. package/dist/assets/{upgrade-cancel-page-CKZWRtvT.js → upgrade-cancel-page-B0iduvhi.js} +1 -1
  156. package/dist/assets/{upgrade-success-page-CkXzT8Ty.js → upgrade-success-page-BClAIdZm.js} +1 -1
  157. package/dist/assets/{usage-redirect-page-CRrl2BDL.js → usage-redirect-page-BxTlrAZu.js} +1 -1
  158. package/dist/assets/{use-app-delete-CFfw_T0x.js → use-app-delete-Cj0xy5H5.js} +1 -1
  159. package/dist/assets/{use-assistant-identity-details-CGJTkSlu.js → use-assistant-identity-details-Bj-VqGPz.js} +1 -1
  160. package/dist/assets/{use-checkout-dismiss-refresh-DB9VdW8-.js → use-checkout-dismiss-refresh-Clbra-UV.js} +1 -1
  161. package/dist/assets/{use-edge-swipe-back-DYPOVsUT.js → use-edge-swipe-back-D1eHj9sf.js} +1 -1
  162. package/dist/assets/{use-hotkey-recorder-Cj-vFxW2.js → use-hotkey-recorder-KK0SXCtP.js} +1 -1
  163. package/dist/assets/{use-invite-link-dialog-B4f3yyUN.js → use-invite-link-dialog-BYTs8NpU.js} +1 -1
  164. package/dist/assets/{use-platform-assistant-id-D8KGJAMf.js → use-platform-assistant-id-B1MuVrYX.js} +1 -1
  165. package/dist/assets/{use-return-to-short-circuit-Db6fiXSQ.js → use-return-to-short-circuit-CkdO0Q2j.js} +1 -1
  166. package/dist/assets/{use-side-list-room-CSNBqjJu.js → use-side-list-room-BSP_B7R_.js} +1 -1
  167. package/dist/assets/{use-skill-actions-BNpUjvgz.js → use-skill-actions-Dk64pbQd.js} +1 -1
  168. package/dist/assets/{use-skill-detail-files-C5BA-Phb.js → use-skill-detail-files-DmOW_S89.js} +1 -1
  169. package/dist/assets/use-supports-credentials-settings-BSQpJ09k.js +1 -0
  170. package/dist/assets/{use-transcript-message-by-id-ZVUnXf5k.js → use-transcript-message-by-id-diLlPoiw.js} +1 -1
  171. package/dist/assets/{voice-page-DDLtbhsC.js → voice-page-0iijkFuD.js} +1 -1
  172. package/dist/assets/{wake-detail-panel-C5K2zAvp.js → wake-detail-panel-DaKaOAfd.js} +1 -1
  173. package/dist/assets/{weather-forecast-display-CWGsPOa9.js → weather-forecast-display-ChYkwma2.js} +1 -1
  174. package/dist/assets/{welcome-screen-DuUuJIJ2.js → welcome-screen-Dwra_l1I.js} +1 -1
  175. package/dist/assets/{workflow-detail-panel-D6ip8R9Y.js → workflow-detail-panel-CgyFYiiF.js} +1 -1
  176. package/dist/assets/{workspace-page-D_4QLZh3.js → workspace-page-D-ZvFFGb.js} +1 -1
  177. package/dist/index.html +1 -1
  178. package/package.json +1 -1
  179. package/dist/assets/add-credits-modal-Byhxttdb.js +0 -1
  180. package/dist/assets/app-DFXcEvsi.js +0 -392
  181. package/dist/assets/auth-store-BFk7tSVA.js +0 -1
  182. package/dist/assets/avatar-bundled-components-B-TO2nC_.js +0 -1
  183. package/dist/assets/checkout-return-target-CrM-Nhda.js +0 -1
  184. package/dist/assets/command-palette-Dj-GW7dm.js +0 -1
  185. package/dist/assets/deploy-dialogs-DY0pTVu1.js +0 -1
  186. package/dist/assets/document-load-B9O1A5E9.js +0 -1
  187. package/dist/assets/intelligence-layout-slots-store-CI7IhmZv.js +0 -1
  188. package/dist/assets/local-mode-Dve-u3Zf.js +0 -1
  189. package/dist/assets/native-attachment-pickers-DVsB4Q0l.js +0 -1
  190. package/dist/assets/native-file-BKR4KkJt.js +0 -1
  191. package/dist/assets/paired-platform-identity-C4IGgtxq.js +0 -1
  192. package/dist/assets/password-reset-page-7yc-z_Pf.js +0 -1
  193. package/dist/assets/plugins-surface-2i_lZYet.js +0 -1
  194. package/dist/assets/referral-modal-VQ2vsPTh.js +0 -1
  195. package/dist/assets/routes-NC2Xyogy.js +0 -1
  196. package/dist/assets/share-feedback-modal-D44y3KhU.js +0 -1
  197. package/dist/assets/tool-detail-panel-PjXqpW5b.js +0 -1
  198. package/dist/assets/use-supports-credentials-settings-DIKVOLU1.js +0 -1
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ha as t,Lx as n,Nr as r,Nx as i,Pr as a,Ux as o,gh as s,lx as c}from"./app-DFXcEvsi.js";import{j as l,lt as u}from"./vendor-DYOeoIwg.js";import{t as d,x as f}from"./react-B9IgSVeK.js";import{W as p,i as m,lr as h,m as g,qi as _}from"./icons-QG1KAFmx.js";var v=e(f(),1),y=d();function b({label:e,selected:n,onPick:r,trailing:i}){return(0,y.jsxs)(`div`,{role:`option`,"aria-selected":n,className:t(`flex min-h-9 items-center gap-2 rounded-lg px-3 py-1.5 transition-colors`,n?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),onClick:r,children:[(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:e}),i,n?(0,y.jsx)(_,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`size-4 shrink-0`})]})}function x({label:e,children:t}){return(0,y.jsx)(n,{className:`-mx-2 min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{role:`listbox`,"aria-label":e,className:`flex flex-col`,children:t})})}function S({popover:e,onAnswer:t}){let{t:n}=l();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(x,{label:n(`companionPopover.microphoneTitle`),children:[(0,y.jsx)(b,{label:n(`companionPopover.systemDefault`),selected:e.selected===``,onPick:()=>t?.({kind:`pick`,optionId:``})}),e.options.map(n=>(0,y.jsx)(b,{label:n.label,selected:e.selected===n.id,onPick:()=>t?.({kind:`pick`,optionId:n.id})},n.id))]}),e.needsPermission?(0,y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`companionPopover.microphonePermissionHint`)}):null]})}function C(){let[e,t]=(0,v.useState)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>()=>{n.current?.pause(),n.current=null},[]),{playing:e,play:(e,r)=>{n.current?.pause();let i=new Audio(r);n.current=i,t(e);let a=()=>{n.current===i&&(n.current=null,t(null))};i.onended=a,i.onerror=a,i.play().catch(a)},stop:()=>{n.current?.pause(),n.current=null,t(null)}}}function w({popover:e,onAnswer:t}){let{t:n}=l(),{playing:r,play:i,stop:a}=C();return(0,y.jsx)(x,{label:n(`companionPopover.voiceTitle`),children:e.groups.map(s=>(0,y.jsxs)(`div`,{role:`group`,"aria-label":s.accent,children:[(0,y.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:s.accent}),s.voices.map(s=>{let c=r===s.id;return(0,y.jsx)(b,{label:s.isDefault?(0,y.jsxs)(y.Fragment,{children:[s.label,(0,y.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` ${n(`companionPopover.defaultSuffix`)}`})]}):s.label,selected:e.selected===s.id,onPick:()=>t?.({kind:`pick`,optionId:s.id}),trailing:s.sampleUrl===``?void 0:(0,y.jsx)(o,{variant:`ghost`,size:`compact`,className:`size-7 shrink-0`,iconOnly:c?(0,y.jsx)(p,{}):(0,y.jsx)(g,{}),"aria-label":c?n(`companionPopover.stopPreview`):n(`companionPopover.previewVoice`,{voice:s.label}),onClick:e=>{e.stopPropagation(),c?a():i(s.id,s.sampleUrl)}})},s.id)})]},s.accent))})}var T=e=>/^https?:\/\//i.test(e)||/^data:image\//i.test(e),E=`border border-white/5 bg-[var(--surface-base)] text-[var(--content-default)] shadow-lg shadow-black/40`,D=e=>`radial-gradient(120% 80% at 0% 0%, ${e===void 0?`transparent`:`color-mix(in srgb, ${e} 7%, transparent)`} 0%, transparent 70%), #17181b`;function O({popover:e,view:n,cardRef:r,onAnswer:i,onView:a,onOpenLink:o,accentHex:s,attached:c=!1,className:u,style:d}){let{t:f}=l();return(e.kind===`approvals`||e.kind===`secret`)&&n!==`expanded`?(0,y.jsx)(`div`,{ref:r,role:`group`,"data-companion-popover":e.kind,className:t(`w-max max-w-[640px] rounded-[22px]`,E,u),style:d,children:(0,y.jsx)(k,{popover:e,onAnswer:i,onView:a})}):(0,y.jsx)(`div`,{ref:r,role:`group`,"data-companion-popover":e.kind,className:t(`flex min-h-0 flex-col gap-3 p-4 text-[var(--content-default)]`,!c&&`rounded-[20px] border border-white/10 shadow-2xl shadow-black/50`,e.kind===`approvals`?`w-max max-w-[640px]`:`w-[360px]`,(e.kind===`microphones`||e.kind===`voices`)&&`gap-2 px-4 pb-3`,u),style:c?d:{background:D(s),...d},children:e.kind===`approvals`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.needsOkCount`,{count:e.items.length}),onClose:()=>a?.(`deferred`)}),(0,y.jsx)(L,{items:e.items,onAnswer:i})]}):e.kind===`secret`?(0,y.jsx)(R,{popover:e,onAnswer:i,onView:a}):e.kind===`microphones`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.microphoneTitle`),onClose:()=>i?.({kind:`dismiss`})}),(0,y.jsx)(S,{popover:e,onAnswer:i})]}):e.kind===`voices`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.voiceTitle`),onClose:()=>i?.({kind:`dismiss`})}),(0,y.jsx)(w,{popover:e,onAnswer:i})]}):(0,y.jsx)(z,{popover:e,onAnswer:i,onOpenLink:o})})}function k({popover:e,onAnswer:n,onView:r,className:i}){let{t:a}=l(),o=e.kind===`approvals`?e.items[0]:void 0,s=e.kind===`approvals`&&e.items.length===1;return(0,y.jsxs)(`div`,{"data-companion-prompt-row":e.kind,className:t(`flex min-h-11 min-w-0 items-center gap-1.5 py-1.5 pr-1.5 text-[var(--content-default)]`,e.kind===`secret`?`pl-2`:`pl-4`,i),children:[e.kind===`secret`?(0,y.jsx)(U,{providerKey:e.providerKey}):null,(0,y.jsx)(P,{className:`min-w-0 flex-1 text-body-medium-default`,maxWidth:A,text:e.kind===`secret`?e.service===``?a(`companionPopover.needsCredentials`):a(`companionPopover.needsCredentialsFor`,{service:e.service}):s&&o!==void 0?o.title:a(`companionPopover.needsOkCount`,{count:e.items.length})}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-1`,children:s&&o!==void 0?(0,y.jsx)(F,{item:o,pill:!0,onAnswer:n}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`secondary`,onClick:()=>r?.(`deferred`),children:a(`companionPopover.notNow`)}),(0,y.jsx)(K,{tone:`primary`,onClick:()=>r?.(`expanded`),children:e.kind===`secret`?a(`companionPopover.enter`):a(`companionPopover.review`)})]})})]})}var A=440,j=400;function M(e,t,n){let r=e.trim().split(/\s+/).filter(e=>e!==``),i=r.length;if(i<2||n(r.join(` `))<=t)return[r.join(` `)];let a=r.map(()=>[]);for(let e=0;e<i;e+=1)for(let t=e+1;t<=i;t+=1)a[e][t]=n(r.slice(e,t).join(` `));let o=(e,t)=>r.slice(e,t).join(` `),s=[];for(let e=0;e<i;){let n=e+1;for(;n<i&&a[e][n+1]<=t;)n+=1;s.push(o(e,n)),e=n}if(s.length<2||i>N)return s;let c=e=>{let n=null;for(let r=i-1;r>=e-1;--r){let o=a[r][i];if(o>t&&r!==i-1)continue;let s=new Map;for(let e=1;e<=r;e+=1)a[0][e]<=o&&s.set(`${e}:0`,{cost:(o-a[0][e])**2,breaks:[0]});for(let t=2;t<=e-1;t+=1){let e=new Map;for(let[t,n]of s){let[i,s]=t.split(`:`).map(Number),c=a[s][i];for(let t=i+1;t<=r;t+=1){let r=a[i][t];if(r<c||r>o)continue;let s=n.cost+(o-r)**2,l=`${t}:${i}`,u=e.get(l);(u===void 0||s<u.cost)&&e.set(l,{cost:s,breaks:[...n.breaks,i]})}}s=e}for(let[e,t]of s){let[i,s]=e.split(`:`).map(Number);i!==r||a[s][i]>o||(n===null||t.cost<n.cost)&&(n={cost:t.cost,breaks:[...t.breaks,r]})}}if(n===null)return null;let r=[...n.breaks,i];return n.breaks.map((e,t)=>o(e,r[t+1]))};for(let e=s.length;e<=i;e+=1){let t=c(e);if(t!==null)return t}return s}var N=48;function P({text:e,maxWidth:t,className:n,title:r}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let n=i.current;if(n===null)return;let r=!1,a=()=>{if(r)return;let i=document.createElement(`span`);i.style.cssText=`position:absolute;visibility:hidden;white-space:pre;left:0;top:0`,n.appendChild(i);let a=new Map,s=M(e,t,e=>{let t=a.get(e);if(t!==void 0)return t;i.textContent=e;let n=i.getBoundingClientRect().width;return a.set(e,n),n});i.remove(),o(s.length>1?s:null)};return a(),document.fonts?.addEventListener(`loadingdone`,a),document.fonts?.ready.then(a),()=>{r=!0,document.fonts?.removeEventListener(`loadingdone`,a)}},[e,t]),(0,y.jsx)(`span`,{ref:i,dir:`auto`,className:n,title:r,children:a===null?e:a.map((e,t)=>(0,y.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[e,t<a.length-1?` `:null]},t))})}function F({item:e,pill:t,onAnswer:n}){let{t:r}=l(),i=()=>n?.({kind:`deny`,itemId:e.id}),a=()=>n?.({kind:e.permission===void 0?`allow`:`settings`,itemId:e.id});return t?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`negative`,onClick:i,children:r(`companionPopover.deny`)}),(0,y.jsx)(K,{tone:`primary`,onClick:a,children:r(`companionPopover.allow`)})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(o,{variant:`dangerOutline`,onClick:i,children:r(`companionPopover.deny`)}),(0,y.jsx)(o,{variant:`primary`,onClick:a,children:r(`companionPopover.allow`)})]})}function I({title:e,icon:n,emphasis:r=!1,onClose:i}){let{t:a}=l();return(0,y.jsxs)(`div`,{className:`-mt-0.5 -mr-1.5 flex min-h-7 items-center gap-2`,children:[n,(0,y.jsx)(`p`,{dir:`auto`,className:t(`min-w-0 flex-1`,r?`text-title-small leading-snug`:`text-body-small-default text-[var(--content-tertiary)] select-none`),children:e}),(0,y.jsx)(o,{variant:`ghost`,className:`size-7 rounded-lg px-0`,"aria-label":a(`companionPopover.dismiss`),iconOnly:(0,y.jsx)(m,{className:`size-4`,strokeWidth:2}),onClick:i})]})}function L({items:e,onAnswer:t}){return(0,y.jsx)(n,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`ol`,{className:`flex flex-col gap-2`,children:e.map((e,n)=>(0,y.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-lift)] text-body-medium-default text-[var(--content-tertiary)]`,children:n+1}),(0,y.jsx)(P,{className:`min-w-0 flex-1 pl-1 text-body-medium-default`,maxWidth:j,title:e.detail===``?void 0:e.detail,text:e.title}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-2`,children:(0,y.jsx)(F,{item:e,pill:!1,onAnswer:t})})]},e.id))})})}function R({popover:e,onAnswer:t,onView:r}){let{t:a}=l(),[c,u]=(0,v.useState)(``),d=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>{d.current?.focus()};return e(),window.addEventListener(`focus`,e),()=>{window.removeEventListener(`focus`,e)}},[]),(0,y.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col gap-3`,onSubmit:e=>{e.preventDefault(),c!==``&&t?.({kind:`secret`,value:c})},children:[(0,y.jsx)(I,{icon:(0,y.jsx)(U,{providerKey:e.providerKey}),title:e.service===``?a(`companionPopover.needsCredentials`):a(`companionPopover.needsCredentialsFor`,{service:e.service}),onClose:()=>r?.(`deferred`)}),(0,y.jsx)(n,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.detail===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.detail}),(0,y.jsx)(i,{ref:d,type:`password`,fullWidth:!0,autoComplete:`off`,className:`select-text`,maxLength:s,label:e.label===``?a(`companionPopover.credentialLabel`):e.label,placeholder:e.placeholder,value:c,onChange:e=>{u(e.target.value)}})]})}),(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,y.jsx)(o,{variant:`outlined`,onClick:()=>r?.(`deferred`),children:a(`companionPopover.notNow`)}),(0,y.jsx)(o,{variant:`primary`,type:`submit`,disabled:c===``,children:a(`companionPopover.confirm`)})]})]})}function z({popover:e,onAnswer:t,onOpenLink:r}){let{t:i}=l(),[a,s]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{emphasis:!0,title:e.title===``?e.kind===`surface`?i(`companionPopover.surfaceFallback`):``:e.title,onClose:()=>t?.({kind:`dismiss`})}),e.kind===`card`?(0,y.jsxs)(y.Fragment,{children:[e.subtitle===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`-mt-2.5 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e.subtitle}),(0,y.jsx)(n,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.body===``?null:(0,y.jsx)(B,{body:e.body,onOpenLink:r})})}),e.actions.length>0?(0,y.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2`,children:W(e.actions).map(e=>(0,y.jsx)(o,{variant:G(e),disabled:a,onClick:()=>{s(!0),t?.({kind:`action`,actionId:e.id})},children:e.label},e.id))}):null]}):(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,y.jsx)(o,{variant:`primary`,onClick:()=>t?.({kind:`open`}),children:i(`companionPopover.openApp`)})})})]})}function B({body:e,onOpenLink:t}){return(0,y.jsx)(c,{content:e,className:`text-body-medium-lighter text-[var(--content-secondary)] [&_li]:mb-1 [&_ol]:mb-2 [&_ol]:pl-4 [&_p]:mb-2 [&_ul]:mb-2 [&_ul]:pl-4`,linkComponent:(0,v.useCallback)(({href:e,children:n})=>(0,y.jsx)(`a`,{href:e,className:`text-[var(--content-default)] underline decoration-[var(--content-tertiary)] underline-offset-2 hover:decoration-[var(--content-default)]`,onClick:n=>{n.preventDefault(),e!==void 0&&t?.(e)},children:n}),[t]),imageComponent:H,urlTransform:V})}var V=e=>/^data:image\//i.test(e)?e:u(e),H=({src:e,alt:t})=>T(e)?(0,y.jsx)(`img`,{src:e,alt:t,draggable:!1,className:`my-1 max-h-60 w-full rounded-xl object-contain`}):null;function U({providerKey:e}){return e!==void 0&&a(e)?(0,y.jsx)(r,{providerKey:e,displayName:null,logoUrl:null,size:24}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-6 shrink-0 items-center justify-center text-[var(--content-tertiary)]`,children:(0,y.jsx)(h,{className:`size-4`,strokeWidth:2})})}var W=e=>[...e.filter(e=>e.style!==`primary`),...e.filter(e=>e.style===`primary`)],G=e=>{switch(e.style){case`primary`:return`primary`;case`destructive`:return`danger`;case`secondary`:return`outlined`}};function K({tone:e,onClick:n,type:r=`button`,disabled:i,children:a}){return(0,y.jsx)(o,{type:r,disabled:i,variant:e===`primary`?`primary`:e===`negative`?`dangerGhost`:`ghost`,className:t(`h-8 rounded-full px-3`,e===`secondary`&&`bg-[var(--surface-lift)] hover:bg-[var(--surface-active)]`,e===`negative`&&`bg-[var(--system-negative-weak)]`),onClick:n,children:a})}export{k as n,O as t};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Ha as t,Lx as n,Nr as r,Nx as i,Pr as a,Ux as o,gh as s,lx as c}from"./app-p4YU9h0P.js";import{j as l,lt as u}from"./vendor-DYOeoIwg.js";import{t as d,x as f}from"./react-B9IgSVeK.js";import{W as p,i as m,lr as h,m as g,qi as _}from"./icons-QG1KAFmx.js";var v=e(f(),1),y=d();function b({label:e,selected:n,onPick:r,trailing:i}){return(0,y.jsxs)(`div`,{role:`option`,"aria-selected":n,className:t(`flex min-h-9 items-center gap-2 rounded-lg px-3 py-1.5 transition-colors`,n?`bg-[var(--surface-active)]`:`hover:bg-[var(--surface-hover)]`),onClick:r,children:[(0,y.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-body-medium-default text-[var(--content-default)]`,children:e}),i,n?(0,y.jsx)(_,{"aria-hidden":!0,className:`size-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`size-4 shrink-0`})]})}function x({label:e,children:t}){return(0,y.jsx)(n,{className:`-mx-2 min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{role:`listbox`,"aria-label":e,className:`flex flex-col`,children:t})})}function S({popover:e,onAnswer:t}){let{t:n}=l();return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(x,{label:n(`companionPopover.microphoneTitle`),children:[(0,y.jsx)(b,{label:n(`companionPopover.systemDefault`),selected:e.selected===``,onPick:()=>t?.({kind:`pick`,optionId:``})}),e.options.map(n=>(0,y.jsx)(b,{label:n.label,selected:e.selected===n.id,onPick:()=>t?.({kind:`pick`,optionId:n.id})},n.id))]}),e.needsPermission?(0,y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n(`companionPopover.microphonePermissionHint`)}):null]})}function C(){let[e,t]=(0,v.useState)(null),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>()=>{n.current?.pause(),n.current=null},[]),{playing:e,play:(e,r)=>{n.current?.pause();let i=new Audio(r);n.current=i,t(e);let a=()=>{n.current===i&&(n.current=null,t(null))};i.onended=a,i.onerror=a,i.play().catch(a)},stop:()=>{n.current?.pause(),n.current=null,t(null)}}}function w({popover:e,onAnswer:t}){let{t:n}=l(),{playing:r,play:i,stop:a}=C();return(0,y.jsx)(x,{label:n(`companionPopover.voiceTitle`),children:e.groups.map(s=>(0,y.jsxs)(`div`,{role:`group`,"aria-label":s.accent,children:[(0,y.jsx)(`div`,{className:`px-3 pt-3 pb-1 text-label-small-default text-[var(--content-tertiary)]`,children:s.accent}),s.voices.map(s=>{let c=r===s.id;return(0,y.jsx)(b,{label:s.isDefault?(0,y.jsxs)(y.Fragment,{children:[s.label,(0,y.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:` ${n(`companionPopover.defaultSuffix`)}`})]}):s.label,selected:e.selected===s.id,onPick:()=>t?.({kind:`pick`,optionId:s.id}),trailing:s.sampleUrl===``?void 0:(0,y.jsx)(o,{variant:`ghost`,size:`compact`,className:`size-7 shrink-0`,iconOnly:c?(0,y.jsx)(p,{}):(0,y.jsx)(g,{}),"aria-label":c?n(`companionPopover.stopPreview`):n(`companionPopover.previewVoice`,{voice:s.label}),onClick:e=>{e.stopPropagation(),c?a():i(s.id,s.sampleUrl)}})},s.id)})]},s.accent))})}var T=e=>/^https?:\/\//i.test(e)||/^data:image\//i.test(e),E=`border border-white/5 bg-[var(--surface-base)] text-[var(--content-default)] shadow-lg shadow-black/40`,D=e=>`radial-gradient(120% 80% at 0% 0%, ${e===void 0?`transparent`:`color-mix(in srgb, ${e} 7%, transparent)`} 0%, transparent 70%), #17181b`;function O({popover:e,view:n,cardRef:r,onAnswer:i,onView:a,onOpenLink:o,accentHex:s,attached:c=!1,className:u,style:d}){let{t:f}=l();return(e.kind===`approvals`||e.kind===`secret`)&&n!==`expanded`?(0,y.jsx)(`div`,{ref:r,role:`group`,"data-companion-popover":e.kind,className:t(`w-max max-w-[640px] rounded-[22px]`,E,u),style:d,children:(0,y.jsx)(k,{popover:e,onAnswer:i,onView:a})}):(0,y.jsx)(`div`,{ref:r,role:`group`,"data-companion-popover":e.kind,className:t(`flex min-h-0 flex-col gap-3 p-4 text-[var(--content-default)]`,!c&&`rounded-[20px] border border-white/10 shadow-2xl shadow-black/50`,e.kind===`approvals`?`w-max max-w-[640px]`:`w-[360px]`,(e.kind===`microphones`||e.kind===`voices`)&&`gap-2 px-4 pb-3`,u),style:c?d:{background:D(s),...d},children:e.kind===`approvals`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.needsOkCount`,{count:e.items.length}),onClose:()=>a?.(`deferred`)}),(0,y.jsx)(L,{items:e.items,onAnswer:i})]}):e.kind===`secret`?(0,y.jsx)(R,{popover:e,onAnswer:i,onView:a}):e.kind===`microphones`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.microphoneTitle`),onClose:()=>i?.({kind:`dismiss`})}),(0,y.jsx)(S,{popover:e,onAnswer:i})]}):e.kind===`voices`?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{title:f(`companionPopover.voiceTitle`),onClose:()=>i?.({kind:`dismiss`})}),(0,y.jsx)(w,{popover:e,onAnswer:i})]}):(0,y.jsx)(z,{popover:e,onAnswer:i,onOpenLink:o})})}function k({popover:e,onAnswer:n,onView:r,className:i}){let{t:a}=l(),o=e.kind===`approvals`?e.items[0]:void 0,s=e.kind===`approvals`&&e.items.length===1;return(0,y.jsxs)(`div`,{"data-companion-prompt-row":e.kind,className:t(`flex min-h-11 min-w-0 items-center gap-1.5 py-1.5 pr-1.5 text-[var(--content-default)]`,e.kind===`secret`?`pl-2`:`pl-4`,i),children:[e.kind===`secret`?(0,y.jsx)(U,{providerKey:e.providerKey}):null,(0,y.jsx)(P,{className:`min-w-0 flex-1 text-body-medium-default`,maxWidth:A,text:e.kind===`secret`?e.service===``?a(`companionPopover.needsCredentials`):a(`companionPopover.needsCredentialsFor`,{service:e.service}):s&&o!==void 0?o.title:a(`companionPopover.needsOkCount`,{count:e.items.length})}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-1`,children:s&&o!==void 0?(0,y.jsx)(F,{item:o,pill:!0,onAnswer:n}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`secondary`,onClick:()=>r?.(`deferred`),children:a(`companionPopover.notNow`)}),(0,y.jsx)(K,{tone:`primary`,onClick:()=>r?.(`expanded`),children:e.kind===`secret`?a(`companionPopover.enter`):a(`companionPopover.review`)})]})})]})}var A=440,j=400;function M(e,t,n){let r=e.trim().split(/\s+/).filter(e=>e!==``),i=r.length;if(i<2||n(r.join(` `))<=t)return[r.join(` `)];let a=r.map(()=>[]);for(let e=0;e<i;e+=1)for(let t=e+1;t<=i;t+=1)a[e][t]=n(r.slice(e,t).join(` `));let o=(e,t)=>r.slice(e,t).join(` `),s=[];for(let e=0;e<i;){let n=e+1;for(;n<i&&a[e][n+1]<=t;)n+=1;s.push(o(e,n)),e=n}if(s.length<2||i>N)return s;let c=e=>{let n=null;for(let r=i-1;r>=e-1;--r){let o=a[r][i];if(o>t&&r!==i-1)continue;let s=new Map;for(let e=1;e<=r;e+=1)a[0][e]<=o&&s.set(`${e}:0`,{cost:(o-a[0][e])**2,breaks:[0]});for(let t=2;t<=e-1;t+=1){let e=new Map;for(let[t,n]of s){let[i,s]=t.split(`:`).map(Number),c=a[s][i];for(let t=i+1;t<=r;t+=1){let r=a[i][t];if(r<c||r>o)continue;let s=n.cost+(o-r)**2,l=`${t}:${i}`,u=e.get(l);(u===void 0||s<u.cost)&&e.set(l,{cost:s,breaks:[...n.breaks,i]})}}s=e}for(let[e,t]of s){let[i,s]=e.split(`:`).map(Number);i!==r||a[s][i]>o||(n===null||t.cost<n.cost)&&(n={cost:t.cost,breaks:[...t.breaks,r]})}}if(n===null)return null;let r=[...n.breaks,i];return n.breaks.map((e,t)=>o(e,r[t+1]))};for(let e=s.length;e<=i;e+=1){let t=c(e);if(t!==null)return t}return s}var N=48;function P({text:e,maxWidth:t,className:n,title:r}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let n=i.current;if(n===null)return;let r=!1,a=()=>{if(r)return;let i=document.createElement(`span`);i.style.cssText=`position:absolute;visibility:hidden;white-space:pre;left:0;top:0`,n.appendChild(i);let a=new Map,s=M(e,t,e=>{let t=a.get(e);if(t!==void 0)return t;i.textContent=e;let n=i.getBoundingClientRect().width;return a.set(e,n),n});i.remove(),o(s.length>1?s:null)};return a(),document.fonts?.addEventListener(`loadingdone`,a),document.fonts?.ready.then(a),()=>{r=!0,document.fonts?.removeEventListener(`loadingdone`,a)}},[e,t]),(0,y.jsx)(`span`,{ref:i,dir:`auto`,className:n,title:r,children:a===null?e:a.map((e,t)=>(0,y.jsxs)(`span`,{className:`block whitespace-nowrap`,children:[e,t<a.length-1?` `:null]},t))})}function F({item:e,pill:t,onAnswer:n}){let{t:r}=l(),i=()=>n?.({kind:`deny`,itemId:e.id}),a=()=>n?.({kind:e.permission===void 0?`allow`:`settings`,itemId:e.id});return t?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(K,{tone:`negative`,onClick:i,children:r(`companionPopover.deny`)}),(0,y.jsx)(K,{tone:`primary`,onClick:a,children:r(`companionPopover.allow`)})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(o,{variant:`dangerOutline`,onClick:i,children:r(`companionPopover.deny`)}),(0,y.jsx)(o,{variant:`primary`,onClick:a,children:r(`companionPopover.allow`)})]})}function I({title:e,icon:n,emphasis:r=!1,onClose:i}){let{t:a}=l();return(0,y.jsxs)(`div`,{className:`-mt-0.5 -mr-1.5 flex min-h-7 items-center gap-2`,children:[n,(0,y.jsx)(`p`,{dir:`auto`,className:t(`min-w-0 flex-1`,r?`text-title-small leading-snug`:`text-body-small-default text-[var(--content-tertiary)] select-none`),children:e}),(0,y.jsx)(o,{variant:`ghost`,className:`size-7 rounded-lg px-0`,"aria-label":a(`companionPopover.dismiss`),iconOnly:(0,y.jsx)(m,{className:`size-4`,strokeWidth:2}),onClick:i})]})}function L({items:e,onAnswer:t}){return(0,y.jsx)(n,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`ol`,{className:`flex flex-col gap-2`,children:e.map((e,n)=>(0,y.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-[var(--surface-lift)] text-body-medium-default text-[var(--content-tertiary)]`,children:n+1}),(0,y.jsx)(P,{className:`min-w-0 flex-1 pl-1 text-body-medium-default`,maxWidth:j,title:e.detail===``?void 0:e.detail,text:e.title}),(0,y.jsx)(`span`,{className:`ml-2 flex shrink-0 items-center gap-2`,children:(0,y.jsx)(F,{item:e,pill:!1,onAnswer:t})})]},e.id))})})}function R({popover:e,onAnswer:t,onView:r}){let{t:a}=l(),[c,u]=(0,v.useState)(``),d=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let e=()=>{d.current?.focus()};return e(),window.addEventListener(`focus`,e),()=>{window.removeEventListener(`focus`,e)}},[]),(0,y.jsxs)(`form`,{className:`flex min-h-0 flex-1 flex-col gap-3`,onSubmit:e=>{e.preventDefault(),c!==``&&t?.({kind:`secret`,value:c})},children:[(0,y.jsx)(I,{icon:(0,y.jsx)(U,{providerKey:e.providerKey}),title:e.service===``?a(`companionPopover.needsCredentials`):a(`companionPopover.needsCredentialsFor`,{service:e.service}),onClose:()=>r?.(`deferred`)}),(0,y.jsx)(n,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.detail===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`text-body-medium-lighter text-[var(--content-secondary)]`,children:e.detail}),(0,y.jsx)(i,{ref:d,type:`password`,fullWidth:!0,autoComplete:`off`,className:`select-text`,maxLength:s,label:e.label===``?a(`companionPopover.credentialLabel`):e.label,placeholder:e.placeholder,value:c,onChange:e=>{u(e.target.value)}})]})}),(0,y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end gap-2`,children:[(0,y.jsx)(o,{variant:`outlined`,onClick:()=>r?.(`deferred`),children:a(`companionPopover.notNow`)}),(0,y.jsx)(o,{variant:`primary`,type:`submit`,disabled:c===``,children:a(`companionPopover.confirm`)})]})]})}function z({popover:e,onAnswer:t,onOpenLink:r}){let{t:i}=l(),[a,s]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(I,{emphasis:!0,title:e.title===``?e.kind===`surface`?i(`companionPopover.surfaceFallback`):``:e.title,onClose:()=>t?.({kind:`dismiss`})}),e.kind===`card`?(0,y.jsxs)(y.Fragment,{children:[e.subtitle===``?null:(0,y.jsx)(`p`,{dir:`auto`,className:`-mt-2.5 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e.subtitle}),(0,y.jsx)(n,{className:`min-h-0 flex-1`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,y.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.body===``?null:(0,y.jsx)(B,{body:e.body,onOpenLink:r})})}),e.actions.length>0?(0,y.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2`,children:W(e.actions).map(e=>(0,y.jsx)(o,{variant:G(e),disabled:a,onClick:()=>{s(!0),t?.({kind:`action`,actionId:e.id})},children:e.label},e.id))}):null]}):(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,y.jsx)(o,{variant:`primary`,onClick:()=>t?.({kind:`open`}),children:i(`companionPopover.openApp`)})})})]})}function B({body:e,onOpenLink:t}){return(0,y.jsx)(c,{content:e,className:`text-body-medium-lighter text-[var(--content-secondary)] [&_li]:mb-1 [&_ol]:mb-2 [&_ol]:pl-4 [&_p]:mb-2 [&_ul]:mb-2 [&_ul]:pl-4`,linkComponent:(0,v.useCallback)(({href:e,children:n})=>(0,y.jsx)(`a`,{href:e,className:`text-[var(--content-default)] underline decoration-[var(--content-tertiary)] underline-offset-2 hover:decoration-[var(--content-default)]`,onClick:n=>{n.preventDefault(),e!==void 0&&t?.(e)},children:n}),[t]),imageComponent:H,urlTransform:V})}var V=e=>/^data:image\//i.test(e)?e:u(e),H=({src:e,alt:t})=>T(e)?(0,y.jsx)(`img`,{src:e,alt:t,draggable:!1,className:`my-1 max-h-60 w-full rounded-xl object-contain`}):null;function U({providerKey:e}){return e!==void 0&&a(e)?(0,y.jsx)(r,{providerKey:e,displayName:null,logoUrl:null,size:24}):(0,y.jsx)(`span`,{"aria-hidden":!0,className:`flex size-6 shrink-0 items-center justify-center text-[var(--content-tertiary)]`,children:(0,y.jsx)(h,{className:`size-4`,strokeWidth:2})})}var W=e=>[...e.filter(e=>e.style!==`primary`),...e.filter(e=>e.style===`primary`)],G=e=>{switch(e.style){case`primary`:return`primary`;case`destructive`:return`danger`;case`secondary`:return`outlined`}};function K({tone:e,onClick:n,type:r=`button`,disabled:i,children:a}){return(0,y.jsx)(o,{type:r,disabled:i,variant:e===`primary`?`primary`:e===`negative`?`dangerGhost`:`ghost`,className:t(`h-8 rounded-full px-3`,e===`secondary`&&`bg-[var(--surface-lift)] hover:bg-[var(--surface-active)]`,e===`negative`&&`bg-[var(--system-negative-weak)]`),onClick:n,children:a})}export{k as n,O as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Js as t,Us as n,Zs as r,ac as i,ic as a,lc as o}from"./app-DFXcEvsi.js";import{t as s,x as c}from"./react-B9IgSVeK.js";import{n as l}from"./companion-accent-pu5Xu8Z6.js";import{t as u}from"./companion-popover-Bs6A6445.js";var d=e(c(),1),f=s();function p(){let[e,s]=(0,d.useState)(null),c=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=o(s);return t().then(e=>{e&&s(e)}),e},[]);let p=e?.popover,m=p?.id,h=e?.popoverView??`row`;return(0,d.useLayoutEffect)(()=>{let e=c.current;if(m===void 0||e===null)return;let t=()=>{let{width:t,height:n}=e.getBoundingClientRect();a(m,Math.ceil(t)+24,Math.ceil(n)+24)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m,h]),p===void 0?null:(0,f.jsx)(`div`,{"data-theme":`dark`,className:`h-screen w-screen bg-transparent select-none`,style:{padding:12},children:(0,f.jsx)(u,{popover:p,view:h,accentHex:l(e?.call??null,e?.accentHex,e?.character)??void 0,cardRef:c,style:{maxHeight:536},onAnswer:e=>{n(e,p.id)},onView:e=>{i(p.id,e)},onOpenLink:e=>{r(e)}},p.id)})}export{p as CompanionPopoverPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Js as t,Us as n,Zs as r,ac as i,ic as a,lc as o}from"./app-p4YU9h0P.js";import{t as s,x as c}from"./react-B9IgSVeK.js";import{n as l}from"./companion-accent-BhdiAsTr.js";import{t as u}from"./companion-popover-BsbCOPDj.js";var d=e(c(),1),f=s();function p(){let[e,s]=(0,d.useState)(null),c=(0,d.useRef)(null);(0,d.useEffect)(()=>{let e=o(s);return t().then(e=>{e&&s(e)}),e},[]);let p=e?.popover,m=p?.id,h=e?.popoverView??`row`;return(0,d.useLayoutEffect)(()=>{let e=c.current;if(m===void 0||e===null)return;let t=()=>{let{width:t,height:n}=e.getBoundingClientRect();a(m,Math.ceil(t)+24,Math.ceil(n)+24)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[m,h]),p===void 0?null:(0,f.jsx)(`div`,{"data-theme":`dark`,className:`h-screen w-screen bg-transparent select-none`,style:{padding:12},children:(0,f.jsx)(u,{popover:p,view:h,accentHex:l(e?.call??null,e?.accentHex,e?.character)??void 0,cardRef:c,style:{maxHeight:536},onAnswer:e=>{n(e,p.id)},onView:e=>{i(p.id,e)},onOpenLink:e=>{r(e)}},p.id)})}export{p as CompanionPopoverPage};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$s as t,Bs as n,Dx as r,Gs as i,Hs as a,Js as o,Ks as s,Ls as c,Lx as l,Qs as u,Si as d,Us as f,Ws as p,Xs as m,Ys as h,Zs as g,ac as _,cc as v,dc as y,dn as b,ec as ee,fc as te,hh as x,lc as S,li as C,mc as w,oc as T,ph as E,qs as ne,rc as D,sc as re,tc as ie,uc as ae,zs as oe}from"./app-DFXcEvsi.js";import{f as O,g as se,j as k}from"./vendor-DYOeoIwg.js";import{t as ce,x as le}from"./react-B9IgSVeK.js";import{Cn as ue,Ga as de,Gi as fe,Ja as pe,Jr as me,Ki as he,Pa as A,Sn as ge,Ui as j,W as _e,Wi as ve,Xt as ye,Yr as be,_n as xe,i as Se,ki as Ce,m as we,p as Te,yt as M}from"./icons-QG1KAFmx.js";import{n as N}from"./companion-accent-pu5Xu8Z6.js";import{n as Ee,t as De}from"./companion-popover-Bs6A6445.js";import{n as P,r as Oe,t as ke}from"./companion-layout-Ye64fIzN.js";var Ae=pe(`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`}]]),je=pe(`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`}]]),F=pe(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),I=e(le(),1),L=ce(),Me=460,Ne=3,Pe=88,R=3,Fe=[`screens`,`tabs`,`windows`],z=(e,t)=>t===`screens`?e.displays.length:t===`tabs`?e.tabs.length:e.windows.length,Ie=e=>Fe.find(t=>z(e,t)>0)??`screens`,B=e=>e.kind===`display`?`display-${e.displayId}`:`window-${e.windowId}`;function V({sources:e,captureThumbnail:t,cardGrowth:n=`up`,avatarBox:i=E,optionsBox:a=E,cardRef:o,label:s,onPick:c}){let{t:u}=k(),{inUnits:d,lineAt:f,introStepOff:p}=ke(i,a),m=d(p(n)),h={left:`50%`,top:f(n,0),transform:n===`up`?`translate(-50%, calc(-100% - ${m}px))`:`translate(-50%, ${m}px)`},g=e===null?[]:Fe.filter(t=>z(e,t)>0),_=e!==null&&g.length===0,[v,y]=(0,I.useState)(null),b=e===null?`screens`:v!==null&&g.includes(v)?v:Ie(e),ee=(0,I.useMemo)(()=>e===null?[]:b===`screens`?e.displays.map(e=>{let t={kind:`display`,displayId:e.displayId};return{key:B(t),target:t}}):b===`windows`?e.windows.map(e=>{let t={kind:`window`,windowId:e.windowId};return{key:B(t),target:t}}):[],[b,e]),[te,x]=(0,I.useState)(new Map),S=(0,I.useRef)(new Set),C=(0,I.useRef)(0),w=(0,I.useRef)(!1);(0,I.useEffect)(()=>(w.current=!0,()=>{w.current=!1}),[]),(0,I.useEffect)(()=>{S.current=new Set,C.current+=1,x(new Map),y(null)},[e]);let T=(0,I.useRef)(null);(0,I.useEffect)(()=>{T.current!==null&&(T.current.scrollTop=0)},[b]),(0,I.useEffect)(()=>{if(t!==void 0)for(let{key:e,target:n}of ee){if(S.current.has(e))continue;S.current.add(e);let r=C.current,i=t=>{!w.current||r!==C.current||x(n=>new Map(n).set(e,t))};t(n).then(i,()=>{i(null)})}},[t,ee]);let ne=e=>t===void 0?null:te.get(e),D=e=>u(e===`screens`?`companionSurface.captureScreens`:e===`tabs`?`companionSurface.captureTabs`:`companionSurface.captureWindows`);return(0,L.jsxs)(`div`,{ref:o,role:`group`,"aria-label":s??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:Me,...h},onPointerDown:e=>{e.stopPropagation()},children:[g.length>1&&(0,L.jsx)(r,{className:`mx-auto mb-1.5 w-auto shrink-0`,items:g.map(e=>({value:e,label:D(e)})),value:b,ariaLabel:u(`companionSurface.captureKind`),onChange:y}),(0,L.jsx)(l,{ref:T,className:`max-h-48 flex-col px-0.5`,size:24,fadeEdges:`end`,hideScrollBar:!0,children:(0,L.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`capture-sources`,children:[e===null&&(0,L.jsx)(ze,{}),e!==null&&b===`screens`&&(0,L.jsx)(Le,{children:e.displays.map(e=>{let t=u(`companionSurface.captureScreen`,{n:e.index+1}),n=B({kind:`display`,displayId:e.displayId});return(0,L.jsx)(Re,{title:t,ariaLabel:t,answer:ne(n),fallback:(0,L.jsx)(xe,{className:`size-5 text-white/40`,"aria-hidden":!0}),onClick:()=>{c?.({kind:`display`,displayId:e.displayId})}},n)})}),e!==null&&b===`windows`&&(0,L.jsx)(Le,{children:e.windows.map(e=>{let t=B({kind:`window`,windowId:e.windowId}),n=e.title===``?e.app:e.title;return(0,L.jsx)(Re,{title:n,ariaLabel:e.title===``?n:`${n} (${e.app})`,answer:ne(t),fallback:(0,L.jsx)(U,{icon:e.icon,large:!0}),icon:(0,L.jsx)(U,{icon:e.icon}),onClick:()=>{c?.({kind:`window`,windowId:e.windowId})}},t)})}),e!==null&&b===`tabs`&&(0,L.jsx)(`div`,{className:`flex flex-col`,children:e.tabs.map(e=>(0,L.jsx)(H,{icon:(0,L.jsx)(U,{icon:e.icon}),title:e.title,onClick:()=>{c?.({kind:`tab`,chromeWindowId:e.chromeWindowId,tabIndex:e.tabIndex})}},`tab-${e.chromeWindowId}-${e.tabIndex}`))}),_&&(0,L.jsx)(`span`,{className:`px-2 py-3 text-[12px] text-white/50`,children:u(`companionSurface.captureNothing`)})]})})]})}function Le({children:e}){return(0,L.jsx)(`div`,{className:`grid gap-1.5 py-0.5`,style:{gridTemplateColumns:`repeat(${Ne}, minmax(0, 1fr))`},children:e})}function Re({title:e,ariaLabel:t,answer:n,fallback:r,icon:i,onClick:a}){return(0,L.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,L.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:Pe},children:n==null?r:(0,L.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`max-h-full max-w-full object-contain`})}),(0,L.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[i,(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-white/75 group-hover:text-white/90`,children:e})]})]})}function H({icon:e,title:t,onClick:n}){return(0,L.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,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}function U({icon:e,large:t=!1}){return(0,L.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,L.jsx)(de,{className:t?`size-5 text-white/40`:`size-3 text-white/70`,"aria-hidden":!0}):(0,L.jsx)(`img`,{src:e,alt:``,className:`size-full`,draggable:!1})})}function ze(){return(0,L.jsx)(Le,{children:Array.from({length:R},(e,t)=>(0,L.jsxs)(`div`,{className:`flex flex-col gap-1 p-1`,"aria-hidden":!0,children:[(0,L.jsx)(`span`,{className:`animate-pulse rounded-md bg-white/10`,style:{height:Pe}}),(0,L.jsx)(`span`,{className:`h-2 animate-pulse rounded-full bg-white/10`,style:{width:t===0?`70%`:`45%`}})]},t))})}var Be=260;function Ve({offer:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=E,optionsBox:i=E,cardRef:a,onAnswer:o}){let{t:s}=k(),c=e.reason===`claimed`?s(`companionSurface.offerVersion`):s(`companionSurface.offerNowhere`),{inUnits:u,avatarHalf:d,lineAt:f,edgeAt:p,introStepOff:m}=ke(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,L.jsxs)(`div`,{ref:a,role:`group`,"aria-label":c,"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:Be,...g,..._},onPointerDown:e=>{e.stopPropagation()},children:[(0,L.jsx)(`p`,{className:`text-[11px] font-medium tracking-wide text-white/45 uppercase select-none`,children:c}),(0,L.jsx)(l,{className:`max-h-40 flex-col`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,L.jsx)(`p`,{dir:`auto`,className:`text-[13px] leading-[1.45] text-white/90`,children:e.text})}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1 pt-0.5`,children:[(0,L.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,L.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,L.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 W=244,He={meet:{title:`companionIntro.meet.title`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},menu:{title:`companionIntro.menu.title`,body:`companionIntro.menu.body`}},Ue=e=>e===`talk`?e:void 0,We=e=>e===null||e===`meet`?null:`hover`;function Ge({beat:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=E,optionsBox:i=E,accentHex:a,assistantName:o,cardRef:s,onAdvance:c}){let{t:l}=k(),u=x.indexOf(e),d=u===x.length-1,f=He[e],{inUnits:p,avatarHalf:m,lineAt:h,edgeAt:g,introStepOff:_}=ke(r,i),v=p(_(n)),y=g(t,-m),b={top:h(n,0),transform:n===`up`?`translateY(calc(-100% - ${v}px))`:`translateY(${v}px)`};return(0,L.jsxs)(`div`,{ref:s,role:`group`,"aria-label":l(`companionIntro.ariaLabel`),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:W,...y,...b},onPointerDown:e=>{e.stopPropagation()},children:[(0,L.jsx)(`p`,{className:`line-clamp-2 text-[13px] leading-tight font-medium text-white`,children:e===`meet`&&o!==void 0?l(`companionIntro.meet.titleNamed`,{name:o}):l(f.title)}),(0,L.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:l(f.body)}),(0,L.jsxs)(`div`,{className:`flex items-center justify-between pt-0.5`,children:[(0,L.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:x.map((e,t)=>(0,L.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:t===u?a??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[!d&&(0,L.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:()=>c?.(`dismiss`),children:l(`companionIntro.skip`)}),(0,L.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:()=>c?.(`next`),children:l(d?`companionIntro.done`:`companionIntro.next`)})]})]})]})}var Ke={min:3,max:10},G=(e=Math.random)=>{let t=e();return t<1/3?`top`:t<2/3?`topLeft`:`topRight`},qe=1600,Je=.22,Ye=.04,Xe=4,Ze=(e,t)=>{let n=Math.min(.95,Math.max(.25,e.eyeCenterFrac+e.eyeHalfFrac+Ye)),r=Math.min(t,24,14/n),i=r*n;return{size:r,exposed:i,clip:{width:r+2*Xe,height:i+Xe},rest:i+2}},K=(e,t=Math.random)=>(e.min+t()*(e.max-e.min))*1e3;function q(e,t=Ke){let[n,r]=(0,I.useState)(0),{min:i,max:a}=t;return(0,I.useEffect)(()=>{if(!e)return;let t,n=()=>{t=setTimeout(()=>{r(e=>e+1),n()},K({min:i,max:a}))};return n(),()=>{clearTimeout(t)}},[e,i,a]),n}var J=(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 Qe({character:e,capsule:t,enabled:n,held:r=!1,edge:i,interval:a=Ke,className:o,style:s}){let c=O(),l=(0,I.useMemo)(()=>b(d,e),[e]),u=q(n&&!r&&!c&&l!==null,a),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(`top`);if((0,I.useEffect)(()=>{if(u===0)return;h(G()),p(!0);let e=setTimeout(()=>{p(!1)},qe);return()=>{clearTimeout(e)}},[u]),l===null||c)return null;let g=Ze(l,t.width),_=r||f,v=i??m,y=J(v,g.clip,t);return(0,L.jsx)(`div`,{className:`companion-peek ${o??``}`,style:{width:t.width,height:t.height,...s},"data-risen":_,"data-edge":v,"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`absolute`,style:y.slot,children:(0,L.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:(0,L.jsx)(se.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:_?0:g.rest},transition:r?{duration:0}:_?{type:`spring`,stiffness:280,damping:14}:{duration:Je,ease:`easeIn`},children:(0,L.jsx)(C,{components:d,traits:e,size:g.size})})})})})}var $e=(0,I.createContext)(`above`),et=`#5eead4`,Y=new Set([`transcribing`,`thinking`,`speaking`]),tt=28,X={idle:{width:64,height:14},closing:tt,rim:2,bloom:4},nt=X.idle,rt=(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(`, `),Z=244,it=200,at=120,ot={watching:40,summary:220,dictating:Z+32,offer:it+32,call:4+at+180},st=84,ct={width:28,height:st+140+20};function lt({phase:e,assistantName:t=``,accentHex:n=et,avatarSrc:r,character:i,hovered:a=!1,growth:o=`right`,avatarBox:s=E,optionsBox:c=E,cardGrowth:l=`up`,dock:u=`bottom`,rootRef:d,restingPillRef:f,avatarRef:p,onSurfacePointerDown:m,onSurfaceContextMenu:h,spotlight:g,onWatch:_,onTeach:v,picking:y=!1,sharing:b=!1,shareEnabled:ee=!1,sharePicking:te=!1,onShare:x,onStopShare:S,annotating:C=!1,annotationTool:w,onAnnotationTool:T,drawToolsRef:ne,onAnnotate:D,marked:re=!1,onClearMarks:ie,openPicker:ae,voicesPickable:oe=!1,onPicker:se,shortcuts:ce,onAvatarClick:le,working:ue=!1,watching:de=!1,watchRetro:fe,onWatchRetro:pe,dictationOffer:me,offer:he,watchEnabled:A=!1,dictating:ge,dictationText:j=``,call:_e,onControl:ve,intro:ye,picker:be,prompt:xe,promptRef:Se,promptsDeferred:Ce=0,onReviewPrompts:we}){let{t:Te}=k(),M=e!==`resting`,N=e===`call`||e===`dictating`||e===`offer`||e===`summary`||e===`watching`,[Ee,De]=(0,I.useState)(!1);(0,I.useEffect)(()=>{if(e!==`hover`){De(!1);return}let t=setTimeout(()=>{De(!0)},500);return()=>{clearTimeout(t)}},[e]);let P=g===`talk`||e===`hover`&&Ee,Oe=fe===`pending`,Ae=ue||_e!==void 0&&Y.has(_e.phase),je=O(),F=(0,I.useRef)(null),[Me,Ne]=(0,I.useState)(null),Pe=(0,I.useRef)(0);(0,I.useLayoutEffect)(()=>{let e=F.current;if(!e)return;let t=()=>{Ne({width:e.scrollWidth-Pe.current,height:e.scrollHeight})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let{scale:R,avatarRel:Fe,avatarHalf:z,baseline:Ie,gap:B,inUnits:V,lineAt:Le,edgeAt:Re}=ke(s,c),H=e===`call`,U=H&&(u===`left`||u===`right`),ze=U?u===`left`?`right`:`left`:`above`,Be=N?U?(Me?.width??ct.width)+16:(Me?.width??ot[e])+16:0,Ve=N?(Me?.height??ct.height)+16:0,W=H&&!U&&xe!=null,He=(0,I.useRef)(null),[Ue,We]=(0,I.useState)(0);(0,I.useLayoutEffect)(()=>{let e=He.current;if(!W||e===null)return;let t=()=>{We(Math.ceil(e.getBoundingClientRect().width/R))};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[W,xe,R]);let Ge=W?Math.max(Be,Ue):Be,Ke=Ge-Be;(0,I.useLayoutEffect)(()=>{Pe.current=Ke},[Ke]);let G=U?`50%`:Le(l,0),qe=Re(o,z+B),Je=s/E,Ye=M?{width:X.closing*Je,height:X.closing*Je}:X.idle,Xe=ye!=null,Ze=H?{width:Ge,...U?{height:Ve}:{},left:`50%`,top:G,transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`}:{width:Be,...qe,top:Le(l,Ie),transform:`translateY(-100%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},K=H&&!U?`calc(50% - ${Ge/2+V(z+B)}px)`:`50%`,q=U?`calc(50% - ${Ve/2+V(z+B)}px)`:G;return(0,L.jsxs)(`div`,{className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/R}%`,height:`${100/R}%`,transform:`scale(${R})`},children:[W?(0,L.jsx)(vt,{dock:u,top:G,width:Ge,accentHex:n,lit:N,promptRef:Se,children:xe}):null,W?(0,L.jsx)(`div`,{ref:He,inert:!0,"aria-hidden":!0,"data-theme":`dark`,className:`pointer-events-none invisible absolute top-0 left-0 w-max max-w-[640px]`,children:xe}):null,(0,L.jsxs)(`div`,{className:`absolute flex cursor-grab items-center rounded-full duration-300 select-none active:cursor-grabbing ${U?`flex-col transition-[width,height] will-change-[width,height]`:`h-11 transition-[width] will-change-[width]`} ${!H&&o===`left`?`justify-end`:``}`,style:Ze,onPointerDown:m,onContextMenu:h,ref:d,children:[(0,L.jsx)(`span`,{className:`absolute inset-0 rounded-full transition-opacity duration-200 ${W?`bg-[#17181b]`:`border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40`}`,style:{opacity:+!!N},"aria-hidden":!0}),H&&(0,L.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 rounded-full transition-opacity duration-200`,style:{opacity:N&&!W?1:0,"--companion-ring-accent":n},"aria-hidden":!0}),(0,L.jsx)(`div`,{className:`relative flex shrink-0 items-center ${U?`flex-col`:`h-11`}`,style:U?{paddingBlock:8,paddingInline:8}:{paddingInline:8},children:(0,L.jsx)(`div`,{className:`flex items-center gap-1 overflow-hidden transition-opacity duration-200 ${U?`min-h-0 flex-col`:`min-w-0`}`,ref:F,inert:!N,style:{opacity:+!!N,transitionDelay:N?`120ms`:`0ms`},children:e===`call`?(0,L.jsx)($e.Provider,{value:ze,children:(0,L.jsx)(yt,{call:_e,assistantName:t,watching:de,watchEnabled:A,picking:y,sharing:b,shareEnabled:ee,sharePicking:te,annotating:C,marked:re,annotationTool:w,vertical:U,drawToolsPlacement:U?u===`left`?`right`:`left`:l===`up`?`above`:`below`,drawToolsRef:ne,onAnnotationTool:T,onControl:ve,onWatch:_,onTeach:v,onShare:x,onStopShare:S,onAnnotate:D,onClearMarks:ie,openPicker:ae,voicesPickable:oe,onPicker:se,pickerSide:U?u===`left`?`right`:`left`:u===`top`?`below`:`above`,shortcuts:ce,promptsDeferred:Ce,lineExtra:Ke,onReviewPrompts:we})}):e===`dictating`&&ge!==void 0?(0,L.jsx)(mt,{dictating:ge,dictationText:j}):e===`summary`&&fe!==void 0?(0,L.jsx)(_t,{retro:fe,onWatchRetro:pe}):e===`offer`&&me!==void 0?(0,L.jsx)(Q,{offer:me}):(0,L.jsx)(ht,{watching:de,onWatch:_})})})]}),(0,L.jsx)(`div`,{className:`absolute cursor-grab active:cursor-grabbing`,style:{width:V(X.idle.width),height:V(X.idle.height),pointerEvents:M?`none`:void 0,left:`50%`,top:G,transform:`translate(-50%, -50%)`},onPointerDown:m,onContextMenu:h,ref:f,"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`absolute top-1/2 left-1/2 rounded-full transition-[width,height,opacity] duration-300`,style:{width:V(Ye.width),height:V(Ye.height),transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:je?`opacity`:void 0,boxShadow:rt(n,V(X.rim),V(X.bloom)),opacity:+!M}})}),(0,L.jsx)(ft,{className:P?`opacity-100`:`opacity-0`,"data-companion-name":P?`shown`:`hidden`,style:{left:`50%`,top:G,transform:`translate(-50%, calc(-100% - ${V(z)}px - 4px))`},label:Te(`companionSurface.talk`)}),(0,L.jsx)(pt,{label:Te(e===`call`?`companionSurface.openVellum`:`companionSurface.talk`),accentHex:n,avatarSrc:r,character:i,attentive:a,busy:Ae||de||Oe,collapsed:!M&&!Xe,restingScale:E/s,style:{left:K,top:q,transform:`translate(-50%, -50%)${Fe===1?``:` scale(${Fe})`}`,transition:je?void 0:`left 300ms cubic-bezier(.2,.8,.2,1), top 300ms cubic-bezier(.2,.8,.2,1)`},elementRef:p,onPointerDown:m,onContextMenu:h,onClick:le}),ye,be,he]})}var ut=`rgba(28, 28, 30, 0.55)`,dt=`backdrop-blur-md backdrop-saturate-150`;function ft({className:e,style:t,label:n,shortcut:r,beak:i=`down`,...a}){return(0,L.jsxs)(`span`,{className:`pointer-events-none absolute rounded-md px-2 py-1 text-[11px] font-medium whitespace-nowrap text-white/90 shadow-md shadow-black/30 transition-opacity duration-200 ${dt} ${e}`,style:{...t,backgroundColor:ut},"aria-hidden":!0,...a,children:[n,r===void 0?null:(0,L.jsx)(`span`,{className:`ml-1.5 font-normal text-white/60`,"data-shortcut":!0,children:r}),(0,L.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`} ${dt}`,style:{backgroundColor:ut,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 pt({accentHex:e,avatarSrc:t,character:n,busy:r=!1,attentive:i=!1,collapsed:a=!1,restingScale:o=1,label:s,style:c,elementRef:l,onPointerDown:u,onContextMenu:f,onClick:p}){let m=O();return(0,L.jsxs)(`div`,{role:`button`,"aria-label":s,className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:c,ref:l,onPointerDown:u,onContextMenu:f,onClick:p,children:[n===void 0?null:(0,L.jsx)(Qe,{character:n,capsule:nt,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,L.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,L.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,L.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,L.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,L.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,L.jsx)(C,{components:d,traits:n,size:tt,isAssistantBusy:r,attentive:i})})})})]})}function mt({dictating:e,dictationText:t}){let{t:n}=k(),r=t.trim();return(0,L.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,L.jsx)(A,{className:`size-4 shrink-0`,"aria-hidden":!0}),r?(0,L.jsx)(`span`,{dir:`auto`,className:`flex justify-end overflow-hidden text-[12px] whitespace-nowrap text-white/85`,style:{width:Z},children:(0,L.jsx)(`span`,{className:`shrink-0`,children:r})}):(0,L.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:Z},children:n(e===`listening`?`companionSurface.dictating`:`companionSurface.dictatingTranscribing`)})]})}function Q({offer:e}){let{t}=k();return(0,L.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,L.jsx)(A,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:it},children:e.reason===`claimed`?t(`companionSurface.offerHeard`,{app:e.app}):t(`companionSurface.offerNowhere`)})]})}function ht({watching:e=!1,onWatch:t}){return(0,L.jsx)(L.Fragment,{children:e&&(0,L.jsx)(Et,{onWatch:t})})}function gt({watching:e,watchEnabled:t,picking:n,onWatch:r,onTeach:i}){let{t:a}=k();return t?(0,L.jsx)($,{icon:(0,L.jsx)(me,{className:`size-4`}),label:a(`companionSurface.teach`),pressed:e||n,onClick:e?r:i??r}):e?(0,L.jsx)(Et,{onWatch:r}):null}function _t({retro:e,onWatchRetro:t}){let{t:n}=k();return e===`pending`?(0,L.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:n(`companionSurface.summarizing`)}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)($,{icon:(0,L.jsx)(M,{className:`size-4`}),label:n(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{t?.(!0)}}),(0,L.jsx)($,{icon:(0,L.jsx)(Se,{className:`size-4`}),label:n(`companionSurface.notNow`),showLabel:!0,onClick:()=>{t?.(!1)}})]})}function vt({dock:e,top:t,width:n,accentHex:r,lit:i,promptRef:a,children:o}){let s=e===`top`;return(0,L.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,L.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-0 bg-[#17181b] shadow-lg shadow-black/40 ${s?`rounded-b-[22px]`:`rounded-t-[22px]`}`}),(0,L.jsx)(`span`,{"aria-hidden":!0,className:`absolute right-4 left-4 h-px bg-white/10`,style:s?{top:22}:{bottom:22}}),(0,L.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,L.jsx)(`div`,{className:`relative`,children:o})]})}function yt({call:e,assistantName:t,watching:n,watchEnabled:r,picking:i,sharing:a,shareEnabled:o,sharePicking:s,annotating:c,marked:l,annotationTool:u,vertical:d,drawToolsPlacement:f,drawToolsRef:p,onAnnotationTool:m,onControl:h,onWatch:g,onTeach:_,onShare:v,onStopShare:y,onAnnotate:b,onClearMarks:ee,openPicker:te,voicesPickable:x,onPicker:S,pickerSide:C,shortcuts:w,promptsDeferred:T=0,onReviewPrompts:E,lineExtra:ne=0}){let{t:D}=k();if(e===void 0)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(bt,{vertical:d,extra:ne,text:t===``?D(`companionSurface.calling`):D(`companionSurface.callingNamed`,{name:t})}),(0,L.jsx)(gt,{watching:n,watchEnabled:r,picking:i,onWatch:g,onTeach:_}),(0,L.jsx)(Tt,{onControl:h})]});let re=e.detail||e.label,{muted:ie,outputMuted:ae}=e;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(bt,{vertical:d,extra:ne,text:re}),T>0?(0,L.jsx)(`button`,{type:`button`,"data-theme":`dark`,"aria-label":D(`companionPopover.pendingBadge`,{count:T}),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:()=>{E?.()},children:T}):null,(0,L.jsx)(gt,{watching:n,watchEnabled:r,picking:i,onWatch:g,onTeach:_}),(0,L.jsx)(xt,{sharing:a,shareEnabled:o,sharePicking:s,shortcut:o?w?.share:void 0,onShare:v,onStopShare:y}),(0,L.jsx)(St,{sharing:a,annotating:c,shortcut:o?w?.draw:void 0,tool:u,placement:f,toolsRef:p,onAnnotate:b,onTool:m}),(0,L.jsx)(wt,{sharing:a,marked:l,onClearMarks:ee}),(0,L.jsx)($,{icon:ie?(0,L.jsx)(ue,{className:`size-4`}):(0,L.jsx)(ge,{className:`size-4`}),label:D(ie?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),shortcut:w?.muteMicrophone,onClick:()=>{h?.(ie?`unmuteMicrophone`:`muteMicrophone`)}}),(0,L.jsx)(jt,{picker:`microphones`,label:D(`companionSurface.chooseMicrophone`),side:C,open:te===`microphones`,onPicker:S}),(0,L.jsx)($,{icon:ae?(0,L.jsx)(Te,{className:`size-4`}):(0,L.jsx)(we,{className:`size-4`}),label:D(ae?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`),shortcut:w?.muteAssistant,onClick:()=>{h?.(ae?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),x?(0,L.jsx)(jt,{picker:`voices`,label:D(`companionSurface.chooseVoice`),side:C,open:te===`voices`,onPicker:S}):null,(0,L.jsx)(Tt,{onControl:h})]})}function bt({vertical:e,text:t,extra:n=0}){return e?(0,L.jsx)(`span`,{className:`mt-1 shrink-0 truncate text-[12px] text-white/85`,style:{height:st,writingMode:`vertical-rl`},"data-label":`line`,children:t}):(0,L.jsx)(`span`,{className:`ml-1 shrink-0 truncate text-[12px] text-white/85`,style:{width:at+n},"data-label":`line`,children:t})}function xt({sharing:e,shareEnabled:t,sharePicking:n,shortcut:r,onShare:i,onStopShare:a}){let{t:o}=k();return!t&&!e?null:(0,L.jsx)($,{icon:(0,L.jsx)(je,{className:`size-4`}),label:o(`companionSurface.share`),shortcut:r,pressed:e||n,onClick:e?a:i})}function St({sharing:e,annotating:t,shortcut:n,tool:r,placement:i,toolsRef:a,onAnnotate:o,onTool:s}){let{t:c}=k();return e?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)($,{icon:(0,L.jsx)(ye,{className:`size-4`}),label:c(`companionSurface.draw`),shortcut:n,pressed:t,className:`companion-draw-anchor`,onClick:()=>{o?.(!t)}}),t&&r!==void 0&&(0,L.jsx)(Ct,{tool:r,placement:i,toolsRef:a,onTool:s})]}):null}function Ct({tool:e,placement:t,toolsRef:n,onTool:r}){let{t:i}=k(),a=[{tool:`freehand`,icon:(0,L.jsx)(ye,{className:`size-4`}),label:i(`companionSurface.drawFreehand`)},{tool:`line`,icon:(0,L.jsx)(F,{className:`size-4`}),label:i(`companionSurface.drawLine`)},{tool:`box`,icon:(0,L.jsx)(_e,{className:`size-4`}),label:i(`companionSurface.drawBox`)},{tool:`circle`,icon:(0,L.jsx)(Ce,{className:`size-4`}),label:i(`companionSurface.drawCircle`)}];return(0,L.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,L.jsx)($,{icon:t.icon,label:t.label,pressed:e===t.tool,onClick:()=>{r?.(t.tool)}},t.tool))})}function wt({sharing:e,marked:t,onClearMarks:n}){let{t:r}=k();return!e||!t?null:(0,L.jsx)($,{icon:(0,L.jsx)(Ae,{className:`size-4`}),label:r(`companionSurface.clearMarks`),onClick:()=>{n?.()}})}function Tt({onControl:e}){let{t}=k();return(0,L.jsx)($,{icon:(0,L.jsx)(Se,{className:`size-4`,strokeWidth:2.5}),label:t(`companionSurface.endSession`),tone:`negative`,onClick:()=>{e?.(`endSession`)}})}function Et({onWatch:e}){let{t}=k();return(0,L.jsx)($,{icon:(0,L.jsx)(be,{className:`size-4`}),label:t(`companionSurface.stopTeaching`),onClick:e})}var Dt=`-translate-y-[calc(50%+22px)]`,Ot={right:`translate-x-[calc(50%+22px)]`,left:`-translate-x-[calc(50%+22px)]`},kt=e=>e===`above`?{className:Dt,beak:`down`}:{className:Ot[e],beak:e===`right`?`left`:`right`},At={above:j,below:he,left:fe,right:ve};function jt({picker:e,label:t,side:n,open:r,onPicker:i}){if(i===void 0)return null;let a=At[n];return(0,L.jsx)($,{icon:(0,L.jsx)(a,{className:`size-3.5`,strokeWidth:2.25}),label:t,pressed:r,narrow:!0,onClick:()=>{i(e)}})}function $({icon:e,label:t,shortcut:n,tone:r,showLabel:i=!1,pressed:a,narrow:o=!1,className:s=``,onClick:c}){let l=kt((0,I.useContext)($e));return(0,L.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,onClick:c,onPointerDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center justify-center gap-1.5 rounded-full text-[12px] transition-colors hover:bg-white/15 ${o?`-mx-1 px-0.5`:`px-2`} ${s} ${a===!0?`bg-white/15`:``} ${r===`negative`?`text-[#ff6b6b]`:r===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,i?(0,L.jsx)(`span`,{children:t}):(0,L.jsx)(ft,{label:t,shortcut:n,className:`opacity-0 group-hover:opacity-100 ${l.className}`,beak:l.beak,"data-label":`hover`})]})}var Mt=3,Nt=440;function Pt(){let{t:e}=k(),[r,l]=(0,I.useState)(`right`),[d,b]=(0,I.useState)(`up`),[x,C]=(0,I.useState)(`bottom`),[O,se]=(0,I.useState)(E),[ce,le]=(0,I.useState)(E),[ue,de]=(0,I.useState)(),[fe,pe]=(0,I.useState)(),[me,he]=(0,I.useState)(),[A,ge]=(0,I.useState)(null),[j,_e]=(0,I.useState)(!1),[ve,ye]=(0,I.useState)(void 0),[be,xe]=(0,I.useState)(``),[Se,Ce]=(0,I.useState)(``),[we,Te]=(0,I.useState)(!1),[M,ke]=(0,I.useState)(!1),[Ae,je]=(0,I.useState)(void 0),[F,Me]=(0,I.useState)(void 0),[Ne,Pe]=(0,I.useState)(!1),[R,Fe]=(0,I.useState)(void 0),[z,Ie]=(0,I.useState)(void 0),[B,Le]=(0,I.useState)(!1),[Re,H]=(0,I.useState)(!1),[U,ze]=(0,I.useState)(void 0),[Be,W]=(0,I.useState)(!1),[He,Ke]=(0,I.useState)(!1),[G,qe]=(0,I.useState)(!1),[Je,Ye]=(0,I.useState)(!1),[Xe,Ze]=(0,I.useState)(void 0),[K,q]=(0,I.useState)(!1),[J,Qe]=(0,I.useState)(`teach`),[$e,et]=(0,I.useState)(null),Y=(0,I.useRef)(0),[tt,X]=(0,I.useState)(!1),[nt,rt]=(0,I.useState)(null),Z=(0,I.useRef)(!1),it=(0,I.useRef)(null),at=(0,I.useRef)(null),ot=(0,I.useRef)(null),st=(0,I.useRef)(null),ct=(0,I.useRef)(null),ut=(0,I.useRef)(null),dt=(0,I.useRef)(null),ft=(0,I.useRef)(null),pt=(0,I.useRef)(!1),mt=(0,I.useCallback)(e=>{ft.current=e,e===null&&pt.current&&(pt.current=!1,Z.current=!1,D(!1))},[]),Q=(0,I.useRef)(null),ht=(0,I.useRef)(null),gt=(0,I.useRef)(!1);(0,I.useEffect)(()=>{let e=e=>{l(e.growth),b(e.cardGrowth),C(e.dock??`bottom`),se(e.avatarBox),le(e.optionsBox??e.avatarBox),de(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),pe(e.character),he(e.accentHex),ge(e.call),_e(e.dialing===!0),Ce(e.assistantName),Te(e.working),ke(e.watching===!0),ye(e.dictating),xe(e.dictationText??``),je(e.watchRetro),Me(e.dictationOffer),Fe(e.popover),Pe(e.voicesPickable===!0),Ie(e.popoverView),Le(e.watchEnabled===!0),H(e.watchTargets===!0),ze(e.screenShare),W(e.screenShareEnabled===!0),Ke(e.annotating===!0),qe((e.coachmarks?.length??0)>0),Ye(e.marksCleared!==void 0),Ze(e.annotationTool),rt(e.intro)},t=S(e);return o().then(t=>{t&&e(t)}),t},[]),(0,I.useEffect)(()=>()=>{D(!1)},[]);let _t=A!==null||j,vt=U!==void 0,yt=(0,I.useMemo)(()=>c()?te():void 0,[]);(0,I.useEffect)(()=>{_t||(Y.current+=1,q(!1))},[_t]),(0,I.useEffect)(()=>{M&&J===`teach`&&(Y.current+=1,q(!1))},[M,J]),(0,I.useEffect)(()=>{vt&&J===`share`&&(Y.current+=1,q(!1))},[vt,J]);let bt=(e,t)=>{et(null),Qe(e),q(!0);let n=++Y.current;h().then(e=>{if(n===Y.current){if(e!==null){et(e);return}q(!1),t()}})},xt=()=>{if(!Re){y();return}if(K&&J===`teach`){Y.current+=1,q(!1);return}bt(`teach`,y)},St=()=>{if(K&&J===`share`){Y.current+=1,q(!1);return}bt(`share`,()=>void 0)};(0,I.useEffect)(()=>{!K&&Z.current&&(Z.current=!1,D(!1))},[K]),(0,I.useEffect)(()=>{F===void 0&&Z.current&&(Z.current=!1,D(!1))},[F]);let Ct=(0,I.useRef)(!1),wt=R!==void 0&&z!==void 0&&z!==`deferred`&&(A!==null||j)&&x!==`left`&&x!==`right`,Tt=wt?R?.id:void 0;(0,I.useLayoutEffect)(()=>{let e=dt.current;if(Tt===void 0||e===null)return;let t=()=>{ie(Tt,e.getBoundingClientRect().height)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[Tt,z]),(0,I.useEffect)(()=>{!wt&&Ct.current&&(Ct.current=!1,Z.current=!1,D(!1))},[wt]);let Et=e=>{if(Y.current+=1,q(!1),J===`share`){T(e);return}y(e)},Dt=e=>{Z.current!==e&&(Z.current=e,D(e))},Ot=nt!==null&&A===null&&!j,kt=(0,I.useRef)(Ot);(0,I.useEffect)(()=>{kt.current&&!Ot&&(X(!1),Dt(!1)),kt.current=Ot},[Ot]);let At=We(nt),jt=A!==null||j?`call`:ve===void 0?F===void 0?M?`watching`:Ae===void 0?At??(tt?`hover`:`resting`):`summary`:`offer`:`dictating`,$=e=>{if(Q.current!==null&&e.buttons===0&&(Q.current=null,u()),Q.current!==null){let{x:t,y:n}=Q.current;m(e.screenX-t,e.screenY-n),Q.current={x:e.screenX,y:e.screenY};let r=ht.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>Mt&&(gt.current=!0);return}let t=ot.current;if(!t)return;let n=it.current?.getBoundingClientRect()??null,r=at.current?.getBoundingClientRect()??null,i=n!==null&&n.width>0?n:r!==null&&r.width>0?r:null,a=Oe({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:i}),o=st.current,s=o!==null&&P(o.getBoundingClientRect(),e.clientX,e.clientY),c=ut.current,l=c!==null&&P(c.getBoundingClientRect(),e.clientX,e.clientY),d=ct.current,f=d!==null&&P(d.getBoundingClientRect(),e.clientX,e.clientY),p=dt.current,h=p!==null&&P(p.getBoundingClientRect(),e.clientX,e.clientY),g=ft.current,_=g!==null&&P(g.getBoundingClientRect(),e.clientX,e.clientY);X(a),pt.current=_,Ct.current=h,Dt(a||s||f||l||_||h)},Pt=N(A,me,fe),Ft=R===void 0||z!==`deferred`?0:R.kind===`approvals`?R.items.length:1;return(0,L.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:$,onMouseUp:()=>{Q.current!==null&&(Q.current=null,u())},onPointerCancel:()=>{Q.current!==null&&(Q.current=null,u()),X(!1),Dt(!1)},onMouseLeave:()=>{Q.current===null&&(X(!1),Dt(!1))},children:(0,L.jsx)(lt,{phase:jt,growth:r,cardGrowth:d,dock:x,avatarBox:O,optionsBox:ce,avatarSrc:ue,character:fe,hovered:tt,accentHex:Pt,call:A??void 0,assistantName:Se,dictating:ve,dictationText:be,working:we,watching:M,watchRetro:Ae,onWatchRetro:p,dictationOffer:F,offer:F===void 0?null:(0,L.jsx)(Ve,{offer:F,growth:r,cardGrowth:d,avatarBox:O,optionsBox:ce,cardRef:ut,onAnswer:e=>{a(e,F.id)}}),watchEnabled:B,spotlight:Ue(nt),intro:!Ot||nt===null?null:(0,L.jsx)(Ge,{beat:nt,growth:r,cardGrowth:d,avatarBox:O,optionsBox:ce,accentHex:Pt,assistantName:Se===``?void 0:Se,cardRef:st,onAdvance:n}),rootRef:it,restingPillRef:at,avatarRef:ot,onSurfacePointerDown:e=>{e.button===0&&e.target.closest(`button, a`)===null&&(e.currentTarget.setPointerCapture(e.pointerId),Q.current={x:e.screenX,y:e.screenY},ht.current={x:e.screenX,y:e.screenY},gt.current=!1)},onSurfaceContextMenu:e=>{(window.getSelection()?.toString().trim().length??0)>0||(e.preventDefault(),re())},onAvatarClick:()=>{if(!gt.current){if(A!==null||j){oe();return}v()}},onWatch:()=>{y()},onTeach:xt,picking:K&&J===`teach`,sharing:vt,shareEnabled:Be,sharePicking:K&&J===`share`,onShare:St,onStopShare:()=>{T()},annotating:He,onAnnotate:e=>{t(e)},marked:Je&&(G||He),onClearMarks:()=>{s()},openPicker:R?.kind===`microphones`||R?.kind===`voices`?R.kind:void 0,voicesPickable:Ne,onPicker:ne()?e=>{ae(e)}:void 0,annotationTool:Xe,onAnnotationTool:e=>{ee(e)},drawToolsRef:mt,shortcuts:yt,picker:K?(0,L.jsx)(V,{sources:$e,captureThumbnail:i,cardGrowth:d,avatarBox:O,optionsBox:ce,cardRef:ct,label:J===`share`?e(`companionSurface.sharePicker`):void 0,onPick:Et}):null,prompt:!wt||R===void 0?null:z===`row`&&(R.kind===`approvals`||R.kind===`secret`)?(0,L.jsx)(Ee,{popover:R,onAnswer:e=>{f(e,R.id)},onView:e=>{_(R.id,e)}}):(0,L.jsx)(De,{attached:!0,popover:R,view:z??`expanded`,style:{maxHeight:Nt},onAnswer:e=>{f(e,R.id)},onView:e=>{_(R.id,e)},onOpenLink:e=>{g(e)}},R.id),promptRef:dt,promptsDeferred:Ft,onReviewPrompts:()=>{R!==void 0&&_(R.id,`expanded`)},onControl:(e,t)=>{w(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{Pt as CompanionSurfacePage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{$s as t,Bs as n,Dx as r,Gs as i,Hs as a,Js as o,Ks as s,Ls as c,Lx as l,Qs as u,Si as d,Us as f,Ws as p,Xs as m,Ys as h,Zs as g,ac as _,cc as v,dc as y,dn as b,ec as ee,fc as te,hh as x,lc as S,li as C,mc as w,oc as T,ph as E,qs as ne,rc as D,sc as re,tc as ie,uc as ae,zs as oe}from"./app-p4YU9h0P.js";import{f as O,g as se,j as k}from"./vendor-DYOeoIwg.js";import{t as ce,x as le}from"./react-B9IgSVeK.js";import{Cn as ue,Ga as de,Gi as fe,Ja as pe,Jr as me,Ki as he,Pa as A,Sn as ge,Ui as j,W as _e,Wi as ve,Xt as ye,Yr as be,_n as xe,i as Se,ki as Ce,m as we,p as Te,yt as M}from"./icons-QG1KAFmx.js";import{n as N}from"./companion-accent-BhdiAsTr.js";import{n as Ee,t as De}from"./companion-popover-BsbCOPDj.js";import{n as P,r as Oe,t as ke}from"./companion-layout-BPhlz6Wp.js";var Ae=pe(`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`}]]),je=pe(`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`}]]),F=pe(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),I=e(le(),1),L=ce(),Me=460,Ne=3,Pe=88,R=3,Fe=[`screens`,`tabs`,`windows`],z=(e,t)=>t===`screens`?e.displays.length:t===`tabs`?e.tabs.length:e.windows.length,Ie=e=>Fe.find(t=>z(e,t)>0)??`screens`,B=e=>e.kind===`display`?`display-${e.displayId}`:`window-${e.windowId}`;function V({sources:e,captureThumbnail:t,cardGrowth:n=`up`,avatarBox:i=E,optionsBox:a=E,cardRef:o,label:s,onPick:c}){let{t:u}=k(),{inUnits:d,lineAt:f,introStepOff:p}=ke(i,a),m=d(p(n)),h={left:`50%`,top:f(n,0),transform:n===`up`?`translate(-50%, calc(-100% - ${m}px))`:`translate(-50%, ${m}px)`},g=e===null?[]:Fe.filter(t=>z(e,t)>0),_=e!==null&&g.length===0,[v,y]=(0,I.useState)(null),b=e===null?`screens`:v!==null&&g.includes(v)?v:Ie(e),ee=(0,I.useMemo)(()=>e===null?[]:b===`screens`?e.displays.map(e=>{let t={kind:`display`,displayId:e.displayId};return{key:B(t),target:t}}):b===`windows`?e.windows.map(e=>{let t={kind:`window`,windowId:e.windowId};return{key:B(t),target:t}}):[],[b,e]),[te,x]=(0,I.useState)(new Map),S=(0,I.useRef)(new Set),C=(0,I.useRef)(0),w=(0,I.useRef)(!1);(0,I.useEffect)(()=>(w.current=!0,()=>{w.current=!1}),[]),(0,I.useEffect)(()=>{S.current=new Set,C.current+=1,x(new Map),y(null)},[e]);let T=(0,I.useRef)(null);(0,I.useEffect)(()=>{T.current!==null&&(T.current.scrollTop=0)},[b]),(0,I.useEffect)(()=>{if(t!==void 0)for(let{key:e,target:n}of ee){if(S.current.has(e))continue;S.current.add(e);let r=C.current,i=t=>{!w.current||r!==C.current||x(n=>new Map(n).set(e,t))};t(n).then(i,()=>{i(null)})}},[t,ee]);let ne=e=>t===void 0?null:te.get(e),D=e=>u(e===`screens`?`companionSurface.captureScreens`:e===`tabs`?`companionSurface.captureTabs`:`companionSurface.captureWindows`);return(0,L.jsxs)(`div`,{ref:o,role:`group`,"aria-label":s??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:Me,...h},onPointerDown:e=>{e.stopPropagation()},children:[g.length>1&&(0,L.jsx)(r,{className:`mx-auto mb-1.5 w-auto shrink-0`,items:g.map(e=>({value:e,label:D(e)})),value:b,ariaLabel:u(`companionSurface.captureKind`),onChange:y}),(0,L.jsx)(l,{ref:T,className:`max-h-48 flex-col px-0.5`,size:24,fadeEdges:`end`,hideScrollBar:!0,children:(0,L.jsxs)(`div`,{className:`flex flex-col`,"data-slot":`capture-sources`,children:[e===null&&(0,L.jsx)(ze,{}),e!==null&&b===`screens`&&(0,L.jsx)(Le,{children:e.displays.map(e=>{let t=u(`companionSurface.captureScreen`,{n:e.index+1}),n=B({kind:`display`,displayId:e.displayId});return(0,L.jsx)(Re,{title:t,ariaLabel:t,answer:ne(n),fallback:(0,L.jsx)(xe,{className:`size-5 text-white/40`,"aria-hidden":!0}),onClick:()=>{c?.({kind:`display`,displayId:e.displayId})}},n)})}),e!==null&&b===`windows`&&(0,L.jsx)(Le,{children:e.windows.map(e=>{let t=B({kind:`window`,windowId:e.windowId}),n=e.title===``?e.app:e.title;return(0,L.jsx)(Re,{title:n,ariaLabel:e.title===``?n:`${n} (${e.app})`,answer:ne(t),fallback:(0,L.jsx)(U,{icon:e.icon,large:!0}),icon:(0,L.jsx)(U,{icon:e.icon}),onClick:()=>{c?.({kind:`window`,windowId:e.windowId})}},t)})}),e!==null&&b===`tabs`&&(0,L.jsx)(`div`,{className:`flex flex-col`,children:e.tabs.map(e=>(0,L.jsx)(H,{icon:(0,L.jsx)(U,{icon:e.icon}),title:e.title,onClick:()=>{c?.({kind:`tab`,chromeWindowId:e.chromeWindowId,tabIndex:e.tabIndex})}},`tab-${e.chromeWindowId}-${e.tabIndex}`))}),_&&(0,L.jsx)(`span`,{className:`px-2 py-3 text-[12px] text-white/50`,children:u(`companionSurface.captureNothing`)})]})})]})}function Le({children:e}){return(0,L.jsx)(`div`,{className:`grid gap-1.5 py-0.5`,style:{gridTemplateColumns:`repeat(${Ne}, minmax(0, 1fr))`},children:e})}function Re({title:e,ariaLabel:t,answer:n,fallback:r,icon:i,onClick:a}){return(0,L.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,L.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:Pe},children:n==null?r:(0,L.jsx)(`img`,{src:n,alt:``,draggable:!1,className:`max-h-full max-w-full object-contain`})}),(0,L.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1`,children:[i,(0,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[11px] text-white/75 group-hover:text-white/90`,children:e})]})]})}function H({icon:e,title:t,onClick:n}){return(0,L.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,L.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:t})]})}function U({icon:e,large:t=!1}){return(0,L.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,L.jsx)(de,{className:t?`size-5 text-white/40`:`size-3 text-white/70`,"aria-hidden":!0}):(0,L.jsx)(`img`,{src:e,alt:``,className:`size-full`,draggable:!1})})}function ze(){return(0,L.jsx)(Le,{children:Array.from({length:R},(e,t)=>(0,L.jsxs)(`div`,{className:`flex flex-col gap-1 p-1`,"aria-hidden":!0,children:[(0,L.jsx)(`span`,{className:`animate-pulse rounded-md bg-white/10`,style:{height:Pe}}),(0,L.jsx)(`span`,{className:`h-2 animate-pulse rounded-full bg-white/10`,style:{width:t===0?`70%`:`45%`}})]},t))})}var Be=260;function Ve({offer:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=E,optionsBox:i=E,cardRef:a,onAnswer:o}){let{t:s}=k(),c=e.reason===`claimed`?s(`companionSurface.offerVersion`):s(`companionSurface.offerNowhere`),{inUnits:u,avatarHalf:d,lineAt:f,edgeAt:p,introStepOff:m}=ke(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,L.jsxs)(`div`,{ref:a,role:`group`,"aria-label":c,"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:Be,...g,..._},onPointerDown:e=>{e.stopPropagation()},children:[(0,L.jsx)(`p`,{className:`text-[11px] font-medium tracking-wide text-white/45 uppercase select-none`,children:c}),(0,L.jsx)(l,{className:`max-h-40 flex-col`,size:20,fadeEdges:`end`,hideScrollBar:!0,children:(0,L.jsx)(`p`,{dir:`auto`,className:`text-[13px] leading-[1.45] text-white/90`,children:e.text})}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-1 pt-0.5`,children:[(0,L.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,L.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,L.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 W=244,He={meet:{title:`companionIntro.meet.title`,body:`companionIntro.meet.body`},talk:{title:`companionIntro.talk.title`,body:`companionIntro.talk.body`},menu:{title:`companionIntro.menu.title`,body:`companionIntro.menu.body`}},Ue=e=>e===`talk`?e:void 0,We=e=>e===null||e===`meet`?null:`hover`;function Ge({beat:e,growth:t=`right`,cardGrowth:n=`up`,avatarBox:r=E,optionsBox:i=E,accentHex:a,assistantName:o,cardRef:s,onAdvance:c}){let{t:l}=k(),u=x.indexOf(e),d=u===x.length-1,f=He[e],{inUnits:p,avatarHalf:m,lineAt:h,edgeAt:g,introStepOff:_}=ke(r,i),v=p(_(n)),y=g(t,-m),b={top:h(n,0),transform:n===`up`?`translateY(calc(-100% - ${v}px))`:`translateY(${v}px)`};return(0,L.jsxs)(`div`,{ref:s,role:`group`,"aria-label":l(`companionIntro.ariaLabel`),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:W,...y,...b},onPointerDown:e=>{e.stopPropagation()},children:[(0,L.jsx)(`p`,{className:`line-clamp-2 text-[13px] leading-tight font-medium text-white`,children:e===`meet`&&o!==void 0?l(`companionIntro.meet.titleNamed`,{name:o}):l(f.title)}),(0,L.jsx)(`p`,{className:`text-[12px] leading-[1.45] text-white/70`,children:l(f.body)}),(0,L.jsxs)(`div`,{className:`flex items-center justify-between pt-0.5`,children:[(0,L.jsx)(`div`,{className:`flex items-center gap-1`,"aria-hidden":!0,children:x.map((e,t)=>(0,L.jsx)(`span`,{className:`size-1.5 rounded-full transition-colors`,style:{backgroundColor:t===u?a??`#5eead4`:`rgba(255,255,255,.2)`}},e))}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1`,children:[!d&&(0,L.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:()=>c?.(`dismiss`),children:l(`companionIntro.skip`)}),(0,L.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:()=>c?.(`next`),children:l(d?`companionIntro.done`:`companionIntro.next`)})]})]})]})}var Ke={min:3,max:10},G=(e=Math.random)=>{let t=e();return t<1/3?`top`:t<2/3?`topLeft`:`topRight`},qe=1600,Je=.22,Ye=.04,Xe=4,Ze=(e,t)=>{let n=Math.min(.95,Math.max(.25,e.eyeCenterFrac+e.eyeHalfFrac+Ye)),r=Math.min(t,24,14/n),i=r*n;return{size:r,exposed:i,clip:{width:r+2*Xe,height:i+Xe},rest:i+2}},K=(e,t=Math.random)=>(e.min+t()*(e.max-e.min))*1e3;function q(e,t=Ke){let[n,r]=(0,I.useState)(0),{min:i,max:a}=t;return(0,I.useEffect)(()=>{if(!e)return;let t,n=()=>{t=setTimeout(()=>{r(e=>e+1),n()},K({min:i,max:a}))};return n(),()=>{clearTimeout(t)}},[e,i,a]),n}var J=(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 Qe({character:e,capsule:t,enabled:n,held:r=!1,edge:i,interval:a=Ke,className:o,style:s}){let c=O(),l=(0,I.useMemo)(()=>b(d,e),[e]),u=q(n&&!r&&!c&&l!==null,a),[f,p]=(0,I.useState)(!1),[m,h]=(0,I.useState)(`top`);if((0,I.useEffect)(()=>{if(u===0)return;h(G()),p(!0);let e=setTimeout(()=>{p(!1)},qe);return()=>{clearTimeout(e)}},[u]),l===null||c)return null;let g=Ze(l,t.width),_=r||f,v=i??m,y=J(v,g.clip,t);return(0,L.jsx)(`div`,{className:`companion-peek ${o??``}`,style:{width:t.width,height:t.height,...s},"data-risen":_,"data-edge":v,"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`absolute`,style:y.slot,children:(0,L.jsx)(`div`,{className:`absolute inset-0 overflow-hidden`,children:(0,L.jsx)(se.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:_?0:g.rest},transition:r?{duration:0}:_?{type:`spring`,stiffness:280,damping:14}:{duration:Je,ease:`easeIn`},children:(0,L.jsx)(C,{components:d,traits:e,size:g.size})})})})})}var $e=(0,I.createContext)(`above`),et=`#5eead4`,Y=new Set([`transcribing`,`thinking`,`speaking`]),tt=28,X={idle:{width:64,height:14},closing:tt,rim:2,bloom:4},nt=X.idle,rt=(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(`, `),Z=244,it=200,at=120,ot={watching:40,summary:220,dictating:Z+32,offer:it+32,call:4+at+180},st=84,ct={width:28,height:st+140+20};function lt({phase:e,assistantName:t=``,accentHex:n=et,avatarSrc:r,character:i,hovered:a=!1,growth:o=`right`,avatarBox:s=E,optionsBox:c=E,cardGrowth:l=`up`,dock:u=`bottom`,rootRef:d,restingPillRef:f,avatarRef:p,onSurfacePointerDown:m,onSurfaceContextMenu:h,spotlight:g,onWatch:_,onTeach:v,picking:y=!1,sharing:b=!1,shareEnabled:ee=!1,sharePicking:te=!1,onShare:x,onStopShare:S,annotating:C=!1,annotationTool:w,onAnnotationTool:T,drawToolsRef:ne,onAnnotate:D,marked:re=!1,onClearMarks:ie,openPicker:ae,voicesPickable:oe=!1,onPicker:se,shortcuts:ce,onAvatarClick:le,working:ue=!1,watching:de=!1,watchRetro:fe,onWatchRetro:pe,dictationOffer:me,offer:he,watchEnabled:A=!1,dictating:ge,dictationText:j=``,call:_e,onControl:ve,intro:ye,picker:be,prompt:xe,promptRef:Se,promptsDeferred:Ce=0,onReviewPrompts:we}){let{t:Te}=k(),M=e!==`resting`,N=e===`call`||e===`dictating`||e===`offer`||e===`summary`||e===`watching`,[Ee,De]=(0,I.useState)(!1);(0,I.useEffect)(()=>{if(e!==`hover`){De(!1);return}let t=setTimeout(()=>{De(!0)},500);return()=>{clearTimeout(t)}},[e]);let P=g===`talk`||e===`hover`&&Ee,Oe=fe===`pending`,Ae=ue||_e!==void 0&&Y.has(_e.phase),je=O(),F=(0,I.useRef)(null),[Me,Ne]=(0,I.useState)(null),Pe=(0,I.useRef)(0);(0,I.useLayoutEffect)(()=>{let e=F.current;if(!e)return;let t=()=>{Ne({width:e.scrollWidth-Pe.current,height:e.scrollHeight})};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[e]);let{scale:R,avatarRel:Fe,avatarHalf:z,baseline:Ie,gap:B,inUnits:V,lineAt:Le,edgeAt:Re}=ke(s,c),H=e===`call`,U=H&&(u===`left`||u===`right`),ze=U?u===`left`?`right`:`left`:`above`,Be=N?U?(Me?.width??ct.width)+16:(Me?.width??ot[e])+16:0,Ve=N?(Me?.height??ct.height)+16:0,W=H&&!U&&xe!=null,He=(0,I.useRef)(null),[Ue,We]=(0,I.useState)(0);(0,I.useLayoutEffect)(()=>{let e=He.current;if(!W||e===null)return;let t=()=>{We(Math.ceil(e.getBoundingClientRect().width/R))};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[W,xe,R]);let Ge=W?Math.max(Be,Ue):Be,Ke=Ge-Be;(0,I.useLayoutEffect)(()=>{Pe.current=Ke},[Ke]);let G=U?`50%`:Le(l,0),qe=Re(o,z+B),Je=s/E,Ye=M?{width:X.closing*Je,height:X.closing*Je}:X.idle,Xe=ye!=null,Ze=H?{width:Ge,...U?{height:Ve}:{},left:`50%`,top:G,transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`}:{width:Be,...qe,top:Le(l,Ie),transform:`translateY(-100%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`},K=H&&!U?`calc(50% - ${Ge/2+V(z+B)}px)`:`50%`,q=U?`calc(50% - ${Ve/2+V(z+B)}px)`:G;return(0,L.jsxs)(`div`,{className:`absolute top-0 left-0 origin-top-left`,style:{width:`${100/R}%`,height:`${100/R}%`,transform:`scale(${R})`},children:[W?(0,L.jsx)(vt,{dock:u,top:G,width:Ge,accentHex:n,lit:N,promptRef:Se,children:xe}):null,W?(0,L.jsx)(`div`,{ref:He,inert:!0,"aria-hidden":!0,"data-theme":`dark`,className:`pointer-events-none invisible absolute top-0 left-0 w-max max-w-[640px]`,children:xe}):null,(0,L.jsxs)(`div`,{className:`absolute flex cursor-grab items-center rounded-full duration-300 select-none active:cursor-grabbing ${U?`flex-col transition-[width,height] will-change-[width,height]`:`h-11 transition-[width] will-change-[width]`} ${!H&&o===`left`?`justify-end`:``}`,style:Ze,onPointerDown:m,onContextMenu:h,ref:d,children:[(0,L.jsx)(`span`,{className:`absolute inset-0 rounded-full transition-opacity duration-200 ${W?`bg-[#17181b]`:`border border-white/10 bg-[#17181b]/95 shadow-lg shadow-black/40`}`,style:{opacity:+!!N},"aria-hidden":!0}),H&&(0,L.jsx)(`span`,{className:`companion-working-ring pointer-events-none absolute -inset-0.5 rounded-full transition-opacity duration-200`,style:{opacity:N&&!W?1:0,"--companion-ring-accent":n},"aria-hidden":!0}),(0,L.jsx)(`div`,{className:`relative flex shrink-0 items-center ${U?`flex-col`:`h-11`}`,style:U?{paddingBlock:8,paddingInline:8}:{paddingInline:8},children:(0,L.jsx)(`div`,{className:`flex items-center gap-1 overflow-hidden transition-opacity duration-200 ${U?`min-h-0 flex-col`:`min-w-0`}`,ref:F,inert:!N,style:{opacity:+!!N,transitionDelay:N?`120ms`:`0ms`},children:e===`call`?(0,L.jsx)($e.Provider,{value:ze,children:(0,L.jsx)(yt,{call:_e,assistantName:t,watching:de,watchEnabled:A,picking:y,sharing:b,shareEnabled:ee,sharePicking:te,annotating:C,marked:re,annotationTool:w,vertical:U,drawToolsPlacement:U?u===`left`?`right`:`left`:l===`up`?`above`:`below`,drawToolsRef:ne,onAnnotationTool:T,onControl:ve,onWatch:_,onTeach:v,onShare:x,onStopShare:S,onAnnotate:D,onClearMarks:ie,openPicker:ae,voicesPickable:oe,onPicker:se,pickerSide:U?u===`left`?`right`:`left`:u===`top`?`below`:`above`,shortcuts:ce,promptsDeferred:Ce,lineExtra:Ke,onReviewPrompts:we})}):e===`dictating`&&ge!==void 0?(0,L.jsx)(mt,{dictating:ge,dictationText:j}):e===`summary`&&fe!==void 0?(0,L.jsx)(_t,{retro:fe,onWatchRetro:pe}):e===`offer`&&me!==void 0?(0,L.jsx)(Q,{offer:me}):(0,L.jsx)(ht,{watching:de,onWatch:_})})})]}),(0,L.jsx)(`div`,{className:`absolute cursor-grab active:cursor-grabbing`,style:{width:V(X.idle.width),height:V(X.idle.height),pointerEvents:M?`none`:void 0,left:`50%`,top:G,transform:`translate(-50%, -50%)`},onPointerDown:m,onContextMenu:h,ref:f,"aria-hidden":!0,children:(0,L.jsx)(`div`,{className:`absolute top-1/2 left-1/2 rounded-full transition-[width,height,opacity] duration-300`,style:{width:V(Ye.width),height:V(Ye.height),transform:`translate(-50%, -50%)`,transitionTimingFunction:`cubic-bezier(.2,.8,.2,1)`,transitionProperty:je?`opacity`:void 0,boxShadow:rt(n,V(X.rim),V(X.bloom)),opacity:+!M}})}),(0,L.jsx)(ft,{className:P?`opacity-100`:`opacity-0`,"data-companion-name":P?`shown`:`hidden`,style:{left:`50%`,top:G,transform:`translate(-50%, calc(-100% - ${V(z)}px - 4px))`},label:Te(`companionSurface.talk`)}),(0,L.jsx)(pt,{label:Te(e===`call`?`companionSurface.openVellum`:`companionSurface.talk`),accentHex:n,avatarSrc:r,character:i,attentive:a,busy:Ae||de||Oe,collapsed:!M&&!Xe,restingScale:E/s,style:{left:K,top:q,transform:`translate(-50%, -50%)${Fe===1?``:` scale(${Fe})`}`,transition:je?void 0:`left 300ms cubic-bezier(.2,.8,.2,1), top 300ms cubic-bezier(.2,.8,.2,1)`},elementRef:p,onPointerDown:m,onContextMenu:h,onClick:le}),ye,be,he]})}var ut=`rgba(28, 28, 30, 0.55)`,dt=`backdrop-blur-md backdrop-saturate-150`;function ft({className:e,style:t,label:n,shortcut:r,beak:i=`down`,...a}){return(0,L.jsxs)(`span`,{className:`pointer-events-none absolute rounded-md px-2 py-1 text-[11px] font-medium whitespace-nowrap text-white/90 shadow-md shadow-black/30 transition-opacity duration-200 ${dt} ${e}`,style:{...t,backgroundColor:ut},"aria-hidden":!0,...a,children:[n,r===void 0?null:(0,L.jsx)(`span`,{className:`ml-1.5 font-normal text-white/60`,"data-shortcut":!0,children:r}),(0,L.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`} ${dt}`,style:{backgroundColor:ut,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 pt({accentHex:e,avatarSrc:t,character:n,busy:r=!1,attentive:i=!1,collapsed:a=!1,restingScale:o=1,label:s,style:c,elementRef:l,onPointerDown:u,onContextMenu:f,onClick:p}){let m=O();return(0,L.jsxs)(`div`,{role:`button`,"aria-label":s,className:`absolute grid size-11 cursor-grab place-items-center active:cursor-grabbing`,style:c,ref:l,onPointerDown:u,onContextMenu:f,onClick:p,children:[n===void 0?null:(0,L.jsx)(Qe,{character:n,capsule:nt,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,L.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,L.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,L.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,L.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,L.jsx)(`div`,{className:`relative drop-shadow-[0_1px_3px_rgba(0,0,0,0.55)]`,children:(0,L.jsx)(C,{components:d,traits:n,size:tt,isAssistantBusy:r,attentive:i})})})})]})}function mt({dictating:e,dictationText:t}){let{t:n}=k(),r=t.trim();return(0,L.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,L.jsx)(A,{className:`size-4 shrink-0`,"aria-hidden":!0}),r?(0,L.jsx)(`span`,{dir:`auto`,className:`flex justify-end overflow-hidden text-[12px] whitespace-nowrap text-white/85`,style:{width:Z},children:(0,L.jsx)(`span`,{className:`shrink-0`,children:r})}):(0,L.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:Z},children:n(e===`listening`?`companionSurface.dictating`:`companionSurface.dictatingTranscribing`)})]})}function Q({offer:e}){let{t}=k();return(0,L.jsxs)(`div`,{className:`flex h-7 shrink-0 items-center gap-2 px-1`,children:[(0,L.jsx)(A,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`truncate text-[12px] text-white/85`,style:{width:it},children:e.reason===`claimed`?t(`companionSurface.offerHeard`,{app:e.app}):t(`companionSurface.offerNowhere`)})]})}function ht({watching:e=!1,onWatch:t}){return(0,L.jsx)(L.Fragment,{children:e&&(0,L.jsx)(Et,{onWatch:t})})}function gt({watching:e,watchEnabled:t,picking:n,onWatch:r,onTeach:i}){let{t:a}=k();return t?(0,L.jsx)($,{icon:(0,L.jsx)(me,{className:`size-4`}),label:a(`companionSurface.teach`),pressed:e||n,onClick:e?r:i??r}):e?(0,L.jsx)(Et,{onWatch:r}):null}function _t({retro:e,onWatchRetro:t}){let{t:n}=k();return e===`pending`?(0,L.jsx)(`span`,{className:`ml-1 shrink-0 text-[12px] text-white/85`,children:n(`companionSurface.summarizing`)}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)($,{icon:(0,L.jsx)(M,{className:`size-4`}),label:n(`companionSurface.showSummary`),showLabel:!0,onClick:()=>{t?.(!0)}}),(0,L.jsx)($,{icon:(0,L.jsx)(Se,{className:`size-4`}),label:n(`companionSurface.notNow`),showLabel:!0,onClick:()=>{t?.(!1)}})]})}function vt({dock:e,top:t,width:n,accentHex:r,lit:i,promptRef:a,children:o}){let s=e===`top`;return(0,L.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,L.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-0 bg-[#17181b] shadow-lg shadow-black/40 ${s?`rounded-b-[22px]`:`rounded-t-[22px]`}`}),(0,L.jsx)(`span`,{"aria-hidden":!0,className:`absolute right-4 left-4 h-px bg-white/10`,style:s?{top:22}:{bottom:22}}),(0,L.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,L.jsx)(`div`,{className:`relative`,children:o})]})}function yt({call:e,assistantName:t,watching:n,watchEnabled:r,picking:i,sharing:a,shareEnabled:o,sharePicking:s,annotating:c,marked:l,annotationTool:u,vertical:d,drawToolsPlacement:f,drawToolsRef:p,onAnnotationTool:m,onControl:h,onWatch:g,onTeach:_,onShare:v,onStopShare:y,onAnnotate:b,onClearMarks:ee,openPicker:te,voicesPickable:x,onPicker:S,pickerSide:C,shortcuts:w,promptsDeferred:T=0,onReviewPrompts:E,lineExtra:ne=0}){let{t:D}=k();if(e===void 0)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(bt,{vertical:d,extra:ne,text:t===``?D(`companionSurface.calling`):D(`companionSurface.callingNamed`,{name:t})}),(0,L.jsx)(gt,{watching:n,watchEnabled:r,picking:i,onWatch:g,onTeach:_}),(0,L.jsx)(Tt,{onControl:h})]});let re=e.detail||e.label,{muted:ie,outputMuted:ae}=e;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(bt,{vertical:d,extra:ne,text:re}),T>0?(0,L.jsx)(`button`,{type:`button`,"data-theme":`dark`,"aria-label":D(`companionPopover.pendingBadge`,{count:T}),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:()=>{E?.()},children:T}):null,(0,L.jsx)(gt,{watching:n,watchEnabled:r,picking:i,onWatch:g,onTeach:_}),(0,L.jsx)(xt,{sharing:a,shareEnabled:o,sharePicking:s,shortcut:o?w?.share:void 0,onShare:v,onStopShare:y}),(0,L.jsx)(St,{sharing:a,annotating:c,shortcut:o?w?.draw:void 0,tool:u,placement:f,toolsRef:p,onAnnotate:b,onTool:m}),(0,L.jsx)(wt,{sharing:a,marked:l,onClearMarks:ee}),(0,L.jsx)($,{icon:ie?(0,L.jsx)(ue,{className:`size-4`}):(0,L.jsx)(ge,{className:`size-4`}),label:D(ie?`companionSurface.unmuteMicrophone`:`companionSurface.muteMicrophone`),shortcut:w?.muteMicrophone,onClick:()=>{h?.(ie?`unmuteMicrophone`:`muteMicrophone`)}}),(0,L.jsx)(jt,{picker:`microphones`,label:D(`companionSurface.chooseMicrophone`),side:C,open:te===`microphones`,onPicker:S}),(0,L.jsx)($,{icon:ae?(0,L.jsx)(Te,{className:`size-4`}):(0,L.jsx)(we,{className:`size-4`}),label:D(ae?`companionSurface.unmuteAssistant`:`companionSurface.muteAssistant`),shortcut:w?.muteAssistant,onClick:()=>{h?.(ae?`unmuteAssistantAudio`:`muteAssistantAudio`)}}),x?(0,L.jsx)(jt,{picker:`voices`,label:D(`companionSurface.chooseVoice`),side:C,open:te===`voices`,onPicker:S}):null,(0,L.jsx)(Tt,{onControl:h})]})}function bt({vertical:e,text:t,extra:n=0}){return e?(0,L.jsx)(`span`,{className:`mt-1 shrink-0 truncate text-[12px] text-white/85`,style:{height:st,writingMode:`vertical-rl`},"data-label":`line`,children:t}):(0,L.jsx)(`span`,{className:`ml-1 shrink-0 truncate text-[12px] text-white/85`,style:{width:at+n},"data-label":`line`,children:t})}function xt({sharing:e,shareEnabled:t,sharePicking:n,shortcut:r,onShare:i,onStopShare:a}){let{t:o}=k();return!t&&!e?null:(0,L.jsx)($,{icon:(0,L.jsx)(je,{className:`size-4`}),label:o(`companionSurface.share`),shortcut:r,pressed:e||n,onClick:e?a:i})}function St({sharing:e,annotating:t,shortcut:n,tool:r,placement:i,toolsRef:a,onAnnotate:o,onTool:s}){let{t:c}=k();return e?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)($,{icon:(0,L.jsx)(ye,{className:`size-4`}),label:c(`companionSurface.draw`),shortcut:n,pressed:t,className:`companion-draw-anchor`,onClick:()=>{o?.(!t)}}),t&&r!==void 0&&(0,L.jsx)(Ct,{tool:r,placement:i,toolsRef:a,onTool:s})]}):null}function Ct({tool:e,placement:t,toolsRef:n,onTool:r}){let{t:i}=k(),a=[{tool:`freehand`,icon:(0,L.jsx)(ye,{className:`size-4`}),label:i(`companionSurface.drawFreehand`)},{tool:`line`,icon:(0,L.jsx)(F,{className:`size-4`}),label:i(`companionSurface.drawLine`)},{tool:`box`,icon:(0,L.jsx)(_e,{className:`size-4`}),label:i(`companionSurface.drawBox`)},{tool:`circle`,icon:(0,L.jsx)(Ce,{className:`size-4`}),label:i(`companionSurface.drawCircle`)}];return(0,L.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,L.jsx)($,{icon:t.icon,label:t.label,pressed:e===t.tool,onClick:()=>{r?.(t.tool)}},t.tool))})}function wt({sharing:e,marked:t,onClearMarks:n}){let{t:r}=k();return!e||!t?null:(0,L.jsx)($,{icon:(0,L.jsx)(Ae,{className:`size-4`}),label:r(`companionSurface.clearMarks`),onClick:()=>{n?.()}})}function Tt({onControl:e}){let{t}=k();return(0,L.jsx)($,{icon:(0,L.jsx)(Se,{className:`size-4`,strokeWidth:2.5}),label:t(`companionSurface.endSession`),tone:`negative`,onClick:()=>{e?.(`endSession`)}})}function Et({onWatch:e}){let{t}=k();return(0,L.jsx)($,{icon:(0,L.jsx)(be,{className:`size-4`}),label:t(`companionSurface.stopTeaching`),onClick:e})}var Dt=`-translate-y-[calc(50%+22px)]`,Ot={right:`translate-x-[calc(50%+22px)]`,left:`-translate-x-[calc(50%+22px)]`},kt=e=>e===`above`?{className:Dt,beak:`down`}:{className:Ot[e],beak:e===`right`?`left`:`right`},At={above:j,below:he,left:fe,right:ve};function jt({picker:e,label:t,side:n,open:r,onPicker:i}){if(i===void 0)return null;let a=At[n];return(0,L.jsx)($,{icon:(0,L.jsx)(a,{className:`size-3.5`,strokeWidth:2.25}),label:t,pressed:r,narrow:!0,onClick:()=>{i(e)}})}function $({icon:e,label:t,shortcut:n,tone:r,showLabel:i=!1,pressed:a,narrow:o=!1,className:s=``,onClick:c}){let l=kt((0,I.useContext)($e));return(0,L.jsxs)(`button`,{type:`button`,"aria-label":t,"aria-pressed":a,onClick:c,onPointerDown:e=>{e.stopPropagation()},className:`group flex h-7 shrink-0 items-center justify-center gap-1.5 rounded-full text-[12px] transition-colors hover:bg-white/15 ${o?`-mx-1 px-0.5`:`px-2`} ${s} ${a===!0?`bg-white/15`:``} ${r===`negative`?`text-[#ff6b6b]`:r===`positive`?`text-[#5ee08a]`:`text-white/85`}`,children:[e,i?(0,L.jsx)(`span`,{children:t}):(0,L.jsx)(ft,{label:t,shortcut:n,className:`opacity-0 group-hover:opacity-100 ${l.className}`,beak:l.beak,"data-label":`hover`})]})}var Mt=3,Nt=440;function Pt(){let{t:e}=k(),[r,l]=(0,I.useState)(`right`),[d,b]=(0,I.useState)(`up`),[x,C]=(0,I.useState)(`bottom`),[O,se]=(0,I.useState)(E),[ce,le]=(0,I.useState)(E),[ue,de]=(0,I.useState)(),[fe,pe]=(0,I.useState)(),[me,he]=(0,I.useState)(),[A,ge]=(0,I.useState)(null),[j,_e]=(0,I.useState)(!1),[ve,ye]=(0,I.useState)(void 0),[be,xe]=(0,I.useState)(``),[Se,Ce]=(0,I.useState)(``),[we,Te]=(0,I.useState)(!1),[M,ke]=(0,I.useState)(!1),[Ae,je]=(0,I.useState)(void 0),[F,Me]=(0,I.useState)(void 0),[Ne,Pe]=(0,I.useState)(!1),[R,Fe]=(0,I.useState)(void 0),[z,Ie]=(0,I.useState)(void 0),[B,Le]=(0,I.useState)(!1),[Re,H]=(0,I.useState)(!1),[U,ze]=(0,I.useState)(void 0),[Be,W]=(0,I.useState)(!1),[He,Ke]=(0,I.useState)(!1),[G,qe]=(0,I.useState)(!1),[Je,Ye]=(0,I.useState)(!1),[Xe,Ze]=(0,I.useState)(void 0),[K,q]=(0,I.useState)(!1),[J,Qe]=(0,I.useState)(`teach`),[$e,et]=(0,I.useState)(null),Y=(0,I.useRef)(0),[tt,X]=(0,I.useState)(!1),[nt,rt]=(0,I.useState)(null),Z=(0,I.useRef)(!1),it=(0,I.useRef)(null),at=(0,I.useRef)(null),ot=(0,I.useRef)(null),st=(0,I.useRef)(null),ct=(0,I.useRef)(null),ut=(0,I.useRef)(null),dt=(0,I.useRef)(null),ft=(0,I.useRef)(null),pt=(0,I.useRef)(!1),mt=(0,I.useCallback)(e=>{ft.current=e,e===null&&pt.current&&(pt.current=!1,Z.current=!1,D(!1))},[]),Q=(0,I.useRef)(null),ht=(0,I.useRef)(null),gt=(0,I.useRef)(!1);(0,I.useEffect)(()=>{let e=e=>{l(e.growth),b(e.cardGrowth),C(e.dock??`bottom`),se(e.avatarBox),le(e.optionsBox??e.avatarBox),de(e.avatarBase64===void 0?void 0:`data:image/png;base64,${e.avatarBase64}`),pe(e.character),he(e.accentHex),ge(e.call),_e(e.dialing===!0),Ce(e.assistantName),Te(e.working),ke(e.watching===!0),ye(e.dictating),xe(e.dictationText??``),je(e.watchRetro),Me(e.dictationOffer),Fe(e.popover),Pe(e.voicesPickable===!0),Ie(e.popoverView),Le(e.watchEnabled===!0),H(e.watchTargets===!0),ze(e.screenShare),W(e.screenShareEnabled===!0),Ke(e.annotating===!0),qe((e.coachmarks?.length??0)>0),Ye(e.marksCleared!==void 0),Ze(e.annotationTool),rt(e.intro)},t=S(e);return o().then(t=>{t&&e(t)}),t},[]),(0,I.useEffect)(()=>()=>{D(!1)},[]);let _t=A!==null||j,vt=U!==void 0,yt=(0,I.useMemo)(()=>c()?te():void 0,[]);(0,I.useEffect)(()=>{_t||(Y.current+=1,q(!1))},[_t]),(0,I.useEffect)(()=>{M&&J===`teach`&&(Y.current+=1,q(!1))},[M,J]),(0,I.useEffect)(()=>{vt&&J===`share`&&(Y.current+=1,q(!1))},[vt,J]);let bt=(e,t)=>{et(null),Qe(e),q(!0);let n=++Y.current;h().then(e=>{if(n===Y.current){if(e!==null){et(e);return}q(!1),t()}})},xt=()=>{if(!Re){y();return}if(K&&J===`teach`){Y.current+=1,q(!1);return}bt(`teach`,y)},St=()=>{if(K&&J===`share`){Y.current+=1,q(!1);return}bt(`share`,()=>void 0)};(0,I.useEffect)(()=>{!K&&Z.current&&(Z.current=!1,D(!1))},[K]),(0,I.useEffect)(()=>{F===void 0&&Z.current&&(Z.current=!1,D(!1))},[F]);let Ct=(0,I.useRef)(!1),wt=R!==void 0&&z!==void 0&&z!==`deferred`&&(A!==null||j)&&x!==`left`&&x!==`right`,Tt=wt?R?.id:void 0;(0,I.useLayoutEffect)(()=>{let e=dt.current;if(Tt===void 0||e===null)return;let t=()=>{ie(Tt,e.getBoundingClientRect().height)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[Tt,z]),(0,I.useEffect)(()=>{!wt&&Ct.current&&(Ct.current=!1,Z.current=!1,D(!1))},[wt]);let Et=e=>{if(Y.current+=1,q(!1),J===`share`){T(e);return}y(e)},Dt=e=>{Z.current!==e&&(Z.current=e,D(e))},Ot=nt!==null&&A===null&&!j,kt=(0,I.useRef)(Ot);(0,I.useEffect)(()=>{kt.current&&!Ot&&(X(!1),Dt(!1)),kt.current=Ot},[Ot]);let At=We(nt),jt=A!==null||j?`call`:ve===void 0?F===void 0?M?`watching`:Ae===void 0?At??(tt?`hover`:`resting`):`summary`:`offer`:`dictating`,$=e=>{if(Q.current!==null&&e.buttons===0&&(Q.current=null,u()),Q.current!==null){let{x:t,y:n}=Q.current;m(e.screenX-t,e.screenY-n),Q.current={x:e.screenX,y:e.screenY};let r=ht.current;r!==null&&Math.abs(e.screenX-r.x)+Math.abs(e.screenY-r.y)>Mt&&(gt.current=!0);return}let t=ot.current;if(!t)return;let n=it.current?.getBoundingClientRect()??null,r=at.current?.getBoundingClientRect()??null,i=n!==null&&n.width>0?n:r!==null&&r.width>0?r:null,a=Oe({x:e.clientX,y:e.clientY},{avatar:t.getBoundingClientRect(),pill:i}),o=st.current,s=o!==null&&P(o.getBoundingClientRect(),e.clientX,e.clientY),c=ut.current,l=c!==null&&P(c.getBoundingClientRect(),e.clientX,e.clientY),d=ct.current,f=d!==null&&P(d.getBoundingClientRect(),e.clientX,e.clientY),p=dt.current,h=p!==null&&P(p.getBoundingClientRect(),e.clientX,e.clientY),g=ft.current,_=g!==null&&P(g.getBoundingClientRect(),e.clientX,e.clientY);X(a),pt.current=_,Ct.current=h,Dt(a||s||f||l||_||h)},Pt=N(A,me,fe),Ft=R===void 0||z!==`deferred`?0:R.kind===`approvals`?R.items.length:1;return(0,L.jsx)(`div`,{className:`relative h-screen w-screen bg-transparent`,onMouseMove:$,onMouseUp:()=>{Q.current!==null&&(Q.current=null,u())},onPointerCancel:()=>{Q.current!==null&&(Q.current=null,u()),X(!1),Dt(!1)},onMouseLeave:()=>{Q.current===null&&(X(!1),Dt(!1))},children:(0,L.jsx)(lt,{phase:jt,growth:r,cardGrowth:d,dock:x,avatarBox:O,optionsBox:ce,avatarSrc:ue,character:fe,hovered:tt,accentHex:Pt,call:A??void 0,assistantName:Se,dictating:ve,dictationText:be,working:we,watching:M,watchRetro:Ae,onWatchRetro:p,dictationOffer:F,offer:F===void 0?null:(0,L.jsx)(Ve,{offer:F,growth:r,cardGrowth:d,avatarBox:O,optionsBox:ce,cardRef:ut,onAnswer:e=>{a(e,F.id)}}),watchEnabled:B,spotlight:Ue(nt),intro:!Ot||nt===null?null:(0,L.jsx)(Ge,{beat:nt,growth:r,cardGrowth:d,avatarBox:O,optionsBox:ce,accentHex:Pt,assistantName:Se===``?void 0:Se,cardRef:st,onAdvance:n}),rootRef:it,restingPillRef:at,avatarRef:ot,onSurfacePointerDown:e=>{e.button===0&&e.target.closest(`button, a`)===null&&(e.currentTarget.setPointerCapture(e.pointerId),Q.current={x:e.screenX,y:e.screenY},ht.current={x:e.screenX,y:e.screenY},gt.current=!1)},onSurfaceContextMenu:e=>{(window.getSelection()?.toString().trim().length??0)>0||(e.preventDefault(),re())},onAvatarClick:()=>{if(!gt.current){if(A!==null||j){oe();return}v()}},onWatch:()=>{y()},onTeach:xt,picking:K&&J===`teach`,sharing:vt,shareEnabled:Be,sharePicking:K&&J===`share`,onShare:St,onStopShare:()=>{T()},annotating:He,onAnnotate:e=>{t(e)},marked:Je&&(G||He),onClearMarks:()=>{s()},openPicker:R?.kind===`microphones`||R?.kind===`voices`?R.kind:void 0,voicesPickable:Ne,onPicker:ne()?e=>{ae(e)}:void 0,annotationTool:Xe,onAnnotationTool:e=>{ee(e)},drawToolsRef:mt,shortcuts:yt,picker:K?(0,L.jsx)(V,{sources:$e,captureThumbnail:i,cardGrowth:d,avatarBox:O,optionsBox:ce,cardRef:ct,label:J===`share`?e(`companionSurface.sharePicker`):void 0,onPick:Et}):null,prompt:!wt||R===void 0?null:z===`row`&&(R.kind===`approvals`||R.kind===`secret`)?(0,L.jsx)(Ee,{popover:R,onAnswer:e=>{f(e,R.id)},onView:e=>{_(R.id,e)}}):(0,L.jsx)(De,{attached:!0,popover:R,view:z??`expanded`,style:{maxHeight:Nt},onAnswer:e=>{f(e,R.id)},onView:e=>{_(R.id,e)},onOpenLink:e=>{g(e)}},R.id),promptRef:dt,promptsDeferred:Ft,onReviewPrompts:()=>{R!==void 0&&_(R.id,`expanded`)},onControl:(e,t)=>{w(t===void 0?{action:e}:{action:e,requestId:t})}})})}export{Pt as CompanionSurfacePage};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Js as t,Vs as n,dh as r,fh as i,lc as a,nc as o}from"./app-DFXcEvsi.js";import{j as s}from"./vendor-DYOeoIwg.js";import{t as c,x as l}from"./react-B9IgSVeK.js";import{n as u}from"./companion-accent-pu5Xu8Z6.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,n){let i=(t.x-e.x)*n,a=t.y-e.y;return i*i+a*a>=r**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:r=`freehand`}){let[a,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,n(`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,o(!0))},S=()=>{f.current&&(f.current=!1,o(!1))},C=t=>{if(S(),l.current!==null)return;t.currentTarget.setPointerCapture(t.pointerId);let r=p.current++;l.current=r;let i=b(t);u.current=i,v([...c.current,{id:r,points:[i],spent:!1}]),n(`drawing`,[],e)},w=e=>{S();let t=l.current;if(t===null)return;let n=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,n,g)||v(c.current.map(e=>e.id===t?{...e,points:r===`freehand`?[...e.points,n].slice(-512):U(r,u.current,n)}:e))},D=t=>{if(l.current===null)return;l.current=null,t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId);let r=c.current.map(e=>({...e,spent:!0}));v(r),n(`released`,r.slice(-24).map(e=>({points:e.points})),e);let i=new Set(r.map(e=>e.id)),a=setTimeout(()=>{m.current.delete(a),v(c.current.filter(e=>!i.has(e.id)))},V+900);m.current.add(a)},O=i*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:r===`freehand`?k:`crosshair`,"--companion-ink-hold":`${V}ms`,"--companion-ink-fade":`900ms`},"data-testid":`companion-share-annotation`,"data-cleared":t,"data-tool":r,role:`presentation`,onPointerDown:C,onPointerMove:w,onPointerUp:D,onPointerCancel:D,onWheel:x,children:a.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=a(n);return t().then(e=>{e&&n(e)}),e},[]);let r=e?.watching===!0,i=e?.screenShare!==void 0,o=Y(r,e?.screenShare),s=o!==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}),o!==null&&(0,E.jsx)(X,{read:o,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{Js as t,Vs as n,dh as r,fh as i,lc as a,nc as o}from"./app-p4YU9h0P.js";import{j as s}from"./vendor-DYOeoIwg.js";import{t as c,x as l}from"./react-B9IgSVeK.js";import{n as u}from"./companion-accent-BhdiAsTr.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,n){let i=(t.x-e.x)*n,a=t.y-e.y;return i*i+a*a>=r**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:r=`freehand`}){let[a,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,n(`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,o(!0))},S=()=>{f.current&&(f.current=!1,o(!1))},C=t=>{if(S(),l.current!==null)return;t.currentTarget.setPointerCapture(t.pointerId);let r=p.current++;l.current=r;let i=b(t);u.current=i,v([...c.current,{id:r,points:[i],spent:!1}]),n(`drawing`,[],e)},w=e=>{S();let t=l.current;if(t===null)return;let n=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,n,g)||v(c.current.map(e=>e.id===t?{...e,points:r===`freehand`?[...e.points,n].slice(-512):U(r,u.current,n)}:e))},D=t=>{if(l.current===null)return;l.current=null,t.currentTarget.hasPointerCapture(t.pointerId)&&t.currentTarget.releasePointerCapture(t.pointerId);let r=c.current.map(e=>({...e,spent:!0}));v(r),n(`released`,r.slice(-24).map(e=>({points:e.points})),e);let i=new Set(r.map(e=>e.id)),a=setTimeout(()=>{m.current.delete(a),v(c.current.filter(e=>!i.has(e.id)))},V+900);m.current.add(a)},O=i*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:r===`freehand`?k:`crosshair`,"--companion-ink-hold":`${V}ms`,"--companion-ink-fade":`900ms`},"data-testid":`companion-share-annotation`,"data-cleared":t,"data-tool":r,role:`presentation`,onPointerDown:C,onPointerMove:w,onPointerUp:D,onPointerCancel:D,onWheel:x,children:a.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=a(n);return t().then(e=>{e&&n(e)}),e},[]);let r=e?.watching===!0,i=e?.screenShare!==void 0,o=Y(r,e?.screenShare),s=o!==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}),o!==null&&(0,E.jsx)(X,{read:o,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{Cx as t,Hx as n,Tb as r,Ux as i,Vx as a,et as o}from"./app-DFXcEvsi.js";import{Jn as s,er as c,j as l}from"./vendor-DYOeoIwg.js";import{_ as u,f as d,t as f,x as p}from"./react-B9IgSVeK.js";import{$n as m,E as h,qn as g}from"./icons-QG1KAFmx.js";import{n as _}from"./a2a-invite-C-d__v0P.js";import{r as v}from"./contacts-gateway-C_BunUUf.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:o()})}function w({assistantId:e}){let{t:o}=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?t(o(`connectPage.alreadyConnected`)):t(o(`connectPage.connected`)),f(r.contacts.root))}}),E=(0,y.useCallback)(()=>{f(r.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:o(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?o(e):T.data.error||o(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,o]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(a,{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(--content-secondary)`}}),(0,b.jsx)(n,{variant:`title-small`,children:o(`connectPage.title`)})]}),(0,b.jsx)(n,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:o(`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)(h,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(n,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(i,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(g,{className:`h-4 w-4 animate-spin`}),o(`actions.connecting`)]}):o(`actions.connect`)}),(0,b.jsx)(i,{variant:`outlined`,onClick:E,disabled:T.isPending,children:o(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(a,{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)(h,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(n,{variant:`title-small`,children:o(`connectPage.invalidTitle`)})]}),(0,b.jsx)(n,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:o(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(i,{variant:`primary`,onClick:E,children:o(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{Cx as t,Hx as n,Tb as r,Ux as i,Vx as a,et as o}from"./app-p4YU9h0P.js";import{Jn as s,er as c,j as l}from"./vendor-DYOeoIwg.js";import{_ as u,f as d,t as f,x as p}from"./react-B9IgSVeK.js";import{$n as m,E as h,qn as g}from"./icons-QG1KAFmx.js";import{n as _}from"./a2a-invite-D7Z1FvN-.js";import{r as v}from"./contacts-gateway-jgC2hJQu.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:o()})}function w({assistantId:e}){let{t:o}=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?t(o(`connectPage.alreadyConnected`)):t(o(`connectPage.connected`)),f(r.contacts.root))}}),E=(0,y.useCallback)(()=>{f(r.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:o(`connectPage.errorGeneric`);if(T.data&&!T.data.success){let e=S(T.data.errorCode);return e?o(e):T.data.error||o(`connectPage.errorGeneric`)}return null},[T.isError,T.error,T.data,o]);return w?(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(a,{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(--content-secondary)`}}),(0,b.jsx)(n,{variant:`title-small`,children:o(`connectPage.title`)})]}),(0,b.jsx)(n,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:o(`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)(h,{className:`h-4 w-4 shrink-0`}),(0,b.jsx)(n,{variant:`body-small-default`,children:O})]}),(0,b.jsxs)(`div`,{className:`flex gap-2 pt-2`,children:[(0,b.jsx)(i,{variant:`primary`,onClick:D,disabled:T.isPending,children:T.isPending?(0,b.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(g,{className:`h-4 w-4 animate-spin`}),o(`actions.connecting`)]}):o(`actions.connect`)}),(0,b.jsx)(i,{variant:`outlined`,onClick:E,disabled:T.isPending,children:o(`actions.cancel`)})]})]})})}):(0,b.jsx)(`div`,{className:`flex min-h-full items-center justify-center p-6`,children:(0,b.jsx)(a,{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)(h,{className:`h-6 w-6`,style:{color:`var(--system-negative-strong)`}}),(0,b.jsx)(n,{variant:`title-small`,children:o(`connectPage.invalidTitle`)})]}),(0,b.jsx)(n,{variant:`body-medium-lighter`,style:{color:`var(--content-secondary)`},children:o(`connectPage.invalidBody`)}),(0,b.jsx)(`div`,{className:`flex gap-2 pt-2`,children:(0,b.jsx)(i,{variant:`primary`,onClick:E,children:o(`connectPage.goToContacts`)})})]})})})}export{C as ConnectPage};
@@ -1 +1 @@
1
- import{Tb as e,Vx as t,jx as n,wb as r}from"./app-DFXcEvsi.js";import{N as i,j as a}from"./vendor-DYOeoIwg.js";import{t as o}from"./react-B9IgSVeK.js";import{t as s}from"./setting-row-Dqextrfj.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:e.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:e.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:t,onChange:a}){let o=d[e];return(0,c.jsx)(n,{checked:t,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:r(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:e,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)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`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
+ import{Tb as e,Vx as t,jx as n,wb as r}from"./app-p4YU9h0P.js";import{N as i,j as a}from"./vendor-DYOeoIwg.js";import{t as o}from"./react-B9IgSVeK.js";import{t as s}from"./setting-row-Dz9SXznO.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:e.docs.legal.privacyPolicy,text:`Privacy and AI Data Sharing Policy`,aria:`I agree to the Privacy and AI Data Sharing Policy`},tos:{href:e.docs.legal.termsOfUse,text:`Terms of Service`,aria:`I agree to the Terms of Service`}};function f({kind:e,checked:t,onChange:a}){let o=d[e];return(0,c.jsx)(n,{checked:t,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:r(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:e,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)(t,{padding:e?`sm`:`md`,className:`w-full`,children:(0,c.jsxs)(`div`,{className:`flex flex-col ${e?`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{Cg as e,Rb as t,Vb as n,cd as r,ld as i,ud as a,zb as o}from"./app-DFXcEvsi.js";async function s(e,r){let{data:i,error:s,response:c}=await a({path:{assistant_id:e},body:r,throwOnError:!1});if(o(c,s,`Failed to save contact`),!c.ok||!i?.contact)throw new t(c.status,n(s,c,`Failed to save contact`));return i.contact}async function c(e,r){let{error:a,response:s}=await i({path:{assistant_id:e,contact_id:r},throwOnError:!1});if(o(s,a,`Failed to delete contact`),!s.ok&&s.status!==204)throw new t(s.status,n(a,s,`Failed to delete contact`))}async function l(e,i){let{error:a,response:s}=await r({path:{assistant_id:e,channel_id:i},throwOnError:!1});if(o(s,a,`Failed to verify channel`),!s.ok)throw new t(s.status,n(a,s,`Failed to verify channel`))}async function u(e,n,r){let i=(await s(e,{id:n.id,displayName:n.displayName,channels:[{type:r.type,address:r.address}]})).channels.find(e=>e.type===r.type&&e.address.toLowerCase()===r.address.toLowerCase());if(!i)throw new t(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new t(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(r,i){let{data:a,error:s,response:c}=await e.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:r},body:{sender_assistant_id:i.senderAssistantId,token:i.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(o(c,s,`Failed to redeem A2A invite`),!c.ok)throw new t(c.status,n(s,c,`Failed to redeem A2A invite`));return{success:a?.success??!0,alreadyConnected:a?.already_connected,error:a?.error,errorCode:a?.error_code}}export{l as a,s as i,u as n,d as r,c as t};
1
+ import{Cg as e,Rb as t,Vb as n,cd as r,ld as i,ud as a,zb as o}from"./app-p4YU9h0P.js";async function s(e,r){let{data:i,error:s,response:c}=await a({path:{assistant_id:e},body:r,throwOnError:!1});if(o(c,s,`Failed to save contact`),!c.ok||!i?.contact)throw new t(c.status,n(s,c,`Failed to save contact`));return i.contact}async function c(e,r){let{error:a,response:s}=await i({path:{assistant_id:e,contact_id:r},throwOnError:!1});if(o(s,a,`Failed to delete contact`),!s.ok&&s.status!==204)throw new t(s.status,n(a,s,`Failed to delete contact`))}async function l(e,i){let{error:a,response:s}=await r({path:{assistant_id:e,channel_id:i},throwOnError:!1});if(o(s,a,`Failed to verify channel`),!s.ok)throw new t(s.status,n(a,s,`Failed to verify channel`))}async function u(e,n,r){let i=(await s(e,{id:n.id,displayName:n.displayName,channels:[{type:r.type,address:r.address}]})).channels.find(e=>e.type===r.type&&e.address.toLowerCase()===r.address.toLowerCase());if(!i)throw new t(409,`That account is already linked to another contact.`);if(i.status===`blocked`)throw new t(409,`That account is blocked for this contact. Unblock it before linking.`);await l(e,i.id)}async function d(r,i){let{data:a,error:s,response:c}=await e.post({url:`/v1/assistants/{assistant_id}/a2a/invites/redeem/`,path:{assistant_id:r},body:{sender_assistant_id:i.senderAssistantId,token:i.token},headers:{"Content-Type":`application/json`},throwOnError:!1});if(o(c,s,`Failed to redeem A2A invite`),!c.ok)throw new t(c.status,n(s,c,`Failed to redeem A2A invite`));return{success:a?.success??!0,alreadyConnected:a?.already_connected,error:a?.error,errorCode:a?.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,Cx as n,Fd as r,Hx as i,Id as a,Ig as o,Ix as s,Ld as c,Lo as l,Nx as u,S as d,Sx as f,Tb as p,Tx as m,Uf as h,Ux as g,Vx as _,Wf as v,Xp as y,_x as b,et as x,fi as S,gc as C,lb as ee,mi as w,pi as T,px as E,rd as te,ui as D,yd as ne}from"./app-DFXcEvsi.js";import{I as O,Jn as k,N as A,Zn as re,er as ie,j}from"./vendor-DYOeoIwg.js";import{_ as ae,f as oe,n as M,r as se,t as ce,x as N}from"./react-B9IgSVeK.js";import{$n as P,Gt as le,It as F,Ja as I,La as L,Ra as ue,Tn as R,Xt as z,_t as de,b as B,ga as fe,gt as pe,qn as me,vr as V,zi as H,zn as U}from"./icons-QG1KAFmx.js";import{t as W}from"./ellipsis-vertical-Dbz00Lo-.js";import{t as G}from"./detail-card-CGafPdBQ.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-CSNBqjJu.js";import{c as K,i as ve,n as ye,r as q,t as be}from"./use-invite-link-dialog-B4f3yyUN.js";import{a as xe,i as Se,n as Ce,t as we}from"./contacts-gateway-C_BunUUf.js";var Te=I(`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=I(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),J=e(N(),1),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?O(t,{ns:`contacts`}):e}var je=`New Contact`;function Me(e){return e===je}var Y=ce();function Ne({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:i}=j(`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)(f,{open:a!==null,title:i(`assistantContactChannels.disconnectConfirmTitle`,{channel:a?T(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:i}=j(`contacts`),a=e.configured,{Icon:o,label:s}=w(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(D,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:T(e.key)}),a&&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:a?(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)(o,{className:`h-3 w-3`}),s]}),r?(0,Y.jsx)(g,{variant:`danger`,onClick:r,disabled:t,children:i(t?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(g,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(M,{to:`${p.channels}?setup=${e.key}`,children:i(`actions.manage`)})})]}):n?(0,Y.jsx)(g,{variant:`outlined`,onClick:n,disabled:t,children:i(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(s,{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}=j(`contacts`),r=l(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=S(e);if(i)return(0,J.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(fe,{className:n,style:r});case`hash`:return(0,Y.jsx)(V,{className:n,style:r});case`send`:return(0,Y.jsx)(pe,{className:n,style:r});case`phone`:return(0,Y.jsx)(le,{className:n,style:r});case`mail`:return(0,Y.jsx)(U,{className:n,style:r});case`message-square`:return(0,Y.jsx)(R,{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}=j(`contacts`),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=e=>{p&&(c?.(p.info.id,e),m(null))},y=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`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,Y.jsxs)(`div`,{children:[t>0&&(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Y.jsx)(Ue,{info:e,existing:n,setupLabel:i??d(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:s?()=>s(e.id):void 0,onVerify:c&&Re(e)?()=>m({info:e,existing:n}):void 0,onRevoke:l&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:u&&De.has(e.id)?()=>u(e.id):void 0})]},e.id)})]}),p?(0,Y.jsx)(We,{info:p.info,existing:p.existing,verifySubject:o,onConfirm:v,onCancel:()=>m(null)}):null,h&&(0,Y.jsx)(f,{open:!0,title:d(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:d(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:d(`actions.revoke`),destructive:!0,onConfirm:()=>{l?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function Ue({info:e,existing:t,setupLabel:n,verifyLoading:r,onSetup:i,onVerify:a,onRevoke:o,onLinkAccount:s}){let{t:c}=j(`contacts`),l=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:l.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)(H,{className:`h-3 w-3`}),c(`channelStatus.connected`)]}),o?(0,Y.jsx)(g,{variant:`danger`,onClick:o,children:c(`actions.revoke`)}):null]}):l.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)(H,{className:`h-3 w-3`}),c(`channelStatus.verified`)]}),o?(0,Y.jsx)(g,{variant:`danger`,onClick:o,children:c(`actions.revoke`)}):null]}):l.kind===`unverified`?(0,Y.jsx)(g,{variant:`outlined`,onClick:a,disabled:!a||r,children:c(r?`actions.verifying`:`actions.verify`)}):l.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[s?(0,Y.jsxs)(g,{onClick:s,children:[(0,Y.jsx)(P,{className:`h-3.5 w-3.5`}),c(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(g,{variant:`outlined`,onClick:i,disabled:!i,children:n})]}):null})]})}function We({info:e,existing:t,verifySubject:n,onConfirm:r,onCancel:i}){let{t:a}=j(`contacts`),[o,s]=(0,J.useState)(t?.address?.trim()??``),c=(0,J.useRef)(null),l=(0,J.useId)(),d=o.trim();return ze(t)?(0,Y.jsx)(f,{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)(m.Root,{open:!0,onOpenChange:e=>{e||i()},children:(0,Y.jsx)(m.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),c.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)(m.Header,{children:(0,Y.jsx)(m.Title,{children:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(m.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(m.Description,{children:a(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(u,{ref:c,id:l,label:a(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:o,onChange:e=>{s(e.target.value)},placeholder:a(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,Y.jsxs)(m.Footer,{children:[(0,Y.jsx)(g,{variant:`outlined`,type:`button`,onClick:i,children:a(`actions.cancel`)}),(0,Y.jsx)(g,{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}=j(`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)(E,{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:o,channelsLoadFailed:s,a2aEnabled:c,onSave:l,onDelete:d,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:_,onLinkAccount:v,pendingAutoApproveThreshold:y,onAutoApproveThresholdChange:b}){let{t:x}=j(`contacts`),S=Me(e.displayName),[C,ee]=(0,J.useState)(S?``:e.displayName),[w,T]=(0,J.useState)(e.notes??``),[E,te]=(0,J.useState)(!1),D=C.trim(),ne=w.trim(),O=S?``:e.displayName,k=e.notes??``,A=D!==O||ne!==k,re=D.length>0&&A&&!t&&!n,ie=S&&e.channels.length===0&&e.interactionCount===0,ae=D||(S?x(`contact.draftName`):e.displayName),oe=x(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:ae,accessory:(0,Y.jsx)(X,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:oe,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(u,{label:x(`contact.nameLabel`),type:`text`,value:C,onChange:e=>ee(e.target.value),placeholder:x(`contactDetailView.namePlaceholder`),autoFocus:S,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(u,{label:x(`contact.notesLabel`),type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:x(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(g,{type:`button`,onClick:()=>l({displayName:D,notes:ne}),disabled:!re,children:x(t?`actions.saving`:`actions.save`)}),p?(0,Y.jsx)(g,{type:`button`,variant:`outlined`,onClick:p,disabled:!a||ie||A||i||t||n,title:a?ie?x(`contactDetailView.mergeBlockedUnsavedDraft`):A?x(`contact.mergeBlockedUnsaved`):void 0:x(`contact.mergeBlockedNoCandidates`),children:x(i?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(g,{type:`button`,variant:`danger`,onClick:()=>{ie?d():te(!0)},disabled:n,children:x(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(G,{title:x(`contactDetailView.linkedAccountsTitle`),subtitle:x(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,verifyLoading:r,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:_,onLinkAccount:v})}),Je(e)&&b?(0,Y.jsx)(Ye,{contact:e,pending:y,onAutoApproveThresholdChange:b}):null,(0,Y.jsx)(f,{open:E,title:x(`contactDetailView.deleteConfirmTitle`,{name:ae}),message:x(`contactDetailView.deleteConfirmMessage`),confirmLabel:x(`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:n,pending:r,errorMessage:a,onMerge:o,onClose:s}){let{t:c}=j(`contacts`),[l,u]=(0,J.useState)(``),[d,f]=(0,J.useState)(null);(0,J.useEffect)(()=>{d&&!n.some(e=>e.id===d)&&f(null)},[n,d]);let p=(0,J.useMemo)(()=>{let e=l.trim().toLowerCase();return e?n.filter(t=>t.displayName.toLowerCase().includes(e)):n},[n,l]),h=d?n.find(e=>e.id===d)??null:null,_=it(t);return(0,Y.jsx)(m.Root,{open:e,onOpenChange:e=>{!e&&!r&&s()},children:(0,Y.jsxs)(m.Content,{size:`md`,children:[(0,Y.jsxs)(m.Header,{icon:Ee,children:[(0,Y.jsx)(m.Title,{children:h?c(`contactMergeDialog.titlePicked`,{donor:h.displayName,survivor:_}):c(`contactMergeDialog.titlePicking`,{survivor:_})}),(0,Y.jsx)(m.Description,{children:c(h?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(m.Body,{className:`flex flex-col gap-3`,children:[h?(0,Y.jsx)(nt,{survivor:t,donor:h}):n.length===0?(0,Y.jsx)(rt,{}):(0,Y.jsx)(et,{search:l,onSearch:u,candidates:p,onPick:f}),a?(0,Y.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,Y.jsx)(m.Footer,{children:h?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(g,{variant:`outlined`,onClick:()=>f(null),disabled:r,leftIcon:(0,Y.jsx)(ue,{"aria-hidden":!0}),children:c(`actions.back`)}),(0,Y.jsx)(g,{variant:`danger`,onClick:()=>o(h.id),disabled:r,children:c(r?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(g,{variant:`outlined`,onClick:s,disabled:r,children:c(`actions.cancel`)})})]})})}function et({search:e,onSearch:t,candidates:n,onPick:r}){let{t:a}=j(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(u,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(de,{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:n.length===0?(0,Y.jsx)(i,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):n.map(e=>(0,Y.jsx)(tt,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function tt({contact:e,onPick:t}){let n=ot(e).join(` | `)||void 0;return(0,Y.jsx)(b,{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}=j(`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)(A,{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}=j(`contacts`);return(0,Y.jsx)(i,{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-`)?O(`survivorName.you`,{ns:`contacts`}):O(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||O(`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:o,addingContact:s=!1,search:c,onSearchChange:l}){let{t:d}=j(`contacts`),f=c.trim()?r.filter(e=>e.displayName.toLowerCase().includes(c.trim().toLowerCase())):r;return(0,Y.jsx)(_.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(_.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:d(`contactsList.heading`)}),(0,Y.jsx)(g,{type:`button`,variant:`ghost`,iconOnly:s?(0,Y.jsx)(me,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(F,{"aria-hidden":!0}),onClick:o,disabled:s,"aria-label":d(`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?d(`contactsList.youNamed`,{name:t.displayName}):d(`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()||d(`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)(u,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:d(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(de,{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:[f.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)),f.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:d(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(g,{type:`button`,variant:`ghost`,onClick:o,disabled:s,tintColor:`var(--primary-base)`,leftIcon:s?(0,Y.jsx)(me,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(B,{"aria-hidden":!0}),children:d(`contactsList.add`)})]})})}function ct({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:c}){let{t:l}=j(`contacts`),u=r&&r.length>0?r.join(` | `):void 0,d=o===`pencil`?(0,Y.jsx)(z,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):o===`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)(b,{asChild:!0,active:i,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),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)(s,{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:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p,onGenerateInviteLink:m}){let{t:h}=j(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,b]=(0,J.useState)(v),[x,S]=(0,J.useState)(e.notes??``),C=y.trim(),ee=x.trim(),w=C!==v.trim()||ee!==(e.notes??``).trim(),T=w&&!t,E=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:_?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:E,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(u,{label:h(`contact.nameLabel`),type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:h(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsx)(u,{label:h(`contact.notesLabel`),type:`text`,value:x,onChange:e=>S(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)(g,{variant:`primary`,onClick:()=>c({displayName:C||e.displayName,notes:ee}),disabled:!T,children:h(t?`actions.saving`:`actions.save`)}),l?(0,Y.jsx)(g,{variant:`outlined`,onClick:l,disabled:!i||w||r||t,title:i?w?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:o,a2aEnabled:s,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:o,onPick:s,onClose:c,onInviteInstead:l}){let{t:d}=j(`contacts`),[f,p]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&p(``)},[e]);let h=(0,J.useMemo)(()=>dt(r??[],f),[r,f]),_=o!=null;return(0,Y.jsx)(m.Root,{open:e,onOpenChange:e=>!e&&c(),children:(0,Y.jsxs)(m.Content,{size:`sm`,children:[(0,Y.jsxs)(m.Header,{children:[(0,Y.jsx)(m.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(m.Description,{children:(0,Y.jsx)(A,{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)(m.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(u,{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)(de,{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`)}):h.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:h.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>s(e),disabled:_,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]})]}),o===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)(m.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)(A,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),l?(0,Y.jsxs)(g,{variant:`link`,className:`shrink-0`,onClick:l,disabled:_,children:[d(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(L,{className:`h-3.5 w-3.5`})]}):null]})]})})}function mt({assistantId:e,channelType:t,contact:r,onLinked:i}){let[a,o]=(0,J.useState)(!1),s=k({mutationFn:n=>Ce(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{o(!1),n.success(O(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),i()}}),c=(0,J.useCallback)(()=>{s.reset(),o(!0)},[s]),l=(0,J.useCallback)(()=>{s.isPending||(s.reset(),o(!1))},[s]),u=(0,J.useCallback)(e=>{!r||s.isPending||s.mutate({contact:r,account:e})},[r,s]);return{channelType:t,dialogOpen:a,open:c,close:l,linkErrorMessage:s.error instanceof Error?s.error.message:s.error?O(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:s.isPending?s.variables.account.id:null,pick:u}}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:i}=j(`contacts`),s=te.use.a2aChannel(),u=ee.use.name(),f=ie(),[m]=ae(),g=m.get(`setup`),_=g&&y(g)?g:null,[b,x]=(0,J.useState)({kind:`assistant`}),S=be(e),{paneRef:C,hasRoomForList:w,drawerOpen:T,openDrawer:E,closeDrawer:D}=_e(),[O,A]=(0,J.useState)(``),[oe,M]=(0,J.useState)(!1),ce=l(u),N=(0,J.useMemo)(()=>({path:{assistant_id:e}}),[e]),P=a(N),le=re({...r(N),enabled:!!e,select:e=>e.contacts}),F=ye({assistantId:e,onStartSetupConversation:t}),I=re({...ne({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await o({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=I.data??gt,ue=I.isError,R=le.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)(()=>b.kind===`contact`?R?.find(e=>e.id===b.contactId)??null:null,[R,b]),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)(!!_);(0,J.useEffect)(()=>{me.current||z&&(me.current=!0,x({kind:`contact`,contactId:z.id}))},[z]);let V=(0,J.useCallback)(()=>f.invalidateQueries({queryKey:P}),[f,P]),H=k({mutationFn:()=>Se(e,{displayName:je}),onMutate:async()=>{await f.cancelQueries({queryKey:P})},onSuccess:e=>{c(f,N,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),x({kind:`contact`,contactId:e.id})},onError:K(i(`contactsPage.createFailed`)),onSettled:()=>V()}),U=k({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{c(f,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),x({kind:`assistant`})},onError:K(i(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=k({mutationFn:({contactId:t,patch:n})=>Se(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{c(f,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(i(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=k({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Se(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{c(f,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(i(`contactPermissions.saveFailed`)),onSettled:()=>V()}),q=v({onMutate:async()=>{await f.cancelQueries({queryKey:P})},onSuccess:(e,t)=>{let r=e.contact,a=t.body.mergeId;r&&(c(f,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==a).map(e=>e.id===r.id?r:e)}:void 0),x({kind:`contact`,contactId:r.id})),M(!1),n.success(i(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,J.useCallback)(e=>{x(e),D(),M(!1),q.reset()},[D,q]),Ee=(0,J.useCallback)(()=>{q.reset(),M(!0)},[q]),De=(0,J.useCallback)(()=>{q.isPending||(M(!1),q.reset())},[q]),Oe=h({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=k({mutationFn:t=>xe(e,t.channelId),onSuccess:()=>V(),onError:K(i(`contactsPage.verifyFailed`))}),Z=k({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(i(`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=re({...d(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=F.channels.some(e=>e.key===`slack`&&e.configured),Be=(0,J.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),Ve=U.isPending?U.variables:null,$=(0,J.useMemo)(()=>{if(!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(_)return(0,Y.jsx)(se,{to:`${p.channels}?setup=${_}`,replace:!0});let He={loading:le.isLoading,assistantName:ce,guardian:z?{id:z.id,displayName:z.displayName.startsWith(`vellum-principal-`)?``:z.displayName,role:z.role,channelTypes:bt(z.channels,s)}: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,s),verified:yt(e.channels)})),selection:b,onAddContact:Me,addingContact:H.isPending,search:O,onSearchChange:A};return(0,Y.jsxs)(`div`,{ref:C,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:E})}),(0,Y.jsx)(he,{open:T,onClose:D,title:i(`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:b.kind===`assistant`||b.kind===`contact`&&b.contactId===Ve?(0,Y.jsx)(Fe,{assistantName:ce,channels:F.channels,pendingChannelKey:F.pendingChannelKey,onConnect:F.onSetup,onDisconnect:F.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:s,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Pe:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onGenerateInviteLink:s?S.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:s,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:oe,survivor:B,candidates:fe,pending:q.isPending,errorMessage:q.error instanceof Error?q.error.message:q.error?i(`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?i(`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:S.isOpen,assistantId:e,onClose:S.close})]})}function vt(){let{t:e}=j(`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=oe(),t=x();return(0,Y.jsx)(_t,{assistantId:t,onStartSetupConversation:t=>{C(e,{prompt:t})}},t)}export{xt as ContactsPageRoute};
1
+ import{o as e}from"./rolldown-runtime-BM3Ffeng.js";import{B as t,Cx as n,Fd as r,Hx as i,Id as a,Ig as o,Ix as s,Ld as c,Lo as l,Nx as u,S as d,Sx as f,Tb as p,Tx as m,Uf as h,Ux as g,Vx as _,Wf as v,Xp as y,_x as b,et as x,fi as S,gc as C,lb as ee,mi as w,pi as T,px as E,rd as te,ui as D,yd as ne}from"./app-p4YU9h0P.js";import{I as O,Jn as k,N as A,Zn as re,er as ie,j}from"./vendor-DYOeoIwg.js";import{_ as ae,f as oe,n as M,r as se,t as ce,x as N}from"./react-B9IgSVeK.js";import{$n as P,Gt as le,It as F,Ja as I,La as L,Ra as ue,Tn as R,Xt as z,_t as de,b as B,ga as fe,gt as pe,qn as me,vr as V,zi as H,zn as U}from"./icons-QG1KAFmx.js";import{t as W}from"./ellipsis-vertical-Dbz00Lo-.js";import{t as G}from"./detail-card-BpqiAUnN.js";import{n as he,r as ge,t as _e}from"./use-side-list-room-BSP_B7R_.js";import{c as K,i as ve,n as ye,r as q,t as be}from"./use-invite-link-dialog-BYTs8NpU.js";import{a as xe,i as Se,n as Ce,t as we}from"./contacts-gateway-jgC2hJQu.js";var Te=I(`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=I(`git-merge`,[[`circle`,{cx:`18`,cy:`18`,r:`3`,key:`1xkwt0`}],[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M6 21V9a9 9 0 0 0 9 9`,key:`7kw0sc`}]]),J=e(N(),1),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?O(t,{ns:`contacts`}):e}var je=`New Contact`;function Me(e){return e===je}var Y=ce();function Ne({channels:e,pendingChannelKey:t=null,onConnect:n,onDisconnect:r}){let{t:i}=j(`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)(f,{open:a!==null,title:i(`assistantContactChannels.disconnectConfirmTitle`,{channel:a?T(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:i}=j(`contacts`),a=e.configured,{Icon:o,label:s}=w(e.health);return(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,Y.jsx)(D,{channelId:e.key,className:`h-4 w-4 shrink-0 text-[color:var(--content-secondary)]`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:T(e.key)}),a&&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:a?(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)(o,{className:`h-3 w-3`}),s]}),r?(0,Y.jsx)(g,{variant:`danger`,onClick:r,disabled:t,children:i(t?`actions.disconnecting`:`actions.disconnect`)}):(0,Y.jsx)(g,{variant:`outlined`,asChild:!0,children:(0,Y.jsx)(M,{to:`${p.channels}?setup=${e.key}`,children:i(`actions.manage`)})})]}):n?(0,Y.jsx)(g,{variant:`outlined`,onClick:n,disabled:t,children:i(`actions.connect`)}):null})]})}function X({role:e,contactType:t}){let{label:n,tone:r}=Z(e,t);return(0,Y.jsx)(s,{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}=j(`contacts`),r=l(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=S(e);if(i)return(0,J.createElement)(i,{size:16,className:n,style:r});switch(t){case`bot`:return(0,Y.jsx)(fe,{className:n,style:r});case`hash`:return(0,Y.jsx)(V,{className:n,style:r});case`send`:return(0,Y.jsx)(pe,{className:n,style:r});case`phone`:return(0,Y.jsx)(le,{className:n,style:r});case`mail`:return(0,Y.jsx)(U,{className:n,style:r});case`message-square`:return(0,Y.jsx)(R,{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}=j(`contacts`),[p,m]=(0,J.useState)(null),[h,g]=(0,J.useState)(null),_=new Map;for(let t of e)t.status!==`revoked`&&(_.has(t.type)||_.set(t.type,t));let v=e=>{p&&(c?.(p.info.id,e),m(null))},y=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`)}),y.map((e,t)=>{let n=_.get(e.id);return(0,Y.jsxs)(`div`,{children:[t>0&&(0,Y.jsx)(`div`,{className:`border-t`,style:{borderColor:`var(--border-base)`}}),(0,Y.jsx)(Ue,{info:e,existing:n,setupLabel:i??d(`contactChannelsSection.setupDefault`),verifyLoading:a,onSetup:s?()=>s(e.id):void 0,onVerify:c&&Re(e)?()=>m({info:e,existing:n}):void 0,onRevoke:l&&n?()=>g({channelId:n.id,channel:e}):void 0,onLinkAccount:u&&De.has(e.id)?()=>u(e.id):void 0})]},e.id)})]}),p?(0,Y.jsx)(We,{info:p.info,existing:p.existing,verifySubject:o,onConfirm:v,onCancel:()=>m(null)}):null,h&&(0,Y.jsx)(f,{open:!0,title:d(`contactChannelsSection.revokeConfirmTitle`,{channel:h.channel.label}),message:d(`contactChannelsSection.revokeConfirmMessage`),confirmLabel:d(`actions.revoke`),destructive:!0,onConfirm:()=>{l?.(h.channelId,h.channel.id),g(null)},onCancel:()=>g(null)})]})}function Ue({info:e,existing:t,setupLabel:n,verifyLoading:r,onSetup:i,onVerify:a,onRevoke:o,onLinkAccount:s}){let{t:c}=j(`contacts`),l=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:l.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)(H,{className:`h-3 w-3`}),c(`channelStatus.connected`)]}),o?(0,Y.jsx)(g,{variant:`danger`,onClick:o,children:c(`actions.revoke`)}):null]}):l.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)(H,{className:`h-3 w-3`}),c(`channelStatus.verified`)]}),o?(0,Y.jsx)(g,{variant:`danger`,onClick:o,children:c(`actions.revoke`)}):null]}):l.kind===`unverified`?(0,Y.jsx)(g,{variant:`outlined`,onClick:a,disabled:!a||r,children:c(r?`actions.verifying`:`actions.verify`)}):l.kind===`setup`?e.id===`a2a`?null:(0,Y.jsxs)(Y.Fragment,{children:[s?(0,Y.jsxs)(g,{onClick:s,children:[(0,Y.jsx)(P,{className:`h-3.5 w-3.5`}),c(`contactChannelsSection.linkAccount`)]}):null,(0,Y.jsx)(g,{variant:`outlined`,onClick:i,disabled:!i,children:n})]}):null})]})}function We({info:e,existing:t,verifySubject:n,onConfirm:r,onCancel:i}){let{t:a}=j(`contacts`),[o,s]=(0,J.useState)(t?.address?.trim()??``),c=(0,J.useRef)(null),l=(0,J.useId)(),d=o.trim();return ze(t)?(0,Y.jsx)(f,{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)(m.Root,{open:!0,onOpenChange:e=>{e||i()},children:(0,Y.jsx)(m.Content,{size:`sm`,hideCloseButton:!0,onOpenAutoFocus:e=>{e.preventDefault(),c.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)(m.Header,{children:(0,Y.jsx)(m.Title,{children:a(`contactChannelsSection.verifyConfirmTitle`,{channel:e.label})})}),(0,Y.jsxs)(m.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(m.Description,{children:a(n===`contact`?`contactChannelsSection.verifyAddressMessageContact`:`contactChannelsSection.verifyAddressMessageGuardian`,{channel:e.label})}),(0,Y.jsx)(u,{ref:c,id:l,label:a(`contactChannelsSection.verifyAddressLabel`),type:`text`,value:o,onChange:e=>{s(e.target.value)},placeholder:a(`contactChannelsSection.verifyAddressPlaceholder`),autoComplete:`off`,spellCheck:!1,fullWidth:!0})]}),(0,Y.jsxs)(m.Footer,{children:[(0,Y.jsx)(g,{variant:`outlined`,type:`button`,onClick:i,children:a(`actions.cancel`)}),(0,Y.jsx)(g,{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}=j(`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)(E,{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:o,channelsLoadFailed:s,a2aEnabled:c,onSave:l,onDelete:d,onMerge:p,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:_,onLinkAccount:v,pendingAutoApproveThreshold:y,onAutoApproveThresholdChange:b}){let{t:x}=j(`contacts`),S=Me(e.displayName),[C,ee]=(0,J.useState)(S?``:e.displayName),[w,T]=(0,J.useState)(e.notes??``),[E,te]=(0,J.useState)(!1),D=C.trim(),ne=w.trim(),O=S?``:e.displayName,k=e.notes??``,A=D!==O||ne!==k,re=D.length>0&&A&&!t&&!n,ie=S&&e.channels.length===0&&e.interactionCount===0,ae=D||(S?x(`contact.draftName`):e.displayName),oe=x(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:ae,accessory:(0,Y.jsx)(X,{role:e.role,contactType:e.contactType}),compactAccessory:!0,subtitle:oe,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(u,{label:x(`contact.nameLabel`),type:`text`,value:C,onChange:e=>ee(e.target.value),placeholder:x(`contactDetailView.namePlaceholder`),autoFocus:S,disabled:t||n,fullWidth:!0}),(0,Y.jsx)(u,{label:x(`contact.notesLabel`),type:`text`,value:w,onChange:e=>T(e.target.value),placeholder:x(`contactDetailView.notesPlaceholder`),disabled:t||n,fullWidth:!0}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(g,{type:`button`,onClick:()=>l({displayName:D,notes:ne}),disabled:!re,children:x(t?`actions.saving`:`actions.save`)}),p?(0,Y.jsx)(g,{type:`button`,variant:`outlined`,onClick:p,disabled:!a||ie||A||i||t||n,title:a?ie?x(`contactDetailView.mergeBlockedUnsavedDraft`):A?x(`contact.mergeBlockedUnsaved`):void 0:x(`contact.mergeBlockedNoCandidates`),children:x(i?`actions.merging`:`actions.merge`)}):null,(0,Y.jsx)(g,{type:`button`,variant:`danger`,onClick:()=>{ie?d():te(!0)},disabled:n,children:x(n?`actions.deleting`:`contactDetailView.delete`)})]})]})}),(0,Y.jsx)(G,{title:x(`contactDetailView.linkedAccountsTitle`),subtitle:x(`contactDetailView.linkedAccountsSubtitle`),children:(0,Y.jsx)(He,{contactChannels:e.channels,availableChannels:o,channelsLoadFailed:s,a2aEnabled:c,verifyLoading:r,verifySubject:`contact`,onSetupChannel:m,onVerifyChannel:h,onRevokeChannel:_,onLinkAccount:v})}),Je(e)&&b?(0,Y.jsx)(Ye,{contact:e,pending:y,onAutoApproveThresholdChange:b}):null,(0,Y.jsx)(f,{open:E,title:x(`contactDetailView.deleteConfirmTitle`,{name:ae}),message:x(`contactDetailView.deleteConfirmMessage`),confirmLabel:x(`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:n,pending:r,errorMessage:a,onMerge:o,onClose:s}){let{t:c}=j(`contacts`),[l,u]=(0,J.useState)(``),[d,f]=(0,J.useState)(null);(0,J.useEffect)(()=>{d&&!n.some(e=>e.id===d)&&f(null)},[n,d]);let p=(0,J.useMemo)(()=>{let e=l.trim().toLowerCase();return e?n.filter(t=>t.displayName.toLowerCase().includes(e)):n},[n,l]),h=d?n.find(e=>e.id===d)??null:null,_=it(t);return(0,Y.jsx)(m.Root,{open:e,onOpenChange:e=>{!e&&!r&&s()},children:(0,Y.jsxs)(m.Content,{size:`md`,children:[(0,Y.jsxs)(m.Header,{icon:Ee,children:[(0,Y.jsx)(m.Title,{children:h?c(`contactMergeDialog.titlePicked`,{donor:h.displayName,survivor:_}):c(`contactMergeDialog.titlePicking`,{survivor:_})}),(0,Y.jsx)(m.Description,{children:c(h?`contactMergeDialog.descriptionPicked`:`contactMergeDialog.descriptionPicking`)})]}),(0,Y.jsxs)(m.Body,{className:`flex flex-col gap-3`,children:[h?(0,Y.jsx)(nt,{survivor:t,donor:h}):n.length===0?(0,Y.jsx)(rt,{}):(0,Y.jsx)(et,{search:l,onSearch:u,candidates:p,onPick:f}),a?(0,Y.jsx)(i,{as:`p`,variant:`body-small-default`,className:`text-(--system-negative-strong)`,role:`alert`,children:a}):null]}),(0,Y.jsx)(m.Footer,{children:h?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(g,{variant:`outlined`,onClick:()=>f(null),disabled:r,leftIcon:(0,Y.jsx)(ue,{"aria-hidden":!0}),children:c(`actions.back`)}),(0,Y.jsx)(g,{variant:`danger`,onClick:()=>o(h.id),disabled:r,children:c(r?`actions.merging`:`contactMergeDialog.confirm`)})]}):(0,Y.jsx)(g,{variant:`outlined`,onClick:s,disabled:r,children:c(`actions.cancel`)})})]})})}function et({search:e,onSearch:t,candidates:n,onPick:r}){let{t:a}=j(`contacts`);return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(u,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:a(`contactMergeDialog.searchPlaceholder`),leftIcon:(0,Y.jsx)(de,{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:n.length===0?(0,Y.jsx)(i,{as:`p`,variant:`body-small-default`,className:`px-3 py-4 text-center text-(--content-tertiary)`,children:a(`contactsList.noMatches`)}):n.map(e=>(0,Y.jsx)(tt,{contact:e,onPick:()=>r(e.id)},e.id))})]})}function tt({contact:e,onPick:t}){let n=ot(e).join(` | `)||void 0;return(0,Y.jsx)(b,{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}=j(`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)(A,{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}=j(`contacts`);return(0,Y.jsx)(i,{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-`)?O(`survivorName.you`,{ns:`contacts`}):O(`survivorName.youNamed`,{ns:`contacts`,name:e.displayName}):e.displayName||O(`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:o,addingContact:s=!1,search:c,onSearchChange:l}){let{t:d}=j(`contacts`),f=c.trim()?r.filter(e=>e.displayName.toLowerCase().includes(c.trim().toLowerCase())):r;return(0,Y.jsx)(_.Root,{className:`flex h-full flex-col overflow-hidden`,children:(0,Y.jsxs)(_.Body,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h2`,{className:`text-title-medium`,style:{color:`var(--content-default)`},children:d(`contactsList.heading`)}),(0,Y.jsx)(g,{type:`button`,variant:`ghost`,iconOnly:s?(0,Y.jsx)(me,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(F,{"aria-hidden":!0}),onClick:o,disabled:s,"aria-label":d(`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?d(`contactsList.youNamed`,{name:t.displayName}):d(`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()||d(`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)(u,{type:`text`,value:c,onChange:e=>l(e.target.value),placeholder:d(`contactsList.searchPlaceholder`),leftIcon:(0,Y.jsx)(de,{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:[f.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)),f.length===0?(0,Y.jsx)(`p`,{className:`px-3 py-4 text-center text-body-small-default`,style:{color:`var(--content-tertiary)`},children:d(`contactsList.noMatches`)}):null]}):e?null:(0,Y.jsx)(g,{type:`button`,variant:`ghost`,onClick:o,disabled:s,tintColor:`var(--primary-base)`,leftIcon:s?(0,Y.jsx)(me,{className:`animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(B,{"aria-hidden":!0}),children:d(`contactsList.add`)})]})})}function ct({name:e,role:t,contactType:n,channelTypes:r,selected:i,onClick:a,trailingIcon:o,verified:c}){let{t:l}=j(`contacts`),u=r&&r.length>0?r.join(` | `):void 0,d=o===`pencil`?(0,Y.jsx)(z,{className:`h-3.5 w-3.5 text-[color:var(--content-tertiary)]`,"aria-hidden":!0}):o===`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)(b,{asChild:!0,active:i,children:(0,Y.jsxs)(`button`,{type:`button`,onClick:a,className:`flex h-auto w-full items-center gap-2 rounded-[6px] px-[8px] py-2 text-left`,children:[(0,Y.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Y.jsx)(`span`,{className:`truncate text-body-medium-default`,children:e}),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)(s,{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:o,a2aEnabled:s,onSave:c,onMerge:l,onSetupChannel:d,onVerifyChannel:f,onRevokeChannel:p,onGenerateInviteLink:m}){let{t:h}=j(`contacts`),_=e.displayName.startsWith(`vellum-principal-`),v=_?``:e.displayName,[y,b]=(0,J.useState)(v),[x,S]=(0,J.useState)(e.notes??``),C=y.trim(),ee=x.trim(),w=C!==v.trim()||ee!==(e.notes??``).trim(),T=w&&!t,E=h(`contact.interactions`,{count:e.interactionCount});return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsx)(G,{title:_?h(`contactsList.you`):h(`contactsList.youNamed`,{name:e.displayName}),accessory:(0,Y.jsx)(X,{role:`guardian`}),compactAccessory:!0,subtitle:E,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(u,{label:h(`contact.nameLabel`),type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:h(`guardianDetailView.namePlaceholder`),disabled:t,fullWidth:!0}),(0,Y.jsx)(u,{label:h(`contact.notesLabel`),type:`text`,value:x,onChange:e=>S(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)(g,{variant:`primary`,onClick:()=>c({displayName:C||e.displayName,notes:ee}),disabled:!T,children:h(t?`actions.saving`:`actions.save`)}),l?(0,Y.jsx)(g,{variant:`outlined`,onClick:l,disabled:!i||w||r||t,title:i?w?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:o,a2aEnabled:s,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:o,onPick:s,onClose:c,onInviteInstead:l}){let{t:d}=j(`contacts`),[f,p]=(0,J.useState)(``);(0,J.useEffect)(()=>{e&&p(``)},[e]);let h=(0,J.useMemo)(()=>dt(r??[],f),[r,f]),_=o!=null;return(0,Y.jsx)(m.Root,{open:e,onOpenChange:e=>!e&&c(),children:(0,Y.jsxs)(m.Content,{size:`sm`,children:[(0,Y.jsxs)(m.Header,{children:[(0,Y.jsx)(m.Title,{children:d(`linkAccountDialog.title`,{channel:t})}),(0,Y.jsx)(m.Description,{children:(0,Y.jsx)(A,{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)(m.Body,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(u,{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)(de,{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`)}):h.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:h.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>s(e),disabled:_,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]})]}),o===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)(m.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)(A,{i18nKey:`linkAccountDialog.guardianLinkNote`,ns:`contacts`,components:{emphasis:(0,Y.jsx)(`span`,{className:`text-[color:var(--content-secondary)]`})}})}),l?(0,Y.jsxs)(g,{variant:`link`,className:`shrink-0`,onClick:l,disabled:_,children:[d(`linkAccountDialog.inviteInstead`),(0,Y.jsx)(L,{className:`h-3.5 w-3.5`})]}):null]})]})})}function mt({assistantId:e,channelType:t,contact:r,onLinked:i}){let[a,o]=(0,J.useState)(!1),s=k({mutationFn:n=>Ce(e,n.contact,{type:t,address:n.account.id}),onSuccess:(e,t)=>{o(!1),n.success(O(`accountLink.linked`,{ns:`contacts`,username:t.account.username})),i()}}),c=(0,J.useCallback)(()=>{s.reset(),o(!0)},[s]),l=(0,J.useCallback)(()=>{s.isPending||(s.reset(),o(!1))},[s]),u=(0,J.useCallback)(e=>{!r||s.isPending||s.mutate({contact:r,account:e})},[r,s]);return{channelType:t,dialogOpen:a,open:c,close:l,linkErrorMessage:s.error instanceof Error?s.error.message:s.error?O(`accountLink.linkFailed`,{ns:`contacts`}):null,pendingAccountId:s.isPending?s.variables.account.id:null,pick:u}}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:i}=j(`contacts`),s=te.use.a2aChannel(),u=ee.use.name(),f=ie(),[m]=ae(),g=m.get(`setup`),_=g&&y(g)?g:null,[b,x]=(0,J.useState)({kind:`assistant`}),S=be(e),{paneRef:C,hasRoomForList:w,drawerOpen:T,openDrawer:E,closeDrawer:D}=_e(),[O,A]=(0,J.useState)(``),[oe,M]=(0,J.useState)(!1),ce=l(u),N=(0,J.useMemo)(()=>({path:{assistant_id:e}}),[e]),P=a(N),le=re({...r(N),enabled:!!e,select:e=>e.contacts}),F=ye({assistantId:e,onStartSetupConversation:t}),I=re({...ne({path:{assistant_id:e}}),enabled:!!e,queryFn:async({signal:t})=>{let{data:n,error:r,response:i}=await o({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=I.data??gt,ue=I.isError,R=le.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)(()=>b.kind===`contact`?R?.find(e=>e.id===b.contactId)??null:null,[R,b]),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)(!!_);(0,J.useEffect)(()=>{me.current||z&&(me.current=!0,x({kind:`contact`,contactId:z.id}))},[z]);let V=(0,J.useCallback)(()=>f.invalidateQueries({queryKey:P}),[f,P]),H=k({mutationFn:()=>Se(e,{displayName:je}),onMutate:async()=>{await f.cancelQueries({queryKey:P})},onSuccess:e=>{c(f,N,t=>t?{...t,contacts:[...t.contacts,e]}:void 0),x({kind:`contact`,contactId:e.id})},onError:K(i(`contactsPage.createFailed`)),onSettled:()=>V()}),U=k({mutationFn:t=>we(e,t),onSuccess:(e,t)=>{c(f,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==t)}:void 0),x({kind:`assistant`})},onError:K(i(`contactsPage.deleteFailed`)),onSettled:()=>V()}),W=k({mutationFn:({contactId:t,patch:n})=>Se(e,{id:t,displayName:n.displayName,notes:n.notes}),onSuccess:e=>{c(f,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(i(`contactsPage.saveFailed`)),onSettled:()=>V()}),G=k({mutationFn:({contactId:t,displayName:n,autoApproveThreshold:r})=>Se(e,{id:t,displayName:n,autoApproveThreshold:r}),onSuccess:e=>{c(f,N,t=>t?{...t,contacts:t.contacts.map(t=>t.id===e.id?e:t)}:void 0)},onError:K(i(`contactPermissions.saveFailed`)),onSettled:()=>V()}),q=v({onMutate:async()=>{await f.cancelQueries({queryKey:P})},onSuccess:(e,t)=>{let r=e.contact,a=t.body.mergeId;r&&(c(f,N,e=>e?{...e,contacts:e.contacts.filter(e=>e.id!==a).map(e=>e.id===r.id?r:e)}:void 0),x({kind:`contact`,contactId:r.id})),M(!1),n.success(i(`contactsPage.mergeSucceeded`))},onSettled:()=>V()}),Te=(0,J.useCallback)(e=>{x(e),D(),M(!1),q.reset()},[D,q]),Ee=(0,J.useCallback)(()=>{q.reset(),M(!0)},[q]),De=(0,J.useCallback)(()=>{q.isPending||(M(!1),q.reset())},[q]),Oe=h({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=k({mutationFn:t=>xe(e,t.channelId),onSuccess:()=>V(),onError:K(i(`contactsPage.verifyFailed`))}),Z=k({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(i(`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=re({...d(e),enabled:!!e&&Q.dialogOpen,select:e=>e.users}),ze=F.channels.some(e=>e.key===`slack`&&e.configured),Be=(0,J.useCallback)(e=>{e===Q.channelType&&Q.open()},[Q]),Ve=U.isPending?U.variables:null,$=(0,J.useMemo)(()=>{if(!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(_)return(0,Y.jsx)(se,{to:`${p.channels}?setup=${_}`,replace:!0});let He={loading:le.isLoading,assistantName:ce,guardian:z?{id:z.id,displayName:z.displayName.startsWith(`vellum-principal-`)?``:z.displayName,role:z.role,channelTypes:bt(z.channels,s)}: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,s),verified:yt(e.channels)})),selection:b,onAddContact:Me,addingContact:H.isPending,search:O,onSearchChange:A};return(0,Y.jsxs)(`div`,{ref:C,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:E})}),(0,Y.jsx)(he,{open:T,onClose:D,title:i(`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:b.kind===`assistant`||b.kind===`contact`&&b.contactId===Ve?(0,Y.jsx)(Fe,{assistantName:ce,channels:F.channels,pendingChannelKey:F.pendingChannelKey,onConnect:F.onSetup,onDisconnect:F.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:s,onSave:e=>{W.mutate({contactId:$.id,patch:e})},onMerge:Ee,onSetupChannel:t?Pe:void 0,onVerifyChannel:Ie,onRevokeChannel:ke,onGenerateInviteLink:s?S.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:s,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:oe,survivor:B,candidates:fe,pending:q.isPending,errorMessage:q.error instanceof Error?q.error.message:q.error?i(`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?i(`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:S.isOpen,assistantId:e,onClose:S.close})]})}function vt(){let{t:e}=j(`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=oe(),t=x();return(0,Y.jsx)(_t,{assistantId:t,onStartSetupConversation:t=>{C(e,{prompt:t})}},t)}export{xt as ContactsPageRoute};