@vellumai/web 0.10.7-dev.202607101106.c87f4e3 → 0.10.7-dev.202607101252.74ea83d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{account-page-DOSnPXjP.js → account-page-BdqIpvgX.js} +1 -1
- package/dist/assets/{account-shell-74OchOxg.js → account-shell-DFNUKuhx.js} +1 -1
- package/dist/assets/{acp-run-detail-panel-DFoD_DVJ.js → acp-run-detail-panel-DGzQ5xHz.js} +1 -1
- package/dist/assets/{activity-steps-panel-jztC4BRv.js → activity-steps-panel-BlDnRLMW.js} +1 -1
- package/dist/assets/{advanced-page-B8h5sAe5.js → advanced-page-QD7MYojM.js} +1 -1
- package/dist/assets/{ai-page-BInYrZV7.js → ai-page-rmewMnyr.js} +1 -1
- package/dist/assets/{api-key-screen-Cynx0r0g.js → api-key-screen-x5pRcZF9.js} +1 -1
- package/dist/assets/{archive-page-DqXRVFoF.js → archive-page-CF9EjIMS.js} +1 -1
- package/dist/assets/{assistant-status-panel-eNWJodpn.js → assistant-status-panel-FFtcZext.js} +1 -1
- package/dist/assets/{background-task-detail-panel-Bsi8IoaY.js → background-task-detail-panel-CyRhHB1m.js} +1 -1
- package/dist/assets/{billing-page-dpKYjJH3.js → billing-page-DNyLmtBF.js} +1 -1
- package/dist/assets/{bookmarks-page-BI92Y3eM.js → bookmarks-page-m9Xthnds.js} +1 -1
- package/dist/assets/{channels-page-route-6cT6U3pZ.js → channels-page-route-BQTwyrJI.js} +1 -1
- package/dist/assets/chat-markdown-message-D1TuEa01.js +2 -0
- package/dist/assets/{command-palette-Dk6UsSlv.js → command-palette-CxE2A0b5.js} +1 -1
- package/dist/assets/{command-palette-window-page-zDow8o4K.js → command-palette-window-page-CHzTJMU8.js} +1 -1
- package/dist/assets/{community-page-BVJxxP10.js → community-page-Cd3mg0sc.js} +1 -1
- package/dist/assets/{contacts-page-route-WXG6_xo2.js → contacts-page-route-DR3P7w4f.js} +1 -1
- package/dist/assets/{credentials-page-0S5ifTFC.js → credentials-page-m9fqc00C.js} +1 -1
- package/dist/assets/{debug-page-C-HWHD-3.js → debug-page-B6ojWKaO.js} +1 -1
- package/dist/assets/{deploy-dialogs-BBHNKgDi.js → deploy-dialogs-B_OQaS8A.js} +1 -1
- package/dist/assets/{detail-card-RGTjHkZ8.js → detail-card-CT2hqt3Y.js} +1 -1
- package/dist/assets/{detail-panel-stop-button-oIDUq-kJ.js → detail-panel-stop-button-Bpx4dPp_.js} +1 -1
- package/dist/assets/{developer-page-Djolz4Fg.js → developer-page-Dw4ok8g6.js} +1 -1
- package/dist/assets/{devices-page-XJJSA97y.js → devices-page-vyRhbbl5.js} +1 -1
- package/dist/assets/{dictation-overlay-page-cqsEjyx_.js → dictation-overlay-page-Bce9R9KG.js} +1 -1
- package/dist/assets/{document-viewer-page-jInmb33M.js → document-viewer-page-CU7nK1yh.js} +1 -1
- package/dist/assets/{earn-credits-modal-C_jhLLw5.js → earn-credits-modal-s9y1FAvc.js} +1 -1
- package/dist/assets/{emails-page-fov7ihfj.js → emails-page-CPgqL_Y6.js} +1 -1
- package/dist/assets/{file-markdown-BXUvAQ24.js → file-markdown-FUop375h.js} +1 -1
- package/dist/assets/{general-page-gojItIOd.js → general-page-CnVJylIR.js} +1 -1
- package/dist/assets/{hatching-screen-C0MNyetb.js → hatching-screen-Bo9XQeCo.js} +1 -1
- package/dist/assets/{home-page-route-X4KYSdMI.js → home-page-route-Jc5GdzHc.js} +1 -1
- package/dist/assets/{hosting-screen-BTLHWS2M.js → hosting-screen-Ce6WIJOS.js} +1 -1
- package/dist/assets/{identity-page-route-D5xzlpim.js → identity-page-route-EM3XhCiv.js} +1 -1
- package/dist/assets/index-CB4MRaH-.js +113 -0
- package/dist/assets/{index-BjtwYdrT.css → index-N8pxTgNQ.css} +1 -1
- package/dist/assets/inspect-page-B95rlYy0.js +9 -0
- package/dist/assets/{integrations-page-DtClqS91.js → integrations-page-Cs4cuCl_.js} +1 -1
- package/dist/assets/{intelligence-layout-D9ReVcK0.js → intelligence-layout-SdsLkbld.js} +1 -1
- package/dist/assets/{keyboard-shortcuts-page-CovdLPhh.js → keyboard-shortcuts-page-B_5m0XxP.js} +1 -1
- package/dist/assets/{library-detail-page-MAsxHH08.js → library-detail-page-CW6I7yaw.js} +1 -1
- package/dist/assets/{library-page-CYuSc92M.js → library-page-CjNjc3EY.js} +1 -1
- package/dist/assets/{login-page-CK1TxruP.js → login-page-C0mdErVi.js} +1 -1
- package/dist/assets/{logout-page-W3gl_1Ax.js → logout-page-D45WVOa4.js} +1 -1
- package/dist/assets/{logs-layout-CR7u05YO.js → logs-layout-Cxx5sj_g.js} +1 -1
- package/dist/assets/{memory-router-playground-page-eDjKwsbG.js → memory-router-playground-page-DPKrB91F.js} +1 -1
- package/dist/assets/{metric-card-BN23geOu.js → metric-card-DLcg5ELt.js} +1 -1
- package/dist/assets/{mobile-sidebar-drawer-3LqMCZgK.js → mobile-sidebar-drawer-BsmKpQs1.js} +1 -1
- package/dist/assets/{notifications-page-CtyUuC15.js → notifications-page-DVVPJmih.js} +1 -1
- package/dist/assets/{oauth-complete-page-3DcY6Or3.js → oauth-complete-page-I2X3nt91.js} +1 -1
- package/dist/assets/{oauth-popup-complete-page-Cn-1bOwa.js → oauth-popup-complete-page-D8nC8mgu.js} +1 -1
- package/dist/assets/{page-shell-C2TBO8M8.js → page-shell-CnGkxD-Q.js} +1 -1
- package/dist/assets/{pairing-page-Bb-_q_zP.js → pairing-page-C2ba1KRg.js} +1 -1
- package/dist/assets/{plugins-page-Cv0FXn1j.js → plugins-page-DFWeKs0F.js} +1 -1
- package/dist/assets/{prechat-route-CgCradwf.js → prechat-route-BXXsRTVk.js} +1 -1
- package/dist/assets/{privacy-page-BqYdFos7.js → privacy-page-D7KSRwNl.js} +1 -1
- package/dist/assets/{privacy-screen-DBMkRqiF.js → privacy-screen-BO4x-6QK.js} +1 -1
- package/dist/assets/{provider-callback-page-B-aDgII8.js → provider-callback-page-C9tYYXAB.js} +1 -1
- package/dist/assets/{provider-signup-page-CYK4VNf0.js → provider-signup-page-fPurjhUd.js} +1 -1
- package/dist/assets/{quick-input-page-oif3WEFT.js → quick-input-page-D8unHCem.js} +1 -1
- package/dist/assets/{research-mock-page-CooZPqtv.js → research-mock-page-BMKAyxbL.js} +1 -1
- package/dist/assets/{research-onboarding-route-BJqAsTdE.js → research-onboarding-route-CoYfjHOu.js} +1 -1
- package/dist/assets/{review-terms-screen-CVRYEl6e.js → review-terms-screen-C5htECLg.js} +1 -1
- package/dist/assets/risk-DZDIuOV1.js +3 -0
- package/dist/assets/{security-page-DN5BI6Ag.js → security-page-GrCSg4PQ.js} +1 -1
- package/dist/assets/{select-assistant-screen-B63mlflD.js → select-assistant-screen-FVsXrhsJ.js} +1 -1
- package/dist/assets/{settings-layout-BNwCqvBi.js → settings-layout-BfJTKDLY.js} +1 -1
- package/dist/assets/{share-feedback-modal-BloP-1QE.js → share-feedback-modal-CPAxr5ar.js} +1 -1
- package/dist/assets/{sidebar-tree-Bh-tcSsp.js → sidebar-tree-EaPilChK.js} +1 -1
- package/dist/assets/{signup-page-D6cMhBxv.js → signup-page-BX_8wo0U.js} +1 -1
- package/dist/assets/{site-favicon-DSzk4cg0.js → site-favicon-Dmyo6zmu.js} +1 -1
- package/dist/assets/{skill-detail-page-Jisds_Gs.js → skill-detail-page-Cto4Q6bu.js} +1 -1
- package/dist/assets/{skill-detail-panel-BEJqfJig.js → skill-detail-panel-jYdfTp92.js} +1 -1
- package/dist/assets/{skills-CSlvOB79.js → skills-8i6-wxyc.js} +1 -1
- package/dist/assets/{skills-page-Cs1EG4X5.js → skills-page-BZKOc-jY.js} +1 -1
- package/dist/assets/{sounds-page-ChFJ0OPm.js → sounds-page-Buwtx1vl.js} +1 -1
- package/dist/assets/{src-B2IjVySQ.js → src-L2mYMShd.js} +1 -1
- package/dist/assets/{subagent-detail-panel-ACj_B6Id.js → subagent-detail-panel-iHWUEA29.js} +1 -1
- package/dist/assets/{system-events-page-JhzC5xhW.js → system-events-page-jaaCeDdc.js} +1 -1
- package/dist/assets/{tiptap-document-editor-DSny-IjF.js → tiptap-document-editor-BXW6CUVP.js} +1 -1
- package/dist/assets/{tool-detail-panel-z5iYNIYq.js → tool-detail-panel-JdtxmeCE.js} +1 -1
- package/dist/assets/{upgrade-cancel-page-D_YziHQs.js → upgrade-cancel-page-CosiWXDB.js} +1 -1
- package/dist/assets/{upgrade-success-page-Cg7IIDei.js → upgrade-success-page-DrBb4hDE.js} +1 -1
- package/dist/assets/{usage-page-DB3LFuYw.js → usage-page-CusQmlH7.js} +1 -1
- package/dist/assets/{use-edge-swipe-back-AcKDuMrX.js → use-edge-swipe-back-C7jps0aC.js} +1 -1
- package/dist/assets/{use-invite-link-dialog-CExxDwnZ.js → use-invite-link-dialog--edqFgj4.js} +1 -1
- package/dist/assets/{use-skill-actions-e6TfdF23.js → use-skill-actions-DV4T3Zcj.js} +1 -1
- package/dist/assets/{use-skill-categories-i_9x26zg.js → use-skill-categories-DobuTIIf.js} +1 -1
- package/dist/assets/{use-skill-detail-files-Cu4nrHPA.js → use-skill-detail-files-B79DaENR.js} +1 -1
- package/dist/assets/{voice-page-wTcwV9j9.js → voice-page-KTzijoUE.js} +1 -1
- package/dist/assets/{weather-forecast-display-C_3DSHxa.js → weather-forecast-display-Bep3kj0i.js} +1 -1
- package/dist/assets/{welcome-screen-BF3r_rfT.js → welcome-screen-Ca_kgw62.js} +1 -1
- package/dist/assets/{workflow-detail-panel-DzvDXyoD.js → workflow-detail-panel-DFwLFSuO.js} +1 -1
- package/dist/assets/{workspace-page-DCcsRyQz.js → workspace-page-Dsf9kULm.js} +1 -1
- package/dist/index.html +7 -7
- package/package.json +1 -1
- package/dist/assets/chat-markdown-message-CItp7csw.js +0 -2
- package/dist/assets/index-CSefSVJO.js +0 -113
- package/dist/assets/inspect-page-CT8NspqC.js +0 -9
- package/dist/assets/risk-Dsj4oM8c.js +0 -3
package/dist/assets/{weather-forecast-display-C_3DSHxa.js → weather-forecast-display-Bep3kj0i.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./moon-B8qiwjrW.js";import{t as i}from"./misc-BYQPh7vS.js";import{G as a,J as o,K as s,_a as c,ba as l,ga as u,ma as d,mi as f,q as p,va as m,wi as h,xa as g,xi as _,ya as v}from"./index-CSefSVJO.js";var y=e(t(),1),b={"sun.max.fill":{icon:_,className:`text-orange-500`},"cloud.sun.fill":{icon:c,className:`text-amber-400`},"moon.fill":{icon:r,className:`text-blue-400`},"cloud.moon.fill":{icon:v,className:`text-blue-400`},"cloud.fill":{icon:u,className:`text-stone-400`},"cloud.rain.fill":{icon:m,className:`text-blue-400`},snowflake:{icon:h,className:`text-blue-300`},"cloud.bolt.fill":{icon:l,className:`text-orange-500`},"cloud.fog.fill":{icon:g,className:`text-stone-400`}},x={sunny:{icon:_,className:`text-orange-500`},clear:{icon:_,className:`text-orange-500`},"partly cloudy":{icon:c,className:`text-amber-400`},"mostly sunny":{icon:c,className:`text-amber-400`},cloudy:{icon:u,className:`text-stone-400`},overcast:{icon:u,className:`text-stone-400`},rainy:{icon:m,className:`text-blue-400`},rain:{icon:m,className:`text-blue-400`},drizzle:{icon:m,className:`text-blue-400`},snow:{icon:h,className:`text-blue-300`},snowy:{icon:h,className:`text-blue-300`},thunderstorm:{icon:l,className:`text-orange-500`},thunder:{icon:l,className:`text-orange-500`},foggy:{icon:g,className:`text-stone-400`},fog:{icon:g,className:`text-stone-400`},mist:{icon:g,className:`text-stone-400`},hazy:{icon:g,className:`text-stone-400`},night:{icon:r,className:`text-blue-400`},"mainly clear":{icon:_,className:`text-orange-500`},"mostly cloudy":{icon:u,className:`text-stone-400`},breezy:{icon:f,className:`text-stone-400`},windy:{icon:f,className:`text-stone-400`},cool:{icon:u,className:`text-stone-400`},warm:{icon:_,className:`text-orange-500`},hot:{icon:_,className:`text-orange-500`},cold:{icon:h,className:`text-blue-300`},"cold snap":{icon:h,className:`text-blue-300`},"warm, mostly sunny":{icon:c,className:`text-amber-400`},"cooler, breezy":{icon:f,className:`text-stone-400`}},S={icon:u,className:`text-stone-400`};function C(e){let t=b[e];if(t)return t;let n=e.toLowerCase(),r=x[n];if(r)return r;for(let[e,t]of Object.entries(x))if(n.includes(e))return t;return S}function w(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function T(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=p(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=p(e.current),r=s(n?.temp)??s(e.currentTemp)??s(e.temperature)??s(e.temp),i=s(n?.feelsLike)??s(n?.feels_like)??s(n?.apparentTemperature)??s(e.feelsLike)??s(e.feels_like)??s(e.apparentTemperature),c=o(n?.condition)??o(e.condition),l=s(n?.humidity)??s(e.humidity),u=w(n?.wind??e.wind),d=s(n?.windSpeed)??s(n?.wind_speed)??s(e.windSpeed)??s(e.wind_speed)??u.speed,f=o(n?.windDirection)??o(n?.wind_direction)??o(e.windDirection)??o(e.wind_direction)??u.direction,m=p(e.units),h=o(m?.temperature)??o(n?.unit)??o(e.unit)??`F`,g=o(m?.speed)??o(e.windUnit)??o(e.wind_unit),_=a(e.hourly).map((e,t)=>({id:o(e.id)??String(t),time:o(e.time)??``,icon:o(e.icon)??o(e.condition)??`cloud.fill`,temp:s(e.tempC)??s(e.temp)??s(e.temperature),tempC:s(e.tempC)})),v=a([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:o(e.id)??String(t),day:o(e.day)??o(e.date),dayLabel:o(e.dayLabel)??o(e.date),icon:o(e.icon)??o(e.condition)??`cloud.fill`,low:s(e.low),high:s(e.high),lowC:s(e.lowC),highC:s(e.highC),precip:s(e.precip)??s(e.precipitation)??s(e.precipitationProbability),condition:o(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:c,humidity:l,windSpeed:d,windDirection:f,windUnit:g,unit:h,hourly:_.length>0?_:void 0,forecast:v.length>0?v:void 0}}function E(e){return e*9/5+32}function D(e){return(e-32)*5/9}function O(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=D(e)),!t&&n&&(r=E(e)),`${Math.round(r)}`}function k(e,t,n){return e.tempC===void 0?e.temp===void 0?null:O(e.temp,t,n):O(e.tempC,!1,n)}function A(e,t,n){return e.lowC===void 0?O(e.low,t,n):O(e.lowC,!1,n)}function j(e,t,n){return e.highC===void 0?O(e.high,t,n):O(e.highC,!1,n)}var M=n();function N({icon:e,size:t=20}){let{icon:n,className:r}=C(e);return(0,M.jsx)(n,{width:t,height:t,className:r})}function P({useFahrenheit:e,onToggle:t}){return(0,M.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!0),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:`°F`}),(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!1),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:`°C`})]})}function F({data:e,sourceIsFahrenheit:t,useFahrenheit:n,onToggle:r}){let i=e.location,a=O(e.currentTemp,t,n),o=O(e.feelsLike,t,n),s=n?`F`:`C`,c=e.forecast?.[0],l=c?j(c,t,n):null,u=c?A(c,t,n):null,p=null;return e.windSpeed!==void 0&&(p=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(p=`${e.windDirection} ${p}`)),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:i}),a!==null&&(0,M.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[a,`°`,s]}),e.condition&&(0,M.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,M.jsx)(P,{useFahrenheit:n,onToggle:r})]}),(0,M.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[o!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`Feels like `,o,`°`]}),l!==null&&u!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`H:`,l,`° L:`,u,`°`]}),p&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(f,{width:12,height:12}),p]}),e.humidity!==void 0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(d,{width:12,height:12}),e.humidity,`%`]})]})]})}function I({hourly:e,sourceIsFahrenheit:t,useFahrenheit:n}){return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,r)=>{let i=e.time.toLowerCase()===`now`,a=k(e,t,n);return(0,M.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,M.jsx)(`span`,{className:i?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:i?`Now`:e.time}),(0,M.jsx)(N,{icon:e.icon,size:18}),a!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[a,`°`]})]},e.id??r)})})})}function L({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:a,globalMax:o}=(0,y.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),s=o-a||1;return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,c)=>{let l=e.dayLabel??e.day??`Day ${c+1}`,u=l.toLowerCase()===`today`,d=A(e,n,r),f=j(e,n,r),p=e.precip,m=e.lowC??e.low??a,h=e.highC??e.high??o,g=(m-a)/s*100,_=(h-a)/s*100,v=Math.max(_-g,2),y=null;if(u&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=h===m?50:(Math.max(m,Math.min(h,r))-m)/(h-m)*100}return(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`span`,{className:i(`w-12 shrink-0 truncate text-body-small-default`,u?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:l}),(0,M.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,M.jsx)(N,{icon:e.icon,size:16}),p!==void 0&&p>0&&(0,M.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(p),`%`]})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:d===null?`--`:`${d}°`}),(0,M.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${g}%`,width:`${v}%`}}),y!==null&&(0,M.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${g+y/100*v}%`}})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:f===null?`--`:`${f}°`})]},e.id??c)})})})}function R({templateData:e,fallback:t}){let n=(0,y.useMemo)(()=>T(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,y.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,M.jsxs)(`div`,{className:`mt-3`,children:[(0,M.jsx)(F,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,M.jsx)(I,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,M.jsx)(L,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{R as WeatherForecastDisplay};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{t as r}from"./moon-B8qiwjrW.js";import{t as i}from"./misc-BYQPh7vS.js";import{G as a,J as o,K as s,_a as c,ba as l,ga as u,ma as d,mi as f,q as p,va as m,wi as h,xa as g,xi as _,ya as v}from"./index-CB4MRaH-.js";var y=e(t(),1),b={"sun.max.fill":{icon:_,className:`text-orange-500`},"cloud.sun.fill":{icon:c,className:`text-amber-400`},"moon.fill":{icon:r,className:`text-blue-400`},"cloud.moon.fill":{icon:v,className:`text-blue-400`},"cloud.fill":{icon:u,className:`text-stone-400`},"cloud.rain.fill":{icon:m,className:`text-blue-400`},snowflake:{icon:h,className:`text-blue-300`},"cloud.bolt.fill":{icon:l,className:`text-orange-500`},"cloud.fog.fill":{icon:g,className:`text-stone-400`}},x={sunny:{icon:_,className:`text-orange-500`},clear:{icon:_,className:`text-orange-500`},"partly cloudy":{icon:c,className:`text-amber-400`},"mostly sunny":{icon:c,className:`text-amber-400`},cloudy:{icon:u,className:`text-stone-400`},overcast:{icon:u,className:`text-stone-400`},rainy:{icon:m,className:`text-blue-400`},rain:{icon:m,className:`text-blue-400`},drizzle:{icon:m,className:`text-blue-400`},snow:{icon:h,className:`text-blue-300`},snowy:{icon:h,className:`text-blue-300`},thunderstorm:{icon:l,className:`text-orange-500`},thunder:{icon:l,className:`text-orange-500`},foggy:{icon:g,className:`text-stone-400`},fog:{icon:g,className:`text-stone-400`},mist:{icon:g,className:`text-stone-400`},hazy:{icon:g,className:`text-stone-400`},night:{icon:r,className:`text-blue-400`},"mainly clear":{icon:_,className:`text-orange-500`},"mostly cloudy":{icon:u,className:`text-stone-400`},breezy:{icon:f,className:`text-stone-400`},windy:{icon:f,className:`text-stone-400`},cool:{icon:u,className:`text-stone-400`},warm:{icon:_,className:`text-orange-500`},hot:{icon:_,className:`text-orange-500`},cold:{icon:h,className:`text-blue-300`},"cold snap":{icon:h,className:`text-blue-300`},"warm, mostly sunny":{icon:c,className:`text-amber-400`},"cooler, breezy":{icon:f,className:`text-stone-400`}},S={icon:u,className:`text-stone-400`};function C(e){let t=b[e];if(t)return t;let n=e.toLowerCase(),r=x[n];if(r)return r;for(let[e,t]of Object.entries(x))if(n.includes(e))return t;return S}function w(e){if(typeof e==`string`){let t=e.match(/^(\d+)\s*mph\s*(.*)/i);if(t)return{speed:Number(t[1]),direction:t[2]?.trim()||void 0}}return{}}function T(e){let t;if(typeof e.location==`string`)t=e.location;else{let n=p(e.location);n&&typeof n.name==`string`&&(t=n.name)}if(!t)return null;let n=p(e.current),r=s(n?.temp)??s(e.currentTemp)??s(e.temperature)??s(e.temp),i=s(n?.feelsLike)??s(n?.feels_like)??s(n?.apparentTemperature)??s(e.feelsLike)??s(e.feels_like)??s(e.apparentTemperature),c=o(n?.condition)??o(e.condition),l=s(n?.humidity)??s(e.humidity),u=w(n?.wind??e.wind),d=s(n?.windSpeed)??s(n?.wind_speed)??s(e.windSpeed)??s(e.wind_speed)??u.speed,f=o(n?.windDirection)??o(n?.wind_direction)??o(e.windDirection)??o(e.wind_direction)??u.direction,m=p(e.units),h=o(m?.temperature)??o(n?.unit)??o(e.unit)??`F`,g=o(m?.speed)??o(e.windUnit)??o(e.wind_unit),_=a(e.hourly).map((e,t)=>({id:o(e.id)??String(t),time:o(e.time)??``,icon:o(e.icon)??o(e.condition)??`cloud.fill`,temp:s(e.tempC)??s(e.temp)??s(e.temperature),tempC:s(e.tempC)})),v=a([e.forecast,e.daily,e.days].find(Array.isArray)).map((e,t)=>({id:o(e.id)??String(t),day:o(e.day)??o(e.date),dayLabel:o(e.dayLabel)??o(e.date),icon:o(e.icon)??o(e.condition)??`cloud.fill`,low:s(e.low),high:s(e.high),lowC:s(e.lowC),highC:s(e.highC),precip:s(e.precip)??s(e.precipitation)??s(e.precipitationProbability),condition:o(e.condition)}));return{location:t,currentTemp:r,feelsLike:i,condition:c,humidity:l,windSpeed:d,windDirection:f,windUnit:g,unit:h,hourly:_.length>0?_:void 0,forecast:v.length>0?v:void 0}}function E(e){return e*9/5+32}function D(e){return(e-32)*5/9}function O(e,t,n){if(e===void 0)return null;let r=e;return t&&!n&&(r=D(e)),!t&&n&&(r=E(e)),`${Math.round(r)}`}function k(e,t,n){return e.tempC===void 0?e.temp===void 0?null:O(e.temp,t,n):O(e.tempC,!1,n)}function A(e,t,n){return e.lowC===void 0?O(e.low,t,n):O(e.lowC,!1,n)}function j(e,t,n){return e.highC===void 0?O(e.high,t,n):O(e.highC,!1,n)}var M=n();function N({icon:e,size:t=20}){let{icon:n,className:r}=C(e);return(0,M.jsx)(n,{width:t,height:t,className:r})}function P({useFahrenheit:e,onToggle:t}){return(0,M.jsxs)(`div`,{className:`flex overflow-hidden rounded-md border border-[var(--border-element)]`,children:[(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!0),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-[var(--primary-base)] text-[var(--content-inset)]`:`bg-transparent text-[var(--content-quiet)]`),children:`°F`}),(0,M.jsx)(`button`,{type:`button`,onClick:()=>t(!1),className:i(`px-2 py-0.5 text-body-small-default transition-colors`,e?`bg-transparent text-[var(--content-quiet)]`:`bg-[var(--primary-base)] text-[var(--content-inset)]`),children:`°C`})]})}function F({data:e,sourceIsFahrenheit:t,useFahrenheit:n,onToggle:r}){let i=e.location,a=O(e.currentTemp,t,n),o=O(e.feelsLike,t,n),s=n?`F`:`C`,c=e.forecast?.[0],l=c?j(c,t,n):null,u=c?A(c,t,n):null,p=null;return e.windSpeed!==void 0&&(p=`${Math.round(e.windSpeed)} ${e.windUnit??`mph`}`,e.windDirection&&(p=`${e.windDirection} ${p}`)),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-body-medium-default text-[var(--content-tertiary)]`,children:i}),a!==null&&(0,M.jsxs)(`div`,{className:`mt-1 text-4xl font-light text-[var(--content-default)]`,children:[a,`°`,s]}),e.condition&&(0,M.jsx)(`div`,{className:`mt-0.5 text-body-small-default text-[var(--content-quiet)]`,children:e.condition})]}),(0,M.jsx)(P,{useFahrenheit:n,onToggle:r})]}),(0,M.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-3`,children:[o!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`Feels like `,o,`°`]}),l!==null&&u!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-quiet)]`,children:[`H:`,l,`° L:`,u,`°`]}),p&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(f,{width:12,height:12}),p]}),e.humidity!==void 0&&(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-full bg-[var(--tag-bg-neutral)] px-2 py-0.5 text-label-medium-default text-[var(--content-tertiary)]`,children:[(0,M.jsx)(d,{width:12,height:12}),e.humidity,`%`]})]})]})}function I({hourly:e,sourceIsFahrenheit:t,useFahrenheit:n}){return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex gap-3 overflow-x-auto`,children:e.map((e,r)=>{let i=e.time.toLowerCase()===`now`,a=k(e,t,n);return(0,M.jsxs)(`div`,{className:`flex min-w-[3rem] shrink-0 flex-col items-center gap-1`,children:[(0,M.jsx)(`span`,{className:i?`text-body-small-emphasised text-[var(--content-default)]`:`text-label-medium-default text-[var(--content-quiet)]`,children:i?`Now`:e.time}),(0,M.jsx)(N,{icon:e.icon,size:18}),a!==null&&(0,M.jsxs)(`span`,{className:`text-body-small-default text-[var(--content-default)]`,children:[a,`°`]})]},e.id??r)})})})}function L({forecast:e,currentTemp:t,sourceIsFahrenheit:n,useFahrenheit:r}){let{globalMin:a,globalMax:o}=(0,y.useMemo)(()=>{let t=1/0,n=-1/0;for(let r of e){let e=r.lowC??r.low,i=r.highC??r.high;e!==void 0&&e<t&&(t=e),i!==void 0&&i>n&&(n=i)}return{globalMin:t===1/0?0:t,globalMax:n===-1/0?100:n}},[e]),s=o-a||1;return(0,M.jsx)(`div`,{className:`mt-3 border-t border-[var(--border-element)] pt-3`,children:(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map((e,c)=>{let l=e.dayLabel??e.day??`Day ${c+1}`,u=l.toLowerCase()===`today`,d=A(e,n,r),f=j(e,n,r),p=e.precip,m=e.lowC??e.low??a,h=e.highC??e.high??o,g=(m-a)/s*100,_=(h-a)/s*100,v=Math.max(_-g,2),y=null;if(u&&t!==void 0){let r=(e.lowC!==void 0||e.highC!==void 0)&&n?(t-32)*5/9:t;y=h===m?50:(Math.max(m,Math.min(h,r))-m)/(h-m)*100}return(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`span`,{className:i(`w-12 shrink-0 truncate text-body-small-default`,u?`text-[var(--content-default)]`:`text-[var(--content-quiet)]`),children:l}),(0,M.jsxs)(`div`,{className:`flex w-10 shrink-0 items-center justify-center gap-0.5`,children:[(0,M.jsx)(N,{icon:e.icon,size:16}),p!==void 0&&p>0&&(0,M.jsxs)(`span`,{className:`text-label-small-default text-blue-400`,children:[Math.round(p),`%`]})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-faint)]`,children:d===null?`--`:`${d}°`}),(0,M.jsxs)(`div`,{className:`relative h-1.5 flex-1 overflow-hidden rounded-full bg-[var(--border-subtle)]`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 h-full rounded-full bg-[var(--primary-base)]`,style:{left:`${g}%`,width:`${v}%`}}),y!==null&&(0,M.jsx)(`div`,{className:`absolute top-1/2 h-2.5 w-2.5 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-[var(--aux-white)] bg-[var(--aux-white)] shadow-sm`,style:{left:`${g+y/100*v}%`}})]}),(0,M.jsx)(`span`,{className:`w-7 shrink-0 text-right text-body-small-default text-[var(--content-default)]`,children:f===null?`--`:`${f}°`})]},e.id??c)})})})}function R({templateData:e,fallback:t}){let n=(0,y.useMemo)(()=>T(e),[e]),r=n?.unit?.toUpperCase()===`F`||n?.unit?.toLowerCase()===`fahrenheit`,[i,a]=(0,y.useState)(null),o=i??r;return!n||n.currentTemp===void 0&&!n.forecast?.length?t??null:(0,M.jsxs)(`div`,{className:`mt-3`,children:[(0,M.jsx)(F,{data:n,sourceIsFahrenheit:r,useFahrenheit:o,onToggle:a}),n.hourly&&n.hourly.length>0&&(0,M.jsx)(I,{hourly:n.hourly,sourceIsFahrenheit:r,useFahrenheit:o}),n.forecast&&n.forecast.length>0&&(0,M.jsx)(L,{forecast:n.forecast,currentTemp:n.currentTemp,sourceIsFahrenheit:r,useFahrenheit:o})]})}export{R as WeatherForecastDisplay};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./button-amTXFI-2.js";import{d as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{u as r}from"./local-mode-grqHUoNh.js";import{c as i}from"./routes-BbeIx_F9.js";import{t as a}from"./use-onboarding-login-Bo_t51AV.js";import{rn as o}from"./index-
|
|
1
|
+
import{t as e}from"./button-amTXFI-2.js";import{d as t}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{t as n}from"./jsx-runtime-CVSDxk6A.js";import{u as r}from"./local-mode-grqHUoNh.js";import{c as i}from"./routes-BbeIx_F9.js";import{t as a}from"./use-onboarding-login-Bo_t51AV.js";import{rn as o}from"./index-CB4MRaH-.js";var s=n();function c(){let n=t(),{loading:c,error:l,login:u,cancel:d}=a();return(0,s.jsx)(o,{children:(0,s.jsx)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-xl flex-col items-center px-6 pb-40 text-[var(--content-default)]`,children:(0,s.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,s.jsx)(`h1`,{className:`text-3xl font-semibold tracking-tight`,style:{animation:`fadeInUp 0.5s ease-out 0.1s both`},children:`Welcome to Vellum`}),(0,s.jsx)(`p`,{className:`mt-3 text-body-medium-lighter text-[var(--content-tertiary)]`,style:{animation:`fadeInUp 0.5s ease-out 0.3s both`},children:`Your own personal intelligence is just a step away.`}),l&&(0,s.jsx)(`p`,{className:`mt-4 text-body-small-default text-[var(--system-negative-strong)]`,children:l}),(0,s.jsxs)(`div`,{className:`mt-10 flex w-full max-w-sm flex-col gap-3`,style:{animation:`fadeInUp 0.5s ease-out 0.5s both`},children:[(0,s.jsx)(e,{variant:`primary`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:c?d:()=>void u(),children:c?`Cancel`:`Log In`}),(0,s.jsx)(e,{variant:`ghost`,size:`regular`,fullWidth:!0,className:`h-11 text-base`,onClick:()=>{c&&d(),r()?n(i.selectAssistant):n(i.onboarding.hosting)},children:`Continue without account`})]})]})})})}export{c as WelcomeScreen};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-D5f7kt80.js";import{t as a}from"./arrow-left-DI9551VI.js";import{n as o,r as s,t as c}from"./metric-card-
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{t as r}from"./jsx-runtime-CVSDxk6A.js";import{t as i}from"./typography-D5f7kt80.js";import{t as a}from"./arrow-left-DI9551VI.js";import{n as o,r as s,t as c}from"./metric-card-DLcg5ELt.js";import{t as l}from"./ban-CVKGuUAQ.js";import{t as u}from"./chevron-right-DqqmezXC.js";import{t as d}from"./circle-check-VSiny8yl.js";import{t as f}from"./triangle-alert-Z0Gq0IuB.js";import{t as p}from"./x-CkSVp1Ok.js";import"./src-L2mYMShd.js";import{n as m,r as h,t as g}from"./workflow-status-ZrbiLW5D.js";import{t as _}from"./proxy-BzlH_XAe.js";import{t as v}from"./AnimatePresence-C8APSgIu.js";import{t as y}from"./use-reduced-motion-CcGT6CHV.js";import{t as b}from"./three-dot-indicator-BVtP8eei.js";import{Ci as x,Na as S,et as C,gi as w,nt as T,pi as E,rt as D}from"./index-CB4MRaH-.js";import{t as O}from"./status-badge-pill-BopXdkRS.js";var k=e(t(),1),A=r();function j({onClick:e,ariaLabel:t}){return(0,A.jsxs)(`button`,{type:`button`,"aria-label":t,onClick:e,className:`flex h-8 shrink-0 cursor-pointer items-center gap-1.5 rounded-lg border border-[var(--system-negative-strong)] bg-transparent px-2.5 py-1.5 text-[var(--system-negative-strong)] transition-colors hover:bg-[var(--system-negative-weak)]`,children:[(0,A.jsx)(x,{className:`h-3 w-3`,fill:`currentColor`}),(0,A.jsx)(i,{variant:`label-small-default`,children:`Stop`})]})}function M({title:e,body:t,emptyText:n}){return(0,A.jsxs)(`div`,{className:`mb-5`,children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-2 text-[var(--content-emphasised)]`,children:e}),t?(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`whitespace-pre-wrap break-words leading-relaxed text-[var(--content-default)]`,children:t}):(0,A.jsx)(i,{variant:`body-medium-lighter`,as:`p`,className:`text-[var(--content-tertiary)]`,children:n})]})}function N({leaf:e}){let t=e.status===`running`?`Running…`:`No result summary`;return(0,A.jsxs)(`div`,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-2 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(S,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens??0,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens??0,format:e=>o(Math.round(e)),label:`Output`})]}),(0,A.jsx)(M,{title:`Prompt`,body:e.promptSummary,emptyText:`No prompt summary`}),(0,A.jsx)(M,{title:`Result`,body:e.resultSummary,emptyText:t})]})}function P({status:e}){return(0,A.jsx)(O,{color:m(e),label:h(e)})}function F(e){switch(e){case`completed`:return`var(--system-positive-strong)`;case`failed`:return`var(--system-negative-strong)`;case`cancelled`:return`var(--content-secondary)`;default:return`var(--primary-base)`}}function I(e){switch(e){case`completed`:return`Completed`;case`failed`:return`Failed`;case`cancelled`:return`Cancelled`;default:return`Running`}}function L({status:e}){return(0,A.jsx)(O,{color:F(e),label:I(e)})}function R({status:e}){let t=y(),n=`h-3.5 w-3.5 shrink-0`,r;return r=e===`running`?(0,A.jsx)(b,{className:`shrink-0`,dotSize:4,gap:2}):e===`completed`?(0,A.jsx)(d,{className:n,style:{color:`var(--system-positive-strong)`}}):e===`failed`?(0,A.jsx)(f,{className:n,style:{color:`var(--system-negative-strong)`}}):(0,A.jsx)(l,{className:n,style:{color:`var(--content-secondary)`},role:`img`,"aria-label":`Cancelled`}),(0,A.jsx)(v,{mode:`wait`,initial:!1,children:(0,A.jsx)(_.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:t?{duration:0}:{duration:.15,ease:[.16,1,.3,1]},className:`flex shrink-0 items-center`,children:r},e)})}function z({runId:e,leaf:t,components:n,onSelect:r}){let a=t.label??`Subagent ${t.seq}`,o=t.promptSummary,s=C(`${e}:${t.seq}`);return(0,A.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Open ${a} details`,className:`flex w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] px-2 py-1.5 text-left transition-colors hover:bg-[var(--surface-overlay)]`,children:(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,A.jsx)(R,{status:t.status}),n?(0,A.jsx)(D,{components:n,bodyShapeId:s.bodyShape,eyeStyleId:s.eyeStyle,colorId:s.color,size:16}):(0,A.jsx)(`div`,{style:{width:16,height:16,flexShrink:0},"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-medium-default`,title:a,className:`max-w-[60%] shrink-0 truncate text-[var(--content-default)]`,children:a}),o&&(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{"aria-hidden":!0,className:`shrink-0 text-[var(--content-tertiary)] opacity-10`,children:`|`}),(0,A.jsx)(i,{variant:`body-medium-lighter`,title:o,className:`min-w-0 truncate text-[var(--content-tertiary)]`,children:o})]})]})})}function B({entry:e,onClose:t,onStop:r,onRequestJournal:l}){let d=g(e.status),f=y(),m=e.label??e.runId,h=e.agentsSpawned||e.leaves.size,v=T(),b=[...e.leaves.values()].sort((e,t)=>e.seq-t.seq),[x,O]=(0,k.useState)(null),[M,F]=(0,k.useState)(e.runId);M!==e.runId&&(F(e.runId),O(null));let I=x==null?void 0:e.leaves.get(x),R=I?C(`${e.runId}:${I.seq}`):void 0,B=(0,k.useCallback)(()=>O(null),[]),V=I?I.label??`Subagent ${I.seq}`:``,H=I?V:m,U=d?`live`:`final`;return(0,k.useEffect)(()=>{l?.(e.runId)},[e.runId,U,l]),(0,A.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden rounded-xl bg-[var(--surface-lift)]`,children:[I&&(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-b border-[var(--border-hover)] px-5 py-3`,children:[(0,A.jsx)(`button`,{type:`button`,onClick:B,title:m,className:`min-w-0 shrink cursor-pointer truncate text-left text-[var(--content-default)] hover:underline`,children:(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,children:m})}),(0,A.jsx)(u,{className:`h-2.5 w-2.5 shrink-0 text-[var(--content-tertiary)]`,"aria-hidden":!0}),(0,A.jsx)(i,{variant:`body-small-default`,as:`span`,title:V,className:`min-w-0 shrink truncate text-[var(--content-secondary)]`,children:V})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 items-center gap-3 border-b border-[var(--border-hover)] px-5 py-4`,children:[I&&(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(a,{}),onClick:B,"aria-label":`Back to subagents`,tooltip:`Back`,className:`shrink-0 rounded-lg`}),I?v&&R?(0,A.jsx)(D,{components:v,bodyShapeId:R.bodyShape,eyeStyleId:R.eyeStyle,colorId:R.color,size:32}):(0,A.jsx)(`div`,{style:{width:32,height:32,flexShrink:0},"aria-hidden":!0}):(0,A.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-[6px] bg-[var(--surface-overlay)]`,children:(0,A.jsx)(E,{className:`h-4 w-4`,style:{color:`var(--content-secondary)`}})}),(0,A.jsx)(i,{variant:`title-medium`,title:H,className:`min-w-0 shrink truncate text-[var(--content-default)]`,children:H}),I?(0,A.jsx)(L,{status:I.status}):(0,A.jsx)(P,{status:e.status}),(0,A.jsx)(`span`,{className:`flex-1`}),d&&r&&(0,A.jsx)(j,{onClick:()=>r(e.runId),ariaLabel:`Stop workflow`}),(0,A.jsx)(n,{variant:`outlined`,iconOnly:(0,A.jsx)(p,{}),onClick:t,"aria-label":`Close workflow detail`,tooltip:`Close`,className:`shrink-0 rounded-lg`})]}),(0,A.jsx)(`div`,{className:`flex-1 overflow-y-auto px-5 py-5`,children:(0,A.jsx)(_.div,{initial:{opacity:0},animate:{opacity:1},transition:f?{duration:0}:{duration:.18,ease:[.16,1,.3,1]},children:I?(0,A.jsx)(N,{leaf:I}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(`div`,{className:`mb-5 grid grid-cols-3 gap-3`,children:[(0,A.jsx)(c,{icon:(0,A.jsx)(S,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.inputTokens,format:e=>o(Math.round(e)),label:`Input`}),(0,A.jsx)(c,{icon:(0,A.jsx)(s,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:e.outputTokens,format:e=>o(Math.round(e)),label:`Output`}),(0,A.jsx)(c,{icon:(0,A.jsx)(w,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-secondary)`}}),target:h,format:e=>o(Math.round(e)),label:`Agents`})]}),(0,A.jsxs)(`div`,{children:[(0,A.jsx)(i,{variant:`body-medium-default`,as:`h3`,className:`mb-4 text-[var(--content-emphasised)]`,children:`Subagents`}),b.length===0?(0,A.jsx)(i,{variant:`body-small-default`,className:`py-4 text-center text-[var(--content-tertiary)]`,children:`No subagents yet`}):(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:b.map(t=>(0,A.jsx)(z,{runId:e.runId,leaf:t,components:v,onSelect:()=>O(t.seq)},t.seq))})]})]})},I?String(I.seq):`list`)})]})}export{B as WorkflowDetailPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./queryOptions-BtNi-_9H.js";import{t as l}from"./createLucideIcon-IRfcSUxS.js";import{t as u}from"./chevron-down-qD-re7AW.js";import{t as d}from"./chevron-right-DqqmezXC.js";import{t as f}from"./menu-Dy5QbnTj.js";import{t as p}from"./download-CAuK-nZ6.js";import{t as m}from"./file-text-CYJz-GvF.js";import{t as h}from"./file-DsyJLS2u.js";import{t as g}from"./loader-circle-Cz7opInR.js";import{t as _}from"./pencil-CUIr0IFo.js";import{t as v}from"./plus-DItfr5ux.js";import{t as y}from"./x-CkSVp1Ok.js";import{E as b}from"./src-B2IjVySQ.js";import{t as x}from"./input-CoUmPnRU.js";import{t as S}from"./modal-D5nLWNN9.js";import{n as C,t as w}from"./panel-item-CouW2A55.js";import{t as T}from"./confirm-dialog-CSkhRFRk.js";import{n as E,t as D}from"./file-markdown-BXUvAQ24.js";import{Ar as O,Fr as k,Mr as A,Or as j,Pr as M,jr as N,kr as P}from"./sdk.gen-BwnFjFcp.js";import{n as F}from"./native-file-Cn3RbQbT.js";import{ca as I,da as ee,fa as te,hi as L,ia as R,ji as ne,la as z,vr as B,yi as V}from"./index-CSefSVJO.js";import{t as H}from"./use-active-assistant-id-BNRMo_Mi.js";import{n as U,t as W}from"./mobile-sidebar-drawer-3LqMCZgK.js";import{i as G,n as re,r as K,t as q}from"./file-editor-BbrbkQCm.js";import{t as J}from"./format-file-size-D7iZejgy.js";var ie=l(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ae=l(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),oe=l(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),Y=l(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),X=e(t(),1);async function se(e){let{data:t,error:n}=await P({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await F(t,e.filename)}function ce(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function le(e,t){return ce(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function ue(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function Z(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Q=s();function de(e){return c({queryFn:async()=>{let{data:t,error:n}=await O({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function fe({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=m;return n.startsWith(`image/`)?r=R:n.startsWith(`video/`)?r=L:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=h),(0,Q.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Q.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function pe({viewMode:e,onChange:t}){return(0,Q.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Q.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function $({name:e,mimeType:t,size:n,rightContent:r}){return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(fe,{mimeType:t}),(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:J(n)})]}),r]})}function me({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await P({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Q.jsx)(g,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function he({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(!1),f=(0,X.useCallback)(async()=>{d(!1),l(!0);try{await se({assistantId:e,path:t,filename:r,showHidden:s})}catch{d(!0)}finally{l(!1)}},[e,t,r,s]);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:r,mimeType:i,size:a}),(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Q.jsx)(h,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Q.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Q.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:J(a,`Unknown size`)}),o&&(0,Q.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Q.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Q.jsx)(g,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(p,{"aria-hidden":!0}),onClick:f,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),u&&(0,Q.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function ge({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:m}=a({...de({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[h,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;_(e=>e==null?e:n(e)),y(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,X.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);_(e=>e!=null&&t(e)?null:e),y(e=>e!=null&&t(e.path)?null:e)},[d]);let b=h!=null&&h===t,x=p?.content??``,S=v?.path===t?v.content:x,C=()=>{_(null),y(null)},w=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await k({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{_(e=>e===t.path?null:e),y(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),T=S!==x,O=(0,X.useCallback)(()=>{t&&T&&!w.isPending&&w.mutate({path:t,content:S})},[t,T,w,S]);if(!t)return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Q.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Q.jsx)(oe,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(m)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(g,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let A=p.mimeType??`application/octet-stream`,j=p.name??t.split(`/`).pop()??t,M=E(j,A),N=le(j,A),P=p.content!=null&&!M&&!N,F=t?Z(t):!0,I=b&&(0,Q.jsx)(re,{isDirty:T,isSaving:w.isPending,error:w.isError?`Save failed`:null,onSave:O,onDiscard:C});if(M&&p.content!=null){let e=b?S:p.content;return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&C(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(q,{content:e,fileName:j,mimeType:A,showEdit:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?C():_(t)}),s===`preview`?(0,Q.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Q.jsx)(D,{content:e})}):b?(0,Q.jsx)(K,{value:S,onChange:e=>y({path:t,content:e}),onSave:O}):(0,Q.jsx)(G,{content:p.content,readOnly:F,onStartEdit:()=>_(t)})]}),I]})}if(N&&p.content!=null){let e=b?S:p.content,n=ue(e);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&C(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(q,{content:s===`preview`?n:e,downloadContent:e,fileName:j,mimeType:A,showEdit:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?C():_(t)}),s===`preview`?(0,Q.jsx)(G,{content:n,readOnly:!0,whiteSpace:`pre`}):b?(0,Q.jsx)(K,{value:S,onChange:e=>y({path:t,content:e}),onSave:O}):(0,Q.jsx)(G,{content:p.content,readOnly:F,onStartEdit:()=>_(t)})]}),I]})}return P?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,size:p.size}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(q,{content:b?S:p.content??``,fileName:j,mimeType:A,showEdit:!F,isEditing:b,onToggleEdit:()=>b?C():_(t)}),b?(0,Q.jsx)(K,{value:S,onChange:e=>y({path:t,content:e}),onSave:O}):(0,Q.jsx)(G,{content:p.content??``,readOnly:F,onStartEdit:()=>_(t)})]}),I]}):A.startsWith(`image/`)||A.startsWith(`video/`)?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,size:p.size}),(0,Q.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Q.jsx)(me,{assistantId:e,path:t,mimeType:A,showHidden:r})})]}):(0,Q.jsx)(he,{assistantId:e,path:t,name:j,mimeType:A,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function _e(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}function ve(e){return c({queryFn:async()=>{let t={};e.query?.path&&(t.path=e.query.path),e.query?.showHidden&&(t.showHidden=`true`),e.query?.includeDirSizes&&(t.includeDirSizes=`true`);let{data:n,error:r}=await M({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}async function ye(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await M({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function be({entry:e}){return e.type===`directory`?(0,Q.jsx)(I,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Q.jsx)(R,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Q.jsx)(L,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(m,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function xe({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h}){let g=e.path??``,v=e.name??``,y=e.type===`directory`,x=n.has(g),S=r===g,C=v.startsWith(`.`),w=!Z(g),T=y&&(x||s.length>0),{data:E}=a({...ve({path:{assistant_id:t},query:{path:g,showHidden:i,includeDirSizes:o===`size`}}),enabled:y&&T}),D=(0,X.useMemo)(()=>_e(E?.entries??[],o),[E?.entries,o]),O=s===``||v.toLowerCase().includes(s);if(s!==``&&!y&&!O)return null;let k=(0,Q.jsxs)(`button`,{onClick:()=>{y?c(g):l(g)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${h*14+8}px`,paddingRight:`8px`,color:S?`var(--content-default)`:C?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:S?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:C&&!S?.7:1},children:[y?T?(0,Q.jsx)(u,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(d,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Q.jsx)(be,{entry:e}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:v}),e.size!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:J(e.size)})]});return(0,Q.jsxs)(`div`,{children:[w?(0,Q.jsxs)(b.Root,{children:[(0,Q.jsx)(b.Trigger,{children:k}),(0,Q.jsxs)(b.Content,{children:[y&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(z,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`file`,parentPath:g}),children:`New File`}),(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`folder`,parentPath:g}),children:`New Folder`}),(0,Q.jsx)(b.Separator,{})]}),(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(V,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:g,name:v,isDirectory:y}),children:`Delete`}),(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(_,{className:`h-3.5 w-3.5`}),onSelect:()=>p({path:g,name:v,isDirectory:y}),children:`Rename`})]})]}):k,y&&T&&D.length>0&&(0,Q.jsx)(`div`,{children:D.map(e=>(0,Q.jsx)(xe,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h+1},e.path))})]})}function Se({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,X.useRef)(null),[d,f]=(0,X.useState)(a??``),p=d.trim(),m=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),h=p.length>0&&!m&&!c;return(0,Q.jsx)(S.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Q.jsx)(S.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&s(p)},children:[(0,Q.jsx)(S.Header,{children:(0,Q.jsx)(S.Title,{children:e})}),(0,Q.jsx)(S.Body,{children:(0,Q.jsx)(x,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(m?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Q.jsxs)(S.Footer,{children:[(0,Q.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Q.jsx)(n,{type:`submit`,variant:`primary`,disabled:!h,children:c?i:r})]})]})})})}function Ce({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:p,onPathDeleted:m,onPathRenamed:h}){let g=i(),[_,v]=(0,X.useState)(``),b=_.trim().toLowerCase(),[S,C]=(0,X.useState)(!1),[w,E]=(0,X.useState)(null),[D,O]=(0,X.useState)(null),M=(0,X.useCallback)(()=>{E(null),O(null)},[]),{data:P,isLoading:F}=a(ve({path:{assistant_id:e},query:{showHidden:s,includeDirSizes:c===`size`}})),I=(0,X.useMemo)(()=>_e(P?.entries??[],c),[P?.entries,c]),L=(0,X.useCallback)(()=>{for(let e of[`assistantsWorkspaceTreeRetrieve`,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])g.invalidateQueries({queryKey:[e]})},[g]),R=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await ye(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await k({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await N({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{M(),L(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{O(e instanceof Error?e.message:`Failed to create.`)}}),z=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await ye(e,r,t.newName,i);let{error:o,response:s}=await A({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{M(),L(),h(e,t)},onError:e=>{O(e instanceof Error?e.message:`Failed to rename.`)}}),B=(0,X.useCallback)(e=>{O(null),E({type:`create`,...e})},[]),V=(0,X.useCallback)(e=>{O(null),E({type:`rename`,path:e.path,name:e.name})},[]),[H,U]=(0,X.useState)(null),W=o({mutationFn:async t=>{let{error:n,response:r}=await j({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{U(null),L(),m(e.path)}}),G=(0,X.useCallback)(e=>{W.reset(),U(e)},[W]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Q.jsx)(ae,{"aria-hidden":!0}):(0,Q.jsx)(ie,{"aria-hidden":!0}),onClick:()=>p(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Q.jsx)(ee,{"aria-hidden":!0}):(0,Q.jsx)(te,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(we,{open:S,onOpenChange:C,onSelectKind:e=>{C(!1),B({kind:e,parentPath:``})}})]})]}),(0,Q.jsx)(`div`,{className:`px-3 py-2`,children:(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(x,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Search files`,leftIcon:(0,Q.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),_&&(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(y,{"aria-hidden":!0}),onClick:()=>v(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:F?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):I.length?I.map(n=>(0,Q.jsx)(xe,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:b,onToggleExpand:l,onSelectPath:d,onRequestDelete:G,onRequestRename:V,onRequestCreate:B,depth:0},n.path)):(0,Q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),w?.type===`create`&&(0,Q.jsx)(Se,{title:w.kind===`file`?`New File`:`New Folder`,placeholder:w.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:M,onConfirm:e=>{O(null),R.mutate({kind:w.kind,parentPath:w.parentPath,name:e})},pending:R.isPending,error:D},`create-${w.kind}-${w.parentPath}`),w?.type===`rename`&&(0,Q.jsx)(Se,{title:`Rename`,placeholder:w.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:w.name,onCancel:M,onConfirm:e=>{if(e===w.name){M();return}O(null),z.mutate({oldPath:w.path,newName:e})},pending:z.isPending,error:D},`rename-${w.path}`),(0,Q.jsx)(T,{open:H!==null,title:H?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Q.jsx)(`span`,{style:{color:`var(--content-default)`},children:H?.name}),H?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,W.error&&(0,Q.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:W.error.message})]}),confirmLabel:W.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:W.isPending,onConfirm:()=>{H&&W.mutate(H)},onCancel:()=>U(null)})]})}function we({open:e,onOpenChange:t,onSelectKind:r}){return B()?(0,Q.jsxs)(C.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(C.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(v,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(C.Content,{children:[(0,Q.jsx)(C.Header,{className:`sr-only`,children:(0,Q.jsx)(C.Title,{children:`Create new`})}),(0,Q.jsxs)(C.Body,{className:`pt-0`,children:[(0,Q.jsx)(w,{icon:z,label:`New File`,onSelect:()=>r(`file`)}),(0,Q.jsx)(w,{icon:Y,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Q.jsxs)(f.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(f.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(v,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(z,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Te(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function Ee({assistantId:e}){let[t,n]=r(),[i,a]=(0,X.useState)(()=>{let e=t.get(`file`);return e?Te(e):new Set}),[o,s]=(0,X.useState)(()=>t.get(`file`)),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{t.get(`file`)&&n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0})},[]);let m=(0,X.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,X.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,X.useState)(!1),v=(0,X.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,X.useState)(null),x=(0,X.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,X.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,X.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Q.jsx)(U,{onClick:()=>_(!0)})}),(0,Q.jsx)(W,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Q.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(ge,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function De(){return(0,Q.jsx)(Ee,{assistantId:H()})}export{De as WorkspacePage};
|
|
1
|
+
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./react-DJZBPgpf.js";import{t as n}from"./button-amTXFI-2.js";import{h as r}from"./chunk-5KNZJZUH-DdS6bb-3.js";import{n as i}from"./QueryClientProvider-DKhXIxGb.js";import{t as a}from"./useQuery-B45lW1Kk.js";import{t as o}from"./useMutation-Lj4VunQV.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./queryOptions-BtNi-_9H.js";import{t as l}from"./createLucideIcon-IRfcSUxS.js";import{t as u}from"./chevron-down-qD-re7AW.js";import{t as d}from"./chevron-right-DqqmezXC.js";import{t as f}from"./menu-Dy5QbnTj.js";import{t as p}from"./download-CAuK-nZ6.js";import{t as m}from"./file-text-CYJz-GvF.js";import{t as h}from"./file-DsyJLS2u.js";import{t as g}from"./loader-circle-Cz7opInR.js";import{t as _}from"./pencil-CUIr0IFo.js";import{t as v}from"./plus-DItfr5ux.js";import{t as y}from"./x-CkSVp1Ok.js";import{E as b}from"./src-L2mYMShd.js";import{t as x}from"./input-CoUmPnRU.js";import{t as S}from"./modal-D5nLWNN9.js";import{n as C,t as w}from"./panel-item-CouW2A55.js";import{t as T}from"./confirm-dialog-CSkhRFRk.js";import{n as E,t as D}from"./file-markdown-FUop375h.js";import{Ar as O,Fr as k,Mr as A,Or as j,Pr as M,jr as N,kr as P}from"./sdk.gen-BwnFjFcp.js";import{n as F}from"./native-file-Cn3RbQbT.js";import{ca as I,da as ee,fa as te,hi as L,ia as R,ji as ne,la as z,vr as B,yi as V}from"./index-CB4MRaH-.js";import{t as H}from"./use-active-assistant-id-BNRMo_Mi.js";import{n as U,t as W}from"./mobile-sidebar-drawer-BsmKpQs1.js";import{i as G,n as re,r as K,t as q}from"./file-editor-BbrbkQCm.js";import{t as J}from"./format-file-size-D7iZejgy.js";var ie=l(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),ae=l(`arrow-down-wide-narrow`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M11 4h10`,key:`1w87gc`}],[`path`,{d:`M11 8h7`,key:`djye34`}],[`path`,{d:`M11 12h4`,key:`q8tih4`}]]),oe=l(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),Y=l(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),X=e(t(),1);async function se(e){let{data:t,error:n}=await P({path:{assistant_id:e.assistantId},query:{path:e.path,...e.showHidden?{showHidden:`true`}:{}},parseAs:`blob`,throwOnError:!1});if(n||!(t instanceof Blob))throw Error(`Failed to download file`);await F(t,e.filename)}function ce(e){if(!e)return``;let t=e.indexOf(`;`);return(t===-1?e:e.slice(0,t)).trim()}function le(e,t){return ce(t)===`application/json`?!0:(e??``).toLowerCase().endsWith(`.json`)}function ue(e){try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function Z(e){return e.split(`/`).some(e=>e.startsWith(`.`))}var Q=s();function de(e){return c({queryFn:async()=>{let{data:t,error:n}=await O({path:e.path,query:{path:e.query.path,...e.query.showHidden?{showHidden:`true`}:{}}});if(n)throw n;return t},queryKey:[`assistantsWorkspaceFileRetrieve`,e]})}function fe({mimeType:e}){let t=e.indexOf(`;`),n=(t===-1?e:e.slice(0,t)).trim(),r=m;return n.startsWith(`image/`)?r=R:n.startsWith(`video/`)?r=L:!n.startsWith(`text/`)&&n!==`application/json`&&n!==`application/octet-stream`&&(r=h),(0,Q.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 10%, transparent)`},children:(0,Q.jsx)(r,{className:`h-3.5 w-3.5`,style:{color:`var(--content-default)`}})})}function pe({viewMode:e,onChange:t}){return(0,Q.jsx)(`div`,{className:`inline-flex rounded-md p-0.5`,style:{backgroundColor:`color-mix(in oklab, var(--content-default) 6%, transparent)`},children:[`preview`,`source`].map(r=>{let i=e===r;return(0,Q.jsx)(n,{variant:`ghost`,onClick:()=>t(r),className:`h-auto rounded border-0 px-2.5 py-1 text-body-small-default hover:bg-transparent`,style:{backgroundColor:i?`var(--surface-lift)`:`transparent`,color:i?`var(--content-default)`:`var(--content-tertiary)`,boxShadow:i?`0 1px 2px rgba(0,0,0,0.15)`:void 0},children:r===`preview`?`Preview`:`Source`},r)})})}function $({name:e,mimeType:t,size:n,rightContent:r}){return(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Q.jsx)(fe,{mimeType:t}),(0,Q.jsx)(`span`,{className:`truncate text-body-medium-default`,style:{color:`var(--content-default)`},children:e}),n!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-body-small-default`,style:{color:`var(--content-tertiary)`},children:J(n)})]}),r]})}function me({assistantId:e,path:t,mimeType:n,showHidden:r}){let{data:i,isLoading:o}=a({queryFn:async()=>{let n=await P({path:{assistant_id:e},query:{path:t,...r?{showHidden:`true`}:{}},parseAs:`blob`});if(n.error)throw n.error;return n.data},queryKey:[`assistantsWorkspaceFileContentRetrieve`,{assistantId:e,path:t,showHidden:r}],enabled:!!t}),[s,c]=(0,X.useState)(null);return(0,X.useEffect)(()=>{if(!i)return;let e=URL.createObjectURL(i);return c(e),()=>{URL.revokeObjectURL(e),c(null)}},[i]),o?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,Q.jsx)(g,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})}):s?n.startsWith(`image/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`img`,{src:s,alt:t.split(`/`).pop()??`image`,className:`max-h-[70vh] max-w-full rounded object-contain`})}):n.startsWith(`video/`)?(0,Q.jsx)(`div`,{className:`flex items-center justify-center p-4`,children:(0,Q.jsx)(`video`,{src:s,controls:!0,className:`max-h-[70vh] max-w-full rounded`})}):null:null}function he({assistantId:e,path:t,name:r,mimeType:i,size:a,modifiedAt:o,showHidden:s}){let[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(!1),f=(0,X.useCallback)(async()=>{d(!1),l(!0);try{await se({assistantId:e,path:t,filename:r,showHidden:s})}catch{d(!0)}finally{l(!1)}},[e,t,r,s]);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:r,mimeType:i,size:a}),(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-8`,children:(0,Q.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border p-6 text-center`,style:{borderColor:`var(--border-base)`,backgroundColor:`var(--surface-lift)`},children:[(0,Q.jsx)(h,{className:`mx-auto h-10 w-10`,style:{color:`var(--content-tertiary)`}}),(0,Q.jsx)(`p`,{className:`mt-3 text-body-medium-default`,style:{color:`var(--content-default)`},children:r}),(0,Q.jsxs)(`div`,{className:`mt-2 space-y-1`,children:[(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:i}),(0,Q.jsx)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:J(a,`Unknown size`)}),o&&(0,Q.jsxs)(`p`,{className:`text-body-small-default`,style:{color:`var(--content-secondary, var(--content-tertiary))`},children:[`Modified: `,new Date(o).toLocaleString()]})]}),(0,Q.jsx)(n,{variant:`outlined`,size:`compact`,leftIcon:c?(0,Q.jsx)(g,{className:`animate-spin`,"aria-hidden":!0}):(0,Q.jsx)(p,{"aria-hidden":!0}),onClick:f,disabled:c,"aria-label":`Download ${r}`,className:`mt-4`,children:c?`Downloading…`:`Download`}),u&&(0,Q.jsx)(`p`,{className:`mt-2 text-body-small-default`,style:{color:`var(--system-error)`},children:`Download failed. Try again.`})]})})]})}function ge({assistantId:e,selectedPath:t,showHidden:r,viewMode:s,onChangeViewMode:c,onBrowse:l,pathRename:u,pathDelete:d}){let f=i(),{data:p,isLoading:m}=a({...de({path:{assistant_id:e},query:{path:t??``,showHidden:r}}),enabled:!!t}),[h,_]=(0,X.useState)(null),[v,y]=(0,X.useState)(null);(0,X.useEffect)(()=>{if(!u)return;let{from:e,to:t}=u,n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;_(e=>e==null?e:n(e)),y(e=>e==null?e:{...e,path:n(e.path)})},[u]),(0,X.useEffect)(()=>{if(!d)return;let{path:e}=d,t=t=>t===e||t.startsWith(`${e}/`);_(e=>e!=null&&t(e)?null:e),y(e=>e!=null&&t(e.path)?null:e)},[d]);let b=h!=null&&h===t,x=p?.content??``,S=v?.path===t?v.content:x,C=()=>{_(null),y(null)},w=o({mutationFn:async({path:t,content:n})=>{let{error:r,response:i}=await k({path:{assistant_id:e},body:{path:t,content:n,encoding:`utf8`},throwOnError:!1});if(!i?.ok||r)throw Error(`Failed to save file`)},onSuccess:(e,t)=>{_(e=>e===t.path?null:e),y(e=>e?.path===t.path?null:e),f.invalidateQueries({queryKey:[`assistantsWorkspaceFileRetrieve`]})}}),T=S!==x,O=(0,X.useCallback)(()=>{t&&T&&!w.isPending&&w.mutate({path:t,content:S})},[t,T,w,S]);if(!t)return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-3`,children:[(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`Select a file to view`}),l&&(0,Q.jsx)(n,{type:`button`,onClick:l,leftIcon:(0,Q.jsx)(oe,{"aria-hidden":!0}),className:`sm:hidden`,children:`Browse files`})]});if(m)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(g,{className:`h-6 w-6 animate-spin`,style:{color:`var(--content-tertiary)`}})});if(!p)return(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,Q.jsx)(`p`,{className:`text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`File not found`})});let A=p.mimeType??`application/octet-stream`,j=p.name??t.split(`/`).pop()??t,M=E(j,A),N=le(j,A),P=p.content!=null&&!M&&!N,F=t?Z(t):!0,I=b&&(0,Q.jsx)(re,{isDirty:T,isSaving:w.isPending,error:w.isError?`Save failed`:null,onSave:O,onDiscard:C});if(M&&p.content!=null){let e=b?S:p.content;return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&C(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(q,{content:e,fileName:j,mimeType:A,showEdit:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?C():_(t)}),s===`preview`?(0,Q.jsx)(`div`,{className:`h-full overflow-auto px-6 py-4`,style:{color:`var(--content-default)`},children:(0,Q.jsx)(D,{content:e})}):b?(0,Q.jsx)(K,{value:S,onChange:e=>y({path:t,content:e}),onSave:O}):(0,Q.jsx)(G,{content:p.content,readOnly:F,onStartEdit:()=>_(t)})]}),I]})}if(N&&p.content!=null){let e=b?S:p.content,n=ue(e);return(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,rightContent:(0,Q.jsx)(pe,{viewMode:s,onChange:e=>{b&&C(),c(e)}})}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(q,{content:s===`preview`?n:e,downloadContent:e,fileName:j,mimeType:A,showEdit:!F&&s===`source`,isEditing:b,onToggleEdit:()=>b?C():_(t)}),s===`preview`?(0,Q.jsx)(G,{content:n,readOnly:!0,whiteSpace:`pre`}):b?(0,Q.jsx)(K,{value:S,onChange:e=>y({path:t,content:e}),onSave:O}):(0,Q.jsx)(G,{content:p.content,readOnly:F,onStartEdit:()=>_(t)})]}),I]})}return P?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,size:p.size}),(0,Q.jsxs)(`div`,{className:`relative flex-1 overflow-hidden`,children:[(0,Q.jsx)(q,{content:b?S:p.content??``,fileName:j,mimeType:A,showEdit:!F,isEditing:b,onToggleEdit:()=>b?C():_(t)}),b?(0,Q.jsx)(K,{value:S,onChange:e=>y({path:t,content:e}),onSave:O}):(0,Q.jsx)(G,{content:p.content??``,readOnly:F,onStartEdit:()=>_(t)})]}),I]}):A.startsWith(`image/`)||A.startsWith(`video/`)?(0,Q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Q.jsx)($,{name:j,mimeType:A,size:p.size}),(0,Q.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,Q.jsx)(me,{assistantId:e,path:t,mimeType:A,showHidden:r})})]}):(0,Q.jsx)(he,{assistantId:e,path:t,name:j,mimeType:A,size:p.size,modifiedAt:p.modifiedAt,showHidden:r})}function _e(e,t){if(t===`name`)return e;let n=e.slice();return n.sort((e,t)=>{let n=e.size??null,r=t.size??null;return n===null&&r===null?(e.name??``).localeCompare(t.name??``):n===null?1:r===null?-1:n===r?(e.name??``).localeCompare(t.name??``):r-n}),n}function ve(e){return c({queryFn:async()=>{let t={};e.query?.path&&(t.path=e.query.path),e.query?.showHidden&&(t.showHidden=`true`),e.query?.includeDirSizes&&(t.includeDirSizes=`true`);let{data:n,error:r}=await M({path:e.path,query:t});if(r)throw r;if(!n)throw Error(`Failed to load workspace tree`);return n},queryKey:[`assistantsWorkspaceTreeRetrieve`,e]})}async function ye(e,t,n,r){let i=n.toLowerCase(),a=r?.toLowerCase(),{data:o}=await M({path:{assistant_id:e},query:t?{path:t}:{}});if(o?.entries?.some(e=>{let t=(e.name??``).toLowerCase();return t===i&&t!==a}))throw Error(`"${n}" already exists here.`)}function be({entry:e}){return e.type===`directory`?(0,Q.jsx)(I,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`image/`)?(0,Q.jsx)(R,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):e.mimeType?.startsWith(`video/`)?(0,Q.jsx)(L,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(m,{className:`h-4 w-4 shrink-0`,style:{color:`var(--content-tertiary)`}})}function xe({entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h}){let g=e.path??``,v=e.name??``,y=e.type===`directory`,x=n.has(g),S=r===g,C=v.startsWith(`.`),w=!Z(g),T=y&&(x||s.length>0),{data:E}=a({...ve({path:{assistant_id:t},query:{path:g,showHidden:i,includeDirSizes:o===`size`}}),enabled:y&&T}),D=(0,X.useMemo)(()=>_e(E?.entries??[],o),[E?.entries,o]),O=s===``||v.toLowerCase().includes(s);if(s!==``&&!y&&!O)return null;let k=(0,Q.jsxs)(`button`,{onClick:()=>{y?c(g):l(g)},className:`flex w-full items-center gap-1.5 px-2 py-1 text-left text-body-medium-lighter transition-colors hover:bg-[var(--surface-hover)]`,style:{paddingLeft:`${h*14+8}px`,paddingRight:`8px`,color:S?`var(--content-default)`:C?`var(--content-tertiary)`:`var(--content-default)`,backgroundColor:S?`color-mix(in oklab, var(--primary-base) 12%, transparent)`:void 0,opacity:C&&!S?.7:1},children:[y?T?(0,Q.jsx)(u,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(d,{className:`h-3 w-3 shrink-0`,style:{color:`var(--content-tertiary)`}}):(0,Q.jsx)(`span`,{className:`h-3 w-3 shrink-0`}),(0,Q.jsx)(be,{entry:e}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:v}),e.size!=null&&(0,Q.jsx)(`span`,{className:`shrink-0 text-label-medium-default tabular-nums`,style:{color:`var(--content-tertiary)`},children:J(e.size)})]});return(0,Q.jsxs)(`div`,{children:[w?(0,Q.jsxs)(b.Root,{children:[(0,Q.jsx)(b.Trigger,{children:k}),(0,Q.jsxs)(b.Content,{children:[y&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(z,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`file`,parentPath:g}),children:`New File`}),(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>m({kind:`folder`,parentPath:g}),children:`New Folder`}),(0,Q.jsx)(b.Separator,{})]}),(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(V,{className:`h-3.5 w-3.5`}),onSelect:()=>f({path:g,name:v,isDirectory:y}),children:`Delete`}),(0,Q.jsx)(b.Item,{leftIcon:(0,Q.jsx)(_,{className:`h-3.5 w-3.5`}),onSelect:()=>p({path:g,name:v,isDirectory:y}),children:`Rename`})]})]}):k,y&&T&&D.length>0&&(0,Q.jsx)(`div`,{children:D.map(e=>(0,Q.jsx)(xe,{entry:e,assistantId:t,expandedPaths:n,selectedPath:r,showHidden:i,sortMode:o,searchLower:s,onToggleExpand:c,onSelectPath:l,onRequestDelete:f,onRequestRename:p,onRequestCreate:m,depth:h+1},e.path))})]})}function Se({title:e,placeholder:t,confirmLabel:r,pendingLabel:i,initialName:a,onCancel:o,onConfirm:s,pending:c,error:l}){let u=(0,X.useRef)(null),[d,f]=(0,X.useState)(a??``),p=d.trim(),m=p.length>0&&(/[/\\]/.test(p)||p===`.`||p===`..`),h=p.length>0&&!m&&!c;return(0,Q.jsx)(S.Root,{open:!0,onOpenChange:e=>{!e&&!c&&o()},children:(0,Q.jsx)(S.Content,{size:`sm`,hideCloseButton:!0,"aria-describedby":void 0,onOpenAutoFocus:e=>{e.preventDefault();let t=u.current;t&&(t.focus(),requestAnimationFrame(()=>{t.setSelectionRange(0,t.value.length)}))},onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation(),c||o()},children:(0,Q.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),h&&s(p)},children:[(0,Q.jsx)(S.Header,{children:(0,Q.jsx)(S.Title,{children:e})}),(0,Q.jsx)(S.Body,{children:(0,Q.jsx)(x,{ref:u,label:`Name`,value:d,onChange:e=>f(e.target.value),placeholder:t,errorText:l??(m?`Enter a single file or folder name without slashes.`:void 0),autoComplete:`off`,spellCheck:!1,fullWidth:!0})}),(0,Q.jsxs)(S.Footer,{children:[(0,Q.jsx)(n,{type:`button`,variant:`outlined`,onClick:o,disabled:c,children:`Cancel`}),(0,Q.jsx)(n,{type:`submit`,variant:`primary`,disabled:!h,children:c?i:r})]})]})})})}function Ce({assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,onToggleExpand:l,onExpandPath:u,onSelectPath:d,onToggleShowHidden:f,onChangeSortMode:p,onPathDeleted:m,onPathRenamed:h}){let g=i(),[_,v]=(0,X.useState)(``),b=_.trim().toLowerCase(),[S,C]=(0,X.useState)(!1),[w,E]=(0,X.useState)(null),[D,O]=(0,X.useState)(null),M=(0,X.useCallback)(()=>{E(null),O(null)},[]),{data:P,isLoading:F}=a(ve({path:{assistant_id:e},query:{showHidden:s,includeDirSizes:c===`size`}})),I=(0,X.useMemo)(()=>_e(P?.entries??[],c),[P?.entries,c]),L=(0,X.useCallback)(()=>{for(let e of[`assistantsWorkspaceTreeRetrieve`,`assistantsWorkspaceFileRetrieve`,`assistantsWorkspaceFileContentRetrieve`])g.invalidateQueries({queryKey:[e]})},[g]),R=o({mutationFn:async t=>{let n=t.parentPath?`${t.parentPath}/${t.name}`:t.name;await ye(e,t.parentPath,t.name);let{error:r,response:i}=t.kind===`file`?await k({path:{assistant_id:e},body:{path:n,content:``,encoding:`utf8`},throwOnError:!1}):await N({path:{assistant_id:e},body:{path:n},throwOnError:!1});if(r||!i?.ok)throw Error(typeof r==`string`?r:`Failed to create — check the name and try again.`);return{...t,path:n}},onSuccess:e=>{M(),L(),e.parentPath&&u(e.parentPath),e.kind===`file`?d(e.path):u(e.path)},onError:e=>{O(e instanceof Error?e.message:`Failed to create.`)}}),z=o({mutationFn:async t=>{let n=t.oldPath.lastIndexOf(`/`),r=n===-1?``:t.oldPath.slice(0,n),i=t.oldPath.slice(n+1),a=r?`${r}/${t.newName}`:t.newName;await ye(e,r,t.newName,i);let{error:o,response:s}=await A({path:{assistant_id:e},body:{oldPath:t.oldPath,newPath:a},throwOnError:!1});if(o||!s?.ok)throw Error(typeof o==`string`?o:`Failed to rename — check the name and try again.`);return{oldPath:t.oldPath,newPath:a}},onSuccess:({oldPath:e,newPath:t})=>{M(),L(),h(e,t)},onError:e=>{O(e instanceof Error?e.message:`Failed to rename.`)}}),B=(0,X.useCallback)(e=>{O(null),E({type:`create`,...e})},[]),V=(0,X.useCallback)(e=>{O(null),E({type:`rename`,path:e.path,name:e.name})},[]),[H,U]=(0,X.useState)(null),W=o({mutationFn:async t=>{let{error:n,response:r}=await j({path:{assistant_id:e},body:{path:t.path},throwOnError:!1});if(n||!r?.ok)throw Error(typeof n==`string`?n:`Failed to delete — try again.`);return t},onSuccess:e=>{U(null),L(),m(e.path)}}),G=(0,X.useCallback)(e=>{W.reset(),U(e)},[W]);return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between border-b px-3 py-2.5`,style:{borderColor:`var(--border-element)`},children:[(0,Q.jsx)(`span`,{className:`text-body-medium-default`,style:{color:`var(--content-secondary)`},children:`Files`}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:c===`size`?(0,Q.jsx)(ae,{"aria-hidden":!0}):(0,Q.jsx)(ie,{"aria-hidden":!0}),onClick:()=>p(c===`size`?`name`:`size`),"aria-label":c===`size`?`Sort by name`:`Sort by size`,title:c===`size`?`Sorted by size — switch to name`:`Sorted by name — switch to size`,tintColor:c===`size`?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:s?(0,Q.jsx)(ee,{"aria-hidden":!0}):(0,Q.jsx)(te,{"aria-hidden":!0}),onClick:f,"aria-label":s?`Hide hidden files`:`Show hidden files`,title:s?`Hide hidden files`:`Show hidden files`,tintColor:s?`var(--content-default)`:`var(--content-tertiary)`}),(0,Q.jsx)(we,{open:S,onOpenChange:C,onSelectKind:e=>{C(!1),B({kind:e,parentPath:``})}})]})]}),(0,Q.jsx)(`div`,{className:`px-3 py-2`,children:(0,Q.jsxs)(`div`,{className:`relative`,children:[(0,Q.jsx)(x,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Search files`,leftIcon:(0,Q.jsx)(ne,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),fullWidth:!0,spellCheck:!1,autoComplete:`off`}),_&&(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(y,{"aria-hidden":!0}),onClick:()=>v(``),"aria-label":`Clear search`,className:`absolute right-1.5 top-1/2 -translate-y-1/2`,tintColor:`var(--content-tertiary)`})]})}),(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto py-1`,children:F?(0,Q.jsx)(`div`,{className:`flex items-center justify-center py-8`,children:(0,Q.jsx)(`div`,{className:`h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent`,style:{color:`var(--content-tertiary)`}})}):I.length?I.map(n=>(0,Q.jsx)(xe,{entry:n,assistantId:e,expandedPaths:t,selectedPath:r,showHidden:s,sortMode:c,searchLower:b,onToggleExpand:l,onSelectPath:d,onRequestDelete:G,onRequestRename:V,onRequestCreate:B,depth:0},n.path)):(0,Q.jsx)(`p`,{className:`px-3 py-4 text-center text-body-medium-lighter`,style:{color:`var(--content-tertiary)`},children:`No files found`})}),w?.type===`create`&&(0,Q.jsx)(Se,{title:w.kind===`file`?`New File`:`New Folder`,placeholder:w.kind===`file`?`filename.md`:`folder-name`,confirmLabel:`Create`,pendingLabel:`Creating…`,onCancel:M,onConfirm:e=>{O(null),R.mutate({kind:w.kind,parentPath:w.parentPath,name:e})},pending:R.isPending,error:D},`create-${w.kind}-${w.parentPath}`),w?.type===`rename`&&(0,Q.jsx)(Se,{title:`Rename`,placeholder:w.name,confirmLabel:`Rename`,pendingLabel:`Renaming…`,initialName:w.name,onCancel:M,onConfirm:e=>{if(e===w.name){M();return}O(null),z.mutate({oldPath:w.path,newName:e})},pending:z.isPending,error:D},`rename-${w.path}`),(0,Q.jsx)(T,{open:H!==null,title:H?.isDirectory?`Delete Folder`:`Delete File`,message:(0,Q.jsxs)(Q.Fragment,{children:[`Are you sure you want to delete`,` `,(0,Q.jsx)(`span`,{style:{color:`var(--content-default)`},children:H?.name}),H?.isDirectory?` and all of its contents`:``,`? This cannot be undone.`,W.error&&(0,Q.jsx)(`span`,{className:`mt-2 block`,style:{color:`var(--system-negative-strong)`},children:W.error.message})]}),confirmLabel:W.isPending?`Deleting…`:`Delete`,destructive:!0,isPending:W.isPending,onConfirm:()=>{H&&W.mutate(H)},onCancel:()=>U(null)})]})}function we({open:e,onOpenChange:t,onSelectKind:r}){return B()?(0,Q.jsxs)(C.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(C.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(v,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(C.Content,{children:[(0,Q.jsx)(C.Header,{className:`sr-only`,children:(0,Q.jsx)(C.Title,{children:`Create new`})}),(0,Q.jsxs)(C.Body,{className:`pt-0`,children:[(0,Q.jsx)(w,{icon:z,label:`New File`,onSelect:()=>r(`file`)}),(0,Q.jsx)(w,{icon:Y,label:`New Folder`,onSelect:()=>r(`folder`)})]})]})]}):(0,Q.jsxs)(f.Root,{open:e,onOpenChange:t,children:[(0,Q.jsx)(f.Trigger,{asChild:!0,children:(0,Q.jsx)(n,{type:`button`,variant:`ghost`,size:`compact`,iconOnly:(0,Q.jsx)(v,{"aria-hidden":!0}),"aria-label":`Create new file or folder`,title:`New file or folder`,tintColor:`var(--content-tertiary)`})}),(0,Q.jsxs)(f.Content,{align:`end`,sideOffset:4,children:[(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(z,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`file`),children:`New File`}),(0,Q.jsx)(f.Item,{leftIcon:(0,Q.jsx)(Y,{className:`h-3.5 w-3.5`}),onSelect:()=>r(`folder`),children:`New Folder`})]})]})}function Te(e){let t=e.split(`/`),n=new Set;for(let e=1;e<t.length;e++)n.add(t.slice(0,e).join(`/`));return n}function Ee({assistantId:e}){let[t,n]=r(),[i,a]=(0,X.useState)(()=>{let e=t.get(`file`);return e?Te(e):new Set}),[o,s]=(0,X.useState)(()=>t.get(`file`)),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(()=>t.get(`sort`)===`size`?`size`:`name`),[f,p]=(0,X.useState)(`preview`);(0,X.useEffect)(()=>{t.get(`file`)&&n(e=>{let t=new URLSearchParams(e);return t.delete(`file`),t},{replace:!0})},[]);let m=(0,X.useCallback)(e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),h=(0,X.useCallback)(e=>{a(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n})},[]),[g,_]=(0,X.useState)(!1),v=(0,X.useCallback)(e=>{s(e),_(!1)},[]),[y,b]=(0,X.useState)(null),x=(0,X.useCallback)(e=>{let t=t=>t===e||t.startsWith(`${e}/`);s(e=>e!==null&&t(e)?null:e),a(e=>{let n=new Set([...e].filter(e=>!t(e)));return n.size===e.size?e:n}),b({path:e})},[]),[S,C]=(0,X.useState)(null),w={assistantId:e,expandedPaths:i,selectedPath:o,showHidden:c,sortMode:u,onToggleExpand:m,onExpandPath:h,onSelectPath:v,onToggleShowHidden:()=>l(e=>!e),onChangeSortMode:d,onPathDeleted:x,onPathRenamed:(0,X.useCallback)((e,t)=>{let n=n=>n===e?t:n.startsWith(`${e}/`)?t+n.slice(e.length):n;s(e=>e===null?e:n(e)),a(e=>{let t=!1,r=new Set;for(let i of e){let e=n(i);e!==i&&(t=!0),r.add(e)}return t?r:e}),C({from:e,to:t})},[])};return(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-4`,children:[(0,Q.jsx)(`div`,{className:`flex items-center sm:hidden`,children:(0,Q.jsx)(U,{onClick:()=>_(!0)})}),(0,Q.jsx)(W,{open:g,onClose:()=>_(!1),title:`Files`,children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-4 sm:grid-cols-[320px_1fr]`,children:[(0,Q.jsx)(`div`,{className:`hidden min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border sm:flex`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(Ce,{...w})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-xl border`,style:{backgroundColor:`var(--surface-overlay)`,borderColor:`var(--border-base)`},children:(0,Q.jsx)(ge,{assistantId:e,selectedPath:o,showHidden:c,viewMode:f,onChangeViewMode:p,onBrowse:()=>_(!0),pathRename:S,pathDelete:y})})]})]})}function De(){return(0,Q.jsx)(Ee,{assistantId:H()})}export{De as WorkspacePage};
|
package/dist/index.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<link rel="apple-touch-icon" href="/assistant/favicon.svg" />
|
|
11
11
|
<title>Vellum Assistant</title>
|
|
12
12
|
<script src="/assistant/theme-init.js"></script>
|
|
13
|
-
<script type="module" crossorigin src="/assistant/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/assistant/assets/index-CB4MRaH-.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assistant/assets/chunk-jRWAZmH_.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assistant/assets/preload-helper-BewR0kVT.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assistant/assets/is-electron-y5bNUVyG.js">
|
|
@@ -87,17 +87,17 @@
|
|
|
87
87
|
<link rel="modulepreload" crossorigin href="/assistant/assets/shortcut-keys-B2EE-634.js">
|
|
88
88
|
<link rel="modulepreload" crossorigin href="/assistant/assets/tag-CV4v7fRF.js">
|
|
89
89
|
<link rel="modulepreload" crossorigin href="/assistant/assets/toggle-CDfguvUz.js">
|
|
90
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/src-
|
|
91
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/file-markdown-
|
|
90
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/src-L2mYMShd.js">
|
|
91
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/file-markdown-FUop375h.js">
|
|
92
92
|
<link rel="modulepreload" crossorigin href="/assistant/assets/browser-BPZAXjRE.js">
|
|
93
93
|
<link rel="modulepreload" crossorigin href="/assistant/assets/chevron-left-BMF1xNfR.js">
|
|
94
94
|
<link rel="modulepreload" crossorigin href="/assistant/assets/download-CAuK-nZ6.js">
|
|
95
95
|
<link rel="modulepreload" crossorigin href="/assistant/assets/file-DsyJLS2u.js">
|
|
96
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/chat-markdown-message-
|
|
96
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/chat-markdown-message-D1TuEa01.js">
|
|
97
97
|
<link rel="modulepreload" crossorigin href="/assistant/assets/chat-B8mgARYR.js">
|
|
98
98
|
<link rel="modulepreload" crossorigin href="/assistant/assets/diagnostics-COsnZMe5.js">
|
|
99
99
|
<link rel="modulepreload" crossorigin href="/assistant/assets/conversation-store-BljZWolF.js">
|
|
100
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/risk-
|
|
100
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/risk-DZDIuOV1.js">
|
|
101
101
|
<link rel="modulepreload" crossorigin href="/assistant/assets/three-dot-indicator-BVtP8eei.js">
|
|
102
102
|
<link rel="modulepreload" crossorigin href="/assistant/assets/misc-BYQPh7vS.js">
|
|
103
103
|
<link rel="modulepreload" crossorigin href="/assistant/assets/AnimatePresence-C8APSgIu.js">
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
<link rel="modulepreload" crossorigin href="/assistant/assets/monitor-DfbL8_59.js">
|
|
109
109
|
<link rel="modulepreload" crossorigin href="/assistant/assets/sparkles-PGiR5v1g.js">
|
|
110
110
|
<link rel="modulepreload" crossorigin href="/assistant/assets/user-plus-DMh4_UTz.js">
|
|
111
|
-
<link rel="modulepreload" crossorigin href="/assistant/assets/site-favicon-
|
|
111
|
+
<link rel="modulepreload" crossorigin href="/assistant/assets/site-favicon-Dmyo6zmu.js">
|
|
112
112
|
<link rel="modulepreload" crossorigin href="/assistant/assets/composer-focus-BZr63Cvs.js">
|
|
113
113
|
<link rel="modulepreload" crossorigin href="/assistant/assets/by-tool-use-id-index-BokzI3ZP.js">
|
|
114
114
|
<link rel="modulepreload" crossorigin href="/assistant/assets/subagent-store-Bz4irJre.js">
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
<link rel="modulepreload" crossorigin href="/assistant/assets/plus-DItfr5ux.js">
|
|
169
169
|
<link rel="modulepreload" crossorigin href="/assistant/assets/refresh-cw-DevIHL7J.js">
|
|
170
170
|
<link rel="stylesheet" crossorigin href="/assistant/assets/src-CfUWwwYf.css">
|
|
171
|
-
<link rel="stylesheet" crossorigin href="/assistant/assets/index-
|
|
171
|
+
<link rel="stylesheet" crossorigin href="/assistant/assets/index-N8pxTgNQ.css">
|
|
172
172
|
<script>window.__VELLUM_CONFIG__={"webUrl":"https://www.vellum.ai","platformUrl":"https://platform.vellum.ai"}</script></head>
|
|
173
173
|
<body>
|
|
174
174
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/native-file-Cn3RbQbT.js","assets/chunk-jRWAZmH_.js","assets/preload-helper-BewR0kVT.js","assets/dist-DS5iJwBJ2.js","assets/pdf-CuY9CA7Q.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./chunk-jRWAZmH_.js";import{t}from"./capture-error-Dhiismgm.js";import{t as n}from"./react-DJZBPgpf.js";import{F as r,t as i}from"./button-amTXFI-2.js";import{t as a}from"./preload-helper-BewR0kVT.js";import{t as o}from"./useQuery-B45lW1Kk.js";import{t as s}from"./jsx-runtime-CVSDxk6A.js";import{t as c}from"./typography-D5f7kt80.js";import{t as l}from"./chevron-left-BMF1xNfR.js";import{t as u}from"./chevron-right-DqqmezXC.js";import{t as d}from"./download-CAuK-nZ6.js";import{t as f}from"./file-DsyJLS2u.js";import{t as p}from"./loader-circle-Cz7opInR.js";import{t as m}from"./x-CkSVp1Ok.js";import{a as h,m as g}from"./src-B2IjVySQ.js";import{n as _,t as v}from"./file-markdown-BXUvAQ24.js";import{l as y}from"./sdk.gen-BwnFjFcp.js";import{t as b}from"./dist-DS5iJwBJ2.js";import{t as x}from"./browser-BPZAXjRE.js";var S=e(n(),1),ee=e(r(),1),C=s(),w=`width=500,height=600`;function T(e){if(!e)return null;let t;try{let n=typeof window>`u`?`http://localhost`:window.location.origin;t=new URL(e,n)}catch{return null}return t.protocol!==`https:`&&t.protocol!==`http:`?null:t}function E(e){let t=T(e);if(!t)return!1;let n=t.pathname.toLowerCase();return t.searchParams.get(`response_type`)===`code`&&t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)||t.searchParams.has(`client_id`)&&t.searchParams.has(`redirect_uri`)&&/oauth|authorize|auth/.test(n)}function D(e){if(typeof window>`u`)return null;let t=T(e);return!t||t.origin!==window.location.origin?null:`${t.pathname}${t.search}${t.hash}`}function O(e){return T(e)?.href??null}function k(e){if(!E(e))return!1;if(b.isNativePlatform()){let t=O(e);return t?(x(t),!0):!1}let t=window.open(e,`_blank`,w);return t===null?!1:(t.focus(),!0)}function A(e){return k(e)}function j(e){if(k(e))return!0;let t=window.open(e,`_blank`);return t===null?!1:(t.focus(),!0)}function M(e,t){let n=D(e);if(n)return t.push(n),{kind:`routed`};let r=O(e);return r?t.isNative?(x(r),{kind:`opened`}):j(r)?{kind:`opened`}:{kind:`blocked`,url:r}:{kind:`invalid`}}async function N(e,t){if(!t||t.startsWith(`rehydrated:`))return null;try{let{data:n,error:r}=await y({path:{assistant_id:e,id:t},parseAs:`blob`,throwOnError:!1});return!r&&n instanceof Blob?n:null}catch{return null}}async function P(e,t){let{saveFile:n}=await a(async()=>{let{saveFile:e}=await import(`./native-file-Cn3RbQbT.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3]));if(t){let r=await N(t,e.id);if(r){await n(r,e.filename);return}}e.previewUrl&&await n(e.previewUrl,e.filename)}function F(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n>=10||r===0?Math.round(n).toString():n.toFixed(1)} ${t[r]}`}function I(e,t){let n=(e||``).toLowerCase(),r=t.split(`.`).pop()?.toLowerCase()??``;return n.startsWith(`image/`)?`image`:n.startsWith(`video/`)?`video`:n.startsWith(`audio/`)?`audio`:n===`application/pdf`||r===`pdf`?`pdf`:n===`application/zip`||n===`application/x-tar`||n===`application/gzip`||[`zip`,`tar`,`gz`,`tgz`,`rar`,`7z`].includes(r)?`archive`:n===`text/csv`||n===`application/vnd.ms-excel`||n===`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`||[`csv`,`xlsx`,`xls`,`numbers`].includes(r)?`spreadsheet`:`ts.tsx.js.jsx.py.rb.go.rs.java.kt.swift.c.cc.cpp.h.hpp.sh.bash.zsh.html.css.scss.json.yaml.yml.toml.xml`.split(`.`).includes(r)?`code`:n===`application/msword`||n===`application/vnd.openxmlformats-officedocument.wordprocessingml.document`||[`doc`,`docx`,`pages`].includes(r)?`document`:n.startsWith(`text/`)||[`txt`,`md`,`rtf`].includes(r)?`text`:`file`}function L(e){let t=e.replace(/\s/g,``),n=t.endsWith(`==`)?2:+!!t.endsWith(`=`);return Math.max(0,Math.floor(t.length*3/4)-n)}function R(e){let t=e.match(/;base64,(.*)$/);if(!t?.[1])return null;let n=atob(t[1]),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}function z(e,t=28){if(e.length<=t)return e;let n=Math.max(4,Math.floor((t-1)/2));return`${e.slice(0,n)}…${e.slice(e.length-n)}`}var B=1.5,V=20,H=!1;async function U(){let e=await a(()=>import(`./pdf-CuY9CA7Q.js`),__vite__mapDeps([4,2]));return H||=(e.GlobalWorkerOptions.workerSrc=`https://cdn.jsdelivr.net/npm/pdfjs-dist@${e.version}/legacy/build/pdf.worker.min.mjs`,!0),e}function te({url:e,className:t}){let n=(0,S.useRef)(null),[r,i]=(0,S.useState)(null),[a,o]=(0,S.useState)(0),[s,c]=(0,S.useState)(!0),[l,u]=(0,S.useState)(null),d=(0,S.useRef)(new Map),f=(0,S.useRef)(new Set);(0,S.useEffect)(()=>{let t=!1;async function n(){c(!0),u(null),i(null),o(0),f.current.clear();try{let n=await U(),r;if(e.startsWith(`data:`)){let t=R(e);r=t?{data:t}:e}else r=e;let a=await n.getDocument(r).promise;if(t){a.destroy();return}i(a),o(Math.min(a.numPages,V))}catch{t||u(`Failed to load PDF.`)}finally{t||c(!1)}}return n(),()=>{t=!0}},[e]),(0,S.useEffect)(()=>()=>{r&&r.destroy()},[r]);let m=(0,S.useCallback)(async e=>{if(!r||f.current.has(e))return;let t=d.current.get(e);if(t){f.current.add(e);try{let n=await r.getPage(e),i=n.getViewport({scale:B});t.width=i.width,t.height=i.height,await n.render({canvas:t,viewport:i}).promise}catch{f.current.delete(e)}}},[r]);(0,S.useEffect)(()=>{if(!r||a===0)return;let e=new IntersectionObserver(e=>{for(let t of e){if(!t.isIntersecting)continue;let e=Number(t.target.dataset.page);e&&m(e)}},{root:n.current,rootMargin:`200px`});return d.current.forEach(t=>e.observe(t)),()=>e.disconnect()},[r,a,m]);let h=(0,S.useCallback)(e=>t=>{t?d.current.set(e,t):d.current.delete(e)},[]);return s?(0,C.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,C.jsx)(p,{className:`h-8 w-8 animate-spin text-white/70`})}):l?(0,C.jsx)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:(0,C.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:l})}):(0,C.jsx)(`div`,{ref:n,className:`flex max-h-[80vh] flex-col items-center gap-2 overflow-y-auto rounded ${t??``}`,children:Array.from({length:a},(e,t)=>(0,C.jsx)(`canvas`,{ref:h(t+1),"data-page":t+1,className:`w-[90vw] max-w-[800px]`,style:{height:`auto`}},t+1))})}function W({message:e,filename:t,onDownload:n,downloadDisabled:r=!1}){return(0,C.jsxs)(`div`,{className:`w-full max-w-sm rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,C.jsx)(`p`,{className:`text-body-medium-lighter text-white/80`,children:e}),(0,C.jsx)(i,{variant:`ghost`,leftIcon:(0,C.jsx)(d,{}),onClick:n,disabled:r,"aria-label":`Download ${t}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}var G=class extends Error{};async function K(e,t,n){if(t>204800)throw new G;if(e.startsWith(`data:`)){let t=R(e);if(!t)throw Error(`Malformed data URI`);return new TextDecoder().decode(t)}let r=await fetch(e,{signal:n});if(!r.ok)throw Error(`Failed to load file: ${r.status}`);let i=await r.blob();if(i.size>204800)throw new G;return i.text()}function ne({url:e,filename:n,mimeType:r,sizeBytes:i}){let[o,s]=(0,S.useState)({status:`loading`});return(0,S.useEffect)(()=>{let n=new AbortController;return s({status:`loading`}),K(e,i,n.signal).then(e=>{n.signal.aborted||s({status:`ready`,text:e})}).catch(e=>{if(n.signal.aborted)return;let r=e instanceof G;r||t(e,{context:`attachment-text-preview`,bestEffort:!0}),s({status:`error`,tooLarge:r})}),()=>n.abort()},[e,i]),o.status===`loading`?(0,C.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,C.jsx)(p,{className:`h-8 w-8 animate-spin text-white/70`})}):o.status===`error`?(0,C.jsx)(W,{message:o.tooLarge?`File too large to preview inline.`:`Failed to load preview.`,filename:n,onDownload:async()=>{let{saveFile:t}=await a(async()=>{let{saveFile:e}=await import(`./native-file-Cn3RbQbT.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3]));await t(e,n)}}):(0,C.jsx)(`div`,{className:`max-h-[80vh] w-[min(90vw,800px)] overflow-auto rounded-lg p-6`,style:{backgroundColor:`var(--surface-overlay)`,color:`var(--content-default)`},children:(0,C.jsx)(re,{text:o.text,filename:n,mimeType:r})})}function re({text:e,filename:t,mimeType:n}){return _(t,n)?(0,C.jsx)(v,{content:e}):(0,C.jsx)(`pre`,{className:`whitespace-pre-wrap break-words font-mono text-body-small-default`,children:e})}var ie=new Set([`ts`,`tsx`,`js`,`jsx`,`py`,`json`,`md`,`sh`,`bash`,`html`,`css`,`yaml`,`yml`,`txt`]),ae=new Set([`application/json`,`application/javascript`,`application/xml`]),q=e=>{let t=e.lastIndexOf(`.`);return t===-1||t===e.length-1?``:e.slice(t+1).toLowerCase()},J=({open:e,onClose:t,attachment:n,assistantId:r,siblingAttachments:s,onNavigate:h})=>{let g=(0,S.useRef)(null),_=(0,S.useRef)(null);(0,S.useEffect)(()=>{e&&_.current?.focus()},[e]);let v=!n.previewUrl&&n.id.startsWith(`rehydrated:`),y=e&&!n.previewUrl&&!!r&&!!n.id&&!v,{data:b,isError:x}=o({queryKey:[`attachmentContent`,r,n.id],queryFn:async()=>{let e=await N(r,n.id);if(!e)throw Error(`Failed to load file`);return e},enabled:y,staleTime:1/0,retry:!1}),[w,T]=(0,S.useState)(null);(0,S.useEffect)(()=>{if(!b){T(null);return}let e=URL.createObjectURL(b);return T(e),()=>{URL.revokeObjectURL(e),T(null)}},[b]);let E=n.previewUrl??w,[D,O]=(0,S.useState)(null),k=y&&!w&&!x,A=v?`Preview unavailable — file content was not preserved in chat history.`:x?`Failed to load preview.`:null,j=(0,S.useMemo)(()=>!s||s.length<=1?-1:s.findIndex(e=>e.id===n.id),[s,n.id]),M=j!==-1&&s!=null&&s.length>1,P=(0,S.useCallback)(()=>{!M||!s||!h||h(s[(j-1+s.length)%s.length])},[M,s,j,h]),I=(0,S.useCallback)(()=>{!M||!s||!h||h(s[(j+1)%s.length])},[M,s,j,h]),L=(0,S.useCallback)(e=>{e.key===`Escape`?(e.preventDefault(),t()):e.key===`ArrowLeft`&&M?(e.preventDefault(),P()):e.key===`ArrowRight`&&M&&(e.preventDefault(),I())},[t,P,I,M]),R=(0,S.useCallback)(e=>{e.target===g.current&&t()},[t]),z=(0,S.useCallback)(async()=>{if(!E)return;let{saveFile:e}=await a(async()=>{let{saveFile:e}=await import(`./native-file-Cn3RbQbT.js`).then(e=>e.t);return{saveFile:e}},__vite__mapDeps([0,1,2,3]));await e(E,n.filename)},[E,n.filename]);if(!e)return null;let B=n.mimeType.toLowerCase(),V=B.startsWith(`image/`),H=B.startsWith(`video/`),U=B===`application/pdf`||B===`application/octet-stream`&&n.filename.toLowerCase().endsWith(`.pdf`),G=q(n.filename),K=B.startsWith(`text/`)||ae.has(B)||ie.has(G);return(0,ee.createPortal)((0,C.jsxs)(`div`,{ref:g,role:`dialog`,"aria-modal":`true`,"aria-label":`Preview of ${n.filename}`,className:`fixed inset-0 z-50 flex flex-col items-center justify-center bg-black/80 [-webkit-app-region:no-drag]`,style:{paddingTop:`var(--safe-area-inset-top, env(safe-area-inset-top, 0px))`,paddingBottom:`var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))`,paddingLeft:`var(--safe-area-inset-left, env(safe-area-inset-left, 0px))`,paddingRight:`var(--safe-area-inset-right, env(safe-area-inset-right, 0px))`},onKeyDown:L,onClick:R,children:[(0,C.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-center gap-3 px-4`,style:{paddingTop:`calc(var(--safe-area-inset-top, env(safe-area-inset-top, 0px)) + 1rem)`},children:[(0,C.jsx)(c,{variant:`body-small-default`,className:`w-11 shrink-0 truncate text-white/50`,children:F(n.sizeBytes)}),(0,C.jsx)(c,{as:`div`,variant:`body-medium-lighter`,className:`min-w-0 flex-1 truncate text-center text-white/90`,children:n.filename}),(0,C.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,C.jsx)(i,{variant:`ghost`,iconOnly:(0,C.jsx)(d,{}),expandOnMobile:!1,onClick:z,disabled:!E,"aria-label":`Download ${n.filename}`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,C.jsx)(i,{ref:_,variant:`ghost`,iconOnly:(0,C.jsx)(m,{}),expandOnMobile:!1,onClick:t,"aria-label":`Close preview`,className:`h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]})]}),M&&(0,C.jsxs)(`div`,{className:`pointer-events-none absolute inset-x-0 top-1/2 z-10 flex -translate-y-1/2 items-center justify-between px-4`,children:[(0,C.jsx)(i,{variant:`ghost`,iconOnly:(0,C.jsx)(l,{}),expandOnMobile:!1,onClick:P,"aria-label":`Previous attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`}),(0,C.jsx)(i,{variant:`ghost`,iconOnly:(0,C.jsx)(u,{}),expandOnMobile:!1,onClick:I,"aria-label":`Next attachment`,className:`pointer-events-auto h-11 w-11 rounded-full bg-white/10 text-white/70 hover:bg-white/20 hover:text-white`,tintColor:`currentColor`})]}),(0,C.jsx)(`div`,{className:`flex items-center justify-center`,onClick:e=>e.stopPropagation(),children:k?(0,C.jsx)(`div`,{className:`flex items-center justify-center py-24`,children:(0,C.jsx)(p,{className:`h-8 w-8 animate-spin text-white/70`})}):A?(0,C.jsx)(W,{message:A,filename:n.filename,onDownload:z,downloadDisabled:!E}):U&&E?(0,C.jsx)(te,{url:E}):V&&E&&D!==E?(0,C.jsx)(`img`,{src:E,alt:n.filename,onError:()=>O(E),className:`max-h-[80vh] max-w-[90vw] rounded object-contain`}):H&&E?(0,C.jsx)(`video`,{"data-testid":`video-preview`,src:E,poster:n.thumbnailUrl??void 0,controls:!0,className:`max-h-[80vh] max-w-[90vw] rounded`}):K&&E?(0,C.jsx)(ne,{url:E,filename:n.filename,mimeType:n.mimeType,sizeBytes:n.sizeBytes}):(0,C.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col items-center rounded-lg border border-white/15 bg-white/[0.08] p-8 text-center`,children:[(0,C.jsx)(f,{className:`h-16 w-16 text-white/60`}),(0,C.jsx)(`p`,{className:`mt-4 text-body-medium-default text-white/90`,children:n.filename}),(0,C.jsx)(`p`,{className:`mt-1 text-body-small-default text-white/60`,children:F(n.sizeBytes)}),(0,C.jsx)(i,{variant:`ghost`,leftIcon:(0,C.jsx)(d,{}),onClick:z,disabled:!E,"aria-label":`Download ${n.filename}`,className:`mt-4 text-white/70 hover:bg-white/10 hover:text-white max-md:bg-transparent`,tintColor:`currentColor`,children:`Download`})]})}),M&&(0,C.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 z-10 flex justify-center`,style:{paddingBottom:`calc(var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)) + 2rem)`},onClick:e=>e.stopPropagation(),children:(0,C.jsxs)(c,{variant:`body-small-default`,className:`text-white/50`,children:[j+1,` / `,s.length]})})]}),document.body)};function Y(e,t){let[n,r]=(0,S.useState)(null),i=(0,S.useCallback)(e=>r(e),[]),a=(0,S.useCallback)(()=>r(null),[]),o=(0,S.useCallback)(e=>r(e),[]);return{openPreview:i,previewModal:n?(0,C.jsx)(J,{open:!0,onClose:a,attachment:n,assistantId:e,siblingAttachments:t,onNavigate:o}):null}}function X(e){return e!=null&&(e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`))}function Z(e){return e.startsWith(`vellum://workspace/`)||e.startsWith(`vellum://host/`)?e:g(e)}function oe({href:e,children:t}){return(0,C.jsx)(`a`,{href:e,target:`_blank`,rel:E(e)?void 0:`noopener noreferrer`,onClick:t=>{A(e)&&t.preventDefault()},className:`text-[var(--system-positive-strong)] underline hover:opacity-80`,children:t})}var Q=`my-2 max-w-full max-h-[400px] rounded-lg border border-[var(--border-default)] object-contain`;function $({alt:e}){return(0,C.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Image failed to load`,e?` (${e})`:``]})}function se({src:e,alt:t}){let[n,r]=(0,S.useState)(!1);return n?(0,C.jsx)($,{alt:t}):(0,C.jsx)(`img`,{src:e,alt:t,onError:()=>r(!0),className:Q})}function ce(e){try{return decodeURIComponent(e)}catch{return e}}function le({src:e,alt:n,attachments:r,assistantId:i,onOpenPreview:a}){let[o,s]=(0,S.useState)(null),[c,l]=(0,S.useState)(!1),u=ce(e.split(`/`).pop()??``),d=r?.find(e=>e.filename===u);if((0,S.useEffect)(()=>{if(!d||!i||d.id.startsWith(`rehydrated:`))return;let e=!1;return(async()=>{try{let{data:t,error:n}=await y({path:{assistant_id:i,id:d.id},parseAs:`blob`,throwOnError:!1});if(e)return;if(n||!(t instanceof Blob)){l(!0);return}s(URL.createObjectURL(t))}catch(n){e||(l(!0),t(n,{context:`WorkspaceInlineImage`,bestEffort:!0}))}})(),()=>{e=!0,s(e=>(e&&URL.revokeObjectURL(e),null))}},[d,i]),c||!d&&!o)return(0,C.jsx)($,{alt:n||u});if(!o)return(0,C.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-[var(--surface-sunken)] px-1.5 py-0.5 text-body-small-default text-[var(--content-tertiary)]`,children:[`Loading image…`,n?` (${n})`:``]});let f=(0,C.jsx)(`img`,{src:o,alt:n,className:Q});return!d||!a?f:(0,C.jsx)(`button`,{type:`button`,onClick:()=>a(d),className:`cursor-zoom-in appearance-none border-0 bg-transparent p-0`,"aria-label":n?`Expand image: ${n}`:`Expand image`,children:f})}var ue=(0,S.memo)(function({content:e,className:t,hardLineBreaks:n,onVellumLinkClick:r,attachments:i,assistantId:a}){let{openPreview:o,previewModal:s}=Y(a,i);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(h,{content:e,className:t,hardLineBreaks:n,linkComponent:(0,S.useCallback)(({href:e,children:t})=>r&&X(e)?(0,C.jsx)(`a`,{href:e,onClick:t=>{t.preventDefault(),e&&r(e,t.currentTarget.textContent??``)},className:`text-[var(--system-positive-strong)] underline hover:opacity-80 cursor-pointer`,children:t}):(0,C.jsx)(oe,{href:e,children:t}),[r]),imageComponent:(0,S.useMemo)(()=>({src:e,alt:t})=>X(e)?(0,C.jsx)(le,{src:e,alt:t,attachments:i,assistantId:a,onOpenPreview:o}):(0,C.jsx)(se,{src:e,alt:t}),[i,a,o]),urlTransform:Z}),s]})});export{L as a,P as c,j as d,I as i,N as l,Y as n,F as o,J as r,z as s,ue as t,M as u};
|