@vellumai/web 0.11.4-dev.202608201611.db9392e → 0.11.4-dev.202608201710.fcf0423

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 (40) hide show
  1. package/dist/assets/{acp-run-detail-panel-CUQU7NjK.js → acp-run-detail-panel-E2RexPAB.js} +1 -1
  2. package/dist/assets/{activity-steps-panel-BTcWQoQ-.js → activity-steps-panel-DXHTXX-f.js} +1 -1
  3. package/dist/assets/{app-card-DfdamUtX.js → app-card-DdvE9pHV.js} +1 -1
  4. package/dist/assets/{background-task-detail-panel-Bd1Tk3IL.js → background-task-detail-panel-CZEwLsW3.js} +1 -1
  5. package/dist/assets/{billing-page-zbU_zmrm.js → billing-page-CA_119dU.js} +1 -1
  6. package/dist/assets/{bookmarks-page-CcQNyZdO.js → bookmarks-page-C1UOHxsB.js} +1 -1
  7. package/dist/assets/{channels-page-route-Dk6C7UXE.js → channels-page-route-CLl_4GEp.js} +1 -1
  8. package/dist/assets/{chat-markdown-message-BC-UF8DZ.js → chat-markdown-message-BqsUmDKK.js} +1 -1
  9. package/dist/assets/{contacts-page-route-CfJPywfA.js → contacts-page-route-CoUEzTbJ.js} +1 -1
  10. package/dist/assets/{conversation-navigation-CmWIQkd1.js → conversation-navigation-NBlywOWx.js} +1 -1
  11. package/dist/assets/{debug-page-doiJO9si.js → debug-page-BntTlq9l.js} +1 -1
  12. package/dist/assets/{document-viewer-page-GtM69Wnz.js → document-viewer-page-CoRcOUo9.js} +1 -1
  13. package/dist/assets/{home-page-route-BHuMiBYL.js → home-page-route-D5Ggz3fY.js} +1 -1
  14. package/dist/assets/{index-l77_Jh7j.js → index-feWF8TOL.js} +1 -1
  15. package/dist/assets/{inspect-page-CsTxUDXL.js → inspect-page-C7bfQrlL.js} +1 -1
  16. package/dist/assets/{integrations-page-pr8clDU9.js → integrations-page-BytEItSq.js} +1 -1
  17. package/dist/assets/{library-detail-page-BKf3X-7-.js → library-detail-page-Bl9-HcUE.js} +1 -1
  18. package/dist/assets/{library-page-M_qt3jGu.js → library-page-DE_Ggs-z.js} +1 -1
  19. package/dist/assets/{logs-layout-BtnaSbVT.js → logs-layout-CLRGuw69.js} +1 -1
  20. package/dist/assets/{memory-page-route-DZGpmRK-.js → memory-page-route-BP7ZBeli.js} +1 -1
  21. package/dist/assets/{message-files-panel-VOy57YyP.js → message-files-panel-CuAKW4Vo.js} +1 -1
  22. package/dist/assets/{messages-BQum2VHA.js → messages-B_2WP5oY.js} +1 -1
  23. package/dist/assets/{open-workspace-file-CkAkrrW2.js → open-workspace-file-CWQnZJd1.js} +2 -2
  24. package/dist/assets/{routes-D24Ara4a.js → routes-B0vq_HZ6.js} +15 -15
  25. package/dist/assets/{schedules-page-Bz85UzMe.js → schedules-page-BgUImsEK.js} +1 -1
  26. package/dist/assets/{select-assistant-screen-BAS1nCAA.js → select-assistant-screen-CDjIq_i7.js} +1 -1
  27. package/dist/assets/{settings-layout-ByUQtD_a.js → settings-layout-CKljq_QL.js} +1 -1
  28. package/dist/assets/{sidebar-tree-C2abC5qW.js → sidebar-tree-8sz2LxWb.js} +1 -1
  29. package/dist/assets/{skill-detail-page-BnA3Y9HB.js → skill-detail-page-C91-M36T.js} +1 -1
  30. package/dist/assets/{subagent-detail-panel-BY7NGrNV.js → subagent-detail-panel-D6q3XUof.js} +1 -1
  31. package/dist/assets/{tool-detail-panel-BcIGIX3-.js → tool-detail-panel-DUHXkpz_.js} +1 -1
  32. package/dist/assets/{transcript-message-body-shared-DrK4B3Ph.js → transcript-message-body-shared-DS8JbCqr.js} +1 -1
  33. package/dist/assets/{use-edge-swipe-back-qAnPjuSy.js → use-edge-swipe-back-B_XK7-uB.js} +2 -2
  34. package/dist/assets/{use-edit-app-DnDI2D97.js → use-edit-app-BYWqI2wl.js} +1 -1
  35. package/dist/assets/{use-transcript-message-by-id-DBNERn9w.js → use-transcript-message-by-id-L8Jru_cK.js} +1 -1
  36. package/dist/assets/{use-transcript-messages-BGSaN-TP.js → use-transcript-messages-Bacn5zVC.js} +1 -1
  37. package/dist/assets/viewer-store-CtlZXr5r.js +1 -0
  38. package/dist/index.html +11 -11
  39. package/package.json +1 -1
  40. package/dist/assets/viewer-store-D2m1Yxpg.js +0 -1
@@ -1,4 +1,4 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-u47kRfIQ.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-VkxVX0DM.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{t as a}from"./typography-DekrYXvs.js";import{t as o}from"./createLucideIcon-B-ZPaMbU.js";import{t as s}from"./arrow-down-to-line-BuKRLRZS.js";import{a as c,i as l,n as u,o as d,r as f,t as p}from"./acp-run-actions-CC73slKc.js";import{n as m,r as h,t as g}from"./metric-card-q2gCgn5b.js";import{t as _}from"./brain-9Csfs96f.js";import{t as v}from"./chevron-down-D1ho6wFA.js";import{t as y}from"./chevron-left-D29BeQ4x.js";import{t as b}from"./chevron-right-DTpkwA4e.js";import{t as x}from"./circle-check-BQyrCkaB.js";import{t as S}from"./circle-minus-DgUiTTwX.js";import{w as C}from"./menu-noj9Ohcf.js";import{t as w}from"./code-B7TA1KYq.js";import{t as T}from"./file-text-BEpL7wIA.js";import{t as E}from"./globe-BJuNFSn-.js";import{t as D}from"./chat-markdown-message-BC-UF8DZ.js";import{t as ee}from"./repeat-ORyt0N0E.js";import{t as te}from"./search-FGnzWjRX.js";import{t as ne}from"./send-CnqSHaqf.js";import{t as O}from"./terminal-CIR8bWcg.js";import{t as k}from"./trash-2-DnajdgJS.js";import{t as re}from"./triangle-alert-B-18Pims.js";import"./src-Ch3HTlFm.js";import{t as ie}from"./tag-Ddzwz3ij.js";import{a as A,i as ae,n as j,r as M}from"./acp-run-store-183gczJG.js";import{t as N}from"./three-dot-indicator-os9PYk-m.js";import{n as oe}from"./detail-shell-BhsB3DjJ.js";import{t as se}from"./diff-rows-VHcvi5AW.js";import{n as ce,t as le}from"./status-badge-pill-DCEE1meW.js";var ue=o(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),P=e(n(),1),F=``;function I(e,t){switch(e){case`complete`:case`completed`:return`completed`;case`failed`:case`error`:return`error`;case void 0:return t;default:return`running`}}function de(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function L(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(j.length):t}function R(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function z(e,t){if(t.updateType===`agent_message_chunk`&&de(t)){R(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:L(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??F,r=L(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(R(e),e.push({kind:`user`,id:n,content:r}));let a=e[e.length-1].content;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.kind===`user`&&n.id.startsWith(`local-marker-`)&&n.content===a){e.splice(t,1);break}}return}case`agent_message_chunk`:{let n=t.messageId??F,r=e[e.length-1];if(r&&r.kind===`agent`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}if(n!==F&&r&&r.kind===`agent`&&r.messageId===F&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}R(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??F,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}R(e),e.push({kind:`thinking`,messageId:n,content:t.content??``,isComplete:!1});return}case`tool_call`:{let n=t.toolCallId;if(n===void 0)return;R(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:I(t.toolStatus,`running`),content:t.content,locations:B(t),rawInput:t.rawInput,rawOutput:t.rawOutput});return}case`tool_call_update`:{let n=t.toolCallId;if(n===void 0)return;let r=e.findIndex(e=>e.kind===`tool`&&e.toolCallId===n);if(r===-1)return;let i=e[r],a=B(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:I(t.toolStatus,i.status),content:t.content??i.content,locations:a??i.locations,rawInput:t.rawInput===void 0?i.rawInput:t.rawInput,rawOutput:t.rawOutput===void 0?i.rawOutput:t.rawOutput};return}case`plan`:{let n=V(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(R(e),e.push(i)):e[r]=i;return}}}function B(e){let t=e.locations;if(!Array.isArray(t))return;let n=[];for(let e of t){let t=e??{};typeof t.path==`string`&&n.push(typeof t.line==`number`?{path:t.path,line:t.line}:{path:t.path})}return n}function V(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}let n=Array.isArray(t)?t:Array.isArray(t?.entries)?t.entries:null;return n===null?null:n.map(e=>{let t=e??{},n=t.content??t.label??``;return{label:typeof n==`string`?n:String(n),checked:t.checked===!0||t.status===`completed`}})}function H(e){let t=[];for(let n of e)z(t,n);return t}function fe(e,t){if(e===t)return{kind:`identity`};if(e===null)return{kind:`first`};if(t.length<e.length)return{kind:`fallback`};for(let n=0;n<e.length;n++)if(e[n]!==t[n])return n===e.length-1&&t.length===e.length?{kind:`mutate-last`}:{kind:`fallback`};return t.length===e.length?{kind:`identity`}:{kind:`append`,from:e.length}}function pe(){let e=null,t=[];function n(n){return t=H(n),e=n,t}function r(r){let i=fe(e,r);switch(i.kind){case`identity`:return t;case`first`:return n(r);case`append`:{let n=t.slice();for(let e=i.from;e<r.length;e++)z(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function me(e){let t=(0,P.useRef)(null);return t.current??=pe(),t.current.project(e)}function U(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=he(e);t&&r.push(t)}return r}function he(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:ge(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=_e(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function ge(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function _e(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function W(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function G(e){return U(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-u47kRfIQ.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./button-VkxVX0DM.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{t as a}from"./typography-DekrYXvs.js";import{t as o}from"./createLucideIcon-B-ZPaMbU.js";import{t as s}from"./arrow-down-to-line-BuKRLRZS.js";import{a as c,i as l,n as u,o as d,r as f,t as p}from"./acp-run-actions-CC73slKc.js";import{n as m,r as h,t as g}from"./metric-card-q2gCgn5b.js";import{t as _}from"./brain-9Csfs96f.js";import{t as v}from"./chevron-down-D1ho6wFA.js";import{t as y}from"./chevron-left-D29BeQ4x.js";import{t as b}from"./chevron-right-DTpkwA4e.js";import{t as x}from"./circle-check-BQyrCkaB.js";import{t as S}from"./circle-minus-DgUiTTwX.js";import{w as C}from"./menu-noj9Ohcf.js";import{t as w}from"./code-B7TA1KYq.js";import{t as T}from"./file-text-BEpL7wIA.js";import{t as E}from"./globe-BJuNFSn-.js";import{t as D}from"./chat-markdown-message-BqsUmDKK.js";import{t as ee}from"./repeat-ORyt0N0E.js";import{t as te}from"./search-FGnzWjRX.js";import{t as ne}from"./send-CnqSHaqf.js";import{t as O}from"./terminal-CIR8bWcg.js";import{t as k}from"./trash-2-DnajdgJS.js";import{t as re}from"./triangle-alert-B-18Pims.js";import"./src-Ch3HTlFm.js";import{t as ie}from"./tag-Ddzwz3ij.js";import{a as A,i as ae,n as j,r as M}from"./acp-run-store-183gczJG.js";import{t as N}from"./three-dot-indicator-os9PYk-m.js";import{n as oe}from"./detail-shell-BhsB3DjJ.js";import{t as se}from"./diff-rows-VHcvi5AW.js";import{n as ce,t as le}from"./status-badge-pill-DCEE1meW.js";var ue=o(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),P=e(n(),1),F=``;function I(e,t){switch(e){case`complete`:case`completed`:return`completed`;case`failed`:case`error`:return`error`;case void 0:return t;default:return`running`}}function de(e){return(e.messageId?.startsWith(`local-marker-`)??!1)||(e.content?.startsWith(`↻ Steering: `)??!1)}function L(e){let t=e??``;return t.startsWith(`↻ Steering: `)?t.slice(j.length):t}function R(e){let t=e[e.length-1];t&&(t.kind===`agent`||t.kind===`thinking`)&&!t.isComplete&&(e[e.length-1]={...t,isComplete:!0})}function z(e,t){if(t.updateType===`agent_message_chunk`&&de(t)){R(e),e.push({kind:`user`,id:t.messageId??`steer-${e.length}`,content:L(t.content)});return}switch(t.updateType){case`user_message_chunk`:{let n=t.messageId??F,r=L(t.content),i=e[e.length-1];i&&i.kind===`user`&&i.id===n?e[e.length-1]={...i,content:i.content+r}:(R(e),e.push({kind:`user`,id:n,content:r}));let a=e[e.length-1].content;for(let t=0;t<e.length-1;t++){let n=e[t];if(n.kind===`user`&&n.id.startsWith(`local-marker-`)&&n.content===a){e.splice(t,1);break}}return}case`agent_message_chunk`:{let n=t.messageId??F,r=e[e.length-1];if(r&&r.kind===`agent`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}if(n!==F&&r&&r.kind===`agent`&&r.messageId===F&&!r.isComplete&&r.content===(t.content??``)){e[e.length-1]={...r,messageId:n};return}R(e),e.push({kind:`agent`,messageId:n,content:t.content??``,isComplete:!1});return}case`agent_thought_chunk`:{let n=t.messageId??F,r=e[e.length-1];if(r&&r.kind===`thinking`&&r.messageId===n){e[e.length-1]={...r,content:r.content+(t.content??``)};return}R(e),e.push({kind:`thinking`,messageId:n,content:t.content??``,isComplete:!1});return}case`tool_call`:{let n=t.toolCallId;if(n===void 0)return;R(e),e.push({kind:`tool`,toolCallId:n,title:t.toolTitle??``,toolKind:t.toolKind,status:I(t.toolStatus,`running`),content:t.content,locations:B(t),rawInput:t.rawInput,rawOutput:t.rawOutput});return}case`tool_call_update`:{let n=t.toolCallId;if(n===void 0)return;let r=e.findIndex(e=>e.kind===`tool`&&e.toolCallId===n);if(r===-1)return;let i=e[r],a=B(t);e[r]={...i,title:t.toolTitle??i.title,toolKind:t.toolKind??i.toolKind,status:I(t.toolStatus,i.status),content:t.content??i.content,locations:a??i.locations,rawInput:t.rawInput===void 0?i.rawInput:t.rawInput,rawOutput:t.rawOutput===void 0?i.rawOutput:t.rawOutput};return}case`plan`:{let n=V(t.content);if(n===null)return;let r=e.findIndex(e=>e.kind===`plan`),i={kind:`plan`,entries:n};r===-1?(R(e),e.push(i)):e[r]=i;return}}}function B(e){let t=e.locations;if(!Array.isArray(t))return;let n=[];for(let e of t){let t=e??{};typeof t.path==`string`&&n.push(typeof t.line==`number`?{path:t.path,line:t.line}:{path:t.path})}return n}function V(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}let n=Array.isArray(t)?t:Array.isArray(t?.entries)?t.entries:null;return n===null?null:n.map(e=>{let t=e??{},n=t.content??t.label??``;return{label:typeof n==`string`?n:String(n),checked:t.checked===!0||t.status===`completed`}})}function H(e){let t=[];for(let n of e)z(t,n);return t}function fe(e,t){if(e===t)return{kind:`identity`};if(e===null)return{kind:`first`};if(t.length<e.length)return{kind:`fallback`};for(let n=0;n<e.length;n++)if(e[n]!==t[n])return n===e.length-1&&t.length===e.length?{kind:`mutate-last`}:{kind:`fallback`};return t.length===e.length?{kind:`identity`}:{kind:`append`,from:e.length}}function pe(){let e=null,t=[];function n(n){return t=H(n),e=n,t}function r(r){let i=fe(e,r);switch(i.kind){case`identity`:return t;case`first`:return n(r);case`append`:{let n=t.slice();for(let e=i.from;e<r.length;e++)z(n,r[e]);return e=r,t=n,t}case`mutate-last`:case`fallback`:return n(r)}}return{project:r}}function me(e){let t=(0,P.useRef)(null);return t.current??=pe(),t.current.project(e)}function U(e){if(!e)return[];let t;try{t=JSON.parse(e)}catch{let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)?[]:[{type:`content`,text:e}]}let n=Array.isArray(t)?t:[t],r=[];for(let e of n){let t=he(e);t&&r.push(t)}return r}function he(e){if(typeof e!=`object`||!e)return null;let t=e;switch(t.type){case`content`:return{type:`content`,text:ge(t.content)};case`diff`:return typeof t.path!=`string`||typeof t.newText!=`string`?null:{type:`diff`,path:t.path,newText:t.newText,...typeof t.oldText==`string`?{oldText:t.oldText}:{}};case`terminal`:{let e=_e(t);return e===void 0?{type:`terminal`}:{type:`terminal`,text:e}}default:return null}}function ge(e){if(typeof e==`string`)return e;if(typeof e==`object`&&e){let t=e.text;if(typeof t==`string`)return t}return``}function _e(e){if(typeof e.text==`string`)return e.text;if(typeof e.output==`string`)return e.output;if(typeof e.content==`string`)return e.content;if(typeof e.content==`object`&&e.content!==null){let t=e.content.text;if(typeof t==`string`)return t}}function W(e){if(typeof e!=`object`||!e)return;let t=e.command;return typeof t==`string`?t:void 0}function G(e){return U(e).filter(e=>e.type===`content`||e.type===`terminal`).map(e=>`text`in e?e.text??``:``).filter(e=>e.length>0).join(`
2
2
  `)}function K(e){if(e!=null){if(typeof e==`string`)return e;if(typeof e==`object`)try{return JSON.stringify(e,null,2)}catch{return String(e)}return String(e)}}function q(e,t){let n=new Map;for(let t of e)t.type===`diff`&&n.set(t.path,{path:t.path,newText:t.newText,...t.oldText===void 0?{}:{oldText:t.oldText}});for(let e of t??[])n.has(e.path)||n.set(e.path,{path:e.path});return Array.from(n.values())}var J=i();function ve({content:e,isComplete:t,assistantId:n}){return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-agent-message`,className:`flex w-full flex-col items-start text-chat text-[var(--content-default)]`,children:[(0,J.jsx)(D,{content:e,assistantId:n}),!t&&(0,J.jsx)(N,{className:`mt-1`,"data-testid":`acp-chat-agent-streaming`})]})}function ye({entries:e}){return e.length===0?null:(0,J.jsxs)(`div`,{"data-testid":`acp-chat-plan-block`,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,J.jsxs)(`div`,{className:`mb-2 flex items-center gap-1.5 text-[var(--content-tertiary)]`,children:[(0,J.jsx)(l,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(a,{variant:`body-small-emphasised`,className:`text-inherit`,children:`Plan`})]}),(0,J.jsx)(`ul`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>(0,J.jsxs)(`li`,{"data-testid":`acp-chat-plan-entry`,"data-checked":e.checked,className:`flex items-start gap-2`,children:[e.checked?(0,J.jsx)(x,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}):(0,J.jsx)(C,{"aria-hidden":!0,className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-disabled)]`}),(0,J.jsx)(`span`,{className:e.checked?`text-body-small-default text-[var(--content-tertiary)] line-through`:`text-body-small-default text-[var(--content-default)]`,children:e.label})]},t))})]})}function be(e){switch(e){case`max_tokens`:case`max_turn_requests`:return`Stopped: limit reached`;case`refusal`:return`Refused`;case`cancelled`:return`Cancelled`;default:return`Completed`}}function xe(e){return new Date(e).toLocaleTimeString([],{hour:`numeric`,minute:`2-digit`})}function Y({completedAt:e}){return e===void 0?null:(0,J.jsxs)(`span`,{"data-testid":`acp-chat-terminal-time`,children:[`at `,xe(e)]})}function Se({status:e,stopReason:t,error:n,completedAt:r}){if(A(e))return null;if(e===`failed`)return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`failed`,className:`flex items-start gap-2 rounded-lg bg-[var(--system-negative-weak)] px-3 py-2 text-body-small-default text-[var(--system-negative-strong)]`,children:[(0,J.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-terminal-failed-icon`,className:`flex h-[12px] w-4 shrink-0 items-center justify-center`,children:(0,J.jsx)(re,{className:`h-4 w-4`})}),(0,J.jsx)(`span`,{children:n??`Run failed`})]});if(e===`cancelled`)return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`cancelled`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,J.jsx)(S,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,J.jsx)(`span`,{children:`Cancelled`}),(0,J.jsx)(Y,{completedAt:r})]});let i=be(t);return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-terminal-block`,"data-terminal-kind":`completed`,className:`flex items-center gap-2 text-body-small-default text-[var(--content-tertiary)]`,children:[(0,J.jsx)(x,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--system-positive-strong)]`}),(0,J.jsx)(`span`,{children:i}),(0,J.jsx)(Y,{completedAt:r})]})}function Ce({showDot:e,isLast:t,children:n}){return(0,J.jsxs)(`div`,{className:`relative flex items-start gap-2${t?``:` pb-4`}`,children:[!t&&(0,J.jsx)(`div`,{"aria-hidden":!0,className:`absolute bottom-0 left-[6.5px] w-px bg-[var(--border-element)] ${e?`top-[16px]`:`top-0`}`}),e?(0,J.jsx)(`span`,{"aria-hidden":!0,"data-testid":`acp-chat-timeline-dot`,className:`flex h-[14px] w-[14px] shrink-0 items-center justify-center`,children:(0,J.jsx)(`span`,{className:`h-[5px] w-[5px] rounded-full bg-[var(--content-disabled)]`})}):(0,J.jsx)(`span`,{"aria-hidden":!0,className:`h-[14px] w-[14px] shrink-0`}),(0,J.jsx)(`div`,{className:`min-w-0 flex-1`,children:n})]})}function we({content:e,isComplete:t,assistantId:n}){let[r,i]=(0,P.useState)(null),a=r??!t,o=e.trim().length>0,s=t?`Thought process`:`Thinking`,c=t?(0,J.jsx)(_,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(N,{dotSize:5,className:`shrink-0`,"data-testid":`acp-chat-thinking-streaming`});return o?(0,J.jsxs)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:[(0,J.jsxs)(`button`,{type:`button`,"aria-expanded":a,onClick:()=>i(!a),"data-testid":`acp-chat-thinking-toggle`,className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,children:[a?(0,J.jsx)(v,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(b,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),c,(0,J.jsx)(`span`,{children:s})]}),a&&(0,J.jsx)(`div`,{"data-testid":`acp-chat-thinking-body`,className:`mt-1.5 border-l-2 border-[var(--border-base)] pl-3 text-body-small-default text-[var(--content-tertiary)]`,children:(0,J.jsx)(D,{content:e,assistantId:n})})]}):(0,J.jsx)(`div`,{"data-testid":`acp-chat-thinking-block`,className:`w-full`,children:(0,J.jsxs)(`div`,{className:`flex w-full items-center gap-1.5 text-body-small-default text-[var(--content-tertiary)]`,children:[c,(0,J.jsx)(`span`,{children:s})]})})}var Te={running:`neutral`,completed:`positive`,error:`negative`,ended:`neutral`},Ee={running:`Running`,completed:`Completed`,error:`Failed`,ended:`Ended`},De={read:`Read file`,edit:`Edit file`,delete:`Delete file`,move:`Move file`,search:`Search`,execute:`Run command`,think:`Thinking`,fetch:`Fetch`,switch_mode:`Switch mode`},Oe=`Tool call`,ke={read:T,edit:ue,delete:k,move:c,search:te,execute:O,think:_,fetch:E,switch_mode:ee},Ae=new Set([`read`,`edit`,`delete`,`move`]);function je({toolKind:e}){return(0,J.jsx)(e&&ke[e]||w,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-tertiary)]`})}function X({label:e,value:t,testId:n}){return(0,J.jsxs)(`div`,{"data-testid":n,children:[(0,J.jsx)(`div`,{className:`mb-1 text-body-small-default text-[var(--content-tertiary)]`,children:e}),(0,J.jsx)(`pre`,{className:`max-h-60 overflow-auto rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] p-2.5 font-mono text-body-small-default text-[var(--content-secondary)]`,children:t})]})}function Me({block:e,isTerminal:t=!1,onOpenDiff:n,onOpenOutput:r}){let[i,o]=(0,P.useState)(!1),s=(0,P.useMemo)(()=>U(e.content),[e.content]),c=(0,P.useMemo)(()=>G(e.content),[e.content]),l=(0,P.useMemo)(()=>c.split(`
3
3
  `).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith("```"))||`View output`,[c]),u=(0,P.useMemo)(()=>q(s,e.locations),[s,e.locations]),d=t&&e.status===`running`?`ended`:e.status,f=d===`running`,p=e.toolKind&&De[e.toolKind]||Oe,m=W(e.rawInput)??e.title,h=m&&m!==p&&(!Ae.has(e.toolKind??``)||u.length===0)?m:null,g=K(e.rawInput),_=K(e.rawOutput),y=g!==void 0||_!==void 0;return(0,J.jsxs)(`div`,{"data-testid":`acp-chat-tool-card`,"data-status":e.status,className:`w-full rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(je,{toolKind:e.toolKind}),(0,J.jsx)(a,{variant:`body-small-emphasised`,className:`min-w-0 flex-1 truncate text-[var(--content-default)]`,title:e.title,children:p}),(0,J.jsx)(ie,{tone:Te[d],"data-testid":`acp-chat-tool-status`,children:Ee[d]}),f&&(0,J.jsx)(N,{className:`shrink-0`,"data-testid":`acp-chat-tool-running`})]}),h&&(0,J.jsx)(`div`,{"data-testid":`acp-chat-tool-detail`,className:`mt-1.5 font-mono text-body-small-default whitespace-pre-wrap break-words text-[var(--content-secondary)]`,children:h}),u.length>0&&(0,J.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:u.map(t=>{let r=t.oldText!==void 0||t.newText!==void 0,i=`flex max-w-full items-center gap-1.5 rounded-md border border-[var(--border-base)] bg-[var(--surface-base)] px-2 py-1 text-body-small-default text-[var(--content-secondary)]`;return r?(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-file-chip`,onClick:()=>n(e.toolCallId,t),title:t.path,className:`${i} cursor-pointer transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,J.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path):(0,J.jsxs)(`span`,{"data-testid":`acp-chat-tool-file-ref`,title:t.path,className:i,children:[(0,J.jsx)(T,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate font-mono`,children:t.path})]},t.path)})}),c.length>0&&(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-output-open`,onClick:()=>r?.(e.toolCallId),className:`mt-2 flex w-full items-center gap-2 rounded-md border border-[var(--border-element)] bg-[var(--surface-base)] px-2.5 py-2 text-left transition-colors hover:bg-[var(--surface-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--border-focus)]`,children:[(0,J.jsx)(O,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-body-small-default text-[var(--content-secondary)]`,children:l}),(0,J.jsx)(b,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 text-[var(--content-tertiary)]`})]}),y&&(0,J.jsxs)(`div`,{className:`mt-2`,"data-testid":`acp-chat-tool-raw`,children:[(0,J.jsxs)(`button`,{type:`button`,"data-testid":`acp-chat-tool-raw-toggle`,"aria-expanded":i,onClick:()=>o(e=>!e),className:`flex items-center gap-1 text-body-small-default text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-default)]`,children:[i?(0,J.jsx)(v,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}):(0,J.jsx)(b,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0`}),(0,J.jsx)(`span`,{children:i?`Hide raw input/output`:`Show raw input/output`})]}),i&&(0,J.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-2`,children:[g!==void 0&&(0,J.jsx)(X,{label:`Raw input`,value:g,testId:`acp-chat-tool-raw-input`}),_!==void 0&&(0,J.jsx)(X,{label:`Raw output`,value:_,testId:`acp-chat-tool-raw-output`})]})]})]})}function Ne({content:e}){return(0,J.jsx)(`div`,{"data-testid":`acp-chat-user-turn`,className:`flex w-full justify-end`,children:(0,J.jsx)(`div`,{className:`max-w-[80%] rounded-lg bg-[var(--surface-lift)] px-4 py-3 whitespace-pre-wrap text-chat text-[var(--content-default)]`,children:e})})}function Pe({content:e,assistantId:t}){return(0,J.jsx)(`div`,{"data-testid":`acp-chat-command-output`,className:`rounded-lg border border-[var(--border-base)] bg-[var(--surface-overlay)] p-3 [&_pre]:!max-h-none`,children:(0,J.jsx)(D,{content:G(e),hardLineBreaks:!0,assistantId:t})})}var Z=2e3;function Q(e){if(e===``)return[];let t=e.split(`
4
4
  `);return e.endsWith(`
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-VkxVX0DM.js";import{t as r}from"./jsx-runtime-BJ8jcmzB.js";import{t as i}from"./typography-DekrYXvs.js";import{n as a,t as o,y as s}from"./message-content-C1CZhGIc.js";import{_ as c,a as l,f as u,g as d,i as f,r as p,v as m,y as h}from"./transcript-message-body-shared-DrK4B3Ph.js";import{t as g}from"./chevron-left-D29BeQ4x.js";import{t as _}from"./chat-markdown-message-BC-UF8DZ.js";import"./src-Ch3HTlFm.js";import"./i18n-DRUiM4wH.js";import{t as v}from"./useTranslation-CR3ZnQ9P.js";import{t as y}from"./workflow-store-CHfTybGB.js";import{t as b}from"./background-task-store-LBGlKur3.js";import{r as x}from"./acp-run-store-183gczJG.js";import{a as S,g as C,i as w,n as T,r as E,s as D,w as O,x as k}from"./site-favicon-D5ZGXA0F.js";import{t as A}from"./detail-shell-BhsB3DjJ.js";import{t as j}from"./use-transcript-message-by-id-DBNERn9w.js";import{ToolDetailBody as M,t as N}from"./tool-detail-panel-BcIGIX3-.js";var P=e(t(),1);function F(e,t,n){let r=f(t,n.workflow),i=e=>{let t=u(e,n.workflow.byToolUseId);if(t!==null&&r.has(t))return!0;let i=p(e,n.acpByToolUseId);if(i!==null&&n.acpById[i]!==void 0)return!0;let a=l(e);return a!==void 0&&n.backgroundTaskById[a]!==void 0},a=t.filter(e=>!i(e));if(a.length===t.length)return{items:e,toolCalls:t};let o=new Set(a.map(e=>e.id));return{items:e.filter(e=>e.kind!==`toolCall`||o.has(e.toolCall.id)),toolCalls:a}}function I(e,t){let n=j(e),r=y.use.byId(),i=y.use.byToolUseId(),s=y.use.notFoundRunIds(),c=y.use.hydrationFailedRunIds(),l=x.use.byId(),u=x.use.byToolUseId(),d=b.use.byId();return(0,P.useMemo)(()=>{if(!n||t==null)return null;let e=a(n.contentBlocks??[],{splitInlineThinking:n.role!==`user`})[t];if(!e||e.type!==`activity`)return null;let{cardItems:f,toolCalls:p}=o(e.items);return F(f,p,{workflow:{byId:r,byToolUseId:i,notFoundRunIds:s,hydrationFailedRunIds:c},acpById:l,acpByToolUseId:u,backgroundTaskById:d})},[n,t,r,i,s,c,l,u,d])}var L=r(),R=60;function z({payload:e,onClose:t,assistantId:r}){let{t:a}=v(`chat`),[o,s]=(0,P.useState)(null),l=I(e.messageId,e.groupIndex),u=l?.items??e.items,f=l?.toolCalls??e.toolCalls,p=h(u),_=c(p.steps),y=m(p.state,p.steps),b=y===`loading`,x=d(y,p.totalDurationLabel??``,_.failed),S=b&&p.currentStepTitle||x,w=new Map(f.map(e=>[e.id,e])),T=o?o.kind===`thinking`?`Thinking`:o.activity||o.title:``;return(0,L.jsx)(A,{icon:o?(0,L.jsx)(n,{variant:`outlined`,iconOnly:(0,L.jsx)(g,{}),"aria-label":a(`activityStepsPanel.backAria`),tooltip:a(`activityStepsPanel.backTooltip`),onClick:()=>s(null),className:`shrink-0`}):void 0,titleNode:o?(0,L.jsx)(i,{variant:`title-medium`,className:`min-w-0 shrink truncate py-0.5 leading-snug text-[var(--content-default)]`,children:T}):(0,L.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 py-0.5`,children:[(0,L.jsx)(i,{variant:`title-medium`,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:b?(0,L.jsx)(C,{children:S}):S}),p.stepCount?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{"aria-hidden":!0,className:`size-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}),(0,L.jsx)(i,{variant:`title-medium`,className:`shrink-0 whitespace-nowrap leading-snug text-[var(--content-secondary)]`,children:p.stepCount})]}):null]}),closeLabel:`Close steps`,onClose:t,children:o?(0,L.jsx)(V,{detail:o,assistantId:r}):(0,L.jsx)(D,{steps:p.steps,timeline:!0,renderStep:t=>(0,L.jsx)(B,{step:t,activeDetail:o,onOpenDetail:s,lookupToolCall:e=>w.get(e),messageId:e.messageId,groupIndex:e.groupIndex})})})}function B({step:e,activeDetail:t,onOpenDetail:n,lookupToolCall:r,messageId:i,groupIndex:a}){if(e.kind===`thinking`){let t=i!=null&&e.thinkingItemIndex!=null?{messageId:i,thinkingGroupIndex:a,thinkingItemIndex:e.thinkingItemIndex}:{};return(0,L.jsx)(w,{iconName:`brain`,label:s(O(e.text),R),ariaLabel:`View thinking`,active:!1,onClick:()=>n({kind:`thinking`,toolCallId:``,toolName:``,title:`Thinking`,activity:``,input:{},status:`completed`,thinkingText:e.text,...t})})}if(e.kind===`web_search`)return(0,L.jsx)(E,{step:e});if(e.kind===`web_search_error`)return(0,L.jsx)(T,{step:e});if(e.kind!==`tool`)return(0,L.jsx)(S,{step:e});let o=r(e.toolCallId);return(0,L.jsx)(w,{iconName:e.iconName,label:e.activity||e.info||e.title,active:t?.toolCallId===e.toolCallId,onClick:()=>{o&&n(k(o))}})}function V({detail:e,assistantId:t}){let n=N(e.kind===`thinking`?e.messageId:void 0,e.thinkingGroupIndex,e.thinkingItemIndex);return(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:e.kind===`thinking`?(0,L.jsx)(_,{content:n??e.thinkingText??``,hardLineBreaks:!0,assistantId:t}):(0,L.jsx)(M,{detail:e,assistantId:t})})}export{z as ActivityStepsPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-VkxVX0DM.js";import{t as r}from"./jsx-runtime-BJ8jcmzB.js";import{t as i}from"./typography-DekrYXvs.js";import{n as a,t as o,y as s}from"./message-content-C1CZhGIc.js";import{_ as c,a as l,f as u,g as d,i as f,r as p,v as m,y as h}from"./transcript-message-body-shared-DS8JbCqr.js";import{t as g}from"./chevron-left-D29BeQ4x.js";import{t as _}from"./chat-markdown-message-BqsUmDKK.js";import"./src-Ch3HTlFm.js";import"./i18n-DRUiM4wH.js";import{t as v}from"./useTranslation-CR3ZnQ9P.js";import{t as y}from"./workflow-store-CHfTybGB.js";import{t as b}from"./background-task-store-LBGlKur3.js";import{r as x}from"./acp-run-store-183gczJG.js";import{a as S,g as C,i as w,n as T,r as E,s as D,w as O,x as k}from"./site-favicon-D5ZGXA0F.js";import{t as A}from"./detail-shell-BhsB3DjJ.js";import{t as j}from"./use-transcript-message-by-id-L8Jru_cK.js";import{ToolDetailBody as M,t as N}from"./tool-detail-panel-DUHXkpz_.js";var P=e(t(),1);function F(e,t,n){let r=f(t,n.workflow),i=e=>{let t=u(e,n.workflow.byToolUseId);if(t!==null&&r.has(t))return!0;let i=p(e,n.acpByToolUseId);if(i!==null&&n.acpById[i]!==void 0)return!0;let a=l(e);return a!==void 0&&n.backgroundTaskById[a]!==void 0},a=t.filter(e=>!i(e));if(a.length===t.length)return{items:e,toolCalls:t};let o=new Set(a.map(e=>e.id));return{items:e.filter(e=>e.kind!==`toolCall`||o.has(e.toolCall.id)),toolCalls:a}}function I(e,t){let n=j(e),r=y.use.byId(),i=y.use.byToolUseId(),s=y.use.notFoundRunIds(),c=y.use.hydrationFailedRunIds(),l=x.use.byId(),u=x.use.byToolUseId(),d=b.use.byId();return(0,P.useMemo)(()=>{if(!n||t==null)return null;let e=a(n.contentBlocks??[],{splitInlineThinking:n.role!==`user`})[t];if(!e||e.type!==`activity`)return null;let{cardItems:f,toolCalls:p}=o(e.items);return F(f,p,{workflow:{byId:r,byToolUseId:i,notFoundRunIds:s,hydrationFailedRunIds:c},acpById:l,acpByToolUseId:u,backgroundTaskById:d})},[n,t,r,i,s,c,l,u,d])}var L=r(),R=60;function z({payload:e,onClose:t,assistantId:r}){let{t:a}=v(`chat`),[o,s]=(0,P.useState)(null),l=I(e.messageId,e.groupIndex),u=l?.items??e.items,f=l?.toolCalls??e.toolCalls,p=h(u),_=c(p.steps),y=m(p.state,p.steps),b=y===`loading`,x=d(y,p.totalDurationLabel??``,_.failed),S=b&&p.currentStepTitle||x,w=new Map(f.map(e=>[e.id,e])),T=o?o.kind===`thinking`?`Thinking`:o.activity||o.title:``;return(0,L.jsx)(A,{icon:o?(0,L.jsx)(n,{variant:`outlined`,iconOnly:(0,L.jsx)(g,{}),"aria-label":a(`activityStepsPanel.backAria`),tooltip:a(`activityStepsPanel.backTooltip`),onClick:()=>s(null),className:`shrink-0`}):void 0,titleNode:o?(0,L.jsx)(i,{variant:`title-medium`,className:`min-w-0 shrink truncate py-0.5 leading-snug text-[var(--content-default)]`,children:T}):(0,L.jsxs)(`span`,{className:`flex min-w-0 items-center gap-1.5 py-0.5`,children:[(0,L.jsx)(i,{variant:`title-medium`,className:`min-w-0 shrink truncate leading-snug text-[var(--content-default)]`,children:b?(0,L.jsx)(C,{children:S}):S}),p.stepCount?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`span`,{"aria-hidden":!0,className:`size-[3px] shrink-0 rounded-full bg-[var(--content-tertiary)]`}),(0,L.jsx)(i,{variant:`title-medium`,className:`shrink-0 whitespace-nowrap leading-snug text-[var(--content-secondary)]`,children:p.stepCount})]}):null]}),closeLabel:`Close steps`,onClose:t,children:o?(0,L.jsx)(V,{detail:o,assistantId:r}):(0,L.jsx)(D,{steps:p.steps,timeline:!0,renderStep:t=>(0,L.jsx)(B,{step:t,activeDetail:o,onOpenDetail:s,lookupToolCall:e=>w.get(e),messageId:e.messageId,groupIndex:e.groupIndex})})})}function B({step:e,activeDetail:t,onOpenDetail:n,lookupToolCall:r,messageId:i,groupIndex:a}){if(e.kind===`thinking`){let t=i!=null&&e.thinkingItemIndex!=null?{messageId:i,thinkingGroupIndex:a,thinkingItemIndex:e.thinkingItemIndex}:{};return(0,L.jsx)(w,{iconName:`brain`,label:s(O(e.text),R),ariaLabel:`View thinking`,active:!1,onClick:()=>n({kind:`thinking`,toolCallId:``,toolName:``,title:`Thinking`,activity:``,input:{},status:`completed`,thinkingText:e.text,...t})})}if(e.kind===`web_search`)return(0,L.jsx)(E,{step:e});if(e.kind===`web_search_error`)return(0,L.jsx)(T,{step:e});if(e.kind!==`tool`)return(0,L.jsx)(S,{step:e});let o=r(e.toolCallId);return(0,L.jsx)(w,{iconName:e.iconName,label:e.activity||e.info||e.title,active:t?.toolCallId===e.toolCallId,onClick:()=>{o&&n(k(o))}})}function V({detail:e,assistantId:t}){let n=N(e.kind===`thinking`?e.messageId:void 0,e.thinkingGroupIndex,e.thinkingItemIndex);return(0,L.jsx)(`div`,{className:`flex flex-col gap-4`,children:e.kind===`thinking`?(0,L.jsx)(_,{content:n??e.thinkingText??``,hardLineBreaks:!0,assistantId:t}):(0,L.jsx)(M,{detail:e,assistantId:t})})}export{z as ActivityStepsPanel};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-VkxVX0DM.js";import{n as r}from"./QueryClientProvider-EuRl-wrW.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{t as a}from"./createLucideIcon-B-ZPaMbU.js";import{t as o}from"./external-link-DCA91uI6.js";import{t as s}from"./puzzle-C5CgkzuA.js";import"./src-Ch3HTlFm.js";import{n as c}from"./toast-ZCXyBjoj.js";import{t as l}from"./confirm-dialog--7V28331.js";import{n as u,t as d}from"./create-selectors-CmDroXTn.js";import{t as f}from"./sdk.gen-D0GK8o-1.js";import{i as p}from"./typed-storage-CjQf5zi2.js";import{i as m}from"./react-query.gen-pBlyOJpJ.js";import{s as h}from"./viewer-store-D2m1Yxpg.js";import{t as g}from"./misc-DhtXN69E.js";import{a as _}from"./sandbox-bridge-BB8ttM1G.js";var v=a(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),y=a(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),b=e(t(),1),x=i();function S(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.appId==`string`&&typeof t.pinnedOrder==`number`&&Number.isFinite(t.pinnedOrder)&&typeof t.name==`string`&&(t.icon===void 0||typeof t.icon==`string`)&&(t.color===void 0||typeof t.color==`string`)}function C(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(S):null}var w=p({key:`vellum:pinnedApps`,scope:`user`,parse:C,serialize:JSON.stringify,fallback:[]}),T=w.load;w.save;var E=w.subscribe;function D(e){let t=w.load();if(t.some(t=>t.appId===e.id))return;let n=t.reduce((e,t)=>Math.max(e,t.pinnedOrder),0);w.save([...t,{appId:e.id,pinnedOrder:n+1,name:e.name,icon:e.icon}])}function O(e){let t=w.load().filter(t=>t.appId!==e);t=t.sort((e,t)=>e.pinnedOrder-t.pinnedOrder).map((e,t)=>({...e,pinnedOrder:t+1})),w.save(t)}function k(e,t){let n=w.load();n.some(t=>t.appId===e)&&w.save(n.map(n=>{if(n.appId!==e)return n;let{color:r,...i}=n;return t===null?i:{...i,color:t}}))}var A=new Set;function j(e){return{pinnedApps:e,pinnedAppIds:new Set(e.map(e=>e.appId))}}function M(){let e=N.getState(),t=T();if(t===e.pinnedApps)return;let n=j(t);N.setState(n);for(let t of e.pinnedAppIds)if(!n.pinnedAppIds.has(t))for(let e of A)e(t)}var N=u()((e,t)=>({...j(T()),togglePin:e=>{t().pinnedAppIds.has(e.id)?t().unpin(e.id):(D(e),M())},unpin:e=>{t().pinnedAppIds.has(e)&&(O(e),M())},setColor:(e,n)=>{t().pinnedAppIds.has(e)&&(k(e,n),M())},isPinned:e=>t().pinnedAppIds.has(e),onUnpin:e=>(A.add(e),()=>{A.delete(e)})}));E(M);var P=d(N);function F({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,x.jsx)(l,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function I(e){let t=r(),n=P.use.togglePin(),i=P.use.pinnedAppIds(),[a,o]=(0,b.useState)(null),[s,l]=(0,b.useState)(!1);return{pendingDelete:a,isDeleting:s,requestDelete:o,confirmDelete:(0,b.useCallback)(async()=>{if(!(!a||s)){l(!0);try{await f({path:{assistant_id:e,id:a.id},throwOnError:!0}),h(e,a.id),t.invalidateQueries({queryKey:m({path:{assistant_id:e}})}),i.has(a.id)&&n(a),o(null)}catch(e){c.error(e instanceof Error?e.message:`Failed to delete app`)}finally{l(!1)}}},[a,s,e,i,n,t]),cancelDelete:(0,b.useCallback)(()=>{s||o(null)},[s])}}function L({name:e,description:t,icon:r,loadHtml:i,isPinned:a=!1,isLoading:s=!1,isOpenDisabled:c=!1,isPreviewPending:l=!1,onOpen:u,onPin:d}){return(0,x.jsxs)(`div`,{className:g(`flex flex-col gap-2 rounded-xl border border-[var(--border-base)]`,`bg-[var(--surface-lift)] p-3`),children:[(0,x.jsx)(R,{name:e,icon:r,loadHtml:l?void 0:i,isLoading:s,isPreviewPending:l}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-0.5 px-0.5`,children:[(0,x.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:[r?(0,x.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:r}):null,(0,x.jsx)(`span`,{className:`truncate`,children:e})]}),t?(0,x.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-secondary)]`,children:t}):null]}),(0,x.jsxs)(`div`,{className:`flex items-center gap-1.5 px-0.5`,children:[(0,x.jsx)(n,{variant:`primary`,leftIcon:(0,x.jsx)(o,{}),onClick:u,disabled:c||u==null,children:`Open App`}),(0,x.jsx)(n,{variant:`outlined`,leftIcon:a?(0,x.jsx)(v,{}):(0,x.jsx)(y,{}),onClick:d,disabled:d==null,children:a?`Unpin`:`Pin`})]})]})}function R({name:e,icon:t,loadHtml:n,isLoading:r=!1,isPreviewPending:i=!1,className:a}){let o=(0,b.useRef)(null),[c,l]=(0,b.useState)(null),[u,d]=(0,b.useState)(!1);return(0,b.useEffect)(()=>{if(n==null)return;let e=o.current;if(!e||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(d(!0),t.disconnect())},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[n]),(0,b.useEffect)(()=>{if(!u||n==null)return;let e=!1;return n().then(t=>{e||l(t)}).catch(()=>{}),()=>{e=!0}},[u,n]),(0,x.jsxs)(`div`,{ref:o,className:g(`relative aspect-[16/10] w-full overflow-hidden rounded-lg`,`border border-[var(--border-base)] bg-[var(--surface-base)]`,a),children:[(0,x.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:i?null:t?(0,x.jsx)(`span`,{className:`text-4xl`,children:t}):(0,x.jsx)(s,{size:32,className:`text-[var(--content-tertiary)]`})}),c!=null&&(0,x.jsx)(`iframe`,{srcDoc:_(c),sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,title:`${e} preview`,"aria-hidden":`true`,tabIndex:-1,loading:`lazy`,scrolling:`no`,className:`absolute left-0 top-0 border-none bg-[var(--surface-base)]`,style:{width:`200%`,height:`200%`,transform:`scale(0.5)`,transformOrigin:`top left`,pointerEvents:`none`}}),r&&(0,x.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[var(--surface-base)]/60 backdrop-blur-sm`,children:(0,x.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`})})]})}export{P as a,F as i,R as n,y as o,I as r,v as s,L as t};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-BFJW0bSv.js";import{t as n}from"./button-VkxVX0DM.js";import{n as r}from"./QueryClientProvider-EuRl-wrW.js";import{t as i}from"./jsx-runtime-BJ8jcmzB.js";import{t as a}from"./createLucideIcon-B-ZPaMbU.js";import{t as o}from"./external-link-DCA91uI6.js";import{t as s}from"./puzzle-C5CgkzuA.js";import"./src-Ch3HTlFm.js";import{n as c}from"./toast-ZCXyBjoj.js";import{t as l}from"./confirm-dialog--7V28331.js";import{n as u,t as d}from"./create-selectors-CmDroXTn.js";import{t as f}from"./sdk.gen-D0GK8o-1.js";import{i as p}from"./typed-storage-CjQf5zi2.js";import{i as m}from"./react-query.gen-pBlyOJpJ.js";import{s as h}from"./viewer-store-CtlZXr5r.js";import{t as g}from"./misc-DhtXN69E.js";import{a as _}from"./sandbox-bridge-BB8ttM1G.js";var v=a(`pin-off`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89`,key:`znwnzq`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11`,key:`c9qhm2`}]]),y=a(`pin`,[[`path`,{d:`M12 17v5`,key:`bb1du9`}],[`path`,{d:`M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z`,key:`1nkz8b`}]]),b=e(t(),1),x=i();function S(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.appId==`string`&&typeof t.pinnedOrder==`number`&&Number.isFinite(t.pinnedOrder)&&typeof t.name==`string`&&(t.icon===void 0||typeof t.icon==`string`)&&(t.color===void 0||typeof t.color==`string`)}function C(e){let t=JSON.parse(e);return Array.isArray(t)?t.filter(S):null}var w=p({key:`vellum:pinnedApps`,scope:`user`,parse:C,serialize:JSON.stringify,fallback:[]}),T=w.load;w.save;var E=w.subscribe;function D(e){let t=w.load();if(t.some(t=>t.appId===e.id))return;let n=t.reduce((e,t)=>Math.max(e,t.pinnedOrder),0);w.save([...t,{appId:e.id,pinnedOrder:n+1,name:e.name,icon:e.icon}])}function O(e){let t=w.load().filter(t=>t.appId!==e);t=t.sort((e,t)=>e.pinnedOrder-t.pinnedOrder).map((e,t)=>({...e,pinnedOrder:t+1})),w.save(t)}function k(e,t){let n=w.load();n.some(t=>t.appId===e)&&w.save(n.map(n=>{if(n.appId!==e)return n;let{color:r,...i}=n;return t===null?i:{...i,color:t}}))}var A=new Set;function j(e){return{pinnedApps:e,pinnedAppIds:new Set(e.map(e=>e.appId))}}function M(){let e=N.getState(),t=T();if(t===e.pinnedApps)return;let n=j(t);N.setState(n);for(let t of e.pinnedAppIds)if(!n.pinnedAppIds.has(t))for(let e of A)e(t)}var N=u()((e,t)=>({...j(T()),togglePin:e=>{t().pinnedAppIds.has(e.id)?t().unpin(e.id):(D(e),M())},unpin:e=>{t().pinnedAppIds.has(e)&&(O(e),M())},setColor:(e,n)=>{t().pinnedAppIds.has(e)&&(k(e,n),M())},isPinned:e=>t().pinnedAppIds.has(e),onUnpin:e=>(A.add(e),()=>{A.delete(e)})}));E(M);var P=d(N);function F({app:e,isDeleting:t,onConfirm:n,onCancel:r}){return(0,x.jsx)(l,{open:e!==null,title:`Delete app`,message:e?`"${e.name}" will be permanently removed.`:``,confirmLabel:t?`Deleting…`:`Delete`,destructive:!0,onConfirm:n,onCancel:r})}function I(e){let t=r(),n=P.use.togglePin(),i=P.use.pinnedAppIds(),[a,o]=(0,b.useState)(null),[s,l]=(0,b.useState)(!1);return{pendingDelete:a,isDeleting:s,requestDelete:o,confirmDelete:(0,b.useCallback)(async()=>{if(!(!a||s)){l(!0);try{await f({path:{assistant_id:e,id:a.id},throwOnError:!0}),h(e,a.id),t.invalidateQueries({queryKey:m({path:{assistant_id:e}})}),i.has(a.id)&&n(a),o(null)}catch(e){c.error(e instanceof Error?e.message:`Failed to delete app`)}finally{l(!1)}}},[a,s,e,i,n,t]),cancelDelete:(0,b.useCallback)(()=>{s||o(null)},[s])}}function L({name:e,description:t,icon:r,loadHtml:i,isPinned:a=!1,isLoading:s=!1,isOpenDisabled:c=!1,isPreviewPending:l=!1,onOpen:u,onPin:d}){return(0,x.jsxs)(`div`,{className:g(`flex flex-col gap-2 rounded-xl border border-[var(--border-base)]`,`bg-[var(--surface-lift)] p-3`),children:[(0,x.jsx)(R,{name:e,icon:r,loadHtml:l?void 0:i,isLoading:s,isPreviewPending:l}),(0,x.jsxs)(`div`,{className:`flex flex-col gap-0.5 px-0.5`,children:[(0,x.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-body-large-default text-[color:var(--content-emphasised)]`,children:[r?(0,x.jsx)(`span`,{"aria-hidden":!0,className:`leading-none`,children:r}):null,(0,x.jsx)(`span`,{className:`truncate`,children:e})]}),t?(0,x.jsx)(`span`,{className:`truncate text-body-medium-default text-[color:var(--content-secondary)]`,children:t}):null]}),(0,x.jsxs)(`div`,{className:`flex items-center gap-1.5 px-0.5`,children:[(0,x.jsx)(n,{variant:`primary`,leftIcon:(0,x.jsx)(o,{}),onClick:u,disabled:c||u==null,children:`Open App`}),(0,x.jsx)(n,{variant:`outlined`,leftIcon:a?(0,x.jsx)(v,{}):(0,x.jsx)(y,{}),onClick:d,disabled:d==null,children:a?`Unpin`:`Pin`})]})]})}function R({name:e,icon:t,loadHtml:n,isLoading:r=!1,isPreviewPending:i=!1,className:a}){let o=(0,b.useRef)(null),[c,l]=(0,b.useState)(null),[u,d]=(0,b.useState)(!1);return(0,b.useEffect)(()=>{if(n==null)return;let e=o.current;if(!e||typeof IntersectionObserver>`u`)return;let t=new IntersectionObserver(([e])=>{e?.isIntersecting&&(d(!0),t.disconnect())},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[n]),(0,b.useEffect)(()=>{if(!u||n==null)return;let e=!1;return n().then(t=>{e||l(t)}).catch(()=>{}),()=>{e=!0}},[u,n]),(0,x.jsxs)(`div`,{ref:o,className:g(`relative aspect-[16/10] w-full overflow-hidden rounded-lg`,`border border-[var(--border-base)] bg-[var(--surface-base)]`,a),children:[(0,x.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,children:i?null:t?(0,x.jsx)(`span`,{className:`text-4xl`,children:t}):(0,x.jsx)(s,{size:32,className:`text-[var(--content-tertiary)]`})}),c!=null&&(0,x.jsx)(`iframe`,{srcDoc:_(c),sandbox:`allow-scripts`,referrerPolicy:`no-referrer`,title:`${e} preview`,"aria-hidden":`true`,tabIndex:-1,loading:`lazy`,scrolling:`no`,className:`absolute left-0 top-0 border-none bg-[var(--surface-base)]`,style:{width:`200%`,height:`200%`,transform:`scale(0.5)`,transformOrigin:`top left`,pointerEvents:`none`}}),r&&(0,x.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-[var(--surface-base)]/60 backdrop-blur-sm`,children:(0,x.jsx)(`div`,{className:`h-5 w-5 animate-spin rounded-full border-2 border-[var(--border-base)] border-t-[var(--primary-base)]`})})]})}export{P as a,F as i,R as n,y as o,I as r,v as s,L as t};
@@ -1 +1 @@
1
- import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-u47kRfIQ.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-BJ8jcmzB.js";import{t as i}from"./typography-DekrYXvs.js";import{r as a,t as o}from"./background-task-actions-D4DT9M4H.js";import"./src-Ch3HTlFm.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-LBGlKur3.js";import{t as d}from"./detail-shell-BhsB3DjJ.js";import{n as f,t as p}from"./status-badge-pill-DCEE1meW.js";import{CodeBlock as m,SectionLabel as h}from"./tool-detail-panel-BcIGIX3-.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(p,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,p=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(f,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(h,{children:`Command`}),(0,_.jsx)(m,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(h,{children:`Output`}),(0,_.jsx)(m,{text:e.output})]}),p&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-u47kRfIQ.js";import{t as n}from"./react-BFJW0bSv.js";import{t as r}from"./jsx-runtime-BJ8jcmzB.js";import{t as i}from"./typography-DekrYXvs.js";import{r as a,t as o}from"./background-task-actions-D4DT9M4H.js";import"./src-Ch3HTlFm.js";import{a as s,i as c,n as l,r as u}from"./background-task-store-LBGlKur3.js";import{t as d}from"./detail-shell-BhsB3DjJ.js";import{n as f,t as p}from"./status-badge-pill-DCEE1meW.js";import{CodeBlock as m,SectionLabel as h}from"./tool-detail-panel-DUHXkpz_.js";var g=e(n(),1),_=r();function v({status:e}){return(0,_.jsx)(p,{color:l(e),label:u(e)})}function y({entry:e,onClose:n}){let r=s(e.status),l=!r,u=l&&e.output!==void 0&&e.output!==``,p=l&&e.exitCode!=null,[y,b]=(0,g.useState)(!1),x=(0,g.useCallback)(()=>{b(!0),o(e.id).catch(e=>{b(!1),t(e,{context:`BackgroundTaskDetailPanel.stop`})})},[e.id]);return(0,_.jsxs)(d,{Glyph:a(e.toolName),title:c(e.status),headerTrailing:(0,_.jsx)(v,{status:e.status}),headerActions:r?(0,_.jsx)(f,{onStop:x,ariaLabel:`Stop command`,disabled:y}):void 0,closeVariant:`outlined`,closeLabel:`Close task detail`,onClose:n,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(h,{children:`Command`}),(0,_.jsx)(m,{text:e.command})]}),u&&(0,_.jsxs)(`div`,{className:`mt-5`,children:[(0,_.jsx)(h,{children:`Output`}),(0,_.jsx)(m,{text:e.output})]}),p&&(0,_.jsxs)(i,{variant:`body-small-default`,as:`p`,className:`mt-2 text-[var(--content-tertiary)]`,children:[`Exit code: `,e.exitCode]})]})}export{y as BackgroundTaskDetailPanel};
@@ -1,3 +1,3 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-D0A3kApD.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-Cv2QeVDK.js","assets/is-electron-C9-jl_HE.js","assets/dist-BvgLnwN-.js"])))=>i.map(i=>d[i]);
2
- import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./capture-error-u47kRfIQ.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-VkxVX0DM.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{d as o,h as s,t as c,u as l}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as u}from"./QueryClientProvider-EuRl-wrW.js";import{t as d}from"./useQuery-CTSuec5b.js";import{t as f}from"./useInfiniteQuery-C5Kg1-qX.js";import{t as p}from"./useMutation-D2YPyfEH.js";import{t as m}from"./jsx-runtime-BJ8jcmzB.js";import{t as h}from"./typography-DekrYXvs.js";import{t as g}from"./card-DUsAeHUS.js";import{d as _,o as v,s as y}from"./list-row-D1odQOMJ.js";import{t as b}from"./createLucideIcon-B-ZPaMbU.js";import{t as x}from"./arrow-left-Ciai6BHG.js";import{t as S}from"./check-NGUguBHp.js";import{t as C}from"./chevron-down-D1ho6wFA.js";import{t as w}from"./chevron-up-bJ8SGTC_.js";import{t as T}from"./circle-check-BQyrCkaB.js";import{t as E}from"./coins-WH-N-3B8.js";import{A as D,D as O,E as k,F as A,L as j,M,N,O as ee,P,S as F,_ as I,a as te,b as ne,c as re,f as ie,g as ae,h as oe,i as se,l as L,m as R,n as z,o as B,p as ce,r as le,s as V,t as ue,u as de,v as fe,w as pe,z as me}from"./use-checkout-dismiss-refresh-kgDwvNiF.js";import{c as he,i as ge,l as _e,n as ve,o as ye,r as be,s as xe,t as Se,u as Ce}from"./format-usd-C3StL3Eq.js";import{t as we}from"./download-C7_XK23s.js";import{t as Te}from"./external-link-DCA91uI6.js";import{t as Ee}from"./info-D0qquAkS.js";import{t as H}from"./loader-circle-C9QjVTuc.js";import{t as De}from"./sparkles-DvB22tVW.js";import{t as Oe}from"./triangle-alert-B-18Pims.js";import{t as ke}from"./users-BHqL5Ion.js";import{t as Ae}from"./x-zfSDUG5z.js";import{t as U}from"./notice-C_AsX_o9.js";import{a as je}from"./src-Ch3HTlFm.js";import{t as Me}from"./tag-Ddzwz3ij.js";import{t as W}from"./input-DkgpMeG9.js";import{t as Ne}from"./toggle-0qt1e_3r.js";import{t as G}from"./modal-UYNawsIu.js";import{n as K}from"./toast-ZCXyBjoj.js";import{t as Pe}from"./confirm-dialog--7V28331.js";import{t as Fe}from"./select-D133FK9g.js";import{s as Ie}from"./i18n-DRUiM4wH.js";import{t as q}from"./useTranslation-CR3ZnQ9P.js";import{a as Le,n as Re,t as ze}from"./api-errors-DpVX2w7j.js";import{l as Be,o as Ve}from"./auth-store-CajhmgnD.js";import{_t as He,vt as Ue}from"./sdk.gen-CkhDi3vq.js";import{Rr as We}from"./sdk.gen-D0GK8o-1.js";import{T as Ge}from"./native-biometric-Brvijc3Q.js";import{d as Ke}from"./routes-CZi85r7Q.js";import{i as qe,r as Je,t as Ye}from"./use-platform-gate-C4SOu0gj.js";import{r as Xe}from"./use-is-org-ready-DWQ9ObFx.js";import{Jt as Ze,Tt as Qe,Xt as $e,Yt as et,Zt as tt,p as nt,u as rt}from"./react-query.gen-pBlyOJpJ.js";import{n as it,r as at}from"./browser-DCvedB5v.js";import{$ as ot,B as st,G as ct,H as lt,J as ut,K as dt,Mt as ft,R as pt,St as mt,U as ht,V as gt,W as _t,X as vt,Y as yt,_t as bt,at as xt,ct as St,et as Ct,gt as wt,ht as Tt,it as Et,mt as Dt,nt as Ot,ot as kt,pt as At,q as jt,rt as Mt,st as Nt,tt as Pt,ut as Ft,vt as It,wt as Lt,xt as Rt,yt as zt,z as Bt}from"./react-query.gen-DpAT6NiB.js";import{n as Vt,r as Ht}from"./conversation-navigation-CmWIQkd1.js";import{n as Ut}from"./use-is-mobile-DVK9FG8g.js";import{t as Wt}from"./effective-timezone-C1s4HVfd.js";import{t as Gt}from"./use-effective-timezone-x_AWyUHK.js";import{t as Kt}from"./misc-DhtXN69E.js";import{t as qt}from"./copy-to-clipboard-DxFqp8rD.js";import{t as Jt}from"./platform-login-notice-B36EKhir.js";import{t as Yt}from"./use-active-assistant-id-ByjxM30e.js";import{n as Xt}from"./format-date-Bc0aleB8.js";import{t as Zt}from"./schedules-DqSQrRcy.js";import{t as Qt}from"./checkout-return-target-CnC2pToL.js";import{t as $t}from"./add-credits-modal-QPfLWaOo.js";import{t as en}from"./link-click-bjUBlnyB.js";import{a as tn,i as nn,r as rn,t as an}from"./profile-metadata-C1u3_uD8.js";var on=b(`crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),sn=b(`tree-palm`,[[`path`,{d:`M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4`,key:`foxbe7`}],[`path`,{d:`M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3`,key:`18arnh`}],[`path`,{d:`M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35`,key:`ywahnh`}],[`path`,{d:`M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14`,key:`ft0feo`}]]),J=e(r(),1);function cn(e){return e.get(`tab`)===`billing`||e.has(`adjust_plan`)||e.has(`pro_onboarding`)||e.has(`billing_status`)||e.has(`session_id`)}function ln(e,t){return e===`full`?!0:e===`disabled`?cn(t):!1}var Y=m();function un({open:e,onOpenChange:t,amountUsd:n}){let{t:r}=q(`settings`),a=u(),o=p(dt()),s=o.isPending,c=ve(n);return(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{!e&&s||t(e)},children:(0,Y.jsxs)(G.Content,{size:`sm`,"data-testid":`checkout-bonus-modal`,children:[(0,Y.jsx)(G.Header,{icon:_e,children:(0,Y.jsx)(G.Title,{children:r(`checkoutBonusModal.title`,{amount:c})})}),(0,Y.jsx)(G.Body,{children:(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:r(`checkoutBonusModal.body`,{amount:c})})}),(0,Y.jsxs)(G.Footer,{children:[(0,Y.jsx)(G.Close,{asChild:!0,children:(0,Y.jsx)(i,{variant:`outlined`,disabled:s,children:r(`checkoutBonusModal.decline`)})}),(0,Y.jsx)(i,{variant:`primary`,leftIcon:s?(0,Y.jsx)(H,{className:`animate-spin`}):void 0,onClick:()=>{s||o.mutate({},{onSuccess:e=>{e.status===`granted`?(K.success(r(`checkoutBonusModal.grantedToast`,{amount:ve(e.amount_usd)})),a.invalidateQueries(It())):K.info(r(`checkoutBonusModal.unavailableToast`)),a.invalidateQueries(jt()),t(!1)},onError:()=>{K.error(r(`checkoutBonusModal.errorToast`))}})},disabled:s,"data-testid":`claim-checkout-bonus-button`,children:r(`checkoutBonusModal.claim`,{amount:c})})]})]})})}function dn(e){let t=Xe(),n=u(),r=e!==null,{data:i,dataUpdatedAt:a}=d({...jt(),enabled:r&&t,staleTime:0,refetchOnWindowFocus:!1}),o=(0,J.useRef)(e);return(0,J.useEffect)(()=>{let t=o.current;o.current=e,!(e===null||e===t||t===null)&&n.invalidateQueries(jt())},[e,n]),{showOffer:r&&i?.eligible===!0&&a>=e,amountUsd:i?.amount_usd??`0.00`}}function fn(e){if(!e)return{};let t={};for(let n of e.callSites)!n.id||!n.displayName||(t[n.id]={id:n.id,displayName:n.displayName,description:n.description,domain:n.domain});return t}function pn(e){return Number.isFinite(e)?Math.round(e).toLocaleString():`0`}function mn(e){return!Number.isFinite(e)||e===0?`$0.00`:`$${e.toFixed(2)}`}var hn=`model`,gn={model:`Model`,task:`Action`,profile:`Profile`},_n=[{value:`model`,label:gn.model},{value:`task`,label:gn.task},{value:`profile`,label:gn.profile}];function vn(e){return e===`model`||e===`task`||e===`profile`}function yn(e){switch(e){case`model`:return`model`;case`task`:return`call_site`;case`profile`:return`inference_profile`}}function bn(e){switch(e){case`model`:return`model`;case`task`:return`llm_call_site`;case`profile`:return`inference_profile`}}function xn(e,t,n){if(e===`task`){let e=t.groupKey;return e?n.callSites?.[e]?.displayName??t.group:t.group}if(e===`profile`){let e=t.groupKey;return e?n.profiles?.[e]?.displayName??t.group:t.group||`Default / Unset`}return t.group}function Sn(e,t,n){return!e||e.length===0?[]:e.map(e=>{let r=xn(t,e,n);return r===e.group?e:{...e,group:r}})}var Cn=6,wn=`value:`,Tn=`null:`;function En(e,t=`schedule`){return e===null?`${Tn}${vn(t)?yn(t):t}`:`${wn}${e}`}function Dn(e){return[...e].sort((e,t)=>{if(e.date!==t.date)return e.date<t.date?-1:1;let n=Mn(e.bucketId),r=Mn(t.bucketId);return n===r?e.bucketId===t.bucketId?0:e.bucketId<t.bucketId?-1:1:n-r})}function On(e){return e.map(e=>({bucketId:e.bucketId,date:e.date,displayLabel:e.displayLabel,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,groups:{}}))}function kn(e,t,n){return t!==`task`&&t!==`profile`?[...e]:e.map(e=>{let r=!1,i={};for(let[a,o]of Object.entries(e.groups)){let e=xn(t,jn(o),n);e===o.group?i[a]=o:(r=!0,i[a]={...o,group:e})}return r?{...e,groups:i}:e})}function An(e){let t=new Map;for(let n of e)for(let[e,r]of Object.entries(n.groups)){let n=t.get(e);t.set(e,{label:n?.label??r.group,totalEstimatedCostUsd:(n?.totalEstimatedCostUsd??0)+r.totalEstimatedCostUsd})}let n=Array.from(t.entries()).sort(([e,t],[n,r])=>t.totalEstimatedCostUsd===r.totalEstimatedCostUsd?t.label===r.label?e===n?0:e<n?-1:1:t.label<r.label?-1:1:r.totalEstimatedCostUsd-t.totalEstimatedCostUsd).map(([e,t],n)=>({seriesKey:e,label:t.label,totalEstimatedCostUsd:t.totalEstimatedCostUsd,colorIndex:n}));return{items:n,visibleItems:n.slice(0,Cn)}}function jn(e){return{group:e.group,groupId:e.groupKey,groupKey:e.groupKey,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalCacheCreationTokens:0,totalCacheReadTokens:0,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,turnCount:null}}function Mn(e){let t=e.lastIndexOf(`|`);if(t<0)return 0;let n=Number(e.slice(t+1));return Number.isFinite(n)?n:0}var Nn=140,Pn=40,Fn=28,In=2,Ln=2,Rn=1e-6,zn=12,Bn=220,Vn=56,Hn=[40,80,60,100,50,70,30],Un=[18,24,28,35,42,50,64,78,92,106,118,96,84,74,68,80,88,72,56,48,40,34,26,20],Wn=[`var(--usage-trend-stack-positive, var(--system-positive-strong, #10b981))`,`var(--usage-trend-stack-info, var(--system-info-strong, #3b82f6))`,`var(--usage-trend-stack-mid, var(--system-mid-strong, #f59e0b))`,`var(--usage-trend-stack-secondary, var(--content-secondary, #6b7280))`,`var(--usage-trend-stack-negative, var(--system-negative-strong, #f87171))`,`var(--usage-trend-stack-tertiary, var(--content-tertiary, #9ca3af))`];function Gn(e){return Wn[e%Wn.length]}function Kn(e){return e.displayLabel?e.displayLabel:e.date}function qn(e,t){let n=e+zn,r=t+zn;return n+Bn>window.innerWidth&&(n=e-Bn-zn),r+Vn>window.innerHeight&&(r=t-Vn-zn),{x:n,y:r}}function Jn({buckets:e,isHourly:t,legendItems:n}){let{t:r}=q(`settings`),[i,a]=(0,J.useState)(null),o=(0,J.useMemo)(()=>Dn(e),[e]),s=(0,J.useMemo)(()=>An(e),[e]),c=n??s.items,l=n??s.visibleItems,u=(0,J.useMemo)(()=>o.reduce((e,t)=>Math.max(e,t.totalEstimatedCostUsd),0),[o]),d=(0,J.useCallback)((e,t)=>{let n=qn(e.clientX,e.clientY);a({...t,x:n.x,y:n.y})},[]),f=(0,J.useCallback)(()=>a(null),[]);if(o.length===0){let e=(0,Y.jsx)($n,{title:r(t?`usageTrendChart.noHourlyData`:`usageTrendChart.noDailyData`),subtitle:r(`usageTrendChart.noUsageInRange`)});return l.length===0?e:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,(0,Y.jsx)(Qn,{items:l})]})}let p=t?Fn:Pn;return(0,Y.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${Nn}px`},"aria-hidden":`true`,children:o.map(e=>{let t=u>0?e.totalEstimatedCostUsd/u:0,r=Math.max(In,Nn*t);return(0,Y.jsx)(`div`,{className:`flex items-end`,style:{width:`${p}px`,minWidth:`${p}px`,height:`${r}px`,opacity:e.totalEstimatedCostUsd>0?1:.3},title:`${Kn(e)}: ${mn(e.totalEstimatedCostUsd)}`,"data-usage-series-bar":e.bucketId,children:(0,Y.jsx)(Xn,{bucket:e,height:r,legendItems:c,hasLegendOverride:n!=null,onSegmentHover:d,onSegmentLeave:f})},e.bucketId)})}),(0,Y.jsx)(`div`,{className:`flex items-start gap-2`,children:o.map(e=>(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,style:{width:`${p}px`,minWidth:`${p}px`},children:[(0,Y.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-secondary)`},children:mn(e.totalEstimatedCostUsd)}),(0,Y.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`},children:Kn(e)})]},e.bucketId))}),l.length>0?(0,Y.jsx)(Qn,{items:l}):null]}),i?(0,Y.jsx)(Zn,{tooltip:i}):null]})}function Yn({isHourly:e}){let t=e?Un:Hn,n=e?Fn:Pn;return(0,Y.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${Nn}px`},"aria-hidden":`true`,children:t.map((e,t)=>(0,Y.jsx)(`div`,{className:`rounded-sm`,style:{width:`${n}px`,height:`${e}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}},t))})}function Xn({bucket:e,height:t,legendItems:n,hasLegendOverride:r,onSegmentHover:i,onSegmentLeave:a}){let o=Object.keys(e.groups).length>0,s=n.filter(e=>(e.state??`active`)===`active`).flatMap(t=>{let n=e.groups[t.seriesKey];return!n||n.totalEstimatedCostUsd<=0?[]:[{item:t,value:n}]});if(s.length===0&&!o&&!r){let n=Kn(e),r={label:Ie(`settings:usageTrendChart.total`),bucketLabel:n,cost:mn(e.totalEstimatedCostUsd)};return(0,Y.jsx)(`div`,{className:`w-full rounded-sm`,title:`${r.label}: ${r.cost}`,onMouseEnter:e=>i(e,r),onMouseMove:e=>i(e,r),onMouseLeave:a,style:{height:`${t}px`,background:Gn(0)},"data-usage-series-segment-label":r.label,"data-usage-fallback-segment":`true`})}return s.length===0?null:(0,Y.jsx)(`div`,{className:`flex w-full flex-col-reverse overflow-hidden rounded-sm`,style:{height:`${t}px`},"data-usage-series-stack":e.bucketId,children:s.map(({item:n,value:r})=>{let o={label:n.label,bucketLabel:Kn(e),cost:mn(r.totalEstimatedCostUsd)};return(0,Y.jsx)(`div`,{title:`${o.label}: ${o.cost}`,onMouseEnter:e=>i(e,o),onMouseMove:e=>i(e,o),onMouseLeave:a,style:{height:`${Math.max(Ln,t*r.totalEstimatedCostUsd/Math.max(e.totalEstimatedCostUsd,Rn))}px`,background:Gn(n.colorIndex)},"data-usage-series-segment":n.seriesKey,"data-usage-series-segment-label":n.label,"data-usage-series-color-index":n.colorIndex},n.seriesKey)})})}function Zn({tooltip:e}){return(0,Y.jsxs)(`div`,{className:`pointer-events-none fixed z-50 max-w-[220px] rounded-md border px-2 py-1 shadow-xl`,style:{left:`${e.x}px`,top:`${e.y}px`,background:`var(--surface-overlay, var(--surface-lift))`,borderColor:`var(--border-base)`},"aria-hidden":`true`,children:[(0,Y.jsx)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-default)`},children:e.label}),(0,Y.jsxs)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[e.bucketLabel,` · `,e.cost]})]})}function Qn({items:e}){return(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-1`,children:e.map(e=>{let t=e.state??`active`,n=t===`inactive`;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,"data-usage-legend-state":t,children:[(0,Y.jsx)(`span`,{className:`h-[7px] w-[7px] shrink-0 rounded-full`,style:{background:n?`var(--content-tertiary)`:Gn(e.colorIndex),opacity:n?.45:1},"aria-hidden":`true`,"data-usage-series-color-index":e.colorIndex}),(0,Y.jsx)(`span`,{className:n?`truncate text-[10px] line-through`:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`,opacity:n?.65:1},children:e.label})]},e.seriesKey)})})}function $n({title:e,subtitle:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,Y.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,Y.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function er(e){return vn(e)?yn(e):e}function tr(e){return ar({from:e.from,to:e.to},e.scheduleId)}function nr(e){return ar({from:e.from,to:e.to,...e.granularity?{granularity:e.granularity}:{},...e.tz?{tz:e.tz}:{}},e.scheduleId)}function rr(e){return ar({from:e.from,to:e.to,groupBy:er(e.groupBy)},e.scheduleId)}function ir(e){return ar({from:e.from,to:e.to,granularity:e.granularity,groupBy:er(e.groupBy),...e.tz?{tz:e.tz}:{}},e.scheduleId)}function ar(e,t){return t?{...e,scheduleId:t}:e}function or(e){return[`${pn(e.totalInputTokens)} direct`,`${pn(e.totalCacheCreationTokens)} cache created`,`${pn(e.totalCacheReadTokens)} cache read`,`${pn(e.totalOutputTokens)} out`].join(` / `)}function sr(e){return!Number.isFinite(e)||e===0?`0`:e>=1e6||e>=999950&&e<1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function cr(e){return`${sr(e.totalInputTokens+e.totalCacheCreationTokens+e.totalCacheReadTokens)} in / ${sr(e.totalOutputTokens)} out`}var lr=`task`,ur=`model`,dr=new Set([400,404,422]),fr=3,pr=new Set([`today`,`yesterday`,`7d`,`30d`,`90d`,`all`]),mr=new Set([`actor`,`provider`,`model`,`conversation`,`task`,`profile`,`schedule`]),hr={task:gn.task,profile:gn.profile,model:gn.model,provider:`Provider`,actor:`Actor`,conversation:`Conversation`,schedule:`Schedule`},gr=[{value:`task`,label:hr.task},{value:`profile`,label:hr.profile},{value:`model`,label:hr.model},{value:`provider`,label:hr.provider},{value:`schedule`,label:hr.schedule},{value:`conversation`,label:hr.conversation}];function _r(e){let t=e.get(`range`),n=e.get(`groupBy`),r=xr(n)?n:lr;return{range:br(t)?t:`7d`,groupBy:r,scheduleId:r===`schedule`?vr(e):void 0}}function vr(e){let t=e.get(`scheduleId`);if(!(!t||t.trim().length===0))return t}function yr(e,t){let n=new URLSearchParams(e);return t.range!==void 0&&n.set(`range`,t.range),t.groupBy!==void 0&&n.set(`groupBy`,t.groupBy),t.scheduleId!==void 0&&(t.scheduleId===null||t.scheduleId.trim().length===0?n.delete(`scheduleId`):n.set(`scheduleId`,t.scheduleId)),n.get(`groupBy`)!==`schedule`&&n.delete(`scheduleId`),n}function br(e){return e!=null&&pr.has(e)}function xr(e){return e!=null&&mr.has(e)}function Sr(e){return e!==`conversation`}function Cr(e,t){return e!==`task`&&e!==`profile`?!1:Tr(t)}function wr(e,t){return!Tr(t)&&e<fr}function Tr(e){return e instanceof ze&&dr.has(e.status)}function Er({requestedGranularity:e,isLoading:t,buckets:n}){return e===`hourly`&&(t||!n||n.length===0||n.some(Dr))?`hourly`:`daily`}function Dr(e){return e.bucketId.includes(`|`)||Or(e.date)}function Or(e){return/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):00$/.test(e)}function kr(e,t,n=Date.now()){return nn(e,t,n)}function Ar(e){return e===`today`||e===`yesterday`?`hourly`:`daily`}function jr({prompt:e,children:t,variant:n=`outlined`,size:r=`regular`,className:a}){let s=o(),c=(0,J.useCallback)(()=>{Ht(s,{prompt:e})},[s,e]);return(0,Y.jsx)(i,{variant:n,size:r,leftIcon:(0,Y.jsx)(De,{}),onClick:c,className:a,children:t})}var Mr={today:`usageTab.rangeToday`,yesterday:`usageTab.rangeYesterday`,"7d":`usageTab.range7d`,"30d":`usageTab.range30d`,"90d":`usageTab.range90d`,all:`usageTab.rangeAll`},Nr={task:`usageTab.groupByTask`,profile:`usageTab.groupByProfile`,model:`usageTab.groupByModel`,provider:`usageTab.groupByProvider`,actor:`usageTab.groupByActor`,conversation:`usageTab.groupByConversation`,schedule:`usageTab.groupBySchedule`};function Pr(e,t){return e(Nr[t])}function Fr(e,t,n){let r=e(t===`hourly`?`usageTab.hourlyTrend`:`usageTab.dailyTrend`);if(!n||n===`conversation`)return r;let i=Pr(e,n);return e(t===`hourly`?`usageTab.hourlyTrendBy`:`usageTab.dailyTrendBy`,{group:i})}var Ir=300*1e3,Lr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and explain the biggest cost contributors by call site, model, and profile.`,`Check my current llm.default, llm.callSites, and llm.profiles.`,`Give me a concise summary of what is driving cost and what you would optimize first.`,`Do not change config yet.`].join(` `),Rr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and current LLM config, then recommend the safest cost-optimization changes.`,`If changes are clearly safe, show me the exact config commands you would run and ask for confirmation before applying them.`].join(` `);function zr({assistantId:e}){let{t}=q(`settings`),[n,r]=s(),{range:i,groupBy:a,scheduleId:o}=(0,J.useMemo)(()=>_r(n),[n]),c=Gt(),l=(0,J.useCallback)(e=>{r(t=>yr(t,e),{replace:!0})},[r]),u=(0,J.useMemo)(()=>kr(i,c),[i,c]),f=(0,J.useMemo)(()=>Ar(i),[i]),p=d({queryKey:Qe({path:{assistant_id:e}}),queryFn:()=>Zt(e),staleTime:1e4}),m=(0,J.useCallback)(e=>{l({range:e})},[l]),h=d({...tt({path:{assistant_id:e},query:tr({from:u.from,to:u.to,scheduleId:o})})}),g=d({queryKey:Ze({path:{assistant_id:e},query:rr({from:u.from,to:u.to,groupBy:a,scheduleId:o})}),queryFn:async({signal:t})=>{try{let{data:n}=await We({path:{assistant_id:e},query:rr({from:u.from,to:u.to,groupBy:a,scheduleId:o}),signal:t,throwOnError:!0});return{groupBy:a,response:n}}catch(n){if(!Cr(a,n))throw n;let{data:r}=await We({path:{assistant_id:e},query:rr({from:u.from,to:u.to,groupBy:ur,scheduleId:o}),signal:t,throwOnError:!0});return{groupBy:ur,response:r}}},retry:wr}),_=g.data?.groupBy??a;(0,J.useEffect)(()=>{_!==a&&l({groupBy:_,scheduleId:_===`schedule`?void 0:null})},[_,a,l]);let v=Sr(_)?_:void 0,y=d({...$e({path:{assistant_id:e},query:ir({from:u.from,to:u.to,granularity:f,groupBy:v??`actor`,tz:c,scheduleId:o})}),enabled:!!v,retry:wr}),b=d({...et({path:{assistant_id:e},query:nr({from:u.from,to:u.to,granularity:f,tz:c,scheduleId:o})}),enabled:!v||y.isError}),x=d({...nt({path:{assistant_id:e}}),enabled:_===`task`,staleTime:1/0}),S=d({...rt({path:{assistant_id:e}}),select:an,enabled:_===`profile`,staleTime:Ir}),C=(0,J.useMemo)(()=>({callSites:fn(x.data),profiles:S.data??{}}),[x.data,S.data]),w=(0,J.useMemo)(()=>{let e=g.data;if(e)return Sn(e.response.breakdown,e.groupBy,C)},[g.data,C]),T=(0,J.useMemo)(()=>{if(!(!v||!y.data))return kn(y.data.buckets,v,C)},[y.data,v,C]),E=(0,J.useMemo)(()=>{if(b.data)return On(b.data.buckets)},[b.data]),D=(0,J.useMemo)(()=>v?y.error?E?{isLoading:!1,error:null,data:E,refetch:b.refetch}:{isLoading:b.isLoading||!E&&!b.error,error:b.error??y.error,data:void 0,refetch:b.error?b.refetch:y.refetch}:{isLoading:y.isLoading,error:y.error,data:T,refetch:y.refetch}:{isLoading:b.isLoading,error:b.error,data:E,refetch:b.refetch},[E,b.error,b.isLoading,b.refetch,T,v,y.error,y.isLoading,y.refetch]),O=Er({requestedGranularity:f,isLoading:D.isLoading,buckets:D.data}),k=O===`hourly`,A=v&&y.error?void 0:_,j=(0,J.useMemo)(()=>{if(!(_!==`schedule`||!o))return Br(p.data,o,t)},[_,o,p.data,t]);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:t(`usageTab.title`)}),(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,Y.jsx)(Hr,{range:i,onChange:m})})]}),(0,Y.jsx)(`section`,{"aria-label":t(`usageTab.totalsAriaLabel`),children:(0,Y.jsx)(Wr,{query:h,skeleton:(0,Y.jsx)(qr,{}),render:e=>(0,Y.jsx)(Gr,{totals:e})})}),(0,Y.jsx)(Ur,{title:t(`usageTab.inferenceUsageTitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsx)(`h4`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:Fr(t,O,A)}),(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,Y.jsx)(Jr,{value:_,onChange:e=>{l({groupBy:e,scheduleId:e===`schedule`?void 0:null})}})})]}),(0,Y.jsx)(Wr,{query:D,skeleton:(0,Y.jsx)(Yn,{isHourly:k}),render:e=>(0,Y.jsx)(Jn,{buckets:e,isHourly:k,legendItems:j})})]})}),(0,Y.jsx)(Yr,{query:g,groups:w}),(0,Y.jsx)(Vr,{})]})}function Br(e,t,n){let r=e??[];return[...r.some(e=>e.id===t)?[]:[{id:t,label:n(`usageTab.unknownSchedule`,{scheduleId:t})}],...r.map(e=>({id:e.id,label:e.name||e.id}))].map((e,n)=>({seriesKey:En(e.id,`schedule`),label:e.label,colorIndex:n,state:e.id===t?`active`:`inactive`}))}function Vr(){let{t:e}=q(`settings`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(`div`,{className:`h-px w-full`,style:{background:`linear-gradient(to right, transparent, var(--border-base), transparent)`}}),(0,Y.jsx)(Ur,{title:e(`usageTab.costAssistantTitle`),subtitle:e(`usageTab.costAssistantSubtitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md px-3 py-3 sm:flex-row sm:items-center`,children:[(0,Y.jsx)(jr,{prompt:Lr,children:e(`usageTab.analyzeCostsButton`)}),(0,Y.jsx)(jr,{prompt:Rr,variant:`ghost`,children:e(`usageTab.optimizeSettingsButton`)})]})})]})}function Hr({range:e,onChange:t}){let{t:n}=q(`settings`);return(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(Fe,{value:e,onChange:t,options:Object.entries(Mr).map(([e,t])=>({value:e,label:n(t)}))})})}function Ur({title:e,subtitle:t,children:n}){return(0,Y.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-md border px-4 py-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,Y.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null]}),n]})}function Wr({query:e,skeleton:t,render:n}){let{t:r}=q(`settings`);return e.isLoading?(0,Y.jsx)(Y.Fragment,{children:t}):e.error?(0,Y.jsx)(ti,{message:e.error instanceof Error?e.error.message:r(`usageTab.failedToLoadUsage`),onRetry:()=>e.refetch()}):e.data?(0,Y.jsx)(Y.Fragment,{children:n(e.data)}):(0,Y.jsx)(Y.Fragment,{children:t})}function Gr({totals:e}){let{t}=q(`settings`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{style:{fontSize:`30px`,fontWeight:600,lineHeight:1,color:`var(--content-default)`},children:mn(e.totalEstimatedCostUsd)}),(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:t(`usageTab.costLabel`)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:pn(e.eventCount)}),(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:t(`usageTab.llmCallsLabel`)})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,Y.jsx)(Kr,{label:t(`usageTab.directInputTokensLabel`),value:pn(e.totalInputTokens)}),(0,Y.jsx)(Kr,{label:t(`usageTab.outputTokensLabel`),value:pn(e.totalOutputTokens)}),(0,Y.jsx)(Kr,{label:t(`usageTab.cacheCreatedLabel`),value:pn(e.totalCacheCreationTokens)}),(0,Y.jsx)(Kr,{label:t(`usageTab.cacheReadLabel`),value:pn(e.totalCacheReadTokens)})]})]})}function Kr({label:e,value:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-default)`},children:t}),(0,Y.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function qr(){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-hidden":`true`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($r,{width:140,height:30}),(0,Y.jsx)($r,{width:90,height:12})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($r,{width:60,height:16}),(0,Y.jsx)($r,{width:60,height:12})]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:Array.from({length:4}).map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,Y.jsx)($r,{width:`50%`,height:12}),(0,Y.jsx)($r,{width:`70%`,height:11})]},t))})]})}function Jr({value:e,onChange:t}){let{t:n}=q(`settings`);return(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(Fe,{value:e,onChange:t,menuAlign:`end`,menuMinWidth:196,options:gr.map(e=>({value:e.value,label:Pr(n,e.value)}))})})}function Yr({query:e,groups:t}){let{t:n}=q(`settings`),[r,i]=(0,J.useState)(new Set),a=e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,Y.jsx)(Ur,{title:n(`usageTab.breakdownTitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(Xr,{label:n(`usageTab.percentOfTotalLabel`),active:r.has(`pct`),onClick:()=>a(`pct`)}),(0,Y.jsx)(Xr,{label:n(`usageTab.tokensLabel`),active:r.has(`tokens`),onClick:()=>a(`tokens`)}),(0,Y.jsx)(Xr,{label:n(`usageTab.turnsLabel`),active:r.has(`turns`),onClick:()=>a(`turns`)})]}),(0,Y.jsx)(Wr,{query:e,skeleton:(0,Y.jsx)(Qr,{}),render:e=>(0,Y.jsx)(Zr,{groups:t??e.response.breakdown,groupBy:e.groupBy,showPct:r.has(`pct`),showTokens:r.has(`tokens`),showTurns:r.has(`turns`)})})]})})}function Xr({label:e,active:t,onClick:n}){return(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-full border px-2.5 py-1 text-label-medium-default`,style:{borderColor:t?`var(--content-secondary)`:`var(--border-base)`,background:t?`color-mix(in srgb, var(--content-secondary) 15%, transparent)`:`transparent`,color:t?`var(--content-default)`:`var(--content-tertiary)`},children:e})}function Zr({groups:e,groupBy:t,showPct:n,showTokens:r,showTurns:i}){let{t:a}=q(`settings`),s=o();if(e.length===0)return(0,Y.jsx)(ei,{title:a(`usageTab.noBreakdownDataTitle`),subtitle:a(`usageTab.noBreakdownDataSubtitle`)});let l=e.reduce((e,t)=>e+t.totalEstimatedCostUsd,0);return(0,Y.jsx)(`div`,{className:`overflow-hidden rounded-md`,children:(0,Y.jsxs)(`table`,{className:`w-full table-fixed`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:[(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:a(`usageTab.groupColumnLabel`)}),r?(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`35%`},children:a(`usageTab.tokensLabel`)}):null,i?(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`72px`},children:a(`usageTab.turnsLabel`)}):null,n?(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`64px`},children:`%`}):null,(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`100px`},children:a(`usageTab.costLabel`)})]})}),(0,Y.jsx)(`tbody`,{children:e.map((e,a)=>{let o=or(e),u=cr(e),d=t===`conversation`?e.groupId:null,f=l>0?Math.round(e.totalEstimatedCostUsd/l*100):0;return(0,Y.jsxs)(`tr`,{className:d?`cursor-pointer hover:bg-[var(--surface-hover)]`:void 0,onClick:d?e=>{e.target.closest(`a`)||Vt(s,d)}:void 0,style:{borderTop:a===0?`none`:`1px solid var(--border-base)`},children:[(0,Y.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-default)`},children:d?(0,Y.jsx)(c,{to:Ke.conversation(d),className:`block truncate text-body-medium-lighter`,title:e.group,onClick:e=>{en(e)||(e.preventDefault(),Vt(s,d))},children:e.group}):(0,Y.jsx)(`span`,{className:`block truncate text-body-medium-lighter`,title:e.group,children:e.group})}),r?(0,Y.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-secondary)`},children:(0,Y.jsx)(`span`,{className:`block truncate text-body-small-default`,title:o,children:u})}):null,i?(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.turnCount==null?`—`:e.turnCount.toLocaleString()})}):null,n?(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,Y.jsxs)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[f,`%`]})}):null,(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,Y.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:mn(e.totalEstimatedCostUsd)})})]},e.groupKey??e.groupId??`${e.group}-${a}`)})})]})})}function Qr(){return(0,Y.jsx)(`div`,{className:`flex flex-col gap-2`,"aria-hidden":`true`,children:Array.from({length:4}).map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)($r,{width:100,height:14}),(0,Y.jsx)($r,{width:`60%`,height:12}),(0,Y.jsx)($r,{width:50,height:14})]},t))})}function $r({width:e,height:t}){return(0,Y.jsx)(`div`,{className:`rounded-sm`,style:{width:typeof e==`number`?`${e}px`:e,height:`${t}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}})}function ei({title:e,subtitle:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-1 py-8 text-center`,children:[(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t})]})}function ti({message:e,onRetry:t}){let{t:n}=q(`settings`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(Oe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-negative-strong, #f87171)`}}),(0,Y.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:e})]}),t?(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`self-start rounded-md border px-3 py-1 text-body-small-default`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:n(`usageTab.retry`)}):null]})}function ni({open:e,onCancel:t,onConfirm:n,confirming:r,lostFeatures:a}){return(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{!e&&!r&&t()},children:(0,Y.jsxs)(G.Content,{size:`md`,hideCloseButton:!0,children:[(0,Y.jsx)(G.Header,{icon:Oe,children:(0,Y.jsx)(G.Title,{children:`Downgrade to Base?`})}),(0,Y.jsxs)(G.Body,{children:[(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,Y.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:a.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,Y.jsxs)(G.Footer,{children:[(0,Y.jsx)(i,{variant:`outlined`,onClick:t,disabled:r,children:`Keep Pro`}),(0,Y.jsx)(i,{variant:`danger`,onClick:n,disabled:r,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]})})}function ri(e){return`${e.label} — ${P(e.price_cents)}`}function ii({creditTiers:e,selectedCreditTier:t,onCreditTierChange:n,disabled:r=!1}){let i=(0,J.useMemo)(()=>[{value:null,label:`No credit bundle — ${P(0)}`},...e.map(e=>({value:e.tier,label:ri(e)}))],[e]);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(h,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Credit bundle`}),(0,Y.jsx)(`span`,{title:`A monthly allotment of credits added to your Pro Plan subscription`,children:(0,Y.jsx)(Ee,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,Y.jsx)(Fe,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,disabled:r,value:t,onChange:e=>n(e),onSelectNone:()=>n(null),options:i})]})}function ai({features:e,variant:t,header:n,maxInline:r=3}){return t===`inline`?(0,Y.jsx)(Y.Fragment,{children:e.slice(0,r).join(`, `)}):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n&&(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:n}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,Y.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(T,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})]},e))})]})}function oi({plan:e,isCurrent:t,onPro:n,planDisplayName:r,currentPlanFeatures:a,cancelAtPeriodEnd:o,isCanceled:s,cancelDate:c,formatGraceDate:l,proTierChangeMode:u,creditTiersEnabled:d,creditTiers:f,displayCreditTier:p,onCreditTierChange:m,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,machineTiersForPicker:x,storageTiersForPicker:S,currentMachinePrice:C,currentStoragePrice:w,currentCreditPriceUnknown:T,proCurrentTotalCents:E,proLiveTotalCents:D,proTotalDelta:O,onboardingLoading:k,tierChangePending:A,machineChanged:j,storageChanged:ee,creditChanged:F,tierChangeError:I,upgradePending:te,portalPending:ne,onUpgrade:re,onApplyTierChange:ie,onDowngradeClick:ae,onKeepPlan:oe}){let se=e.id===`pro`,L=e.id===`base`,R=se&&n&&o&&!s,z=se&&(!t||t&&u),B=se&&t&&u,ce=se&&t;return(0,Y.jsx)(g.Root,{className:`flex flex-col bg-[var(--surface-base)]`,children:(0,Y.jsxs)(g.Body,{padding:`lg`,className:`max-sm:p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`flex h-9 w-9 items-center justify-center rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)]`,children:se?(0,Y.jsx)(on,{className:`h-5 w-5 text-[var(--content-default)]`}):(0,Y.jsx)(sn,{className:`h-5 w-5 text-[var(--content-default)]`})}),(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,Y.jsx)(h,{as:`h3`,variant:`title-small`,"data-testid":`modal-plan-name`,children:ce?r:e.name}),t&&(0,Y.jsx)(Me,{tone:`positive`,children:`Current`})]}),(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`-mt-2 text-[var(--content-tertiary)]`,children:L?`All you need for a capable assistant`:`More features, more compute, more storage`}),R&&c&&(0,Y.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--system-mid-strong)]`,"data-testid":`modal-cancels-on`,children:[`Your plan ends on `,l(c)]}),(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-1`,children:L?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(h,{as:`p`,variant:`title-medium`,children:`Free`}),(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Forever`})]}):t&&!(z&&D!=null)&&(E==null||T)?k?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,Y.jsx)(h,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-price-unavailable`,children:`Current plan pricing unavailable`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(h,{as:`p`,variant:`title-medium`,"data-testid":`modal-pro-price`,children:z&&D!=null?(0,Y.jsxs)(Y.Fragment,{children:[P(D),O!=null&&O!==0&&(0,Y.jsxs)(`span`,{className:`ml-1 text-[var(--content-tertiary)]`,children:[`(`,M(O),`)`]})]}):E==null?e.id===`pro`?`From ${P(e.base_price_cents+V(e.machine_tiers)+V(e.storage_tiers))}`:null:`Currently ${P(E)}`}),z&&O!=null&&O!==0&&(0,Y.jsx)(`span`,{title:`Your Pro Plan subscription will change from ${P(E)} to ${P(D)}.`,children:(0,Y.jsx)(Ee,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),e.id===`pro`&&(0,Y.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-base-fee`,children:[N(e.base_price_cents),` base fee`]})]})}),(0,Y.jsx)(ai,{features:ce&&a?a:e.included_features,variant:`checklist`}),se&&!d&&(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-credits-not-included`,children:`*Credits not included`})]}),(0,Y.jsxs)(`div`,{className:`mt-4 flex flex-1 flex-col justify-end gap-4`,children:[!t&&se&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,Y.jsx)(ii,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:m,disabled:te}),(0,Y.jsx)(de,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b}),(0,Y.jsx)(i,{variant:`primary`,className:`w-full`,onClick:re,disabled:te||!_||!v,"data-testid":`modal-upgrade-to-pro-button`,children:`Upgrade to Pro`})]}),B&&(k?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,Y.jsx)(ii,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:m,disabled:A}),(0,Y.jsx)(de,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,currentMachinePriceCents:C,currentStoragePriceCents:w}),I&&(0,Y.jsx)(U,{tone:`error`,children:I}),(0,Y.jsx)(i,{variant:`primary`,className:`w-full`,onClick:ie,disabled:A||!j&&!ee&&!F,"data-testid":`modal-change-tier-button`,children:`Update Plan`})]})),!t&&L&&n&&!o&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,Y.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:ae,disabled:ne,"data-testid":`modal-downgrade-to-base-button`,children:`Downgrade to Base`})]}),R&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,Y.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:oe,disabled:ne,"data-testid":`modal-keep-plan-button`,children:`Keep your Plan`})]})]})]})})}function si({open:e,onClose:t,onTierUpgraded:n}){let r=u(),a=d(xt()),o=d(Tt()),s=p(bt()),c=p(St()),l=p(Ft()),f=p(Nt()),m=I(ie(o.data)),[g,_]=(0,J.useState)(`plans`),[v,y]=(0,J.useState)(!1),[b,S]=(0,J.useState)(null),[C,w]=(0,J.useState)(null),[T,E]=(0,J.useState)(void 0);(0,J.useEffect)(()=>at(()=>{r.invalidateQueries({queryKey:wt()}),r.invalidateQueries({queryKey:kt()}),r.invalidateQueries({queryKey:Dt()}),t()}),[r,t]);let D=o.data?.plan_id,O=D===`pro`,k=d({...At(),enabled:O}),A=k.data?.max_machine_tier??null,j=k.data?.selected_storage_tier??null,M=k.data?.selected_storage_gib??null,N=o.data?.cancel_at_period_end===!0||!!o.data?.cancel_at,P=o.data?.status===`canceled`,F=oe(o.data),ne=o.data?.status,ae=ne!=null&&se.has(ne),z=O&&ae&&!N&&!P,B=a.data?.plans.find(e=>e.id===`pro`),ce=B?.credit_tiers??[],le=ce.length>0,V=o.data?.selected_credit_tier??null,ue=e=>ce.find(t=>t.tier===e)?.price_cents??0,de=ue(V),pe=V!=null&&!ce.some(e=>e.tier===V),me=T===void 0?V:T,he=ue(me),ge=ee(o.data?.package),_e=O&&k.isSuccess&&B?fe({machineTier:A,storageTier:j,storageGib:M,creditTier:V},B):null,ve=B?.machine_tiers??[],ye=z&&M!=null?(B?.storage_tiers??[]).map(e=>e.storage_gib<M?{...e,disabled:!0}:e):B?.storage_tiers??[];(0,J.useEffect)(()=>{if(!e){S(null),w(null),E(void 0);return}if(B){if(z){if(A==null||j==null)return;S(e=>L(ve,e??A)),w(e=>L(ye,e??j)),E(e=>re(ce,e,V));return}S(e=>L(B.machine_tiers,e)),w(e=>L(B.storage_tiers,e)),E(e=>re(ce,e,null))}},[e,B,z,A,j,V]);let be=a.data?.plans.find(e=>e.id===`base`),xe=new Set(be?.included_features??[]),Se=(B?.included_features??[]).filter(e=>!xe.has(e)),Ce=()=>{if(!s.isPending){if(!b||!C){K.error(`Pick a machine and storage tier to continue.`,{id:`pro-upgrade-error`});return}s.mutate({body:{target_plan_id:`pro`,confirm:!0,machine_tier:b,storage_tier:C,credit_tier:me,return_target:Qt()}},{onSuccess:e=>{if(e.checkout_url){Ge({kind:`custom`,machineTier:b,storageTier:C,creditTier:me}),Be(r),it(e.checkout_url);return}if(e.status===`no_op`){K.info(`You're already on Pro.`,{id:`pro-upgrade`}),t();return}K.error(e.message??`Failed to start upgrade. Please try again.`,{id:`pro-upgrade-error`})},onError:e=>{K.error(te(e,`Failed to start upgrade. Please try again.`),{id:`pro-upgrade-error`})}})}},we=()=>{m.isPending||(_(`plans`),m.mutate({}))},Te=()=>{r.invalidateQueries({queryKey:wt()}),r.invalidateQueries({queryKey:Dt()}),r.invalidateQueries({queryKey:kt()})},Ee=c.isPending||l.isPending||f.isPending,De=b!=null&&b!==A,ke=C!=null&&C!==j,Ae=le&&T!==void 0&&T!==V,je=e=>ve.find(t=>t.tier===e)?.price_cents??null,Me=e=>ye.find(t=>t.tier===e)?.price_cents??null,W=je(b),Ne=Me(C),Pe=je(A),Fe=Me(j),Ie=De&&W!=null&&Pe!=null&&W<Pe,q=()=>{if(Ee)return;let e=[];De&&b&&e.push(new Promise(e=>{c.mutate({body:{machine_tier:b}},{onSuccess:()=>e({dimension:`machine`,ok:!0}),onError:t=>e({dimension:`machine`,ok:!1,error:t})})})),ke&&C&&e.push(new Promise(e=>{l.mutate({body:{storage_tier:C}},{onSuccess:()=>e({dimension:`storage`,ok:!0}),onError:t=>e({dimension:`storage`,ok:!1,error:t})})})),Ae&&e.push(new Promise(e=>{f.mutate({body:{credit_tier:me}},{onSuccess:()=>e({dimension:`credit`,ok:!0}),onError:t=>e({dimension:`credit`,ok:!1,error:t})})})),Promise.all(e).then(e=>{Te();let r=e.some(e=>e.ok&&e.dimension===`storage`),i=e.some(e=>e.ok&&e.dimension===`machine`)&&!Ie,a=(r||i)&&!!n,o=e.filter(e=>!e.ok);if(o.length>0){let e=o.map(e=>te(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);K.error(e,{id:`pro-tier-change-error`}),a&&(t(),n());return}a?(t(),n()):K.success(Ae&&!De&&!ke?`Credit bundle updated.`:`Plan updated.`,{id:`pro-tier-change`})})},Le=()=>{if(!Ee){if(Ie){y(!0);return}q()}},Re=()=>{y(!1),q()},ze=e=>W!=null&&Ne!=null?e.base_price_cents+W+Ne+he:null,Ve=e=>Pe!=null&&Fe!=null?e.base_price_cents+Pe+Fe+de:null,He=c.isError||l.isError||f.isError?te(c.error??l.error??f.error,`Failed to update plan. Please try again.`):null,Ue=a.isLoading||o.isLoading,We=a.isError||o.isError||!a.data||!o.data;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{e||(_(`plans`),t())},children:(0,Y.jsx)(G.Content,{size:g===`plans`?`lg`:`md`,children:g===`downgrade-confirm`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G.Header,{icon:Oe,children:(0,Y.jsx)(G.Title,{children:`Downgrade to Base?`})}),(0,Y.jsxs)(G.Body,{children:[(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,Y.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:Se.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,Y.jsxs)(G.Footer,{children:[(0,Y.jsx)(i,{variant:`ghost`,onClick:()=>_(`plans`),disabled:m.isPending,leftIcon:(0,Y.jsx)(x,{className:`h-4 w-4`}),children:`Back`}),(0,Y.jsx)(i,{variant:`danger`,onClick:we,disabled:m.isPending,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G.Header,{children:(0,Y.jsx)(G.Title,{className:`sr-only`,children:`Upgrade Plan`})}),(0,Y.jsx)(G.Body,{children:Ue?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading plans...`})]}):We?(0,Y.jsx)(U,{tone:`error`,children:`Failed to load plans. Please try again later.`}):(0,Y.jsxs)(`div`,{className:`space-y-4 sm:space-y-6`,children:[(0,Y.jsxs)(`div`,{className:`space-y-2 pb-2 pt-4 text-center`,children:[(0,Y.jsx)(h,{as:`p`,variant:`title-medium`,children:`Your Assistant, Your Way`}),(0,Y.jsx)(h,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:`Choose the plan that works best for you and your assistant.`})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:a.data.plans.map(e=>{let t=e.id===D,n=e.id===`pro`&&B?ze(B):null,r=e.id===`pro`&&B?Ve(B):null;return(0,Y.jsx)(oi,{plan:e,isCurrent:t,onPro:O,planDisplayName:ge,currentPlanFeatures:_e,cancelAtPeriodEnd:N,isCanceled:P,cancelDate:F,formatGraceDate:R,proTierChangeMode:z,creditTiersEnabled:le,creditTiers:ce,displayCreditTier:me,onCreditTierChange:E,selectedMachineTier:b,selectedStorageTier:C,onMachineTierChange:S,onStorageTierChange:w,machineTiersForPicker:ve,storageTiersForPicker:ye,currentMachinePrice:Pe,currentStoragePrice:Fe,currentCreditPriceUnknown:pe,proCurrentTotalCents:r,proLiveTotalCents:n,proTotalDelta:n!=null&&r!=null?n-r:null,onboardingLoading:k.isLoading,tierChangePending:Ee,machineChanged:De,storageChanged:ke,creditChanged:Ae,tierChangeError:He,upgradePending:s.isPending,portalPending:m.isPending,onUpgrade:Ce,onApplyTierChange:Le,onDowngradeClick:()=>_(`downgrade-confirm`),onKeepPlan:()=>m.mutate({})},e.id)})})]})}),(0,Y.jsxs)(G.Footer,{className:`relative items-center`,children:[(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-tertiary)]`,children:(0,Y.jsx)(`span`,{className:`pointer-events-auto`,children:`You can change or cancel your plan at any time from billing settings.`})}),(0,Y.jsx)(`div`,{className:`ml-auto`,children:(0,Y.jsx)(i,{variant:`outlined`,onClick:t,"data-testid":`modal-cancel-button`,children:`Cancel`})})]})]})})}),(0,Y.jsx)(ni,{open:v,onCancel:()=>y(!1),onConfirm:Re,confirming:Ee,lostFeatures:[`Reduced CPU and memory for your assistant — it will resize to the smaller compute profile.`]})]})}function ci({open:e,confirming:t,onCancel:n,onConfirm:r}){let{t:i}=q(`settings`);return(0,Y.jsx)(Pe,{open:e,title:i(`autoTopUpDisableConfirm.title`),message:i(`autoTopUpDisableConfirm.message`),confirmLabel:t?`Disabling…`:`Disable`,cancelLabel:`Keep enabled`,destructive:!0,onConfirm:r,onCancel:n})}var li={threshold_usd:`100`,amount_usd:`10`,monthly_cap_usd:``};function ui(e){if(e===``||e===`-`)return e;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function di(e){let t={},n=parseFloat(e.threshold_usd),r=parseFloat(e.amount_usd);if((!Number.isFinite(r)||r<10||r>500)&&(t.amount_usd=`Must be between $10 and $500`),(!Number.isFinite(n)||n<1||n>100)&&(t.threshold_usd=`Must be between $1 and $100`),e.monthly_cap_usd!==``){let n=parseFloat(e.monthly_cap_usd);!Number.isFinite(n)||n<25||n>1e4?t.monthly_cap_usd=`Must be between $25 and $10,000`:Number.isFinite(r)&&n<r&&(t.monthly_cap_usd=`Must be at least the top-up amount`)}return t}function fi(e,t,n,r){if(n[e])return n[e];if(r)return t[e]}function pi({initialValues:e=li,submitting:t,serverErrors:n,onSave:r,onCancel:a}){let[o,s]=(0,J.useState)(e),[c,l]=(0,J.useState)({threshold_usd:!1,amount_usd:!1,monthly_cap_usd:!1}),u=di(o),d=e=>t=>{s(n=>({...n,[e]:t.target.value}))},f=e=>()=>{l(t=>({...t,[e]:!0})),s(t=>({...t,[e]:ui(t[e])}))},p=e=>fi(e,u,n,c[e]);return(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-full max-w-full sm:w-[200px]`,children:(0,Y.jsx)(W,{type:`number`,step:`1`,label:`Auto-reload when balance below`,value:o.threshold_usd,onChange:d(`threshold_usd`),onBlur:f(`threshold_usd`),errorText:p(`threshold_usd`),"data-testid":`auto-top-up-threshold-input`,fullWidth:!0})}),(0,Y.jsx)(`div`,{className:`w-full max-w-full sm:w-[200px]`,children:(0,Y.jsx)(W,{type:`number`,step:`1`,label:`Auto-reload amount`,value:o.amount_usd,onChange:d(`amount_usd`),onBlur:f(`amount_usd`),errorText:p(`amount_usd`),"data-testid":`auto-top-up-amount-input`,fullWidth:!0})}),(0,Y.jsx)(`div`,{className:`w-full max-w-full sm:w-[200px]`,children:(0,Y.jsx)(W,{type:`number`,step:`1`,label:`Monthly spending cap`,value:o.monthly_cap_usd,onChange:d(`monthly_cap_usd`),onBlur:f(`monthly_cap_usd`),errorText:p(`monthly_cap_usd`),"data-testid":`auto-top-up-cap-input`,fullWidth:!0})}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[(0,Y.jsx)(i,{variant:`outlined`,onClick:a,disabled:t,children:`Cancel`}),(0,Y.jsx)(i,{variant:`primary`,onClick:()=>{l({threshold_usd:!0,amount_usd:!0,monthly_cap_usd:!0});let e={threshold_usd:ui(o.threshold_usd),amount_usd:ui(o.amount_usd),monthly_cap_usd:ui(o.monthly_cap_usd)};s(e);let t=di(e);if(Object.keys(t).length!==0)return;let n=e=>e===``?``:`${parseInt(e,10)}.00`;r({threshold_usd:n(e.threshold_usd),amount_usd:n(e.amount_usd),monthly_cap_usd:e.monthly_cap_usd===``?``:n(e.monthly_cap_usd)})},disabled:t,"data-testid":`auto-top-up-save-button`,children:`Save`})]})]})})}var mi=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),hi=t(((e,t)=>{var n=mi();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),X=e(t(((e,t)=>{t.exports=hi()()}))(),1);function gi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?gi(Object(n),!0).forEach(function(t){yi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vi(e){"@babel/helpers - typeof";return vi=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},vi(e)}function yi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bi(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function xi(e,t){if(e==null)return{};var n=bi(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Si(e,t){return Ci(e)||wi(e,t)||Ti(e,t)||Di()}function Ci(e){if(Array.isArray(e))return e}function wi(e,t){var n=e&&(typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`]);if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function Ti(e,t){if(e){if(typeof e==`string`)return Ei(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ei(e,t)}}function Ei(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Di(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
2
+ import{o as e,t}from"./chunk-jRWAZmH_.js";import{t as n}from"./capture-error-u47kRfIQ.js";import{t as r}from"./react-BFJW0bSv.js";import{t as i}from"./button-VkxVX0DM.js";import{t as a}from"./preload-helper-Cv2QeVDK.js";import{d as o,h as s,t as c,u as l}from"./chunk-5KNZJZUH-BUqIilZr.js";import{n as u}from"./QueryClientProvider-EuRl-wrW.js";import{t as d}from"./useQuery-CTSuec5b.js";import{t as f}from"./useInfiniteQuery-C5Kg1-qX.js";import{t as p}from"./useMutation-D2YPyfEH.js";import{t as m}from"./jsx-runtime-BJ8jcmzB.js";import{t as h}from"./typography-DekrYXvs.js";import{t as g}from"./card-DUsAeHUS.js";import{d as _,o as v,s as y}from"./list-row-D1odQOMJ.js";import{t as b}from"./createLucideIcon-B-ZPaMbU.js";import{t as x}from"./arrow-left-Ciai6BHG.js";import{t as S}from"./check-NGUguBHp.js";import{t as C}from"./chevron-down-D1ho6wFA.js";import{t as w}from"./chevron-up-bJ8SGTC_.js";import{t as T}from"./circle-check-BQyrCkaB.js";import{t as E}from"./coins-WH-N-3B8.js";import{A as D,D as O,E as k,F as A,L as j,M,N,O as ee,P,S as F,_ as I,a as te,b as ne,c as re,f as ie,g as ae,h as oe,i as se,l as L,m as R,n as z,o as B,p as ce,r as le,s as V,t as ue,u as de,v as fe,w as pe,z as me}from"./use-checkout-dismiss-refresh-kgDwvNiF.js";import{c as he,i as ge,l as _e,n as ve,o as ye,r as be,s as xe,t as Se,u as Ce}from"./format-usd-C3StL3Eq.js";import{t as we}from"./download-C7_XK23s.js";import{t as Te}from"./external-link-DCA91uI6.js";import{t as Ee}from"./info-D0qquAkS.js";import{t as H}from"./loader-circle-C9QjVTuc.js";import{t as De}from"./sparkles-DvB22tVW.js";import{t as Oe}from"./triangle-alert-B-18Pims.js";import{t as ke}from"./users-BHqL5Ion.js";import{t as Ae}from"./x-zfSDUG5z.js";import{t as U}from"./notice-C_AsX_o9.js";import{a as je}from"./src-Ch3HTlFm.js";import{t as Me}from"./tag-Ddzwz3ij.js";import{t as W}from"./input-DkgpMeG9.js";import{t as Ne}from"./toggle-0qt1e_3r.js";import{t as G}from"./modal-UYNawsIu.js";import{n as K}from"./toast-ZCXyBjoj.js";import{t as Pe}from"./confirm-dialog--7V28331.js";import{t as Fe}from"./select-D133FK9g.js";import{s as Ie}from"./i18n-DRUiM4wH.js";import{t as q}from"./useTranslation-CR3ZnQ9P.js";import{a as Le,n as Re,t as ze}from"./api-errors-DpVX2w7j.js";import{l as Be,o as Ve}from"./auth-store-CajhmgnD.js";import{_t as He,vt as Ue}from"./sdk.gen-CkhDi3vq.js";import{Rr as We}from"./sdk.gen-D0GK8o-1.js";import{T as Ge}from"./native-biometric-Brvijc3Q.js";import{d as Ke}from"./routes-CZi85r7Q.js";import{i as qe,r as Je,t as Ye}from"./use-platform-gate-C4SOu0gj.js";import{r as Xe}from"./use-is-org-ready-DWQ9ObFx.js";import{Jt as Ze,Tt as Qe,Xt as $e,Yt as et,Zt as tt,p as nt,u as rt}from"./react-query.gen-pBlyOJpJ.js";import{n as it,r as at}from"./browser-DCvedB5v.js";import{$ as ot,B as st,G as ct,H as lt,J as ut,K as dt,Mt as ft,R as pt,St as mt,U as ht,V as gt,W as _t,X as vt,Y as yt,_t as bt,at as xt,ct as St,et as Ct,gt as wt,ht as Tt,it as Et,mt as Dt,nt as Ot,ot as kt,pt as At,q as jt,rt as Mt,st as Nt,tt as Pt,ut as Ft,vt as It,wt as Lt,xt as Rt,yt as zt,z as Bt}from"./react-query.gen-DpAT6NiB.js";import{n as Vt,r as Ht}from"./conversation-navigation-NBlywOWx.js";import{n as Ut}from"./use-is-mobile-DVK9FG8g.js";import{t as Wt}from"./effective-timezone-C1s4HVfd.js";import{t as Gt}from"./use-effective-timezone-x_AWyUHK.js";import{t as Kt}from"./misc-DhtXN69E.js";import{t as qt}from"./copy-to-clipboard-DxFqp8rD.js";import{t as Jt}from"./platform-login-notice-B36EKhir.js";import{t as Yt}from"./use-active-assistant-id-ByjxM30e.js";import{n as Xt}from"./format-date-Bc0aleB8.js";import{t as Zt}from"./schedules-DqSQrRcy.js";import{t as Qt}from"./checkout-return-target-CnC2pToL.js";import{t as $t}from"./add-credits-modal-QPfLWaOo.js";import{t as en}from"./link-click-bjUBlnyB.js";import{a as tn,i as nn,r as rn,t as an}from"./profile-metadata-C1u3_uD8.js";var on=b(`crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),sn=b(`tree-palm`,[[`path`,{d:`M13 8c0-2.76-2.46-5-5.5-5S2 5.24 2 8h2l1-1 1 1h4`,key:`foxbe7`}],[`path`,{d:`M13 7.14A5.82 5.82 0 0 1 16.5 6c3.04 0 5.5 2.24 5.5 5h-3l-1-1-1 1h-3`,key:`18arnh`}],[`path`,{d:`M5.89 9.71c-2.15 2.15-2.3 5.47-.35 7.43l4.24-4.25.7-.7.71-.71 2.12-2.12c-1.95-1.96-5.27-1.8-7.42.35`,key:`ywahnh`}],[`path`,{d:`M11 15.5c.5 2.5-.17 4.5-1 6.5h4c2-5.5-.5-12-1-14`,key:`ft0feo`}]]),J=e(r(),1);function cn(e){return e.get(`tab`)===`billing`||e.has(`adjust_plan`)||e.has(`pro_onboarding`)||e.has(`billing_status`)||e.has(`session_id`)}function ln(e,t){return e===`full`?!0:e===`disabled`?cn(t):!1}var Y=m();function un({open:e,onOpenChange:t,amountUsd:n}){let{t:r}=q(`settings`),a=u(),o=p(dt()),s=o.isPending,c=ve(n);return(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{!e&&s||t(e)},children:(0,Y.jsxs)(G.Content,{size:`sm`,"data-testid":`checkout-bonus-modal`,children:[(0,Y.jsx)(G.Header,{icon:_e,children:(0,Y.jsx)(G.Title,{children:r(`checkoutBonusModal.title`,{amount:c})})}),(0,Y.jsx)(G.Body,{children:(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:r(`checkoutBonusModal.body`,{amount:c})})}),(0,Y.jsxs)(G.Footer,{children:[(0,Y.jsx)(G.Close,{asChild:!0,children:(0,Y.jsx)(i,{variant:`outlined`,disabled:s,children:r(`checkoutBonusModal.decline`)})}),(0,Y.jsx)(i,{variant:`primary`,leftIcon:s?(0,Y.jsx)(H,{className:`animate-spin`}):void 0,onClick:()=>{s||o.mutate({},{onSuccess:e=>{e.status===`granted`?(K.success(r(`checkoutBonusModal.grantedToast`,{amount:ve(e.amount_usd)})),a.invalidateQueries(It())):K.info(r(`checkoutBonusModal.unavailableToast`)),a.invalidateQueries(jt()),t(!1)},onError:()=>{K.error(r(`checkoutBonusModal.errorToast`))}})},disabled:s,"data-testid":`claim-checkout-bonus-button`,children:r(`checkoutBonusModal.claim`,{amount:c})})]})]})})}function dn(e){let t=Xe(),n=u(),r=e!==null,{data:i,dataUpdatedAt:a}=d({...jt(),enabled:r&&t,staleTime:0,refetchOnWindowFocus:!1}),o=(0,J.useRef)(e);return(0,J.useEffect)(()=>{let t=o.current;o.current=e,!(e===null||e===t||t===null)&&n.invalidateQueries(jt())},[e,n]),{showOffer:r&&i?.eligible===!0&&a>=e,amountUsd:i?.amount_usd??`0.00`}}function fn(e){if(!e)return{};let t={};for(let n of e.callSites)!n.id||!n.displayName||(t[n.id]={id:n.id,displayName:n.displayName,description:n.description,domain:n.domain});return t}function pn(e){return Number.isFinite(e)?Math.round(e).toLocaleString():`0`}function mn(e){return!Number.isFinite(e)||e===0?`$0.00`:`$${e.toFixed(2)}`}var hn=`model`,gn={model:`Model`,task:`Action`,profile:`Profile`},_n=[{value:`model`,label:gn.model},{value:`task`,label:gn.task},{value:`profile`,label:gn.profile}];function vn(e){return e===`model`||e===`task`||e===`profile`}function yn(e){switch(e){case`model`:return`model`;case`task`:return`call_site`;case`profile`:return`inference_profile`}}function bn(e){switch(e){case`model`:return`model`;case`task`:return`llm_call_site`;case`profile`:return`inference_profile`}}function xn(e,t,n){if(e===`task`){let e=t.groupKey;return e?n.callSites?.[e]?.displayName??t.group:t.group}if(e===`profile`){let e=t.groupKey;return e?n.profiles?.[e]?.displayName??t.group:t.group||`Default / Unset`}return t.group}function Sn(e,t,n){return!e||e.length===0?[]:e.map(e=>{let r=xn(t,e,n);return r===e.group?e:{...e,group:r}})}var Cn=6,wn=`value:`,Tn=`null:`;function En(e,t=`schedule`){return e===null?`${Tn}${vn(t)?yn(t):t}`:`${wn}${e}`}function Dn(e){return[...e].sort((e,t)=>{if(e.date!==t.date)return e.date<t.date?-1:1;let n=Mn(e.bucketId),r=Mn(t.bucketId);return n===r?e.bucketId===t.bucketId?0:e.bucketId<t.bucketId?-1:1:n-r})}function On(e){return e.map(e=>({bucketId:e.bucketId,date:e.date,displayLabel:e.displayLabel,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,groups:{}}))}function kn(e,t,n){return t!==`task`&&t!==`profile`?[...e]:e.map(e=>{let r=!1,i={};for(let[a,o]of Object.entries(e.groups)){let e=xn(t,jn(o),n);e===o.group?i[a]=o:(r=!0,i[a]={...o,group:e})}return r?{...e,groups:i}:e})}function An(e){let t=new Map;for(let n of e)for(let[e,r]of Object.entries(n.groups)){let n=t.get(e);t.set(e,{label:n?.label??r.group,totalEstimatedCostUsd:(n?.totalEstimatedCostUsd??0)+r.totalEstimatedCostUsd})}let n=Array.from(t.entries()).sort(([e,t],[n,r])=>t.totalEstimatedCostUsd===r.totalEstimatedCostUsd?t.label===r.label?e===n?0:e<n?-1:1:t.label<r.label?-1:1:r.totalEstimatedCostUsd-t.totalEstimatedCostUsd).map(([e,t],n)=>({seriesKey:e,label:t.label,totalEstimatedCostUsd:t.totalEstimatedCostUsd,colorIndex:n}));return{items:n,visibleItems:n.slice(0,Cn)}}function jn(e){return{group:e.group,groupId:e.groupKey,groupKey:e.groupKey,totalInputTokens:e.totalInputTokens,totalOutputTokens:e.totalOutputTokens,totalCacheCreationTokens:0,totalCacheReadTokens:0,totalEstimatedCostUsd:e.totalEstimatedCostUsd,eventCount:e.eventCount,turnCount:null}}function Mn(e){let t=e.lastIndexOf(`|`);if(t<0)return 0;let n=Number(e.slice(t+1));return Number.isFinite(n)?n:0}var Nn=140,Pn=40,Fn=28,In=2,Ln=2,Rn=1e-6,zn=12,Bn=220,Vn=56,Hn=[40,80,60,100,50,70,30],Un=[18,24,28,35,42,50,64,78,92,106,118,96,84,74,68,80,88,72,56,48,40,34,26,20],Wn=[`var(--usage-trend-stack-positive, var(--system-positive-strong, #10b981))`,`var(--usage-trend-stack-info, var(--system-info-strong, #3b82f6))`,`var(--usage-trend-stack-mid, var(--system-mid-strong, #f59e0b))`,`var(--usage-trend-stack-secondary, var(--content-secondary, #6b7280))`,`var(--usage-trend-stack-negative, var(--system-negative-strong, #f87171))`,`var(--usage-trend-stack-tertiary, var(--content-tertiary, #9ca3af))`];function Gn(e){return Wn[e%Wn.length]}function Kn(e){return e.displayLabel?e.displayLabel:e.date}function qn(e,t){let n=e+zn,r=t+zn;return n+Bn>window.innerWidth&&(n=e-Bn-zn),r+Vn>window.innerHeight&&(r=t-Vn-zn),{x:n,y:r}}function Jn({buckets:e,isHourly:t,legendItems:n}){let{t:r}=q(`settings`),[i,a]=(0,J.useState)(null),o=(0,J.useMemo)(()=>Dn(e),[e]),s=(0,J.useMemo)(()=>An(e),[e]),c=n??s.items,l=n??s.visibleItems,u=(0,J.useMemo)(()=>o.reduce((e,t)=>Math.max(e,t.totalEstimatedCostUsd),0),[o]),d=(0,J.useCallback)((e,t)=>{let n=qn(e.clientX,e.clientY);a({...t,x:n.x,y:n.y})},[]),f=(0,J.useCallback)(()=>a(null),[]);if(o.length===0){let e=(0,Y.jsx)($n,{title:r(t?`usageTrendChart.noHourlyData`:`usageTrendChart.noDailyData`),subtitle:r(`usageTrendChart.noUsageInRange`)});return l.length===0?e:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e,(0,Y.jsx)(Qn,{items:l})]})}let p=t?Fn:Pn;return(0,Y.jsxs)(`div`,{className:`overflow-x-auto`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${Nn}px`},"aria-hidden":`true`,children:o.map(e=>{let t=u>0?e.totalEstimatedCostUsd/u:0,r=Math.max(In,Nn*t);return(0,Y.jsx)(`div`,{className:`flex items-end`,style:{width:`${p}px`,minWidth:`${p}px`,height:`${r}px`,opacity:e.totalEstimatedCostUsd>0?1:.3},title:`${Kn(e)}: ${mn(e.totalEstimatedCostUsd)}`,"data-usage-series-bar":e.bucketId,children:(0,Y.jsx)(Xn,{bucket:e,height:r,legendItems:c,hasLegendOverride:n!=null,onSegmentHover:d,onSegmentLeave:f})},e.bucketId)})}),(0,Y.jsx)(`div`,{className:`flex items-start gap-2`,children:o.map(e=>(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-0.5`,style:{width:`${p}px`,minWidth:`${p}px`},children:[(0,Y.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-secondary)`},children:mn(e.totalEstimatedCostUsd)}),(0,Y.jsx)(`span`,{className:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`},children:Kn(e)})]},e.bucketId))}),l.length>0?(0,Y.jsx)(Qn,{items:l}):null]}),i?(0,Y.jsx)(Zn,{tooltip:i}):null]})}function Yn({isHourly:e}){let t=e?Un:Hn,n=e?Fn:Pn;return(0,Y.jsx)(`div`,{className:`flex items-end gap-2`,style:{height:`${Nn}px`},"aria-hidden":`true`,children:t.map((e,t)=>(0,Y.jsx)(`div`,{className:`rounded-sm`,style:{width:`${n}px`,height:`${e}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}},t))})}function Xn({bucket:e,height:t,legendItems:n,hasLegendOverride:r,onSegmentHover:i,onSegmentLeave:a}){let o=Object.keys(e.groups).length>0,s=n.filter(e=>(e.state??`active`)===`active`).flatMap(t=>{let n=e.groups[t.seriesKey];return!n||n.totalEstimatedCostUsd<=0?[]:[{item:t,value:n}]});if(s.length===0&&!o&&!r){let n=Kn(e),r={label:Ie(`settings:usageTrendChart.total`),bucketLabel:n,cost:mn(e.totalEstimatedCostUsd)};return(0,Y.jsx)(`div`,{className:`w-full rounded-sm`,title:`${r.label}: ${r.cost}`,onMouseEnter:e=>i(e,r),onMouseMove:e=>i(e,r),onMouseLeave:a,style:{height:`${t}px`,background:Gn(0)},"data-usage-series-segment-label":r.label,"data-usage-fallback-segment":`true`})}return s.length===0?null:(0,Y.jsx)(`div`,{className:`flex w-full flex-col-reverse overflow-hidden rounded-sm`,style:{height:`${t}px`},"data-usage-series-stack":e.bucketId,children:s.map(({item:n,value:r})=>{let o={label:n.label,bucketLabel:Kn(e),cost:mn(r.totalEstimatedCostUsd)};return(0,Y.jsx)(`div`,{title:`${o.label}: ${o.cost}`,onMouseEnter:e=>i(e,o),onMouseMove:e=>i(e,o),onMouseLeave:a,style:{height:`${Math.max(Ln,t*r.totalEstimatedCostUsd/Math.max(e.totalEstimatedCostUsd,Rn))}px`,background:Gn(n.colorIndex)},"data-usage-series-segment":n.seriesKey,"data-usage-series-segment-label":n.label,"data-usage-series-color-index":n.colorIndex},n.seriesKey)})})}function Zn({tooltip:e}){return(0,Y.jsxs)(`div`,{className:`pointer-events-none fixed z-50 max-w-[220px] rounded-md border px-2 py-1 shadow-xl`,style:{left:`${e.x}px`,top:`${e.y}px`,background:`var(--surface-overlay, var(--surface-lift))`,borderColor:`var(--border-base)`},"aria-hidden":`true`,children:[(0,Y.jsx)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-default)`},children:e.label}),(0,Y.jsxs)(`div`,{className:`truncate text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[e.bucketLabel,` · `,e.cost]})]})}function Qn({items:e}){return(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 pt-1`,children:e.map(e=>{let t=e.state??`active`,n=t===`inactive`;return(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1`,"data-usage-legend-state":t,children:[(0,Y.jsx)(`span`,{className:`h-[7px] w-[7px] shrink-0 rounded-full`,style:{background:n?`var(--content-tertiary)`:Gn(e.colorIndex),opacity:n?.45:1},"aria-hidden":`true`,"data-usage-series-color-index":e.colorIndex}),(0,Y.jsx)(`span`,{className:n?`truncate text-[10px] line-through`:`truncate text-[10px]`,style:{color:`var(--content-tertiary)`,opacity:n?.65:1},children:e.label})]},e.seriesKey)})})}function $n({title:e,subtitle:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-md py-12 text-center`,style:{color:`var(--content-tertiary)`},children:[(0,Y.jsx)(`p`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:e}),(0,Y.jsx)(`p`,{className:`mt-1 text-body-small-default`,children:t})]})}function er(e){return vn(e)?yn(e):e}function tr(e){return ar({from:e.from,to:e.to},e.scheduleId)}function nr(e){return ar({from:e.from,to:e.to,...e.granularity?{granularity:e.granularity}:{},...e.tz?{tz:e.tz}:{}},e.scheduleId)}function rr(e){return ar({from:e.from,to:e.to,groupBy:er(e.groupBy)},e.scheduleId)}function ir(e){return ar({from:e.from,to:e.to,granularity:e.granularity,groupBy:er(e.groupBy),...e.tz?{tz:e.tz}:{}},e.scheduleId)}function ar(e,t){return t?{...e,scheduleId:t}:e}function or(e){return[`${pn(e.totalInputTokens)} direct`,`${pn(e.totalCacheCreationTokens)} cache created`,`${pn(e.totalCacheReadTokens)} cache read`,`${pn(e.totalOutputTokens)} out`].join(` / `)}function sr(e){return!Number.isFinite(e)||e===0?`0`:e>=1e6||e>=999950&&e<1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:e.toLocaleString()}function cr(e){return`${sr(e.totalInputTokens+e.totalCacheCreationTokens+e.totalCacheReadTokens)} in / ${sr(e.totalOutputTokens)} out`}var lr=`task`,ur=`model`,dr=new Set([400,404,422]),fr=3,pr=new Set([`today`,`yesterday`,`7d`,`30d`,`90d`,`all`]),mr=new Set([`actor`,`provider`,`model`,`conversation`,`task`,`profile`,`schedule`]),hr={task:gn.task,profile:gn.profile,model:gn.model,provider:`Provider`,actor:`Actor`,conversation:`Conversation`,schedule:`Schedule`},gr=[{value:`task`,label:hr.task},{value:`profile`,label:hr.profile},{value:`model`,label:hr.model},{value:`provider`,label:hr.provider},{value:`schedule`,label:hr.schedule},{value:`conversation`,label:hr.conversation}];function _r(e){let t=e.get(`range`),n=e.get(`groupBy`),r=xr(n)?n:lr;return{range:br(t)?t:`7d`,groupBy:r,scheduleId:r===`schedule`?vr(e):void 0}}function vr(e){let t=e.get(`scheduleId`);if(!(!t||t.trim().length===0))return t}function yr(e,t){let n=new URLSearchParams(e);return t.range!==void 0&&n.set(`range`,t.range),t.groupBy!==void 0&&n.set(`groupBy`,t.groupBy),t.scheduleId!==void 0&&(t.scheduleId===null||t.scheduleId.trim().length===0?n.delete(`scheduleId`):n.set(`scheduleId`,t.scheduleId)),n.get(`groupBy`)!==`schedule`&&n.delete(`scheduleId`),n}function br(e){return e!=null&&pr.has(e)}function xr(e){return e!=null&&mr.has(e)}function Sr(e){return e!==`conversation`}function Cr(e,t){return e!==`task`&&e!==`profile`?!1:Tr(t)}function wr(e,t){return!Tr(t)&&e<fr}function Tr(e){return e instanceof ze&&dr.has(e.status)}function Er({requestedGranularity:e,isLoading:t,buckets:n}){return e===`hourly`&&(t||!n||n.length===0||n.some(Dr))?`hourly`:`daily`}function Dr(e){return e.bucketId.includes(`|`)||Or(e.date)}function Or(e){return/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):00$/.test(e)}function kr(e,t,n=Date.now()){return nn(e,t,n)}function Ar(e){return e===`today`||e===`yesterday`?`hourly`:`daily`}function jr({prompt:e,children:t,variant:n=`outlined`,size:r=`regular`,className:a}){let s=o(),c=(0,J.useCallback)(()=>{Ht(s,{prompt:e})},[s,e]);return(0,Y.jsx)(i,{variant:n,size:r,leftIcon:(0,Y.jsx)(De,{}),onClick:c,className:a,children:t})}var Mr={today:`usageTab.rangeToday`,yesterday:`usageTab.rangeYesterday`,"7d":`usageTab.range7d`,"30d":`usageTab.range30d`,"90d":`usageTab.range90d`,all:`usageTab.rangeAll`},Nr={task:`usageTab.groupByTask`,profile:`usageTab.groupByProfile`,model:`usageTab.groupByModel`,provider:`usageTab.groupByProvider`,actor:`usageTab.groupByActor`,conversation:`usageTab.groupByConversation`,schedule:`usageTab.groupBySchedule`};function Pr(e,t){return e(Nr[t])}function Fr(e,t,n){let r=e(t===`hourly`?`usageTab.hourlyTrend`:`usageTab.dailyTrend`);if(!n||n===`conversation`)return r;let i=Pr(e,n);return e(t===`hourly`?`usageTab.hourlyTrendBy`:`usageTab.dailyTrendBy`,{group:i})}var Ir=300*1e3,Lr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and explain the biggest cost contributors by call site, model, and profile.`,`Check my current llm.default, llm.callSites, and llm.profiles.`,`Give me a concise summary of what is driving cost and what you would optimize first.`,`Do not change config yet.`].join(` `),Rr=[`Please load the llm-cost-optimizer skill.`,`Analyze my recent LLM usage and current LLM config, then recommend the safest cost-optimization changes.`,`If changes are clearly safe, show me the exact config commands you would run and ask for confirmation before applying them.`].join(` `);function zr({assistantId:e}){let{t}=q(`settings`),[n,r]=s(),{range:i,groupBy:a,scheduleId:o}=(0,J.useMemo)(()=>_r(n),[n]),c=Gt(),l=(0,J.useCallback)(e=>{r(t=>yr(t,e),{replace:!0})},[r]),u=(0,J.useMemo)(()=>kr(i,c),[i,c]),f=(0,J.useMemo)(()=>Ar(i),[i]),p=d({queryKey:Qe({path:{assistant_id:e}}),queryFn:()=>Zt(e),staleTime:1e4}),m=(0,J.useCallback)(e=>{l({range:e})},[l]),h=d({...tt({path:{assistant_id:e},query:tr({from:u.from,to:u.to,scheduleId:o})})}),g=d({queryKey:Ze({path:{assistant_id:e},query:rr({from:u.from,to:u.to,groupBy:a,scheduleId:o})}),queryFn:async({signal:t})=>{try{let{data:n}=await We({path:{assistant_id:e},query:rr({from:u.from,to:u.to,groupBy:a,scheduleId:o}),signal:t,throwOnError:!0});return{groupBy:a,response:n}}catch(n){if(!Cr(a,n))throw n;let{data:r}=await We({path:{assistant_id:e},query:rr({from:u.from,to:u.to,groupBy:ur,scheduleId:o}),signal:t,throwOnError:!0});return{groupBy:ur,response:r}}},retry:wr}),_=g.data?.groupBy??a;(0,J.useEffect)(()=>{_!==a&&l({groupBy:_,scheduleId:_===`schedule`?void 0:null})},[_,a,l]);let v=Sr(_)?_:void 0,y=d({...$e({path:{assistant_id:e},query:ir({from:u.from,to:u.to,granularity:f,groupBy:v??`actor`,tz:c,scheduleId:o})}),enabled:!!v,retry:wr}),b=d({...et({path:{assistant_id:e},query:nr({from:u.from,to:u.to,granularity:f,tz:c,scheduleId:o})}),enabled:!v||y.isError}),x=d({...nt({path:{assistant_id:e}}),enabled:_===`task`,staleTime:1/0}),S=d({...rt({path:{assistant_id:e}}),select:an,enabled:_===`profile`,staleTime:Ir}),C=(0,J.useMemo)(()=>({callSites:fn(x.data),profiles:S.data??{}}),[x.data,S.data]),w=(0,J.useMemo)(()=>{let e=g.data;if(e)return Sn(e.response.breakdown,e.groupBy,C)},[g.data,C]),T=(0,J.useMemo)(()=>{if(!(!v||!y.data))return kn(y.data.buckets,v,C)},[y.data,v,C]),E=(0,J.useMemo)(()=>{if(b.data)return On(b.data.buckets)},[b.data]),D=(0,J.useMemo)(()=>v?y.error?E?{isLoading:!1,error:null,data:E,refetch:b.refetch}:{isLoading:b.isLoading||!E&&!b.error,error:b.error??y.error,data:void 0,refetch:b.error?b.refetch:y.refetch}:{isLoading:y.isLoading,error:y.error,data:T,refetch:y.refetch}:{isLoading:b.isLoading,error:b.error,data:E,refetch:b.refetch},[E,b.error,b.isLoading,b.refetch,T,v,y.error,y.isLoading,y.refetch]),O=Er({requestedGranularity:f,isLoading:D.isLoading,buckets:D.data}),k=O===`hourly`,A=v&&y.error?void 0:_,j=(0,J.useMemo)(()=>{if(!(_!==`schedule`||!o))return Br(p.data,o,t)},[_,o,p.data,t]);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsx)(`h3`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:t(`usageTab.title`)}),(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,Y.jsx)(Hr,{range:i,onChange:m})})]}),(0,Y.jsx)(`section`,{"aria-label":t(`usageTab.totalsAriaLabel`),children:(0,Y.jsx)(Wr,{query:h,skeleton:(0,Y.jsx)(qr,{}),render:e=>(0,Y.jsx)(Gr,{totals:e})})}),(0,Y.jsx)(Ur,{title:t(`usageTab.inferenceUsageTitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsx)(`h4`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:Fr(t,O,A)}),(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:(0,Y.jsx)(Jr,{value:_,onChange:e=>{l({groupBy:e,scheduleId:e===`schedule`?void 0:null})}})})]}),(0,Y.jsx)(Wr,{query:D,skeleton:(0,Y.jsx)(Yn,{isHourly:k}),render:e=>(0,Y.jsx)(Jn,{buckets:e,isHourly:k,legendItems:j})})]})}),(0,Y.jsx)(Yr,{query:g,groups:w}),(0,Y.jsx)(Vr,{})]})}function Br(e,t,n){let r=e??[];return[...r.some(e=>e.id===t)?[]:[{id:t,label:n(`usageTab.unknownSchedule`,{scheduleId:t})}],...r.map(e=>({id:e.id,label:e.name||e.id}))].map((e,n)=>({seriesKey:En(e.id,`schedule`),label:e.label,colorIndex:n,state:e.id===t?`active`:`inactive`}))}function Vr(){let{t:e}=q(`settings`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsx)(`div`,{className:`h-px w-full`,style:{background:`linear-gradient(to right, transparent, var(--border-base), transparent)`}}),(0,Y.jsx)(Ur,{title:e(`usageTab.costAssistantTitle`),subtitle:e(`usageTab.costAssistantSubtitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md px-3 py-3 sm:flex-row sm:items-center`,children:[(0,Y.jsx)(jr,{prompt:Lr,children:e(`usageTab.analyzeCostsButton`)}),(0,Y.jsx)(jr,{prompt:Rr,variant:`ghost`,children:e(`usageTab.optimizeSettingsButton`)})]})})]})}function Hr({range:e,onChange:t}){let{t:n}=q(`settings`);return(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(Fe,{value:e,onChange:t,options:Object.entries(Mr).map(([e,t])=>({value:e,label:n(t)}))})})}function Ur({title:e,subtitle:t,children:n}){return(0,Y.jsxs)(`section`,{className:`flex flex-col gap-3 rounded-md border px-4 py-4`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`},children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`h3`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),t?(0,Y.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t}):null]}),n]})}function Wr({query:e,skeleton:t,render:n}){let{t:r}=q(`settings`);return e.isLoading?(0,Y.jsx)(Y.Fragment,{children:t}):e.error?(0,Y.jsx)(ti,{message:e.error instanceof Error?e.error.message:r(`usageTab.failedToLoadUsage`),onRetry:()=>e.refetch()}):e.data?(0,Y.jsx)(Y.Fragment,{children:n(e.data)}):(0,Y.jsx)(Y.Fragment,{children:t})}function Gr({totals:e}){let{t}=q(`settings`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{style:{fontSize:`30px`,fontWeight:600,lineHeight:1,color:`var(--content-default)`},children:mn(e.totalEstimatedCostUsd)}),(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:t(`usageTab.costLabel`)})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)(`span`,{className:`text-title-small`,style:{color:`var(--content-default)`},children:pn(e.eventCount)}),(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-secondary)`},children:t(`usageTab.llmCallsLabel`)})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[(0,Y.jsx)(Kr,{label:t(`usageTab.directInputTokensLabel`),value:pn(e.totalInputTokens)}),(0,Y.jsx)(Kr,{label:t(`usageTab.outputTokensLabel`),value:pn(e.totalOutputTokens)}),(0,Y.jsx)(Kr,{label:t(`usageTab.cacheCreatedLabel`),value:pn(e.totalCacheCreationTokens)}),(0,Y.jsx)(Kr,{label:t(`usageTab.cacheReadLabel`),value:pn(e.totalCacheReadTokens)})]})]})}function Kr({label:e,value:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-default)`},children:t}),(0,Y.jsx)(`span`,{className:`text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:e})]})}function qr(){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,"aria-hidden":`true`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($r,{width:140,height:30}),(0,Y.jsx)($r,{width:90,height:12})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Y.jsx)($r,{width:60,height:16}),(0,Y.jsx)($r,{width:60,height:12})]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:Array.from({length:4}).map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-md px-3 py-2`,style:{background:`color-mix(in srgb, var(--border-base) 15%, transparent)`},children:[(0,Y.jsx)($r,{width:`50%`,height:12}),(0,Y.jsx)($r,{width:`70%`,height:11})]},t))})]})}function Jr({value:e,onChange:t}){let{t:n}=q(`settings`);return(0,Y.jsx)(`div`,{className:`flex items-center`,children:(0,Y.jsx)(Fe,{value:e,onChange:t,menuAlign:`end`,menuMinWidth:196,options:gr.map(e=>({value:e.value,label:Pr(n,e.value)}))})})}function Yr({query:e,groups:t}){let{t:n}=q(`settings`),[r,i]=(0,J.useState)(new Set),a=e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})};return(0,Y.jsx)(Ur,{title:n(`usageTab.breakdownTitle`),children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(Xr,{label:n(`usageTab.percentOfTotalLabel`),active:r.has(`pct`),onClick:()=>a(`pct`)}),(0,Y.jsx)(Xr,{label:n(`usageTab.tokensLabel`),active:r.has(`tokens`),onClick:()=>a(`tokens`)}),(0,Y.jsx)(Xr,{label:n(`usageTab.turnsLabel`),active:r.has(`turns`),onClick:()=>a(`turns`)})]}),(0,Y.jsx)(Wr,{query:e,skeleton:(0,Y.jsx)(Qr,{}),render:e=>(0,Y.jsx)(Zr,{groups:t??e.response.breakdown,groupBy:e.groupBy,showPct:r.has(`pct`),showTokens:r.has(`tokens`),showTurns:r.has(`turns`)})})]})})}function Xr({label:e,active:t,onClick:n}){return(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`rounded-full border px-2.5 py-1 text-label-medium-default`,style:{borderColor:t?`var(--content-secondary)`:`var(--border-base)`,background:t?`color-mix(in srgb, var(--content-secondary) 15%, transparent)`:`transparent`,color:t?`var(--content-default)`:`var(--content-tertiary)`},children:e})}function Zr({groups:e,groupBy:t,showPct:n,showTokens:r,showTurns:i}){let{t:a}=q(`settings`),s=o();if(e.length===0)return(0,Y.jsx)(ei,{title:a(`usageTab.noBreakdownDataTitle`),subtitle:a(`usageTab.noBreakdownDataSubtitle`)});let l=e.reduce((e,t)=>e+t.totalEstimatedCostUsd,0);return(0,Y.jsx)(`div`,{className:`overflow-hidden rounded-md`,children:(0,Y.jsxs)(`table`,{className:`w-full table-fixed`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{style:{borderBottom:`1px solid var(--border-base)`},children:[(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`},children:a(`usageTab.groupColumnLabel`)}),r?(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-left text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`35%`},children:a(`usageTab.tokensLabel`)}):null,i?(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`72px`},children:a(`usageTab.turnsLabel`)}):null,n?(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`64px`},children:`%`}):null,(0,Y.jsx)(`th`,{className:`px-3 py-2.5 text-right text-label-medium-default`,style:{color:`var(--content-tertiary)`,width:`100px`},children:a(`usageTab.costLabel`)})]})}),(0,Y.jsx)(`tbody`,{children:e.map((e,a)=>{let o=or(e),u=cr(e),d=t===`conversation`?e.groupId:null,f=l>0?Math.round(e.totalEstimatedCostUsd/l*100):0;return(0,Y.jsxs)(`tr`,{className:d?`cursor-pointer hover:bg-[var(--surface-hover)]`:void 0,onClick:d?e=>{e.target.closest(`a`)||Vt(s,d)}:void 0,style:{borderTop:a===0?`none`:`1px solid var(--border-base)`},children:[(0,Y.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-default)`},children:d?(0,Y.jsx)(c,{to:Ke.conversation(d),className:`block truncate text-body-medium-lighter`,title:e.group,onClick:e=>{en(e)||(e.preventDefault(),Vt(s,d))},children:e.group}):(0,Y.jsx)(`span`,{className:`block truncate text-body-medium-lighter`,title:e.group,children:e.group})}),r?(0,Y.jsx)(`td`,{className:`min-w-0 px-3 py-2`,style:{color:`var(--content-secondary)`},children:(0,Y.jsx)(`span`,{className:`block truncate text-body-small-default`,title:o,children:u})}):null,i?(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:e.turnCount==null?`—`:e.turnCount.toLocaleString()})}):null,n?(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,Y.jsxs)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:[f,`%`]})}):null,(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2 text-right`,children:(0,Y.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:mn(e.totalEstimatedCostUsd)})})]},e.groupKey??e.groupId??`${e.group}-${a}`)})})]})})}function Qr(){return(0,Y.jsx)(`div`,{className:`flex flex-col gap-2`,"aria-hidden":`true`,children:Array.from({length:4}).map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)($r,{width:100,height:14}),(0,Y.jsx)($r,{width:`60%`,height:12}),(0,Y.jsx)($r,{width:50,height:14})]},t))})}function $r({width:e,height:t}){return(0,Y.jsx)(`div`,{className:`rounded-sm`,style:{width:typeof e==`number`?`${e}px`:e,height:`${t}px`,background:`color-mix(in srgb, var(--border-base) 40%, transparent)`}})}function ei({title:e,subtitle:t}){return(0,Y.jsxs)(`div`,{className:`flex flex-col items-center gap-1 py-8 text-center`,children:[(0,Y.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),(0,Y.jsx)(`span`,{className:`text-body-small-default`,style:{color:`var(--content-tertiary)`},children:t})]})}function ti({message:e,onRetry:t}){let{t:n}=q(`settings`);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 py-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(Oe,{className:`h-4 w-4 shrink-0`,style:{color:`var(--system-negative-strong, #f87171)`}}),(0,Y.jsx)(`span`,{className:`text-body-medium-lighter`,style:{color:`var(--content-default)`},children:e})]}),t?(0,Y.jsx)(`button`,{type:`button`,onClick:t,className:`self-start rounded-md border px-3 py-1 text-body-small-default`,style:{background:`var(--surface-lift)`,borderColor:`var(--border-base)`,color:`var(--content-default)`},children:n(`usageTab.retry`)}):null]})}function ni({open:e,onCancel:t,onConfirm:n,confirming:r,lostFeatures:a}){return(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{!e&&!r&&t()},children:(0,Y.jsxs)(G.Content,{size:`md`,hideCloseButton:!0,children:[(0,Y.jsx)(G.Header,{icon:Oe,children:(0,Y.jsx)(G.Title,{children:`Downgrade to Base?`})}),(0,Y.jsxs)(G.Body,{children:[(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,Y.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:a.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,Y.jsxs)(G.Footer,{children:[(0,Y.jsx)(i,{variant:`outlined`,onClick:t,disabled:r,children:`Keep Pro`}),(0,Y.jsx)(i,{variant:`danger`,onClick:n,disabled:r,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]})})}function ri(e){return`${e.label} — ${P(e.price_cents)}`}function ii({creditTiers:e,selectedCreditTier:t,onCreditTierChange:n,disabled:r=!1}){let i=(0,J.useMemo)(()=>[{value:null,label:`No credit bundle — ${P(0)}`},...e.map(e=>({value:e.tier,label:ri(e)}))],[e]);return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(h,{as:`p`,variant:`label-small-default`,className:`text-[var(--content-secondary)]`,children:`Credit bundle`}),(0,Y.jsx)(`span`,{title:`A monthly allotment of credits added to your Pro Plan subscription`,children:(0,Y.jsx)(Ee,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),(0,Y.jsx)(Fe,{"aria-label":`Credit bundle`,placeholder:`Select a credit bundle`,disabled:r,value:t,onChange:e=>n(e),onSelectNone:()=>n(null),options:i})]})}function ai({features:e,variant:t,header:n,maxInline:r=3}){return t===`inline`?(0,Y.jsx)(Y.Fragment,{children:e.slice(0,r).join(`, `)}):(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n&&(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:n}),(0,Y.jsx)(`ul`,{className:`flex flex-col gap-2`,children:e.map(e=>(0,Y.jsxs)(`li`,{className:`flex items-start gap-2`,children:[(0,Y.jsx)(T,{className:`mt-0.5 h-4 w-4 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})]},e))})]})}function oi({plan:e,isCurrent:t,onPro:n,planDisplayName:r,currentPlanFeatures:a,cancelAtPeriodEnd:o,isCanceled:s,cancelDate:c,formatGraceDate:l,proTierChangeMode:u,creditTiersEnabled:d,creditTiers:f,displayCreditTier:p,onCreditTierChange:m,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,machineTiersForPicker:x,storageTiersForPicker:S,currentMachinePrice:C,currentStoragePrice:w,currentCreditPriceUnknown:T,proCurrentTotalCents:E,proLiveTotalCents:D,proTotalDelta:O,onboardingLoading:k,tierChangePending:A,machineChanged:j,storageChanged:ee,creditChanged:F,tierChangeError:I,upgradePending:te,portalPending:ne,onUpgrade:re,onApplyTierChange:ie,onDowngradeClick:ae,onKeepPlan:oe}){let se=e.id===`pro`,L=e.id===`base`,R=se&&n&&o&&!s,z=se&&(!t||t&&u),B=se&&t&&u,ce=se&&t;return(0,Y.jsx)(g.Root,{className:`flex flex-col bg-[var(--surface-base)]`,children:(0,Y.jsxs)(g.Body,{padding:`lg`,className:`max-sm:p-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`flex h-9 w-9 items-center justify-center rounded-lg border border-[var(--border-base)] bg-[var(--surface-lift)]`,children:se?(0,Y.jsx)(on,{className:`h-5 w-5 text-[var(--content-default)]`}):(0,Y.jsx)(sn,{className:`h-5 w-5 text-[var(--content-default)]`})}),(0,Y.jsxs)(`div`,{className:`flex min-h-6 items-center gap-2`,children:[(0,Y.jsx)(h,{as:`h3`,variant:`title-small`,"data-testid":`modal-plan-name`,children:ce?r:e.name}),t&&(0,Y.jsx)(Me,{tone:`positive`,children:`Current`})]}),(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`-mt-2 text-[var(--content-tertiary)]`,children:L?`All you need for a capable assistant`:`More features, more compute, more storage`}),R&&c&&(0,Y.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--system-mid-strong)]`,"data-testid":`modal-cancels-on`,children:[`Your plan ends on `,l(c)]}),(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,Y.jsx)(`div`,{className:`flex flex-col gap-1`,children:L?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(h,{as:`p`,variant:`title-medium`,children:`Free`}),(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,children:`Forever`})]}):t&&!(z&&D!=null)&&(E==null||T)?k?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,Y.jsx)(h,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-price-unavailable`,children:`Current plan pricing unavailable`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(h,{as:`p`,variant:`title-medium`,"data-testid":`modal-pro-price`,children:z&&D!=null?(0,Y.jsxs)(Y.Fragment,{children:[P(D),O!=null&&O!==0&&(0,Y.jsxs)(`span`,{className:`ml-1 text-[var(--content-tertiary)]`,children:[`(`,M(O),`)`]})]}):E==null?e.id===`pro`?`From ${P(e.base_price_cents+V(e.machine_tiers)+V(e.storage_tiers))}`:null:`Currently ${P(E)}`}),z&&O!=null&&O!==0&&(0,Y.jsx)(`span`,{title:`Your Pro Plan subscription will change from ${P(E)} to ${P(D)}.`,children:(0,Y.jsx)(Ee,{className:`h-3 w-3 text-[var(--content-tertiary)]`})})]}),e.id===`pro`&&(0,Y.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-pro-base-fee`,children:[N(e.base_price_cents),` base fee`]})]})}),(0,Y.jsx)(ai,{features:ce&&a?a:e.included_features,variant:`checklist`}),se&&!d&&(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`modal-credits-not-included`,children:`*Credits not included`})]}),(0,Y.jsxs)(`div`,{className:`mt-4 flex flex-1 flex-col justify-end gap-4`,children:[!t&&se&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,Y.jsx)(ii,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:m,disabled:te}),(0,Y.jsx)(de,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b}),(0,Y.jsx)(i,{variant:`primary`,className:`w-full`,onClick:re,disabled:te||!_||!v,"data-testid":`modal-upgrade-to-pro-button`,children:`Upgrade to Pro`})]}),B&&(k?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading your plan...`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),d&&(0,Y.jsx)(ii,{creditTiers:f,selectedCreditTier:p,onCreditTierChange:m,disabled:A}),(0,Y.jsx)(de,{machineTiers:x,storageTiers:S,selectedMachineTier:_,selectedStorageTier:v,onMachineTierChange:y,onStorageTierChange:b,currentMachinePriceCents:C,currentStoragePriceCents:w}),I&&(0,Y.jsx)(U,{tone:`error`,children:I}),(0,Y.jsx)(i,{variant:`primary`,className:`w-full`,onClick:ie,disabled:A||!j&&!ee&&!F,"data-testid":`modal-change-tier-button`,children:`Update Plan`})]})),!t&&L&&n&&!o&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,Y.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:ae,disabled:ne,"data-testid":`modal-downgrade-to-base-button`,children:`Downgrade to Base`})]}),R&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`hr`,{className:`border-t border-[var(--border-base)]`}),(0,Y.jsx)(i,{variant:`outlined`,className:`w-full`,onClick:oe,disabled:ne,"data-testid":`modal-keep-plan-button`,children:`Keep your Plan`})]})]})]})})}function si({open:e,onClose:t,onTierUpgraded:n}){let r=u(),a=d(xt()),o=d(Tt()),s=p(bt()),c=p(St()),l=p(Ft()),f=p(Nt()),m=I(ie(o.data)),[g,_]=(0,J.useState)(`plans`),[v,y]=(0,J.useState)(!1),[b,S]=(0,J.useState)(null),[C,w]=(0,J.useState)(null),[T,E]=(0,J.useState)(void 0);(0,J.useEffect)(()=>at(()=>{r.invalidateQueries({queryKey:wt()}),r.invalidateQueries({queryKey:kt()}),r.invalidateQueries({queryKey:Dt()}),t()}),[r,t]);let D=o.data?.plan_id,O=D===`pro`,k=d({...At(),enabled:O}),A=k.data?.max_machine_tier??null,j=k.data?.selected_storage_tier??null,M=k.data?.selected_storage_gib??null,N=o.data?.cancel_at_period_end===!0||!!o.data?.cancel_at,P=o.data?.status===`canceled`,F=oe(o.data),ne=o.data?.status,ae=ne!=null&&se.has(ne),z=O&&ae&&!N&&!P,B=a.data?.plans.find(e=>e.id===`pro`),ce=B?.credit_tiers??[],le=ce.length>0,V=o.data?.selected_credit_tier??null,ue=e=>ce.find(t=>t.tier===e)?.price_cents??0,de=ue(V),pe=V!=null&&!ce.some(e=>e.tier===V),me=T===void 0?V:T,he=ue(me),ge=ee(o.data?.package),_e=O&&k.isSuccess&&B?fe({machineTier:A,storageTier:j,storageGib:M,creditTier:V},B):null,ve=B?.machine_tiers??[],ye=z&&M!=null?(B?.storage_tiers??[]).map(e=>e.storage_gib<M?{...e,disabled:!0}:e):B?.storage_tiers??[];(0,J.useEffect)(()=>{if(!e){S(null),w(null),E(void 0);return}if(B){if(z){if(A==null||j==null)return;S(e=>L(ve,e??A)),w(e=>L(ye,e??j)),E(e=>re(ce,e,V));return}S(e=>L(B.machine_tiers,e)),w(e=>L(B.storage_tiers,e)),E(e=>re(ce,e,null))}},[e,B,z,A,j,V]);let be=a.data?.plans.find(e=>e.id===`base`),xe=new Set(be?.included_features??[]),Se=(B?.included_features??[]).filter(e=>!xe.has(e)),Ce=()=>{if(!s.isPending){if(!b||!C){K.error(`Pick a machine and storage tier to continue.`,{id:`pro-upgrade-error`});return}s.mutate({body:{target_plan_id:`pro`,confirm:!0,machine_tier:b,storage_tier:C,credit_tier:me,return_target:Qt()}},{onSuccess:e=>{if(e.checkout_url){Ge({kind:`custom`,machineTier:b,storageTier:C,creditTier:me}),Be(r),it(e.checkout_url);return}if(e.status===`no_op`){K.info(`You're already on Pro.`,{id:`pro-upgrade`}),t();return}K.error(e.message??`Failed to start upgrade. Please try again.`,{id:`pro-upgrade-error`})},onError:e=>{K.error(te(e,`Failed to start upgrade. Please try again.`),{id:`pro-upgrade-error`})}})}},we=()=>{m.isPending||(_(`plans`),m.mutate({}))},Te=()=>{r.invalidateQueries({queryKey:wt()}),r.invalidateQueries({queryKey:Dt()}),r.invalidateQueries({queryKey:kt()})},Ee=c.isPending||l.isPending||f.isPending,De=b!=null&&b!==A,ke=C!=null&&C!==j,Ae=le&&T!==void 0&&T!==V,je=e=>ve.find(t=>t.tier===e)?.price_cents??null,Me=e=>ye.find(t=>t.tier===e)?.price_cents??null,W=je(b),Ne=Me(C),Pe=je(A),Fe=Me(j),Ie=De&&W!=null&&Pe!=null&&W<Pe,q=()=>{if(Ee)return;let e=[];De&&b&&e.push(new Promise(e=>{c.mutate({body:{machine_tier:b}},{onSuccess:()=>e({dimension:`machine`,ok:!0}),onError:t=>e({dimension:`machine`,ok:!1,error:t})})})),ke&&C&&e.push(new Promise(e=>{l.mutate({body:{storage_tier:C}},{onSuccess:()=>e({dimension:`storage`,ok:!0}),onError:t=>e({dimension:`storage`,ok:!1,error:t})})})),Ae&&e.push(new Promise(e=>{f.mutate({body:{credit_tier:me}},{onSuccess:()=>e({dimension:`credit`,ok:!0}),onError:t=>e({dimension:`credit`,ok:!1,error:t})})})),Promise.all(e).then(e=>{Te();let r=e.some(e=>e.ok&&e.dimension===`storage`),i=e.some(e=>e.ok&&e.dimension===`machine`)&&!Ie,a=(r||i)&&!!n,o=e.filter(e=>!e.ok);if(o.length>0){let e=o.map(e=>te(e.error,`Failed to update ${e.dimension} tier.`)).join(` `);K.error(e,{id:`pro-tier-change-error`}),a&&(t(),n());return}a?(t(),n()):K.success(Ae&&!De&&!ke?`Credit bundle updated.`:`Plan updated.`,{id:`pro-tier-change`})})},Le=()=>{if(!Ee){if(Ie){y(!0);return}q()}},Re=()=>{y(!1),q()},ze=e=>W!=null&&Ne!=null?e.base_price_cents+W+Ne+he:null,Ve=e=>Pe!=null&&Fe!=null?e.base_price_cents+Pe+Fe+de:null,He=c.isError||l.isError||f.isError?te(c.error??l.error??f.error,`Failed to update plan. Please try again.`):null,Ue=a.isLoading||o.isLoading,We=a.isError||o.isError||!a.data||!o.data;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{e||(_(`plans`),t())},children:(0,Y.jsx)(G.Content,{size:g===`plans`?`lg`:`md`,children:g===`downgrade-confirm`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G.Header,{icon:Oe,children:(0,Y.jsx)(G.Title,{children:`Downgrade to Base?`})}),(0,Y.jsxs)(G.Body,{children:[(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-(--content-secondary)`,children:`Downgrading removes the following Pro features:`}),(0,Y.jsx)(`ul`,{className:`mt-4 list-disc space-y-2 pl-5`,children:Se.map(e=>(0,Y.jsx)(`li`,{children:(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,children:e})},e))})]}),(0,Y.jsxs)(G.Footer,{children:[(0,Y.jsx)(i,{variant:`ghost`,onClick:()=>_(`plans`),disabled:m.isPending,leftIcon:(0,Y.jsx)(x,{className:`h-4 w-4`}),children:`Back`}),(0,Y.jsx)(i,{variant:`danger`,onClick:we,disabled:m.isPending,"data-testid":`confirm-downgrade-button`,children:`Confirm Downgrade`})]})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(G.Header,{children:(0,Y.jsx)(G.Title,{className:`sr-only`,children:`Upgrade Plan`})}),(0,Y.jsx)(G.Body,{children:Ue?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-lighter`,children:`Loading plans...`})]}):We?(0,Y.jsx)(U,{tone:`error`,children:`Failed to load plans. Please try again later.`}):(0,Y.jsxs)(`div`,{className:`space-y-4 sm:space-y-6`,children:[(0,Y.jsxs)(`div`,{className:`space-y-2 pb-2 pt-4 text-center`,children:[(0,Y.jsx)(h,{as:`p`,variant:`title-medium`,children:`Your Assistant, Your Way`}),(0,Y.jsx)(h,{as:`p`,variant:`body-medium-lighter`,className:`text-[var(--content-secondary)]`,children:`Choose the plan that works best for you and your assistant.`})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2`,children:a.data.plans.map(e=>{let t=e.id===D,n=e.id===`pro`&&B?ze(B):null,r=e.id===`pro`&&B?Ve(B):null;return(0,Y.jsx)(oi,{plan:e,isCurrent:t,onPro:O,planDisplayName:ge,currentPlanFeatures:_e,cancelAtPeriodEnd:N,isCanceled:P,cancelDate:F,formatGraceDate:R,proTierChangeMode:z,creditTiersEnabled:le,creditTiers:ce,displayCreditTier:me,onCreditTierChange:E,selectedMachineTier:b,selectedStorageTier:C,onMachineTierChange:S,onStorageTierChange:w,machineTiersForPicker:ve,storageTiersForPicker:ye,currentMachinePrice:Pe,currentStoragePrice:Fe,currentCreditPriceUnknown:pe,proCurrentTotalCents:r,proLiveTotalCents:n,proTotalDelta:n!=null&&r!=null?n-r:null,onboardingLoading:k.isLoading,tierChangePending:Ee,machineChanged:De,storageChanged:ke,creditChanged:Ae,tierChangeError:He,upgradePending:s.isPending,portalPending:m.isPending,onUpgrade:Ce,onApplyTierChange:Le,onDowngradeClick:()=>_(`downgrade-confirm`),onKeepPlan:()=>m.mutate({})},e.id)})})]})}),(0,Y.jsxs)(G.Footer,{className:`relative items-center`,children:[(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`pointer-events-none absolute inset-x-0 text-center text-[var(--content-tertiary)]`,children:(0,Y.jsx)(`span`,{className:`pointer-events-auto`,children:`You can change or cancel your plan at any time from billing settings.`})}),(0,Y.jsx)(`div`,{className:`ml-auto`,children:(0,Y.jsx)(i,{variant:`outlined`,onClick:t,"data-testid":`modal-cancel-button`,children:`Cancel`})})]})]})})}),(0,Y.jsx)(ni,{open:v,onCancel:()=>y(!1),onConfirm:Re,confirming:Ee,lostFeatures:[`Reduced CPU and memory for your assistant — it will resize to the smaller compute profile.`]})]})}function ci({open:e,confirming:t,onCancel:n,onConfirm:r}){let{t:i}=q(`settings`);return(0,Y.jsx)(Pe,{open:e,title:i(`autoTopUpDisableConfirm.title`),message:i(`autoTopUpDisableConfirm.message`),confirmLabel:t?`Disabling…`:`Disable`,cancelLabel:`Keep enabled`,destructive:!0,onConfirm:r,onCancel:n})}var li={threshold_usd:`100`,amount_usd:`10`,monthly_cap_usd:``};function ui(e){if(e===``||e===`-`)return e;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}function di(e){let t={},n=parseFloat(e.threshold_usd),r=parseFloat(e.amount_usd);if((!Number.isFinite(r)||r<10||r>500)&&(t.amount_usd=`Must be between $10 and $500`),(!Number.isFinite(n)||n<1||n>100)&&(t.threshold_usd=`Must be between $1 and $100`),e.monthly_cap_usd!==``){let n=parseFloat(e.monthly_cap_usd);!Number.isFinite(n)||n<25||n>1e4?t.monthly_cap_usd=`Must be between $25 and $10,000`:Number.isFinite(r)&&n<r&&(t.monthly_cap_usd=`Must be at least the top-up amount`)}return t}function fi(e,t,n,r){if(n[e])return n[e];if(r)return t[e]}function pi({initialValues:e=li,submitting:t,serverErrors:n,onSave:r,onCancel:a}){let[o,s]=(0,J.useState)(e),[c,l]=(0,J.useState)({threshold_usd:!1,amount_usd:!1,monthly_cap_usd:!1}),u=di(o),d=e=>t=>{s(n=>({...n,[e]:t.target.value}))},f=e=>()=>{l(t=>({...t,[e]:!0})),s(t=>({...t,[e]:ui(t[e])}))},p=e=>fi(e,u,n,c[e]);return(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-full max-w-full sm:w-[200px]`,children:(0,Y.jsx)(W,{type:`number`,step:`1`,label:`Auto-reload when balance below`,value:o.threshold_usd,onChange:d(`threshold_usd`),onBlur:f(`threshold_usd`),errorText:p(`threshold_usd`),"data-testid":`auto-top-up-threshold-input`,fullWidth:!0})}),(0,Y.jsx)(`div`,{className:`w-full max-w-full sm:w-[200px]`,children:(0,Y.jsx)(W,{type:`number`,step:`1`,label:`Auto-reload amount`,value:o.amount_usd,onChange:d(`amount_usd`),onBlur:f(`amount_usd`),errorText:p(`amount_usd`),"data-testid":`auto-top-up-amount-input`,fullWidth:!0})}),(0,Y.jsx)(`div`,{className:`w-full max-w-full sm:w-[200px]`,children:(0,Y.jsx)(W,{type:`number`,step:`1`,label:`Monthly spending cap`,value:o.monthly_cap_usd,onChange:d(`monthly_cap_usd`),onBlur:f(`monthly_cap_usd`),errorText:p(`monthly_cap_usd`),"data-testid":`auto-top-up-cap-input`,fullWidth:!0})}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[(0,Y.jsx)(i,{variant:`outlined`,onClick:a,disabled:t,children:`Cancel`}),(0,Y.jsx)(i,{variant:`primary`,onClick:()=>{l({threshold_usd:!0,amount_usd:!0,monthly_cap_usd:!0});let e={threshold_usd:ui(o.threshold_usd),amount_usd:ui(o.amount_usd),monthly_cap_usd:ui(o.monthly_cap_usd)};s(e);let t=di(e);if(Object.keys(t).length!==0)return;let n=e=>e===``?``:`${parseInt(e,10)}.00`;r({threshold_usd:n(e.threshold_usd),amount_usd:n(e.amount_usd),monthly_cap_usd:e.monthly_cap_usd===``?``:n(e.monthly_cap_usd)})},disabled:t,"data-testid":`auto-top-up-save-button`,children:`Save`})]})]})})}var mi=t(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),hi=t(((e,t)=>{var n=mi();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),X=e(t(((e,t)=>{t.exports=hi()()}))(),1);function gi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _i(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?gi(Object(n),!0).forEach(function(t){yi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vi(e){"@babel/helpers - typeof";return vi=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},vi(e)}function yi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function bi(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function xi(e,t){if(e==null)return{};var n=bi(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Si(e,t){return Ci(e)||wi(e,t)||Ti(e,t)||Di()}function Ci(e){if(Array.isArray(e))return e}function wi(e,t){var n=e&&(typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`]);if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function Ti(e,t){if(e){if(typeof e==`string`)return Ei(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ei(e,t)}}function Ei(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Di(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
3
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Z=function(e,t,n){var r=!!n,i=J.useRef(n);J.useEffect(function(){i.current=n},[n]),J.useEffect(function(){if(!r||!e)return function(){};var n=function(){i.current&&i.current.apply(i,arguments)};return e.on(t,n),function(){e.off(t,n)}},[r,t,e,i])},Oi=function(e){var t=J.useRef(e);return J.useEffect(function(){t.current=e},[e]),t.current},ki=function(e){return e!==null&&vi(e)===`object`},Ai=function(e){return ki(e)&&typeof e.then==`function`},ji=function(e){return ki(e)&&typeof e.elements==`function`&&typeof e.createToken==`function`&&typeof e.createPaymentMethod==`function`&&typeof e.confirmCardPayment==`function`},Mi=`[object Object]`,Ni=function e(t,n){if(!ki(t)||!ki(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var i=Object.prototype.toString.call(t)===Mi;if(i!==(Object.prototype.toString.call(n)===Mi))return!1;if(!i&&!r)return t===n;var a=Object.keys(t),o=Object.keys(n);if(a.length!==o.length)return!1;for(var s={},c=0;c<a.length;c+=1)s[a[c]]=!0;for(var l=0;l<o.length;l+=1)s[o[l]]=!0;var u=Object.keys(s);if(u.length!==a.length)return!1;var d=t,f=n;return u.every(function(t){return e(d[t],f[t])})},Pi=function(e,t,n){return ki(e)?Object.keys(e).reduce(function(r,i){var a=!ki(t)||!Ni(e[i],t[i]);return n.includes(i)?(a&&console.warn(`Unsupported prop change: options.${i} is not a mutable property.`),r):a?_i(_i({},r||{}),{},yi({},i,e[i])):r},null):null},Fi="Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.",Ii=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Fi;if(e===null||ji(e))return e;throw Error(t)},Li=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Fi;if(Ai(e))return{tag:`async`,stripePromise:Promise.resolve(e).then(function(e){return Ii(e,t)})};var n=Ii(e,t);return n===null?{tag:`empty`}:{tag:`sync`,stripe:n}},Ri=function(e){!e||!e._registerWrapper||!e.registerAppInfo||(e._registerWrapper({name:`react-stripe-js`,version:`6.4.0`}),e.registerAppInfo({name:`react-stripe-js`,version:`6.4.0`,url:`https://stripe.com/docs/stripe-js/react`}))},zi=J.createContext(null);zi.displayName=`ElementsContext`;var Bi=function(e,t){if(!e)throw Error(`Could not find Elements context; You need to wrap the part of your app that ${t} in an <Elements> provider.`);return e},Vi=function(e){var t=e.stripe,n=e.options,r=e.children,i=J.useMemo(function(){return Li(t)},[t]),a=Si(J.useState(function(){return{stripe:i.tag===`sync`?i.stripe:null,elements:i.tag===`sync`?i.stripe.elements(n):null}}),2),o=a[0],s=a[1];J.useEffect(function(){var e=!0,t=function(e){s(function(t){return t.stripe?t:{stripe:e,elements:e.elements(n)}})};return i.tag===`async`&&!o.stripe?i.stripePromise.then(function(n){n&&e&&t(n)}):i.tag===`sync`&&!o.stripe&&t(i.stripe),function(){e=!1}},[i,o,n]);var c=Oi(t);J.useEffect(function(){c!==null&&c!==t&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")},[c,t]);var l=Oi(n);return J.useEffect(function(){if(o.elements){var e=Pi(n,l,[`clientSecret`,`fonts`]);e&&o.elements.update(e)}},[n,l,o.elements]),J.useEffect(function(){Ri(o.stripe)},[o.stripe]),J.createElement(zi.Provider,{value:o},r)};Vi.propTypes={stripe:X.default.any,options:X.default.object};var Hi=function(e){return Bi(J.useContext(zi),e)},Ui=function(e){var t=e.children;return t(Hi(`mounts <ElementsConsumer>`))};Ui.propTypes={children:X.default.func.isRequired};var Wi=J.createContext(null);Wi.displayName=`CheckoutContext`;var Gi=function(e){var t=J.useContext(Wi),n=J.useContext(zi);if(t){if(n)throw Error(`You cannot wrap the part of your app that ${e} in both a checkout provider and <Elements> provider.`);return t}else return Bi(n,e)},Ki=[`mode`],qi=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Q=function(e,t,n){var r=`${qi(e)}Element`,i=t?function(e){Gi(`mounts <${r}>`);var t=e.id,n=e.className;return J.createElement(`div`,{id:t,className:n})}:function(t){var n=t.id,i=t.className,a=t.options,o=a===void 0?{}:a,s=t.onBlur,c=t.onFocus,l=t.onReady,u=t.onChange,d=t.onEscape,f=t.onClick,p=t.onLoadError,m=t.onLoaderStart,h=t.onNetworksChange,g=t.onConfirm,_=t.onCancel,v=t.onShippingAddressChange,y=t.onShippingRateChange,b=t.onSavedPaymentMethodRemove,x=t.onSavedPaymentMethodUpdate,S=t.onAvailablePaymentMethodsChange,C=Gi(`mounts <${r}>`),w=`elements`in C?C.elements:null,T=`checkoutState`in C?C.checkoutState:null,E=T?.type===`success`||T?.type===`loading`?T.sdk:null,D=Si(J.useState(null),2),O=D[0],k=D[1],A=J.useRef(null),j=J.useRef(null);Z(O,`blur`,s),Z(O,`focus`,c),Z(O,`escape`,d),Z(O,`click`,f),Z(O,`loaderror`,p),Z(O,`loaderstart`,m),Z(O,`networkschange`,h),Z(O,`confirm`,g),Z(O,`cancel`,_),Z(O,`shippingaddresschange`,v),Z(O,`shippingratechange`,y),Z(O,`savedpaymentmethodremove`,b),Z(O,`savedpaymentmethodupdate`,x),Z(O,`availablepaymentmethodschange`,S),Z(O,`change`,u);var M;l&&(M=e===`expressCheckout`?l:function(){l(O)}),Z(O,`ready`,M),J.useLayoutEffect(function(){if(A.current===null&&j.current!==null&&(w||E)){var t=null;if(E){var n=E,i=E;switch(e){case`paymentForm`:t=i.createForm(o);break;case`payment`:t=n.createPaymentElement(o);break;case`address`:if(`mode`in o){var a=o.mode,s=xi(o,Ki);if(a===`shipping`)t=n.createShippingAddressElement(s);else if(a===`billing`)t=n.createBillingAddressElement(s);else throw Error(`Invalid options.mode. mode must be 'billing' or 'shipping'.`)}else throw Error(`You must supply options.mode. mode must be 'billing' or 'shipping'.`);break;case`expressCheckout`:t=n.createExpressCheckoutElement(o);break;case`currencySelector`:t=E.createCurrencySelectorElement();break;case`taxId`:t=n.createTaxIdElement(o);break;case`contactDetails`:t=n.createContactDetailsElement();break;default:throw Error(`<${r}> is not supported inside a checkout provider. Use an <Elements> provider instead.`)}}else w&&(t=w.create(e,o));A.current=t,k(t),t&&t.mount(j.current)}},[w,E,o]);var N=Oi(o);return J.useEffect(function(){if(A.current){var e=Pi(o,N,[`paymentRequest`]);e&&`update`in A.current&&A.current.update(e)}},[o,N]),J.useLayoutEffect(function(){return function(){if(A.current&&typeof A.current.destroy==`function`)try{A.current.destroy(),A.current=null}catch{}}},[]),J.createElement(`div`,{id:n,className:i,ref:j})};return i.propTypes={id:X.default.string,className:X.default.string,onChange:X.default.func,onBlur:X.default.func,onFocus:X.default.func,onReady:X.default.func,onEscape:X.default.func,onClick:X.default.func,onLoadError:X.default.func,onLoaderStart:X.default.func,onNetworksChange:X.default.func,onConfirm:X.default.func,onCancel:X.default.func,onShippingAddressChange:X.default.func,onShippingRateChange:X.default.func,onSavedPaymentMethodRemove:X.default.func,onSavedPaymentMethodUpdate:X.default.func,onAvailablePaymentMethodsChange:X.default.func,options:X.default.object},i.displayName=r,i.__elementType=e,i},$=typeof window>`u`,Ji=J.createContext(null);Ji.displayName=`EmbeddedCheckoutProviderContext`,Q(`auBankAccount`,$),Q(`card`,$),Q(`cardNumber`,$),Q(`cardExpiry`,$),Q(`cardCvc`,$),Q(`iban`,$),Q(`payment`,$),Q(`expressCheckout`,$),Q(`paymentRequestButton`,$),Q(`linkAuthentication`,$),Q(`contactDetails`,$),Q(`address`,$),Q(`shippingAddress`,$),Q(`paymentMethodMessaging`,$),Q(`taxId`,$),Q(`issuingCardNumberDisplay`,$),Q(`issuingCardCvcDisplay`,$),Q(`issuingCardExpiryDisplay`,$),Q(`issuingCardPinDisplay`,$),Q(`issuingCardCopyButton`,$);var Yi=`dahlia`,Xi=`https://js.stripe.com`,Zi=`${Xi}/${Yi}/stripe.js`,Qi=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,$i=/^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/,ea=`loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used`,ta=function(e){return Qi.test(e)||$i.test(e)},na=function(){for(var e=document.querySelectorAll(`script[src^="${Xi}"]`),t=0;t<e.length;t++){var n=e[t];if(ta(n.src))return n}return null},ra=function(e){var t=e&&!e.advancedFraudSignals?`?advancedFraudSignals=false`:``,n=document.createElement(`script`);n.src=`${Zi}${t}`;var r=document.head||document.body;if(!r)throw Error(`Expected document.body not to be null. Stripe.js requires a <body> element.`);return r.appendChild(n),n},ia=null,aa=null,oa=null,sa=function(e){return function(t){e(Error(`Failed to load Stripe.js`,{cause:t}))}},ca=function(e,t){return function(){window.Stripe?e(window.Stripe):t(Error(`Stripe.js not available`))}},la=function(e){return ia===null?(ia=new Promise(function(t,n){if(typeof window>`u`||typeof document>`u`){t(null);return}if(window.Stripe&&e&&console.warn(ea),window.Stripe){t(window.Stripe);return}try{var r=na();if(r&&e)console.warn(ea);else if(!r)r=ra(e);else if(r&&oa!==null&&aa!==null){var i;r.removeEventListener(`load`,oa),r.removeEventListener(`error`,aa),(i=r.parentNode)==null||i.removeChild(r),r=ra(e)}oa=ca(t,n),aa=sa(n),r.addEventListener(`load`,oa),r.addEventListener(`error`,aa)}catch(e){n(e);return}}),ia.catch(function(e){return ia=null,Promise.reject(e)})):ia},ua,da=!1,fa=function(){return ua||(ua=la(null).catch(function(e){return ua=null,Promise.reject(e)}),ua)};Promise.resolve().then(function(){return fa()}).catch(function(e){da||console.warn(e)});function pa(){return typeof document<`u`&&document.documentElement.classList.contains(`dark`)?{theme:`night`}:{theme:`stripe`}}function ma({open:e,onClose:t,onSavedOptimistic:n}){let r=p(_t()),{mutate:i,reset:a}=r;return(0,J.useEffect)(()=>{e||a()},[e,i,a]),(0,J.useMemo)(()=>pa(),[r.data?.client_secret??null]),(0,Y.jsx)(G.Root,{open:e,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(G.Content,{size:`sm`,children:[(0,Y.jsx)(G.Header,{children:(0,Y.jsx)(G.Title,{children:`Save Payment Method`})}),(0,Y.jsx)(G.Body,{className:`min-h-[260px]`,children:(0,Y.jsx)(ha,{})})]})})}function ha(){return(0,J.useEffect)(()=>{console.warn(`[AutoTopUpPaymentMethodModal] VITE_STRIPE_PUBLISHABLE_KEY is not set; the payment-method modal cannot mount Stripe Elements.`)},[]),(0,Y.jsx)(U,{tone:`error`,children:`Payment method setup is currently unavailable. Please try again later.`})}var ga=1500,_a=2e4;function va(){let e=u();return async()=>{let t=e.getQueryData(lt())?.stripe_payment_method_updated_at??null,n=Date.now();try{await e.invalidateQueries({queryKey:lt()})}catch{}for(;Date.now()-n<_a;){try{let n=await e.fetchQuery(gt());if(n.has_payment_method&&n.stripe_payment_method_updated_at!==t)break}catch{}await new Promise(e=>setTimeout(e,ga))}}}function ya(){let e=u(),t=va(),{mutateAsync:n}=p(pt());return async({setupIntentId:r})=>{if(r!=null)try{ht(e,void 0,await n({body:{setup_intent_id:r}}));return}catch{}await t()}}function ba(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let t={};for(let[n,r]of Object.entries(e))Array.isArray(r)&&typeof r[0]==`string`&&(t[n]=r[0]);return t}function xa(e){if(!e)return``;let t=parseFloat(e);return Number.isFinite(t)?String(Math.trunc(t)):``}var Sa={enabled:!1,threshold_usd:null,amount_usd:null,monthly_cap_usd:null,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null,stripe_payment_method_updated_at:null,last_charge_at:null,last_failure_at:null,last_failure_reason:null,disabled_due_to_repeated_failures:!1,paused_until:null,current_month_credits_purchased_usd:`0.00`,current_month_charged_usd:`0.00`,next_trigger_amount_usd:null,stubbed:!1};function Ca({testId:e,children:t}){return(0,Y.jsx)(`div`,{"data-testid":e,className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2`,children:t})}function wa(){let{t:e}=q(`settings`),t=u(),n=d(gt()),r=p(ct()),a=p(Bt()),o=ya(),[c,l]=s(),f=(0,J.useRef)(null),[m,g]=(0,J.useState)(`view`),[_,v]=(0,J.useState)(!1),[y,b]=(0,J.useState)(!1),[x,S]=(0,J.useState)(!1),[C,w]=(0,J.useState)(!1),[T,D]=(0,J.useState)(!1),O=(0,J.useRef)(!1),k=n.data?.has_payment_method===!0;(0,J.useEffect)(()=>{O.current&&!k&&(S(!1),g(`view`),v(!1)),O.current=k},[k]);let A=()=>{r.reset(),a.reset(),g(`form`)},j=e=>{if(v(!0),!e.has_payment_method||e.disabled_due_to_repeated_failures===!0){S(!0),w(!1);return}S(!1),A()},M=n.data?.has_payment_method===!0,N=n.data?.enabled===!0,ee=n.data?.disabled_due_to_repeated_failures===!0;(0,J.useEffect)(()=>{x&&M&&!ee&&(S(!1),_&&!N&&A())},[x,_,M,N,ee]);let P=c.get(`configure_top_up`)===`1`;if((0,J.useEffect)(()=>{if(!P||n.data==null)return;let e=new URLSearchParams(c);e.delete(`configure_top_up`),l(e,{replace:!0});let t=n.data;if(t.enabled===!0)return;j(t);let r=typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0;f.current?.scrollIntoView({behavior:r?`auto`:`smooth`,block:`center`})},[P,n.data]),n.isLoading)return(0,Y.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(n.isError||!n.data)return(0,Y.jsx)(`div`,{"data-testid":`auto-top-up-card`,children:(0,Y.jsx)(U,{tone:`error`,children:e(`autoTopUpCard.loadError`)})});let F=n.data,I=F.enabled===!0,te=F.disabled_due_to_repeated_failures===!0&&!I,ne=()=>{g(`view`),v(!1)},re=()=>{a.reset(),b(!1)},ie=e=>{r.mutate({body:{enabled:!0,threshold_usd:e.threshold_usd,amount_usd:e.amount_usd,monthly_cap_usd:e.monthly_cap_usd===``?null:e.monthly_cap_usd}},{onSuccess:e=>{ht(t,void 0,t=>({...e,payment_method_brand:t?.payment_method_brand??null,payment_method_last4:t?.payment_method_last4??null})),t.invalidateQueries({queryKey:lt()}),I||(t.invalidateQueries({queryKey:yt()}),t.invalidateQueries({queryKey:zt()})),ne()}})},ae=()=>{a.mutate({},{onSuccess:()=>{ht(t,void 0,e=>({...Sa,has_payment_method:e?.has_payment_method??!1,payment_method_brand:e?.payment_method_brand??null,payment_method_last4:e?.payment_method_last4??null,stripe_payment_method_updated_at:e?.stripe_payment_method_updated_at??null})),b(!1),g(`view`),v(!1)}})},oe=e=>{if(e&&!I){j(F);return}if(!e&&!I&&_){S(!1),ne();return}!e&&I&&b(!0)},se=async e=>{await o(e),S(!1),_&&A()},L=m===`form`,R=ba(r.error),z=r.isError&&Object.keys(R).length===0;return(0,Y.jsxs)(`div`,{ref:f,"data-testid":`auto-top-up-card`,children:[(0,Y.jsx)(`div`,{className:`flex items-center justify-between gap-4`,children:(0,Y.jsx)(Ne,{checked:I||_,onChange:oe,label:e(`autoTopUpCard.toggleLabel`)})}),I&&!L&&(0,Y.jsxs)(`div`,{className:`mt-3 flex w-full items-center gap-2`,children:[(0,Y.jsxs)(Ca,{testId:`auto-top-up-summary`,children:[(0,Y.jsx)(E,{className:`h-3.5 w-3.5 shrink-0 text-[var(--content-default)]`,"aria-hidden":`true`}),(0,Y.jsxs)(h,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[`Add `,ve(F.amount_usd),` when balance falls under`,` `,ve(F.threshold_usd)]})]}),F.monthly_cap_usd!=null&&(0,Y.jsx)(Ca,{testId:`auto-top-up-cap-progress`,children:(0,Y.jsxs)(h,{variant:`body-medium-default`,className:`truncate text-[var(--content-default)]`,children:[(0,Y.jsxs)(`span`,{children:[ve(F.current_month_credits_purchased_usd),` `]}),(0,Y.jsxs)(`span`,{className:`text-[var(--content-tertiary)]`,children:[`/ `,ve(F.monthly_cap_usd),` this month`]})]})}),(0,Y.jsx)(i,{variant:`outlined`,onClick:A,"data-testid":`auto-top-up-edit-button`,className:`shrink-0`,children:`Adjust`})]}),te&&(0,Y.jsx)(U,{tone:`warning`,className:`mt-3`,"data-testid":`auto-top-up-declined-cutoff`,actions:(0,Y.jsx)(i,{variant:`outlined`,onClick:()=>D(!0),"data-testid":`auto-top-up-add-pm-button`,children:`Add payment method`}),children:`We paused automatic reloads after several declined payments. Add a new payment method to turn auto-reload back on.`}),(0,Y.jsx)(`div`,{className:`grid transition-[grid-template-rows] duration-200 ease-in-out`,style:{gridTemplateRows:x&&!te?`1fr`:`0fr`},children:(0,Y.jsx)(`div`,{className:`overflow-hidden`,children:(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-col gap-3`,children:[!C&&(0,Y.jsxs)(`div`,{className:`flex h-8 items-center justify-between gap-3 rounded-lg bg-[var(--system-mid-weak)] px-2`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(Ee,{className:`h-4 w-4 shrink-0 text-[var(--system-mid-strong)]`,"aria-hidden":`true`}),(0,Y.jsx)(h,{variant:`body-medium-default`,className:`truncate text-[var(--system-mid-strong)]`,children:e(`autoTopUpCard.connectCardBanner`)})]}),(0,Y.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:()=>w(!0),className:`flex shrink-0 cursor-pointer items-center justify-center rounded p-0.5 text-[var(--system-mid-strong)] opacity-70 transition-opacity hover:opacity-100`,children:(0,Y.jsx)(Ae,{className:`h-2.5 w-2.5`,strokeWidth:2,"aria-hidden":`true`})})]}),(0,Y.jsx)(i,{variant:`primary`,onClick:()=>D(!0),"data-testid":`auto-top-up-add-pm-button`,className:`self-start`,children:`Add a Credit Card`})]})})}),z&&(0,Y.jsx)(U,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-update-error`,children:e(`autoTopUpCard.updateError`)}),a.isError&&(0,Y.jsx)(U,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-disable-error`,children:e(`autoTopUpCard.disableError`)}),L&&(0,Y.jsx)(pi,{initialValues:I?{threshold_usd:xa(F.threshold_usd),amount_usd:xa(F.amount_usd),monthly_cap_usd:xa(F.monthly_cap_usd)}:void 0,submitting:r.isPending,serverErrors:R,onCancel:ne,onSave:ie}),(0,Y.jsx)(ci,{open:y,confirming:a.isPending,onCancel:re,onConfirm:ae}),(0,Y.jsx)(ma,{open:T,onClose:()=>D(!1),onSavedOptimistic:se})]})}function Ta({title:e,subtitle:t,actions:n}){return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:e}),t!=null&&(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:t})]}),n!=null&&(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:n})]})}function Ea(e,t){let[n]=(0,J.useState)(()=>window.location.hash===`#${e}`),[r,i]=(0,J.useState)(!1);(0,J.useEffect)(()=>{if(!n||r||!t)return;let a=document.getElementById(e);if(!a)return;i(!0);let o=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;a.scrollIntoView({behavior:o?`auto`:`smooth`,block:`start`})},[n,r,t,e])}var Da=`daily-credit-limit`;function Oa(e){let t=e.trim();if(t===``)return`Enter a daily limit`;let n=parseFloat(t);if(!Number.isFinite(n)||n<1)return`Must be at least $1`;if(!/^\d+(\.\d{1,2})?$/.test(t))return`Use at most two decimal places`}function ka(){let{t:e}=q(`settings`),t=u(),n=d(ut()),r=d(It()),a=d(gt()),o=p(ot()),s=ge();Ea(Da,!n.isLoading&&!r.isLoading);let[c,l]=(0,J.useState)(null),[f,m]=(0,J.useState)(!1),[h,g]=(0,J.useState)(!1);if(n.isLoading)return(0,Y.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(n.isError||!n.data)return(0,Y.jsx)(`div`,{"data-testid":`daily-credit-limit-card`,children:(0,Y.jsx)(U,{tone:`error`,children:`Failed to load daily credit limit settings.`})});let _=n.data,v=_.daily_credit_limit_usd!=null,y=v||h,b=c??_.daily_credit_limit_usd??``,x=Oa(b),S=r.data,C=S?.daily_spend_usd??_.current_day_spent_usd,w=S?.daily_limit_reached===!0,T=_.daily_limit_snoozed===!0||S?.daily_limit_snoozed===!0,E=be(),D=a.data?.enabled===!0&&!a.isError,O=e=>{l(e.target.value)},k=e=>{o.mutate({body:{daily_credit_limit_usd:e}},{onSuccess:n=>{vt(t,void 0,n),t.invalidateQueries({queryKey:yt()}),t.invalidateQueries({queryKey:zt()}),l(null),m(!1),e===null&&g(!1)}})},A=e=>{if(e){g(!0);return}v&&D||(g(!1),l(null),m(!1),v&&k(null))},j=()=>{m(!0),!x&&k(parseFloat(b.trim()).toFixed(2))},M=ba(o.error).daily_credit_limit_usd??(o.isError?`Failed to save daily credit limit. Please try again.`:void 0),N=f?x:void 0;return(0,Y.jsxs)(`div`,{"data-testid":`daily-credit-limit-card`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(Ne,{checked:y,onChange:A,disabled:o.isPending||v&&D,label:e(`dailyCreditLimitCard.toggleLabel`)}),D&&(0,Y.jsx)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-required-note`,children:e(`dailyCreditLimitCard.requiredNote`)}),y&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,Y.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,Y.jsx)(W,{type:`number`,step:`0.01`,min:`1`,label:`Stop spending Vellum credits after`,helperText:`Resets daily at ${E}.`,placeholder:`0.00`,value:b,onChange:O,onBlur:()=>m(!0),errorText:N,"data-testid":`daily-credit-limit-input`,fullWidth:!0})}),(0,Y.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:(0,Y.jsx)(i,{variant:`primary`,onClick:j,disabled:o.isPending,"data-testid":`daily-credit-limit-save-button`,children:`Save`})})]}),v&&_.daily_credit_limit_usd!=null&&(0,Y.jsxs)(`p`,{className:`text-body-small-default text-[var(--content-tertiary)]`,"data-testid":`daily-credit-limit-progress`,children:[Se(C),` of`,` `,Se(_.daily_credit_limit_usd),` spent today`]}),T&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(U,{tone:`info`,"data-testid":`daily-credit-limit-skipped`,actions:(0,Y.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>s.mutate({}),disabled:s.isPending,"data-testid":`daily-credit-limit-resume-button`,children:`Resume now`}),children:[`Skipped for today. This limit resumes at `,E,`.`]}),s.isError&&(0,Y.jsx)(U,{tone:`error`,"data-testid":`daily-credit-limit-resume-error`,children:`Failed to resume the daily credit limit. Please try again.`})]}),w&&(0,Y.jsxs)(U,{tone:`warning`,"data-testid":`daily-credit-limit-reached`,children:[`Today's Vellum credit spend has reached this limit. Generation resumes at `,E,` or when you raise the limit.`]})]})]}),M!=null&&(0,Y.jsx)(U,{tone:`error`,className:`mt-4`,"data-testid":`daily-credit-limit-update-error`,children:M})]})}function Aa(e){if(e.trim()===``)return;let t=parseFloat(e);if(!Number.isFinite(t)||t<1||t>1e3)return`Must be between $1 and $1,000`;if(!/^\d+(\.\d{1,2})?$/.test(e.trim()))return`Use at most two decimal places`}function ja(){let e=u(),t=d(Pt()),n=p(Et()),[r,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(!1);if(t.isLoading)return(0,Y.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,Y.jsx)(`p`,{className:`text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Loading…`})});if(t.isError||!t.data)return(0,Y.jsx)(`div`,{"data-testid":`low-balance-alert-card`,children:(0,Y.jsx)(U,{tone:`error`,children:`Failed to load low-balance alert settings.`})});let c=t.data,l=r??c.threshold_usd??``,f=Aa(l),m=e=>{a(e.target.value)},h=t=>{n.mutate({body:{threshold_usd:t}},{onSuccess:t=>{Mt(e,void 0,t),e.invalidateQueries({queryKey:Ot()}),a(null),s(!1)}})},g=()=>{if(s(!0),f)return;let e=l.trim();h(e===``?null:parseFloat(e).toFixed(2))},_=()=>{a(``),s(!1),h(null)},v=n.isError,y=o?f:void 0;return(0,Y.jsxs)(`div`,{"data-testid":`low-balance-alert-card`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start gap-3`,children:[(0,Y.jsx)(`div`,{className:`w-60 max-w-full`,children:(0,Y.jsx)(W,{type:`number`,step:`0.01`,label:`Alert me when my balance drops below`,helperText:`Default is ${Se(c.default_threshold_usd)} when unset`,placeholder:c.effective_threshold_usd,value:l,onChange:m,onBlur:()=>s(!0),errorText:y,"data-testid":`low-balance-alert-input`,fullWidth:!0})}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pt-[18px]`,children:[c.threshold_usd!=null&&(0,Y.jsx)(i,{variant:`outlined`,onClick:_,disabled:n.isPending,"data-testid":`low-balance-alert-reset-button`,children:`Reset to default`}),(0,Y.jsx)(i,{variant:`primary`,onClick:g,disabled:n.isPending,"data-testid":`low-balance-alert-save-button`,children:`Save`})]})]}),v&&(0,Y.jsx)(U,{tone:`error`,className:`mt-4`,"data-testid":`low-balance-alert-update-error`,children:`Failed to save low-balance alert. Please try again.`})]})}function Ma(e){return e.replace(/\.00$/,``)}function Na({icon:e,value:t,label:n}){return(0,Y.jsxs)(`div`,{className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg bg-[var(--surface-base)] px-2 py-1.5`,children:[(0,Y.jsx)(`span`,{"aria-hidden":`true`,className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center text-[var(--content-default)]`,children:e}),(0,Y.jsx)(h,{variant:`body-medium-default`,as:`span`,className:`text-[var(--content-default)]`,children:t}),(0,Y.jsx)(h,{variant:`body-small-default`,as:`span`,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:n})]})}function Pa(){let{data:e,isLoading:t,isError:n}=d(Lt()),[r,a]=(0,J.useState)(!1),o=(0,J.useCallback)(e=>{qt(e,{successMessage:`Copied to clipboard!`,errorMessage:`Couldn't copy the referral link.`,onCopied:()=>{a(!0),setTimeout(()=>a(!1),2e3)}})},[]),s=e?.is_eligible_for_credits===!1;return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:s?`Invite friends to Vellum. You'll start earning referral credits once you've purchased credits or upgraded to Pro.`:e?`Share Vellum with friends - you'll each earn ${Ma(e.referrer_credit_amount)} credits when they sign up, up to ${Ma(e.earning_cap)} total.`:`Share Vellum with friends and earn credits for every signup.`}),s&&(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`text-[var(--content-tertiary)]`,children:`You're not currently earning referral credits. Buy credits or upgrade to Pro to start earning — your invite link still works in the meantime.`}),t?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),`Loading...`]}):n||!e?(0,Y.jsx)(U,{tone:`error`,children:`Failed to load referral information.`}):(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start gap-2`,children:[(0,Y.jsx)(Na,{icon:(0,Y.jsx)(E,{className:`h-3.5 w-3.5`}),value:Ma(e.total_earned),label:`Credits Earned`}),(0,Y.jsx)(Na,{icon:(0,Y.jsx)(ke,{className:`h-3.5 w-3.5`}),value:e.referred_count,label:`Friends Referred`}),(0,Y.jsx)(i,{variant:`outlined`,className:`shrink-0`,onClick:()=>o(e.referral_url),leftIcon:r?(0,Y.jsx)(S,{className:`h-3.5 w-3.5`}):(0,Y.jsx)(_,{className:`h-3.5 w-3.5`}),"data-testid":`referral-copy-button`,children:r?`Copied!`:`Share Link`})]})]})}function Fa({open:e,onOpenChange:t}){return(0,Y.jsx)(G.Root,{open:e,onOpenChange:t,children:(0,Y.jsxs)(G.Content,{"data-testid":`referral-modal`,children:[(0,Y.jsx)(G.Header,{children:(0,Y.jsx)(G.Title,{children:`Earn Free Credits`})}),(0,Y.jsx)(G.Body,{children:(0,Y.jsx)(Pa,{})})]})})}var Ia=2e3;function La(e){let t=parseFloat(e);if(Number.isNaN(t))return`0`;let n=Math.abs(t).toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2}),r=n.endsWith(`.00`)?n.slice(0,-3):n;return t<0?`-${r}`:r}function Ra(){let{t:e}=q(`settings`),t=u(),{data:n,isLoading:r,isError:a}=d(It()),o=n??null,[s,c]=(0,J.useState)(!1),[l,f]=(0,J.useState)(!1),[p,m]=(0,J.useState)(!1),h=(0,J.useRef)(0),_=(0,J.useRef)(null),v=ft({onSuccess:()=>{t.invalidateQueries({queryKey:zt()})},onError:()=>{h.current<3&&(_.current=setTimeout(()=>{v.reset()},Ia))}});(0,J.useEffect)(()=>()=>{_.current&&clearTimeout(_.current)},[]);let y=v.mutate;(0,J.useEffect)(()=>{o&&o.settled_balance===`0.00`&&o.pending_compute===`0.00`&&o.effective_balance===`0.00`&&h.current<3&&!v.isPending&&!v.isError&&!v.isSuccess&&(h.current+=1,y({}))},[o,v.isPending,v.isError,v.isSuccess,y]);let b=(0,Y.jsx)(Ta,{title:e(`billingPanel.title`),subtitle:e(`billingPanel.subtitle`),actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(i,{variant:`outlined`,leftIcon:(0,Y.jsx)(E,{className:`h-4 w-4`,"aria-hidden":!0}),onClick:()=>f(!0),"data-testid":`earn-credits-button`,children:e(`billingPanel.earnCreditsButton`)}),(0,Y.jsx)(i,{variant:`primary`,onClick:()=>c(!0),disabled:r||!o,"data-testid":`add-credits-button`,children:e(`billingPanel.addCreditsButton`)})]})});return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(g,{padding:`md`,children:[b,r?(0,Y.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-body-medium-lighter text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),`Loading billing summary...`]}):a?(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsx)(U,{tone:`error`,children:`Failed to load billing summary. Please try again later.`})}):o?(0,Y.jsxs)(Y.Fragment,{children:[(()=>{if(!o)return null;let t=parseFloat(o.effective_balance)<0,n=La(o.effective_balance),r=n.startsWith(`-`)?`-$${n.slice(1)}`:`$${n}`;return(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsx)(je,{icon:(0,Y.jsx)(E,{className:`h-4 w-4`,"aria-hidden":!0}),value:(0,Y.jsx)(`span`,{"data-testid":`effective-balance`,children:r}),label:e(`billingPanel.balanceLabel`),tone:t?`negative`:`default`})})})(),o.is_degraded&&(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsx)(U,{tone:`warning`,children:`Pending charges could not be calculated. The balance shown may be incomplete.`})})]}):(0,Y.jsx)(`p`,{className:`mt-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:`No billing information available.`}),(0,Y.jsx)(`div`,{className:`mt-6`,children:(0,Y.jsx)(wa,{})}),(0,Y.jsx)(`div`,{id:Da,className:`mt-6 scroll-mt-4 border-t border-[var(--border-base)] pt-6`,children:(0,Y.jsx)(ka,{})}),(0,Y.jsx)(`div`,{className:`mt-6 border-t border-[var(--border-base)] pt-6`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(Ne,{checked:p,onChange:m,label:e(`billingPanel.lowBalanceToggle`)}),p&&(0,Y.jsx)(ja,{})]})})]}),(0,Y.jsx)($t,{open:s,onOpenChange:c}),(0,Y.jsx)(Fa,{open:l,onOpenChange:f})]})}var za=1e3,Ba=15e3,Va=3e3,Ha=45e3,Ua=`billing-portal-return`;function Wa(e,t){if(!e)return{kind:`info`,message:`Subscription updated.`};let n=e.cancel_at_period_end||!!e.cancel_at,r=t.cancel_at_period_end||!!t.cancel_at;return!n&&r?{kind:`info`,message:`Pro plan canceled. You'll have access until ${t.cancel_at?R(t.cancel_at):`the end of your billing period`}.`}:n&&!r?{kind:`success`,message:`Pro plan reactivated.`}:{kind:`info`,message:`Subscription updated.`}}function Ga(){let[e]=s(),t=o(),n=u(),r=(0,J.useRef)(null);return(0,J.useEffect)(()=>()=>{r.current!==null&&(clearInterval(r.current),r.current=null)},[]),(0,J.useEffect)(()=>{if(e.get(`portal_return`)!==`true`)return;let i={current:!1},a=ae(),o=Tt(),s=wt(),c=Date.now();async function l(){await n.invalidateQueries({queryKey:s});let e=await n.fetchQuery(o);return{cancel_at_period_end:e.cancel_at_period_end,cancel_at:e.cancel_at}}async function u(){let e=await l();for(;!i.current&&a&&e.cancel_at_period_end===a.cancel_at_period_end&&e.cancel_at===a.cancel_at&&Date.now()-c<Ba&&(await new Promise(e=>setTimeout(e,za)),!i.current);)e=await l();return e}return(async()=>{try{let e=await u();if(i.current)return;let{kind:t,message:n}=Wa(a,e);t===`success`?K.success(n,{id:Ua}):K.info(n,{id:Ua})}catch{if(i.current)return;K.info(`Subscription updated.`,{id:Ua})}finally{if(!i.current){ce(),t(Ke.settings.usageBilling,{replace:!0});let e=Date.now();r.current!==null&&clearInterval(r.current),r.current=setInterval(()=>{if(Date.now()-e>=Ha){r.current!==null&&(clearInterval(r.current),r.current=null);return}l().catch(e=>{console.error(`billing poll error:`,e)})},Va)}}})(),()=>{i.current=!0}},[e,t,n]),null}var Ka=[7,30,90],qa=Ka.map(e=>({value:`${e}`,label:`Last ${e} days`}));function Ja(e,t=Wt()){let{fromDate:n,toDate:r}=rn(e,t);return{from:n,to:r}}function Ya({value:e,onChange:t}){return(0,Y.jsx)(Fe,{options:qa,value:`${Ka.find(t=>t===e)??30}`,onChange:e=>t(Number(e)),"aria-label":`Date range`})}var Xa={strokeDasharray:`3 3`,stroke:`var(--border-subtle)`,strokeOpacity:.4},Za={fontSize:12,fill:`var(--content-tertiary)`},Qa={stroke:`var(--border-subtle)`,strokeOpacity:.4},$a=[`#3b82f6`,`#10b981`,`#f59e0b`,`#ef4444`,`#8b5cf6`,`#06b6d4`,`#ec4899`,`#84cc16`];function eo({item:e}){return(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 py-0.5 text-[13px] text-[var(--content-default)]`,children:[(0,Y.jsx)(`span`,{className:`h-2 w-2 shrink-0 rounded-full`,style:{backgroundColor:e.color}}),(0,Y.jsx)(`span`,{children:e.label}),(0,Y.jsx)(`span`,{className:`ml-auto tabular-nums`,children:e.value})]})}function to({active:e,payload:t,hoveredKey:n,label:r,labelMap:i,colorMap:a,formatValue:o,showTotal:s,formatLabel:c}){if(!e||!t?.length)return null;let l=t.filter(e=>e.value!=null&&e.dataKey!=null).map(e=>({key:String(e.dataKey),label:i[String(e.dataKey)]??String(e.dataKey),value:o(Number(e.value)),color:a[String(e.dataKey)]??`#6b7280`,numericValue:Number(e.value)})).sort((e,t)=>e.numericValue===t.numericValue?e.label.localeCompare(t.label):t.numericValue-e.numericValue),u=n?l.find(e=>e.key===n):null,d=u?l.filter(e=>e.key!==n):l,f=l.reduce((e,t)=>e+t.numericValue,0);return(0,Y.jsxs)(`div`,{className:`rounded-lg border border-[var(--border-subtle)] bg-[var(--surface-overlay)] px-3.5 py-2.5 shadow-[var(--shadow-popover)]`,children:[(0,Y.jsx)(`div`,{className:`mb-1.5 text-xs font-medium text-[var(--content-secondary)]`,children:(c??tn)(String(r))}),u&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(eo,{item:u}),d.length>0&&(0,Y.jsx)(`div`,{className:`my-1.5 border-t border-[var(--border-subtle)]`})]}),d.map(e=>(0,Y.jsx)(eo,{item:e},e.key)),s&&(0,Y.jsx)(`div`,{className:`mt-1 flex items-center gap-2 border-t border-[var(--border-subtle)] pt-1.5 text-[13px] font-semibold text-[var(--content-default)]`,children:(0,Y.jsxs)(`span`,{children:[`Total: `,o(f)]})})]})}function no(e,t){let[n,r]=e,[i,a]=t,o=r-n||1;return e=>i+(e-n)/o*(a-i)}function ro(e){if(e<=0)return 1;let t=10**Math.floor(Math.log10(e)),n=e/t,r;return r=n<=1?1:n<=2?2:n<=2.5?2.5:n<=5?5:10,r*t}function io(e){if(e>=1)return+!Number.isInteger(e);let t=e/10**Math.floor(Math.log10(e)),n=Math.abs(t-2.5)<.01;return Math.ceil(-Math.log10(e))+ +!!n}function ao(e,t){let n=Math.max(0,...e),r=t?.tickCount??5;return n===0?t?.integerOnly?r:1:t?.integerOnly?Math.max(1,Math.ceil(n/r))*r:ro(n/r)*r}function oo(e,t){if(e===0)return[0];let n=e/t,r=10**(n>=1?0:Math.ceil(-Math.log10(n))+2),i=[];for(let e=0;e<=t;e++)i.push(Math.round(n*e*r)/r);return i}function so(e,t,n,r,i){let a=Math.min(i,n/2,r/2);return[`M${e},${t+a}`,`A${a},${a} 0 0 1 ${e+a},${t}`,`H${e+n-a}`,`A${a},${a} 0 0 1 ${e+n},${t+a}`,`V${t+r}`,`H${e}`,`Z`].join(``)}function co(e,t){if(e<=0)return[];if(t)return e<=3?Array.from({length:e},(e,t)=>t):[0,Math.floor(e/2),e-1];let n=Math.max(1,Math.ceil(e/Math.min(e,12))),r=[];for(let t=0;t<e;t+=n)r.push(t);return r[r.length-1]!==e-1&&r.push(e-1),r}var lo=40,uo={fontSize:11,fill:`var(--content-tertiary)`},fo={runtime_proxy_api:`#3b82f6`,oauth_proxy:`#f59e0b`};function po(e,t){return fo[e]??$a[t%$a.length]??`#6b7280`}function mo(e,t){let n=new Set,r={};for(let t of e)for(let e of t.groups)n.add(e.group_key),r[e.group_key]=e.group_label;return{data:e.map(e=>{let n={date:e.date};for(let r of e.groups)n[r.group_key]=t===`spend`?parseFloat(r.total_usd):r.event_count;return n}),stackKeys:Array.from(n),labelMap:r}}function ho({stackKeys:e,labelMap:t}){return(0,Y.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-5 gap-y-1 pt-3 text-body-small-default`,children:e.map((e,n)=>(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`inline-block h-2.5 w-2.5 rounded-sm`,style:{backgroundColor:po(e,n)}}),(0,Y.jsx)(`span`,{className:`text-[var(--content-quiet)]`,children:t[e]??e})]},e))})}var go=350,_o={top:8,right:4,bottom:32,left:0},vo=.2,yo=5,bo=12,xo=200;function So({buckets:e,metric:t,onBarClick:n}){let r=Ut(),i=(0,J.useRef)(null),[a,o]=(0,J.useState)(0);(0,J.useEffect)(()=>{let e=i.current;if(!e)return;let t=new ResizeObserver(([e])=>{e&&o(e.contentRect.width)});return t.observe(e),()=>t.disconnect()},[]);let{data:s,stackKeys:c,labelMap:l}=(0,J.useMemo)(()=>mo(e,t),[e,t]),u=(0,J.useMemo)(()=>{let e={};for(let t=0;t<c.length;t++)e[c[t]]=po(c[t],t);return e},[c]),d=(0,J.useCallback)(e=>t===`spend`?`$${e.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`:e.toLocaleString(`en-US`),[t]),[f,p]=(0,J.useState)(null),m=r?lo:56,h=r?uo:Za,g=_o.left+m,_=Math.max(0,a-g-_o.right),v=_o.top,y=go-_o.top-_o.bottom,b=(0,J.useMemo)(()=>s.map(e=>c.reduce((t,n)=>t+(Number(e[n])||0),0)),[s,c]),x=t===`events`,S=(0,J.useMemo)(()=>ao(b,{integerOnly:x,tickCount:yo}),[b,x]),C=(0,J.useMemo)(()=>oo(S,yo),[S]),w=(0,J.useCallback)(e=>{if(t===`spend`){if(e===0)return`$0`;let t=S/yo,n=Math.max(t<1?2:0,io(t));return`$${e.toLocaleString(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n})}`}return e.toLocaleString(`en-US`)},[t,S]),T=(0,J.useMemo)(()=>no([0,S],[v+y,v]),[S,v,y]),E=s.length,D=E>0?_/E:0,O=D*(1-vo),k=(D-O)/2,A=(0,J.useMemo)(()=>co(E,r),[E,r]),j=c.length===0,M=j?[]:s.map((e,t)=>{let n=g+t*D+k,r=0;return{di:t,x:n,segments:c.map((t,i)=>{let a=Number(e[t])||0,o=r;r+=a;let s=T(r),l=T(o)-s,u=i===c.length-1;return{key:t,val:a,x:n,y:s,h:l,color:po(t,i),isLast:u}})}}),N=(e,t,n)=>{let r=i.current?.getBoundingClientRect();r&&p({x:e.clientX-r.left,y:e.clientY-r.top,datumIndex:t,hoveredKey:n})},ee=()=>p(null),P=e=>{n&&n(e)},F=f?c.filter(e=>(Number(s[f.datumIndex]?.[e])||0)>0).map(e=>({dataKey:e,value:Number(s[f.datumIndex]?.[e])||0})):[],I={left:f?Math.max(0,Math.min(f.x+bo,a-xo)):0,top:f?f.y-bo:0,visibility:f?`visible`:`hidden`};return(0,Y.jsxs)(`div`,{onMouseDown:e=>e.preventDefault(),children:[(0,Y.jsx)(`div`,{ref:i,className:`relative w-full`,style:{height:go},children:j?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center text-body-medium-lighter text-[var(--content-faint)]`,children:`No usage data for this period`}):a>0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`svg`,{width:a,height:go,className:`block`,children:[C.map(e=>(0,Y.jsx)(`line`,{x1:g,x2:g+_,y1:T(e),y2:T(e),stroke:Xa.stroke,strokeOpacity:Xa.strokeOpacity,strokeDasharray:Xa.strokeDasharray},e)),(0,Y.jsx)(`line`,{x1:g,x2:g+_,y1:v+y,y2:v+y,stroke:Qa.stroke,strokeOpacity:Qa.strokeOpacity}),C.map(e=>(0,Y.jsx)(`text`,{x:g-8,y:T(e),textAnchor:`end`,dominantBaseline:`middle`,fontSize:h.fontSize,fill:h.fill,children:w(e)},e)),A.map(e=>{let t=s[e];return t?(0,Y.jsx)(`text`,{x:g+e*D+D/2,y:v+y+20,textAnchor:`middle`,fontSize:h.fontSize,fill:h.fill,children:tn(String(t.date))},e):null}),M.map(({di:e,segments:t})=>t.map(t=>{if(t.h<=0)return null;let r=f?.hoveredKey&&f.hoveredKey!==t.key?.4:1,i={key:`${e}-${t.key}`,fill:t.color,opacity:r,cursor:n?`pointer`:void 0,onMouseMove:n=>N(n,e,t.key),onMouseLeave:ee,onClick:()=>P(t.key)};return t.isLast?(0,Y.jsx)(`path`,{...i,d:so(t.x,t.y,O,t.h,3)}):(0,Y.jsx)(`rect`,{...i,x:t.x,y:t.y,width:O,height:t.h})}))]}),(0,Y.jsx)(`div`,{className:`pointer-events-none absolute z-[1] max-w-[calc(100vw-32px)] -translate-y-full`,style:I,children:(0,Y.jsx)(to,{active:!!f,payload:F,hoveredKey:f?.hoveredKey??void 0,label:f?String(s[f.datumIndex]?.date):``,labelMap:l,colorMap:u,formatValue:d})})]}):null}),!j&&(0,Y.jsx)(ho,{stackKeys:c,labelMap:l})]})}function Co(e){if(e)return e.usageSource===`oauth_proxy`?`oauth_provider`:bn(e.llmDimension??`model`)}function wo(e,t=Wt()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource,group_by:Co(e.drilldown)}:{}}}function To(e,t=Wt()){return{from:e.dateRange.from,to:e.dateRange.to,tz:t,...e.drilldown?{usage_source:e.drilldown.usageSource}:{}}}function Eo(e,t,n){return e===`full`&&t!==`gated`&&n}function Do(e){let t=Gt(),n=Eo(qe({platformHostedOnly:!0}),qe(),Ye()),r=d({...Rt({query:wo(e,t)}),enabled:n}),i=d({...mt({query:To(e,t)}),enabled:n});return{series:r.data,totals:i.data,isLoading:r.isLoading||i.isLoading,isError:r.isError||i.isError}}var Oo=[{value:`spend`,label:`Spend ($)`},{value:`events`,label:`Events`}];function ko(e){if(e===void 0)return`—`;let t=parseFloat(e);return Number.isNaN(t)?`$0.00`:`$${t.toLocaleString(`en-US`,{minimumFractionDigits:2,maximumFractionDigits:2})}`}function Ao(e){return e===void 0?`—`:e.toLocaleString(`en-US`)}function jo(){let e=Gt(),[t,n]=(0,J.useState)(30),r=(0,J.useMemo)(()=>Ja(t,e),[t,e]),[i,a]=(0,J.useState)(null),[o,s]=(0,J.useState)(`spend`),{series:c,totals:l,isLoading:u,isError:d}=Do({dateRange:r,drilldown:i,setDrilldown:a}),f=i?void 0:e=>{let t={runtime_proxy_api:`runtime_proxy`,oauth_proxy:`oauth_proxy`}[e];t&&a({usageSource:t,...t===`runtime_proxy`?{llmDimension:hn}:{}})};return(0,Y.jsx)(g,{padding:`md`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-default)]`,children:`Credit Usage`}),(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`mt-2 text-[var(--content-tertiary)]`,children:`Overview of your spending habits.`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,Y.jsx)(Ya,{value:t,onChange:n}),(0,Y.jsx)(`div`,{className:`w-44`,children:(0,Y.jsx)(v,{items:Oo,value:o,onChange:s,ariaLabel:`Chart metric`})})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:[(0,Y.jsx)(je,{icon:(0,Y.jsx)(E,{className:`h-4 w-4`,"aria-hidden":!0}),value:u?(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):ko(l?.total_usd),label:`Spend`}),(0,Y.jsx)(je,{icon:(0,Y.jsx)(he,{className:`h-4 w-4`,"aria-hidden":!0}),value:u?(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`,"aria-hidden":!0}):Ao(l?.event_count),label:`Events`})]}),i&&(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,Y.jsx)(`div`,{children:(0,Y.jsxs)(`button`,{className:`flex items-center gap-1.5 text-body-medium-lighter text-[var(--content-tertiary)] transition-colors hover:text-[var(--content-secondary)]`,onClick:()=>a(null),children:[(0,Y.jsx)(x,{className:`h-3.5 w-3.5`}),(0,Y.jsx)(`span`,{children:`Back to all usage`}),(0,Y.jsx)(`span`,{className:`text-[var(--content-tertiary)]`,children:`/`}),(0,Y.jsx)(`span`,{className:`text-body-medium-default text-[var(--content-default)]`,children:i.usageSource===`runtime_proxy`?`LLM Spend`:`OAuth Spend`})]})}),i.usageSource===`runtime_proxy`&&(0,Y.jsx)(`div`,{className:`w-56`,children:(0,Y.jsx)(v,{items:_n,value:i.llmDimension??`model`,onChange:e=>a({usageSource:`runtime_proxy`,llmDimension:e}),ariaLabel:`LLM spend dimension`})})]}),u?(0,Y.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)]`,children:(0,Y.jsx)(H,{className:`h-6 w-6 animate-spin text-[var(--content-tertiary)]`})}):d?(0,Y.jsx)(`div`,{className:`flex h-[345px] items-center justify-center rounded-xl bg-[var(--surface-base)] text-body-medium-lighter text-[var(--content-tertiary)]`,children:`Failed to load usage data.`}):c?(0,Y.jsx)(`div`,{className:`rounded-xl bg-[var(--surface-base)] p-3`,children:(0,Y.jsx)(So,{buckets:c.buckets,metric:o,onBarClick:f})}):null]})})}function Mo(){let{data:e}=d(Tt()),t=I((0,J.useMemo)(()=>ie(e),[e]));if(!e||e.plan_id!==`pro`||e.status===`canceled`||!e.cancel_at_period_end&&!e.cancel_at)return null;let n=oe(e);return n?(0,Y.jsx)(U,{tone:`info`,title:`Your Pro plan will end on ${R(n)}.`,actions:(0,Y.jsx)(i,{variant:`outlined`,size:`compact`,onClick:()=>t.mutate({}),disabled:t.isPending,leftIcon:t.isPending?(0,Y.jsx)(H,{className:`animate-spin`}):void 0,"data-testid":`grace-period-reactivate-button`,children:`Reactivate`}),"data-testid":`grace-period-banner`,children:`You'll keep Pro features until then.`}):null}var No=new Set([`BIF`,`CLP`,`DJF`,`GNF`,`JPY`,`KMF`,`KRW`,`MGA`,`PYG`,`RWF`,`VND`,`VUV`,`XAF`,`XOF`,`XPF`]),Po=new Set([`BHD`,`JOD`,`KWD`,`OMR`,`TND`]);function Fo(e){return No.has(e)?0:Po.has(e)?3:2}var Io={invoices:[],has_more:!1},Lo=4,Ro=`text-body-small-default [--vbtn-fg:var(--content-tertiary)] hover:[--vbtn-fg:var(--content-secondary)]`;function zo(e){switch(e){case`paid`:return`positive`;case`open`:return`warning`;case`uncollectible`:return`negative`;default:return`neutral`}}function Bo(e,t){let n=t.toUpperCase(),r=Fo(n);try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:n,minimumFractionDigits:r,maximumFractionDigits:r}).format(e/10**r)}catch{return`${(e/100).toFixed(2)} ${n}`}}function Vo(e){return Xt(new Date(e*1e3),{alwaysShowYear:!0})}function Ho(e){let t=document.createElement(`a`);t.href=e,t.target=`_blank`,t.rel=`noopener noreferrer`,document.body.appendChild(t),t.click(),t.remove()}function Uo(){let{t:e}=q(`settings`),[t,r]=(0,J.useState)(!1),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(!1),[d,p]=(0,J.useState)(!1),m=(0,J.useRef)(0),_=u(),v=f({enabled:t,queryKey:Ct(),queryFn:async({signal:e,pageParam:t})=>{let{data:n,error:r,response:i}=await Ue({throwOnError:!1,signal:e,query:t?{starting_after:t}:void 0});if(i?.status===404)return Io;if(Re(i,r,`Failed to load invoices.`),!i.ok||!n)throw Le(r,i);return n},initialPageParam:void 0,getNextPageParam:e=>e.has_more?e.invoices.at(-1)?.id:void 0}),y=v.data?.pages.flatMap(e=>e.invoices)??[],b=o?y:y.slice(0,Lo),x=y.length>Lo,S=v.isFetchNextPageError||d,T=(o||!x)&&v.hasNextPage&&!S,E=v.isRefetching||v.isFetchingNextPage;function D(){let e=m.current;v.fetchNextPage().then(t=>{e===m.current&&p(t.isError)})}function O(){let e=m.current;v.refetch().then(t=>{if(e===m.current){if(t.isError){p(!0);return}D()}})}async function k(){l(!0);try{let{data:e,response:t}=await He({throwOnError:!1,parseAs:`blob`});if(!t?.ok||!(e instanceof Blob))throw Error(`Failed to download invoices (${t?.status??`network error`})`);let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-D0A3kApD.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3,4]));await n(e,`invoices.zip`)}catch(e){n(e,{context:`download_all_invoices`}),K.error(`Failed to download invoices.`)}finally{l(!1)}}return(0,Y.jsx)(g,{padding:`md`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsx)(Ta,{title:e(`invoicesTable.title`),actions:(0,Y.jsxs)(Y.Fragment,{children:[t&&y.length>0&&(0,Y.jsx)(i,{variant:`outlined`,leftIcon:c?(0,Y.jsx)(H,{className:`animate-spin`}):(0,Y.jsx)(we,{className:`h-4 w-4`}),onClick:k,disabled:c,"data-testid":`invoices-download-all`,children:`Download all`}),(0,Y.jsx)(i,{variant:`outlined`,rightIcon:t?(0,Y.jsx)(w,{className:`h-4 w-4`}):(0,Y.jsx)(C,{className:`h-4 w-4`}),onClick:()=>{m.current+=1,p(!1),t&&_.cancelQueries({queryKey:Ct()}),r(e=>!e)},"data-testid":`invoices-toggle`,children:e(t?`invoicesTable.hideButton`:`invoicesTable.showButton`)})]})}),t?v.isLoading?(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-small-default`,children:`Loading invoices...`})]}):v.isLoadingError?(0,Y.jsx)(U,{tone:`error`,children:`Failed to load invoices.`}):y.length===0?(0,Y.jsx)(h,{as:`p`,variant:`body-small-default`,className:`py-6 text-center text-[var(--content-tertiary)]`,"data-testid":`invoices-empty`,children:`No Invoices Found`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`overflow-x-auto`,children:(0,Y.jsxs)(`table`,{className:`w-full`,"data-testid":`invoices-table`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] text-left`,children:[(0,Y.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Date`}),(0,Y.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Amount`}),(0,Y.jsx)(`th`,{className:`pb-2 pr-4 text-body-small-default text-[var(--content-tertiary)]`,children:`Status`}),(0,Y.jsx)(`th`,{className:`pb-2 text-body-small-default text-[var(--content-tertiary)]`,children:`Action`})]})}),(0,Y.jsx)(`tbody`,{children:b.map(e=>(0,Y.jsxs)(`tr`,{className:`border-b border-[var(--border-base)] last:border-0`,"data-testid":`invoice-row`,children:[(0,Y.jsx)(`td`,{className:`py-3 pr-4`,children:(0,Y.jsx)(h,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:Vo(e.created)})}),(0,Y.jsx)(`td`,{className:`py-3 pr-4`,children:(0,Y.jsx)(h,{as:`span`,variant:`body-small-default`,className:`text-[var(--content-secondary)]`,children:Bo(e.amount_due,e.currency)})}),(0,Y.jsx)(`td`,{className:`py-3 pr-4`,children:e.status&&(0,Y.jsx)(Me,{tone:zo(e.status),children:e.status})}),(0,Y.jsx)(`td`,{className:`py-3`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.hosted_invoice_url&&(0,Y.jsx)(i,{asChild:!0,variant:`ghost`,size:`compact`,leftIcon:(0,Y.jsx)(Te,{className:`h-3.5 w-3.5`}),children:(0,Y.jsx)(`a`,{href:e.hosted_invoice_url,target:`_blank`,rel:`noopener noreferrer`,children:`View`})}),e.invoice_pdf&&(0,Y.jsx)(i,{variant:`ghost`,size:`compact`,iconOnly:(0,Y.jsx)(we,{className:`h-3.5 w-3.5`}),"aria-label":`Download invoice PDF`,onClick:()=>Ho(e.invoice_pdf)})]})})]},e.id))})]})}),(x||T||S)&&(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 self-start`,children:[x&&(0,Y.jsx)(i,{variant:`link`,onClick:()=>s(e=>!e),className:Ro,"data-testid":`invoices-show-more`,children:o?`Show less`:`Show more (${y.length-Lo} more)`}),T&&(0,Y.jsx)(i,{variant:`link`,onClick:D,disabled:v.isFetchingNextPage,leftIcon:v.isFetchingNextPage&&(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),className:Ro,"data-testid":`invoices-load-more`,children:`Load more`}),S&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`invoices-load-more-error`,children:[(0,Y.jsx)(h,{as:`span`,variant:`body-small-default`,className:`text-[color:var(--content-negative)]`,children:`Failed to load more invoices.`}),(0,Y.jsx)(i,{variant:`link`,onClick:O,disabled:E,leftIcon:E&&(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),className:Ro,"data-testid":`invoices-load-more-retry`,children:`Retry`})]})]})]}):null]})})}var Wo={visa:`Visa`,mastercard:`Mastercard`,amex:`Amex`,discover:`Discover`,diners:`Diners Club`,jcb:`JCB`,unionpay:`UnionPay`};function Go(e){return Wo[e.toLowerCase()]??e}function Ko({brand:e,last4:t,onUpdateCard:n,onRemove:r,removing:a=!1}){return(0,Y.jsxs)(`div`,{"data-testid":`payment-method-row`,className:`flex items-center justify-between gap-2 rounded-lg border border-[var(--border-base)] pl-3 pr-2 py-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Y.jsx)(Ce,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[var(--content-default)]`}),(0,Y.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,Y.jsx)(h,{as:`p`,variant:`body-medium-default`,className:`truncate leading-snug text-[var(--content-default)]`,children:e?Go(e):`Saved card`}),t!=null&&(0,Y.jsxs)(h,{as:`p`,variant:`body-small-default`,className:`truncate leading-snug text-[var(--content-tertiary)]`,children:[`Ending in `,t]})]})]}),(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,Y.jsx)(i,{variant:`ghost`,onClick:n,"data-testid":`payment-method-update`,children:`Update Card`}),(0,Y.jsx)(i,{variant:`dangerOutline`,onClick:r,disabled:a,"data-testid":`payment-method-remove`,children:a?`Removing…`:`Remove`})]})]})}function qo(){let{t:e}=q(`settings`),t=u(),n=d(gt()),r=p(st()),a=ya(),[o,s]=(0,J.useState)(!1),[c,l]=(0,J.useState)(!1),f=n.data;return(0,Y.jsxs)(g,{padding:`md`,"data-testid":`payment-methods-card`,children:[(0,Y.jsx)(Ta,{title:e(`paymentMethodsCard.title`),subtitle:e(`paymentMethodsCard.subtitle`),actions:(0,Y.jsx)(i,{variant:`outlined`,onClick:()=>s(!0),"data-testid":`payment-methods-add`,children:e(`paymentMethodsCard.addButton`)})}),n.isLoading?(0,Y.jsx)(`p`,{className:`mt-4 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`paymentMethodsCard.loading`)}):n.isError||f==null?(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsx)(U,{tone:`error`,children:e(`paymentMethodsCard.loadError`)})}):f.has_payment_method?(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsx)(Ko,{brand:f.payment_method_brand,last4:f.payment_method_last4,onUpdateCard:()=>s(!0),onRemove:()=>l(!0),removing:r.isPending})}):(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsx)(U,{tone:`info`,"data-testid":`payment-methods-empty`,children:e(`paymentMethodsCard.empty`)})}),r.isError&&(0,Y.jsx)(U,{tone:`error`,className:`mt-4`,"data-testid":`auto-top-up-remove-error`,children:e(`paymentMethodsCard.removeError`)}),(0,Y.jsx)(Pe,{open:c,title:e(`paymentMethodsCard.removeConfirmTitle`),message:e(`paymentMethodsCard.removeConfirmMessage`),confirmLabel:r.isPending?e(`paymentMethodsCard.removeConfirmPending`):e(`paymentMethodsCard.removeConfirmConfirm`),isPending:r.isPending,cancelLabel:e(`paymentMethodsCard.removeConfirmCancel`),destructive:!0,onConfirm:()=>{f!=null&&r.mutate({},{onSuccess:()=>{ht(t,void 0,{...f,enabled:!1,has_payment_method:!1,payment_method_brand:null,payment_method_last4:null}),t.invalidateQueries({queryKey:lt()}),l(!1)},onError:()=>{l(!1)}})},onCancel:()=>l(!1)}),(0,Y.jsx)(ma,{open:o,onClose:()=>s(!1),onSavedOptimistic:a})]})}function Jo({icon:e,label:t,multiline:n=!1}){return(0,Y.jsxs)(`div`,{className:Kt(`flex items-center gap-1.5 rounded-lg bg-[var(--surface-lift)] px-2 py-1.5`,n?`min-h-8 min-w-0`:`h-8`),children:[(0,Y.jsx)(e,{className:`size-[18px] shrink-0 text-[var(--content-default)]`,"aria-hidden":!0}),(0,Y.jsx)(h,{as:`span`,variant:`body-medium-default`,className:Kt(`text-[var(--content-default)]`,n?`whitespace-normal`:`whitespace-nowrap`),children:t})]})}function Yo({theme:e,tierKey:t,name:n,nameTestId:r,tag:i,specs:a,footer:o,testId:s,className:c}){return(0,Y.jsxs)(`div`,{"data-theme":e,"data-testid":s,className:Kt(`flex min-w-0 flex-1 flex-col gap-8 rounded-xl bg-[var(--surface-base)] px-4 py-3`,c),children:[(0,Y.jsxs)(`div`,{className:`flex flex-col items-start gap-6`,children:[i,(0,Y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Y.jsx)(pe,{tier:t,size:48}),(0,Y.jsx)(h,{as:`span`,variant:`title-large`,className:`text-[var(--content-emphasised)]`,"data-testid":r,children:n})]})]}),a?.length?(0,Y.jsx)(`div`,{className:`flex flex-col items-start gap-2`,children:a.map(e=>(0,Y.jsx)(Jo,{icon:e.icon,label:e.label,multiline:e.multiline},e.label))}):null,o?(0,Y.jsx)(`div`,{className:`mt-auto w-full`,children:o}):null]})}function Xo(){return(0,Y.jsx)(h,{as:`h2`,variant:`title-medium`,className:`text-[var(--content-emphasised)]`,children:`Plan`})}function Zo({packages:e,currentKey:t,currentPriceCents:n,isProUser:r,canChangePackage:a,relation:o,onManage:s,onTierUpgraded:c}){let l=u(),d=p(bt()),{changePackage:f,isPending:m}=le(),[h,g]=(0,J.useState)(!1),[_,v]=(0,J.useState)(!1),y=ye()===`light`?`dark`:`light`;ue();let b=O(e,t),x=h||d.isPending||m,S=async()=>{if(!b)return;let e=await f(b.key);e&&(v(!1),e.status===`ok`?c?.():K.success(`You're already on this plan.`))},C=async()=>{if(b){if(r&&!a){s();return}if(r){v(!0);return}g(!0);try{let e=await d.mutateAsync({body:{target_plan_id:`pro`,package:b.key,confirm:!0,return_target:Qt()}});e.status===`redirect`&&e.checkout_url?(Ge({kind:`package`,packageKey:b.key}),Be(l),it(e.checkout_url)):(await l.invalidateQueries({queryKey:wt()}),await l.invalidateQueries({queryKey:kt()}))}catch(e){K.error(te(e,`Failed to start the upgrade checkout. Please try again.`))}finally{g(!1)}}};if(b==null||o===`switch`)return null;let w=n==null?null:b.total_price_cents-n,T=w!=null&&w>0?`Power Up for +${N(w)}/month`:`Power Up`;return(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Yo,{theme:y,testId:`plan-tile-next`,tierKey:b.key,name:b.name,tag:(0,Y.jsx)(Me,{className:`bg-[var(--feed-digest-weak)] text-[var(--credits-accent)]`,leftIcon:(0,Y.jsx)(De,{className:`text-[var(--credits-accent)]`,"aria-hidden":!0}),children:`Next Plan`}),specs:F(b),footer:(0,Y.jsx)(i,{variant:`primary`,fullWidth:!0,tintColor:`var(--aux-white)`,className:`h-10 border-transparent bg-[var(--system-positive-strong)] hover:bg-[var(--system-positive-strong)] hover:opacity-90 active:bg-[var(--system-positive-strong)]`,onClick:()=>void C(),disabled:x,leftIcon:x?(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}):void 0,"data-testid":`recommended-upgrade-button`,children:T})}),(0,Y.jsx)(z,{open:_,relation:o,packageName:b.name,targetPackage:b,pending:x,onConfirm:()=>void S(),onCancel:()=>v(!1)})]})}function Qo({onManage:e,onTierUpgraded:t}){let n=o(),r=d(Tt()),a=d(xt());if(r.isLoading||a.isLoading)return(0,Y.jsxs)(g,{padding:`md`,children:[(0,Y.jsx)(Xo,{}),(0,Y.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 text-[var(--content-tertiary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),(0,Y.jsx)(h,{as:`span`,variant:`body-small-default`,children:`Loading plan...`})]})]});let s=r.data,c=a.data?.plans,l=c?.find(e=>e.id===s?.plan_id);if(r.isError||a.isError||!s||!c||!l)return(0,Y.jsx)(U,{tone:`error`,children:`Failed to load plan.`});let u=l.id===`pro`?ee(s.package):l.name??l.id,f=s.cancel_at_period_end===!0||!!s.cancel_at,p=s.status===`canceled`,m=oe(s),_=!f&&!p&&s.current_period_end,v=f&&!p&&m,y=c.find(e=>e.id===`pro`)?.packages??[],b=s.package?.key??null,x=b??`free`,S=y.length>0&&(l.id===`base`||k(s.package)||B(s)),C=B(s),w=l.id===`base`||k(s.package)?`upgrade`:`switch`,T=l.id===`base`,E=s.package,D=!T&&k(E)?y.find(e=>e.key===E.key&&e.version===E.version)??null:null,O=T?ne():D?F(D):null,j=T?0:D?.total_price_cents??null,M=T?`Free Forever`:D?A(D.total_price_cents):null;return(0,Y.jsx)(g,{padding:`md`,children:(0,Y.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Y.jsx)(Xo,{}),_&&(0,Y.jsxs)(h,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--content-tertiary)]`,"data-testid":`plan-card-renews`,children:[`Monthly Payment • Your subscription will auto renew on`,` `,R(s.current_period_end),`.`]}),v&&(0,Y.jsxs)(h,{variant:`body-small-default`,as:`div`,className:`leading-snug text-[var(--system-mid-strong)]`,"data-testid":`plan-card-cancels`,children:[`Your plan ends on `,R(m),`.`]})]}),(0,Y.jsx)(i,{variant:`outlined`,onClick:S?()=>n(Ke.plans):e,"data-testid":`plan-card-plans-button`,className:`shrink-0`,children:`View All Plans`})]}),(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2 lg:flex-row lg:items-stretch`,children:[(0,Y.jsx)(Yo,{testId:`plan-tile-current`,tierKey:x,name:u,nameTestId:`plan-card-name`,tag:(0,Y.jsx)(Me,{tone:`info`,children:`Current`}),specs:O,footer:M?(0,Y.jsx)(`div`,{className:`flex h-10 items-center border-t border-[var(--border-base)]`,children:(0,Y.jsx)(h,{as:`span`,variant:`body-large-default`,className:`text-[var(--content-tertiary)]`,"data-testid":`plan-card-price`,children:M})}):void 0}),(0,Y.jsx)(Zo,{packages:y,currentKey:b,currentPriceCents:j,isProUser:l.id!==`base`,canChangePackage:C,relation:w,onManage:e,onTierUpgraded:t})]})]})})}function $o({onCheckoutCancelled:e}){let[t]=s(),n=o(),r=u(),{t:i}=q(`settings`);return(0,J.useEffect)(()=>{let a=t.get(`billing_status`);a&&(a===`success`?xe(r):a===`cancel`&&(K.info(t.get(`billing_context`)===`upgrade`?i(`billingStatusHandler.upgradeCancelToast`):i(`billingStatusHandler.topUpCancelToast`),{id:`billing-status`}),e()),n(Ke.settings.usageBilling,{replace:!0}))},[t,n,r,e,i]),null}function es({onFinishSetup:e}){let{t}=q(`settings`),n=Xe(),{data:r}=d({...Tt(),enabled:n}),a=r?.plan_id===`pro`,{data:o}=d({...At(),enabled:a&&n}),s=a&&o?.domain_setup_available===!0,{domains:c}=j(s,o?.primary_assistant_id),l=c!==void 0&&c.results.length===0;return!s||!l?null:(0,Y.jsx)(U,{tone:`info`,title:t(`billingPage.finishSetupTitle`,{plan:ee(r?.package)}),actions:(0,Y.jsx)(i,{variant:`outlined`,size:`compact`,onClick:e,"data-testid":`finish-pro-setup-button`,children:t(`billingPage.finishSetupButton`)}),"data-testid":`finish-pro-setup-notice`,children:t(`billingPage.finishSetupBody`)})}function ts(){let{t:e}=q(`settings`),t=qe({platformHostedOnly:!0}),n=qe(),r=Ye(),i=Je(),[a,o]=s(),[c,l]=(0,J.useState)(!1),u=(0,J.useCallback)(()=>l(!0),[]),d=(0,J.useCallback)(()=>l(!1),[]),[f,p]=(0,J.useState)(!1),m=(0,J.useCallback)(()=>p(!0),[]),[h,g]=(0,J.useState)(!1),[_,v]=(0,J.useState)(null),[y,b]=(0,J.useState)(!1),x=(0,J.useCallback)(()=>{v(Date.now()),b(!1)},[]),{showOffer:S,amountUsd:C}=dn(_),w=(0,J.useCallback)(e=>{e||b(!0)},[]);(0,J.useEffect)(()=>{if(n!==`full`)return;let e=a.has(`adjust_plan`),t=a.has(`pro_onboarding`);!e&&!t||(e&&l(!0),t&&g(!0),o(e=>{let t=new URLSearchParams(e);return t.delete(`adjust_plan`),t.delete(`pro_onboarding`),t},{replace:!0}))},[n,a,o]);let T=a.has(`session_id`),E=(0,J.useCallback)(()=>{g(!1),o(e=>{let t=new URLSearchParams(e);return t.delete(`session_id`),t},{replace:!0})},[o]),O=(0,J.useCallback)(()=>{o(e=>{let t=new URLSearchParams(e);return t.set(`pro_onboarding`,``),t},{replace:!0})},[o]);if(n===`disabled`)return(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsx)(Jt,{children:e(`billingPage.platformLoginNotice`)})});if(i)return(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 py-6 text-body-medium-lighter text-[var(--content-secondary)]`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 animate-spin`}),e(`billingPage.loadingBilling`)]})});let k=r,A=k||T||h;return!r&&t!==`gated`?(0,Y.jsx)(`div`,{className:`space-y-4`,children:(0,Y.jsx)(U,{tone:`warning`,children:e(`billingPage.billingUnavailable`)})}):(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(J.Suspense,{fallback:null,children:[(0,Y.jsx)($o,{onCheckoutCancelled:x}),(0,Y.jsx)(Ga,{})]}),k&&(0,Y.jsx)(Mo,{}),k&&(0,Y.jsx)(es,{onFinishSetup:O}),k&&(0,Y.jsx)(Qo,{onManage:u,onTierUpgraded:m}),k&&(0,Y.jsx)(si,{open:c,onClose:d,onTierUpgraded:m}),(0,Y.jsx)(un,{open:S&&!y,onOpenChange:w,amountUsd:C}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(qo,{})}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(Ra,{})}),(0,Y.jsx)(J.Suspense,{fallback:null,children:(0,Y.jsx)(Uo,{})}),A&&(0,Y.jsx)(D,{open:T||h,onClose:E}),k&&(0,Y.jsx)(D,{mode:`resize`,open:f,onClose:()=>p(!1)})]})}function ns(){return(0,Y.jsx)(me,{children:(0,Y.jsx)(ts,{})})}function rs(){let e=Yt(),t=qe({platformHostedOnly:!0}),n=qe();return(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[t===`full`&&n!==`gated`&&(0,Y.jsx)(jo,{}),(0,Y.jsx)(zr,{assistantId:e})]})}function is(){let{t:e}=q(`settings`),t=qe(),[n]=s(),r=o(),{hash:i}=l(),a=ln(t,n),c=a&&n.get(`tab`)!==`usage`?`billing`:`usage`,u=Ve();return(0,J.useEffect)(()=>{if(u&&n.get(`tab`)!==c){let e=new URLSearchParams(n);e.set(`tab`,c),r({search:`?${e}`,hash:i},{replace:!0})}},[u,n,c,r,i]),(0,Y.jsx)(`div`,{className:`space-y-6`,children:(0,Y.jsxs)(y.Root,{value:c,onValueChange:e=>{let t=new URLSearchParams(n);t.set(`tab`,e),r({search:`?${t}`,hash:i},{replace:!0})},children:[(0,Y.jsxs)(y.List,{children:[a&&(0,Y.jsx)(y.Trigger,{value:`billing`,children:e(`billingPage.billingTab`)}),(0,Y.jsx)(y.Trigger,{value:`usage`,children:e(`billingPage.usageTab`)})]}),a&&(0,Y.jsx)(y.Panel,{value:`billing`,className:`pt-4`,children:(0,Y.jsx)(ns,{})}),(0,Y.jsx)(y.Panel,{value:`usage`,className:`pt-4`,children:(0,Y.jsx)(rs,{})})]})})}export{is as BillingPage};
@@ -1 +1 @@
1
- import{t as e}from"./button-VkxVX0DM.js";import{d as t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./jsx-runtime-BJ8jcmzB.js";import{t as r}from"./card-DUsAeHUS.js";import{n as i}from"./use-supports-bookmarks-B_6KzmNn.js";import{t as a}from"./loader-circle-C9QjVTuc.js";import{t as o}from"./rotate-ccw-Cc2yZNdm.js";import{t as s}from"./triangle-alert-B-18Pims.js";import{t as c}from"./x-zfSDUG5z.js";import"./i18n-DRUiM4wH.js";import{t as l}from"./useTranslation-CR3ZnQ9P.js";import{n as u}from"./conversation-navigation-CmWIQkd1.js";import{n as d,t as f}from"./use-bookmarks-CLPQ-45r.js";var p=n();function m(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function h({t:e}){return(0,p.jsx)(r,{children:(0,p.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,p.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,p.jsx)(i,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,p.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`bookmarksPage.emptyTitle`)}),(0,p.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`bookmarksPage.emptyDescription`)})]})})}function g({bookmark:t,isFirst:n,onOpen:r,onRemove:i,t:a}){let o=t.conversationTitle&&t.conversationTitle.trim().length>0?t.conversationTitle:a(`bookmarksPage.untitledConversation`),s=t.messageRole!==`user`,l=m(t.createdAt);return(0,p.jsxs)(`div`,{className:`flex items-start gap-3 py-3 ${n?``:`border-t border-[var(--border-base)]`}`,children:[(0,p.jsx)(`span`,{"aria-hidden":!0,className:`mt-1 h-8 w-1 shrink-0 rounded-full`,style:{backgroundColor:s?`var(--content-default)`:`var(--content-tertiary)`}}),(0,p.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,p.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,p.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:o}),l?(0,p.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:l}):null]}),t.messagePreview?(0,p.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:t.messagePreview}):null]}),(0,p.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,p.jsx)(e,{variant:`outlined`,onClick:r,children:a(`bookmarksPage.open`)}),(0,p.jsx)(`button`,{type:`button`,onClick:i,title:a(`bookmarksPage.removeBookmark`),"aria-label":a(`bookmarksPage.removeBookmark`),className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-active)] hover:text-[var(--content-default)]`,children:(0,p.jsx)(c,{className:`h-4 w-4`})})]})]})}function _(){let{t:n}=l(`settings`),i=t(),{bookmarks:c,isLoading:m,isError:_,refetch:v}=d(),y=f();return m?(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,p.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):_?(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(r,{children:(0,p.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,p.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,p.jsx)(s,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,p.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:n(`bookmarksPage.errorTitle`)}),(0,p.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`bookmarksPage.errorDescription`)}),(0,p.jsxs)(e,{variant:`outlined`,onClick:v,className:`mt-4`,children:[(0,p.jsx)(o,{className:`h-4 w-4`}),n(`bookmarksPage.retry`)]})]})})}):c.length===0?(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(h,{t:n})}):(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(r,{noPadding:!0,className:`px-4`,children:c.map((e,t)=>(0,p.jsx)(g,{bookmark:e,isFirst:t===0,onOpen:()=>u(i,e.conversationId,{messageId:e.messageId}),onRemove:()=>{y(e.messageId,e.conversationId,!0)},t:n},e.id))})})}export{_ as BookmarksPage};
1
+ import{t as e}from"./button-VkxVX0DM.js";import{d as t}from"./chunk-5KNZJZUH-BUqIilZr.js";import{t as n}from"./jsx-runtime-BJ8jcmzB.js";import{t as r}from"./card-DUsAeHUS.js";import{n as i}from"./use-supports-bookmarks-B_6KzmNn.js";import{t as a}from"./loader-circle-C9QjVTuc.js";import{t as o}from"./rotate-ccw-Cc2yZNdm.js";import{t as s}from"./triangle-alert-B-18Pims.js";import{t as c}from"./x-zfSDUG5z.js";import"./i18n-DRUiM4wH.js";import{t as l}from"./useTranslation-CR3ZnQ9P.js";import{n as u}from"./conversation-navigation-NBlywOWx.js";import{n as d,t as f}from"./use-bookmarks-CLPQ-45r.js";var p=n();function m(e){if(e==null)return``;let t=new Date(e);return Number.isNaN(t.getTime())?``:t.toLocaleString(void 0,{month:`short`,day:`numeric`,year:`numeric`,hour:`numeric`,minute:`2-digit`,hour12:!0})}function h({t:e}){return(0,p.jsx)(r,{children:(0,p.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,p.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--surface-base)]`,children:(0,p.jsx)(i,{className:`h-6 w-6 text-[var(--content-disabled)] dark:text-[var(--content-default)]`})}),(0,p.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:e(`bookmarksPage.emptyTitle`)}),(0,p.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:e(`bookmarksPage.emptyDescription`)})]})})}function g({bookmark:t,isFirst:n,onOpen:r,onRemove:i,t:a}){let o=t.conversationTitle&&t.conversationTitle.trim().length>0?t.conversationTitle:a(`bookmarksPage.untitledConversation`),s=t.messageRole!==`user`,l=m(t.createdAt);return(0,p.jsxs)(`div`,{className:`flex items-start gap-3 py-3 ${n?``:`border-t border-[var(--border-base)]`}`,children:[(0,p.jsx)(`span`,{"aria-hidden":!0,className:`mt-1 h-8 w-1 shrink-0 rounded-full`,style:{backgroundColor:s?`var(--content-default)`:`var(--content-tertiary)`}}),(0,p.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,p.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3`,children:[(0,p.jsx)(`div`,{className:`truncate text-body-medium-default text-[var(--content-default)]`,children:o}),l?(0,p.jsx)(`span`,{className:`shrink-0 text-body-small-default text-[var(--content-tertiary)]`,children:l}):null]}),t.messagePreview?(0,p.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-body-small-default text-[var(--content-tertiary)]`,children:t.messagePreview}):null]}),(0,p.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,p.jsx)(e,{variant:`outlined`,onClick:r,children:a(`bookmarksPage.open`)}),(0,p.jsx)(`button`,{type:`button`,onClick:i,title:a(`bookmarksPage.removeBookmark`),"aria-label":a(`bookmarksPage.removeBookmark`),className:`flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-[var(--content-tertiary)] transition-colors hover:bg-[var(--surface-active)] hover:text-[var(--content-default)]`,children:(0,p.jsx)(c,{className:`h-4 w-4`})})]})]})}function _(){let{t:n}=l(`settings`),i=t(),{bookmarks:c,isLoading:m,isError:_,refetch:v}=d(),y=f();return m?(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(`div`,{className:`flex min-h-[400px] items-center justify-center`,children:(0,p.jsx)(a,{className:`h-6 w-6 animate-spin text-[var(--content-disabled)]`})})}):_?(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(r,{children:(0,p.jsxs)(`div`,{className:`flex min-h-[400px] flex-col items-center justify-center px-6 py-16 text-center`,children:[(0,p.jsx)(`div`,{className:`flex h-12 w-12 items-center justify-center rounded-full bg-[var(--system-error-lighter)]`,children:(0,p.jsx)(s,{className:`h-6 w-6 text-[var(--system-error-default)]`})}),(0,p.jsx)(`h2`,{className:`mt-4 text-title-small text-[var(--content-default)]`,children:n(`bookmarksPage.errorTitle`)}),(0,p.jsx)(`p`,{className:`mt-1 text-body-medium-lighter text-[var(--content-tertiary)]`,children:n(`bookmarksPage.errorDescription`)}),(0,p.jsxs)(e,{variant:`outlined`,onClick:v,className:`mt-4`,children:[(0,p.jsx)(o,{className:`h-4 w-4`}),n(`bookmarksPage.retry`)]})]})})}):c.length===0?(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(h,{t:n})}):(0,p.jsx)(`div`,{className:`w-full`,children:(0,p.jsx)(r,{noPadding:!0,className:`px-4`,children:c.map((e,t)=>(0,p.jsx)(g,{bookmark:e,isFirst:t===0,onOpen:()=>u(i,e.conversationId,{messageId:e.messageId}),onRemove:()=>{y(e.messageId,e.conversationId,!0)},t:n},e.id))})})}export{_ as BookmarksPage};