@flexkit/studio 0.2.12 → 0.2.14
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/activity-nav-button-7SVTTHBQ.js +2 -0
- package/dist/{activity-nav-button-LZESIQL2.js.map → activity-nav-button-7SVTTHBQ.js.map} +1 -1
- package/dist/astro.js +1 -1
- package/dist/{chat-page-EKOGKEFR.js → chat-page-L427VVVR.js} +3 -3
- package/dist/{chat-page-EKOGKEFR.js.map → chat-page-L427VVVR.js.map} +1 -1
- package/dist/chunk-2HYQVMP3.js +3 -0
- package/dist/chunk-2HYQVMP3.js.map +1 -0
- package/dist/chunk-5CVDMZUI.js +3 -0
- package/dist/chunk-5CVDMZUI.js.map +1 -0
- package/dist/chunk-6YJ3DLIU.js +2 -0
- package/dist/{chunk-OFJOZMCR.js.map → chunk-6YJ3DLIU.js.map} +1 -1
- package/dist/{chunk-BOXFB6E6.js → chunk-7ELMTFZ4.js} +2 -2
- package/dist/{chunk-BOXFB6E6.js.map → chunk-7ELMTFZ4.js.map} +1 -1
- package/dist/chunk-ALCK2BJY.js +2 -0
- package/dist/chunk-ALCK2BJY.js.map +1 -0
- package/dist/chunk-CAZ6EUR2.js +2 -0
- package/dist/chunk-CAZ6EUR2.js.map +1 -0
- package/dist/chunk-D5WYD5M4.js +2 -0
- package/dist/chunk-D5WYD5M4.js.map +1 -0
- package/dist/{chunk-2AVINVYN.js → chunk-GFAOY74A.js} +28 -18
- package/dist/chunk-MGXG5PWU.js +384 -0
- package/dist/chunk-MGXG5PWU.js.map +1 -0
- package/dist/{chunk-EWBEPYML.js → chunk-MJVWFANP.js} +3 -3
- package/dist/{chunk-EWBEPYML.js.map → chunk-MJVWFANP.js.map} +1 -1
- package/dist/chunk-NLRSLQUT.js +3 -0
- package/dist/chunk-NLRSLQUT.js.map +1 -0
- package/dist/{chunk-F2DHCPWW.js → chunk-P5ZRTZ5Z.js} +2 -2
- package/dist/{chunk-F2DHCPWW.js.map → chunk-P5ZRTZ5Z.js.map} +1 -1
- package/dist/{chunk-QQSI7BPK.js → chunk-R64ELY3B.js} +3 -3
- package/dist/{chunk-QQSI7BPK.js.map → chunk-R64ELY3B.js.map} +1 -1
- package/dist/chunk-U5D3EDCY.js +2 -0
- package/dist/chunk-U5D3EDCY.js.map +1 -0
- package/dist/chunk-W7Z4MY43.js +2 -0
- package/dist/{chunk-7IHEL6LU.js.map → chunk-W7Z4MY43.js.map} +1 -1
- package/dist/chunk-XWBACTNR.js +3 -0
- package/dist/{chunk-C47FNPLK.js.map → chunk-XWBACTNR.js.map} +1 -1
- package/dist/chunk-ZZRA4567.js +2 -0
- package/dist/{chunk-V64P56OA.js.map → chunk-ZZRA4567.js.map} +1 -1
- package/dist/electron.d.ts +103 -0
- package/dist/electron.js +131 -0
- package/dist/index.css +9 -0
- package/dist/index.d.ts +33 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +1 -1
- package/dist/list-WJLU3K2X.js +2 -0
- package/dist/{list-DOTORSUC.js.map → list-WJLU3K2X.js.map} +1 -1
- package/dist/nextjs.js +1 -1
- package/dist/{pages-ILAXYS2J.js → pages-3EK5GS2T.js} +4 -4
- package/dist/{pages-ILAXYS2J.js.map → pages-3EK5GS2T.js.map} +1 -1
- package/dist/plugin-pages-PQO22EOE.js +2 -0
- package/dist/{plugin-pages-RKJRHKNL.js.map → plugin-pages-PQO22EOE.js.map} +1 -1
- package/dist/root-4EALW3G6.js +2 -0
- package/dist/{root-RE3ZNXQ3.js.map → root-4EALW3G6.js.map} +1 -1
- package/dist/root-BA7BLCFR.js +23 -0
- package/dist/root-BA7BLCFR.js.map +1 -0
- package/dist/root-YNGCF5QM.js +31 -0
- package/dist/{root-JB3NZZNZ.js.map → root-YNGCF5QM.js.map} +1 -1
- package/dist/root-ZF62TR5Z.js +2 -0
- package/dist/{root-76YQTZUI.js.map → root-ZF62TR5Z.js.map} +1 -1
- package/dist/search-QHMCAT7O.js +2 -0
- package/dist/{search-WUO6VWKU.js.map → search-QHMCAT7O.js.map} +1 -1
- package/dist/skills-pages-HIBSAVOP.js +2 -0
- package/dist/{skills-pages-POKCFHOL.js.map → skills-pages-HIBSAVOP.js.map} +1 -1
- package/dist/tanstack-start.js +1 -1
- package/dist/user-nav-36ACWXOW.js +2 -0
- package/dist/{user-nav-DCAHVWN7.js.map → user-nav-36ACWXOW.js.map} +1 -1
- package/package.json +10 -6
- package/dist/activity-nav-button-LZESIQL2.js +0 -2
- package/dist/chunk-2HSIWUH3.js +0 -3
- package/dist/chunk-2HSIWUH3.js.map +0 -1
- package/dist/chunk-6YOVF2AD.js +0 -384
- package/dist/chunk-6YOVF2AD.js.map +0 -1
- package/dist/chunk-7IHEL6LU.js +0 -2
- package/dist/chunk-ACS3TGGP.js +0 -2
- package/dist/chunk-ACS3TGGP.js.map +0 -1
- package/dist/chunk-C47FNPLK.js +0 -3
- package/dist/chunk-HYSTMQD7.js +0 -2
- package/dist/chunk-HYSTMQD7.js.map +0 -1
- package/dist/chunk-KXAGLQ2B.js +0 -2
- package/dist/chunk-KXAGLQ2B.js.map +0 -1
- package/dist/chunk-OFJOZMCR.js +0 -2
- package/dist/chunk-TYDYAOQ7.js +0 -3
- package/dist/chunk-TYDYAOQ7.js.map +0 -1
- package/dist/chunk-V64P56OA.js +0 -2
- package/dist/list-DOTORSUC.js +0 -2
- package/dist/plugin-pages-RKJRHKNL.js +0 -2
- package/dist/root-76YQTZUI.js +0 -2
- package/dist/root-A4VHAEK5.js +0 -23
- package/dist/root-A4VHAEK5.js.map +0 -1
- package/dist/root-JB3NZZNZ.js +0 -31
- package/dist/root-RE3ZNXQ3.js +0 -2
- package/dist/search-WUO6VWKU.js +0 -2
- package/dist/skills-pages-POKCFHOL.js +0 -2
- package/dist/user-nav-DCAHVWN7.js +0 -2
package/dist/chunk-2HSIWUH3.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {put}from'@vercel/blob/client';function S(s,o){let l=o.trim();return l?s.trim()?/\s$/.test(s)||/^[.,!?;:]/.test(l)?`${s}${l}`:`${s} ${l}`:s.length===0?l:`${s}${l}`:s}async function h(s){if(typeof window>"u")throw new Error("Dictation is only available in the browser.");let o=window.AudioContext??window.webkitAudioContext;if(!o)throw new Error("This browser cannot decode recorded audio.");let l=await s.arrayBuffer(),u=new o;try{let n=await u.decodeAudioData(l.slice(0)),i=C(n),t=y(i,n.sampleRate,24e3),e=$(t),a=t.length/24e3;if(a<.25)throw new Error("No speech was captured. Try again.");if(a>60)throw new Error(`Dictation is limited to ${String(60)} seconds.`);return {durationSeconds:a,pcm:new Blob([e],{type:"audio/pcm"})}}finally{await u.close();}}function C(s){let{length:o,numberOfChannels:l}=s;if(l===1)return s.getChannelData(0).slice();let u=new Float32Array(o);for(let n=0;n<o;n+=1){let i=0;for(let t=0;t<l;t+=1)i+=s.getChannelData(t)[n]??0;u[n]=i/l;}return u}function y(s,o,l){if(o===l)return s;let u=o/l,n=Math.max(1,Math.round(s.length/u)),i=new Float32Array(n);for(let t=0;t<n;t+=1){let e=t*u,a=Math.floor(e),r=Math.min(a+1,s.length-1),c=e-a,g=s[a]??0,m=s[r]??0;i[t]=g+(m-g)*c;}return i}function $(s){let o=new ArrayBuffer(s.length*2),l=new DataView(o);for(let u=0;u<s.length;u+=1){let n=Math.max(-1,Math.min(1,s[u]??0));l.setInt16(u*2,n<0?n*32768:n*32767,true);}return o}var d=class extends Error{code;status;constructor(o,l,u=null){super(l),this.name="AgentUploadError",this.code=u,this.status=o;}};function f(){if(typeof window>"u")return "flexkit.io";let{hostname:s}=window.location;return s==="localhost"||s==="127.0.0.1"||s==="flexkit.test"||s.endsWith(".flexkit.test")?"flexkit.test":"flexkit.io"}function w(){return `https://${f()}`}function T(s,o){return `https://${s}.api.${f()}/automations/webhook/${encodeURIComponent(o)}`}function _(s){let o=`/api/flexkit/${s}`,l=`${o}/automations`,u=`${o}/skills`,n=`${o}/agent/chats`;async function i(t,e){let a=await fetch(t,{credentials:"include",headers:{"Content-Type":"application/json",...e?.headers??{}},...e}),r=await a.json();if(!a.ok){let c=r&&typeof r=="object"&&"error"in r?String(r.error):"Request failed";throw new Error(c)}return r}return {connectPlugins:t=>i(`${o}/plugins/connect`,{method:"POST",body:JSON.stringify(t)}),pluginOAuthStatus:t=>i(`${o}/plugins/oauth-transactions/${encodeURIComponent(t)}`),updatePluginConnection:(t,e)=>i(`${o}/plugin-connections/${encodeURIComponent(t)}`,{method:"PATCH",body:JSON.stringify(e)}),disconnectPlugin:t=>i(`${o}/plugin-connections/${encodeURIComponent(t)}`,{method:"DELETE"}),installPlugin:t=>i(`${o}/plugins/${encodeURIComponent(t)}/installation`,{method:"PUT",body:JSON.stringify({})}),setPluginPolicy:(t,e)=>i(`${o}/plugins/${encodeURIComponent(t)}/policy`,{method:"PATCH",body:JSON.stringify(e)}),refreshPluginTools:t=>i(`${o}/plugin-connections/${encodeURIComponent(t)}/tools/refresh`,{method:"POST"}),cancelRun:async t=>i(`${l}/runs/${encodeURIComponent(t)}/cancel`,{method:"POST"}),createAgentChat:async t=>i(n,{body:JSON.stringify({modelId:t?.modelId??null}),method:"POST"}),deleteAgentChat:async t=>i(`${n}/${encodeURIComponent(t)}`,{method:"DELETE"}),getAgentChatStreamUrl:(t,e)=>`${n}/${encodeURIComponent(t)}/stream?workflowRunId=${encodeURIComponent(e)}`,renameAgentChat:async(t,e)=>i(`${n}/${encodeURIComponent(t)}`,{body:JSON.stringify({title:e}),method:"PATCH"}),sendAgentChatMessage:async(t,e)=>i(`${n}/${encodeURIComponent(t)}/messages`,{body:JSON.stringify(e),method:"POST"}),announcePluginConnected:async(t,e)=>i(`${n}/${encodeURIComponent(t)}/plugin-connected`,{body:JSON.stringify({pluginId:e}),method:"POST"}),sendAgentChatFollowUp:async(t,e)=>i(`${n}/${encodeURIComponent(t)}/follow-ups`,{body:JSON.stringify(e),method:"POST"}),answerAgentChatQuestion:async(t,e,a)=>{let r=await fetch(`${n}/${encodeURIComponent(t)}/questions/${encodeURIComponent(e)}/answer`,{body:JSON.stringify(a),credentials:"include",headers:{"Content-Type":"application/json"},method:"POST"}),c=await r.json();if(!r.ok&&!c.question)throw new Error(c.errorMessage??c.error??"Request failed");return {errorMessage:r.ok?void 0:c.errorMessage,question:c.question}},startAgentChat:async({attachments:t,content:e,modelId:a})=>i(n,{body:JSON.stringify({message:{attachments:t,content:e},modelId:a??null}),method:"POST"}),startQueuedAgentChatMessage:async(t,e)=>i(`${n}/${encodeURIComponent(t)}/follow-ups/${encodeURIComponent(e)}/start`,{method:"POST"}),stopAgentChat:async t=>i(`${n}/${encodeURIComponent(t)}/stop`,{method:"POST"}),stopAgentChatMonitor:async(t,e)=>i(`${n}/${encodeURIComponent(t)}/monitors/${encodeURIComponent(e)}/stop`,{method:"POST"}),transcribeAgentAudio:async(t,e)=>{let{durationSeconds:a,pcm:r}=await h(t),c=new FormData;c.append("file",r,"audio.pcm"),c.append("durationSeconds",String(a));let g=await fetch(`${o}/agent/transcribe`,{body:c,credentials:"include",method:"POST",signal:e}),m=await g.json();if(!g.ok){let A=m&&typeof m=="object"&&m.error?String(m.error):"Request failed";throw new Error(A)}if(!m.text?.trim())throw new Error("No speech was recognized. Try again.");return {text:m.text}},uploadAgentChatAttachment:async(t,e)=>{let a=await fetch(`${o}/agent/uploads`,{body:JSON.stringify({filename:t.name,mediaType:t.type||null,sizeBytes:t.size}),credentials:"include",headers:{"Content-Type":"application/json"},method:"POST",signal:e}),r=await a.json();if(!a.ok||!r.pathname||!r.token||!r.mediaType)throw new d(a.status,r.error?String(r.error):"The file could not be uploaded.",r.code??null);let c=await put(r.pathname,t,{abortSignal:e,access:"public",contentType:r.mediaType,token:r.token});return {filename:t.name,mediaType:r.mediaType,sizeBytes:t.size,url:c.url}},decideApproval:async(t,e)=>{let a=await fetch(`${l}/approvals/${encodeURIComponent(t)}/decide`,{body:JSON.stringify(e),credentials:"include",headers:{"Content-Type":"application/json"},method:"POST"}),r=await a.json();if(!a.ok&&typeof r.success!="boolean")throw new Error(r.error?String(r.error):"Request failed");return r},markActivityRead:async t=>i(`${o}/activity/read`,{body:JSON.stringify(t==="all"?{all:true}:{ids:t}),method:"POST"}),setActivityItemState:async(t,e)=>i(`${o}/activity/${encodeURIComponent(t)}`,{body:JSON.stringify({state:e}),method:"PATCH"}),createAutomation:async t=>i(l,{body:JSON.stringify(t),method:"POST"}),createSkill:async t=>i(u,{body:JSON.stringify(t),method:"POST"}),deleteAutomation:async t=>i(`${l}/${encodeURIComponent(t)}`,{method:"DELETE"}),deleteSkill:async t=>i(`${u}/${encodeURIComponent(t)}`,{method:"DELETE"}),getArtifactUrl:(t,e)=>{let a=e?.download?"?download=1":"";return `${l}/artifacts/${encodeURIComponent(t)}/content${a}`},getRunArtifacts:async t=>i(`${l}/runs/${encodeURIComponent(t)}/artifacts`).then(e=>e.artifacts),getStreamUrl:t=>`${l}/runs/${encodeURIComponent(t)}/stream`,getTranscriptUrl:t=>`${l}/runs/${encodeURIComponent(t)}/transcript`,listChannels:async(t,e)=>{let a=e?`${o}/plugin-connections/${encodeURIComponent(e)}/channels`:`${o}/plugins/${t}/channels`,r=await fetch(a,{credentials:"include",headers:{"Content-Type":"application/json"}}),c=await r.json();if(r.ok)return {channels:c.channels??[],errorMessage:c.errorMessage,success:c.success??true};if(c.success===false)return {channels:c.channels??[],errorMessage:c.errorMessage??`Failed to load ${t==="slack"?"Slack":"Teams"} channels.`,success:false};let g=c.error?String(c.error):"Request failed";throw new Error(g)},runAutomation:async t=>i(`${l}/${encodeURIComponent(t)}/runs`,{method:"POST"}),updateAutomation:async(t,e)=>i(`${l}/${encodeURIComponent(t)}`,{body:JSON.stringify(e),method:"PATCH"}),updateSkill:async(t,e)=>i(`${u}/${encodeURIComponent(t)}`,{body:JSON.stringify(e),method:"PATCH"})}}var p=class extends Error{status;constructor(o,l="Request failed"){super(l),this.name="FetcherError",this.status=o;}},k=async s=>{let o=await fetch(s,{credentials:"include"});if(!o.ok)throw new p(o.status);return await o.json()};function U(s){let o=`/api/flexkit/${s}/automations`,l=`/api/flexkit/${s}/skills`,u=`/api/flexkit/${s}/agent/chats`;return {activity:(n={})=>{let{filter:i="all",limit:t=25,offset:e=0}=n,a=new URLSearchParams({filter:i,limit:t.toString(),offset:e.toString()});return `/api/flexkit/${s}/activity?${a.toString()}`},activityItem:n=>`/api/flexkit/${s}/activity/${encodeURIComponent(n)}`,activitySummary:n=>n?`/api/flexkit/${s}/activity/summary?since=${encodeURIComponent(n)}`:`/api/flexkit/${s}/activity/summary`,agentChat:n=>`${u}/${encodeURIComponent(n)}`,agentChatSearch:n=>`${u}/search?q=${encodeURIComponent(n)}`,agentChats:(n=0)=>`${u}?offset=${n.toString()}`,agentProfile:()=>`/api/flexkit/${s}/agent/profile`,approval:n=>`${o}/approvals/${encodeURIComponent(n)}`,approvals:(n={})=>{let{limit:i=25,offset:t=0,runId:e,status:a}=n,r=new URLSearchParams({limit:i.toString(),offset:t.toString()});return a&&r.set("status",a),e&&r.set("runId",e),`${o}/approvals?${r.toString()}`},approvalsCount:`${o}/approvals?limit=1`,automation:n=>`${o}/${encodeURIComponent(n)}`,automationRuns:(n,i=0,t=25)=>`${o}/${encodeURIComponent(n)}/runs?offset=${i.toString()}&limit=${t.toString()}`,automations:(n={})=>{let{enabled:i,limit:t=25,offset:e=0,search:a,visibility:r}=n,c=new URLSearchParams({limit:t.toString(),offset:e.toString()});i&&i.length>0&&c.set("enabled",i.map(m=>m?"true":"false").join(",")),r&&r.length>0&&c.set("visibility",r.join(","));let g=a?.trim();return g&&c.set("q",g),`${o}?${c.toString()}`},creditBalance:`${o}/credits`,entities:`${o}/entities`,run:n=>`${o}/runs/${encodeURIComponent(n)}`,runHistory:(n,i=0,t=25)=>`${o}/runs?scope=${n}&offset=${i.toString()}&limit=${t.toString()}`,skill:n=>`${l}/${encodeURIComponent(n)}`,skills:(n={})=>{let{limit:i=25,offset:t=0,search:e,visibility:a}=n,r=new URLSearchParams({limit:i.toString(),offset:t.toString()});a&&a.length>0&&r.set("visibility",a.join(","));let c=e?.trim();return c&&r.set("q",c),`${l}?${r.toString()}`},spaces:`/api/flexkit/${s}/spaces`,members:n=>n?`/api/flexkit/${s}/members?spaceId=${encodeURIComponent(n)}`:`/api/flexkit/${s}/members`,tools:n=>n?`${o}/${encodeURIComponent(n)}/tools`:`${o}/tools`}}
|
|
2
|
-
export{S as a,w as b,T as c,_ as d,p as e,k as f,U as g};//# sourceMappingURL=chunk-2HSIWUH3.js.map
|
|
3
|
-
//# sourceMappingURL=chunk-2HSIWUH3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/apps/ai/agent/dictation.ts","../src/apps/ai/api.ts"],"names":["appendDictatedText","existing","transcript","dictated","convertRecordedAudioToPcm","blob","AudioContextCtor","arrayBuffer","audioContext","audioBuffer","mono","mixToMono","resampled","resample","pcm","floatToPcm16","durationSeconds","buffer","length","channelCount","index","sum","channel","samples","sourceRate","targetRate","ratio","outputLength","output","sourceIndex","left","right","fraction","leftSample","rightSample","view","sample","AgentUploadError","status","message","code","getApiRootDomain","hostname","getPlatformOrigin","getWebhookTriggerUrl","projectId","token","createApiClient","projectBasePath","automationsBasePath","skillsBasePath","agentChatsBasePath","request","url","init","response","data","error","input","id","runId","chatId","workflowRunId","title","pluginId","questionId","result","attachments","content","modelId","messageId","monitorId","audio","signal","formData","file","tokenResponse","tokenData","put","approvalId","ids","itemId","state","automationId","skillId","artifactId","options","suffix","provider","connectionId","FetcherError","fetcher","paths","basePath","filter","limit","offset","params","since","query","enabled","search","visibility","value","trimmedSearch","scope","spaceId"],"mappings":"0DAIO,SAASA,CAAAA,CAAmBC,CAAAA,CAAkBC,CAAAA,CAA4B,CAC/E,IAAMC,CAAAA,CAAWD,CAAAA,CAAW,IAAA,EAAK,CAEjC,OAAKC,CAAAA,CAIAF,CAAAA,CAAS,IAAA,EAAK,CAIf,KAAA,CAAM,IAAA,CAAKA,CAAQ,CAAA,EAAK,WAAA,CAAY,IAAA,CAAKE,CAAQ,CAAA,CAC5C,CAAA,EAAGF,CAAQ,CAAA,EAAGE,CAAQ,CAAA,CAAA,CAGxB,CAAA,EAAGF,CAAQ,CAAA,CAAA,EAAIE,CAAQ,CAAA,CAAA,CAPrBF,CAAAA,CAAS,MAAA,GAAW,CAAA,CAAIE,CAAAA,CAAW,CAAA,EAAGF,CAAQ,CAAA,EAAGE,CAAQ,CAAA,CAAA,CAJzDF,CAYX,CAEA,eAAsBG,CAAAA,CAA0BC,CAAAA,CAA6D,CAC3G,GAAI,OAAO,MAAA,CAAW,GAAA,CACpB,MAAM,IAAI,KAAA,CAAM,6CAA6C,CAAA,CAG/D,IAAMC,CAAAA,CAAmB,MAAA,CAAO,YAAA,EAAgB,MAAA,CAAO,kBAAA,CAEvD,GAAI,CAACA,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,4CAA4C,CAAA,CAG9D,IAAMC,CAAAA,CAAc,MAAMF,CAAAA,CAAK,WAAA,EAAY,CACrCG,CAAAA,CAAe,IAAIF,CAAAA,CAEzB,GAAI,CACF,IAAMG,CAAAA,CAAc,MAAMD,CAAAA,CAAa,eAAA,CAAgBD,CAAAA,CAAY,KAAA,CAAM,CAAC,CAAC,CAAA,CACrEG,CAAAA,CAAOC,CAAAA,CAAUF,CAAW,CAAA,CAC5BG,CAAAA,CAAYC,CAAAA,CAASH,CAAAA,CAAMD,CAAAA,CAAY,UAAA,CAAY,IAAqB,CAAA,CACxEK,CAAAA,CAAMC,CAAAA,CAAaH,CAAS,CAAA,CAC5BI,CAAAA,CAAkBJ,CAAAA,CAAU,MAAA,CAAS,IAAA,CAE3C,GAAII,CAAAA,CAAkB,GAAA,CACpB,MAAM,IAAI,KAAA,CAAM,oCAAoC,CAAA,CAGtD,GAAIA,CAAAA,CAAkB,EAAA,CACpB,MAAM,IAAI,KAAA,CAAM,2BAA2B,MAAA,CAAO,EAA8B,CAAC,CAAA,SAAA,CAAW,CAAA,CAG9F,OAAO,CACL,eAAA,CAAAA,CAAAA,CACA,GAAA,CAAK,IAAI,IAAA,CAAK,CAACF,CAAG,CAAA,CAAG,CAAE,IAAA,CAAM,WAAY,CAAC,CAC5C,CACF,CAAA,OAAE,CACA,MAAMN,CAAAA,CAAa,KAAA,GACrB,CACF,CAEA,SAASG,CAAAA,CAAUM,CAAAA,CAAmC,CACpD,GAAM,CAAE,MAAA,CAAAC,CAAAA,CAAQ,gBAAA,CAAkBC,CAAa,CAAA,CAAIF,CAAAA,CAEnD,GAAIE,CAAAA,GAAiB,CAAA,CACnB,OAAOF,CAAAA,CAAO,cAAA,CAAe,CAAC,CAAA,CAAE,KAAA,EAAM,CAGxC,IAAMP,CAAAA,CAAO,IAAI,YAAA,CAAaQ,CAAM,CAAA,CAEpC,IAAA,IAASE,CAAAA,CAAQ,CAAA,CAAGA,CAAAA,CAAQF,CAAAA,CAAQE,CAAAA,EAAS,CAAA,CAAG,CAC9C,IAAIC,CAAAA,CAAM,CAAA,CAEV,IAAA,IAASC,CAAAA,CAAU,CAAA,CAAGA,CAAAA,CAAUH,CAAAA,CAAcG,CAAAA,EAAW,CAAA,CACvDD,CAAAA,EAAOJ,CAAAA,CAAO,cAAA,CAAeK,CAAO,CAAA,CAAEF,CAAK,CAAA,EAAK,CAAA,CAGlDV,CAAAA,CAAKU,CAAK,CAAA,CAAIC,CAAAA,CAAMF,EACtB,CAEA,OAAOT,CACT,CAEA,SAASG,CAAAA,CAASU,CAAAA,CAAuBC,CAAAA,CAAoBC,CAAAA,CAAkC,CAC7F,GAAID,CAAAA,GAAeC,CAAAA,CACjB,OAAOF,CAAAA,CAGT,IAAMG,CAAAA,CAAQF,CAAAA,CAAaC,CAAAA,CACrBE,CAAAA,CAAe,IAAA,CAAK,GAAA,CAAI,CAAA,CAAG,IAAA,CAAK,KAAA,CAAMJ,CAAAA,CAAQ,MAAA,CAASG,CAAK,CAAC,CAAA,CAC7DE,CAAAA,CAAS,IAAI,YAAA,CAAaD,CAAY,CAAA,CAE5C,IAAA,IAASP,CAAAA,CAAQ,CAAA,CAAGA,CAAAA,CAAQO,CAAAA,CAAcP,GAAS,CAAA,CAAG,CACpD,IAAMS,CAAAA,CAAcT,CAAAA,CAAQM,CAAAA,CACtBI,CAAAA,CAAO,IAAA,CAAK,KAAA,CAAMD,CAAW,CAAA,CAC7BE,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAID,CAAAA,CAAO,CAAA,CAAGP,CAAAA,CAAQ,MAAA,CAAS,CAAC,CAAA,CAC7CS,CAAAA,CAAWH,CAAAA,CAAcC,CAAAA,CACzBG,CAAAA,CAAaV,CAAAA,CAAQO,CAAI,CAAA,EAAK,CAAA,CAC9BI,CAAAA,CAAcX,CAAAA,CAAQQ,CAAK,CAAA,EAAK,CAAA,CACtCH,CAAAA,CAAOR,CAAK,CAAA,CAAIa,CAAAA,CAAAA,CAAcC,CAAAA,CAAcD,CAAAA,EAAcD,EAC5D,CAEA,OAAOJ,CACT,CAEA,SAASb,CAAAA,CAAaQ,CAAAA,CAAoC,CACxD,IAAMN,CAAAA,CAAS,IAAI,WAAA,CAAYM,CAAAA,CAAQ,MAAA,CAAS,CAAC,CAAA,CAC3CY,CAAAA,CAAO,IAAI,QAAA,CAASlB,CAAM,CAAA,CAEhC,IAAA,IAASG,CAAAA,CAAQ,CAAA,CAAGA,CAAAA,CAAQG,CAAAA,CAAQ,MAAA,CAAQH,CAAAA,EAAS,CAAA,CAAG,CACtD,IAAMgB,CAAAA,CAAS,IAAA,CAAK,GAAA,CAAI,EAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,CAAGb,CAAAA,CAAQH,CAAK,CAAA,EAAK,CAAC,CAAC,CAAA,CAC5De,CAAAA,CAAK,QAAA,CAASf,CAAAA,CAAQ,CAAA,CAAGgB,CAAAA,CAAS,CAAA,CAAIA,CAAAA,CAAS,KAAA,CAASA,CAAAA,CAAS,KAAA,CAAQ,IAAI,EAC/E,CAEA,OAAOnB,CACT,CChEO,IAAMoB,CAAAA,CAAN,cAA+B,KAAM,CAC1C,IAAA,CACA,MAAA,CAEA,WAAA,CAAYC,CAAAA,CAAgBC,CAAAA,CAAiBC,CAAAA,CAAsB,IAAA,CAAM,CACvE,KAAA,CAAMD,CAAO,CAAA,CACb,IAAA,CAAK,IAAA,CAAO,kBAAA,CACZ,IAAA,CAAK,IAAA,CAAOC,CAAAA,CACZ,IAAA,CAAK,MAAA,CAASF,EAChB,CACF,CAAA,CAuFA,SAASG,CAAAA,EAA2B,CAClC,GAAI,OAAO,MAAA,CAAW,GAAA,CACpB,OAAO,YAAA,CAGT,GAAM,CAAE,QAAA,CAAAC,CAAS,CAAA,CAAI,MAAA,CAAO,QAAA,CAO5B,OALEA,CAAAA,GAAa,WAAA,EACbA,CAAAA,GAAa,WAAA,EACbA,CAAAA,GAAa,cAAA,EACbA,CAAAA,CAAS,QAAA,CAAS,eAAe,CAAA,CAEhB,cAAA,CAAiB,YACtC,CAGO,SAASC,CAAAA,EAA4B,CAC1C,OAAO,CAAA,QAAA,EAAWF,CAAAA,EAAkB,CAAA,CACtC,CAGO,SAASG,CAAAA,CAAqBC,CAAAA,CAAmBC,CAAAA,CAAuB,CAC7E,OAAO,CAAA,QAAA,EAAWD,CAAS,CAAA,KAAA,EAAQJ,CAAAA,EAAkB,CAAA,qBAAA,EAAwB,kBAAA,CAAmBK,CAAK,CAAC,CAAA,CACxG,CAEO,SAASC,CAAAA,CAAgBF,CAAAA,CAA8B,CAC5D,IAAMG,CAAAA,CAAkB,CAAA,aAAA,EAAgBH,CAAS,CAAA,CAAA,CAC3CI,CAAAA,CAAsB,CAAA,EAAGD,CAAe,CAAA,YAAA,CAAA,CACxCE,CAAAA,CAAiB,CAAA,EAAGF,CAAe,CAAA,OAAA,CAAA,CACnCG,CAAAA,CAAqB,CAAA,EAAGH,CAAe,CAAA,YAAA,CAAA,CAE7C,eAAeI,CAAAA,CAAWC,CAAAA,CAAaC,CAAAA,CAAgC,CACrE,IAAMC,CAAAA,CAAW,MAAM,KAAA,CAAMF,CAAAA,CAAK,CAChC,WAAA,CAAa,SAAA,CACb,OAAA,CAAS,CACP,cAAA,CAAgB,kBAAA,CAChB,GAAIC,CAAAA,EAAM,OAAA,EAAW,EACvB,CAAA,CACA,GAAGA,CACL,CAAC,CAAA,CACKE,CAAAA,CAAQ,MAAMD,CAAAA,CAAS,IAAA,EAAK,CAElC,GAAI,CAACA,CAAAA,CAAS,EAAA,CAAI,CAChB,IAAME,CAAAA,CAAQD,CAAAA,EAAQ,OAAOA,CAAAA,EAAS,QAAA,EAAY,OAAA,GAAWA,CAAAA,CAAO,MAAA,CAAOA,CAAAA,CAAK,KAAK,CAAA,CAAI,iBAEzF,MAAM,IAAI,KAAA,CAAMC,CAAK,CACvB,CAEA,OAAOD,CACT,CAEA,OAAO,CACL,cAAA,CAAiBE,CAAAA,EAAUN,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,gBAAA,CAAA,CAAoB,CAAE,MAAA,CAAQ,MAAA,CAAQ,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUU,CAAK,CAAE,CAAC,CAAA,CACxH,iBAAA,CAAoBC,CAAAA,EAAOP,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,4BAAA,EAA+B,kBAAA,CAAmBW,CAAE,CAAC,CAAA,CAAE,CAAA,CAC5G,sBAAA,CAAwB,CAACA,CAAAA,CAAID,CAAAA,GAC3BN,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,oBAAA,EAAuB,kBAAA,CAAmBW,CAAE,CAAC,CAAA,CAAA,CAAI,CAAE,MAAA,CAAQ,OAAA,CAAS,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUD,CAAK,CAAE,CAAC,CAAA,CAC7H,gBAAA,CAAmBC,CAAAA,EAAOP,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,oBAAA,EAAuB,kBAAA,CAAmBW,CAAE,CAAC,CAAA,CAAA,CAAI,CAAE,MAAA,CAAQ,QAAS,CAAC,CAAA,CACzH,aAAA,CAAgBA,CAAAA,EAAOP,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,SAAA,EAAY,kBAAA,CAAmBW,CAAE,CAAC,CAAA,aAAA,CAAA,CAAiB,CAAE,MAAA,CAAQ,KAAA,CAAO,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,EAAE,CAAE,CAAC,CAAA,CAC/I,eAAA,CAAiB,CAACA,CAAAA,CAAID,CAAAA,GAAUN,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,SAAA,EAAY,kBAAA,CAAmBW,CAAE,CAAC,CAAA,OAAA,CAAA,CAAW,CAAE,MAAA,CAAQ,OAAA,CAAS,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUD,CAAK,CAAE,CAAC,CAAA,CACvJ,kBAAA,CAAqBC,CAAAA,EAAOP,CAAAA,CAAQ,CAAA,EAAGJ,CAAe,CAAA,oBAAA,EAAuB,kBAAA,CAAmBW,CAAE,CAAC,CAAA,cAAA,CAAA,CAAkB,CAAE,MAAA,CAAQ,MAAO,CAAC,CAAA,CACvI,SAAA,CAAW,MAAOC,CAAAA,EAChBR,CAAAA,CAAwB,CAAA,EAAGH,CAAmB,CAAA,MAAA,EAAS,kBAAA,CAAmBW,CAAK,CAAC,CAAA,OAAA,CAAA,CAAW,CAAE,MAAA,CAAQ,MAAO,CAAC,CAAA,CAC/G,eAAA,CAAiB,MAAOF,CAAAA,EACtBN,CAAAA,CAA6BD,CAAAA,CAAoB,CAC/C,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CAAE,OAAA,CAASO,CAAAA,EAAO,OAAA,EAAW,IAAK,CAAC,CAAA,CACxD,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,eAAA,CAAiB,MAAOG,CAAAA,EACtBT,CAAAA,CAA8B,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,CAAA,CAAI,CAAE,MAAA,CAAQ,QAAS,CAAC,CAAA,CAC3G,qBAAA,CAAuB,CAACA,CAAAA,CAAQC,CAAAA,GAC9B,CAAA,EAAGX,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,sBAAA,EAAyB,kBAAA,CAAmBC,CAAa,CAAC,CAAA,CAAA,CAC/G,eAAA,CAAiB,MAAOD,CAAAA,CAAQE,CAAAA,GAC9BX,CAAAA,CAA6B,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,CAAA,CAAI,CAClF,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CAAE,KAAA,CAAAE,CAAM,CAAC,CAAA,CAC9B,MAAA,CAAQ,OACV,CAAC,CAAA,CACH,oBAAA,CAAsB,MAAOF,CAAAA,CAAQH,CAAAA,GACnCN,CAAAA,CAAuB,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,SAAA,CAAA,CAAa,CACrF,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUH,CAAK,CAAA,CAC1B,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,uBAAA,CAAyB,MAAOG,CAAAA,CAAQG,CAAAA,GACtCZ,CAAAA,CAAQ,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,iBAAA,CAAA,CAAqB,CAC9E,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CAAE,QAAA,CAAAG,CAAS,CAAC,CAAA,CACjC,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,qBAAA,CAAuB,MAAOH,CAAAA,CAAQH,CAAAA,GACpCN,CAAAA,CAAiC,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,WAAA,CAAA,CAAe,CACjG,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUH,CAAK,CAAA,CAC1B,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,uBAAA,CAAyB,MAAOG,CAAAA,CAAQI,CAAAA,CAAYV,CAAAA,GAAa,CAC/D,IAAMW,CAAAA,CAAS,MAAM,KAAA,CACnB,CAAA,EAAGf,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,WAAA,EAAc,kBAAA,CAAmBI,CAAU,CAAC,CAAA,OAAA,CAAA,CAC/F,CACE,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUV,CAAQ,CAAA,CAC7B,WAAA,CAAa,SAAA,CACb,OAAA,CAAS,CAAE,cAAA,CAAgB,kBAAmB,CAAA,CAC9C,MAAA,CAAQ,MACV,CACF,CAAA,CACMC,CAAAA,CAAQ,MAAMU,CAAAA,CAAO,IAAA,EAAK,CAGhC,GAAI,CAACA,CAAAA,CAAO,EAAA,EAAM,CAACV,CAAAA,CAAK,QAAA,CACtB,MAAM,IAAI,KAAA,CAAMA,CAAAA,CAAK,YAAA,EAAgBA,CAAAA,CAAK,KAAA,EAAS,gBAAgB,CAAA,CAGrE,OAAO,CAAE,YAAA,CAAcU,CAAAA,CAAO,EAAA,CAAK,MAAA,CAAYV,CAAAA,CAAK,YAAA,CAAc,QAAA,CAAUA,CAAAA,CAAK,QAAS,CAC5F,CAAA,CACA,cAAA,CAAgB,MAAO,CAAE,WAAA,CAAAW,CAAAA,CAAa,OAAA,CAAAC,CAAAA,CAAS,OAAA,CAAAC,CAAQ,CAAA,GACrDjB,CAAAA,CAA8BD,CAAAA,CAAoB,CAChD,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CAAE,OAAA,CAAS,CAAE,WAAA,CAAAgB,EAAa,OAAA,CAAAC,CAAQ,CAAA,CAAG,OAAA,CAASC,CAAAA,EAAW,IAAK,CAAC,CAAA,CACpF,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,2BAAA,CAA6B,MAAOR,CAAAA,CAAQS,CAAAA,GAC1ClB,CAAAA,CACE,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,YAAA,EAAe,kBAAA,CAAmBS,CAAS,CAAC,CAAA,MAAA,CAAA,CAC/F,CAAE,MAAA,CAAQ,MAAO,CACnB,CAAA,CACF,aAAA,CAAe,MAAOT,CAAAA,EACpBT,CAAAA,CAAuC,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,KAAA,CAAA,CAAS,CACjG,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,oBAAA,CAAsB,MAAOA,CAAAA,CAAQU,CAAAA,GACnCnB,CAAAA,CACE,CAAA,EAAGD,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,UAAA,EAAa,kBAAA,CAAmBU,CAAS,CAAC,QAC7F,CAAE,MAAA,CAAQ,MAAO,CACnB,CAAA,CACF,oBAAA,CAAsB,MAAOC,CAAAA,CAAOC,CAAAA,GAAW,CAC7C,GAAM,CAAE,eAAA,CAAAzD,CAAAA,CAAiB,GAAA,CAAAF,CAAI,CAAA,CAAI,MAAMV,CAAAA,CAA0BoE,CAAK,CAAA,CAChEE,CAAAA,CAAW,IAAI,QAAA,CACrBA,CAAAA,CAAS,MAAA,CAAO,MAAA,CAAQ5D,CAAAA,CAAK,WAAW,CAAA,CACxC4D,CAAAA,CAAS,MAAA,CAAO,iBAAA,CAAmB,MAAA,CAAO1D,CAAe,CAAC,CAAA,CAE1D,IAAMuC,CAAAA,CAAW,MAAM,KAAA,CAAM,CAAA,EAAGP,CAAe,CAAA,iBAAA,CAAA,CAAqB,CAClE,IAAA,CAAM0B,CAAAA,CACN,WAAA,CAAa,SAAA,CACb,MAAA,CAAQ,MAAA,CACR,MAAA,CAAAD,CACF,CAAC,CAAA,CACKjB,CAAAA,CAAQ,MAAMD,CAAAA,CAAS,IAAA,EAAK,CAElC,GAAI,CAACA,CAAAA,CAAS,EAAA,CAAI,CAChB,IAAME,CAAAA,CAAQD,CAAAA,EAAQ,OAAOA,CAAAA,EAAS,QAAA,EAAYA,CAAAA,CAAK,KAAA,CAAQ,MAAA,CAAOA,CAAAA,CAAK,KAAK,CAAA,CAAI,gBAAA,CAEpF,MAAM,IAAI,KAAA,CAAMC,CAAK,CACvB,CAEA,GAAI,CAACD,CAAAA,CAAK,IAAA,EAAM,IAAA,EAAK,CACnB,MAAM,IAAI,KAAA,CAAM,sCAAsC,CAAA,CAGxD,OAAO,CAAE,IAAA,CAAMA,CAAAA,CAAK,IAAK,CAC3B,CAAA,CACA,yBAAA,CAA2B,MAAOmB,CAAAA,CAAMF,CAAAA,GAAW,CAIjD,IAAMG,CAAAA,CAAgB,MAAM,KAAA,CAAM,CAAA,EAAG5B,CAAe,CAAA,cAAA,CAAA,CAAkB,CACpE,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CAAE,QAAA,CAAU2B,CAAAA,CAAK,IAAA,CAAM,SAAA,CAAWA,CAAAA,CAAK,IAAA,EAAQ,IAAA,CAAM,SAAA,CAAWA,CAAAA,CAAK,IAAK,CAAC,CAAA,CAChG,WAAA,CAAa,SAAA,CACb,OAAA,CAAS,CAAE,cAAA,CAAgB,kBAAmB,CAAA,CAC9C,MAAA,CAAQ,MAAA,CACR,MAAA,CAAAF,CACF,CAAC,CAAA,CACKI,CAAAA,CAAa,MAAMD,CAAAA,CAAc,IAAA,EAAK,CAQ5C,GAAI,CAACA,CAAAA,CAAc,EAAA,EAAM,CAACC,CAAAA,CAAU,QAAA,EAAY,CAACA,CAAAA,CAAU,KAAA,EAAS,CAACA,CAAAA,CAAU,SAAA,CAC7E,MAAM,IAAIxC,CAAAA,CACRuC,CAAAA,CAAc,MAAA,CACdC,CAAAA,CAAU,KAAA,CAAQ,MAAA,CAAOA,CAAAA,CAAU,KAAK,CAAA,CAAI,iCAAA,CAC5CA,CAAAA,CAAU,IAAA,EAAQ,IACpB,CAAA,CAGF,IAAMxE,CAAAA,CAAO,MAAMyE,GAAAA,CAAID,CAAAA,CAAU,QAAA,CAAUF,CAAAA,CAAM,CAC/C,WAAA,CAAaF,CAAAA,CACb,MAAA,CAAQ,QAAA,CACR,WAAA,CAAaI,CAAAA,CAAU,SAAA,CACvB,MAAOA,CAAAA,CAAU,KACnB,CAAC,CAAA,CAED,OAAO,CACL,QAAA,CAAUF,CAAAA,CAAK,IAAA,CACf,SAAA,CAAWE,CAAAA,CAAU,SAAA,CACrB,SAAA,CAAWF,CAAAA,CAAK,IAAA,CAChB,GAAA,CAAKtE,CAAAA,CAAK,GACZ,CACF,CAAA,CACA,cAAA,CAAgB,MAAO0E,CAAAA,CAAYrB,CAAAA,GAAU,CAC3C,IAAMH,CAAAA,CAAW,MAAM,KAAA,CAAM,CAAA,EAAGN,CAAmB,CAAA,WAAA,EAAc,kBAAA,CAAmB8B,CAAU,CAAC,CAAA,OAAA,CAAA,CAAW,CACxG,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUrB,CAAK,CAAA,CAC1B,WAAA,CAAa,SAAA,CACb,OAAA,CAAS,CACP,cAAA,CAAgB,kBAClB,CAAA,CACA,MAAA,CAAQ,MACV,CAAC,CAAA,CACKF,CAAAA,CAAQ,MAAMD,CAAAA,CAAS,IAAA,EAAK,CAIlC,GAAI,CAACA,CAAAA,CAAS,EAAA,EAAM,OAAOC,CAAAA,CAAK,OAAA,EAAY,SAAA,CAC1C,MAAM,IAAI,KAAA,CAAMA,CAAAA,CAAK,KAAA,CAAQ,MAAA,CAAOA,CAAAA,CAAK,KAAK,CAAA,CAAI,gBAAgB,CAAA,CAGpE,OAAOA,CACT,CAAA,CACA,gBAAA,CAAkB,MAAOwB,CAAAA,EACvB5B,CAAAA,CAA8B,CAAA,EAAGJ,CAAe,CAAA,cAAA,CAAA,CAAkB,CAChE,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUgC,CAAAA,GAAQ,KAAA,CAAQ,CAAE,GAAA,CAAK,IAAK,CAAA,CAAI,CAAE,GAAA,CAAAA,CAAI,CAAC,CAAA,CAC5D,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,oBAAA,CAAsB,MAAOC,CAAAA,CAAQC,CAAAA,GACnC9B,CAAAA,CAAgC,CAAA,EAAGJ,CAAe,CAAA,UAAA,EAAa,kBAAA,CAAmBiC,CAAM,CAAC,CAAA,CAAA,CAAI,CAC3F,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU,CAAE,KAAA,CAAAC,CAAM,CAAC,CAAA,CAC9B,MAAA,CAAQ,OACV,CAAC,CAAA,CACH,gBAAA,CAAkB,MAAOxB,CAAAA,EACvBN,CAAAA,CAAsDH,CAAAA,CAAqB,CACzE,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUS,CAAK,CAAA,CAC1B,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,WAAA,CAAa,MAAOA,CAAAA,EAClBN,CAAAA,CAA4CF,CAAAA,CAAgB,CAC1D,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUQ,CAAK,CAAA,CAC1B,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,gBAAA,CAAkB,MAAOyB,CAAAA,EACvB/B,CAAAA,CAAwB,CAAA,EAAGH,CAAmB,CAAA,CAAA,EAAI,kBAAA,CAAmBkC,CAAY,CAAC,CAAA,CAAA,CAAI,CAAE,MAAA,CAAQ,QAAS,CAAC,CAAA,CAC5G,WAAA,CAAa,MAAOC,CAAAA,EAClBhC,CAAAA,CAAwB,CAAA,EAAGF,CAAc,CAAA,CAAA,EAAI,kBAAA,CAAmBkC,CAAO,CAAC,CAAA,CAAA,CAAI,CAAE,MAAA,CAAQ,QAAS,CAAC,CAAA,CAClG,cAAA,CAAgB,CAACC,CAAAA,CAAYC,CAAAA,GAAY,CACvC,IAAMC,CAAAA,CAASD,CAAAA,EAAS,QAAA,CAAW,aAAA,CAAgB,EAAA,CAEnD,OAAO,CAAA,EAAGrC,CAAmB,CAAA,WAAA,EAAc,kBAAA,CAAmBoC,CAAU,CAAC,CAAA,QAAA,EAAWE,CAAM,CAAA,CAC5F,CAAA,CACA,eAAA,CAAiB,MAAOzB,CAAAA,EACtBV,CAAAA,CACE,CAAA,EAAGH,CAAmB,CAAA,MAAA,EAAS,kBAAA,CAAmBa,CAAa,CAAC,CAAA,UAAA,CAClE,CAAA,CAAE,IAAA,CAAMP,CAAAA,EAAaA,CAAAA,CAAS,SAAS,CAAA,CACzC,YAAA,CAAeO,CAAAA,EAAkB,CAAA,EAAGb,CAAmB,CAAA,MAAA,EAAS,kBAAA,CAAmBa,CAAa,CAAC,CAAA,OAAA,CAAA,CACjG,gBAAA,CAAmBF,CAAAA,EAAU,CAAA,EAAGX,CAAmB,CAAA,MAAA,EAAS,kBAAA,CAAmBW,CAAK,CAAC,CAAA,WAAA,CAAA,CACrF,YAAA,CAAc,MAAO4B,CAAAA,CAAUC,CAAAA,GAAiB,CAC9C,IAAMpC,CAAAA,CAAMoC,EACR,CAAA,EAAGzC,CAAe,CAAA,oBAAA,EAAuB,kBAAA,CAAmByC,CAAY,CAAC,CAAA,SAAA,CAAA,CACzE,CAAA,EAAGzC,CAAe,CAAA,SAAA,EAAYwC,CAAQ,CAAA,SAAA,CAAA,CACpCjC,CAAAA,CAAW,MAAM,KAAA,CAAMF,CAAAA,CAAK,CAChC,WAAA,CAAa,SAAA,CACb,OAAA,CAAS,CACP,cAAA,CAAgB,kBAClB,CACF,CAAC,CAAA,CACKG,CAAAA,CAAQ,MAAMD,CAAAA,CAAS,IAAA,EAAK,CAOlC,GAAIA,CAAAA,CAAS,EAAA,CACX,OAAO,CACL,QAAA,CAAUC,CAAAA,CAAK,QAAA,EAAY,EAAC,CAC5B,YAAA,CAAcA,CAAAA,CAAK,YAAA,CACnB,OAAA,CAASA,CAAAA,CAAK,OAAA,EAAW,IAC3B,CAAA,CAGF,GAAIA,CAAAA,CAAK,OAAA,GAAY,KAAA,CACnB,OAAO,CACL,QAAA,CAAUA,CAAAA,CAAK,QAAA,EAAY,EAAC,CAC5B,YAAA,CAAcA,CAAAA,CAAK,YAAA,EAAgB,CAAA,eAAA,EAAkBgC,IAAa,OAAA,CAAU,OAAA,CAAU,OAAO,CAAA,UAAA,CAAA,CAC7F,OAAA,CAAS,KACX,CAAA,CAGF,IAAM/B,CAAAA,CAAQD,CAAAA,CAAK,KAAA,CAAQ,MAAA,CAAOA,CAAAA,CAAK,KAAK,CAAA,CAAI,gBAAA,CAEhD,MAAM,IAAI,KAAA,CAAMC,CAAK,CACvB,CAAA,CACA,aAAA,CAAe,MAAO0B,CAAAA,EACpB/B,CAAAA,CAA6C,CAAA,EAAGH,CAAmB,CAAA,CAAA,EAAI,kBAAA,CAAmBkC,CAAY,CAAC,CAAA,KAAA,CAAA,CAAS,CAC9G,MAAA,CAAQ,MACV,CAAC,CAAA,CACH,gBAAA,CAAkB,MAAOA,CAAAA,CAAczB,CAAAA,GACrCN,CAAAA,CACE,CAAA,EAAGH,CAAmB,CAAA,CAAA,EAAI,kBAAA,CAAmBkC,CAAY,CAAC,CAAA,CAAA,CAC1D,CACE,IAAA,CAAM,IAAA,CAAK,SAAA,CAAUzB,CAAK,CAAA,CAC1B,MAAA,CAAQ,OACV,CACF,CAAA,CACF,WAAA,CAAa,MAAO0B,CAAAA,CAAS1B,CAAAA,GAC3BN,EAA4C,CAAA,EAAGF,CAAc,CAAA,CAAA,EAAI,kBAAA,CAAmBkC,CAAO,CAAC,CAAA,CAAA,CAAI,CAC9F,IAAA,CAAM,IAAA,CAAK,SAAA,CAAU1B,CAAK,CAAA,CAC1B,MAAA,CAAQ,OACV,CAAC,CACL,CACF,CAEO,IAAMgC,CAAAA,CAAN,cAA2B,KAAM,CACtC,MAAA,CAEA,WAAA,CAAYpD,CAAAA,CAAgBC,CAAAA,CAAU,gBAAA,CAAkB,CACtD,KAAA,CAAMA,CAAO,CAAA,CACb,IAAA,CAAK,IAAA,CAAO,cAAA,CACZ,IAAA,CAAK,MAAA,CAASD,EAChB,CACF,CAAA,CAEaqD,CAAAA,CAAU,MAAUtC,CAAAA,EAA4B,CAC3D,IAAME,CAAAA,CAAW,MAAM,KAAA,CAAMF,CAAAA,CAAK,CAAE,WAAA,CAAa,SAAU,CAAC,CAAA,CAE5D,GAAI,CAACE,CAAAA,CAAS,EAAA,CACZ,MAAM,IAAImC,CAAAA,CAAanC,CAAAA,CAAS,MAAM,CAAA,CAGxC,OAAQ,MAAMA,CAAAA,CAAS,IAAA,EACzB,EAEO,SAASqC,CAAAA,CAAM/C,CAAAA,CAoCpB,CACA,IAAMgD,CAAAA,CAAW,CAAA,aAAA,EAAgBhD,CAAS,CAAA,YAAA,CAAA,CACpCK,CAAAA,CAAiB,CAAA,aAAA,EAAgBL,CAAS,CAAA,OAAA,CAAA,CAC1CM,CAAAA,CAAqB,CAAA,aAAA,EAAgBN,CAAS,CAAA,YAAA,CAAA,CAEpD,OAAO,CACL,QAAA,CAAU,CAACyC,CAAAA,CAAU,EAAC,GAAM,CAC1B,GAAM,CAAE,MAAA,CAAAQ,CAAAA,CAAS,KAAA,CAAO,KAAA,CAAAC,CAAAA,CAAQ,EAAA,CAAI,MAAA,CAAAC,CAAAA,CAAS,CAAE,CAAA,CAAIV,CAAAA,CAC7CW,CAAAA,CAAS,IAAI,eAAA,CAAgB,CAAE,MAAA,CAAAH,CAAAA,CAAQ,KAAA,CAAOC,CAAAA,CAAM,QAAA,EAAS,CAAG,MAAA,CAAQC,CAAAA,CAAO,QAAA,EAAW,CAAC,CAAA,CAEjG,OAAO,CAAA,aAAA,EAAgBnD,CAAS,aAAaoD,CAAAA,CAAO,QAAA,EAAU,CAAA,CAChE,CAAA,CACA,YAAA,CAAehB,CAAAA,EAAW,CAAA,aAAA,EAAgBpC,CAAS,CAAA,UAAA,EAAa,kBAAA,CAAmBoC,CAAM,CAAC,CAAA,CAAA,CAC1F,eAAA,CAAkBiB,CAAAA,EAChBA,CAAAA,CACI,CAAA,aAAA,EAAgBrD,CAAS,CAAA,wBAAA,EAA2B,kBAAA,CAAmBqD,CAAK,CAAC,CAAA,CAAA,CAC7E,CAAA,aAAA,EAAgBrD,CAAS,CAAA,iBAAA,CAAA,CAC/B,SAAA,CAAYgB,CAAAA,EAAW,CAAA,EAAGV,CAAkB,CAAA,CAAA,EAAI,kBAAA,CAAmBU,CAAM,CAAC,CAAA,CAAA,CAC1E,eAAA,CAAkBsC,CAAAA,EAAU,CAAA,EAAGhD,CAAkB,CAAA,UAAA,EAAa,kBAAA,CAAmBgD,CAAK,CAAC,CAAA,CAAA,CACvF,UAAA,CAAY,CAACH,CAAAA,CAAS,CAAA,GAAM,CAAA,EAAG7C,CAAkB,CAAA,QAAA,EAAW6C,CAAAA,CAAO,QAAA,EAAU,CAAA,CAAA,CAC7E,YAAA,CAAc,IAAM,CAAA,aAAA,EAAgBnD,CAAS,CAAA,cAAA,CAAA,CAC7C,QAAA,CAAWkC,CAAAA,EAAe,CAAA,EAAGc,CAAQ,CAAA,WAAA,EAAc,kBAAA,CAAmBd,CAAU,CAAC,CAAA,CAAA,CACjF,SAAA,CAAW,CAACO,CAAAA,CAAU,EAAC,GAAM,CAC3B,GAAM,CAAE,KAAA,CAAAS,CAAAA,CAAQ,EAAA,CAAI,MAAA,CAAAC,CAAAA,CAAS,CAAA,CAAG,KAAA,CAAApC,CAAAA,CAAO,MAAA,CAAAtB,CAAO,CAAA,CAAIgD,CAAAA,CAC5CW,CAAAA,CAAS,IAAI,eAAA,CAAgB,CACjC,KAAA,CAAOF,CAAAA,CAAM,QAAA,EAAS,CACtB,MAAA,CAAQC,CAAAA,CAAO,QAAA,EACjB,CAAC,CAAA,CAED,OAAI1D,CAAAA,EACF2D,CAAAA,CAAO,GAAA,CAAI,QAAA,CAAU3D,CAAM,CAAA,CAGzBsB,CAAAA,EACFqC,CAAAA,CAAO,GAAA,CAAI,OAAA,CAASrC,CAAK,CAAA,CAGpB,CAAA,EAAGiC,CAAQ,CAAA,WAAA,EAAcI,CAAAA,CAAO,QAAA,EAAU,CAAA,CACnD,CAAA,CACA,cAAA,CAAgB,CAAA,EAAGJ,CAAQ,qBAC3B,UAAA,CAAaV,CAAAA,EAAiB,CAAA,EAAGU,CAAQ,CAAA,CAAA,EAAI,kBAAA,CAAmBV,CAAY,CAAC,CAAA,CAAA,CAC7E,cAAA,CAAgB,CAACA,CAAAA,CAAca,CAAAA,CAAS,CAAA,CAAGD,CAAAA,CAAQ,EAAA,GACjD,CAAA,EAAGF,CAAQ,CAAA,CAAA,EAAI,kBAAA,CAAmBV,CAAY,CAAC,CAAA,aAAA,EAAgBa,CAAAA,CAAO,QAAA,EAAU,CAAA,OAAA,EAAUD,CAAAA,CAAM,QAAA,EAAU,CAAA,CAAA,CAC5G,WAAA,CAAa,CAACT,CAAAA,CAAU,EAAC,GAAM,CAC7B,GAAM,CAAE,OAAA,CAAAc,CAAAA,CAAS,KAAA,CAAAL,CAAAA,CAAQ,EAAA,CAAI,MAAA,CAAAC,CAAAA,CAAS,CAAA,CAAG,MAAA,CAAAK,CAAAA,CAAQ,UAAA,CAAAC,CAAW,CAAA,CAAIhB,CAAAA,CAC1DW,CAAAA,CAAS,IAAI,eAAA,CAAgB,CACjC,KAAA,CAAOF,CAAAA,CAAM,QAAA,EAAS,CACtB,MAAA,CAAQC,CAAAA,CAAO,QAAA,EACjB,CAAC,CAAA,CAEGI,CAAAA,EAAWA,CAAAA,CAAQ,MAAA,CAAS,CAAA,EAC9BH,CAAAA,CAAO,GAAA,CAAI,SAAA,CAAWG,CAAAA,CAAQ,GAAA,CAAKG,CAAAA,EAAWA,CAAAA,CAAQ,MAAA,CAAS,OAAQ,CAAA,CAAE,IAAA,CAAK,GAAG,CAAC,CAAA,CAGhFD,CAAAA,EAAcA,CAAAA,CAAW,MAAA,CAAS,CAAA,EACpCL,CAAAA,CAAO,GAAA,CAAI,YAAA,CAAcK,CAAAA,CAAW,IAAA,CAAK,GAAG,CAAC,CAAA,CAG/C,IAAME,CAAAA,CAAgBH,CAAAA,EAAQ,IAAA,EAAK,CAEnC,OAAIG,CAAAA,EACFP,CAAAA,CAAO,GAAA,CAAI,GAAA,CAAKO,CAAa,CAAA,CAGxB,CAAA,EAAGX,CAAQ,CAAA,CAAA,EAAII,CAAAA,CAAO,QAAA,EAAU,CAAA,CACzC,CAAA,CACA,aAAA,CAAe,CAAA,EAAGJ,CAAQ,CAAA,QAAA,CAAA,CAC1B,QAAA,CAAU,CAAA,EAAGA,CAAQ,CAAA,SAAA,CAAA,CACrB,GAAA,CAAMjC,CAAAA,EAAU,CAAA,EAAGiC,CAAQ,CAAA,MAAA,EAAS,kBAAA,CAAmBjC,CAAK,CAAC,CAAA,CAAA,CAC7D,UAAA,CAAY,CAAC6C,CAAAA,CAAOT,CAAAA,CAAS,CAAA,CAAGD,CAAAA,CAAQ,EAAA,GACtC,CAAA,EAAGF,CAAQ,CAAA,YAAA,EAAeY,CAAK,CAAA,QAAA,EAAWT,CAAAA,CAAO,QAAA,EAAU,CAAA,OAAA,EAAUD,CAAAA,CAAM,QAAA,EAAU,CAAA,CAAA,CACvF,KAAA,CAAQX,CAAAA,EAAY,CAAA,EAAGlC,CAAc,CAAA,CAAA,EAAI,kBAAA,CAAmBkC,CAAO,CAAC,CAAA,CAAA,CACpE,MAAA,CAAQ,CAACE,CAAAA,CAAU,EAAC,GAAM,CACxB,GAAM,CAAE,KAAA,CAAAS,CAAAA,CAAQ,EAAA,CAAI,MAAA,CAAAC,CAAAA,CAAS,CAAA,CAAG,MAAA,CAAAK,CAAAA,CAAQ,UAAA,CAAAC,CAAW,CAAA,CAAIhB,CAAAA,CACjDW,CAAAA,CAAS,IAAI,eAAA,CAAgB,CACjC,KAAA,CAAOF,CAAAA,CAAM,QAAA,EAAS,CACtB,MAAA,CAAQC,CAAAA,CAAO,UACjB,CAAC,CAAA,CAEGM,CAAAA,EAAcA,CAAAA,CAAW,MAAA,CAAS,CAAA,EACpCL,CAAAA,CAAO,GAAA,CAAI,YAAA,CAAcK,CAAAA,CAAW,IAAA,CAAK,GAAG,CAAC,CAAA,CAG/C,IAAME,CAAAA,CAAgBH,CAAAA,EAAQ,IAAA,EAAK,CAEnC,OAAIG,CAAAA,EACFP,CAAAA,CAAO,GAAA,CAAI,GAAA,CAAKO,CAAa,CAAA,CAGxB,CAAA,EAAGtD,CAAc,CAAA,CAAA,EAAI+C,CAAAA,CAAO,QAAA,EAAU,CAAA,CAC/C,CAAA,CACA,MAAA,CAAQ,CAAA,aAAA,EAAgBpD,CAAS,CAAA,OAAA,CAAA,CACjC,OAAA,CAAU6D,CAAAA,EACRA,CAAAA,CACI,CAAA,aAAA,EAAgB7D,CAAS,CAAA,iBAAA,EAAoB,kBAAA,CAAmB6D,CAAO,CAAC,CAAA,CAAA,CACxE,CAAA,aAAA,EAAgB7D,CAAS,CAAA,QAAA,CAAA,CAC/B,KAAA,CAAQsC,CAAAA,EACNA,CAAAA,CAAe,CAAA,EAAGU,CAAQ,CAAA,CAAA,EAAI,kBAAA,CAAmBV,CAAY,CAAC,CAAA,MAAA,CAAA,CAAW,CAAA,EAAGU,CAAQ,QACxF,CACF","file":"chunk-2HSIWUH3.js","sourcesContent":["export const DICTATION_SAMPLE_RATE = 24_000;\nexport const DICTATION_MAX_DURATION_SECONDS = 60;\nexport const DICTATION_MIN_DURATION_SECONDS = 0.25;\n\nexport function appendDictatedText(existing: string, transcript: string): string {\n const dictated = transcript.trim();\n\n if (!dictated) {\n return existing;\n }\n\n if (!existing.trim()) {\n return existing.length === 0 ? dictated : `${existing}${dictated}`;\n }\n\n if (/\\s$/.test(existing) || /^[.,!?;:]/.test(dictated)) {\n return `${existing}${dictated}`;\n }\n\n return `${existing} ${dictated}`;\n}\n\nexport async function convertRecordedAudioToPcm(blob: Blob): Promise<{ durationSeconds: number; pcm: Blob }> {\n if (typeof window === 'undefined') {\n throw new Error('Dictation is only available in the browser.');\n }\n\n const AudioContextCtor = window.AudioContext ?? window.webkitAudioContext;\n\n if (!AudioContextCtor) {\n throw new Error('This browser cannot decode recorded audio.');\n }\n\n const arrayBuffer = await blob.arrayBuffer();\n const audioContext = new AudioContextCtor();\n\n try {\n const audioBuffer = await audioContext.decodeAudioData(arrayBuffer.slice(0));\n const mono = mixToMono(audioBuffer);\n const resampled = resample(mono, audioBuffer.sampleRate, DICTATION_SAMPLE_RATE);\n const pcm = floatToPcm16(resampled);\n const durationSeconds = resampled.length / DICTATION_SAMPLE_RATE;\n\n if (durationSeconds < DICTATION_MIN_DURATION_SECONDS) {\n throw new Error('No speech was captured. Try again.');\n }\n\n if (durationSeconds > DICTATION_MAX_DURATION_SECONDS) {\n throw new Error(`Dictation is limited to ${String(DICTATION_MAX_DURATION_SECONDS)} seconds.`);\n }\n\n return {\n durationSeconds,\n pcm: new Blob([pcm], { type: 'audio/pcm' }),\n };\n } finally {\n await audioContext.close();\n }\n}\n\nfunction mixToMono(buffer: AudioBuffer): Float32Array {\n const { length, numberOfChannels: channelCount } = buffer;\n\n if (channelCount === 1) {\n return buffer.getChannelData(0).slice();\n }\n\n const mono = new Float32Array(length);\n\n for (let index = 0; index < length; index += 1) {\n let sum = 0;\n\n for (let channel = 0; channel < channelCount; channel += 1) {\n sum += buffer.getChannelData(channel)[index] ?? 0;\n }\n\n mono[index] = sum / channelCount;\n }\n\n return mono;\n}\n\nfunction resample(samples: Float32Array, sourceRate: number, targetRate: number): Float32Array {\n if (sourceRate === targetRate) {\n return samples;\n }\n\n const ratio = sourceRate / targetRate;\n const outputLength = Math.max(1, Math.round(samples.length / ratio));\n const output = new Float32Array(outputLength);\n\n for (let index = 0; index < outputLength; index += 1) {\n const sourceIndex = index * ratio;\n const left = Math.floor(sourceIndex);\n const right = Math.min(left + 1, samples.length - 1);\n const fraction = sourceIndex - left;\n const leftSample = samples[left] ?? 0;\n const rightSample = samples[right] ?? 0;\n output[index] = leftSample + (rightSample - leftSample) * fraction;\n }\n\n return output;\n}\n\nfunction floatToPcm16(samples: Float32Array): ArrayBuffer {\n const buffer = new ArrayBuffer(samples.length * 2);\n const view = new DataView(buffer);\n\n for (let index = 0; index < samples.length; index += 1) {\n const sample = Math.max(-1, Math.min(1, samples[index] ?? 0));\n view.setInt16(index * 2, sample < 0 ? sample * 0x8000 : sample * 0x7fff, true);\n }\n\n return buffer;\n}\n\ndeclare global {\n interface Window {\n webkitAudioContext?: typeof AudioContext;\n }\n}\n","import type { PluginConnection, PluginScope, PluginTools } from './plugin-types';\nimport { put } from '@vercel/blob/client';\nimport { convertRecordedAudioToPcm } from './agent/dictation';\nimport type {\n ActivityItem,\n ActivityItemState,\n AgentChat,\n AgentChatAttachment,\n AgentChatFollowUpResult,\n AgentChatMessage,\n AgentChatMonitor,\n AgentChatQuestion,\n AgentChatQuestionResponse,\n AgentChatTurn,\n Automation,\n AutomationApproval,\n AutomationApprovalStatus,\n AutomationArtifact,\n AutomationInput,\n AutomationToolChannel,\n AutomationToolProvider,\n AutomationVisibility,\n MutationResult,\n Skill,\n SkillInput,\n} from './types';\n\nexport interface DecideApprovalInput {\n /** Approve and always allow this plugin tool for the automation. */\n remember?: boolean;\n approved: boolean;\n /** For a proposed automation: the approver's edited instructions and whether to run it once now. */\n automationEdits?: { instructions?: string; runOnce?: boolean };\n force?: boolean;\n reason?: string;\n}\n\nexport interface SendAgentChatMessageInput {\n attachments?: AgentChatAttachment[];\n content: string;\n modelId?: string | null;\n}\n\n/** A new chat and its first turn, started by one request. */\nexport interface StartAgentChatResult {\n chat: AgentChat;\n turn: AgentChatTurn;\n}\n\n/** Thrown when the API refuses an upload; `code` lets the UI tailor the message. */\nexport class AgentUploadError extends Error {\n code: string | null;\n status: number;\n\n constructor(status: number, message: string, code: string | null = null) {\n super(message);\n this.name = 'AgentUploadError';\n this.code = code;\n this.status = status;\n }\n}\n\nexport interface ApiClient {\n /** Starts OAuth for a new account, or for `connectionId` to reconnect that specific account. */\n connectPlugins: (_input: {\n pluginId: string;\n scope: PluginScope;\n studioOrigin: string;\n connectionId?: string;\n }) => Promise<{ transactionId: string; authorizeUrl: string; completionOrigin: string; launchTicket: string }>;\n /** Renames (label null resets to the provider name) or makes a connection primary. */\n updatePluginConnection: (\n _id: string,\n _input: { label?: string | null; primary?: true }\n ) => Promise<{ connection: PluginConnection }>;\n pluginOAuthStatus: (_id: string) => Promise<{ id: string; status: 'pending' | 'exchanging' | 'complete' | 'failed'; expires_at: string }>;\n disconnectPlugin: (_id: string) => Promise<{ success: boolean }>;\n installPlugin: (_id: string) => Promise<unknown>;\n setPluginPolicy: (_id: string, _input: { enabled: boolean; allowPersonal: boolean }) => Promise<{ success: boolean }>;\n refreshPluginTools: (_id: string) => Promise<PluginTools>;\n\n cancelRun: (_runId: string) => Promise<MutationResult>;\n createAgentChat: (_input?: { modelId?: string | null }) => Promise<{ chat: AgentChat }>;\n deleteAgentChat: (_chatId: string) => Promise<{ success: boolean }>;\n getAgentChatStreamUrl: (_chatId: string, _workflowRunId: string) => string;\n renameAgentChat: (_chatId: string, _title: string) => Promise<{ chat: AgentChat }>;\n sendAgentChatMessage: (_chatId: string, _input: SendAgentChatMessageInput) => Promise<AgentChatTurn>;\n /**\n * Sends a message while the chat's turn is running. The platform decides\n * whether it steers that turn or waits as the next one; if the turn has\n * meanwhile ended, the message starts the next turn.\n */\n sendAgentChatFollowUp: (_chatId: string, _input: SendAgentChatMessageInput) => Promise<AgentChatFollowUpResult>;\n /** The user connected a plugin from the chat's connect card: starts the turn that uses it, or queues it. */\n announcePluginConnected: (\n _chatId: string,\n _pluginId: string\n ) => Promise<Extract<AgentChatFollowUpResult, { followUp: unknown } | { turn: unknown }>>;\n /** Answers (or dismisses) the questions a chat turn waits on; a settled question comes back with an error. */\n answerAgentChatQuestion: (\n _chatId: string,\n _questionId: string,\n _response: AgentChatQuestionResponse\n ) => Promise<{ errorMessage?: string; question?: AgentChatQuestion }>;\n /** Creates a chat and sends its first message in one request. */\n startAgentChat: (_input: SendAgentChatMessageInput) => Promise<StartAgentChatResult>;\n /** Starts the next turn from a queued follow-up once the previous turn has ended. */\n startQueuedAgentChatMessage: (_chatId: string, _messageId: string) => Promise<AgentChatTurn>;\n stopAgentChat: (_chatId: string) => Promise<{ message: AgentChatMessage }>;\n stopAgentChatMonitor: (_chatId: string, _monitorId: string) => Promise<{ monitor: AgentChatMonitor }>;\n transcribeAgentAudio: (_audio: Blob, _signal?: AbortSignal) => Promise<{ text: string }>;\n /** Uploads a chat attachment straight to the platform file store. */\n uploadAgentChatAttachment: (_file: File, _signal?: AbortSignal) => Promise<AgentChatAttachment>;\n decideApproval: (\n _approvalId: string,\n _input: DecideApprovalInput\n ) => Promise<MutationResult & { approval?: AutomationApproval }>;\n createAutomation: (_input: AutomationInput) => Promise<MutationResult & { automation?: Automation }>;\n createSkill: (_input: SkillInput) => Promise<MutationResult & { skill?: Skill }>;\n deleteAutomation: (_automationId: string) => Promise<MutationResult>;\n deleteSkill: (_skillId: string) => Promise<MutationResult>;\n getArtifactUrl: (_artifactId: string, _options?: { download?: boolean }) => string;\n getRunArtifacts: (_workflowRunId: string) => Promise<AutomationArtifact[]>;\n getStreamUrl: (_workflowRunId: string) => string;\n /** JSON transcript of a finished run (owners and developers). */\n getTranscriptUrl: (_runId: string) => string;\n /** Lists delivery channels of `connectionId`, or of the provider's primary project account when omitted. */\n listChannels: (_provider: AutomationToolProvider, _connectionId?: string | null) => Promise<{\n channels: AutomationToolChannel[];\n errorMessage?: string;\n success: boolean;\n }>;\n runAutomation: (_automationId: string) => Promise<MutationResult & { runId?: string }>;\n updateAutomation: (\n _automationId: string,\n _input: AutomationInput\n ) => Promise<MutationResult & { automation?: Automation }>;\n updateSkill: (_skillId: string, _input: SkillInput) => Promise<MutationResult & { skill?: Skill }>;\n /** Marks the caller's Activity items read; `'all'` marks every unread item. */\n markActivityRead: (_ids: string[] | 'all') => Promise<{ success: boolean }>;\n setActivityItemState: (\n _itemId: string,\n _state: Extract<ActivityItemState, 'unread' | 'read' | 'dismissed'>\n ) => Promise<{ item: ActivityItem }>;\n}\n\n\nfunction getApiRootDomain(): string {\n if (typeof window === 'undefined') {\n return 'flexkit.io';\n }\n\n const { hostname } = window.location;\n const isDevHost =\n hostname === 'localhost' ||\n hostname === '127.0.0.1' ||\n hostname === 'flexkit.test' ||\n hostname.endsWith('.flexkit.test');\n\n return isDevHost ? 'flexkit.test' : 'flexkit.io';\n}\n\n/** Origin that hosts plugin OAuth start and completion. */\nexport function getPlatformOrigin(): string {\n return `https://${getApiRootDomain()}`;\n}\n\n/** Public URL an external system calls to fire a webhook trigger. */\nexport function getWebhookTriggerUrl(projectId: string, token: string): string {\n return `https://${projectId}.api.${getApiRootDomain()}/automations/webhook/${encodeURIComponent(token)}`;\n}\n\nexport function createApiClient(projectId: string): ApiClient {\n const projectBasePath = `/api/flexkit/${projectId}`;\n const automationsBasePath = `${projectBasePath}/automations`;\n const skillsBasePath = `${projectBasePath}/skills`;\n const agentChatsBasePath = `${projectBasePath}/agent/chats`;\n\n async function request<T>(url: string, init?: RequestInit): Promise<T> {\n const response = await fetch(url, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n ...(init?.headers ?? {}),\n },\n ...init,\n });\n const data = (await response.json()) as T;\n\n if (!response.ok) {\n const error = data && typeof data === 'object' && 'error' in data ? String(data.error) : 'Request failed';\n\n throw new Error(error);\n }\n\n return data;\n }\n\n return {\n connectPlugins: (input) => request(`${projectBasePath}/plugins/connect`, { method: 'POST', body: JSON.stringify(input) }),\n pluginOAuthStatus: (id) => request(`${projectBasePath}/plugins/oauth-transactions/${encodeURIComponent(id)}`),\n updatePluginConnection: (id, input) =>\n request(`${projectBasePath}/plugin-connections/${encodeURIComponent(id)}`, { method: 'PATCH', body: JSON.stringify(input) }),\n disconnectPlugin: (id) => request(`${projectBasePath}/plugin-connections/${encodeURIComponent(id)}`, { method: 'DELETE' }),\n installPlugin: (id) => request(`${projectBasePath}/plugins/${encodeURIComponent(id)}/installation`, { method: 'PUT', body: JSON.stringify({}) }),\n setPluginPolicy: (id, input) => request(`${projectBasePath}/plugins/${encodeURIComponent(id)}/policy`, { method: 'PATCH', body: JSON.stringify(input) }),\n refreshPluginTools: (id) => request(`${projectBasePath}/plugin-connections/${encodeURIComponent(id)}/tools/refresh`, { method: 'POST' }),\n cancelRun: async (runId) =>\n request<MutationResult>(`${automationsBasePath}/runs/${encodeURIComponent(runId)}/cancel`, { method: 'POST' }),\n createAgentChat: async (input) =>\n request<{ chat: AgentChat }>(agentChatsBasePath, {\n body: JSON.stringify({ modelId: input?.modelId ?? null }),\n method: 'POST',\n }),\n deleteAgentChat: async (chatId) =>\n request<{ success: boolean }>(`${agentChatsBasePath}/${encodeURIComponent(chatId)}`, { method: 'DELETE' }),\n getAgentChatStreamUrl: (chatId, workflowRunId) =>\n `${agentChatsBasePath}/${encodeURIComponent(chatId)}/stream?workflowRunId=${encodeURIComponent(workflowRunId)}`,\n renameAgentChat: async (chatId, title) =>\n request<{ chat: AgentChat }>(`${agentChatsBasePath}/${encodeURIComponent(chatId)}`, {\n body: JSON.stringify({ title }),\n method: 'PATCH',\n }),\n sendAgentChatMessage: async (chatId, input) =>\n request<AgentChatTurn>(`${agentChatsBasePath}/${encodeURIComponent(chatId)}/messages`, {\n body: JSON.stringify(input),\n method: 'POST',\n }),\n announcePluginConnected: async (chatId, pluginId) =>\n request(`${agentChatsBasePath}/${encodeURIComponent(chatId)}/plugin-connected`, {\n body: JSON.stringify({ pluginId }),\n method: 'POST',\n }),\n sendAgentChatFollowUp: async (chatId, input) =>\n request<AgentChatFollowUpResult>(`${agentChatsBasePath}/${encodeURIComponent(chatId)}/follow-ups`, {\n body: JSON.stringify(input),\n method: 'POST',\n }),\n answerAgentChatQuestion: async (chatId, questionId, response) => {\n const result = await fetch(\n `${agentChatsBasePath}/${encodeURIComponent(chatId)}/questions/${encodeURIComponent(questionId)}/answer`,\n {\n body: JSON.stringify(response),\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n }\n );\n const data = (await result.json()) as { errorMessage?: string; error?: string; question?: AgentChatQuestion };\n\n // A question settled elsewhere (409) comes back with its final state for the card to show.\n if (!result.ok && !data.question) {\n throw new Error(data.errorMessage ?? data.error ?? 'Request failed');\n }\n\n return { errorMessage: result.ok ? undefined : data.errorMessage, question: data.question };\n },\n startAgentChat: async ({ attachments, content, modelId }) =>\n request<StartAgentChatResult>(agentChatsBasePath, {\n body: JSON.stringify({ message: { attachments, content }, modelId: modelId ?? null }),\n method: 'POST',\n }),\n startQueuedAgentChatMessage: async (chatId, messageId) =>\n request<AgentChatTurn>(\n `${agentChatsBasePath}/${encodeURIComponent(chatId)}/follow-ups/${encodeURIComponent(messageId)}/start`,\n { method: 'POST' }\n ),\n stopAgentChat: async (chatId) =>\n request<{ message: AgentChatMessage }>(`${agentChatsBasePath}/${encodeURIComponent(chatId)}/stop`, {\n method: 'POST',\n }),\n stopAgentChatMonitor: async (chatId, monitorId) =>\n request<{ monitor: AgentChatMonitor }>(\n `${agentChatsBasePath}/${encodeURIComponent(chatId)}/monitors/${encodeURIComponent(monitorId)}/stop`,\n { method: 'POST' }\n ),\n transcribeAgentAudio: async (audio, signal) => {\n const { durationSeconds, pcm } = await convertRecordedAudioToPcm(audio);\n const formData = new FormData();\n formData.append('file', pcm, 'audio.pcm');\n formData.append('durationSeconds', String(durationSeconds));\n\n const response = await fetch(`${projectBasePath}/agent/transcribe`, {\n body: formData,\n credentials: 'include',\n method: 'POST',\n signal,\n });\n const data = (await response.json()) as { error?: string; text?: string };\n\n if (!response.ok) {\n const error = data && typeof data === 'object' && data.error ? String(data.error) : 'Request failed';\n\n throw new Error(error);\n }\n\n if (!data.text?.trim()) {\n throw new Error('No speech was recognized. Try again.');\n }\n\n return { text: data.text };\n },\n uploadAgentChatAttachment: async (file, signal) => {\n // The platform issues a token scoped to one pathname, type and size; the\n // browser then writes the bytes to the store directly, so large files\n // never pass through the API function body limit.\n const tokenResponse = await fetch(`${projectBasePath}/agent/uploads`, {\n body: JSON.stringify({ filename: file.name, mediaType: file.type || null, sizeBytes: file.size }),\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n signal,\n });\n const tokenData = (await tokenResponse.json()) as {\n code?: string;\n error?: string;\n mediaType?: string;\n pathname?: string;\n token?: string;\n };\n\n if (!tokenResponse.ok || !tokenData.pathname || !tokenData.token || !tokenData.mediaType) {\n throw new AgentUploadError(\n tokenResponse.status,\n tokenData.error ? String(tokenData.error) : 'The file could not be uploaded.',\n tokenData.code ?? null\n );\n }\n\n const blob = await put(tokenData.pathname, file, {\n abortSignal: signal,\n access: 'public',\n contentType: tokenData.mediaType,\n token: tokenData.token,\n });\n\n return {\n filename: file.name,\n mediaType: tokenData.mediaType,\n sizeBytes: file.size,\n url: blob.url,\n };\n },\n decideApproval: async (approvalId, input) => {\n const response = await fetch(`${automationsBasePath}/approvals/${encodeURIComponent(approvalId)}/decide`, {\n body: JSON.stringify(input),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n });\n const data = (await response.json()) as MutationResult & { approval?: AutomationApproval; error?: string };\n\n // Business errors (stale_preview, already_decided) come back as 400\n // with a structured body the caller must be able to inspect.\n if (!response.ok && typeof data.success !== 'boolean') {\n throw new Error(data.error ? String(data.error) : 'Request failed');\n }\n\n return data;\n },\n markActivityRead: async (ids) =>\n request<{ success: boolean }>(`${projectBasePath}/activity/read`, {\n body: JSON.stringify(ids === 'all' ? { all: true } : { ids }),\n method: 'POST',\n }),\n setActivityItemState: async (itemId, state) =>\n request<{ item: ActivityItem }>(`${projectBasePath}/activity/${encodeURIComponent(itemId)}`, {\n body: JSON.stringify({ state }),\n method: 'PATCH',\n }),\n createAutomation: async (input) =>\n request<MutationResult & { automation?: Automation }>(automationsBasePath, {\n body: JSON.stringify(input),\n method: 'POST',\n }),\n createSkill: async (input) =>\n request<MutationResult & { skill?: Skill }>(skillsBasePath, {\n body: JSON.stringify(input),\n method: 'POST',\n }),\n deleteAutomation: async (automationId) =>\n request<MutationResult>(`${automationsBasePath}/${encodeURIComponent(automationId)}`, { method: 'DELETE' }),\n deleteSkill: async (skillId) =>\n request<MutationResult>(`${skillsBasePath}/${encodeURIComponent(skillId)}`, { method: 'DELETE' }),\n getArtifactUrl: (artifactId, options) => {\n const suffix = options?.download ? '?download=1' : '';\n\n return `${automationsBasePath}/artifacts/${encodeURIComponent(artifactId)}/content${suffix}`;\n },\n getRunArtifacts: async (workflowRunId) =>\n request<{ artifacts: AutomationArtifact[] }>(\n `${automationsBasePath}/runs/${encodeURIComponent(workflowRunId)}/artifacts`\n ).then((response) => response.artifacts),\n getStreamUrl: (workflowRunId) => `${automationsBasePath}/runs/${encodeURIComponent(workflowRunId)}/stream`,\n getTranscriptUrl: (runId) => `${automationsBasePath}/runs/${encodeURIComponent(runId)}/transcript`,\n listChannels: async (provider, connectionId) => {\n const url = connectionId\n ? `${projectBasePath}/plugin-connections/${encodeURIComponent(connectionId)}/channels`\n : `${projectBasePath}/plugins/${provider}/channels`;\n const response = await fetch(url, {\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n const data = (await response.json()) as {\n channels?: AutomationToolChannel[];\n error?: string;\n errorMessage?: string;\n success?: boolean;\n };\n\n if (response.ok) {\n return {\n channels: data.channels ?? [],\n errorMessage: data.errorMessage,\n success: data.success ?? true,\n };\n }\n\n if (data.success === false) {\n return {\n channels: data.channels ?? [],\n errorMessage: data.errorMessage ?? `Failed to load ${provider === 'slack' ? 'Slack' : 'Teams'} channels.`,\n success: false,\n };\n }\n\n const error = data.error ? String(data.error) : 'Request failed';\n\n throw new Error(error);\n },\n runAutomation: async (automationId) =>\n request<MutationResult & { runId?: string }>(`${automationsBasePath}/${encodeURIComponent(automationId)}/runs`, {\n method: 'POST',\n }),\n updateAutomation: async (automationId, input) =>\n request<MutationResult & { automation?: Automation }>(\n `${automationsBasePath}/${encodeURIComponent(automationId)}`,\n {\n body: JSON.stringify(input),\n method: 'PATCH',\n }\n ),\n updateSkill: async (skillId, input) =>\n request<MutationResult & { skill?: Skill }>(`${skillsBasePath}/${encodeURIComponent(skillId)}`, {\n body: JSON.stringify(input),\n method: 'PATCH',\n }),\n };\n}\n\nexport class FetcherError extends Error {\n status: number;\n\n constructor(status: number, message = 'Request failed') {\n super(message);\n this.name = 'FetcherError';\n this.status = status;\n }\n}\n\nexport const fetcher = async <T>(url: string): Promise<T> => {\n const response = await fetch(url, { credentials: 'include' });\n\n if (!response.ok) {\n throw new FetcherError(response.status);\n }\n\n return (await response.json()) as T;\n};\n\nexport function paths(projectId: string): {\n activity: (_options?: { filter?: 'all' | 'needs_action'; limit?: number; offset?: number }) => string;\n activityItem: (_itemId: string) => string;\n /** Badge counts; with `since`, also the unread items created after it. */\n activitySummary: (_since?: string | null) => string;\n agentChat: (_chatId: string) => string;\n agentChatSearch: (_query: string) => string;\n agentChats: (_offset?: number) => string;\n agentProfile: () => string;\n approval: (_approvalId: string) => string;\n approvals: (_options?: {\n limit?: number;\n offset?: number;\n runId?: string;\n status?: AutomationApprovalStatus;\n }) => string;\n approvalsCount: string;\n automation: (_automationId: string) => string;\n automationRuns: (_automationId: string, _offset?: number, _limit?: number) => string;\n automations: (_options?: {\n enabled?: boolean[];\n limit?: number;\n offset?: number;\n search?: string;\n visibility?: AutomationVisibility[];\n }) => string;\n creditBalance: string;\n entities: string;\n run: (_runId: string) => string;\n runHistory: (_scope: 'mine' | 'team', _offset?: number, _limit?: number) => string;\n skill: (_skillId: string) => string;\n skills: (_options?: { limit?: number; offset?: number; search?: string; visibility?: AutomationVisibility[] }) => string;\n spaces: string;\n /** Members for pickers; with a space id, only members who can see that space. */\n members: (_spaceId?: string | null) => string;\n tools: (_automationId?: string) => string;\n} {\n const basePath = `/api/flexkit/${projectId}/automations`;\n const skillsBasePath = `/api/flexkit/${projectId}/skills`;\n const agentChatsBasePath = `/api/flexkit/${projectId}/agent/chats`;\n\n return {\n activity: (options = {}) => {\n const { filter = 'all', limit = 25, offset = 0 } = options;\n const params = new URLSearchParams({ filter, limit: limit.toString(), offset: offset.toString() });\n\n return `/api/flexkit/${projectId}/activity?${params.toString()}`;\n },\n activityItem: (itemId) => `/api/flexkit/${projectId}/activity/${encodeURIComponent(itemId)}`,\n activitySummary: (since) =>\n since\n ? `/api/flexkit/${projectId}/activity/summary?since=${encodeURIComponent(since)}`\n : `/api/flexkit/${projectId}/activity/summary`,\n agentChat: (chatId) => `${agentChatsBasePath}/${encodeURIComponent(chatId)}`,\n agentChatSearch: (query) => `${agentChatsBasePath}/search?q=${encodeURIComponent(query)}`,\n agentChats: (offset = 0) => `${agentChatsBasePath}?offset=${offset.toString()}`,\n agentProfile: () => `/api/flexkit/${projectId}/agent/profile`,\n approval: (approvalId) => `${basePath}/approvals/${encodeURIComponent(approvalId)}`,\n approvals: (options = {}) => {\n const { limit = 25, offset = 0, runId, status } = options;\n const params = new URLSearchParams({\n limit: limit.toString(),\n offset: offset.toString(),\n });\n\n if (status) {\n params.set('status', status);\n }\n\n if (runId) {\n params.set('runId', runId);\n }\n\n return `${basePath}/approvals?${params.toString()}`;\n },\n approvalsCount: `${basePath}/approvals?limit=1`,\n automation: (automationId) => `${basePath}/${encodeURIComponent(automationId)}`,\n automationRuns: (automationId, offset = 0, limit = 25) =>\n `${basePath}/${encodeURIComponent(automationId)}/runs?offset=${offset.toString()}&limit=${limit.toString()}`,\n automations: (options = {}) => {\n const { enabled, limit = 25, offset = 0, search, visibility } = options;\n const params = new URLSearchParams({\n limit: limit.toString(),\n offset: offset.toString(),\n });\n\n if (enabled && enabled.length > 0) {\n params.set('enabled', enabled.map((value) => (value ? 'true' : 'false')).join(','));\n }\n\n if (visibility && visibility.length > 0) {\n params.set('visibility', visibility.join(','));\n }\n\n const trimmedSearch = search?.trim();\n\n if (trimmedSearch) {\n params.set('q', trimmedSearch);\n }\n\n return `${basePath}?${params.toString()}`;\n },\n creditBalance: `${basePath}/credits`,\n entities: `${basePath}/entities`,\n run: (runId) => `${basePath}/runs/${encodeURIComponent(runId)}`,\n runHistory: (scope, offset = 0, limit = 25) =>\n `${basePath}/runs?scope=${scope}&offset=${offset.toString()}&limit=${limit.toString()}`,\n skill: (skillId) => `${skillsBasePath}/${encodeURIComponent(skillId)}`,\n skills: (options = {}) => {\n const { limit = 25, offset = 0, search, visibility } = options;\n const params = new URLSearchParams({\n limit: limit.toString(),\n offset: offset.toString(),\n });\n\n if (visibility && visibility.length > 0) {\n params.set('visibility', visibility.join(','));\n }\n\n const trimmedSearch = search?.trim();\n\n if (trimmedSearch) {\n params.set('q', trimmedSearch);\n }\n\n return `${skillsBasePath}?${params.toString()}`;\n },\n spaces: `/api/flexkit/${projectId}/spaces`,\n members: (spaceId) =>\n spaceId\n ? `/api/flexkit/${projectId}/members?spaceId=${encodeURIComponent(spaceId)}`\n : `/api/flexkit/${projectId}/members`,\n tools: (automationId) =>\n automationId ? `${basePath}/${encodeURIComponent(automationId)}/tools` : `${basePath}/tools`,\n };\n}\n"]}
|
package/dist/chunk-6YOVF2AD.js
DELETED
|
@@ -1,384 +0,0 @@
|
|
|
1
|
-
import'./index.css';import {e}from'./chunk-P6BZ4QP7.js';import {b as b$2}from'./chunk-2DXR5NJV.js';import {b,f,c}from'./chunk-C47FNPLK.js';import {h as h$1,c as c$3}from'./chunk-TYDYAOQ7.js';import {Rc,Sc,Tc,_,$,ca,da,aa,ea,o}from'./chunk-YCCFUGWJ.js';import {c as c$2,h as h$2,i,k,l,b as b$4}from'./chunk-32ZU4MLE.js';import {e as e$1,g,h,j}from'./chunk-SZEGGBOC.js';import {a,b as b$3,c as c$1,d,e as e$2}from'./chunk-USNXQOMJ.js';import {b as b$1}from'./chunk-6NRQMG26.js';import {a as a$1}from'./chunk-O2QMYUPS.js';import {find,propEq,omit,pick,toPairs,uniq,uniqBy,prop,props}from'ramda';import {gql,NetworkStatus,ApolloClient,InMemoryCache,defaultDataIdFromObject,from,HttpLink}from'@apollo/client';import {ApolloProvider,useQuery,useMutation}from'@apollo/client/react';import {ErrorLink}from'@apollo/client/link/error';import {ServerError,CombinedGraphQLErrors,CombinedProtocolErrors}from'@apollo/client/errors';import {createContext,useContext,useState,useMemo,useRef,useEffect,useCallback,useReducer}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {AlertCircle,X as X$1,ChevronDown,ArrowUp,ArrowDown,Star,CircleCheck,CircleX,Check,Copy}from'lucide-react';import {useReactTable,getSortedRowModel,getPaginationRowModel,getFilteredRowModel,getCoreRowModel,flexRender}from'@tanstack/react-table';import {useVirtualizer}from'@tanstack/react-virtual';import {getText,getSchema,getTextSerializersFromSchema}from'@tiptap/core';import {Node}from'@tiptap/pm/model';import {TiptapLink,TiptapImage,UploadImagesPlugin,TaskList,TaskItem,HorizontalRule,StarterKit,CodeBlockLowlight,Youtube,Twitter,Mathematics,CharacterCount,Placeholder,AIHighlight,TiptapUnderline,HighlightExtension,TextStyle,Color,CustomKeymap,GlobalDragHandle}from'novel';import {Markdown}from'tiptap-markdown';import {cx}from'class-variance-authority';import {createLowlight,common}from'lowlight';import {defaultStyles,FileIcon}from'react-file-icon';import {isValid,format}from'date-fns';function R(e){return e.dataType==="asset"?"global":e.scope}var ln=25,Ar=3,un=3,Er=["id","string"],Tr=["date","datetime","duration","time"],yt=`_id
|
|
2
|
-
originalFilename
|
|
3
|
-
mimeType
|
|
4
|
-
path
|
|
5
|
-
url
|
|
6
|
-
size
|
|
7
|
-
height
|
|
8
|
-
width
|
|
9
|
-
lqip`,kt=`_id
|
|
10
|
-
originalFilename
|
|
11
|
-
mimeType
|
|
12
|
-
path
|
|
13
|
-
url
|
|
14
|
-
size
|
|
15
|
-
height
|
|
16
|
-
width`,wr=`_id
|
|
17
|
-
path
|
|
18
|
-
url`;function De(e){return e?R(e)==="relationship"&&e.relationship?.mode==="multiple"&&e.relationship.entity==="_asset":false}function bt(e,t){return !e||!De(e)?false:t?.name!==c.name||e.name!=="assets"}function et(e){return e?.dataType==="asset"||e?.inputType==="asset"}function cn(e){let t=e,n=t?.edges??[],r=t?.aggregate?.count?.nodes??n.length;return n.reduce((o,i,s)=>(i.node&&o.push({...i.node,sortOrder:i.properties?.sortOrder??s,totalCount:r}),o),[]).sort((o,i)=>(o.sortOrder??Number.MAX_SAFE_INTEGER)-(i.sortOrder??Number.MAX_SAFE_INTEGER))}function $r(e){return e.reduce((t,n,r)=>n._id?{...t,[n._id]:n.sortOrder??r}:t,{})}function ae(e){return Array.isArray(e)?e[0]??null:e??null}function Cr(e,t){return t?wr:e?yt:kt}function dn(e,t=true,n=true,r=ln,o=false){let i=t?` properties {
|
|
19
|
-
sortOrder
|
|
20
|
-
}
|
|
21
|
-
`:"",s=Cr(n,o),u=t?`(first: ${r}, sort: [{ edge: { sortOrder: ASC } }])`:`(first: ${r})`;return ` ${e}Connection${u} {
|
|
22
|
-
aggregate {
|
|
23
|
-
count {
|
|
24
|
-
nodes
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
edges {
|
|
28
|
-
`+i+` node {
|
|
29
|
-
${s}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
`}function fn(e){return e?.aggregate?.count?.nodes??0}function pn(e,t){let n=e[`${t}Total`];return typeof n=="number"?n:fn(e[`${t}Connection`])}function St(e,t=""){return ` ${e}Connection${t} {
|
|
34
|
-
aggregate {
|
|
35
|
-
count {
|
|
36
|
-
nodes
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
`}function xr(e,t,n){return t?n==="total"?` ${e}Total
|
|
41
|
-
`:St(e,"(where: $where)"):""}function vr(e,t,n,r=false){if(!e)return "";let o=t==="default"?"":`${t}
|
|
42
|
-
`;if(et(e))return r?` ${e.name} {
|
|
43
|
-
_id
|
|
44
|
-
path
|
|
45
|
-
url
|
|
46
|
-
}
|
|
47
|
-
`:` ${e.name} {
|
|
48
|
-
${yt}
|
|
49
|
-
}
|
|
50
|
-
`;if(R(e)==="local")return ` ${e.name} {
|
|
51
|
-
_id
|
|
52
|
-
default
|
|
53
|
-
${o}}
|
|
54
|
-
`;if(R(e)==="relationship"){let i=e.relationship?.field;if(!i)return ` ${e.name}
|
|
55
|
-
`;let s=find(propEq(e.relationship?.entity,"name"))(n),u=find(propEq(i,"name"))(s?.attributes??[]),a=u&&R(u)==="local"?`{
|
|
56
|
-
_id
|
|
57
|
-
default
|
|
58
|
-
${o}}
|
|
59
|
-
`:"";return e.relationship?.mode==="single"?` ${e.name} {
|
|
60
|
-
${i} ${a}}
|
|
61
|
-
`:` ${e.name} (limit: 3, offset: 0) {
|
|
62
|
-
${i} ${a}}
|
|
63
|
-
`}return ` ${e.name}
|
|
64
|
-
`}function Rr(e,t,n){return e?.attributes.reduce((r,o)=>{let i=t==="default"?"":`${t}
|
|
65
|
-
`;if(et(o))return `${r}
|
|
66
|
-
${o.name} {
|
|
67
|
-
${kt}
|
|
68
|
-
}
|
|
69
|
-
`;if(R(o)==="local")return `${r}
|
|
70
|
-
${o.name} {
|
|
71
|
-
_id
|
|
72
|
-
default
|
|
73
|
-
${i}
|
|
74
|
-
}
|
|
75
|
-
`;if(R(o)==="relationship"){let s=find(propEq(o.relationship?.entity,"name"))(n),u=find(propEq(o.relationship?.field,"name"))(s?.attributes??[]),a=R(u)==="local"?`{
|
|
76
|
-
_id
|
|
77
|
-
default
|
|
78
|
-
${i}}
|
|
79
|
-
`:"";if(o.relationship?.mode==="single")return `${r}
|
|
80
|
-
${o.name} {
|
|
81
|
-
${o.relationship.field} ${a}}
|
|
82
|
-
`;if(o.relationship?.field)return `${r}
|
|
83
|
-
${o.name} (limit: ${un}, offset: 0) {
|
|
84
|
-
${o.relationship.field} ${a}}
|
|
85
|
-
`}return `${r}
|
|
86
|
-
${o.name}
|
|
87
|
-
`},"")??""}function _r(e){let t={};for(let n of e)t[n.name]=n;return t}function gt(e){return e?e.name==="url"?true:!(e.hidden===true||e.name==="lqip"):false}function ps(e,t){if(!Array.isArray(e)||e.length===0)return;let[n]=e;if(!n||typeof n!="object")return;let[r]=Object.keys(n);if(!r||["_id","_createdAt","_updatedAt"].includes(r))return;let o=t?.attributes.find(i=>i.name===r);if(!(!o||R(o)!=="global"||o.dataType==="asset"))return {NOT:{[r]:{eq:null}}}}function tt(e$1,t,n,r){let o=r?.selection??"full",i=o==="display"?"list":o,s=r?.includeCount??true,u=r?.countMode??"aggregate",a="(where: $where, limit: $limit, offset: $offset, sort: $sort)",l=te(n,e$1),d=l?.name??e$1,p=e(l),f=o==="display"?p?[p]:[]:l?.attributes??[],c=_r(f),h=`$where: ${d}Where, $limit: Int, $offset: Int, $sort: [${d}Sort!]`,k=r?.operationName??`Get${J(e$1)}`;if(!l)throw new Error(`Entity '${d}' not found in the schema`);if(f.length===0)throw new Error(`Entity '${d}' has no attributes defined in the schema`);let A=D("global",f).filter(E=>E==="_updatedAt"?false:i==="list"?o==="display"||gt(c[E]):true).join(`
|
|
88
|
-
`),m=Ie(f).filter(E=>i!=="list"||o==="display"||gt(c[E])),g=D(["local"],f).filter(E=>i!=="list"?true:o==="display"||gt(c[E])),S=g.reduce((E,w)=>`${E}
|
|
89
|
-
${w} {
|
|
90
|
-
_id
|
|
91
|
-
default
|
|
92
|
-
}
|
|
93
|
-
`,""),v=g.reduce((E,w)=>`${E}
|
|
94
|
-
${w} {
|
|
95
|
-
_id
|
|
96
|
-
default
|
|
97
|
-
${t}
|
|
98
|
-
}
|
|
99
|
-
`,""),L=t==="default"?S:v,T=`_id
|
|
100
|
-
path
|
|
101
|
-
url`;i!=="list"&&(T=`_id
|
|
102
|
-
originalFilename
|
|
103
|
-
mimeType
|
|
104
|
-
path
|
|
105
|
-
url
|
|
106
|
-
size
|
|
107
|
-
height
|
|
108
|
-
width
|
|
109
|
-
lqip`);let q=m.reduce((E,w)=>`${E}
|
|
110
|
-
${w} {
|
|
111
|
-
${T}
|
|
112
|
-
}
|
|
113
|
-
`,""),K=f.filter(E=>R(E)==="relationship").reduce((E,w)=>{if(i==="list"&&o!=="display"&&w.hidden===true)return E;if(De(w))return `${E}
|
|
114
|
-
${dn(w.name,bt(w,l),i!=="list",i==="list"?Ar:ln,i==="list")}`;let j=find(propEq(w.relationship?.entity,"name"))(n);if(i==="list"){let G=e(j),Y=vr(G,t,n,true),pe=w.relationship?.mode==="single"?1:3;return `${E}
|
|
115
|
-
${w.name} (limit: ${pe}, offset: 0) {
|
|
116
|
-
_id
|
|
117
|
-
${Y} }
|
|
118
|
-
`}let z=Rr(j,t,n);return `${St(w.name).trim()}${E}
|
|
119
|
-
${w.name} (limit: 25, offset: 0) { _id ${z}}
|
|
120
|
-
`},"");return {queryEntityName:e$1,query:`query ${k}(${h}) {
|
|
121
|
-
`+xr(e$1,s,u)+` ${e$1}${a} {
|
|
122
|
-
_id
|
|
123
|
-
_updatedAt
|
|
124
|
-
${A} ${L} ${q} ${K}}
|
|
125
|
-
}
|
|
126
|
-
`}}function mn(e$1,t,n,r){let i=te(r,e$1)?.attributes??[];if(i.length===0)return {count:0,results:[]};let s=pn(n,e$1),u=n[e$1],a=(d,p)=>{let f=p.name;return d.slice(0,3).map(c=>{if(R(p)!=="local")return c[f];let h=ae(c[f]);return h?.[t]??h?.default}).join(", ")},l=u.map(d=>{let{_id:p}=d,f=typeof d._updatedAt=="string"?d._updatedAt:"",c=D("global",i).filter(m=>m!=="_updatedAt").reduce((m,g)=>({...m,[g]:d[g]}),{}),h=D("local",i).reduce((m,g)=>{let S=ae(d[g]);return {...m,[g]:S?.[t]?S[t]:S?.default}},{}),k=Ie(i).reduce((m,g)=>({...m,[g]:ae(d[g])}),{}),A=D(["relationship"],i).reduce((m,g)=>{let S=find(propEq(g,"name"))(i),v=S.relationship?.entity??"",L=find(propEq(v,"name"))(r),T=e(L),q=d[g];if(De(S)){let j=cn(d[`${g}Connection`]);return {...m,[g]:j}}if(!T)throw new Error(`There is an error in the schema for the relationship attribute "${g}"`);let oe=T.name,K=R(T);if(S.relationship?.mode==="multiple"){let j=Array.isArray(q)?q:[];return {...m,[g]:a(j,T)}}let E=ae(q);if(K==="global")return {...m,[g]:E?.[oe]};let w=ae(E?.[oe]);return {...m,[g]:w?.[t]??w?.default}},{});return {_id:p,...c,...h,...k,...A,_updatedAt:f}});return {count:s,results:l}}function gn(e,t,n,r){let i=te(r,e)?.attributes??[];if(i.length===0)return {count:0,results:[]};let s=pn(n,e),a=n[e].map(l=>{let d=D("global",i).reduce((h,k)=>({...h,[k]:{value:l[k],disabled:false,scope:"default",_id:""}}),{}),p=D("local",i).reduce((h,k)=>{let A=find(propEq(k,"name"))(i),m=ae(l[k]);return {...h,[k]:{value:m?Lr(m,t):null,disabled:!!(m&&m[t]===null&&R(A)==="local"&&t!=="default"),scope:t,_id:m?m._id:null}}},{}),f=Ie(i).reduce((h,k)=>({...h,[k]:{value:ae(l[k]),disabled:false,scope:"default",_id:""}}),{}),c=D(["relationship"],i).reduce((h,k)=>{let A=find(propEq(k,"name"))(i),m=l[k],g=A.relationship?.mode==="single"?ae(m):m,S=g?._id,v=fn(l[`${k}Connection`]);if(De(A)){let L=cn(l[`${k}Connection`]);return {...h,[k]:{count:v,_id:S,knownAssetSortOrders:$r(L),value:L,disabled:false,scope:t}}}return {...h,[k]:{count:v,_id:S,value:g,disabled:false,scope:t}}},{});return {...d,...p,...f,...c}});return {count:s,results:a}}function Lr(e,t){return Array.isArray(e)?e.reduce((n,r)=>{if(r[t]??r.default){let o={_id:r._id,disabled:r.scope===null&&t!=="default",scope:t,value:r[t]??r.default};n.push(o);}return n},[]):e[t]??e.default??null}function ms(e,t,n,r,o,i,s){let u=te(r,e),a=u?.name??e,l=u?.attributes??[],d=Fe(e);if(l.length===0)return "";let p=hn(l,i),f=yn(l,p),c=Ir(t,l,p,n),h=Mr(l,o,p),k=Fr(l,o,p),A=e,m=s?.responseFields??bn(r,e,n);return `mutation ${`Update${J(e)}`}($where: ${a}Where) {
|
|
127
|
-
update${d}(
|
|
128
|
-
where: $where
|
|
129
|
-
update: {${f}${c}${h}${k}
|
|
130
|
-
}
|
|
131
|
-
) {
|
|
132
|
-
${A} {
|
|
133
|
-
_id
|
|
134
|
-
${m} }
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
`}function hn(e,t){let n=e.filter(o=>o.readOnly===true).map(o=>o.name),r=omit(n,t);return pick(e.map(o=>o.name),r)}function D(e,t){return Array.isArray(e)?e.reduce((r,o)=>r.concat(D(o,t)),[]):t.filter(r=>R(r)===e&&r.inputType!=="asset").map(r=>r.name)}function Ie(e){return e.filter(et).map(n=>n.name)}function yn(e,t,n="update"){let r=pick(D("global",e),t);return toPairs(r).reduce((i,[s,u])=>{let a=find(propEq(s,"name"))(e),l=Array.isArray(u?.value)?null:u?.value??null,d=At(a.dataType,l);return n==="create"&&(d===null||d==="")?i:n==="update"?`${i}
|
|
138
|
-
${s}: { set: ${d} }`:`${i}
|
|
139
|
-
${s}: ${d}`},"")}function ht(e){return !e?._id||!e.path?"":e._id}function Mr(e,t,n){let r=pick(Ie(e),n);return toPairs(r).reduce((s,[u,a])=>{let l=ht(a.value),d=ht(t[u]?.value);if(l===d)return s;let p=d?` {
|
|
140
|
-
disconnect: [{
|
|
141
|
-
where: {
|
|
142
|
-
node: {
|
|
143
|
-
_id: { eq: ${M(d)} }
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}]
|
|
147
|
-
}
|
|
148
|
-
`:"",f=l?` {
|
|
149
|
-
connect: [{
|
|
150
|
-
where: {
|
|
151
|
-
node: {
|
|
152
|
-
_id: { eq: ${M(l)} }
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}]
|
|
156
|
-
}
|
|
157
|
-
`:"";return `${s}
|
|
158
|
-
${u}: [
|
|
159
|
-
${p}${f} ]`},"")}function Dr(e,t){let n=pick(Ie(e),t);return toPairs(n).reduce((i,[s,u])=>{let a=ht(u.value);return a?`${i}
|
|
160
|
-
${s}: {
|
|
161
|
-
connect: [{
|
|
162
|
-
where: {
|
|
163
|
-
node: {
|
|
164
|
-
_id: { eq: ${M(a)} }
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}]
|
|
168
|
-
}`:i},"")}function Ir(e,t,n,r){let o=pick(D("local",t),n);return toPairs(o).reduce((u,[a,l])=>{let d=find(propEq(a,"name"))(t),{dataType:p}=d,f=l.disabled||Array.isArray(l.value)?"null":At(p,l.value);return l._id?`${u}
|
|
169
|
-
${a}: [{
|
|
170
|
-
update: {
|
|
171
|
-
node: {
|
|
172
|
-
${r}: { set: ${f} }
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}]`:l.disabled||Array.isArray(l.value)||l.value===void 0||l.value===null||l.value===""||f===null||f===""?u:`${u}
|
|
176
|
-
${a}: [{
|
|
177
|
-
create: {
|
|
178
|
-
node: {
|
|
179
|
-
_id: ${M(`${e}:${a}`)}
|
|
180
|
-
_type: "${p}"
|
|
181
|
-
${r}: ${f}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}]`},"")}function Fr(e,t,n){let r=pick(D("relationship",e),n);return toPairs(r).reduce((s,[u,a])=>{let l=find(propEq(u,"name"))(e),{inputType:d,relationship:p}=l;if(d==="relationship"&&p?.mode==="single"){let f=t[u]._id??"",c=a._id??"";if(f===c)return s;let h=f?` {
|
|
185
|
-
disconnect: [{
|
|
186
|
-
where: {
|
|
187
|
-
node: {
|
|
188
|
-
_id: { eq: ${M(f)} }
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}]
|
|
192
|
-
}
|
|
193
|
-
`:"",k=c?` {
|
|
194
|
-
connect: [{
|
|
195
|
-
where: {
|
|
196
|
-
node: {
|
|
197
|
-
_id: { eq: ${M(c)} }
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}]
|
|
201
|
-
}
|
|
202
|
-
`:"";return `${s}
|
|
203
|
-
${u}: [
|
|
204
|
-
${h}${k} ]`}if(d==="relationship"&&p?.mode==="multiple"){if(p.entity==="_asset")return `${s}${Or(u,t[u],a)}`;let f=uniq(a.relationships?.disconnect??[]).filter(Boolean),h=(a.relationships?.connect??[]).map(m=>M(m._id)).join(", "),k=f.length?` {
|
|
205
|
-
disconnect: [
|
|
206
|
-
${f.map(m=>` {
|
|
207
|
-
where: {
|
|
208
|
-
node: {
|
|
209
|
-
_id: { eq: ${M(m)} }
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
`).join("")} ]
|
|
214
|
-
}
|
|
215
|
-
`:"",A=h?` {
|
|
216
|
-
connect: [{
|
|
217
|
-
where: {
|
|
218
|
-
node: {
|
|
219
|
-
_id: { in: [${h}] }
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}]
|
|
223
|
-
}
|
|
224
|
-
`:"";return !k&&!A?s:`${s}
|
|
225
|
-
${u}: [
|
|
226
|
-
${k}${A} ]`}return `${s}
|
|
227
|
-
`},"")}function Or(e,t,n){let o=(n.relationships?.connect??[]).map((c,h)=>({...c,sortOrder:c.sortOrder??h})),i=o.map(c=>c._id),s={...Pr(t),...t?.knownAssetSortOrders??{},...n.knownAssetSortOrders??{}},u=uniq(n.relationships?.disconnect??[]).filter(c=>c&&!i.includes(c)),a=o.filter(c=>s[c._id]===void 0),l=o.filter(c=>{let h=s[c._id];return h!==void 0&&h!==c.sortOrder}),d=Nr(u),p=Vr(a),f=Qr(l);return !d&&!p&&!f?"":`
|
|
228
|
-
${e}: [
|
|
229
|
-
${d}${p}${f} ]`}function Pr(e){let t=e?.value;return Array.isArray(t)?t.reduce((n,r,o)=>{if(typeof r!="object"||!r||!("_id"in r))return n;let{_id:i}=r;if(typeof i!="string"||i.length===0)return n;let s="sortOrder"in r&&typeof r.sortOrder=="number"?r.sortOrder:o;return {...n,[i]:s}},{}):{}}function Nr(e){return e.length===0?"":` {
|
|
230
|
-
disconnect: [
|
|
231
|
-
${e.reduce((n,r)=>`${n} {
|
|
232
|
-
where: { node: { _id: { eq: ${M(r)} } } }
|
|
233
|
-
}
|
|
234
|
-
`,"")} ]
|
|
235
|
-
}
|
|
236
|
-
`}function Vr(e){return e.length===0?"":` {
|
|
237
|
-
connect: [
|
|
238
|
-
${kn(e)} ]
|
|
239
|
-
}
|
|
240
|
-
`}function kn(e){return e.reduce((t,n,r)=>{let o=n.sortOrder??r;return `${t} {
|
|
241
|
-
where: { node: { _id: { eq: ${M(n._id)} } } }
|
|
242
|
-
edge: { sortOrder: ${o} }
|
|
243
|
-
}
|
|
244
|
-
`},"")}function Qr(e){return e.length===0?"":e.reduce((n,r,o)=>{let i=r.sortOrder??o;return `${n} {
|
|
245
|
-
update: {
|
|
246
|
-
where: { node: { _id: { eq: ${M(r._id)} } } }
|
|
247
|
-
edge: { sortOrder: { set: ${i} } }
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
`},"")}function At(e,t){return Tr.includes(e)?t?.toString()?M(t.toString()):null:Er.includes(e)?t==null?null:M(t.toString()):t==null||t===""?null:t.toString()}function M(e){return JSON.stringify(e)}function bn(e,t,n){let r=te(e,t),o=r?.attributes??[],i=D("global",o),s=D("local",o),u=D("relationship",o),a=i.reduce((l,d)=>`${l}${d}
|
|
251
|
-
`,"");return a+=s.reduce((l,d)=>`${l} ${d} {
|
|
252
|
-
_id
|
|
253
|
-
${n}
|
|
254
|
-
}
|
|
255
|
-
`,""),a+=u.reduce((l,d)=>{let p=find(propEq(d,"name"))(o),f=p?.relationship?.mode??"single";if(De(p))return `${l}${dn(d,bt(p,r))}`;let c=p?.relationship?.entity??"",k=find(propEq(c,"name"))(e)?.attributes??[],A=p?.relationship?.field??"[invalid_relationship_field_name_in_schema]",m=find(propEq(A,"name"))(k),g=R(m),S="";if(f==="single"&&(g==="global"&&(S=` ${d} {
|
|
256
|
-
_id
|
|
257
|
-
${A}
|
|
258
|
-
}
|
|
259
|
-
`),g==="local"&&(S=` ${d} {
|
|
260
|
-
_id
|
|
261
|
-
${A} {
|
|
262
|
-
_id
|
|
263
|
-
default
|
|
264
|
-
${n}
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
`)),f==="multiple"&&k.length){let v=k.reduce((L,T)=>{if(R(T)==="local")return `${L} ${T.name} {
|
|
268
|
-
_id
|
|
269
|
-
default
|
|
270
|
-
${n}
|
|
271
|
-
}
|
|
272
|
-
`;if(R(T)==="relationship"){let q=n==="default"?"":`${n}
|
|
273
|
-
`,oe=find(propEq(T.relationship?.entity,"name"))(e),K=find(propEq(T.relationship?.field,"name"))(oe?.attributes??[]),E=R(K)==="local"?`{
|
|
274
|
-
_id
|
|
275
|
-
default
|
|
276
|
-
${q}}
|
|
277
|
-
`:"";if(T.relationship?.mode==="single")return `${L} ${T.name} {
|
|
278
|
-
${T.relationship.field} ${E}}
|
|
279
|
-
`;if(T.relationship?.field)return `${L} ${T.name} (limit: ${un}, offset: 0) {
|
|
280
|
-
${T.relationship.field} ${E}}
|
|
281
|
-
`}return et(T)?`${L} ${T.name} {
|
|
282
|
-
${kt}
|
|
283
|
-
}
|
|
284
|
-
`:`${L} ${T.name}
|
|
285
|
-
`},"");S=St(d)+` ${d} (limit: 25, offset: 0) {
|
|
286
|
-
${v} }
|
|
287
|
-
`;}return `${l}${S}`},""),a}function gs(e,t,n){let r=typeof n=="string"?[n]:[...n],o=find(propEq(e,"name"))(t),i=o?.attributes??[],s=Fe(o?.plural??""),u=Ur(i,r),a=`Delete${J(o?.plural??e)}`;return e==="_asset"?`mutation ${a}($where: ${e}Where) {
|
|
288
|
-
delete_assets(
|
|
289
|
-
where: $where
|
|
290
|
-
) {
|
|
291
|
-
nodesDeleted
|
|
292
|
-
relationshipsDeleted
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
`:`mutation ${a}($where: ${e}Where) {
|
|
296
|
-
delete${s}(
|
|
297
|
-
where: $where
|
|
298
|
-
${u?` delete: {
|
|
299
|
-
${u}
|
|
300
|
-
}
|
|
301
|
-
`:""} ) {
|
|
302
|
-
nodesDeleted
|
|
303
|
-
relationshipsDeleted
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
`}function hs(e){let t=typeof e=="string"?[e]:[...e];return t.length===1?{_id:{eq:t[0]}}:{_id:{in:t}}}function Ur(e,t){return D("local",e).reduce((o,i)=>{let s=t.map(a=>M(`${a}:${i}`)).join(", "),u=t.length===1?`_id: { eq: ${s} }`:`_id: { in: [${s}] }`;return `${o}
|
|
307
|
-
${i}: [{
|
|
308
|
-
where: {
|
|
309
|
-
node: {
|
|
310
|
-
${u}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}]`},"")}function ys(e,t,n,r,o){let i=te(t,e),s=i?.attributes??[],u=Fe(i?.plural??"");if(s.length===0)return "";let a=hn(s,n),l=yn(s,a,"create"),d=qr(s,a,"default",r),p=Dr(s,a),f=jr(s,a),c=e,h=bn(t,c,"default");return `mutation ${`Create${J(e)}`} {
|
|
314
|
-
create${u}(
|
|
315
|
-
input: [{
|
|
316
|
-
_id: ${M(r)} ${l} ${d}
|
|
317
|
-
${p}
|
|
318
|
-
${f}
|
|
319
|
-
}]
|
|
320
|
-
) {
|
|
321
|
-
${c} {
|
|
322
|
-
_id
|
|
323
|
-
${h} }
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
`}function qr(e,t,n,r){let o=pick(D("local",e),t);return toPairs(o).reduce((u,[a,l])=>{if(l?.value===void 0||l.value===null||l.value==="")return u;let d=find(propEq(a,"name"))(e),p=Array.isArray(l.value)?"null":At(d.dataType,l.value);return `${u}
|
|
327
|
-
${a}: {
|
|
328
|
-
create: [{
|
|
329
|
-
node: {
|
|
330
|
-
_id: ${M(`${r}:${a}`)}
|
|
331
|
-
_type: "${d.dataType}"
|
|
332
|
-
${n}: ${p}
|
|
333
|
-
}
|
|
334
|
-
}]
|
|
335
|
-
}`},"")}function jr(e,t){let n=pick(D("relationship",e),t);return toPairs(n).reduce((i,[s,u])=>{let a=find(propEq(s,"name"))(e),{inputType:l,relationship:d}=a;if(l==="relationship"&&d?.mode==="single"){if(!u._id)return i;let c=`connect: [{
|
|
336
|
-
where: {
|
|
337
|
-
node: {
|
|
338
|
-
_id: { eq: ${M(u._id)} }
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
}]
|
|
342
|
-
`;return `${i}
|
|
343
|
-
${s}: {
|
|
344
|
-
${c} }`}let p=l==="relationship"&&d?.mode==="multiple",f=Array.isArray(u.relationships?.connect)&&u.relationships.connect.length>0;if(p&&f){let c=u.relationships?.connect??[];if(d?.entity==="_asset"){let A=kn(c.map((m,g)=>({...m,sortOrder:m.sortOrder??g})));return `${i}
|
|
345
|
-
${s}: {
|
|
346
|
-
connect: [
|
|
347
|
-
${A} ]
|
|
348
|
-
}`}let h=c.map(A=>M(A._id)).join(", "),k=h?`connect: {
|
|
349
|
-
where: {
|
|
350
|
-
node: {
|
|
351
|
-
_id: { in: [${h}] }
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
`:"";return `${i}
|
|
356
|
-
${s}: {
|
|
357
|
-
${k} }`}return `${i}
|
|
358
|
-
`},"")}function ks({relatedEntityName:e,scope:t,schema:n}){let o=find(propEq(e,"name"))(n)?.plural??"";return o?tt(o,t,n,{selection:"list",operationName:`GetRelated${J(o)}`}):{queryEntityName:"",query:""}}function bs({attributeName:e,entityName:t,entityNamePlural:n,schema:r}){let o=te(r,n),i=find(propEq(e,"name"))(o?.attributes??[]),s=bt(i,o),u=s?` properties {
|
|
359
|
-
sortOrder
|
|
360
|
-
}
|
|
361
|
-
`:"",a=s?"(first: $first, sort: [{ edge: { sortOrder: ASC } }])":"(first: $first)",l=`Get${J(t)}AssetConnection`;return {queryEntityName:n,query:`query ${l}($where: ${t}Where, $first: Int) {
|
|
362
|
-
${n}(where: $where) {
|
|
363
|
-
${e}Connection${a} {
|
|
364
|
-
aggregate {
|
|
365
|
-
count {
|
|
366
|
-
nodes
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
edges {
|
|
370
|
-
`+u+` node {
|
|
371
|
-
${yt}
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
`}}var Fe=e=>e.charAt(0).toUpperCase()+e.slice(1);function J(e){let t=e.split(/[^0-9A-Za-z]+/).filter(Boolean).map(Fe).join("");return t?/^[A-Za-z_]/.test(t)?t:`Entity${t}`:"Entity"}function te(e,t){return t==="_assets"?b:find(propEq(t,"plural"))(e)}function Ss(e,t,n){if(!e||typeof e!="object")return {};let r=te(n,t);if(!r)return {};let o=`update${Fe(t)}`,i=e[o];if(!i||typeof i!="object")return {};let s=i[t],u=Array.isArray(s)?s[0]:void 0;return !u||typeof u!="object"?{}:r.attributes.reduce((a,l)=>{if(R(l)!=="local")return a;let p=ae(u[l.name])?._id;return typeof p!="string"||p.length===0?a:{...a,[l.name]:p}},{})}function En(e){return e?"cause"in e:false}function ke(e){if(!e)return null;if(ServerError.is(e))return e;if(En(e)){let t=e.cause;if(ServerError.is(t))return t}return null}function Tn(e){if(!e||typeof e!="object")return null;let{message:t}=e;return typeof t=="string"?t:null}function be(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function nt(e){if(!e)return null;let t=$n(e).filter(n=>!Gr(n));return t.length===0?null:["The deployed schema is out of sync with your local Flexkit schema.","Run `flexkit deploy` using the CLI to apply your latest schema changes.",...t.map(n=>`- ${n}`)].join(`
|
|
378
|
-
`)}function wn(e,t){return e?$n(e).some(n=>n.includes(`Cannot query field "${t}"`)):false}function $n(e){if(CombinedGraphQLErrors.is(e))return e.errors.filter(An).map(({message:o})=>o);let t=Tn(e);if(t&&Oe(t))return [t];let n=ke(e);if(n?.statusCode!==400)return [];let r=be(n.bodyText)??zr(n)??Hr(e);return r?Array.isArray(r.errors)?r.errors.filter(An).map(o=>o.message):typeof r.message=="string"&&Oe(r.message)?[r.message]:typeof r.error=="string"&&Oe(r.error)?[r.error]:[]:[]}function zr(e){let{result:t}=e;return !t||typeof t!="object"?null:t}function Hr(e){if(!En(e))return null;let{cause:t}=e,n=Tn(t);if(n&&Oe(n))return {message:n};if(!t||typeof t!="object")return null;let{result:r}=t;return r&&typeof r=="object"?r:null}function An(e){if(!e||typeof e!="object")return false;let{extensions:t,message:n}=e;return t?.code==="GRAPHQL_VALIDATION_FAILED"&&typeof n=="string"?true:typeof n=="string"&&Oe(n)}function Oe(e){return e.startsWith("Cannot query field ")||e.startsWith("Unknown type ")||e.startsWith('Cannot query field "')||e.includes("GRAPHQL_VALIDATION_FAILED")}function Gr(e){return /Cannot query field "[_A-Za-z][_0-9A-Za-z]*Total" on type "Query"/.test(e)}var so=ApolloProvider,vn=createContext(void 0);function $e(){let e=useContext(vn);if(!e)throw new Error("useGraphQLError must be used within GraphQLProvider");return e}function ao(e){return new ErrorLink(({error:t})=>{let n=nt(t);if(n){e(n);return}CombinedGraphQLErrors.is(t)?t.errors.forEach(({message:o,locations:i,path:s})=>{console.warn(`[GraphQL error]: Message: ${o}, Location: ${i}, Path: ${s}`);}):CombinedProtocolErrors.is(t)&&t.errors.forEach(({message:o,extensions:i})=>{console.warn(`[Protocol error]: Message: ${o}, Extensions: ${JSON.stringify(i)}`);});let r=ke(t);if(r?.statusCode===400){let o=be(r.bodyText),i=null;if(o&&typeof o=="object"){let{error:s,errors:u,message:a}=o;if(typeof a=="string")i=a;else if(Array.isArray(u)){let[l]=u;if(l&&typeof l.message=="string"){let{message:d}=l;i=d;}}else typeof s=="string"?i=s:i=JSON.stringify(o);}else i=r.bodyText;e(i??"There is an error in the deployed Flexkit schema. Fix flexkit.config.ts and run flexkit deploy.");}if(r){console.warn(`[Network error]: ${r.message}`);return}t&&console.warn(`[Network error]: ${t.message}`);})}function lo(e,t){return from([ao(t),new HttpLink({uri:`/api/flexkit/${e}/graphql`})])}function uo(e,t){return new ApolloClient({link:lo(e??"",t),cache:new InMemoryCache({dataIdFromObject:n=>n._id?n._id:defaultDataIdFromObject(n)})})}function Ms({children:e}){let{currentProjectId:t}=f(),[n,r]=useState(null),o=useMemo(()=>({schemaErrorMessage:n,setSchemaErrorMessage:r}),[n]),i=useMemo(()=>uo(t,r),[t]);return jsx(vn.Provider,{value:o,children:jsx(so,{client:i,children:e})})}var rt=null,Et=new Set,Rn=[],Tt=new Set,wt=new Set,$t=new Set;function Ps(e,t){if(e==="_asset"||e==="_assets")return `Get${J(b.plural)}`;let n=t.find(i=>i.plural===e),r=t.find(i=>i.name===e),o=n?.plural??r?.plural??e;return `Get${J(o)}`}function _n(e){return Tt.add(e),()=>{Tt.delete(e);}}function Ln(e){return wt.add(e),()=>{wt.delete(e);}}function Mn(e){return $t.add(e),()=>{$t.delete(e);}}function Ns(e,t,n){let r=new Set(n.filter(Boolean));if(r.size>0)for(let o of wt)o(t,r);return co(e,t)}function Vs(e,t){let n=t.filter(r=>!!r._id);if(n.length!==0)for(let r of $t)r(e,n);}function co(e,t){return Et.add(t),new Promise((n,r)=>{Rn.push({resolve:n,reject:r}),rt&&clearTimeout(rt),rt=setTimeout(()=>{let o=new Set(Et),i=Rn.splice(0);Et.clear(),rt=null,Promise.all([...Tt].map(s=>Promise.resolve(s(o)))).then(()=>{for(let{resolve:s}of i)s();}).catch(s=>{console.error("Error refreshing entity lists:",s);for(let{reject:u}of i)u(s);});},50);})}function Xs({entityNamePlural:e,schema:t,scope:n,variables:r,isForm:o,selection:i="full",includeCount:s=true}){let[u,a]=useState({count:0,results:[]}),[l,d]=useState(false),[p,f]=useState(false),[c,h]=useState(null),k=useRef(false),A=useRef(false),m=useRef(0),g=useRef(null),S=useRef(null),v=`${e}Total`,L=te(t,e),q=r?.where===void 0&&(L?.spaces?.length??0)===0&&(c?.field!==v||c.schema!==t)?"total":"aggregate",oe=useMemo(()=>gql(tt(e,n,t,{selection:i,countMode:q,includeCount:s}).query),[e,n,t,i,q,s]),K=useMemo(()=>gql(tt(e,n,t,{selection:i,includeCount:false}).query),[e,n,t,i]),{schemaErrorMessage:E,setSchemaErrorMessage:w}=$e(),{loading:j,data:z,fetchMore:G,refetch:Y,error:pe,networkStatus:me}=useQuery(oe,{variables:r,notifyOnNetworkStatusChange:true}),ve=useRef(G),Z=useRef(Y),Re=useRef(K),ee=useRef(me),ge=useRef(r);ve.current=G,Z.current=Y,Re.current=K,ge.current=r;let _e=s&&wn(pe,v),ie=q==="total"&&_e,B=_e?void 0:pe,le=_e&&!z?.[e],he=ke(B),H=nt(B),{isProjectDisabled:je,isProjectReadOnly:Be}=(()=>{if(he?.statusCode===403){let $=be(he.bodyText);if($&&typeof $.code=="string"){if($.code==="PROJECT_PAUSED")return {isProjectDisabled:true,isProjectReadOnly:false};if($.code==="READ_ONLY_MODE")return {isProjectDisabled:false,isProjectReadOnly:true}}return {isProjectDisabled:true,isProjectReadOnly:false}}return {isProjectDisabled:false,isProjectReadOnly:false}})();useEffect(()=>{ie&&h({field:v,schema:t});},[t,ie,v]);let ze=useCallback($=>{if(k.current||A.current)return;k.current=true,d(true);let{limit:N}=$.variables,V=m.current;ve.current({...$,query:Re.current,variables:{...ge.current,...$.variables,offset:V,limit:N}}).then(({data:se})=>{let Q=Ne({data:se,entityNamePlural:e,isForm:o,schema:t,scope:n}),y=Q.results.length;m.current=V+(y===0?0:Math.min(y,N)),a(b=>{let O=uniqBy(prop("_id"),[...b.results,...Q.results]);return O.length===b.results.length?{count:b.results.length,results:b.results}:{count:Q.count||b.count,results:O}});}).catch(se=>{console.error("Error fetching more data:",se);}).finally(()=>{k.current=false,d(false);});},[e,o,t,n]),Le=useCallback($=>{if(A.current)return Promise.resolve();let N=$?.preserve===true;return A.current=true,k.current=false,d(false),N||(g.current=null,S.current=null,m.current=0,f(true),a({count:0,results:[]})),Z.current().then(({data:V})=>{let se=JSON.stringify({entityNamePlural:e,scope:n,selection:i,includeCount:s,variables:r}),Q=Ne({data:V,entityNamePlural:e,isForm:o,schema:t,scope:n});g.current=se,S.current=null,m.current=it(r)+Q.results.length,a(Q);}).catch(V=>{console.error("Error reloading data:",V);}).finally(()=>{A.current=false,f(false);})},[e,o,t,n,i,s,r]);return useEffect(()=>{if(H){w(H);return}z&&E&&!B&&w(null);},[z,B,E,H,w]),useEffect(()=>{if(B||H||le)return;let $=JSON.stringify({entityNamePlural:e,scope:n,selection:i,includeCount:s,variables:r});if(g.current===$)return;if(j&&S.current!==$){S.current=$,m.current=0,a({count:0,results:[]});return}if(j)return;let N=Ne({data:z,entityNamePlural:e,isForm:o,schema:t,scope:n});g.current=$,S.current=null,m.current=it(r)+N.results.length,a(N);},[z,B,e,o,j,le,t,H,n,i,s,r]),useEffect(()=>{let $=ee.current;if(ee.current=me,B||H||A.current||le||$!==NetworkStatus.refetch||me!==NetworkStatus.ready||!z)return;let N=JSON.stringify({entityNamePlural:e,scope:n,selection:i,includeCount:s,variables:r}),V=Ne({data:z,entityNamePlural:e,isForm:o,schema:t,scope:n});g.current=N,S.current=null,m.current=it(r)+V.results.length,a(V);},[z,B,e,o,le,me,t,H,n,i,s,r]),useEffect(()=>{if(o)return;let $=`Get${J(e)}`,N=_n(Q=>{if(!(!Q.has($)||k.current||A.current))return Z.current().then(({data:y})=>{let b=JSON.stringify({entityNamePlural:e,scope:n,selection:i,includeCount:s,variables:r}),O=Ne({data:y,entityNamePlural:e,isForm:o,schema:t,scope:n});g.current=b,S.current=null,m.current=it(r)+O.results.length,a(O);}).catch(y=>{console.error("Error soft-refreshing entity list:",y);})}),V=Ln((Q,y)=>{Q===$&&a(b=>{let O=b.results.filter(Qt=>{let Ut=typeof Qt._id=="string"?Qt._id:void 0;return !Ut||!y.has(Ut)}),He=b.results.length-O.length;return He===0?b:{count:Math.max(0,b.count-He),results:O}});}),se=Mn((Q,y)=>{Q===$&&a(b=>go(b,y,r?.sort));});return ()=>{N(),V(),se();}},[e,o,t,n,i,s,r]),{isLoading:j&&me!==NetworkStatus.refetch||p||le,isLoadingMore:l,fetchMore:ze,reload:Le,count:u.count,data:u.results,isProjectDisabled:je,isProjectReadOnly:Be,schemaErrorMessage:E}}function it(e){let t=e?.offset;return typeof t=="number"&&Number.isFinite(t)?t:0}function Ne(e){let t=e.entityNamePlural;return e.data?.[t]?e.isForm?gn(e.entityNamePlural,e.scope,e.data,e.schema):mn(e.entityNamePlural,e.scope,e.data,e.schema):{count:0,results:[]}}function go(e,t,n){let r=new Map(t.map(s=>[s._id,s])),o=false,i=e.results.map(s=>{let u=typeof s._id=="string"?s._id:void 0;if(!u)return s;let a=r.get(u);return a?(o=true,{...s,...a.attributes}):s});return o?{count:e.count,results:ho(i,n)}:e}function ho(e,t){if(!Array.isArray(t)||t.length===0)return e;let[n]=t;if(!n||typeof n!="object")return e;let[r]=Object.entries(n),[o,i]=r??[];if(!o||i!=="ASC"&&i!=="DESC")return e;let s=i==="DESC"?-1:1;return [...e].sort((u,a)=>{let l=u[o],d=a[o],p=typeof l=="string"?l:"",f=typeof d=="string"?d:"";return p.localeCompare(f)*s})}function Zs(){return jsxs(Rc,{variant:"destructive",children:[jsx(AlertCircle,{className:"fk:h-4 fk:w-4"}),jsx(Sc,{children:"Project Paused"}),jsxs(Tc,{children:["This project has been paused. To troubleshoot this error, please"," ",jsx("a",{className:"fk:text-blue-500 fk:underline",href:"https://flexkit.io/docs/errors/project-paused",target:"_blank",rel:"noopener noreferrer",children:"follow these steps"}),"."]})]})}function ia(){let{schemaErrorMessage:e}=$e();if(!e)return jsx(Fragment,{});let[t,n,...r]=e.split(`
|
|
379
|
-
`);return jsxs(Rc,{className:"fk:mb-4",variant:"destructive",children:[jsx(AlertCircle,{className:"fk:h-4 fk:w-4"}),jsx(Sc,{children:"Schema mismatch"}),jsxs(Tc,{children:[jsx("p",{children:t}),n?jsx("p",{className:"fk:mt-1",children:n}):null,r.length>0?jsx("ul",{className:"fk:mt-2 fk:list-disc fk:pl-4",children:r.map(o=>jsx("li",{children:o.replace(/^- /,"")},o))}):null]})]})}function Nn({scrollHeight:e,scrollTop:t,clientHeight:n}){if(n<=0)return false;let r=t>0?Math.max(600,n):1;return e-t-n<r}var Co=36,xo=15,vo=2,Un=40;function Bn(e){if(!e)return;let t=e.split(/\s+/);if(t.includes("fk:h-20"))return 80;if(t.includes("fk:h-10"))return 40;if(t.includes("fk:h-9"))return 36}function Ro(e,t){return e??Bn(t)??Co}function ya({classNames:e,columns:t,data:n,entityName:r,hasMore:o=false,initialSelectionState:i,isLoadingMore:s=false,onEntitySelectionChange:u,onLoadMore:a$2,onScroll:l,onSortingChange:d,pageSize:p,rowHeightEstimate:f,rowAdditionState:c,rowDeletionState:h,scrollToTopKey:k,sorting:A,toolbarComponent:m}){let g=useRef(null),{schemaErrorMessage:S}=$e(),[v,L]=useState(i??{}),[T,q]=useState({}),[oe,K]=useState([]),[E,w]=useState([]),j=A??E;useEffect(()=>{g.current?.scrollTo({top:0,left:0});},[r,k]),useEffect(()=>{if(!i)return;let y=Object.keys(v).sort().join(","),b=Object.keys(i).sort().join(",");y!==b&&L(i);},[i,v]);function z(y){if(d){d(y);return}w(y);}let G=useReactTable({data:n,columns:t,state:{sorting:j,columnVisibility:T,rowSelection:v,columnFilters:oe},initialState:{pagination:{pageSize:p??50}},enableRowSelection:true,onRowSelectionChange:se,onSortingChange:z,onColumnFiltersChange:K,onColumnVisibilityChange:q,getCoreRowModel:getCoreRowModel(),getFilteredRowModel:getFilteredRowModel(),getPaginationRowModel:getPaginationRowModel(),getSortedRowModel:getSortedRowModel(),getRowId:y=>y._id,manualFiltering:true,manualPagination:true,manualSorting:true,meta:{getRowBackground:y=>Lo(y,h,c)}}),{rows:Y}=G.getRowModel(),pe=Ro(f,e?.row),me=Bn(e?.row)!=null,ve=useVirtualizer({count:Y.length,estimateSize:()=>pe,getItemKey:y=>Y[y]?.id??y,getScrollElement:()=>g.current,overscan:xo,scrollMargin:Un}),Z=G.getVisibleLeafColumns(),Re=G.getHeaderGroups(),ee=Re.length===1,ge=useVirtualizer({horizontal:true,count:Z.length,estimateSize:y=>Z[y].getSize(),getItemKey:y=>Z[y].id,getScrollElement:()=>g.current,overscan:vo,enabled:ee}),_e=JSON.stringify(Z.map(y=>[y.id,y.getSize()]));useEffect(()=>{ge.measure();},[_e,ge]);let ie=ge.getVirtualItems(),B=ee?ie[0]?.index??0:0,le=ee?(ie[ie.length-1]?.index??-1)+1:Z.length,he=ee?ie[0]?.start??0:0,H=ee?Math.max(0,ge.getTotalSize()-(ie[ie.length-1]?.end??0)):0,je=ve.getVirtualItems(),{paddingTop:Be,paddingBottom:ze}=_o(je,ve.getTotalSize(),Un),Le=useRef(a$2),$$1=useRef(o),N=useRef(s);Le.current=a$2,$$1.current=o,N.current=s;let V=useCallback(y=>{if(!Le.current||!$$1.current||N.current)return;let b=y??g.current;b&&Nn(b)&&(N.current=true,Le.current());},[]);useEffect(()=>{V();},[V,Y.length,o,s]);function se(y){let b=Object.keys(typeof y=="function"?y(v):y);L(y),u?.(b);}function Q(y){l?.(y),V(y.currentTarget);}return S?jsx(Fragment,{}):jsxs("div",{className:a$1("fk:flex fk:h-full fk:min-h-0 fk:w-full fk:min-w-0 fk:flex-col fk:gap-4",e?.wrapper),children:[m&&m(G),jsx("div",{className:"fk:relative fk:min-h-0 fk:min-w-0 fk:flex-1 fk:-mb-px",children:jsx(a,{delayDuration:400,children:jsxs(_,{className:a$1("fk:grid fk:pb-20",e?.table),"aria-colcount":Z.length,style:{minWidth:G.getTotalSize()},containerClassName:e?.tableContainer,onScroll:Q,ref:g,children:[jsx($,{className:"fk:sticky fk:top-0 fk:z-20 fk:grid",children:Re.map(y=>jsxs(ca,{className:"fk:flex fk:w-full",children:[he>0?jsx(ut,{width:he,header:true}):null,(ee?y.headers.slice(B,le):y.headers).map((b,O)=>jsxs(da,{"aria-colindex":ee?B+O+1:void 0,className:a$1("fk:flex fk:shrink-0 fk:items-center",b.column.id==="actions"&&"fk:pl-0"),colSpan:b.colSpan,style:b.getSize()?{width:`${b.getSize().toString()}px`}:{},children:[b.isPlaceholder?null:flexRender(b.column.columnDef.header,b.getContext()),s?jsx("div",{"aria-hidden":true,className:"fk:pointer-events-none fk:absolute fk:top-10.25 fk:right-px fk:left-px fk:z-20 fk:h-0.5 fk:overflow-hidden fk:opacity-4",children:jsx("div",{className:"fk:animate-progress fk:h-full fk:w-full fk:bg-foreground"})}):null]},b.id)),H>0?jsx(ut,{width:H,header:true}):null]},y.id))}),jsx(aa,{className:"fk:grid fk:relative",children:Y.length===0?jsx(ca,{children:jsx(ea,{className:"fk:h-24 fk:text-center",colSpan:t.length,children:"No results."})}):jsxs(Fragment,{children:[Be>0?jsx(qn,{height:Be}):null,je.map(y=>{let b=Y[y.index];return jsxs(ca,{className:a$1(G.options.meta.getRowBackground(b),"fk:flex fk:w-full fk:overflow-hidden fk:transition-none",!me&&f==null&&"fk:h-9",e?.row),"data-index":y.index,"data-state":b.getIsSelected()&&"selected",style:{height:`${pe.toString()}px`},children:[he>0?jsx(ut,{width:he}):null,b.getVisibleCells().slice(B,le).map((O,He)=>jsx(ea,{className:a$1("fk:flex fk:shrink-0 fk:items-center fk:truncate",O.column.id==="actions"&&"fk:pl-1!"),"aria-colindex":B+He+1,style:{width:O.column.getSize()},children:flexRender(O.column.columnDef.cell,O.getContext())},O.id)),H>0?jsx(ut,{width:H}):null]},y.key)}),ze>0?jsx(qn,{height:ze}):null]})})]})})})]})}function _o(e,t,n){if(e.length===0)return {paddingTop:0,paddingBottom:0};let r=e[0]?.start??0,o=e[e.length-1]?.end??0;return {paddingTop:Math.max(0,r-n),paddingBottom:Math.max(0,t-(o-n))}}function ut({width:e,header:t=false}){return jsx(t?"th":"td",{"aria-hidden":true,style:{width:e,flexShrink:0,padding:0,border:0}})}function qn({height:e}){return jsx("tr",{"aria-hidden":true,className:"fk:pointer-events-none fk:border-0",style:{display:"block",height:`${e.toString()}px`},children:jsx("td",{className:"fk:p-0 fk:border-0"})})}function Lo(e,t,n){return t?.includes(e.original._id)?"fk:bg-row-removed fk:hover:bg-row-removed-hover":n?.some(r=>r._id===e.original._id)?"fk:bg-row-added fk:hover:bg-row-added-hover":""}var Jn=createContext([]),Xn=createContext(()=>{});function Do(e,t){let n=t.type;switch(t._id||(t._id=Date.now().toString()),n){case "DeleteEntity":return uniqBy(props(["type","_id"]),[...e,t]);case "AddEntity":return uniqBy(props(["type","_id"]),[...e,t]);case "EditEntity":return uniqBy(props(["type","_id"]),[...e,t]);case "EditRelationship":return uniqBy(props(["type","_id"]),[...e,t]);case "AlertDialog":return uniqBy(props(["type","_id"]),[...e,t]);case "Dismiss":return e.filter(r=>r._id!==t._id);default:throw Error(`Unknown action: ${n}`)}}function Ea({children:e}){let[t,n]=useReducer(Do,[]);return jsx(Jn.Provider,{value:t,children:jsx(Xn.Provider,{value:n,children:e})})}function Ta(){return useContext(Jn)}function wa(){return useContext(Xn)}function Ra({table:e}){let[t]=e.getState().sorting;if(!t)return null;let r=e.getColumn(t.id)?.columnDef.meta?.label??t.id,o=t.desc?"desc":"asc";return jsxs(b$1,{"aria-label":`Clear sorting by ${r}`,className:"fk:h-8 fk:px-2 fk:lg:px-3 fk:text-success fk:border-none",onClick:()=>{e.resetSorting();},size:"sm",variant:"outline",children:["Sorted by ",r," ",o,jsx(X$1,{className:"fk:ml-1 fk:h-4 fk:w-4"})]})}function Oa(){let[e,t]=useState(false),[n,r]=useState(gql`
|
|
380
|
-
mutation updateEntity($any: Any) {
|
|
381
|
-
any
|
|
382
|
-
}
|
|
383
|
-
`),[o,i]=useState({}),[s,{data:u,loading:a,error:l}]=useMutation(n,o),d=ke(l),{isProjectDisabled:p,isProjectReadOnly:f}=(()=>{if(d?.statusCode===403){let c=be(d.bodyText);if(c&&typeof c.code=="string"){if(c.code==="PROJECT_PAUSED")return {isProjectDisabled:true,isProjectReadOnly:false};if(c.code==="READ_ONLY_MODE")return {isProjectDisabled:false,isProjectReadOnly:true}}return {isProjectDisabled:true,isProjectReadOnly:false}}return {isProjectDisabled:false,isProjectReadOnly:false}})();return useEffect(()=>{e&&(s(),t(false));},[e,s]),[t,r,i,{data:u,loading:a,error:l,isProjectDisabled:p,isProjectReadOnly:f}]}function Rt({column:e,title:t,className:n}){if(!e.getCanSort())return jsx("div",{className:a$1("fk:flex fk:items-center",n),children:t});let r=e.getIsSorted()==="asc",o=e.getIsSorted()==="desc";return jsxs("div",{className:a$1("fk:flex fk:w-full fk:items-center fk:justify-between fk:gap-1",n),children:[jsx("span",{className:"fk:truncate",children:t}),jsxs(e$1,{children:[jsx(g,{asChild:true,children:jsx("button",{"aria-label":`Sort ${t}`,className:"fk:inline-flex fk:shrink-0 fk:items-center fk:justify-center fk:rounded-sm fk:p-0.5 fk:text-muted-foreground fk:outline-hidden fk:hover:bg-accent fk:hover:text-accent-foreground fk:focus-visible:ring-1 fk:focus-visible:ring-ring fk:corner-squircle",type:"button",children:jsx(ChevronDown,{className:"fk:h-3.5 fk:w-3.5"})})}),jsxs(h,{align:"end",className:"fk:w-44",children:[jsxs(j,{"aria-checked":r,className:a$1(r&&"fk:bg-accent fk:text-accent-foreground"),onSelect:()=>{if(r){e.clearSorting();return}e.toggleSorting(false);},role:"menuitemcheckbox",children:[jsx(ArrowUp,{className:a$1("fk:h-4 fk:w-4",r&&"fk:text-white")}),"Sort Ascending"]}),jsxs(j,{"aria-checked":o,className:a$1(o&&"fk:bg-accent fk:text-accent-foreground"),onSelect:()=>{if(o){e.clearSorting();return}e.toggleSorting(true);},role:"menuitemcheckbox",children:[jsx(ArrowDown,{className:a$1("fk:h-4 fk:w-4",o&&"fk:text-white")}),"Sort Descending"]})]})]})]})}function Lt({value:e}){return jsx("div",{className:"fk:flex fk:w-full fk:justify-center",children:e?jsx(CircleCheck,{className:"fk:w-4 fk:h-4 fk:text-emerald-500"}):jsx(CircleX,{className:"fk:w-4 fk:h-4 fk:text-muted-foreground"})})}var Yn=500,Jo=3e3;function X({value:e}){let t=useRef(null),n=useRef(null),[r,o]=useState(false),[i,s]=useState(false);useEffect(()=>()=>{n.current&&clearTimeout(n.current);},[]);function u(){let f=t.current;return f?f.scrollWidth>f.clientWidth:false}async function a(f){if(f.preventDefault(),f.stopPropagation(),!!e){try{await navigator.clipboard.writeText(e);}catch{return}o(true),s(true),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>{o(false),s(false);},Jo);}}function l(){u();}function d(f){if(!r){if(f){s(u());return}s(false);}}if(!e)return jsx("div",{className:"fk:truncate"});let p=e.length>Yn?`${e.slice(0,Yn)}\u2026`:e;return jsxs(b$3,{open:i,onOpenChange:d,children:[jsx(c$1,{asChild:true,children:jsxs("button",{"aria-label":"Copy value",className:a$1("fk:group/copyable fk:relative fk:flex fk:w-full fk:min-w-0 fk:items-center fk:rounded-sm fk:border-0 fk:bg-transparent fk:px-0.5 fk:-mx-0.5 fk:py-0.5 fk:text-left fk:text-inherit fk:font-inherit fk:corner-squircle","fk:cursor-pointer fk:transition-[transform,background-color] fk:duration-75 fk:ease-out","fk:hover:bg-muted/50 fk:active:translate-y-px fk:active:scale-[0.98] fk:active:bg-muted/70","fk:focus-visible:outline-hidden fk:focus-visible:ring-1 fk:focus-visible:ring-ring"),onClick:a,onPointerEnter:l,type:"button",children:[jsx("span",{className:"fk:min-w-0 fk:flex-1 fk:truncate fk:pr-4",ref:t,children:e}),jsx("span",{"aria-hidden":true,className:a$1("fk:pointer-events-none fk:absolute fk:right-0.5 fk:top-1/2 fk:flex fk:-translate-y-1/2 fk:items-center fk:justify-center","fk:rounded-sm fk:bg-muted/80 fk:p-0.5 fk:text-muted-foreground fk:shadow-sm fk:ring-1 fk:ring-border/60 fk:corner-squircle","fk:transition-opacity fk:duration-100",r?"fk:opacity-100 fk:text-foreground":"fk:opacity-0 fk:group-hover/copyable:opacity-100 fk:group-focus-visible/copyable:opacity-100"),children:r?jsx(Check,{className:"fk:size-3"}):jsx(Copy,{className:"fk:size-3"})})]})}),jsx(e$2,{className:"fk:max-w-xs fk:wrap-break-word",children:r?"Copied to clipboard":p})]})}function xe({value:e}){let t=typeof e=="object"||Array.isArray(e)?JSON.stringify(e):e;return t=t==="null"||t==null?"":String(t),jsx(X,{value:t})}var bi=AIHighlight,Si=Placeholder,Ai=TiptapLink.configure({HTMLAttributes:{class:cx("fk:text-muted-foreground fk:underline fk:underline-offset-[3px] fk:hover:text-primary fk:transition-colors fk:cursor-pointer")}}),Ei=Markdown.configure({html:true,tightLists:true,tightListClass:"tight",bulletListMarker:"-",linkify:false,breaks:false,transformPastedText:false,transformCopiedText:false}),Ti=TiptapImage.extend({addProseMirrorPlugins(){return [UploadImagesPlugin({imageClass:cx("fk:opacity-40 fk:rounded-lg fk:border fk:border-stone-200 fk:corner-squircle")})]}}).configure({allowBase64:true,HTMLAttributes:{class:cx("fk:rounded-lg fk:border fk:border-muted fk:corner-squircle")}}),wi=TaskList.configure({HTMLAttributes:{class:cx("fk:not-prose fk:pl-2 ")}}),$i=TaskItem.configure({HTMLAttributes:{class:cx("fk:flex gap-2 fk:items-start fk:my-2")},nested:true}),Ci=HorizontalRule.configure({HTMLAttributes:{class:cx("mt-4 mb-6 border-t border-muted-foreground")}}),xi=StarterKit.configure({bulletList:{HTMLAttributes:{class:cx("fk:list-disc fk:list-outside fk:leading-3 fk:-mt-2")}},orderedList:{HTMLAttributes:{class:cx("fk:list-decimal fk:list-outside fk:leading-3 fk:-mt-2")}},listItem:{HTMLAttributes:{class:cx("fk:leading-normal fk:-mb-2")}},blockquote:{HTMLAttributes:{class:cx("fk:border-l-4 fk:border-primary")}},codeBlock:false,code:{HTMLAttributes:{class:cx("fk:rounded-md fk:bg-muted fk:px-1.5 fk:py-1 fk:font-mono fk:font-medium fk:corner-squircle"),spellcheck:"false"}},horizontalRule:false,dropcursor:{color:"#DBEAFE",width:4},gapcursor:false}),vi=CodeBlockLowlight.configure({lowlight:createLowlight(common)}),Ri=Youtube.configure({HTMLAttributes:{class:cx("fk:rounded-lg fk:border fk:border-muted fk:corner-squircle")},inline:false}),_i=Twitter.configure({HTMLAttributes:{class:cx("fk:not-prose")},inline:false}),Li=Mathematics.configure({HTMLAttributes:{class:cx("fk:text-foreground fk:rounded-sm fk:p-1 fk:hover:bg-muted fk:cursor-pointer fk:corner-squircle")},katexOptions:{throwOnError:false}}),Mi=CharacterCount.configure(),er=[xi,Si,Ai,Ti,wi,$i,Ci,bi,vi,Ri,_i,Li,Mi,TiptapUnderline,Ei,HighlightExtension,TextStyle,Color,CustomKeymap,GlobalDragHandle];var Mt;function Pi(){let e=getSchema(er);return {schema:e,textSerializers:getTextSerializersFromSchema(e)}}function tr(e,t=100){if(!e)return "";try{let n=JSON.parse(e);return Mt??=Pi(),getText(Node.fromJSON(Mt.schema,n),{textSerializers:Mt.textSerializers}).substring(0,t)}catch{return e.substring(0,t)}}function nr({value:e}){let t=useMemo(()=>tr(e),[e]);return jsx(X,{value:t})}var rr=250,ji=25e5,re=new Map,Dt=new Map,It=new Set,or=new Map;function ct(e){if(or.has(e))return;let t=new Image;t.decoding="async",t.src=e,or.set(e,t);}function dt(e){let t=re.get(e);t&&re.set(e,{...t,lastUsedAt:Date.now()});}function Bi(){if(re.size<=rr)return;let e=Array.from(re.entries()).sort((n,r)=>n[1].lastUsedAt-r[1].lastUsedAt),t=Math.max(1,Math.ceil(rr*.1));for(let n=0;n<t&&n<e.length;n+=1){let[r,o]=e[n];re.delete(r),URL.revokeObjectURL(o.objectUrl);}}async function zi(e){if(It.has(e)){ct(e);return}if(re.has(e)){dt(e);return}let t=Dt.get(e);if(t){await t;return}let n=(async()=>{try{let r=await fetch(e,{mode:"cors",cache:"force-cache"});if(!r.ok){ct(e);return}let o=await r.blob();if(o.size>ji)return;let i=URL.createObjectURL(o);re.set(e,{objectUrl:i,byteSize:o.size,lastUsedAt:Date.now()}),Bi();}catch(r){r instanceof TypeError&&It.add(e),ct(e);}})();Dt.set(e,n),await n,Dt.delete(e);}function ir(e){let t=useMemo(()=>{if(!e)return null;let o=re.get(e);return o?(dt(e),o.objectUrl):null},[e]),[n,r]=useState(t);return useEffect(()=>{if(!e){r(null);return}if(It.has(e)){ct(e),r(null);return}let o=re.get(e);if(o){dt(e),r(o.objectUrl);return}r(null);let i=false;return zi(e).then(()=>{let s=re.get(e);s&&(i||(dt(e),r(s.objectUrl)));}),()=>{i=true;}},[e]),n}var Ft="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function sr({value:e}){return Array.isArray(e)?jsx(Xi,{value:e}):jsx(Ji,{value:e})}function Ji({value:e}){let t=e?.path??"",n=!!t,r=n&&/\.(png|jpe?g|gif|webp|avif|svg)$/i.test(t),o=a=>{let[l]=a.split("?"),d=l.split(".");return d.length>1?d.pop().toLowerCase():"file"},i=n?t.endsWith(".svg")?`${c$3}${t}`:`${c$3}${t}?w=84&h=84&f=webp`:null,s=n?t.endsWith(".svg")?`${c$3}${t}`:`${c$3}${t}?w=624&h=624&f=webp`:"",u=ir(i);return n?jsx("div",{className:"fk:z-10",children:r?jsxs(b$3,{children:[jsx(c$1,{asChild:true,children:jsx("img",{alt:"asset",className:`fk:w-7 fk:h-7 fk:cursor-zoom-in fk:overflow-hidden fk:rounded-md fk:object-contain ${Ft} fk:corner-squircle`,decoding:"async",src:u??void 0})}),jsx(d,{children:jsx(e$2,{children:jsx("img",{alt:"asset",className:`fk:w-52 fk:h-52 fk:overflow-hidden fk:rounded-md fk:object-contain ${Ft} fk:corner-squircle`,decoding:"async",src:s})})})]}):jsxs(b$3,{children:[jsx(c$1,{asChild:true,children:jsx("div",{className:"fk:w-7 fk:h-7 fk:rounded-sm fk:bg-transparent fk:flex fk:items-center fk:justify-center fk:[&>svg]:h-full fk:[&>svg]:w-auto fk:corner-squircle",children:(()=>{let a=o(t),l=defaultStyles[a];return jsx(FileIcon,{extension:a,...l||{}})})()})}),jsx(d,{children:jsx(e$2,{children:jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"Preview not available"})})})]})}):null}function Xi({value:e}){let t=e.filter(o=>!!o.path).slice(0,3),n=Math.max(e[0]?.totalCount??0,e.length);if(t.length===0)return n>0?jsx("div",{className:"fk:flex fk:items-center",children:jsx("span",{className:"fk:text-xs fk:text-muted-foreground",children:n===1?"1 asset":`${n} assets`})}):null;let r=n-t.length;return jsxs("div",{className:"fk:flex fk:items-center",children:[jsx("div",{className:"fk:flex fk:-space-x-2",children:t.map(o=>jsx("img",{alt:"asset",className:`fk:h-7 fk:w-7 fk:overflow-hidden fk:rounded-md fk:object-contain ${Ft} fk:corner-squircle`,decoding:"async",src:`${c$3}${o.path}?w=84&h=84&f=webp`},o._id))}),r>0?jsxs("span",{className:"fk:ml-2 fk:text-xs fk:text-muted-foreground",children:["+",r]}):null]})}function Pt({value:e}){if(e==null||e===""||typeof e!="string")return jsx(X,{value:""});let t=new Date(e);if(!isValid(t))return jsx(X,{value:""});let n=format(t,"MMM d, yyyy")+" at "+format(t,"HH:mm");return jsx(X,{value:n})}function Ki(e){return "groupLabel"in e}function Yi(e){return e.flatMap(t=>Ki(t)?t.items:[t])}function Zi(e,t){if(!t)return e;let n=Yi(t).find(r=>String(r.value)===e);return n?n.label:e}function ur({value:e,options:t}){if(e==null)return jsx(X,{value:""});let n=String(e),r=Zi(n,t?.list);return jsx(X,{value:r})}function dr({value:e}){return !e||!e.split(",").length?null:jsx("div",{className:"fk:flex fk:flex-wrap fk:gap-1 fk:max-w-full truncate",children:e.split(",").map(t=>jsx(b$4,{className:"fk:px-2.5 fk:py-0 fk:font-normal fk:text-[0.6875rem] fk:leading-4",variant:"secondary",children:t},t))})}function fr(e,t=5){let n=Number.isFinite(t)&&t>=1?Math.floor(t):5,r=typeof e=="string"&&e.trim()!==""?Number(e):e;if(typeof r!="number"||!Number.isFinite(r))return null;let o=Math.min(n,Math.max(0,Math.round(r)));return {filled:o,max:n,label:`${String(o)} out of ${String(n)} stars`}}function pr({value:e,options:t}){let n=fr(e,t?.max);return n?jsx("span",{"aria-label":n.label,className:"fk:inline-flex fk:items-center fk:gap-0.5",role:"img",title:n.label,children:Array.from({length:n.max},(r,o)=>jsx(Star,{"aria-hidden":true,className:o<n.filled?"fk:h-3.5 fk:w-3.5 fk:fill-amber-400 fk:text-amber-400":"fk:h-3.5 fk:w-3.5 fk:fill-transparent fk:text-muted-foreground/40",strokeWidth:1.5},o))}):jsx("span",{})}var ts=/\.(png|jpe?g|gif|webp|avif|svg)$/i;function mr(e){try{let{pathname:t}=new URL(e);return t.split("/").pop()||t}catch{let[t]=e.split("?");return t}}function gr(e){return e.originalFilename?e.originalFilename:e.path?e.path:e.url?mr(e.url):""}function hr(e){let t=gr(e),[n]=t.split("?"),r=n.split(".");return r.length>1?r.pop().toLowerCase():"file"}function yr(e){return e.mimeType?e.mimeType.startsWith("image/"):ts.test(gr(e))}function Vt(e,t){if(!e||!t||mr(e).toLowerCase().endsWith(".svg"))return e;let n=new URLSearchParams({f:"webp",h:String(t.height),w:String(t.width)}),r=e.includes("?")?"&":"?";return `${e}${r}${n.toString()}`}var is=FileIcon,kr="fk:bg-[#fafafa] [--asset-checker:#f0f0f0] [background-image:linear-gradient(45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(-45deg,var(--asset-checker)_25%,transparent_25%),linear-gradient(45deg,transparent_75%,var(--asset-checker)_75%),linear-gradient(-45deg,transparent_75%,var(--asset-checker)_75%)] [background-position:0_0,0_4px,4px_-4px,-4px_0px] [background-size:8px_8px] fk:dark:bg-[#222] dark:[--asset-checker:#2a2a2a]";function br({value:e}){let[t,n]=useState(false),r=e?.url??"";if(!e||!r&&!e.path&&!e.originalFilename)return null;if(!(yr(e)&&!!r)){let a$1=hr(e),l=defaultStyles[a$1];return jsx("div",{className:"fk:z-10",children:jsx(a,{children:jsxs(b$3,{children:[jsx(c$1,{asChild:true,children:jsx("div",{className:"fk:w-7 fk:h-7 fk:rounded-sm fk:bg-transparent fk:flex fk:items-center fk:justify-center fk:[&>svg]:h-full fk:[&>svg]:w-auto fk:corner-squircle",children:jsx(is,{extension:a$1,...l||{}})})}),jsx(d,{children:jsx(e$2,{children:jsx("div",{className:"fk:text-sm fk:text-muted-foreground",children:"Preview not available"})})})]})})})}let i$1=Vt(r,{width:84,height:84}),s=Vt(r,{width:624,height:624});function u(a){a.stopPropagation(),n(true);}return jsx("div",{className:"fk:z-10",children:jsxs(a,{children:[jsxs(b$3,{children:[jsx(c$1,{asChild:true,children:jsx("img",{src:i$1,alt:"asset",className:`fk:w-12 fk:h-12 fk:cursor-zoom-in fk:overflow-hidden fk:rounded-md fk:object-contain ${kr} fk:corner-squircle`,onClick:u})}),jsx(d,{children:jsx(e$2,{children:jsx("img",{src:s,alt:"asset",className:`fk:w-52 fk:h-52 fk:overflow-hidden fk:rounded-md fk:object-contain ${kr} fk:corner-squircle`})})})]}),jsx(c$2,{open:t,onOpenChange:n,children:jsxs(h$2,{className:"fk:sm:max-w-4xl fk:p-3",children:[jsxs(i,{children:[jsx(k,{className:"fk:sr-only",children:"Asset preview"}),jsx(l,{className:"fk:sr-only",children:"Enlarged asset preview"})]}),jsx("img",{src:r,alt:"asset",className:"fk:max-h-[85vh] fk:w-full fk:overflow-hidden fk:rounded-md fk:object-contain fk:corner-squircle"})]})})]})})}var ss=new Set(["text","number","datetime","switch","select"]);function ou({attributesSchema:e,checkboxSelect:t,actionsComponent:n,enableColumnSorting:r=false}){let[,o$1]=h$1(),i=b$2(e,o$1.user?.spaces),s={datetime:"datetime",editor:"editor",asset:"asset",number:"text",relationship:"text",select:"select",switch:"boolean",text:"text",textarea:"text"},u={boolean:Lt,date:xe,datetime:Pt,editor:nr,asset:sr,number:xe,relationship:xe,select:ur,switch:Lt,text:xe,textarea:xe,tags:dr,rating:pr,assetPreviewField:br},a=i.map(c=>{if(c.name==="_updatedAt")return null;let h=(c.inputType==="relationship"&&c.relationship?.entity==="_asset"?"asset":void 0)??c.previewType??s[c.inputType],k=u[h]??u.text;if(c.hidden===true)return null;let A=h==="tags",m=r&&c.scope==="global"&&ss.has(c.inputType);return {accessorKey:c.name,filterFn:(g,S,v)=>A?true:(Array.isArray(v)?v:[v]).includes(g.getValue(S)),header:({column:g})=>m?jsx(Rt,{column:g,title:c.label}):jsx("div",{className:"fk:flex fk:items-center",children:c.label}),cell:({row:g})=>{let S=k;return h==="select"||h==="rating"?jsx(S,{value:g.getValue(c.name),options:c.options}):h==="assetPreviewField"?jsx(S,{value:g.original}):jsx(S,{value:g.getValue(c.name)})},enableSorting:m,enableHiding:true,meta:{label:c.label},size:c.options?.size??150}}).filter(c=>c!==null),l={id:"actions",cell:({row:c})=>n?n(c):null,size:80},d={accessorKey:"_updatedAt",header:({column:c})=>r?jsx(Rt,{column:c,title:"Updated At"}):jsx("div",{className:"fk:flex fk:items-center",children:"Updated At"}),cell:({row:c})=>jsx(Pt,{value:c.getValue("_updatedAt")}),enableSorting:r,enableHiding:false,meta:{label:"Updated At"},size:220},p={id:"select",cell:({row:c,table:h})=>jsx(o,{"aria-label":"Select row",checked:c.getIsSelected(),onCheckedChange:k=>{h.toggleAllPageRowsSelected(false),c.toggleSelected(!!k);}}),enableSorting:false,enableHiding:false,size:50},f={id:"select",header:({table:c})=>jsx(o,{className:"fk:dark:bg-white/15","aria-label":"Select all",checked:c.getIsAllPageRowsSelected()||c.getIsSomePageRowsSelected()&&"indeterminate",onCheckedChange:h=>{c.toggleAllPageRowsSelected(!!h);}}),cell:({row:c})=>jsx(o,{"aria-label":"Select row",checked:c.getIsSelected(),onCheckedChange:h=>{c.toggleSelected(!!h);}}),enableSorting:false,enableHiding:false,size:50};return [...t==="single"?[p]:[],...t==="multiple"?[f]:[],...n?[l]:[],...a,d]}export{wa as A,Ra as B,Oa as C,er as D,gr as E,hr as F,yr as G,Vt as H,Rt as I,ou as J,ln as a,cn as b,$r as c,ps as d,tt as e,mn as f,ms as g,gs as h,hs as i,ys as j,ks as k,bs as l,te as m,Ss as n,Ps as o,Ns as p,Vs as q,co as r,$e as s,Ms as t,Xs as u,Zs as v,ia as w,ya as x,Ea as y,Ta as z};//# sourceMappingURL=chunk-6YOVF2AD.js.map
|
|
384
|
-
//# sourceMappingURL=chunk-6YOVF2AD.js.map
|