@vellumai/web 0.11.2-staging.2 → 0.11.2

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 (159) hide show
  1. package/dist/assets/{Combination-CWTYp834.js → Combination-TPH8qx8I.js} +1 -1
  2. package/dist/assets/{access-CVnesk0m.js → access-PKx6h0AJ.js} +1 -1
  3. package/dist/assets/{account-page-mMG1nL1O.js → account-page-DucijMvM.js} +1 -1
  4. package/dist/assets/{account-shell-BmH96-Ie.js → account-shell-BBDh-DzD.js} +1 -1
  5. package/dist/assets/{acp-run-detail-panel-SN6NIuW5.js → acp-run-detail-panel-DJ6moBbf.js} +1 -1
  6. package/dist/assets/{activity-steps-panel-bduSS8_d.js → activity-steps-panel-C95hN_fd.js} +1 -1
  7. package/dist/assets/{add-credential-modal-4zzd0MPK.js → add-credential-modal-BbvTHJmF.js} +1 -1
  8. package/dist/assets/{add-credits-modal-DNYP2NMD.js → add-credits-modal-C5d63VSi.js} +1 -1
  9. package/dist/assets/{ai-page-BMqECtJX.js → ai-page-CbNTYziv.js} +1 -1
  10. package/dist/assets/{api-key-screen-tqtaQUVf.js → api-key-screen-B5zgGiwa.js} +1 -1
  11. package/dist/assets/{app-card-BJigGog3.js → app-card-CxO44OqN.js} +1 -1
  12. package/dist/assets/{assistant-feature-flag-store-BvLDPeej.js → assistant-feature-flag-store-BojuHxUH.js} +1 -1
  13. package/dist/assets/{assistant-status-panel-DyjhJvK6.js → assistant-status-panel-ZdWgKADH.js} +1 -1
  14. package/dist/assets/{background-task-detail-panel-DCtBOnvF.js → background-task-detail-panel-BvgkgKs6.js} +1 -1
  15. package/dist/assets/{billing-page-TF_LgX6K.js → billing-page-CSxWbmCW.js} +2 -2
  16. package/dist/assets/{bookmarks-page-Brvj5Jf6.js → bookmarks-page-hFDlAWts.js} +1 -1
  17. package/dist/assets/{button-Dy5001j6.js → button-BwFudwM5.js} +1 -1
  18. package/dist/assets/{channels-page-route-8vJJE2LN.js → channels-page-route-Cxn_zS-J.js} +1 -1
  19. package/dist/assets/{chat-markdown-message-B7qvlO44.js → chat-markdown-message-BZZsrGyj.js} +1 -1
  20. package/dist/assets/{checkbox-PU47Djxg.js → checkbox-fzrjTRTI.js} +1 -1
  21. package/dist/assets/{checkout-page-MpIPAAgf.js → checkout-page-lDrK4V11.js} +1 -1
  22. package/dist/assets/{command-palette-Bd1GTwZQ.js → command-palette-Bzsl-t3p.js} +1 -1
  23. package/dist/assets/{command-palette-window-page-CoweYsZl.js → command-palette-window-page-DjfAe-7N.js} +1 -1
  24. package/dist/assets/{community-page-BWMwSeEZ.js → community-page-CktLEQl7.js} +1 -1
  25. package/dist/assets/{confirm-dialog-j9o2h3xs.js → confirm-dialog-B7WBNDbT.js} +1 -1
  26. package/dist/assets/{connect-page-BxSNhZ8N.js → connect-page-hrIJuX_v.js} +1 -1
  27. package/dist/assets/{consent-controls-Bs63UL5k.js → consent-controls-HYcVhQZ2.js} +1 -1
  28. package/dist/assets/{contacts-page-route-BOpVOsYK.js → contacts-page-route-CX57wU3L.js} +1 -1
  29. package/dist/assets/{conversation-navigation-Bf3cDRKh.js → conversation-navigation-CIHBMx2t.js} +1 -1
  30. package/dist/assets/{copy-to-clipboard-DgY-nZpm.js → copy-to-clipboard-Y0mxY68V.js} +1 -1
  31. package/dist/assets/{credential-entry-page-CreYYbwf.js → credential-entry-page-DQOv-Jyx.js} +1 -1
  32. package/dist/assets/credentials-page-C0eeGia5.js +1 -0
  33. package/dist/assets/{csv-preview-cEf_PW-P.js → csv-preview-C4T5JLx3.js} +1 -1
  34. package/dist/assets/{debug-page-DfPZPo6D.js → debug-page-DzXHo3zM.js} +2 -2
  35. package/dist/assets/{deploy-dialogs-CuaO05wL.js → deploy-dialogs-DQGwptOi.js} +1 -1
  36. package/dist/assets/{deploy-store-BDIOP-i9.js → deploy-store-BJh0AR_u.js} +1 -1
  37. package/dist/assets/{detail-card-BElAV1cp.js → detail-card-Br_T-73R.js} +1 -1
  38. package/dist/assets/{detail-drawer-Cd_EQJkJ.js → detail-drawer-Cbj_q7o7.js} +1 -1
  39. package/dist/assets/{detail-panel-stop-button-Bhew_kym.js → detail-panel-stop-button-DN2NrxEh.js} +1 -1
  40. package/dist/assets/{detail-shell-BjqibXNX.js → detail-shell-BuJMM-9z.js} +1 -1
  41. package/dist/assets/{developer-page-DwBmhm09.js → developer-page-Cj9JWAsX.js} +1 -1
  42. package/dist/assets/{dist-EanpjdWC.js → dist-B5IUaBWa.js} +1 -1
  43. package/dist/assets/{dist-C68qFSny.js → dist-BrrL0-_M.js} +1 -1
  44. package/dist/assets/dist-DWcXIgDR.js +1 -0
  45. package/dist/assets/{document-viewer-container-iB63ww7P.js → document-viewer-container-CPc9KTln.js} +2 -2
  46. package/dist/assets/{document-viewer-page-CA1ParJ6.js → document-viewer-page-BqJvQQmH.js} +1 -1
  47. package/dist/assets/{dropdown-B3FHWc_n.js → dropdown-CJVkL1Yp.js} +1 -1
  48. package/dist/assets/{emails-page-Bo0Bwem2.js → emails-page-DwQ-FnOD.js} +1 -1
  49. package/dist/assets/{file-editor-BfJR0ScX.js → file-editor-BigdI9HF.js} +1 -1
  50. package/dist/assets/{file-markdown-DnVLY_b_.js → file-markdown-eU8RUJQZ.js} +1 -1
  51. package/dist/assets/{first-run-scope-CPJpXaWU.js → first-run-scope-DqdWmMO-.js} +1 -1
  52. package/dist/assets/{general-page-BXeIQDGi.js → general-page-uFG7UTqR.js} +1 -1
  53. package/dist/assets/hatching-screen-CWZvcZVI.js +1 -0
  54. package/dist/assets/{home-page-route-BPht0PNp.js → home-page-route-zQaUf7gb.js} +1 -1
  55. package/dist/assets/{hosting-screen-DxtyBx0I.js → hosting-screen-lGuLVQVG.js} +1 -1
  56. package/dist/assets/{identity-page-route-DgmrXhhV.js → identity-page-route-C64OsL5_.js} +1 -1
  57. package/dist/assets/index-Cn_k9u0x.css +2 -0
  58. package/dist/assets/{index-CPeIfypI.js → index-D-1mlWsA.js} +1 -1
  59. package/dist/assets/{input-tXUFa7Eo.js → input-CgGeKtja.js} +1 -1
  60. package/dist/assets/{inspect-page-C8aLJOd6.js → inspect-page-DdXP831Q.js} +1 -1
  61. package/dist/assets/integrations-page-DmQCd8GV.js +1 -0
  62. package/dist/assets/{intelligence-layout-BRC0qkZ7.js → intelligence-layout-IptAIgHy.js} +1 -1
  63. package/dist/assets/{library-detail-page-gC4yIWnV.js → library-detail-page-Ddel5wXb.js} +1 -1
  64. package/dist/assets/{library-page-B10gnbXU.js → library-page-B4k0PNa8.js} +1 -1
  65. package/dist/assets/{login-page-CbWRbJDE.js → login-page-CRIed3qa.js} +1 -1
  66. package/dist/assets/{logout-page-DCyzi0V6.js → logout-page-Ne05SAbm.js} +1 -1
  67. package/dist/assets/{logs-layout-CYkqau4S.js → logs-layout-BN5HA58-.js} +1 -1
  68. package/dist/assets/{memory-page-route-j_3602nh.js → memory-page-route-Mz8GlpcX.js} +1 -1
  69. package/dist/assets/{memory-router-playground-page-x5X662qi.js → memory-router-playground-page-CeIkpuOW.js} +1 -1
  70. package/dist/assets/{menu-wESJw6y3.js → menu-Cfi4A3sw.js} +1 -1
  71. package/dist/assets/{message-files-panel-C8JokH6e.js → message-files-panel-C8sWLQ58.js} +1 -1
  72. package/dist/assets/{messages-Dyp1xUqz.js → messages-BTSYvzWZ.js} +1 -1
  73. package/dist/assets/{metric-card-DpZFp8-q.js → metric-card-CczTqF_s.js} +1 -1
  74. package/dist/assets/{mobile-sidebar-drawer-BwCIAm23.js → mobile-sidebar-drawer-CSAugzxJ.js} +1 -1
  75. package/dist/assets/{modal-xr_vw1ZO.js → modal-DagTZ8xj.js} +1 -1
  76. package/dist/assets/mutation-error-Cp0Jaqnt.js +1 -0
  77. package/dist/assets/{not-found-Bh7ZsdAo.js → not-found-C1zvwDkh.js} +1 -1
  78. package/dist/assets/{notifications-page-BA2BW5y6.js → notifications-page-BzoWNM1e.js} +1 -1
  79. package/dist/assets/{onboarding-layout-iPzXbZk1.js → onboarding-layout-CNKJRWfe.js} +1 -1
  80. package/dist/assets/{open-workspace-file-CivxJWcw.js → open-workspace-file-DAlt8chN.js} +2 -2
  81. package/dist/assets/{page-shell-ZNQR4ZTn.js → page-shell-Dx-efyAO.js} +1 -1
  82. package/dist/assets/pairing-page-BqjYohpZ.js +1 -0
  83. package/dist/assets/{panel-item-CJh95P_q.js → panel-item-5YQ3jbso.js} +1 -1
  84. package/dist/assets/{personality-page-Bz_rNBSs.js → personality-page-CB98MeIQ.js} +1 -1
  85. package/dist/assets/{plans-page-BfyCgy38.js → plans-page-BcR_kjJL.js} +1 -1
  86. package/dist/assets/{platform-login-notice-DFmjUE9q.js → platform-login-notice-DvWjpI2S.js} +1 -1
  87. package/dist/assets/popover-CBYgK7Wt.js +1 -0
  88. package/dist/assets/{preview-error-BrLE2D3A.js → preview-error-DzUxX6Jy.js} +1 -1
  89. package/dist/assets/{privacy-page-BhEGh78C.js → privacy-page-B9zfD9a-.js} +1 -1
  90. package/dist/assets/{privacy-screen-CWVCI_KU.js → privacy-screen-Btqk8OjG.js} +1 -1
  91. package/dist/assets/{provider-callback-page-DP5cKqPE.js → provider-callback-page-Jul4gNdZ.js} +1 -1
  92. package/dist/assets/provider-key-BZOwvE14.js +1 -0
  93. package/dist/assets/{provider-signup-page-BjiiJWS_.js → provider-signup-page-C47ij2Um.js} +1 -1
  94. package/dist/assets/{research-mock-page-CGkqkXHp.js → research-mock-page-DthnGXhi.js} +1 -1
  95. package/dist/assets/{research-onboarding-route-DZF-B2Rk.js → research-onboarding-route-Cql_2-1F.js} +1 -1
  96. package/dist/assets/{research-results-view-BFZFPpev.js → research-results-view-BYpW36E0.js} +1 -1
  97. package/dist/assets/{retire-confirm-dialog-8xlq4bkx.js → retire-confirm-dialog-PvFzzHrQ.js} +1 -1
  98. package/dist/assets/{review-terms-screen-C5BAI3Rx.js → review-terms-screen-BpE_z8HY.js} +1 -1
  99. package/dist/assets/routes-DRAnvlxS.js +23 -0
  100. package/dist/assets/{runtime-upgrade-banner-DjFuJawk.js → runtime-upgrade-banner-Blp8EyfL.js} +1 -1
  101. package/dist/assets/{schedules-page-3ZE1nR6I.js → schedules-page-D6KPJIUP.js} +1 -1
  102. package/dist/assets/{select-assistant-screen-D4WHHv61.js → select-assistant-screen-DH6QRKdk.js} +1 -1
  103. package/dist/assets/{settings-divider-BkLQFMlW.js → settings-divider-COV4-sHz.js} +1 -1
  104. package/dist/assets/{settings-layout-BmOglXDq.js → settings-layout-CyMD8Ey7.js} +1 -1
  105. package/dist/assets/{share-feedback-modal-Rwuho_1S.js → share-feedback-modal-NfuDPoEg.js} +1 -1
  106. package/dist/assets/{sidebar-tree-Dxx5qLMQ.js → sidebar-tree-DTcPYrOG.js} +1 -1
  107. package/dist/assets/{site-favicon-CDH0mg6Q.js → site-favicon-DkjZF9mC.js} +1 -1
  108. package/dist/assets/{skill-detail-page-DswXTTyb.js → skill-detail-page-CzCcXCkp.js} +1 -1
  109. package/dist/assets/{skill-detail-panel-DhQFBAFF.js → skill-detail-panel-B1Kxa3zf.js} +1 -1
  110. package/dist/assets/{skills-CbF2uKXV.js → skills-CrZ3GlyK.js} +1 -1
  111. package/dist/assets/{slack-setup-wizard-DPzdheN0.js → slack-setup-wizard-CeBY_rKV.js} +1 -1
  112. package/dist/assets/src-CwGlaCIx.js +293 -0
  113. package/dist/assets/{start-screen-CSxaBn88.js → start-screen-wyemTUjV.js} +1 -1
  114. package/dist/assets/{subagent-detail-panel-CidisBCf.js → subagent-detail-panel-C3II8umu.js} +1 -1
  115. package/dist/assets/{superpowers-page-BouZK3P4.js → superpowers-page-DmIZ_ed4.js} +1 -1
  116. package/dist/assets/{system-events-page-BrvTNeiN.js → system-events-page-DAbap4FJ.js} +1 -1
  117. package/dist/assets/{tag-gOOX7fbA.js → tag-G0ELn_cq.js} +1 -1
  118. package/dist/assets/{text-preview-DwgKh8PW.js → text-preview-DLiOtb-y.js} +1 -1
  119. package/dist/assets/{theme-stage-page-LIhQbqRQ.js → theme-stage-page-Dt0ShS5G.js} +1 -1
  120. package/dist/assets/{tiptap-document-editor-BvGaiGeN.js → tiptap-document-editor-LwU6S_hn.js} +2 -2
  121. package/dist/assets/{toast-BtFgiPe3.js → toast-BHjG1kP8.js} +1 -1
  122. package/dist/assets/{tool-detail-panel-B2CIRZkB.js → tool-detail-panel-tFQRRPbP.js} +1 -1
  123. package/dist/assets/{transcript-message-body-shared-BfKwS5qD.js → transcript-message-body-shared-DdXeU1D-.js} +1 -1
  124. package/dist/assets/{upgrade-cancel-page-DjeqfvTa.js → upgrade-cancel-page-isK2Rvv6.js} +1 -1
  125. package/dist/assets/{upgrade-success-page-B4TCn340.js → upgrade-success-page-B7ZaoDsy.js} +1 -1
  126. package/dist/assets/{use-assistant-identity-details-D-7oN9gr.js → use-assistant-identity-details-BLHiMTpS.js} +1 -1
  127. package/dist/assets/{use-attachment-preview-CQjpDfsc.js → use-attachment-preview-TAzqhvwh.js} +1 -1
  128. package/dist/assets/{use-attachment-squares-8Hx-p8ls.js → use-attachment-squares-Cnn6a6er.js} +1 -1
  129. package/dist/assets/{use-bookmarks-DO9wmU-2.js → use-bookmarks-BKYsQrf9.js} +1 -1
  130. package/dist/assets/{use-checkout-dismiss-refresh-CV_H4uEB.js → use-checkout-dismiss-refresh-ChquCG4n.js} +1 -1
  131. package/dist/assets/{use-edit-app-Bd1eXXFq.js → use-edit-app-LCywIVb9.js} +1 -1
  132. package/dist/assets/{use-invite-link-dialog-TNGI1l4g.js → use-invite-link-dialog-CnOeFYBH.js} +1 -1
  133. package/dist/assets/{use-ios-app-nudge-CadXZRJC.js → use-ios-app-nudge-9Qqz96FD.js} +1 -1
  134. package/dist/assets/{use-skill-actions-B_tz3CI7.js → use-skill-actions-Ik0rj4or.js} +1 -1
  135. package/dist/assets/{use-sticky-profiles-D5TVHOgw.js → use-sticky-profiles-BwaZUy6p.js} +1 -1
  136. package/dist/assets/{use-subagent-card-data-bjGydvhR.js → use-subagent-card-data-1nEhEj8_.js} +1 -1
  137. package/dist/assets/{use-transcript-message-by-id-BgyP3Ki5.js → use-transcript-message-by-id-RhDDYgbY.js} +1 -1
  138. package/dist/assets/{use-transcript-messages-C2uwkjKL.js → use-transcript-messages-C5t358ZW.js} +1 -1
  139. package/dist/assets/{utils-3IBGVjNS.js → utils-B6xfBCpN.js} +1 -1
  140. package/dist/assets/{viewer-store-DbIS4l8d.js → viewer-store-DxLOGAkL.js} +1 -1
  141. package/dist/assets/{voice-list-D26Lzbpv.js → voice-list-DP4_zhJe.js} +1 -1
  142. package/dist/assets/{voice-page-CQ2Vp8p4.js → voice-page-Bn0QH4eT.js} +1 -1
  143. package/dist/assets/{voice-providers-note-Ck7hNTfp.js → voice-providers-note-F4pLO3zK.js} +1 -1
  144. package/dist/assets/{welcome-screen-CdsjDVfi.js → welcome-screen-B6BjQt9n.js} +1 -1
  145. package/dist/assets/{workflow-detail-panel-CsRhUrbM.js → workflow-detail-panel-H3N7Md_X.js} +1 -1
  146. package/dist/assets/{workspace-page-CFuSxp5s.js → workspace-page-B4sn6pzo.js} +1 -1
  147. package/dist/index.html +55 -55
  148. package/package.json +1 -1
  149. package/dist/assets/credentials-page-DBLT8nUI.js +0 -1
  150. package/dist/assets/dist-BDdp8zqz.js +0 -1
  151. package/dist/assets/hatching-screen-BUpSlvBy.js +0 -1
  152. package/dist/assets/index-C7_04HXM.css +0 -2
  153. package/dist/assets/integrations-page-Bp2Q81Qt.js +0 -1
  154. package/dist/assets/mutation-error-YLfUU5XL.js +0 -1
  155. package/dist/assets/pairing-page-P5ghxF0M.js +0 -1
  156. package/dist/assets/popover-B-3isZCV.js +0 -1
  157. package/dist/assets/provider-key-CgC-RLmR.js +0 -1
  158. package/dist/assets/routes-uGHUgv4F.js +0 -23
  159. package/dist/assets/src-Da9g8qsW.js +0 -293
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r,t as i}from"./capture-error-CqtAGHQu.js";import{t as a}from"./react-BFJW0bSv.js";import{t as o}from"./button-Dy5001j6.js";import{m as s,n as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./cn-CJf7MmLX.js";import{t as p}from"./createLucideIcon-CAM1RhH8.js";import{t as m}from"./bug-DdmWJIkz.js";import{t as h}from"./circle-x-DTjJzoQl.js";import"./src-Da9g8qsW.js";import{t as ee}from"./info-DkhVkzmK.js";import{t as g}from"./loader-circle-DWWXcfTQ.js";import{t as te}from"./search-DL-2uX3K.js";import{t as ne}from"./triangle-alert-D6bAGtMw.js";import{t as _}from"./tag-gOOX7fbA.js";import{t as v}from"./toggle-BEPV0rQM.js";import{n as y}from"./toast-BtFgiPe3.js";import{t as b}from"./confirm-dialog-j9o2h3xs.js";import{t as x}from"./dropdown-B3FHWc_n.js";import{E as S,f as C}from"./local-mode-DHueA-BJ.js";import{at as w}from"./auth-store-C9aYqB9U.js";import{t as T}from"./client.gen-Dq2brHDV.js";import{c as re,o as ie}from"./api-CGsj1Pig.js";import{a as ae,l as E,o as oe}from"./feature-flag-catalog-CpyCubJW.js";import{t as D}from"./client-feature-flag-store-Cw39NfCq.js";import{d as se}from"./routes-DrfnNoYS.js";import{r as O}from"./use-is-org-ready-3vHDbj4G.js";import{Q as k,Ut as A,Z as j,c as M,en as N,tn as P,u as F}from"./react-query.gen-C7om930f.js";import{O as I,v as L}from"./react-query.gen-BtYBixpk.js";import{t as R}from"./assistant-feature-flag-store-BvLDPeej.js";import{t as z}from"./misc-BBsGq1IU.js";import{t as B}from"./use-active-assistant-id-JLsAfn3e.js";import{t as V}from"./detail-card-BElAV1cp.js";import{t as H}from"./environment-store-DxX3xxt2.js";import{n as U}from"./assistant-status-panel-DyjhJvK6.js";var W=p(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),ce=p(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),G=e(a(),1),K=d();function le({memoryEnabled:e}){let t=B(),n=l(),{data:r}=u({...j({path:{assistant_id:t}}),staleTime:3e4}),a=e=>{k(n,{path:{assistant_id:t}},t=>t&&{...t,status:e?`running`:`not_running`})},o=N({onSuccess:()=>a(!0)}),s=P({onSuccess:()=>a(!1)}),c=async e=>{try{e?(await o.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker started.`)):(await s.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker stopped.`))}catch(e){i(e,{context:`settings-memory-worker-toggle`}),y.error(`Failed to update background worker.`)}};if(!r)return null;let d=o.isPending||s.isPending;return(0,K.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Background worker`}),(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Run memory consolidation in a dedicated background process. It starts automatically; stop it to pause background memory processing until the next restart.`})]}),(0,K.jsx)(v,{checked:r.status===`running`,onChange:e=>void c(e),"aria-label":`Enable background memory worker`,disabled:!e||d})]})}function ue(){let{healthz:e}=U(),t=B(),n=l(),r=e?.capabilities?.memoryOptOut===!0,{data:a}=u({...M({path:{assistant_id:t}}),staleTime:3e4,enabled:r}),o=A({onSuccess:e=>{F(n,{path:{assistant_id:t}},e)}}),s=a?.memory?.enabled!==!1,c=async e=>{try{await o.mutateAsync({path:{assistant_id:t},body:{memory:{enabled:e}}}),y.success(e?`Memory enabled.`:`Memory disabled.`)}catch(e){i(e,{context:`settings-memory-toggle`}),y.error(`Failed to update memory setting.`)}};return r?(0,K.jsx)(V,{title:`Memory`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,accessory:(0,K.jsx)(v,{checked:s,onChange:e=>void c(e),"aria-label":`Enable memory`,disabled:o.isPending}),compactAccessory:!0,children:(0,K.jsx)(le,{memoryEnabled:s})}):null}function de(){let e=l(),[t,n]=(0,G.useState)(!1),[r,i]=(0,G.useState)(!1),a=O(),s=B(),{data:c,isLoading:d}=u({...I({path:{id:s}}),enabled:a}),{data:f,isLoading:p}=u({...L({query:{hosting:`all`}}),enabled:a}),m=d||p,h=f?.results??[];return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(fe,{assistant:c??null,loading:m}),(0,K.jsx)(pe,{assistants:h,activeAssistantId:s,loading:m}),(0,K.jsxs)(V,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,K.jsx)(o,{variant:`outlined`,leftIcon:t?(0,K.jsx)(g,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,K.jsx)(b,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await ie(void 0,`create`);if(t.ok){if(C())try{let e=await re();e.ok&&await S(e.data,w.getState().currentOrganizationId??void 0)}catch{}y.success(t.status===201?`New assistant hatched successfully.`:`Returned your existing assistant — no new one was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:L({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;y.error(e)}}catch{y.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function fe({assistant:e,loading:t}){return t?(0,K.jsx)(V,{title:`Assistant Info`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,K.jsx)(g,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,K.jsx)(V,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,K.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,K.jsx)(q,{children:`Name`}),(0,K.jsx)(J,{children:e.name??`Unnamed`}),(0,K.jsx)(q,{children:`Status`}),(0,K.jsx)(`div`,{children:(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,K.jsx)(q,{children:`Assistant ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Machine ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,K.jsx)(q,{children:`Created`}),(0,K.jsx)(J,{children:new Date(e.created).toLocaleDateString()}),(0,K.jsx)(q,{children:`Last Modified`}),(0,K.jsx)(J,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Version`}),(0,K.jsx)(J,{children:e.current_release_version})]})]})}):(0,K.jsx)(V,{title:`Assistant Info`,children:(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function pe({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,K.jsx)(V,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,K.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,K.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,K.jsx)(_,{tone:`warning`,children:`Current`})]}),(0,K.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function q({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function J({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function me(){let e=H.use.emailRootDomain(),t=H.use.isNonProduction(),n=H.use.setEnvironment();return(0,K.jsx)(V,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(_,{tone:`neutral`,children:e})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function he(){let{data:e,response:t}=await T.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var Y={client:`warning`,assistant:`positive`};function ge(){let e=B(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:he,enabled:O(),staleTime:300*1e3}),n=(0,G.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,G.useState)(``),a=D(),o=R(),s=(0,G.useMemo)(()=>{let e=[];for(let t of oe){let r=ae(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,G.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,K.jsx)(V,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(te,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,K.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,K.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,K.jsx)(Z,{flag:t,assistantId:e},t.storeKey))})]})})}function X({scope:e}){return e===`both`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_,{tone:Y.client,children:`client`}),(0,K.jsx)(_,{tone:Y.assistant,children:`assistant`})]}):(0,K.jsx)(_,{tone:Y[e],children:e})}function _e({flag:e,assistantId:t}){let n=D.use.setFlag(),r=R.use.setFlag();return(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:e.value,onChange:i=>{E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function ve({flag:e,assistantId:t}){let n=D.use.setStringFlag(),r=R.use.setStringFlag(),[i,a]=(0,G.useState)(e.value);(0,G.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},p=c!=null&&c.includes(e.value);return(0,K.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),p?(0,K.jsx)(x,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,K.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function Z({flag:e,assistantId:t}){return e.kind===`string`?(0,K.jsx)(ve,{flag:e,assistantId:t}):(0,K.jsx)(_e,{flag:e,assistantId:t})}function ye(){let e=(0,G.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),y.success(`Sentry error event sent.`)},[]),i=(0,G.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),y.success(`Sentry warning event sent.`)},[]),a=(0,G.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),y.success(`Sentry info event sent.`)},[]),o=(0,G.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),y.success(`Sentry fatal event sent.`)},[]),s=(0,G.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),y.success(`Sentry performance transaction sent.`)},[]);return(0,K.jsx)(V,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(Q,{icon:(0,K.jsx)(W,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,K.jsx)(Q,{icon:(0,K.jsx)(h,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ne,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ee,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ce,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0`,children:e}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,K.jsxs)(o,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,K.jsx)(m,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`},{id:`memory`,label:`Memory`}];function be(){let[e,t]=s(),n=R.use.settingsDeveloperNav(),r=R.use.hasHydrated(),i=(0,G.useMemo)(()=>{let t=e.get(`tab`);return $.find(e=>e.id===t)?.id??`feature-flags`},[e]);if(r&&!n)return(0,K.jsx)(c,{replace:!0,to:se.settings.general});let a=n=>{let r=new URLSearchParams(e.toString());n===`feature-flags`?r.delete(`tab`):r.set(`tab`,n),t(r,{replace:!0})};return(0,K.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,K.jsx)(`div`,{className:`flex shrink-0 items-center border-b border-[var(--border-base)]`,children:(0,K.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===i;return(0,K.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>a(e.id),className:z(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})})}),(0,K.jsxs)(`div`,{id:`developer-tab-panel-${i}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${i}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[i===`feature-flags`&&(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(ge,{}),(0,K.jsx)(me,{})]}),i===`lifecycle`&&(0,K.jsx)(de,{}),i===`sentry`&&(0,K.jsx)(ye,{}),i===`memory`&&(0,K.jsx)(`div`,{className:`space-y-4`,children:(0,K.jsx)(ue,{})})]})]})}export{be as DeveloperPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{a as t,m as n,o as r,t as i}from"./capture-error-CqtAGHQu.js";import{t as a}from"./react-BFJW0bSv.js";import{t as o}from"./button-BwFudwM5.js";import{m as s,n as c}from"./chunk-5KNZJZUH-Bsoom5--.js";import{n as l}from"./QueryClientProvider-CMu7CkQU.js";import{t as u}from"./useQuery-Bz-fbQ-m.js";import{t as d}from"./jsx-runtime-D3ZM-ToX.js";import{t as f}from"./cn-CJf7MmLX.js";import{t as p}from"./createLucideIcon-CAM1RhH8.js";import{t as m}from"./bug-DdmWJIkz.js";import{t as h}from"./circle-x-DTjJzoQl.js";import"./src-CwGlaCIx.js";import{t as ee}from"./info-DkhVkzmK.js";import{t as g}from"./loader-circle-DWWXcfTQ.js";import{t as te}from"./search-DL-2uX3K.js";import{t as ne}from"./triangle-alert-D6bAGtMw.js";import{t as _}from"./tag-G0ELn_cq.js";import{t as v}from"./toggle-BEPV0rQM.js";import{n as y}from"./toast-BHjG1kP8.js";import{t as b}from"./confirm-dialog-B7WBNDbT.js";import{t as x}from"./dropdown-CJVkL1Yp.js";import{E as S,f as C}from"./local-mode-DHueA-BJ.js";import{at as w}from"./auth-store-C9aYqB9U.js";import{t as T}from"./client.gen-Dq2brHDV.js";import{c as re,o as ie}from"./api-CGsj1Pig.js";import{a as ae,l as E,o as oe}from"./feature-flag-catalog-CpyCubJW.js";import{t as D}from"./client-feature-flag-store-Cw39NfCq.js";import{d as se}from"./routes-DrfnNoYS.js";import{r as O}from"./use-is-org-ready-3vHDbj4G.js";import{Q as k,Ut as A,Z as j,c as M,en as N,tn as P,u as F}from"./react-query.gen-C7om930f.js";import{O as I,v as L}from"./react-query.gen-BtYBixpk.js";import{t as R}from"./assistant-feature-flag-store-BojuHxUH.js";import{t as z}from"./misc-BBsGq1IU.js";import{t as B}from"./use-active-assistant-id-JLsAfn3e.js";import{t as V}from"./detail-card-Br_T-73R.js";import{t as H}from"./environment-store-DxX3xxt2.js";import{n as U}from"./assistant-status-panel-ZdWgKADH.js";var W=p(`flame`,[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]),ce=p(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),G=e(a(),1),K=d();function le({memoryEnabled:e}){let t=B(),n=l(),{data:r}=u({...j({path:{assistant_id:t}}),staleTime:3e4}),a=e=>{k(n,{path:{assistant_id:t}},t=>t&&{...t,status:e?`running`:`not_running`})},o=N({onSuccess:()=>a(!0)}),s=P({onSuccess:()=>a(!1)}),c=async e=>{try{e?(await o.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker started.`)):(await s.mutateAsync({path:{assistant_id:t}}),y.success(`Background worker stopped.`))}catch(e){i(e,{context:`settings-memory-worker-toggle`}),y.error(`Failed to update background worker.`)}};if(!r)return null;let d=o.isPending||s.isPending;return(0,K.jsxs)(`div`,{className:`flex flex-row items-start justify-between gap-4 border-t border-[var(--border-subtle)] pt-4`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[(0,K.jsx)(`h3`,{className:`text-body-medium-default text-[var(--content-emphasised)]`,children:`Background worker`}),(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:`Run memory consolidation in a dedicated background process. It starts automatically; stop it to pause background memory processing until the next restart.`})]}),(0,K.jsx)(v,{checked:r.status===`running`,onChange:e=>void c(e),"aria-label":`Enable background memory worker`,disabled:!e||d})]})}function ue(){let{healthz:e}=U(),t=B(),n=l(),r=e?.capabilities?.memoryOptOut===!0,{data:a}=u({...M({path:{assistant_id:t}}),staleTime:3e4,enabled:r}),o=A({onSuccess:e=>{F(n,{path:{assistant_id:t}},e)}}),s=a?.memory?.enabled!==!1,c=async e=>{try{await o.mutateAsync({path:{assistant_id:t},body:{memory:{enabled:e}}}),y.success(e?`Memory enabled.`:`Memory disabled.`)}catch(e){i(e,{context:`settings-memory-toggle`}),y.error(`Failed to update memory setting.`)}};return r?(0,K.jsx)(V,{title:`Memory`,subtitle:`Let your assistant remember information from past conversations. Turning this off also pauses memory consolidation.`,accessory:(0,K.jsx)(v,{checked:s,onChange:e=>void c(e),"aria-label":`Enable memory`,disabled:o.isPending}),compactAccessory:!0,children:(0,K.jsx)(le,{memoryEnabled:s})}):null}function de(){let e=l(),[t,n]=(0,G.useState)(!1),[r,i]=(0,G.useState)(!1),a=O(),s=B(),{data:c,isLoading:d}=u({...I({path:{id:s}}),enabled:a}),{data:f,isLoading:p}=u({...L({query:{hosting:`all`}}),enabled:a}),m=d||p,h=f?.results??[];return(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(fe,{assistant:c??null,loading:m}),(0,K.jsx)(pe,{assistants:h,activeAssistantId:s,loading:m}),(0,K.jsxs)(V,{title:`Hatch New Assistant`,subtitle:`Create a new assistant instance.`,children:[(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Provision a new assistant. This may take a moment.`}),(0,K.jsx)(o,{variant:`outlined`,leftIcon:t?(0,K.jsx)(g,{className:`animate-spin`}):void 0,onClick:()=>i(!0),disabled:t,className:`shrink-0`,children:`Hatch`})]}),(0,K.jsx)(b,{open:r,title:`Hatch New Assistant`,message:`Are you sure you want to create a new assistant? This will provision new infrastructure.`,confirmLabel:`Hatch`,onConfirm:async()=>{i(!1),n(!0);try{let t=await ie(void 0,`create`);if(t.ok){if(C())try{let e=await re();e.ok&&await S(e.data,w.getState().currentOrganizationId??void 0)}catch{}y.success(t.status===201?`New assistant hatched successfully.`:`Returned your existing assistant — no new one was created.`),e.invalidateQueries({queryKey:[{_id:`assistantsRetrieve`}]}),e.invalidateQueries({queryKey:L({query:{hosting:`all`}}).queryKey})}else{let e=typeof t.error?.detail==`string`?t.error.detail:`Failed to hatch assistant.`;y.error(e)}}catch{y.error(`Failed to hatch assistant.`)}finally{n(!1)}},onCancel:()=>i(!1)})]})]})}function fe({assistant:e,loading:t}){return t?(0,K.jsx)(V,{title:`Assistant Info`,children:(0,K.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,K.jsx)(g,{className:`h-4 w-4 animate-spin`}),`Loading assistant info...`]})}):e?(0,K.jsx)(V,{title:`Assistant Info`,subtitle:`Current assistant details.`,children:(0,K.jsxs)(`div`,{className:`grid grid-cols-[140px_minmax(0,1fr)] gap-y-3`,children:[(0,K.jsx)(q,{children:`Name`}),(0,K.jsx)(J,{children:e.name??`Unnamed`}),(0,K.jsx)(q,{children:`Status`}),(0,K.jsx)(`div`,{children:(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status})}),(0,K.jsx)(q,{children:`Assistant ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id}),e.machine_id&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Machine ID`}),(0,K.jsx)(`span`,{className:`break-all font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.machine_id})]}),(0,K.jsx)(q,{children:`Created`}),(0,K.jsx)(J,{children:new Date(e.created).toLocaleDateString()}),(0,K.jsx)(q,{children:`Last Modified`}),(0,K.jsx)(J,{children:new Date(e.modified).toLocaleDateString()}),e.current_release_version&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(q,{children:`Version`}),(0,K.jsx)(J,{children:e.current_release_version})]})]})}):(0,K.jsx)(V,{title:`Assistant Info`,children:(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No assistant found. Hatch an assistant to get started.`})})}function pe({assistants:e,activeAssistantId:t,loading:n}){return n||e.length===0?null:(0,K.jsx)(V,{title:`All Assistants`,subtitle:`${e.length} assistant${e.length===1?``:`s`} found.`,children:(0,K.jsx)(`div`,{className:`max-h-[300px] space-y-2 overflow-y-auto`,children:e.map(e=>{let n=e.id===t;return(0,K.jsx)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border px-4 py-3 ${n?`border-[var(--border-focus)] bg-[var(--surface-lift)]`:`border-[var(--border-base)] bg-[var(--surface-default)]`}`,children:(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:e.name||`Unnamed`}),(0,K.jsx)(_,{tone:e.status===`active`?`positive`:`neutral`,children:e.status}),n&&(0,K.jsx)(_,{tone:`warning`,children:`Current`})]}),(0,K.jsx)(`span`,{className:`font-mono text-body-small-default text-[var(--content-tertiary)]`,children:e.id})]})},e.id)})})})}function q({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:e})}function J({children:e}){return(0,K.jsx)(`span`,{className:`text-body-medium-lighter text-[var(--content-default)]`,children:e})}function me(){let e=H.use.emailRootDomain(),t=H.use.isNonProduction(),n=H.use.setEnvironment();return(0,K.jsx)(V,{title:`Environment`,subtitle:`Environment configuration overrides for this session.`,children:(0,K.jsxs)(`div`,{className:`space-y-2`,children:[(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:t,onChange:e=>n({isNonProduction:e}),"aria-label":`Non-Production is ${t?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Non-Production`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Indicates a non-production environment. Enables dev-only UI surfaces and diagnostics.`})]})]}),(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(_,{tone:`neutral`,children:e})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:`Email Root Domain`}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:`Root domain used for assistant email addresses (e.g. vellum.me).`})]})]})]})})}async function he(){let{data:e,response:t}=await T.get({url:`/v1/feature-flags/`,throwOnError:!1});return t?.ok?e?.flags??[]:[]}var Y={client:`warning`,assistant:`positive`};function ge(){let e=B(),{data:t}=u({queryKey:[`feature-flag-definitions`],queryFn:he,enabled:O(),staleTime:300*1e3}),n=(0,G.useMemo)(()=>{let e=new Map;if(!t)return e;for(let n of t)n.type===`string`&&n.values?.length&&e.set(n.key,n.values);return e},[t]),[r,i]=(0,G.useState)(``),a=D(),o=R(),s=(0,G.useMemo)(()=>{let e=[];for(let t of oe){let r=ae(t.key);if(typeof t.defaultEnabled==`boolean`){let n=a[r],i=o[r],s=t.scope===`both`?n===!0||i===!0:t.scope===`assistant`?i:n;if(typeof s!=`boolean`)continue;e.push({kind:`boolean`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:s,defaultValue:t.defaultEnabled})}else if(typeof t.defaultEnabled==`string`){let i=a.stringFlags?.[r],s=o.stringFlags?.[r],c=t.scope===`assistant`?s??t.defaultEnabled:i??t.defaultEnabled;e.push({kind:`string`,storeKey:r,scope:t.scope,label:t.label,description:t.description,value:c,defaultValue:t.defaultEnabled,values:n.get(t.key)??t.values})}}return e.sort((e,t)=>e.label.localeCompare(t.label,void 0,{sensitivity:`base`}))},[a,o,n]),c=(0,G.useMemo)(()=>{if(!r.trim())return s;let e=r.trim().toLowerCase();return s.filter(t=>t.label.toLowerCase().includes(e)||t.description.toLowerCase().includes(e)||t.storeKey.toLowerCase().includes(e)||t.scope.includes(e)||t.scope===`both`&&(`client`.includes(e)||`assistant`.includes(e)))},[s,r]);return(0,K.jsx)(V,{title:`Feature Flags`,subtitle:`Active feature flags evaluated for the current session.`,children:(0,K.jsxs)(`div`,{className:`space-y-4`,children:[(0,K.jsxs)(`div`,{className:`relative`,children:[(0,K.jsx)(te,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--content-tertiary)]`}),(0,K.jsx)(`input`,{type:`text`,placeholder:`Search flags...`,value:r,onChange:e=>i(e.target.value),className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-default)] py-2 pl-9 pr-3 text-body-medium-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:border-[var(--border-focus)] focus:outline-none`})]}),c.length===0&&(0,K.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No matching flags.`}),c.length>0&&(0,K.jsx)(`div`,{className:`max-h-[500px] space-y-2 overflow-y-auto`,children:c.map(t=>(0,K.jsx)(Z,{flag:t,assistantId:e},t.storeKey))})]})})}function X({scope:e}){return e===`both`?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(_,{tone:Y.client,children:`client`}),(0,K.jsx)(_,{tone:Y.assistant,children:`assistant`})]}):(0,K.jsx)(_,{tone:Y[e],children:e})}function _e({flag:e,assistantId:t}){let n=D.use.setFlag(),r=R.use.setFlag();return(0,K.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0 pt-0.5`,children:(0,K.jsx)(v,{checked:e.value,onChange:i=>{E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t)},"aria-label":`${e.label} is ${e.value?`on`:`off`}`})}),(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue?`On`:`Off`})]})]})]})}function ve({flag:e,assistantId:t}){let n=D.use.setStringFlag(),r=R.use.setStringFlag(),[i,a]=(0,G.useState)(e.value);(0,G.useEffect)(()=>{a(e.value)},[e.value]);let o=i=>{i!==e.value&&(E(e.scope,`client`)&&n(e.storeKey,i),E(e.scope,`assistant`)&&r(e.storeKey,i,t))},s=i!==e.value,c=e.values&&e.values.length>0?e.values:null,l=s&&c!=null&&!c.includes(i),u=()=>{l||o(i)},d=e=>{e.key===`Enter`&&e.currentTarget.blur()},p=c!=null&&c.includes(e.value);return(0,K.jsx)(`div`,{className:`flex items-start gap-3 py-3`,children:(0,K.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1.5`,children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:e.label}),(0,K.jsx)(X,{scope:e.scope})]}),(0,K.jsx)(`span`,{className:`block text-body-small-default text-[var(--content-tertiary)]`,children:e.description}),p?(0,K.jsx)(x,{value:e.value,onChange:e=>{a(e),o(e)},options:c.map(e=>({value:e,label:e})),className:`w-48`,"aria-label":`${e.label} value`}):(0,K.jsxs)(`div`,{className:`space-y-1`,children:[(0,K.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.target.value),onBlur:u,onKeyDown:d,className:f(`w-full rounded-lg border bg-[var(--surface-default)] px-3 py-1.5 text-body-small-default text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] focus:outline-none`,l?`border-[var(--system-negative-strong)]`:`border-[var(--border-base)] focus:border-[var(--border-focus)]`),placeholder:e.defaultValue||`Enter value...`}),l&&(0,K.jsxs)(`span`,{className:`block text-body-small-default text-[var(--system-negative-strong)]`,children:[`Expected one of: `,c.join(`, `)]})]}),(0,K.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,K.jsx)(`span`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:`Default:`}),(0,K.jsx)(_,{tone:`neutral`,children:e.defaultValue||`(empty)`})]})]})})}function Z({flag:e,assistantId:t}){return e.kind===`string`?(0,K.jsx)(ve,{flag:e,assistantId:t}):(0,K.jsx)(_e,{flag:e,assistantId:t})}function ye(){let e=(0,G.useCallback)(()=>{t(Error(`[Dev Settings] Test error event`)),y.success(`Sentry error event sent.`)},[]),i=(0,G.useCallback)(()=>{r(`[Dev Settings] Test warning event`,`warning`),y.success(`Sentry warning event sent.`)},[]),a=(0,G.useCallback)(()=>{r(`[Dev Settings] Test info event`,`info`),y.success(`Sentry info event sent.`)},[]),o=(0,G.useCallback)(()=>{r(`[Dev Settings] Test fatal event`,`fatal`),y.success(`Sentry fatal event sent.`)},[]),s=(0,G.useCallback)(()=>{n({name:`[Dev Settings] Test transaction`,op:`test.transaction`,forceTransaction:!0}).end(),y.success(`Sentry performance transaction sent.`)},[]);return(0,K.jsx)(V,{title:`Sentry Testing`,subtitle:`Fire test events to verify Sentry integration is working.`,children:(0,K.jsxs)(`div`,{className:`space-y-3`,children:[(0,K.jsx)(Q,{icon:(0,K.jsx)(W,{className:`h-4 w-4 text-[var(--system-negative-strong)]`}),label:`Fatal Event`,description:`Send a fatal-level event to Sentry.`,onClick:o}),(0,K.jsx)(Q,{icon:(0,K.jsx)(h,{className:`h-4 w-4 text-[var(--system-negative-default)]`}),label:`Error Event`,description:`Capture a test Error exception.`,onClick:e}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ne,{className:`h-4 w-4 text-[var(--system-warning-default)]`}),label:`Warning Event`,description:`Send a warning-level message.`,onClick:i}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ee,{className:`h-4 w-4 text-[var(--content-tertiary)]`}),label:`Info Event`,description:`Send an info-level message.`,onClick:a}),(0,K.jsx)(Q,{icon:(0,K.jsx)(ce,{className:`h-4 w-4 text-[var(--system-positive-default)]`}),label:`Performance Transaction`,description:`Start and end a test transaction span.`,onClick:s})]})})}function Q({icon:e,label:t,description:n,onClick:r}){return(0,K.jsxs)(`div`,{className:`flex items-center justify-between gap-4 rounded-lg border border-[var(--border-base)] px-4 py-3`,children:[(0,K.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,K.jsx)(`div`,{className:`shrink-0`,children:e}),(0,K.jsxs)(`div`,{className:`min-w-0`,children:[(0,K.jsx)(`p`,{className:`text-body-medium-default text-[var(--content-default)]`,children:t}),(0,K.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,children:n})]})]}),(0,K.jsxs)(o,{variant:`outlined`,size:`compact`,onClick:r,children:[(0,K.jsx)(m,{className:`h-4 w-4`}),`Send`]})]})}var $=[{id:`feature-flags`,label:`Feature Flags`},{id:`lifecycle`,label:`Assistant Lifecycle`},{id:`sentry`,label:`Sentry Testing`},{id:`memory`,label:`Memory`}];function be(){let[e,t]=s(),n=R.use.settingsDeveloperNav(),r=R.use.hasHydrated(),i=(0,G.useMemo)(()=>{let t=e.get(`tab`);return $.find(e=>e.id===t)?.id??`feature-flags`},[e]);if(r&&!n)return(0,K.jsx)(c,{replace:!0,to:se.settings.general});let a=n=>{let r=new URLSearchParams(e.toString());n===`feature-flags`?r.delete(`tab`):r.set(`tab`,n),t(r,{replace:!0})};return(0,K.jsxs)(`div`,{"data-slot":`developer-page`,className:`flex min-h-0 flex-1 flex-col`,children:[(0,K.jsx)(`div`,{className:`flex shrink-0 items-center border-b border-[var(--border-base)]`,children:(0,K.jsx)(`div`,{role:`tablist`,"aria-label":`Developer sections`,className:`flex items-center gap-1`,children:$.map(e=>{let t=e.id===i;return(0,K.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t,"aria-controls":`developer-tab-panel-${e.id}`,id:`developer-tab-${e.id}`,onClick:()=>a(e.id),className:z(`relative -mb-px cursor-pointer border-b-2 px-4 py-2 text-body-medium-default transition-colors`,t?`border-[var(--system-positive-strong)] text-[var(--system-positive-strong)]`:`border-transparent text-[var(--content-tertiary)] hover:text-[var(--content-default)] dark:text-[var(--content-disabled)] dark:hover:text-[var(--content-default)]`),children:e.label},e.id)})})}),(0,K.jsxs)(`div`,{id:`developer-tab-panel-${i}`,role:`tabpanel`,"aria-labelledby":`developer-tab-${i}`,className:`flex min-h-0 flex-1 flex-col pt-6`,children:[i===`feature-flags`&&(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(ge,{}),(0,K.jsx)(me,{})]}),i===`lifecycle`&&(0,K.jsx)(de,{}),i===`sentry`&&(0,K.jsx)(ye,{}),i===`memory`&&(0,K.jsx)(`div`,{className:`space-y-4`,children:(0,K.jsx)(ue,{})})]})]})}export{be as DeveloperPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{A as n,M as r,j as i}from"./button-Dy5001j6.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";var o=e(t(),1),s=a();function c(e){let t=e+`CollectionProvider`,[a,c]=i(t),[l,u]=a(t,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:t,children:n}=e,r=o.useRef(null),i=o.useRef(new Map).current;return(0,s.jsx)(l,{scope:t,itemMap:i,collectionRef:r,children:n})};d.displayName=t;let f=e+`CollectionSlot`,p=n(f),m=o.forwardRef((e,t)=>{let{scope:n,children:i}=e;return(0,s.jsx)(p,{ref:r(t,u(f,n).collectionRef),children:i})});m.displayName=f;let h=e+`CollectionItemSlot`,g=`data-radix-collection-item`,_=n(h),v=o.forwardRef((e,t)=>{let{scope:n,children:i,...a}=e,c=o.useRef(null),l=r(t,c),d=u(h,n);return o.useEffect(()=>(d.itemMap.set(c,{ref:c,...a}),()=>void d.itemMap.delete(c))),(0,s.jsx)(_,{[g]:``,ref:l,children:i})});v.displayName=h;function y(t){let n=u(e+`CollectionConsumer`,t);return o.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${g}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:d,Slot:m,ItemSlot:v},y,c]}var l=o.createContext(void 0);function u(e){let t=o.useContext(l);return e||t||`ltr`}export{c as n,u as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{B as n,V as r,z as i}from"./button-BwFudwM5.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";var o=e(t(),1),s=a();function c(e){let t=e+`CollectionProvider`,[a,c]=n(t),[l,u]=a(t,{collectionRef:{current:null},itemMap:new Map}),d=e=>{let{scope:t,children:n}=e,r=o.useRef(null),i=o.useRef(new Map).current;return(0,s.jsx)(l,{scope:t,itemMap:i,collectionRef:r,children:n})};d.displayName=t;let f=e+`CollectionSlot`,p=i(f),m=o.forwardRef((e,t)=>{let{scope:n,children:i}=e;return(0,s.jsx)(p,{ref:r(t,u(f,n).collectionRef),children:i})});m.displayName=f;let h=e+`CollectionItemSlot`,g=`data-radix-collection-item`,_=i(h),v=o.forwardRef((e,t)=>{let{scope:n,children:i,...a}=e,c=o.useRef(null),l=r(t,c),d=u(h,n);return o.useEffect(()=>(d.itemMap.set(c,{ref:c,...a}),()=>void d.itemMap.delete(c))),(0,s.jsx)(_,{[g]:``,ref:l,children:i})});v.displayName=h;function y(t){let n=u(e+`CollectionConsumer`,t);return o.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${g}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:d,Slot:m,ItemSlot:v},y,c]}var l=o.createContext(void 0);function u(e){let t=o.useContext(l);return e||t||`ltr`}export{c as n,u as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{M as n,N as r,O as i,j as a,m as o,o as s}from"./button-Dy5001j6.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{n as l,t as u}from"./dist-EanpjdWC.js";var d=e(t(),1);function f(e){let t=d.useRef({value:e,previous:e});return d.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function p(e,[t,n]){return Math.min(n,Math.max(t,e))}var m=c(),h=[`PageUp`,`PageDown`],g=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],_={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},v=`Slider`,[y,b,x]=l(v),[S,C]=a(v,[x]),[w,T]=S(v),E=d.forwardRef((e,t)=>{let{name:n,min:i=0,max:a=100,step:o=1,orientation:c=`horizontal`,disabled:l=!1,minStepsBetweenThumbs:u=0,defaultValue:f=[i],value:_,onValueChange:v=()=>{},onValueCommit:b=()=>{},inverted:x=!1,form:S,...C}=e,T=d.useRef(new Set),E=d.useRef(0),D=d.useRef(!1),O=c===`horizontal`?k:A,[j=[],M]=s({prop:_,defaultProp:f,onChange:e=>{[...T.current][E.current]?.focus({preventScroll:!0,focusVisible:D.current}),D.current=!1,v(e)}}),N=d.useRef(j);function P(e){L(e,Y(j,e))}function F(e){L(e,E.current)}function I(){let e=N.current[E.current];j[E.current]!==e&&b(j)}function L(e,t,{commit:n}={commit:!1}){let r=ee(o),s=p(te(Math.round((e-i)/o)*o+i,r),[i,a]);M((e=[])=>{let r=K(e,s,t);if(Q(r,u*o)){E.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&b(r),t?r:e}else return e})}return(0,m.jsx)(w,{scope:e.__scopeSlider,name:n,disabled:l,min:i,max:a,valueIndexToChangeRef:E,thumbs:T.current,values:j,orientation:c,form:S,children:(0,m.jsx)(y.Provider,{scope:e.__scopeSlider,children:(0,m.jsx)(y.Slot,{scope:e.__scopeSlider,children:(0,m.jsx)(O,{"aria-disabled":l,"data-disabled":l?``:void 0,...C,ref:t,onPointerDown:r(C.onPointerDown,()=>{l||(N.current=j,D.current=!1)}),min:i,max:a,inverted:x,onSlideStart:l?void 0:P,onSlideMove:l?void 0:F,onSlideEnd:l?void 0:I,onHomeKeyDown:()=>{l||(D.current=!0,L(i,0,{commit:!0}))},onEndKeyDown:()=>{l||(D.current=!0,L(a,j.length-1,{commit:!0}))},onStepKeyDown:({event:e,direction:t})=>{if(!l){D.current=!0;let n=h.includes(e.key)||e.shiftKey&&g.includes(e.key)?10:1,r=E.current,i=j[r];L(i+o*n*t,r,{commit:!0})}}})})})})});E.displayName=v;var[D,O]=S(v,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),k=d.forwardRef((e,t)=>{let{min:r,max:i,dir:a,inverted:o,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:f,...p}=e,[h,g]=d.useState(null),v=n(t,g),y=d.useRef(void 0),b=u(a),x=b===`ltr`,S=x&&!o||!x&&o;function C(e){let t=y.current||h.getBoundingClientRect(),n=$([0,t.width],S?[r,i]:[i,r]);return y.current=t,n(e-t.left)}return(0,m.jsx)(D,{scope:e.__scopeSlider,startEdge:S?`left`:`right`,endEdge:S?`right`:`left`,direction:S?1:-1,size:`width`,children:(0,m.jsx)(j,{dir:b,"data-orientation":`horizontal`,...p,ref:v,style:{...p.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=C(e.clientX);s?.(t)},onSlideMove:e=>{let t=C(e.clientX);c?.(t)},onSlideEnd:()=>{y.current=void 0,l?.()},onStepKeyDown:e=>{let t=_[S?`from-left`:`from-right`].includes(e.key);f?.({event:e,direction:t?-1:1})}})})}),A=d.forwardRef((e,t)=>{let{min:r,max:i,inverted:a,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,f=d.useRef(null),p=n(t,f),h=d.useRef(void 0),g=!a;function v(e){let t=h.current||f.current.getBoundingClientRect(),n=$([0,t.height],g?[i,r]:[r,i]);return h.current=t,n(e-t.top)}return(0,m.jsx)(D,{scope:e.__scopeSlider,startEdge:g?`bottom`:`top`,endEdge:g?`top`:`bottom`,size:`height`,direction:g?1:-1,children:(0,m.jsx)(j,{"data-orientation":`vertical`,...u,ref:p,style:{...u.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=v(e.clientY);o?.(t)},onSlideMove:e=>{let t=v(e.clientY);s?.(t)},onSlideEnd:()=>{h.current=void 0,c?.()},onStepKeyDown:e=>{let t=_[g?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),j=d.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:a,onSlideMove:o,onSlideEnd:s,onHomeKeyDown:c,onEndKeyDown:l,onStepKeyDown:u,...d}=e,f=T(v,n);return(0,m.jsx)(i.span,{...d,ref:t,onKeyDown:r(e.onKeyDown,e=>{e.key===`Home`?(c(e),e.preventDefault()):e.key===`End`?(l(e),e.preventDefault()):h.concat(g).includes(e.key)&&(u(e),e.preventDefault())}),onPointerDown:r(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),f.thumbs.has(t)?t.focus({preventScroll:!0,focusVisible:!1}):a(e)}),onPointerMove:r(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&o(e)}),onPointerUp:r(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),s(e))})})}),M=`SliderTrack`,N=d.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,a=T(M,n);return(0,m.jsx)(i.span,{"data-disabled":a.disabled?``:void 0,"data-orientation":a.orientation,...r,ref:t})});N.displayName=M;var P=`SliderRange`,F=d.forwardRef((e,t)=>{let{__scopeSlider:r,...a}=e,o=T(P,r),s=O(P,r),c=n(t,d.useRef(null)),l=o.values.length,u=o.values.map(e=>q(e,o.min,o.max)),f=l>1?Math.min(...u):0,p=100-Math.max(...u);return(0,m.jsx)(i.span,{"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,...a,ref:c,style:{...e.style,[s.startEdge]:f+`%`,[s.endEdge]:p+`%`}})});F.displayName=P;var I=`SliderThumb`,[L,R]=S(I),z=`SliderThumbProvider`;function B(e){let{__scopeSlider:t,name:n,children:r,internal_do_not_use_render:i}=e,a=T(z,t),s=b(t),[c,l]=d.useState(null),u=d.useMemo(()=>c?s().findIndex(e=>e.ref.current===c):-1,[s,c]),f=o(c),p=c?!!a.form||!!c.closest(`form`):!0,h=a.values[u],g=n??(a.name?a.name+(a.values.length>1?`[]`:``):void 0),_=h===void 0?0:q(h,a.min,a.max);d.useEffect(()=>{if(c)return a.thumbs.add(c),()=>{a.thumbs.delete(c)}},[c,a.thumbs]);let v={value:h,name:g,form:a.form,isFormControl:p,index:u,thumb:c,onThumbChange:l,percent:_,size:f};return(0,m.jsx)(L,{scope:t,...v,children:ne(i)?i(v):r})}B.displayName=z;var V=`SliderThumbTrigger`,H=d.forwardRef((e,t)=>{let{__scopeSlider:a,...o}=e,s=T(V,a),c=O(V,a),{index:l,value:u,percent:d,size:f,onThumbChange:p}=R(V,a),h=n(t,p),g=J(l,s.values.length),_=f?.[c.size],v=_?X(_,d,c.direction):0;return(0,m.jsx)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[c.startEdge]:`calc(${d}% + ${v}px)`},children:(0,m.jsx)(y.ItemSlot,{scope:a,children:(0,m.jsx)(i.span,{role:`slider`,"aria-label":e[`aria-label`]||g,"aria-valuemin":s.min,"aria-valuenow":u,"aria-valuemax":s.max,"aria-orientation":s.orientation,"data-orientation":s.orientation,"data-disabled":s.disabled?``:void 0,tabIndex:s.disabled?void 0:0,...o,ref:h,style:u===void 0?{display:`none`}:e.style,onFocus:r(e.onFocus,()=>{s.valueIndexToChangeRef.current=l})})})})});H.displayName=V;var U=d.forwardRef((e,t)=>{let{__scopeSlider:n,name:r,...i}=e;return(0,m.jsx)(B,{__scopeSlider:n,name:r,internal_do_not_use_render:({index:e,isFormControl:r})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(H,{...i,ref:t,__scopeSlider:n}),r?(0,m.jsx)(G,{__scopeSlider:n},e):null]})})});U.displayName=I;var W=`SliderBubbleInput`,G=d.forwardRef(({__scopeSlider:e,...t},r)=>{let{value:a,name:o,form:s}=R(W,e),c=d.useRef(null),l=n(c,r),u=f(a);return d.useEffect(()=>{let e=c.current;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(u!==a&&n){let t=new Event(`input`,{bubbles:!0});n.call(e,a),e.dispatchEvent(t)}},[u,a]),(0,m.jsx)(i.input,{style:{display:`none`},name:o,form:s,...t,ref:l,defaultValue:a})});G.displayName=W;function K(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function q(e,t,n){return p(100/(n-t)*(e-t),[0,100])}function J(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function Y(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function X(e,t,n){let r=e/2;return(r-$([0,50],[0,r])(t)*n)*n}function Z(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q(e,t){if(t>0){let n=Z(e);return Math.min(...n)>=t}return!0}function $(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ee(e){if(!Number.isFinite(e))return 0;let t=e.toString();if(t.includes(`e`)){let[e,n]=t.split(`e`),r=e.split(`.`)[1]||``,i=Number(n);return Math.max(0,r.length-i)}let n=t.split(`.`)[1];return n?n.length:0}function te(e,t){let n=10**t;return Math.round(e*n)/n}function ne(e){return typeof e==`function`}export{f as a,N as i,F as n,U as r,E as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{B as n,H as r,L as i,V as a,m as o,o as s}from"./button-BwFudwM5.js";import{t as c}from"./jsx-runtime-D3ZM-ToX.js";import{n as l,t as u}from"./dist-B5IUaBWa.js";var d=e(t(),1);function f(e){let t=d.useRef({value:e,previous:e});return d.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function p(e,[t,n]){return Math.min(n,Math.max(t,e))}var m=c(),h=[`PageUp`,`PageDown`],g=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],_={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},v=`Slider`,[y,b,x]=l(v),[S,C]=n(v,[x]),[w,T]=S(v),E=d.forwardRef((e,t)=>{let{name:n,min:i=0,max:a=100,step:o=1,orientation:c=`horizontal`,disabled:l=!1,minStepsBetweenThumbs:u=0,defaultValue:f=[i],value:_,onValueChange:v=()=>{},onValueCommit:b=()=>{},inverted:x=!1,form:S,...C}=e,T=d.useRef(new Set),E=d.useRef(0),D=d.useRef(!1),O=c===`horizontal`?k:A,[j=[],M]=s({prop:_,defaultProp:f,onChange:e=>{[...T.current][E.current]?.focus({preventScroll:!0,focusVisible:D.current}),D.current=!1,v(e)}}),N=d.useRef(j);function P(e){L(e,Y(j,e))}function F(e){L(e,E.current)}function I(){let e=N.current[E.current];j[E.current]!==e&&b(j)}function L(e,t,{commit:n}={commit:!1}){let r=ee(o),s=p(te(Math.round((e-i)/o)*o+i,r),[i,a]);M((e=[])=>{let r=K(e,s,t);if(Q(r,u*o)){E.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&b(r),t?r:e}else return e})}return(0,m.jsx)(w,{scope:e.__scopeSlider,name:n,disabled:l,min:i,max:a,valueIndexToChangeRef:E,thumbs:T.current,values:j,orientation:c,form:S,children:(0,m.jsx)(y.Provider,{scope:e.__scopeSlider,children:(0,m.jsx)(y.Slot,{scope:e.__scopeSlider,children:(0,m.jsx)(O,{"aria-disabled":l,"data-disabled":l?``:void 0,...C,ref:t,onPointerDown:r(C.onPointerDown,()=>{l||(N.current=j,D.current=!1)}),min:i,max:a,inverted:x,onSlideStart:l?void 0:P,onSlideMove:l?void 0:F,onSlideEnd:l?void 0:I,onHomeKeyDown:()=>{l||(D.current=!0,L(i,0,{commit:!0}))},onEndKeyDown:()=>{l||(D.current=!0,L(a,j.length-1,{commit:!0}))},onStepKeyDown:({event:e,direction:t})=>{if(!l){D.current=!0;let n=h.includes(e.key)||e.shiftKey&&g.includes(e.key)?10:1,r=E.current,i=j[r];L(i+o*n*t,r,{commit:!0})}}})})})})});E.displayName=v;var[D,O]=S(v,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),k=d.forwardRef((e,t)=>{let{min:n,max:r,dir:i,inverted:o,onSlideStart:s,onSlideMove:c,onSlideEnd:l,onStepKeyDown:f,...p}=e,[h,g]=d.useState(null),v=a(t,g),y=d.useRef(void 0),b=u(i),x=b===`ltr`,S=x&&!o||!x&&o;function C(e){let t=y.current||h.getBoundingClientRect(),i=$([0,t.width],S?[n,r]:[r,n]);return y.current=t,i(e-t.left)}return(0,m.jsx)(D,{scope:e.__scopeSlider,startEdge:S?`left`:`right`,endEdge:S?`right`:`left`,direction:S?1:-1,size:`width`,children:(0,m.jsx)(j,{dir:b,"data-orientation":`horizontal`,...p,ref:v,style:{...p.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=C(e.clientX);s?.(t)},onSlideMove:e=>{let t=C(e.clientX);c?.(t)},onSlideEnd:()=>{y.current=void 0,l?.()},onStepKeyDown:e=>{let t=_[S?`from-left`:`from-right`].includes(e.key);f?.({event:e,direction:t?-1:1})}})})}),A=d.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,f=d.useRef(null),p=a(t,f),h=d.useRef(void 0),g=!i;function v(e){let t=h.current||f.current.getBoundingClientRect(),i=$([0,t.height],g?[r,n]:[n,r]);return h.current=t,i(e-t.top)}return(0,m.jsx)(D,{scope:e.__scopeSlider,startEdge:g?`bottom`:`top`,endEdge:g?`top`:`bottom`,size:`height`,direction:g?1:-1,children:(0,m.jsx)(j,{"data-orientation":`vertical`,...u,ref:p,style:{...u.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=v(e.clientY);o?.(t)},onSlideMove:e=>{let t=v(e.clientY);s?.(t)},onSlideEnd:()=>{h.current=void 0,c?.()},onStepKeyDown:e=>{let t=_[g?`from-bottom`:`from-top`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),j=d.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:a,onSlideMove:o,onSlideEnd:s,onHomeKeyDown:c,onEndKeyDown:l,onStepKeyDown:u,...d}=e,f=T(v,n);return(0,m.jsx)(i.span,{...d,ref:t,onKeyDown:r(e.onKeyDown,e=>{e.key===`Home`?(c(e),e.preventDefault()):e.key===`End`?(l(e),e.preventDefault()):h.concat(g).includes(e.key)&&(u(e),e.preventDefault())}),onPointerDown:r(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),f.thumbs.has(t)?t.focus({preventScroll:!0,focusVisible:!1}):a(e)}),onPointerMove:r(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&o(e)}),onPointerUp:r(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),s(e))})})}),M=`SliderTrack`,N=d.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,a=T(M,n);return(0,m.jsx)(i.span,{"data-disabled":a.disabled?``:void 0,"data-orientation":a.orientation,...r,ref:t})});N.displayName=M;var P=`SliderRange`,F=d.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,o=T(P,n),s=O(P,n),c=a(t,d.useRef(null)),l=o.values.length,u=o.values.map(e=>q(e,o.min,o.max)),f=l>1?Math.min(...u):0,p=100-Math.max(...u);return(0,m.jsx)(i.span,{"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,...r,ref:c,style:{...e.style,[s.startEdge]:f+`%`,[s.endEdge]:p+`%`}})});F.displayName=P;var I=`SliderThumb`,[L,R]=S(I),z=`SliderThumbProvider`;function B(e){let{__scopeSlider:t,name:n,children:r,internal_do_not_use_render:i}=e,a=T(z,t),s=b(t),[c,l]=d.useState(null),u=d.useMemo(()=>c?s().findIndex(e=>e.ref.current===c):-1,[s,c]),f=o(c),p=c?!!a.form||!!c.closest(`form`):!0,h=a.values[u],g=n??(a.name?a.name+(a.values.length>1?`[]`:``):void 0),_=h===void 0?0:q(h,a.min,a.max);d.useEffect(()=>{if(c)return a.thumbs.add(c),()=>{a.thumbs.delete(c)}},[c,a.thumbs]);let v={value:h,name:g,form:a.form,isFormControl:p,index:u,thumb:c,onThumbChange:l,percent:_,size:f};return(0,m.jsx)(L,{scope:t,...v,children:ne(i)?i(v):r})}B.displayName=z;var V=`SliderThumbTrigger`,H=d.forwardRef((e,t)=>{let{__scopeSlider:n,...o}=e,s=T(V,n),c=O(V,n),{index:l,value:u,percent:d,size:f,onThumbChange:p}=R(V,n),h=a(t,p),g=J(l,s.values.length),_=f?.[c.size],v=_?X(_,d,c.direction):0;return(0,m.jsx)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[c.startEdge]:`calc(${d}% + ${v}px)`},children:(0,m.jsx)(y.ItemSlot,{scope:n,children:(0,m.jsx)(i.span,{role:`slider`,"aria-label":e[`aria-label`]||g,"aria-valuemin":s.min,"aria-valuenow":u,"aria-valuemax":s.max,"aria-orientation":s.orientation,"data-orientation":s.orientation,"data-disabled":s.disabled?``:void 0,tabIndex:s.disabled?void 0:0,...o,ref:h,style:u===void 0?{display:`none`}:e.style,onFocus:r(e.onFocus,()=>{s.valueIndexToChangeRef.current=l})})})})});H.displayName=V;var U=d.forwardRef((e,t)=>{let{__scopeSlider:n,name:r,...i}=e;return(0,m.jsx)(B,{__scopeSlider:n,name:r,internal_do_not_use_render:({index:e,isFormControl:r})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(H,{...i,ref:t,__scopeSlider:n}),r?(0,m.jsx)(G,{__scopeSlider:n},e):null]})})});U.displayName=I;var W=`SliderBubbleInput`,G=d.forwardRef(({__scopeSlider:e,...t},n)=>{let{value:r,name:o,form:s}=R(W,e),c=d.useRef(null),l=a(c,n),u=f(r);return d.useEffect(()=>{let e=c.current;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(u!==r&&n){let t=new Event(`input`,{bubbles:!0});n.call(e,r),e.dispatchEvent(t)}},[u,r]),(0,m.jsx)(i.input,{style:{display:`none`},name:o,form:s,...t,ref:l,defaultValue:r})});G.displayName=W;function K(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function q(e,t,n){return p(100/(n-t)*(e-t),[0,100])}function J(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function Y(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function X(e,t,n){let r=e/2;return(r-$([0,50],[0,r])(t)*n)*n}function Z(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Q(e,t){if(t>0){let n=Z(e);return Math.min(...n)>=t}return!0}function $(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function ee(e){if(!Number.isFinite(e))return 0;let t=e.toString();if(t.includes(`e`)){let[e,n]=t.split(`e`),r=e.split(`.`)[1]||``,i=Number(n);return Math.max(0,r.length-i)}let n=t.split(`.`)[1];return n?n.length:0}function te(e,t){let n=10**t;return Math.round(e*n)/n}function ne(e){return typeof e==`function`}export{f as a,N as i,F as n,U as r,E as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{B as n,F as r,H as i,L as a,N as o,P as s,V as c,c as l,o as u,s as d,z as f}from"./button-BwFudwM5.js";import{t as p}from"./jsx-runtime-D3ZM-ToX.js";import{i as m,n as h,r as g,t as _}from"./Combination-TPH8qx8I.js";var v=e(t(),1),y=p(),b=`Dialog`,[x,S]=n(b),[C,w]=x(b),T=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:s=!0}=e,c=v.useRef(null),l=v.useRef(null),[d,f]=u({prop:r,defaultProp:i??!1,onChange:a,caller:b});return(0,y.jsx)(C,{scope:t,triggerRef:c,contentRef:l,contentId:o(),titleId:o(),descriptionId:o(),open:d,onOpenChange:f,onOpenToggle:v.useCallback(()=>f(e=>!e),[f]),modal:s,children:n})};T.displayName=b;var E=`DialogTrigger`,D=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=w(E,n),s=c(t,o.triggerRef);return(0,y.jsx)(a.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":o.open,"aria-controls":o.open?o.contentId:void 0,"data-state":q(o.open),...r,ref:s,onClick:i(e.onClick,o.onOpenToggle)})});D.displayName=E;var O=`DialogPortal`,[k,A]=x(O,{forceMount:void 0}),j=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=w(O,t);return(0,y.jsx)(k,{scope:t,forceMount:n,children:v.Children.map(r,e=>(0,y.jsx)(d,{present:n||a.open,children:(0,y.jsx)(l,{asChild:!0,container:i,children:e})}))})};j.displayName=O;var M=`DialogOverlay`,N=v.forwardRef((e,t)=>{let n=A(M,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=w(M,e.__scopeDialog);return a.modal?(0,y.jsx)(d,{present:r||a.open,children:(0,y.jsx)(F,{...i,ref:t})}):null});N.displayName=M;var P=f(`DialogOverlay.RemoveScroll`),F=v.forwardRef((e,t)=>{let{__scopeDialog:n,...i}=e,o=w(M,n),s=c(t,r());return(0,y.jsx)(_,{as:P,allowPinchZoom:!0,shards:[o.contentRef],children:(0,y.jsx)(a.div,{"data-state":q(o.open),...i,ref:s,style:{pointerEvents:`auto`,...i.style}})})}),I=`DialogContent`,L=v.forwardRef((e,t)=>{let n=A(I,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=w(I,e.__scopeDialog);return(0,y.jsx)(d,{present:r||a.open,children:a.modal?(0,y.jsx)(R,{...i,ref:t}):(0,y.jsx)(z,{...i,ref:t})})});L.displayName=I;var R=v.forwardRef((e,t)=>{let n=w(I,e.__scopeDialog),r=v.useRef(null),a=c(t,n.contentRef,r);return v.useEffect(()=>{let e=r.current;if(e)return h(e)},[]),(0,y.jsx)(B,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:i(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:i(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:i(e.onFocusOutside,e=>e.preventDefault())})}),z=v.forwardRef((e,t)=>{let n=w(I,e.__scopeDialog),r=v.useRef(!1),i=v.useRef(!1);return(0,y.jsx)(B,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),B=v.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,c=w(I,n);return m(),(0,y.jsx)(y.Fragment,{children:(0,y.jsx)(g,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,y.jsx)(s,{role:`dialog`,id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":q(c.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>c.onOpenChange(!1)})})})}),V=`DialogTitle`,H=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=w(V,n);return(0,y.jsx)(a.h2,{id:i.titleId,...r,ref:t})});H.displayName=V;var U=`DialogDescription`,W=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=w(U,n);return(0,y.jsx)(a.p,{id:i.descriptionId,...r,ref:t})});W.displayName=U;var G=`DialogClose`,K=v.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=w(G,n);return(0,y.jsx)(a.button,{type:`button`,...r,ref:t,onClick:i(e.onClick,()=>o.onOpenChange(!1))})});K.displayName=G;function q(e){return e?`open`:`closed`}export{N as a,D as c,W as i,K as n,j as o,L as r,H as s,T as t};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tiptap-document-editor-BvGaiGeN.js","assets/chunk-jRWAZmH_.js","assets/button-Dy5001j6.js","assets/cn-CJf7MmLX.js","assets/bundle-mjs-BQxDdOEo.js","assets/jsx-runtime-D3ZM-ToX.js","assets/react-BFJW0bSv.js","assets/src-Da9g8qsW.js","assets/dist-C68qFSny.js","assets/dist-EanpjdWC.js","assets/checkbox-PU47Djxg.js","assets/createLucideIcon-CAM1RhH8.js","assets/check-Dt2rQhdg.js","assets/typography-DEI9Ra9z.js","assets/menu-wESJw6y3.js","assets/Combination-CWTYp834.js","assets/chevron-right-CANAtgGn.js","assets/popover-B-3isZCV.js","assets/toast-BtFgiPe3.js","assets/circle-alert-DQMH8VJH.js","assets/circle-check-DvrCdroD.js","assets/info-DkhVkzmK.js","assets/x-D4O9yIS7.js","assets/panel-item-CJh95P_q.js","assets/dist-BDdp8zqz.js","assets/card-DRIctGVs.js","assets/confirm-dialog-j9o2h3xs.js","assets/loader-circle-DWWXcfTQ.js","assets/triangle-alert-D6bAGtMw.js","assets/modal-xr_vw1ZO.js","assets/dropdown-B3FHWc_n.js","assets/chevron-down-BNidRDh1.js","assets/input-tXUFa7Eo.js","assets/notice-Dslxs3H6.js","assets/progress-bar-3GUUAhXi.js","assets/tag-gOOX7fbA.js","assets/toggle-BEPV0rQM.js","assets/src-CfUWwwYf.css","assets/code-D6SOwRrI.js","assets/link-DOobzBVg.js","assets/message-square-text-CN_v46So.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./chunk-jRWAZmH_.js";import{At as t,B as n,F as r,Ft as i,P as a,W as o,X as s,Y as c,a as l,c as u,ct as d,it as f,mt as p,st as m,ut as h,z as g}from"./capture-error-CqtAGHQu.js";import{t as _}from"./react-BFJW0bSv.js";import{t as v}from"./button-Dy5001j6.js";import{t as y}from"./preload-helper-Cv2QeVDK.js";import{n as ee}from"./QueryClientProvider-CMu7CkQU.js";import{t as b}from"./jsx-runtime-D3ZM-ToX.js";import{t as x}from"./typography-DEI9Ra9z.js";import{t as S}from"./createLucideIcon-CAM1RhH8.js";import{t as te}from"./check-Dt2rQhdg.js";import{t as C}from"./circle-check-big-DtV6IJuh.js";import"./src-Da9g8qsW.js";import{t as ne}from"./download-Cnb8zZrK.js";import{t as re}from"./file-text-CwGsMgaa.js";import{t as w}from"./loader-circle-DWWXcfTQ.js";import{t as T}from"./message-square-text-CN_v46So.js";import{t as E}from"./message-square-CHUvAEY9.js";import{t as D}from"./send-Bdmy_GSE.js";import{t as O}from"./trash-2-DfVRfykB.js";import{t as k}from"./user-DHC7OLPE.js";import{t as A}from"./x-D4O9yIS7.js";import{t as j}from"./tag-gOOX7fbA.js";import{n as M,r as N,t as P}from"./api-errors-BRGPPSWw.js";import{Tt as F,_t as I,gt as L,vt as R,yt as z}from"./sdk.gen-CjtCuSlS.js";import{n as ie,t as ae}from"./use-local-file-info-D2-ycwyJ.js";function B(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function oe(e){return`${B(e)}${e.projectId}/envelope/`}function V(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function se(e,t,n){return t||`${oe(e)}?${V(e,n)}`}function ce(e,t){let n=r(e);if(!n)return``;let i=`${B(n)}embed/error-page/`,o=`dsn=${a(n)}`;for(let e in t)if(e!==`dsn`&&e!==`onClose`)if(e===`user`){let e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;return`${i}?${o}`}var H=i,U=0;function le(){return U>0}function ue(){U++,setTimeout(()=>{U--})}function W(e,t={}){function n(e){return typeof e==`function`}if(!n(e))return e;try{let t=e.__sentry_wrapped__;if(t)return typeof t==`function`?t:e;if(m(e))return e}catch{return e}let r=function(...n){try{let r=n.map(e=>W(e,t));return e.apply(this,r)}catch(e){throw ue(),o(r=>{r.addEventProcessor(e=>(t.mechanism&&(s(e,void 0,void 0),c(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),l(e)}),e}};try{for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch{}d(r,e),f(e,`__sentry_wrapped__`,r);try{Object.getOwnPropertyDescriptor(r,`name`).configurable&&Object.defineProperty(r,`name`,{get(){return e.name}})}catch{}return r}function de(){let e=h(),{referrer:t}=H.document||{},{userAgent:n}=H.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}var G=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__;function K(e={}){let r=H.document,i=r?.head||r?.body;if(!i){G&&t.error(`[showReportDialog] Global document not defined`);return}let a=n(),o=g()?.getDsn();if(!o){G&&t.error(`[showReportDialog] DSN not configured`);return}let s={...e,user:{...a.getUser(),...e.user},eventId:e.eventId||u()},c=H.document.createElement(`script`);c.async=!0,c.crossOrigin=`anonymous`,c.src=ce(o,s);let{onLoad:l,onClose:d}=s;if(l&&(c.onload=l),d){let e=t=>{if(t.data===`__sentry_reportdialog_closed__`)try{d()}finally{H.removeEventListener(`message`,e)}};H.addEventListener(`message`,e)}i.appendChild(c)}var q=e(_());function fe(e){let t=e.match(/^([^.]+)/);return t!==null&&parseInt(t[0])>=17}function pe(e,t){let n=new WeakSet;function r(e,t){if(!n.has(e)){if(e.cause)return n.add(e),r(e.cause,t);e.cause=t}}r(e,t)}function me(e,{componentStack:t},n){if(fe(q.version)&&p(e)&&t){let n=Error(e.message);n.name=`React ErrorBoundary ${e.name}`,n.stack=t,pe(e,n)}return o(r=>(r.setContext(`react`,{componentStack:t}),l(e,n)))}var he=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,J={componentStack:null,error:null,eventId:null},Y=class extends q.Component{constructor(e){super(e),this.state=J,this._openFallbackReportDialog=!0;let t=g();t&&e.showDialog&&(this._openFallbackReportDialog=!1,this._cleanupHook=t.on(`afterSendEvent`,t=>{!t.type&&this._lastEventId&&t.event_id===this._lastEventId&&K({...e.dialogOptions,eventId:this._lastEventId})}))}componentDidCatch(e,t){let{componentStack:n}=t,{beforeCapture:r,onError:i,showDialog:a,dialogOptions:s}=this.props;o(o=>{r&&r(o,e,n);let c=me(e,t,{mechanism:{handled:this.props.handled==null?!!this.props.fallback:this.props.handled,type:`auto.function.react.error_boundary`}});i&&i(e,n,c),a&&(this._lastEventId=c,this._openFallbackReportDialog&&K({...s,eventId:c})),this.setState({error:e,componentStack:n,eventId:c})})}componentDidMount(){let{onMount:e}=this.props;e&&e()}componentWillUnmount(){let{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&(this.state===J?r(null,null,null):r(e,t,n)),this._cleanupHook&&=(this._cleanupHook(),void 0)}resetErrorBoundary(){let{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(J)}render(){let{fallback:e,children:n}=this.props,r=this.state;if(r.componentStack===null)return typeof n==`function`?n():n;let i=typeof e==`function`?q.createElement(e,{error:r.error,componentStack:r.componentStack,resetError:()=>this.resetErrorBoundary(),eventId:r.eventId}):e;return q.isValidElement(i)?i:(e&&he&&t.warn(`fallback did not produce a valid ReactElement`),null)}},X=S(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),ge=S(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]);function _e(e){if(!(e instanceof Error))return!1;if(e.name===`ChunkLoadError`)return!0;let t=e.message;return t.includes(`Failed to fetch dynamically imported module`)||t.includes(`Importing a module script failed`)||t.includes(`error loading dynamically imported module`)||t.includes(`Loading chunk`)}var Z=b();function ve({children:e,fallback:t=null,errorFallback:n}){return(0,Z.jsx)(Y,{beforeCapture:(e,t)=>{e.setTag(`boundary`,_e(t)?`lazy-component`:`component-render`)},fallback:n??(0,Z.jsx)(`div`,{role:`alert`,className:`p-3 text-body-small-default text-[var(--content-tertiary)]`,children:`This section couldn't load. Reload the page to try again.`}),children:(0,Z.jsx)(q.Suspense,{fallback:t,children:e})})}async function Q(e,t,n){let{data:r,error:i,response:a}=await R({path:{assistant_id:e,id:t},query:n?{status:n}:{},throwOnError:!1});if(M(a,i,`Failed to fetch comments.`),!a.ok){let e=N(i,a,`Failed to fetch comments.`);throw new P(a.status,e)}return r?.comments??[]}async function $(e,t,n){let{data:r,error:i,response:a}=await z({path:{assistant_id:e,id:t},body:n,throwOnError:!1});if(M(a,i,`Failed to create comment.`),!a.ok||!r){let e=N(i,a,`Failed to create comment.`);throw new P(a.status,e)}return r}async function ye(e,t,n,r){let i=r===`resolved`?`resolve`:`reopen`,{data:a,error:o,response:s}=await I({path:{assistant_id:e,id:t,commentId:n},body:{status:r},throwOnError:!1});if(M(s,o,`Failed to ${i} comment.`),!s.ok||!a){let e=N(o,s,`Failed to ${i} comment.`);throw new P(s.status,e)}return a}async function be(e,t,n){return ye(e,t,n,`resolved`)}async function xe(e,t,n){return ye(e,t,n,`open`)}async function Se(e,t,n){let{error:r,response:i}=await L({path:{assistant_id:e,id:t,commentId:n},throwOnError:!1});if(M(i,r,`Failed to delete comment.`),!i.ok){let e=N(r,i,`Failed to delete comment.`);throw new P(i.status,e)}return{success:!0}}function Ce(e){return e.trim().split(/\s+/).filter(e=>e.length>0).length}async function we(e,t){await F({path:{assistant_id:e.assistantId},body:{surfaceId:e.surfaceId,conversationId:e.conversationId,title:e.title,content:t,wordCount:Ce(t)},throwOnError:!0})}function Te({onSubmit:e,placeholder:t=`Add a comment…`,autoFocus:n=!1}){let[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(!1),s=(0,q.useRef)(null),c=(0,q.useCallback)(async t=>{t.preventDefault();let n=r.trim();if(!(!n||a)){o(!0);try{await e(n),i(``),s.current?.focus()}finally{o(!1)}}},[r,a,e]),l=(0,q.useCallback)(e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),c(e))},[c]),u=r.trim().length>0&&!a;return(0,Z.jsxs)(`form`,{onSubmit:c,className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`textarea`,{ref:s,value:r,onChange:e=>i(e.target.value),onKeyDown:l,placeholder:t,autoFocus:n,disabled:a,rows:2,className:`block w-full resize-none rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] px-3 py-2 text-body-medium-lighter text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 ease-out focus-visible:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsx)(v,{type:`submit`,variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),disabled:!u,children:a?`Sending…`:`Send`})})]})}function Ee(e){let t=new Date(e),n=new Date,r=n.getTime()-t.getTime(),i=Math.floor(r/6e4);if(i<1)return`just now`;if(i<60)return`${i}m ago`;let a=Math.floor(i/60);if(a<24)return`${a}h ago`;let o=Math.floor(a/24);return o<7?`${o}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:n.getFullYear()===t.getFullYear()?void 0:`numeric`})}function De(e){return e===`assistant`?`Assistant`:`You`}function Oe({comment:e,onCommentSelect:t}){let n=e.anchorText!=null;return(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full`,style:{backgroundColor:e.author===`assistant`?`var(--primary-second-hover)`:`var(--surface-active)`},"aria-hidden":`true`,children:e.author===`assistant`?(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--primary-base)]`,children:`V`}):(0,Z.jsx)(k,{size:12,style:{color:`var(--content-secondary)`}})}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(x,{variant:`body-small-emphasised`,className:`text-[var(--content-emphasised)]`,children:De(e.author)}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:Ee(e.createdAt)})]}),n?(0,Z.jsx)(`button`,{type:`button`,className:`mt-1 cursor-pointer border-none bg-transparent p-0`,onClick:()=>t?.(e),title:`Jump to highlighted text`,children:(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(ge,{}),children:(0,Z.jsx)(`span`,{className:`max-w-[200px] truncate`,children:e.anchorText})})}):null,(0,Z.jsx)(x,{variant:`body-small-default`,as:`p`,className:`mt-1 text-[var(--content-default)] whitespace-pre-wrap break-words`,children:e.content})]})]})}function ke({comment:e,replies:t,onResolve:n,onReopen:r,onDelete:i,onReply:a,onCommentSelect:o}){let[s,c]=(0,q.useState)(!1),l=e.status===`resolved`,u=(0,q.useCallback)(async t=>{await a(e.id,t),c(!1)},[e.id,a]);return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-[var(--border-base)] p-3`,style:{backgroundColor:l?`var(--surface-base)`:`var(--surface-overlay)`},children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[l?(0,Z.jsx)(j,{tone:`positive`,leftIcon:(0,Z.jsx)(C,{}),children:`Resolved`}):(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(X,{}),children:`Open`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[l?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(X,{}),onClick:()=>void r(e.id),children:`Reopen`}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(C,{}),onClick:()=>void n(e.id),children:`Resolve`}),(0,Z.jsx)(v,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Z.jsx)(O,{}),"aria-label":`Delete comment`,onClick:()=>void i(e.id)})]})]}),(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o}),t.length>0?(0,Z.jsx)(`div`,{className:`ml-8 flex flex-col gap-3 border-l-2 border-[var(--border-base)] pl-3`,children:t.map(e=>(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o},e.id))}):null,s?(0,Z.jsx)(`div`,{className:`ml-8`,children:(0,Z.jsx)(Te,{onSubmit:u,placeholder:`Write a reply…`,autoFocus:!0})}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(E,{}),onClick:()=>c(!0),className:`self-start`,children:`Reply`})]})}function Ae({surfaceId:e,assistantId:t,conversationId:n,onClose:r,onCommentSelect:i,onSubmitFeedback:a,handleRef:o}){let[s,c]=(0,q.useState)([]),[l,u]=(0,q.useState)(!0),d=(0,q.useRef)(!0),f=(0,q.useCallback)(async n=>{try{let r=await Q(t,e);!n?.aborted&&d.current&&c(r)}finally{!n?.aborted&&d.current&&u(!1)}},[t,e]);(0,q.useEffect)(()=>{d.current=!0;let e=new AbortController;return f(e.signal),()=>{e.abort(),d.current=!1}},[f]),(0,q.useImperativeHandle)(o,()=>({refreshComments:f}),[f]);let p=(0,q.useMemo)(()=>s.filter(e=>e.parentCommentId===null),[s]),m=(0,q.useMemo)(()=>{let e=new Map;for(let t of s)if(t.parentCommentId!==null){let n=e.get(t.parentCommentId);n?n.push(t):e.set(t.parentCommentId,[t])}return e},[s]),h=(0,q.useCallback)(async r=>{await $(t,e,{content:r,conversationId:n}),await f()},[t,e,n,f]),g=(0,q.useCallback)(async n=>{await be(t,e,n),await f()},[t,e,f]),_=(0,q.useCallback)(async n=>{await xe(t,e,n),await f()},[t,e,f]),y=(0,q.useCallback)(async n=>{await Se(t,e,n),await f()},[t,e,f]),ee=(0,q.useCallback)(async(r,i)=>{await $(t,e,{content:i,conversationId:n,parentCommentId:r}),await f()},[t,e,n,f]),b=p.length,S=(0,q.useMemo)(()=>s.some(e=>e.status===`open`),[s]);return(0,Z.jsxs)(`div`,{className:`flex h-full w-80 flex-col border-l border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[(0,Z.jsx)(T,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`flex-1 text-[var(--content-emphasised)]`,children:`Comments`}),!l&&b>0?(0,Z.jsx)(j,{tone:`neutral`,children:b}):null,(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),"aria-label":`Close comments panel`,onClick:r})]}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:l?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading comments…`})}):p.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12`,children:[(0,Z.jsx)(T,{size:32,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`No comments yet`})]}):(0,Z.jsx)(`div`,{className:`flex flex-col gap-3`,children:p.map(e=>(0,Z.jsx)(ke,{comment:e,replies:m.get(e.id)??[],onResolve:g,onReopen:_,onDelete:y,onReply:ee,onCommentSelect:i},e.id))})}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-3 border-t border-[var(--border-base)] p-4`,children:[(0,Z.jsx)(Te,{onSubmit:h,placeholder:`Add a comment…`}),a&&S?(0,Z.jsx)(v,{variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),onClick:a,className:`w-full`,children:`Submit Feedback`}):null]})]})}var je=(0,q.lazy)(()=>y(()=>import(`./tiptap-document-editor-BvGaiGeN.js`).then(e=>({default:e.TiptapDocumentEditor})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])));function Me({assistantId:e,documentName:t,content:n,onClose:r,handleRef:i,surfaceId:a,conversationId:o,workspacePath:s=null,onExport:c,onSubmitFeedback:l}){let u={source:`document`,assistantId:e,surfaceId:a,conversationId:o,title:t},d=ee(),[f,p]=(0,q.useState)(!1),[m,h]=(0,q.useState)(null),[g,_]=(0,q.useState)(!1),[y,b]=(0,q.useState)([]),[S,C]=(0,q.useState)(null),[E,D]=(0,q.useState)(`idle`),O=(0,q.useRef)(null),k=(0,q.useRef)(null),j=(0,q.useRef)(null),M=(0,q.useRef)(u),N=(0,q.useRef)(s),P=(0,q.useRef)(null);(0,q.useLayoutEffect)(()=>{M.current=u,N.current=s});let F=(0,q.useCallback)(()=>{let t=P.current;if(t===null)return;P.current=null;let n=M.current,r=N.current;we(n,t).then(()=>{D(`saved`),j.current=setTimeout(()=>D(`idle`),2e3),r!==null&&(d.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]}),d.invalidateQueries({queryKey:ae(r,e)}),d.invalidateQueries({queryKey:ie(r,e)}))},()=>D(`idle`))},[e,d]),I=(0,q.useCallback)(e=>{k.current&&clearTimeout(k.current),j.current&&clearTimeout(j.current),P.current=e,D(`saving`),k.current=setTimeout(()=>{k.current=null,F()},1e3)},[F]),L=(0,q.useRef)(F);(0,q.useLayoutEffect)(()=>{L.current=F}),(0,q.useEffect)(()=>()=>{j.current&&=(clearTimeout(j.current),null),k.current&&(clearTimeout(k.current),k.current=null,L.current())},[]),(0,q.useEffect)(()=>{f||_(!1)},[f]),(0,q.useEffect)(()=>{b([]),C(null),h(null)},[a,s]);let R=(0,q.useCallback)(e=>{e.anchorStart!=null&&e.anchorEnd!=null&&C({start:e.anchorStart,end:e.anchorEnd})},[]),z=(0,q.useCallback)(e=>{b(e.filter(e=>e.status===`open`&&e.anchorStart!=null&&e.anchorEnd!=null).map(e=>({commentId:e.id,anchorStart:e.anchorStart,anchorEnd:e.anchorEnd})))},[]),B=(0,q.useCallback)(async()=>{await O.current?.refreshComments();try{z(await Q(e,a))}catch{}},[e,a,z]);(0,q.useImperativeHandle)(i,()=>({refreshComments:B}),[B]);let oe=(0,q.useCallback)(async t=>{if(m){_(!0);try{await $(e,a,{content:t,conversationId:o,anchorStart:m.start,anchorEnd:m.end,anchorText:m.text}),h(null),p(!0),await B()}finally{_(!1)}}},[e,a,o,m,B]),V=(0,q.useCallback)(()=>{p(e=>!e)},[]);return(0,q.useEffect)(()=>{if(!f)return;let t=!1;return(async()=>{try{let n=await Q(e,a);t||z(n)}catch{}})(),()=>{t=!0}},[f,e,a,z]),(0,Z.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-2`,children:[(0,Z.jsx)(re,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-emphasised)]`,title:s??void 0,children:t}),E===`idle`?null:(0,Z.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--content-tertiary)]`,children:[E===`saving`?(0,Z.jsx)(w,{size:12,className:`animate-spin`}):(0,Z.jsx)(te,{size:12}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:E===`saving`?`Saving…`:`Saved`})]}),c?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(ne,{}),onClick:c,children:`Export`}):null,(0,Z.jsx)(v,{variant:f?`outlined`:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(T,{}),onClick:V,"aria-label":f?`Close comments`:`Open comments`,"aria-pressed":f,children:`Comments`}),(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),onClick:r,"aria-label":`Close document`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`relative min-w-0 flex-1`,children:(0,Z.jsx)(ve,{fallback:(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(w,{className:`size-5 animate-spin text-fg-tertiary`})}),children:(0,Z.jsx)(je,{content:n,onContentChange:I,onTextSelect:e=>{if(!e){h(null);return}h({start:e.start,end:e.end,text:e.text,rect:{top:e.rect.top,left:e.rect.left,bottom:e.rect.bottom,right:e.rect.right,width:e.rect.width,height:e.rect.height}})},commentAnchors:y,highlightRange:S,onCommentSubmit:e=>void oe(e),commentSubmitting:g,className:`h-full`})})}),f?(0,Z.jsx)(Ae,{surfaceId:a,assistantId:e,conversationId:o,onClose:()=>p(!1),onCommentSelect:R,onSubmitFeedback:l,handleRef:O}):null]})]})}export{Y as a,de as c,se as d,X as i,le as l,ve as n,G as o,_e as r,H as s,Me as t,W as u};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tiptap-document-editor-LwU6S_hn.js","assets/chunk-jRWAZmH_.js","assets/button-BwFudwM5.js","assets/cn-CJf7MmLX.js","assets/bundle-mjs-BQxDdOEo.js","assets/jsx-runtime-D3ZM-ToX.js","assets/react-BFJW0bSv.js","assets/src-CwGlaCIx.js","assets/dist-BrrL0-_M.js","assets/dist-B5IUaBWa.js","assets/checkbox-fzrjTRTI.js","assets/createLucideIcon-CAM1RhH8.js","assets/check-Dt2rQhdg.js","assets/typography-DEI9Ra9z.js","assets/menu-Cfi4A3sw.js","assets/Combination-TPH8qx8I.js","assets/chevron-right-CANAtgGn.js","assets/popover-CBYgK7Wt.js","assets/chevron-down-BNidRDh1.js","assets/toast-BHjG1kP8.js","assets/circle-alert-DQMH8VJH.js","assets/circle-check-DvrCdroD.js","assets/info-DkhVkzmK.js","assets/x-D4O9yIS7.js","assets/panel-item-5YQ3jbso.js","assets/dist-DWcXIgDR.js","assets/card-DRIctGVs.js","assets/confirm-dialog-B7WBNDbT.js","assets/loader-circle-DWWXcfTQ.js","assets/triangle-alert-D6bAGtMw.js","assets/modal-DagTZ8xj.js","assets/dropdown-CJVkL1Yp.js","assets/input-CgGeKtja.js","assets/notice-Dslxs3H6.js","assets/progress-bar-3GUUAhXi.js","assets/tag-G0ELn_cq.js","assets/toggle-BEPV0rQM.js","assets/src-CfUWwwYf.css","assets/code-D6SOwRrI.js","assets/link-DOobzBVg.js","assets/message-square-text-CN_v46So.js"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./chunk-jRWAZmH_.js";import{At as t,B as n,F as r,Ft as i,P as a,W as o,X as s,Y as c,a as l,c as u,ct as d,it as f,mt as p,st as m,ut as h,z as g}from"./capture-error-CqtAGHQu.js";import{t as _}from"./react-BFJW0bSv.js";import{t as v}from"./button-BwFudwM5.js";import{t as y}from"./preload-helper-Cv2QeVDK.js";import{n as ee}from"./QueryClientProvider-CMu7CkQU.js";import{t as b}from"./jsx-runtime-D3ZM-ToX.js";import{t as x}from"./typography-DEI9Ra9z.js";import{t as S}from"./createLucideIcon-CAM1RhH8.js";import{t as te}from"./check-Dt2rQhdg.js";import{t as C}from"./circle-check-big-DtV6IJuh.js";import"./src-CwGlaCIx.js";import{t as ne}from"./download-Cnb8zZrK.js";import{t as re}from"./file-text-CwGsMgaa.js";import{t as w}from"./loader-circle-DWWXcfTQ.js";import{t as T}from"./message-square-text-CN_v46So.js";import{t as E}from"./message-square-CHUvAEY9.js";import{t as D}from"./send-Bdmy_GSE.js";import{t as O}from"./trash-2-DfVRfykB.js";import{t as k}from"./user-DHC7OLPE.js";import{t as A}from"./x-D4O9yIS7.js";import{t as j}from"./tag-G0ELn_cq.js";import{n as M,r as N,t as P}from"./api-errors-BRGPPSWw.js";import{Tt as F,_t as I,gt as L,vt as R,yt as z}from"./sdk.gen-CjtCuSlS.js";import{n as ie,t as ae}from"./use-local-file-info-D2-ycwyJ.js";function B(e){let t=e.protocol?`${e.protocol}:`:``,n=e.port?`:${e.port}`:``;return`${t}//${e.host}${n}${e.path?`/${e.path}`:``}/api/`}function oe(e){return`${B(e)}${e.projectId}/envelope/`}function V(e,t){let n={sentry_version:`7`};return e.publicKey&&(n.sentry_key=e.publicKey),t&&(n.sentry_client=`${t.name}/${t.version}`),new URLSearchParams(n).toString()}function se(e,t,n){return t||`${oe(e)}?${V(e,n)}`}function ce(e,t){let n=r(e);if(!n)return``;let i=`${B(n)}embed/error-page/`,o=`dsn=${a(n)}`;for(let e in t)if(e!==`dsn`&&e!==`onClose`)if(e===`user`){let e=t.user;if(!e)continue;e.name&&(o+=`&name=${encodeURIComponent(e.name)}`),e.email&&(o+=`&email=${encodeURIComponent(e.email)}`)}else o+=`&${encodeURIComponent(e)}=${encodeURIComponent(t[e])}`;return`${i}?${o}`}var H=i,U=0;function le(){return U>0}function ue(){U++,setTimeout(()=>{U--})}function W(e,t={}){function n(e){return typeof e==`function`}if(!n(e))return e;try{let t=e.__sentry_wrapped__;if(t)return typeof t==`function`?t:e;if(m(e))return e}catch{return e}let r=function(...n){try{let r=n.map(e=>W(e,t));return e.apply(this,r)}catch(e){throw ue(),o(r=>{r.addEventProcessor(e=>(t.mechanism&&(s(e,void 0,void 0),c(e,t.mechanism)),e.extra={...e.extra,arguments:n},e)),l(e)}),e}};try{for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])}catch{}d(r,e),f(e,`__sentry_wrapped__`,r);try{Object.getOwnPropertyDescriptor(r,`name`).configurable&&Object.defineProperty(r,`name`,{get(){return e.name}})}catch{}return r}function de(){let e=h(),{referrer:t}=H.document||{},{userAgent:n}=H.navigator||{};return{url:e,headers:{...t&&{Referer:t},...n&&{"User-Agent":n}}}}var G=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__;function K(e={}){let r=H.document,i=r?.head||r?.body;if(!i){G&&t.error(`[showReportDialog] Global document not defined`);return}let a=n(),o=g()?.getDsn();if(!o){G&&t.error(`[showReportDialog] DSN not configured`);return}let s={...e,user:{...a.getUser(),...e.user},eventId:e.eventId||u()},c=H.document.createElement(`script`);c.async=!0,c.crossOrigin=`anonymous`,c.src=ce(o,s);let{onLoad:l,onClose:d}=s;if(l&&(c.onload=l),d){let e=t=>{if(t.data===`__sentry_reportdialog_closed__`)try{d()}finally{H.removeEventListener(`message`,e)}};H.addEventListener(`message`,e)}i.appendChild(c)}var q=e(_());function fe(e){let t=e.match(/^([^.]+)/);return t!==null&&parseInt(t[0])>=17}function pe(e,t){let n=new WeakSet;function r(e,t){if(!n.has(e)){if(e.cause)return n.add(e),r(e.cause,t);e.cause=t}}r(e,t)}function me(e,{componentStack:t},n){if(fe(q.version)&&p(e)&&t){let n=Error(e.message);n.name=`React ErrorBoundary ${e.name}`,n.stack=t,pe(e,n)}return o(r=>(r.setContext(`react`,{componentStack:t}),l(e,n)))}var he=typeof __SENTRY_DEBUG__>`u`||__SENTRY_DEBUG__,J={componentStack:null,error:null,eventId:null},Y=class extends q.Component{constructor(e){super(e),this.state=J,this._openFallbackReportDialog=!0;let t=g();t&&e.showDialog&&(this._openFallbackReportDialog=!1,this._cleanupHook=t.on(`afterSendEvent`,t=>{!t.type&&this._lastEventId&&t.event_id===this._lastEventId&&K({...e.dialogOptions,eventId:this._lastEventId})}))}componentDidCatch(e,t){let{componentStack:n}=t,{beforeCapture:r,onError:i,showDialog:a,dialogOptions:s}=this.props;o(o=>{r&&r(o,e,n);let c=me(e,t,{mechanism:{handled:this.props.handled==null?!!this.props.fallback:this.props.handled,type:`auto.function.react.error_boundary`}});i&&i(e,n,c),a&&(this._lastEventId=c,this._openFallbackReportDialog&&K({...s,eventId:c})),this.setState({error:e,componentStack:n,eventId:c})})}componentDidMount(){let{onMount:e}=this.props;e&&e()}componentWillUnmount(){let{error:e,componentStack:t,eventId:n}=this.state,{onUnmount:r}=this.props;r&&(this.state===J?r(null,null,null):r(e,t,n)),this._cleanupHook&&=(this._cleanupHook(),void 0)}resetErrorBoundary(){let{onReset:e}=this.props,{error:t,componentStack:n,eventId:r}=this.state;e&&e(t,n,r),this.setState(J)}render(){let{fallback:e,children:n}=this.props,r=this.state;if(r.componentStack===null)return typeof n==`function`?n():n;let i=typeof e==`function`?q.createElement(e,{error:r.error,componentStack:r.componentStack,resetError:()=>this.resetErrorBoundary(),eventId:r.eventId}):e;return q.isValidElement(i)?i:(e&&he&&t.warn(`fallback did not produce a valid ReactElement`),null)}},X=S(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),ge=S(`quote`,[[`path`,{d:`M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`rib7q0`}],[`path`,{d:`M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z`,key:`1ymkrd`}]]);function _e(e){if(!(e instanceof Error))return!1;if(e.name===`ChunkLoadError`)return!0;let t=e.message;return t.includes(`Failed to fetch dynamically imported module`)||t.includes(`Importing a module script failed`)||t.includes(`error loading dynamically imported module`)||t.includes(`Loading chunk`)}var Z=b();function ve({children:e,fallback:t=null,errorFallback:n}){return(0,Z.jsx)(Y,{beforeCapture:(e,t)=>{e.setTag(`boundary`,_e(t)?`lazy-component`:`component-render`)},fallback:n??(0,Z.jsx)(`div`,{role:`alert`,className:`p-3 text-body-small-default text-[var(--content-tertiary)]`,children:`This section couldn't load. Reload the page to try again.`}),children:(0,Z.jsx)(q.Suspense,{fallback:t,children:e})})}async function Q(e,t,n){let{data:r,error:i,response:a}=await R({path:{assistant_id:e,id:t},query:n?{status:n}:{},throwOnError:!1});if(M(a,i,`Failed to fetch comments.`),!a.ok){let e=N(i,a,`Failed to fetch comments.`);throw new P(a.status,e)}return r?.comments??[]}async function $(e,t,n){let{data:r,error:i,response:a}=await z({path:{assistant_id:e,id:t},body:n,throwOnError:!1});if(M(a,i,`Failed to create comment.`),!a.ok||!r){let e=N(i,a,`Failed to create comment.`);throw new P(a.status,e)}return r}async function ye(e,t,n,r){let i=r===`resolved`?`resolve`:`reopen`,{data:a,error:o,response:s}=await I({path:{assistant_id:e,id:t,commentId:n},body:{status:r},throwOnError:!1});if(M(s,o,`Failed to ${i} comment.`),!s.ok||!a){let e=N(o,s,`Failed to ${i} comment.`);throw new P(s.status,e)}return a}async function be(e,t,n){return ye(e,t,n,`resolved`)}async function xe(e,t,n){return ye(e,t,n,`open`)}async function Se(e,t,n){let{error:r,response:i}=await L({path:{assistant_id:e,id:t,commentId:n},throwOnError:!1});if(M(i,r,`Failed to delete comment.`),!i.ok){let e=N(r,i,`Failed to delete comment.`);throw new P(i.status,e)}return{success:!0}}function Ce(e){return e.trim().split(/\s+/).filter(e=>e.length>0).length}async function we(e,t){await F({path:{assistant_id:e.assistantId},body:{surfaceId:e.surfaceId,conversationId:e.conversationId,title:e.title,content:t,wordCount:Ce(t)},throwOnError:!0})}function Te({onSubmit:e,placeholder:t=`Add a comment…`,autoFocus:n=!1}){let[r,i]=(0,q.useState)(``),[a,o]=(0,q.useState)(!1),s=(0,q.useRef)(null),c=(0,q.useCallback)(async t=>{t.preventDefault();let n=r.trim();if(!(!n||a)){o(!0);try{await e(n),i(``),s.current?.focus()}finally{o(!1)}}},[r,a,e]),l=(0,q.useCallback)(e=>{e.key===`Enter`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),c(e))},[c]),u=r.trim().length>0&&!a;return(0,Z.jsxs)(`form`,{onSubmit:c,className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`textarea`,{ref:s,value:r,onChange:e=>i(e.target.value),onKeyDown:l,placeholder:t,autoFocus:n,disabled:a,rows:2,className:`block w-full resize-none rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] px-3 py-2 text-body-medium-lighter text-[var(--content-default)] placeholder:text-[var(--content-tertiary)] outline-none transition-[border-color] duration-150 ease-out focus-visible:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`}),(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsx)(v,{type:`submit`,variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),disabled:!u,children:a?`Sending…`:`Send`})})]})}function Ee(e){let t=new Date(e),n=new Date,r=n.getTime()-t.getTime(),i=Math.floor(r/6e4);if(i<1)return`just now`;if(i<60)return`${i}m ago`;let a=Math.floor(i/60);if(a<24)return`${a}h ago`;let o=Math.floor(a/24);return o<7?`${o}d ago`:t.toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:n.getFullYear()===t.getFullYear()?void 0:`numeric`})}function De(e){return e===`assistant`?`Assistant`:`You`}function Oe({comment:e,onCommentSelect:t}){let n=e.anchorText!=null;return(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full`,style:{backgroundColor:e.author===`assistant`?`var(--primary-second-hover)`:`var(--surface-active)`},"aria-hidden":`true`,children:e.author===`assistant`?(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--primary-base)]`,children:`V`}):(0,Z.jsx)(k,{size:12,style:{color:`var(--content-secondary)`}})}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(x,{variant:`body-small-emphasised`,className:`text-[var(--content-emphasised)]`,children:De(e.author)}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:Ee(e.createdAt)})]}),n?(0,Z.jsx)(`button`,{type:`button`,className:`mt-1 cursor-pointer border-none bg-transparent p-0`,onClick:()=>t?.(e),title:`Jump to highlighted text`,children:(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(ge,{}),children:(0,Z.jsx)(`span`,{className:`max-w-[200px] truncate`,children:e.anchorText})})}):null,(0,Z.jsx)(x,{variant:`body-small-default`,as:`p`,className:`mt-1 text-[var(--content-default)] whitespace-pre-wrap break-words`,children:e.content})]})]})}function ke({comment:e,replies:t,onResolve:n,onReopen:r,onDelete:i,onReply:a,onCommentSelect:o}){let[s,c]=(0,q.useState)(!1),l=e.status===`resolved`,u=(0,q.useCallback)(async t=>{await a(e.id,t),c(!1)},[e.id,a]);return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-[var(--border-base)] p-3`,style:{backgroundColor:l?`var(--surface-base)`:`var(--surface-overlay)`},children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[l?(0,Z.jsx)(j,{tone:`positive`,leftIcon:(0,Z.jsx)(C,{}),children:`Resolved`}):(0,Z.jsx)(j,{tone:`neutral`,leftIcon:(0,Z.jsx)(X,{}),children:`Open`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[l?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(X,{}),onClick:()=>void r(e.id),children:`Reopen`}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(C,{}),onClick:()=>void n(e.id),children:`Resolve`}),(0,Z.jsx)(v,{variant:`dangerGhost`,size:`compact`,iconOnly:(0,Z.jsx)(O,{}),"aria-label":`Delete comment`,onClick:()=>void i(e.id)})]})]}),(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o}),t.length>0?(0,Z.jsx)(`div`,{className:`ml-8 flex flex-col gap-3 border-l-2 border-[var(--border-base)] pl-3`,children:t.map(e=>(0,Z.jsx)(Oe,{comment:e,onCommentSelect:o},e.id))}):null,s?(0,Z.jsx)(`div`,{className:`ml-8`,children:(0,Z.jsx)(Te,{onSubmit:u,placeholder:`Write a reply…`,autoFocus:!0})}):(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(E,{}),onClick:()=>c(!0),className:`self-start`,children:`Reply`})]})}function Ae({surfaceId:e,assistantId:t,conversationId:n,onClose:r,onCommentSelect:i,onSubmitFeedback:a,handleRef:o}){let[s,c]=(0,q.useState)([]),[l,u]=(0,q.useState)(!0),d=(0,q.useRef)(!0),f=(0,q.useCallback)(async n=>{try{let r=await Q(t,e);!n?.aborted&&d.current&&c(r)}finally{!n?.aborted&&d.current&&u(!1)}},[t,e]);(0,q.useEffect)(()=>{d.current=!0;let e=new AbortController;return f(e.signal),()=>{e.abort(),d.current=!1}},[f]),(0,q.useImperativeHandle)(o,()=>({refreshComments:f}),[f]);let p=(0,q.useMemo)(()=>s.filter(e=>e.parentCommentId===null),[s]),m=(0,q.useMemo)(()=>{let e=new Map;for(let t of s)if(t.parentCommentId!==null){let n=e.get(t.parentCommentId);n?n.push(t):e.set(t.parentCommentId,[t])}return e},[s]),h=(0,q.useCallback)(async r=>{await $(t,e,{content:r,conversationId:n}),await f()},[t,e,n,f]),g=(0,q.useCallback)(async n=>{await be(t,e,n),await f()},[t,e,f]),_=(0,q.useCallback)(async n=>{await xe(t,e,n),await f()},[t,e,f]),y=(0,q.useCallback)(async n=>{await Se(t,e,n),await f()},[t,e,f]),ee=(0,q.useCallback)(async(r,i)=>{await $(t,e,{content:i,conversationId:n,parentCommentId:r}),await f()},[t,e,n,f]),b=p.length,S=(0,q.useMemo)(()=>s.some(e=>e.status===`open`),[s]);return(0,Z.jsxs)(`div`,{className:`flex h-full w-80 flex-col border-l border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-3`,children:[(0,Z.jsx)(T,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`flex-1 text-[var(--content-emphasised)]`,children:`Comments`}),!l&&b>0?(0,Z.jsx)(j,{tone:`neutral`,children:b}):null,(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),"aria-label":`Close comments panel`,onClick:r})]}),(0,Z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:l?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Loading comments…`})}):p.length===0?(0,Z.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 py-12`,children:[(0,Z.jsx)(T,{size:32,style:{color:`var(--content-tertiary)`}}),(0,Z.jsx)(x,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`No comments yet`})]}):(0,Z.jsx)(`div`,{className:`flex flex-col gap-3`,children:p.map(e=>(0,Z.jsx)(ke,{comment:e,replies:m.get(e.id)??[],onResolve:g,onReopen:_,onDelete:y,onReply:ee,onCommentSelect:i},e.id))})}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-3 border-t border-[var(--border-base)] p-4`,children:[(0,Z.jsx)(Te,{onSubmit:h,placeholder:`Add a comment…`}),a&&S?(0,Z.jsx)(v,{variant:`primary`,size:`compact`,leftIcon:(0,Z.jsx)(D,{}),onClick:a,className:`w-full`,children:`Submit Feedback`}):null]})]})}var je=(0,q.lazy)(()=>y(()=>import(`./tiptap-document-editor-LwU6S_hn.js`).then(e=>({default:e.TiptapDocumentEditor})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40])));function Me({assistantId:e,documentName:t,content:n,onClose:r,handleRef:i,surfaceId:a,conversationId:o,workspacePath:s=null,onExport:c,onSubmitFeedback:l}){let u={source:`document`,assistantId:e,surfaceId:a,conversationId:o,title:t},d=ee(),[f,p]=(0,q.useState)(!1),[m,h]=(0,q.useState)(null),[g,_]=(0,q.useState)(!1),[y,b]=(0,q.useState)([]),[S,C]=(0,q.useState)(null),[E,D]=(0,q.useState)(`idle`),O=(0,q.useRef)(null),k=(0,q.useRef)(null),j=(0,q.useRef)(null),M=(0,q.useRef)(u),N=(0,q.useRef)(s),P=(0,q.useRef)(null);(0,q.useLayoutEffect)(()=>{M.current=u,N.current=s});let F=(0,q.useCallback)(()=>{let t=P.current;if(t===null)return;P.current=null;let n=M.current,r=N.current;we(n,t).then(()=>{D(`saved`),j.current=setTimeout(()=>D(`idle`),2e3),r!==null&&(d.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]}),d.invalidateQueries({queryKey:ae(r,e)}),d.invalidateQueries({queryKey:ie(r,e)}))},()=>D(`idle`))},[e,d]),I=(0,q.useCallback)(e=>{k.current&&clearTimeout(k.current),j.current&&clearTimeout(j.current),P.current=e,D(`saving`),k.current=setTimeout(()=>{k.current=null,F()},1e3)},[F]),L=(0,q.useRef)(F);(0,q.useLayoutEffect)(()=>{L.current=F}),(0,q.useEffect)(()=>()=>{j.current&&=(clearTimeout(j.current),null),k.current&&(clearTimeout(k.current),k.current=null,L.current())},[]),(0,q.useEffect)(()=>{f||_(!1)},[f]),(0,q.useEffect)(()=>{b([]),C(null),h(null)},[a,s]);let R=(0,q.useCallback)(e=>{e.anchorStart!=null&&e.anchorEnd!=null&&C({start:e.anchorStart,end:e.anchorEnd})},[]),z=(0,q.useCallback)(e=>{b(e.filter(e=>e.status===`open`&&e.anchorStart!=null&&e.anchorEnd!=null).map(e=>({commentId:e.id,anchorStart:e.anchorStart,anchorEnd:e.anchorEnd})))},[]),B=(0,q.useCallback)(async()=>{await O.current?.refreshComments();try{z(await Q(e,a))}catch{}},[e,a,z]);(0,q.useImperativeHandle)(i,()=>({refreshComments:B}),[B]);let oe=(0,q.useCallback)(async t=>{if(m){_(!0);try{await $(e,a,{content:t,conversationId:o,anchorStart:m.start,anchorEnd:m.end,anchorText:m.text}),h(null),p(!0),await B()}finally{_(!1)}}},[e,a,o,m,B]),V=(0,q.useCallback)(()=>{p(e=>!e)},[]);return(0,q.useEffect)(()=>{if(!f)return;let t=!1;return(async()=>{try{let n=await Q(e,a);t||z(n)}catch{}})(),()=>{t=!0}},[f,e,a,z]),(0,Z.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl border border-[var(--border-base)] bg-[var(--surface-overlay)]`,children:[(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-base)] px-4 py-2`,children:[(0,Z.jsx)(re,{size:16,style:{color:`var(--content-secondary)`}}),(0,Z.jsx)(x,{variant:`title-small`,className:`min-w-0 flex-1 truncate text-[var(--content-emphasised)]`,title:s??void 0,children:t}),E===`idle`?null:(0,Z.jsxs)(`span`,{className:`flex items-center gap-1 text-[var(--content-tertiary)]`,children:[E===`saving`?(0,Z.jsx)(w,{size:12,className:`animate-spin`}):(0,Z.jsx)(te,{size:12}),(0,Z.jsx)(x,{variant:`label-small-default`,className:`text-[var(--content-tertiary)]`,children:E===`saving`?`Saving…`:`Saved`})]}),c?(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(ne,{}),onClick:c,children:`Export`}):null,(0,Z.jsx)(v,{variant:f?`outlined`:`ghost`,size:`compact`,leftIcon:(0,Z.jsx)(T,{}),onClick:V,"aria-label":f?`Close comments`:`Open comments`,"aria-pressed":f,children:`Comments`}),(0,Z.jsx)(v,{variant:`ghost`,size:`compact`,iconOnly:(0,Z.jsx)(A,{}),onClick:r,"aria-label":`Close document`,tooltip:`Close`})]}),(0,Z.jsxs)(`div`,{className:`relative flex min-h-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`relative min-w-0 flex-1`,children:(0,Z.jsx)(ve,{fallback:(0,Z.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Z.jsx)(w,{className:`size-5 animate-spin text-fg-tertiary`})}),children:(0,Z.jsx)(je,{content:n,onContentChange:I,onTextSelect:e=>{if(!e){h(null);return}h({start:e.start,end:e.end,text:e.text,rect:{top:e.rect.top,left:e.rect.left,bottom:e.rect.bottom,right:e.rect.right,width:e.rect.width,height:e.rect.height}})},commentAnchors:y,highlightRange:S,onCommentSubmit:e=>void oe(e),commentSubmitting:g,className:`h-full`})})}),f?(0,Z.jsx)(Ae,{surfaceId:a,assistantId:e,conversationId:o,onClose:()=>p(!1),onCommentSelect:R,onSubmitFeedback:l,handleRef:O}):null]})]})}export{Y as a,de as c,se as d,X as i,le as l,ve as n,G as o,_e as r,H as s,Me as t,W as u};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./document-viewer-container-iB63ww7P.js";import{t as n}from"./react-BFJW0bSv.js";import{f as r,l as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import"./src-Da9g8qsW.js";import{t as c}from"./loader-circle-DWWXcfTQ.js";import{n as l}from"./resolved-assistants-store-C6oDdTxB.js";import{St as u,bt as d,xt as f}from"./sdk.gen-CjtCuSlS.js";import{d as p}from"./routes-DrfnNoYS.js";import{t as m}from"./use-bus-subscription-DiCq1_ki.js";import{i as h}from"./viewer-store-DbIS4l8d.js";import{n as g}from"./use-is-mobile-MmHo-OM6.js";import{r as _,t as v}from"./edit-chat-session-DVzLQLWl.js";import{t as y}from"./use-edge-swipe-back-Dk2xXjh4.js";var b=e(n(),1);function x({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,b.useRef)(n);return(0,b.useLayoutEffect)(()=>{r.current=n},[n]),(0,b.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var S=o();function C(){let{surfaceId:e}=r(),n=a(),{pathname:o}=i(),C=g(),w=l.use.activeAssistantId(),T=(0,b.useRef)(null),[E,D]=(0,b.useState)(null),[O,k]=(0,b.useState)(!0),[A,j]=(0,b.useState)(null),M=(0,b.useRef)(null);(0,b.useEffect)(()=>{if(!e){j(`No document ID provided.`),k(!1);return}if(!w)return;let t=!1;return(async()=>{try{let{data:n}=await f({path:{assistant_id:w,id:e},throwOnError:!0});if(t)return;D(n)}catch{t||j(`Failed to load document.`)}finally{t||k(!1)}})(),()=>{t=!0}},[e,w]);let N=(0,b.useCallback)(()=>{M.current?.refreshComments()},[]);m(`sse.event`,x({surfaceId:e??``,enabled:!!e,onCommentsChanged:N}));let P=(0,b.useCallback)(()=>{n(-1)},[n]);y({containerRef:T,onBack:P,enabled:C,navKey:o});let F=(0,b.useCallback)(async()=>{if(!E||!w||!e)return;let t=E.conversationId||v(w,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(_(w,e,t),t!==E.conversationId)try{await d({path:{assistant_id:w,id:e},body:{conversationId:t},throwOnError:!0})}catch{}h.getState().openDocument(),h.getState().setLoadedDocument({source:`document`,surfaceId:E.surfaceId,conversationId:t,documentName:E.title,content:E.content});let r=`Please review and address my comments on "${E.title}".`;n(`${p.conversation(t)}?prompt=${encodeURIComponent(r)}`)},[E,w,e,n]),I=(0,b.useCallback)(async()=>{if(!E||!w)return;let{data:e,response:t}=await u({path:{assistant_id:w,id:E.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${E.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[E,w]);return O?(0,S.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,S.jsx)(c,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):A||!E||!w?(0,S.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,S.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:A??`Document not found.`})}):(0,S.jsx)(`div`,{ref:T,className:`flex min-h-0 flex-1 flex-col`,children:(0,S.jsx)(t,{source:`document`,surfaceId:E.surfaceId,assistantId:w,conversationId:E.conversationId,documentName:E.title,content:E.content,onClose:P,onExport:I,onSubmitFeedback:F,handleRef:M})})}export{C as DocumentViewerPage};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./document-viewer-container-CPc9KTln.js";import{t as n}from"./react-BFJW0bSv.js";import{f as r,l as i,u as a}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as o}from"./jsx-runtime-D3ZM-ToX.js";import{t as s}from"./typography-DEI9Ra9z.js";import"./src-CwGlaCIx.js";import{t as c}from"./loader-circle-DWWXcfTQ.js";import{n as l}from"./resolved-assistants-store-C6oDdTxB.js";import{St as u,bt as d,xt as f}from"./sdk.gen-CjtCuSlS.js";import{d as p}from"./routes-DrfnNoYS.js";import{t as m}from"./use-bus-subscription-DiCq1_ki.js";import{i as h}from"./viewer-store-DxLOGAkL.js";import{n as g}from"./use-is-mobile-MmHo-OM6.js";import{r as _,t as v}from"./edit-chat-session-DVzLQLWl.js";import{t as y}from"./use-edge-swipe-back-Dk2xXjh4.js";var b=e(n(),1);function x({surfaceId:e,enabled:t,onCommentsChanged:n}){let r=(0,b.useRef)(n);return(0,b.useLayoutEffect)(()=>{r.current=n},[n]),(0,b.useCallback)(n=>{if(!t)return;let i=n.message;switch(i.type){case`document_comment_created`:case`document_comment_resolved`:case`document_comment_reopened`:case`document_comment_deleted`:i.surfaceId===e&&r.current();break;default:break}},[e,t])}var S=o();function C(){let{surfaceId:e}=r(),n=a(),{pathname:o}=i(),C=g(),w=l.use.activeAssistantId(),T=(0,b.useRef)(null),[E,D]=(0,b.useState)(null),[O,k]=(0,b.useState)(!0),[A,j]=(0,b.useState)(null),M=(0,b.useRef)(null);(0,b.useEffect)(()=>{if(!e){j(`No document ID provided.`),k(!1);return}if(!w)return;let t=!1;return(async()=>{try{let{data:n}=await f({path:{assistant_id:w,id:e},throwOnError:!0});if(t)return;D(n)}catch{t||j(`Failed to load document.`)}finally{t||k(!1)}})(),()=>{t=!0}},[e,w]);let N=(0,b.useCallback)(()=>{M.current?.refreshComments()},[]);m(`sse.event`,x({surfaceId:e??``,enabled:!!e,onCommentsChanged:N}));let P=(0,b.useCallback)(()=>{n(-1)},[n]);y({containerRef:T,onBack:P,enabled:C,navKey:o});let F=(0,b.useCallback)(async()=>{if(!E||!w||!e)return;let t=E.conversationId||v(w,e)||(typeof globalThis.crypto?.randomUUID==`function`?globalThis.crypto.randomUUID():`draft-${Date.now()}-${Math.random().toString(16).slice(2)}`);if(_(w,e,t),t!==E.conversationId)try{await d({path:{assistant_id:w,id:e},body:{conversationId:t},throwOnError:!0})}catch{}h.getState().openDocument(),h.getState().setLoadedDocument({source:`document`,surfaceId:E.surfaceId,conversationId:t,documentName:E.title,content:E.content});let r=`Please review and address my comments on "${E.title}".`;n(`${p.conversation(t)}?prompt=${encodeURIComponent(r)}`)},[E,w,e,n]),I=(0,b.useCallback)(async()=>{if(!E||!w)return;let{data:e,response:t}=await u({path:{assistant_id:w,id:E.surfaceId},throwOnError:!1,parseAs:`blob`});if(!t?.ok||!e)return;let n=URL.createObjectURL(e);Object.assign(document.createElement(`a`),{href:n,download:`${E.title||`document`}.pdf`}).click(),URL.revokeObjectURL(n)},[E,w]);return O?(0,S.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,S.jsx)(c,{size:24,className:`animate-spin`,style:{color:`var(--content-tertiary)`}})}):A||!E||!w?(0,S.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,S.jsx)(s,{variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:A??`Document not found.`})}):(0,S.jsx)(`div`,{ref:T,className:`flex min-h-0 flex-1 flex-col`,children:(0,S.jsx)(t,{source:`document`,surfaceId:E.surfaceId,assistantId:w,conversationId:E.conversationId,documentName:E.title,content:E.content,onClose:P,onExport:I,onSubmitFeedback:F,handleRef:M})})}export{C as DocumentViewerPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{F as n,a as r,n as i}from"./button-Dy5001j6.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-CJf7MmLX.js";import{t as s}from"./check-Dt2rQhdg.js";import{t as c}from"./chevron-down-BNidRDh1.js";var l=e(t(),1),u=e(n(),1),d=a(),f={regular:`h-9 px-3 text-body-medium-lighter`,compact:`h-7 px-2.5 text-body-small-default`},p={regular:`px-3 py-2 text-body-medium-default`,compact:`px-2.5 py-1.5 text-body-small-default`},m={regular:`h-3.5 w-3.5`,compact:`h-3 w-3`};function h({options:e,value:t,onChange:n,placeholder:a,disabled:h=!1,size:v=`regular`,className:y,style:b,id:x,name:S,menuMaxHeight:C=280,menuMinWidth:w=0,menuAlign:T=`start`,"aria-label":E,"aria-labelledby":D,"data-testid":O}){let k=r(),A=(0,l.useId)(),j=x??`dropdown-${A}`,M=`${j}-listbox`,[N,P]=(0,l.useState)(!1),[F,I]=(0,l.useState)(-1),L=(0,l.useRef)(null),R=(0,l.useRef)(null),z=(0,l.useRef)(null),[B,V]=(0,l.useState)(null),H=(0,l.useMemo)(()=>e.findIndex(e=>e.value===t),[e,t]),U=H>=0?e[H]:void 0,W=(0,l.useCallback)(()=>{P(!1),I(-1)},[]),G=(0,l.useCallback)(()=>{h||(P(!0),I(H>=0?H:g(e,0,1)))},[h,H,e]);(0,l.useEffect)(()=>{if(!N)return;let e=e=>{let t=e.target,n=L.current?.contains(t),r=z.current?.contains(t);!n&&!r&&W()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[N,W]),(0,l.useLayoutEffect)(()=>{if(!N)return;let e=()=>{let e=R.current;if(!e)return;let t=e.getBoundingClientRect();V(_({left:t.left,right:t.right,bottom:t.bottom,width:t.width},{align:T,minWidth:w,viewportWidth:window.innerWidth}))};return e(),window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[N,T,w]),(0,l.useEffect)(()=>{if(!N||F<0)return;let e=z.current;if(!e)return;let t=e.children[F];t instanceof HTMLElement&&t.scrollIntoView({block:`nearest`})},[N,F]);let K=(0,l.useCallback)(e=>{e.disabled||(n(e.value),W(),R.current?.focus())},[n,W]),q=(0,l.useCallback)(t=>{if(!h){if(!N){(t.key===`ArrowDown`||t.key===`ArrowUp`||t.key===`Enter`||t.key===` `)&&(t.preventDefault(),G());return}if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),W();return}if(t.key===`ArrowDown`){t.preventDefault(),I(t=>{let n=g(e,t+1,1);return n===-1?t:n});return}if(t.key===`ArrowUp`){t.preventDefault(),I(t=>{let n=g(e,t-1,-1);return n===-1?t:n});return}if(t.key===`Home`){t.preventDefault(),I(t=>{let n=g(e,0,1);return n===-1?t:n});return}if(t.key===`End`){t.preventDefault(),I(t=>{let n=g(e,e.length-1,-1);return n===-1?t:n});return}if(t.key===`Enter`||t.key===` `){t.preventDefault();let n=e[F];n&&K(n)}}},[h,N,G,W,e,F,K]),J=N&&F>=0?`${j}-option-${F}`:void 0,Y=(0,l.useCallback)(e=>{if(!N)return;let t=e.relatedTarget;if(!t){W();return}let n=L.current?.contains(t),r=z.current?.contains(t);n||r||W()},[N,W]),X=N&&B?(0,d.jsx)(`ul`,{ref:z,id:M,role:`listbox`,"aria-labelledby":D??j,tabIndex:-1,"data-slot":`dropdown-menu`,className:`pointer-events-auto fixed z-50 mt-1 overflow-auto rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] py-1 shadow-xl focus:outline-none`,style:{maxHeight:C,left:B.left,top:B.top,width:B.width},children:e.map((e,n)=>{let r=e.value===t,a=!!e.disabled,c=!a&&n===F,l=(0,d.jsxs)(`li`,{id:`${j}-option-${n}`,role:`option`,"aria-selected":r,"aria-disabled":a,"data-slot":`dropdown-option`,onMouseEnter:()=>{a||I(n)},onMouseDown:e=>{e.preventDefault()},onClick:()=>K(e),className:o(`flex items-center gap-2 transition-colors`,p[v],a?`cursor-not-allowed opacity-50`:`cursor-pointer`),style:{background:c?`var(--surface-hover)`:`transparent`,color:`var(--content-default)`},children:[e.icon&&(0,d.jsx)(`span`,{className:`flex shrink-0 items-center`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0,children:e.icon}),(0,d.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.tooltip?void 0:e.label||void 0,children:e.label}),e.suffix&&(0,d.jsx)(`span`,{className:`shrink-0`,children:e.suffix})]}),r&&(0,d.jsx)(s,{className:`h-3.5 w-3.5 shrink-0`,style:{color:`var(--system-positive-strong)`},"aria-hidden":!0})]},e.value);return e.tooltip?(0,d.jsx)(i,{content:e.tooltip,side:`right`,children:l},e.value):l})}):null;return(0,d.jsxs)(`div`,{ref:L,"data-slot":`dropdown`,className:o(`relative`,y),style:b,onBlur:Y,children:[(0,d.jsxs)(`button`,{ref:R,type:`button`,id:j,name:S,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":N,"aria-controls":M,"aria-activedescendant":J,"aria-label":E,"aria-labelledby":D,"aria-disabled":h,disabled:h,"data-testid":O,"data-slot":`dropdown-trigger`,"data-state":N?`open`:`closed`,onClick:()=>N?W():G(),onKeyDown:q,className:o(`flex w-full items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`,f[v]),style:{color:U?`var(--content-default)`:`var(--content-tertiary)`},children:[U?.icon&&(0,d.jsx)(`span`,{className:`flex shrink-0 items-center`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0,children:U.icon}),(0,d.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:U?.label||void 0,children:U?.label??a??``}),U?.suffix&&(0,d.jsx)(`span`,{className:`shrink-0`,children:U.suffix})]}),(0,d.jsx)(c,{className:o(`shrink-0`,m[v]),style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]}),X?(0,u.createPortal)(X,k??document.body):null]})}function g(e,t,n){let r=e.length;if(r===0)return-1;let i=(t%r+r)%r;for(let t=0;t<r;t++){if(!e[i]?.disabled)return i;i=((i+n)%r+r)%r}return-1}function _(e,t={}){let n=Math.max(e.width,t.minWidth??0),r=t.align??`start`,i=t.viewportWidth,a=r===`end`?e.right-n:e.left;return i!==void 0&&a+n>i&&(a=i-n),{left:Math.max(0,a),top:e.bottom,width:n}}export{h as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{W as n,a as r,n as i}from"./button-BwFudwM5.js";import{t as a}from"./jsx-runtime-D3ZM-ToX.js";import{t as o}from"./cn-CJf7MmLX.js";import{t as s}from"./check-Dt2rQhdg.js";import{t as c}from"./chevron-down-BNidRDh1.js";var l=e(t(),1),u=e(n(),1),d=a(),f={regular:`h-9 px-3 text-body-medium-lighter`,compact:`h-7 px-2.5 text-body-small-default`},p={regular:`px-3 py-2 text-body-medium-default`,compact:`px-2.5 py-1.5 text-body-small-default`},m={regular:`h-3.5 w-3.5`,compact:`h-3 w-3`};function h({options:e,value:t,onChange:n,placeholder:a,disabled:h=!1,size:v=`regular`,className:y,style:b,id:x,name:S,menuMaxHeight:C=280,menuMinWidth:w=0,menuAlign:T=`start`,"aria-label":E,"aria-labelledby":D,"data-testid":O}){let k=r(),A=(0,l.useId)(),j=x??`dropdown-${A}`,M=`${j}-listbox`,[N,P]=(0,l.useState)(!1),[F,I]=(0,l.useState)(-1),L=(0,l.useRef)(null),R=(0,l.useRef)(null),z=(0,l.useRef)(null),[B,V]=(0,l.useState)(null),H=(0,l.useMemo)(()=>e.findIndex(e=>e.value===t),[e,t]),U=H>=0?e[H]:void 0,W=(0,l.useCallback)(()=>{P(!1),I(-1)},[]),G=(0,l.useCallback)(()=>{h||(P(!0),I(H>=0?H:g(e,0,1)))},[h,H,e]);(0,l.useEffect)(()=>{if(!N)return;let e=e=>{let t=e.target,n=L.current?.contains(t),r=z.current?.contains(t);!n&&!r&&W()};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[N,W]),(0,l.useLayoutEffect)(()=>{if(!N)return;let e=()=>{let e=R.current;if(!e)return;let t=e.getBoundingClientRect();V(_({left:t.left,right:t.right,bottom:t.bottom,width:t.width},{align:T,minWidth:w,viewportWidth:window.innerWidth}))};return e(),window.addEventListener(`scroll`,e,!0),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`scroll`,e,!0),window.removeEventListener(`resize`,e)}},[N,T,w]),(0,l.useEffect)(()=>{if(!N||F<0)return;let e=z.current;if(!e)return;let t=e.children[F];t instanceof HTMLElement&&t.scrollIntoView({block:`nearest`})},[N,F]);let K=(0,l.useCallback)(e=>{e.disabled||(n(e.value),W(),R.current?.focus())},[n,W]),q=(0,l.useCallback)(t=>{if(!h){if(!N){(t.key===`ArrowDown`||t.key===`ArrowUp`||t.key===`Enter`||t.key===` `)&&(t.preventDefault(),G());return}if(t.key===`Escape`){t.preventDefault(),t.stopPropagation(),W();return}if(t.key===`ArrowDown`){t.preventDefault(),I(t=>{let n=g(e,t+1,1);return n===-1?t:n});return}if(t.key===`ArrowUp`){t.preventDefault(),I(t=>{let n=g(e,t-1,-1);return n===-1?t:n});return}if(t.key===`Home`){t.preventDefault(),I(t=>{let n=g(e,0,1);return n===-1?t:n});return}if(t.key===`End`){t.preventDefault(),I(t=>{let n=g(e,e.length-1,-1);return n===-1?t:n});return}if(t.key===`Enter`||t.key===` `){t.preventDefault();let n=e[F];n&&K(n)}}},[h,N,G,W,e,F,K]),J=N&&F>=0?`${j}-option-${F}`:void 0,Y=(0,l.useCallback)(e=>{if(!N)return;let t=e.relatedTarget;if(!t){W();return}let n=L.current?.contains(t),r=z.current?.contains(t);n||r||W()},[N,W]),X=N&&B?(0,d.jsx)(`ul`,{ref:z,id:M,role:`listbox`,"aria-labelledby":D??j,tabIndex:-1,"data-slot":`dropdown-menu`,className:`pointer-events-auto fixed z-50 mt-1 overflow-auto rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] py-1 shadow-xl focus:outline-none`,style:{maxHeight:C,left:B.left,top:B.top,width:B.width},children:e.map((e,n)=>{let r=e.value===t,a=!!e.disabled,c=!a&&n===F,l=(0,d.jsxs)(`li`,{id:`${j}-option-${n}`,role:`option`,"aria-selected":r,"aria-disabled":a,"data-slot":`dropdown-option`,onMouseEnter:()=>{a||I(n)},onMouseDown:e=>{e.preventDefault()},onClick:()=>K(e),className:o(`flex items-center gap-2 transition-colors`,p[v],a?`cursor-not-allowed opacity-50`:`cursor-pointer`),style:{background:c?`var(--surface-hover)`:`transparent`,color:`var(--content-default)`},children:[e.icon&&(0,d.jsx)(`span`,{className:`flex shrink-0 items-center`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0,children:e.icon}),(0,d.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.tooltip?void 0:e.label||void 0,children:e.label}),e.suffix&&(0,d.jsx)(`span`,{className:`shrink-0`,children:e.suffix})]}),r&&(0,d.jsx)(s,{className:`h-3.5 w-3.5 shrink-0`,style:{color:`var(--system-positive-strong)`},"aria-hidden":!0})]},e.value);return e.tooltip?(0,d.jsx)(i,{content:e.tooltip,side:`right`,children:l},e.value):l})}):null;return(0,d.jsxs)(`div`,{ref:L,"data-slot":`dropdown`,className:o(`relative`,y),style:b,onBlur:Y,children:[(0,d.jsxs)(`button`,{ref:R,type:`button`,id:j,name:S,role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":N,"aria-controls":M,"aria-activedescendant":J,"aria-label":E,"aria-labelledby":D,"aria-disabled":h,disabled:h,"data-testid":O,"data-slot":`dropdown-trigger`,"data-state":N?`open`:`closed`,onClick:()=>N?W():G(),onKeyDown:q,className:o(`flex w-full items-center gap-2 rounded-md border border-[var(--field-border)] bg-[var(--field-bg)] text-left transition-colors focus:outline-none data-[state=open]:border-[var(--border-active)] disabled:cursor-not-allowed disabled:opacity-60`,f[v]),style:{color:U?`var(--content-default)`:`var(--content-tertiary)`},children:[U?.icon&&(0,d.jsx)(`span`,{className:`flex shrink-0 items-center`,style:{color:`var(--content-tertiary)`},"aria-hidden":!0,children:U.icon}),(0,d.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:U?.label||void 0,children:U?.label??a??``}),U?.suffix&&(0,d.jsx)(`span`,{className:`shrink-0`,children:U.suffix})]}),(0,d.jsx)(c,{className:o(`shrink-0`,m[v]),style:{color:`var(--content-tertiary)`},"aria-hidden":!0})]}),X?(0,u.createPortal)(X,k??document.body):null]})}function g(e,t,n){let r=e.length;if(r===0)return-1;let i=(t%r+r)%r;for(let t=0;t<r;t++){if(!e[i]?.disabled)return i;i=((i+n)%r+r)%r}return-1}function _(e,t={}){let n=Math.max(e.width,t.minWidth??0),r=t.align??`start`,i=t.viewportWidth,a=r===`end`?e.right-n:e.left;return i!==void 0&&a+n>i&&(a=i-n),{left:Math.max(0,a),top:e.bottom,width:n}}export{h as t};
@@ -1 +1 @@
1
- import{n as e,t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./useQuery-Bz-fbQ-m.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./clock-DeynsyYL.js";import"./src-Da9g8qsW.js";import{t as a}from"./inbox-OC3STytq.js";import{t as o}from"./loader-circle-DWWXcfTQ.js";import{t as s}from"./send-Bdmy_GSE.js";import{t as c}from"./triangle-alert-D6bAGtMw.js";import{t as l}from"./tag-gOOX7fbA.js";import{d as u}from"./routes-DrfnNoYS.js";import{i as d}from"./use-platform-gate-C5bNA5Pn.js";import{_ as f,h as p,p as m}from"./react-query.gen-BtYBixpk.js";import{t as h}from"./platform-login-notice-DFmjUE9q.js";import{t as g}from"./use-active-assistant-id-JLsAfn3e.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(c,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(l,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(a,{}):(0,_.jsx)(s,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(i,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,a=n({...m({path:{assistant_id:e}}),enabled:i}),s=a.data?.results?.[0],c=n({...p({path:{assistant_id:e,id:s?.id??``}}),enabled:i&&!!s?.id}),l=n({...f({path:{assistant_id:e},query:{limit:10}}),enabled:i}),d=c.data?.usage,h=l.data?.results??[];return a.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(o,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):a.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{a.refetch()},retrying:a.isFetching}):s?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:d?.sent_today,sub:d?`of ${d.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:d?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:d?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:d?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:l.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):l.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{l.refetch()},retrying:l.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:u.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=d(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:u.logs.root}):t===`disabled`?(0,_.jsx)(h,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
1
+ import{n as e,t}from"./chunk-5KNZJZUH-Bsoom5--.js";import{t as n}from"./useQuery-Bz-fbQ-m.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./clock-DeynsyYL.js";import"./src-CwGlaCIx.js";import{t as a}from"./inbox-OC3STytq.js";import{t as o}from"./loader-circle-DWWXcfTQ.js";import{t as s}from"./send-Bdmy_GSE.js";import{t as c}from"./triangle-alert-D6bAGtMw.js";import{t as l}from"./tag-G0ELn_cq.js";import{d as u}from"./routes-DrfnNoYS.js";import{i as d}from"./use-platform-gate-C5bNA5Pn.js";import{_ as f,h as p,p as m}from"./react-query.gen-BtYBixpk.js";import{t as h}from"./platform-login-notice-DvWjpI2S.js";import{t as g}from"./use-active-assistant-id-JLsAfn3e.js";var _=r();function v(e){return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function y({title:e,children:t}){return(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsx)(`h2`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:e}),t]})}function b({tone:e=`info`,children:t}){let n=e===`error`;return(0,_.jsx)(`div`,{className:`rounded-md border px-4 py-3 text-body-medium-lighter`,style:{background:n?`var(--surface-negative-subtle, var(--surface-lift))`:`var(--surface-lift)`,borderColor:n?`var(--border-negative, var(--border-base))`:`var(--border-base)`,color:n?`var(--content-negative, var(--content-default))`:`var(--content-default)`},children:(0,_.jsxs)(`div`,{className:`flex items-start gap-2`,children:[n&&(0,_.jsx)(c,{className:`mt-0.5 h-4 w-4 shrink-0`,"aria-hidden":`true`}),(0,_.jsx)(`div`,{className:`flex-1`,children:t})]})})}function x({message:e,onRetry:t,retrying:n}){return(0,_.jsx)(b,{tone:`error`,children:(0,_.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,_.jsx)(`span`,{children:e}),(0,_.jsx)(`button`,{type:`button`,onClick:t,disabled:n,className:`text-body-small-default underline disabled:opacity-50`,style:{color:`var(--content-default)`},children:n?`Retrying…`:`Retry`})]})})}function S({label:e,value:t,sub:n}){return(0,_.jsxs)(`div`,{className:`rounded-xl border p-3`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e}),(0,_.jsx)(`p`,{className:`mt-1 text-title-large tabular-nums`,style:{color:`var(--content-default)`},children:t??`—`}),n&&(0,_.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-disabled)`},children:n})]})}function C({email:e}){let t=e.direction===`inbound`;return(0,_.jsx)(`div`,{className:`rounded-xl border p-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:(0,_.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,_.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,_.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,_.jsx)(l,{tone:t?`positive`:`neutral`,leftIcon:t?(0,_.jsx)(a,{}):(0,_.jsx)(s,{}),children:t?`Inbound`:`Outbound`}),(0,_.jsx)(`span`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.from_address})]}),(0,_.jsx)(`p`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e.subject||`(no subject)`})]}),(0,_.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(i,{className:`h-3 w-3`}),(0,_.jsx)(`span`,{children:v(e.created_at)})]})]})})}function w({assistantId:e,platformGate:r}){let i=r===`full`,a=n({...m({path:{assistant_id:e}}),enabled:i}),s=a.data?.results?.[0],c=n({...p({path:{assistant_id:e,id:s?.id??``}}),enabled:i&&!!s?.id}),l=n({...f({path:{assistant_id:e},query:{limit:10}}),enabled:i}),d=c.data?.usage,h=l.data?.results??[];return a.isLoading?(0,_.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,_.jsx)(o,{className:`h-8 w-8 animate-spin`,style:{color:`var(--content-tertiary)`}})}):a.isError?(0,_.jsx)(x,{message:`Couldn't load email addresses.`,onRetry:()=>{a.refetch()},retrying:a.isFetching}):s?(0,_.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,_.jsx)(y,{title:`Totals`,children:(0,_.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,_.jsx)(S,{label:`Sent today`,value:d?.sent_today,sub:d?`of ${d.daily_limit} daily limit`:void 0}),(0,_.jsx)(S,{label:`Received today`,value:d?.received_today}),(0,_.jsx)(S,{label:`Sent this month`,value:d?.sent_this_month}),(0,_.jsx)(S,{label:`Received this month`,value:d?.received_this_month})]})}),(0,_.jsx)(y,{title:`Recent Emails`,children:l.isLoading?(0,_.jsxs)(`div`,{className:`flex items-center gap-2 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[(0,_.jsx)(o,{className:`h-4 w-4 animate-spin`}),`Loading…`]}):l.isError?(0,_.jsx)(x,{message:`Couldn't load recent emails.`,onRetry:()=>{l.refetch()},retrying:l.isFetching}):h.length===0?(0,_.jsx)(b,{children:`No emails yet.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:h.map(e=>(0,_.jsx)(C,{email:e},e.id))})})]}):(0,_.jsxs)(b,{children:[`No email address registered yet.`,` `,(0,_.jsx)(t,{to:u.settings.ai,className:`underline`,style:{color:`var(--content-tertiary)`},children:`Set one up in AI Settings → Email.`})]})}function T(){let t=d(),n=g();return t===`gated`?(0,_.jsx)(e,{replace:!0,to:u.logs.root}):t===`disabled`?(0,_.jsx)(h,{children:`Log in to the Vellum platform to view emails.`}):(0,_.jsx)(w,{assistantId:n,platformGate:t})}export{T as EmailsPage};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-Dy5001j6.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./check-Dt2rQhdg.js";import{B as a}from"./src-Da9g8qsW.js";import{t as o}from"./download-Cnb8zZrK.js";import{t as s}from"./pencil-Cm5DdeRM.js";import{t as c}from"./copy-to-clipboard-DgY-nZpm.js";var l=e(t(),1),u=r(),d=`ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace`;function f({content:e,downloadContent:t,fileName:r,mimeType:d=`text/plain`,showEdit:f,isEditing:p,onToggleEdit:m,extraActions:h}){let[g,_]=(0,l.useState)(!1),v=(0,l.useRef)(null),y=(0,l.useCallback)(()=>{c(e,{errorMessage:`Couldn't copy the file contents.`,onCopied:()=>{_(!0),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>_(!1),1500)}})},[e]),b=t??e,x=(0,l.useCallback)(()=>{let e=new Blob([b],{type:d}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=r,n.click(),URL.revokeObjectURL(t)},[b,r,d]);return(0,l.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]),p?null:(0,u.jsxs)(`div`,{className:`absolute right-3 top-3 z-10 flex items-center gap-1 rounded-md bg-[var(--surface-primary)] shadow-sm`,children:[f&&m&&(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,u.jsx)(s,{"aria-hidden":!0}),onClick:m,"aria-label":`Edit file`,className:`hover:bg-[var(--surface-base)]`}),h,(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:g?(0,u.jsx)(i,{"aria-hidden":!0}):(0,u.jsx)(a,{"aria-hidden":!0}),onClick:y,"aria-label":g?`Copied`:`Copy file contents`,className:`hover:bg-[var(--surface-base)]`}),(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,u.jsx)(o,{"aria-hidden":!0}),onClick:x,"aria-label":`Download file`,className:`hover:bg-[var(--surface-base)]`})]})}function p({value:e,onChange:t,onSave:n}){return(0,u.jsx)(`textarea`,{className:`m-0 h-full w-full resize-none overflow-auto border-none bg-transparent p-4 text-body-medium-lighter leading-relaxed outline-none`,style:{color:`var(--content-default)`,fontFamily:d},value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),n())},spellCheck:!1})}function m({isDirty:e,isSaving:t,error:r,onSave:i,onDiscard:a}){return(0,u.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t px-3 py-2`,style:{borderColor:`var(--border-element)`},children:[r&&(0,u.jsx)(`span`,{className:`mr-auto text-body-small-default`,style:{color:`var(--system-error)`},children:r}),(0,u.jsx)(n,{variant:`ghost`,size:`compact`,disabled:t,onClick:a,children:`Discard`}),(0,u.jsx)(n,{variant:`primary`,size:`compact`,disabled:!e||t,onClick:i,children:t?`Saving…`:`Save`})]})}function h({content:e,readOnly:t,whiteSpace:n=`pre-wrap`,onStartEdit:r}){return(0,u.jsx)(`pre`,{className:`m-0 h-full overflow-auto p-4 text-body-medium-lighter leading-relaxed${t?``:` cursor-text`}`,style:{color:`var(--content-default)`,fontFamily:d,whiteSpace:n},onClick:t?void 0:r,children:e})}export{h as i,m as n,p as r,f as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-BwFudwM5.js";import{t as r}from"./jsx-runtime-D3ZM-ToX.js";import{t as i}from"./check-Dt2rQhdg.js";import{V as a}from"./src-CwGlaCIx.js";import{t as o}from"./download-Cnb8zZrK.js";import{t as s}from"./pencil-Cm5DdeRM.js";import{t as c}from"./copy-to-clipboard-Y0mxY68V.js";var l=e(t(),1),u=r(),d=`ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace`;function f({content:e,downloadContent:t,fileName:r,mimeType:d=`text/plain`,showEdit:f,isEditing:p,onToggleEdit:m,extraActions:h}){let[g,_]=(0,l.useState)(!1),v=(0,l.useRef)(null),y=(0,l.useCallback)(()=>{c(e,{errorMessage:`Couldn't copy the file contents.`,onCopied:()=>{_(!0),v.current&&clearTimeout(v.current),v.current=setTimeout(()=>_(!1),1500)}})},[e]),b=t??e,x=(0,l.useCallback)(()=>{let e=new Blob([b],{type:d}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=r,n.click(),URL.revokeObjectURL(t)},[b,r,d]);return(0,l.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]),p?null:(0,u.jsxs)(`div`,{className:`absolute right-3 top-3 z-10 flex items-center gap-1 rounded-md bg-[var(--surface-primary)] shadow-sm`,children:[f&&m&&(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,u.jsx)(s,{"aria-hidden":!0}),onClick:m,"aria-label":`Edit file`,className:`hover:bg-[var(--surface-base)]`}),h,(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:g?(0,u.jsx)(i,{"aria-hidden":!0}):(0,u.jsx)(a,{"aria-hidden":!0}),onClick:y,"aria-label":g?`Copied`:`Copy file contents`,className:`hover:bg-[var(--surface-base)]`}),(0,u.jsx)(n,{variant:`ghost`,size:`regular`,iconOnly:(0,u.jsx)(o,{"aria-hidden":!0}),onClick:x,"aria-label":`Download file`,className:`hover:bg-[var(--surface-base)]`})]})}function p({value:e,onChange:t,onSave:n}){return(0,u.jsx)(`textarea`,{className:`m-0 h-full w-full resize-none overflow-auto border-none bg-transparent p-4 text-body-medium-lighter leading-relaxed outline-none`,style:{color:`var(--content-default)`,fontFamily:d},value:e,onChange:e=>t(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),n())},spellCheck:!1})}function m({isDirty:e,isSaving:t,error:r,onSave:i,onDiscard:a}){return(0,u.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t px-3 py-2`,style:{borderColor:`var(--border-element)`},children:[r&&(0,u.jsx)(`span`,{className:`mr-auto text-body-small-default`,style:{color:`var(--system-error)`},children:r}),(0,u.jsx)(n,{variant:`ghost`,size:`compact`,disabled:t,onClick:a,children:`Discard`}),(0,u.jsx)(n,{variant:`primary`,size:`compact`,disabled:!e||t,onClick:i,children:t?`Saving…`:`Save`})]})}function h({content:e,readOnly:t,whiteSpace:n=`pre-wrap`,onStartEdit:r}){return(0,u.jsx)(`pre`,{className:`m-0 h-full overflow-auto p-4 text-body-medium-lighter leading-relaxed${t?``:` cursor-text`}`,style:{color:`var(--content-default)`,fontFamily:d,whiteSpace:n},onClick:t?void 0:r,children:e})}export{h as i,m as n,p as r,f as t};