@augmentd-labs/canvas-web 2.26.41 → 2.26.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/assets/{CalendarApplet-Bno3IDzO.js → CalendarApplet-D-zqm-ie.js} +1 -1
  2. package/dist/assets/{FiltersApplet-PclPc7fz.js → FiltersApplet-JdYOvvVo.js} +1 -1
  3. package/dist/assets/{HomeFab-B3f-hO-p.js → HomeFab-KnJ0amal.js} +1 -1
  4. package/dist/assets/{LensApplet-BnW7b0KX.js → LensApplet-DmJnK9xh.js} +1 -1
  5. package/dist/assets/{NotesApplet-FjdHMWCV.js → NotesApplet-CQElHVk-.js} +1 -1
  6. package/dist/assets/{_agentId_-CW33ane1.js → _agentId_-D-qxZUMa.js} +0 -0
  7. package/dist/assets/{_contextId_-wbu8w6OE.js → _contextId_-Dn4SYTZE.js} +1 -1
  8. package/dist/assets/_workspaceName_-BsPptLde.js +1 -0
  9. package/dist/assets/{about-DRzhyy-e.js → about-CYt1r_NF.js} +1 -1
  10. package/dist/assets/{add-BeESP_fg.js → add-Di0PTHej.js} +1 -1
  11. package/dist/assets/{agents-BYNJHrPc.js → agents-DcNNzyQt.js} +1 -1
  12. package/dist/assets/{appearance-DiQhAis2.js → appearance-Bs11PYYg.js} +1 -1
  13. package/dist/assets/{apps-C2mb0HML.js → apps-DN8Ux5ac.js} +1 -1
  14. package/dist/assets/{home-BRx1tOR-.js → home-7tcQ6_Mc.js} +1 -1
  15. package/dist/assets/{index-I9cslsRe.js → index-DDoPhET6.js} +2 -2
  16. package/dist/assets/{key-bindings-CvzGVYrr.js → key-bindings-CqCOuyv6.js} +1 -1
  17. package/dist/assets/{registry-NAExJwr9.js → registry-fC-KNk2X.js} +2 -2
  18. package/dist/assets/{settings-HBpYbGPW.js → settings-BIvpUSK-.js} +1 -1
  19. package/dist/assets/{settings-DrQdeEUS.js → settings-B_suOk2v.js} +1 -1
  20. package/dist/assets/{settings-DMM8k_4o.js → settings-CP_46X21.js} +6 -6
  21. package/dist/assets/{settings-CjKOuPew.js → settings-Dluo6P1Q.js} +1 -1
  22. package/dist/assets/{share-target-q77WkQhO.js → share-target-C7PbTH7r.js} +1 -1
  23. package/dist/assets/{shared-DsgNtRuD.js → shared-0beOwGSQ.js} +1 -1
  24. package/dist/assets/{tree-folders-CNu09uPg.js → tree-folders-CNbp7be7.js} +1 -1
  25. package/dist/assets/{useAgentModels-B48KqDI7.js → useAgentModels-Dw0ibJnv.js} +1 -1
  26. package/dist/assets/{workspaces-y3zARr9A.js → workspaces-BTYGLm4X.js} +1 -1
  27. package/dist/index.html +2 -2
  28. package/dist/sw.js +1 -1
  29. package/package.json +2 -2
  30. package/dist/assets/_workspaceName_-Ck6op9kd.js +0 -1
package/dist/sw.js CHANGED
@@ -1 +1 @@
1
- var e=`share-target-inbox`;async function t(e,t,n){let r=`/share-target-inbox/${t}`,i=[],a=async e=>{await Promise.all(i.map(e=>n.delete(e))),await n.put(`${r}/meta`,new Response(JSON.stringify({status:`error`,error:e,stashedAt:Date.now()})))};try{if(Number(e.headers.get(`content-length`))>105906176){await e.body?.cancel().catch(()=>{}),await a(`too-large`);return}let t=await e.formData(),o=t.getAll(`files`).filter(e=>e instanceof File);if(o.some(e=>e.size===0)){await a(`empty-file`);return}if(o.reduce((e,t)=>e+t.size,0)>104857600){await a(`too-large`);return}let s=e=>{let n=t.get(e);return typeof n==`string`?n:``},c=s(`title`),l=s(`text`),u=s(`url`);if(!o.length&&![c,l,u].some(e=>e.trim())){await a(`empty-share`);return}for(let[e,t]of o.entries()){let a=`${r}/file-${e}`;await n.put(a,new Response(t,{headers:{"Content-Type":t.type||`application/octet-stream`}})),i.push(a)}await n.put(`${r}/meta`,new Response(JSON.stringify({status:`ready`,title:c,text:l,url:u,fileNames:o.map(e=>e.name),stashedAt:Date.now()})))}catch{await a(`stash-failed`)}}try{self[`workbox:core:7.4.0`]&&_()}catch{}var n=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},r=class extends Error{constructor(e,t){let r=n(e,t);super(r),this.name=e,this.details=t}},i={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},a=e=>[i.prefix,e,i.suffix].filter(e=>e&&e.length>0).join(`-`),o=e=>{for(let t of Object.keys(i))e(t)},s={updateDetails:e=>{o(t=>{typeof e[t]==`string`&&(i[t]=e[t])})},getGoogleAnalyticsName:e=>e||a(i.googleAnalytics),getPrecacheName:e=>e||a(i.precache),getPrefix:()=>i.prefix,getRuntimeName:e=>e||a(i.runtime),getSuffix:()=>i.suffix};function c(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.4.0`]&&_()}catch{}var l=`__WB_REVISION__`;function u(e){if(!e)throw new r(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:t,url:n}=e;if(!n)throw new r(`add-to-cache-list-unexpected-type`,{entry:e});if(!t){let e=new URL(n,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(n,location.href),a=new URL(n,location.href);return i.searchParams.set(l,t),{cacheKey:i.href,url:a.href}}var ee=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},te=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function ne(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function re(e,t){let n=null;if(e.url&&(n=new URL(e.url).origin),n!==self.location.origin)throw new r(`cross-origin-copy-response`,{origin:n});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=t?t(a):a,s=ne()?i.body:await i.blob();return new Response(s,o)}var ie=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function f(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function ae(e,t,n,r){let i=f(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===f(t.url,n))return e.match(t,r)}var oe=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},p=new Set;async function m(){for(let e of p)await e()}function h(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.4.0`]&&_()}catch{}function g(e){return typeof e==`string`?new Request(e):e}var se=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new oe,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:t}=this,n=g(e);if(n.mode===`navigate`&&t instanceof FetchEvent&&t.preloadResponse){let e=await t.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?n.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))n=await e({request:n.clone(),event:t})}catch(e){if(e instanceof Error)throw new r(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=n.clone();try{let e;e=await fetch(n,n.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let n of this.iterateCallbacks(`fetchDidSucceed`))e=await n({event:t,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:t,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=g(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,t){let n=g(e);await h(0);let i=await this.getCacheKey(n,`write`);if(!t)throw new r(`cache-put-with-no-response`,{url:ie(i.url)});let a=await this._ensureResponseSafeToCache(t);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await ae(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await m(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=g(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},ce=class{constructor(e={}){this.cacheName=s.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new se(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,t,n){await e.runCallbacks(`handlerWillStart`,{event:n,request:t});let i;try{if(i=await this._handle(t,e),!i||i.type===`error`)throw new r(`no-response`,{url:t.url})}catch(r){if(r instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:r,event:n,request:t}),i)break}if(!i)throw r}for(let r of e.iterateCallbacks(`handlerWillRespond`))i=await r({event:n,request:t,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},v=class e extends ce{constructor(t={}){t.cacheName=s.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n,i=t.params||{};if(this._fallbackToNetwork){let r=i.integrity,a=e.integrity,o=!a||a===r;n=await t.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||r})),r&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new r(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();let n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new r(`bad-precaching-response`,{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};v.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},v.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await re(e):e}};var le=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new v({cacheName:s.getPrecacheName(e),plugins:[...t,new te({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||=(self.addEventListener(`install`,this.install),self.addEventListener(`activate`,this.activate),!0)}addToCacheList(e){let t=[];for(let n of e){typeof n==`string`?t.push(n):n&&n.revision===void 0&&t.push(n.url);let{cacheKey:e,url:i}=u(n),a=typeof n!=`string`&&n.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new r(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof n!=`string`&&n.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==n.integrity)throw new r(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,n.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),t.length>0){let e=`Workbox is precaching URLs without revision info: ${t.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return c(e,async()=>{let t=new ee;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return c(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let t=this.getCacheKeyForURL(e);if(!t)throw new r(`non-precached-url`,{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}},y,b=()=>(y||=new le,y);try{self[`workbox:routing:7.4.0`]&&_()}catch{}var x=e=>e&&typeof e==`object`?e:{handle:e},S=class{constructor(e,t,n=`GET`){this.handler=x(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=x(e)}},ue=class extends S{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&(t.origin===location.origin||n.index===0))return n.slice(1)},t,n)}},de=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,x(e))}setCatchHandler(e){this._catchHandler=x(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new r(`unregister-route-but-not-found-with-method`,{method:e.method});let t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new r(`unregister-route-route-not-registered`)}},C,fe=()=>(C||(C=new de,C.addFetchListener(),C.addCacheListener()),C);function pe(e,t,n){let i;if(typeof e==`string`){let r=new URL(e,location.href);i=new S(({url:e})=>e.href===r.href,t,n)}else if(e instanceof RegExp)i=new ue(e,t,n);else if(typeof e==`function`)i=new S(e,t,n);else if(e instanceof S)i=e;else throw new r(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return fe().registerRoute(i),i}function me(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*he(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=me(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var w=class extends S{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of he(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function T(e){pe(new w(b(),e))}var E=`-precache-`,D=async(e,t=E)=>{let n=(await self.caches.keys()).filter(n=>n.includes(t)&&n.includes(self.registration.scope)&&n!==e);return await Promise.all(n.map(e=>self.caches.delete(e))),n};function O(){self.addEventListener(`activate`,(e=>{let t=s.getPrecacheName();e.waitUntil(D(t).then(e=>{}))}))}function k(e){return b().matchPrecache(e)}function A(e){b().precache(e)}function j(e,t){A(e),T(t)}var M=`offline-content-v1`,N=`offline-api-v1`,P={enabled:!1,budgetBytes:4294967296,excludedWorkspaces:[]};function F(e){let t=e.match(/^\/rest\/v2\/workspaces\/([^/?#]+)/);return t?decodeURIComponent(t[1]):null}var I=1e3,L=`canvas-offline`,R=2,z=null;function B(){return z||(z=new Promise((e,t)=>{let n=indexedDB.open(L,R);n.onupgradeneeded=e=>{let t=n.result;if(t.objectStoreNames.contains(`config`)||t.createObjectStore(`config`),t.objectStoreNames.contains(`entries`)||t.createObjectStore(`entries`,{keyPath:`url`}),e.oldVersion>=1&&t.objectStoreNames.contains(`pins`)){t.deleteObjectStore(`pins`);let e=n.transaction.objectStore(`entries`).openCursor();e.onsuccess=()=>{let t=e.result;if(!t)return;let n=t.value;n.pinned&&t.update({...n,pinned:!1}),t.continue()}}t.objectStoreNames.contains(`scopes`)||t.createObjectStore(`scopes`,{keyPath:`id`})},n.onsuccess=()=>{n.result.onversionchange=()=>{n.result.close(),z=null},e(n.result)},n.onerror=()=>{z=null,t(n.error)}}),z)}function V(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function H(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}async function U(e,t){return H((await B()).transaction(e).objectStore(e).get(t))}async function ge(e){return H((await B()).transaction(e).objectStore(e).getAll())}async function W(e,t,n){let r=(await B()).transaction(e,`readwrite`);return r.objectStore(e).put(t,n),V(r)}async function G(e,t){let n=(await B()).transaction(e,`readwrite`);return n.objectStore(e).delete(t),V(n)}async function _e(){try{let e=await U(`config`,`settings`);return e?{...P,...e}:P}catch{return P}}async function K(e,t,n){let r=await U(`entries`,e);await W(`entries`,{url:e,kind:t,size:n,lastAccess:Date.now(),pinned:r?.pinned??!1})}var ve=6e4,q=new Map;async function J(e){let t=q.get(e),n=Date.now();if(t&&n-t<ve)return;q.set(e,n),q.size>4096&&q.clear();let r=await U(`entries`,e);r&&await W(`entries`,{...r,lastAccess:n})}async function ye(e){let t=await ge(`entries`),n=t.filter(e=>e.kind===`api`).sort((e,t)=>e.lastAccess-t.lastAccess),r=n.slice(0,Math.max(0,n.length-I)),i=t.filter(e=>e.kind===`content`),a=i.reduce((e,t)=>e+t.size,0),o=i.filter(e=>!e.pinned).sort((e,t)=>e.lastAccess-t.lastAccess),s=[];for(let t of o){if(a<=e)break;s.push(t),a-=t.size}if(!r.length&&!s.length)return;let[c,l]=await Promise.all([caches.open(N),caches.open(M)]);await Promise.all([...r.map(async e=>{await c.delete(e.url),await G(`entries`,e.url)}),...s.map(async e=>{await l.delete(e.url),await G(`entries`,e.url)})])}O(),j([{"revision":"c4aa07122a3fae55f5475c9425fb23e2","url":"index.html"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"favicon_wl.png"},{"revision":"243f17f04cf5eb5b298d9701dbd3b4b9","url":"favicon.png"},{"revision":"339e5b64fa2c186631343b5399fe3898","url":"wallpapers/files/canvas_3.svg"},{"revision":"b164dca13ae630411fdc766586da3f61","url":"wallpapers/files/canvas_1.svg"},{"revision":"6ffe60f1b1d220a5b59ef1fe376122f6","url":"screenshots/s3.png"},{"revision":"be57d83f15923b5351a2a7cde1f35bf8","url":"screenshots/s2.png"},{"revision":"c3af5f4e79b0e4b5794d10e1ed3be39a","url":"screenshots/s1.png"},{"revision":"265dfc3ecb9788a5ae8974ec254ac651","url":"js/particles.min.js"},{"revision":"443e87a6d23acf7c849051ffd38106db","url":"images/logo_orig.png"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"images/logo_64x64.png"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/logo_512x512.png"},{"revision":"d6363d0e5249f161c4b7d78045a210e5","url":"images/logo_256x256.png"},{"revision":"6f763ad15fbd8e2e93893c0d98a9905d","url":"images/logo_128x128.png"},{"revision":"bc4e038a89ae062004dd9ff297bba3f5","url":"images/logo_1024x1024.png"},{"revision":"1c1dcdd3b47bee973de6f323b504dda5","url":"images/logo-wr_orig.png"},{"revision":"34a0677b471ec1dcf5f25eeac90539e2","url":"images/logo-wr_64x64.png"},{"revision":"de6735f441492f065a0da94eacb982de","url":"images/logo-wr_512x512.png"},{"revision":"3018eca652753d237061b855645f93c9","url":"images/logo-wr_256x256.png"},{"revision":"509310a186188c5b0751569a536ee83a","url":"images/logo-wr_128x128.png"},{"revision":"c23aea3f0209c8f5817796449af52472","url":"images/logo-wr_1024x1024.png"},{"revision":"8119caf9106c961943456e5113c26cfc","url":"images/logo-br_orig.png"},{"revision":"ed7721ca00c7df91460006ae11340980","url":"images/logo-br_64x64.png"},{"revision":"657409bce8f4fe2efaa08f441d91cb26","url":"images/logo-br_512x512.png"},{"revision":"1d1659355d80946eedf1063501b091b8","url":"images/logo-br_256x256.png"},{"revision":"733bf2efe01b5cb056534806772aabd2","url":"images/logo-br_128x128.png"},{"revision":"e7561ccec1eefad2a36e697ddbebcd78","url":"images/logo-br_1024x1024.png"},{"revision":"05d9d6e8842b65d5a6b7f9b83eb6e786","url":"images/logo-bl_orig.png"},{"revision":"243f17f04cf5eb5b298d9701dbd3b4b9","url":"images/logo-bl_64x64.png"},{"revision":"a34687e37e32da4d4c127831c6f9779c","url":"images/logo-bl_512x512.png"},{"revision":"0260dd99a07186b7fc3d101023068658","url":"images/logo-bl_256x256.png"},{"revision":"ddb2b89e0437a22554694e1f0a2b894b","url":"images/logo-bl_128x128.png"},{"revision":"1ca5897439475c3b2acab290959559b9","url":"images/logo-bl_1024x1024.png"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"images/favicon.png"},{"revision":"d6363d0e5249f161c4b7d78045a210e5","url":"images/apple-touch-icon.png"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/android-chrome-512x512.png"},{"revision":"452c6675af891c549b493895764c855d","url":"images/avatars/default.png"},{"revision":null,"url":"assets/zh-TW-RAJ6MFWO-BTknr43S.js"},{"revision":null,"url":"assets/zh-HK-E62DVLB3-dcRoFFJT.js"},{"revision":null,"url":"assets/zh-CN-LNUGB5OW-N0-P-YPg.js"},{"revision":null,"url":"assets/xychartDiagram-S5SC5T6Z-Cg27DCiq.js"},{"revision":null,"url":"assets/workspaces-y3zARr9A.js"},{"revision":null,"url":"assets/workspaces-CqHYstZv.js"},{"revision":null,"url":"assets/workspace-import-form-DTvV9jYt.js"},{"revision":null,"url":"assets/workspace-content-gate-C54J9Man.js"},{"revision":null,"url":"assets/workspace-area-menu-B-bXURzn.js"},{"revision":null,"url":"assets/workspace-access-C9nZlBBZ.js"},{"revision":null,"url":"assets/workspace-C5V-ZCOE.js"},{"revision":null,"url":"assets/workspace-BydSRtST.js"},{"revision":null,"url":"assets/workbox-window.prod.es5-Bd17z0YL.js"},{"revision":null,"url":"assets/wardleyDiagram-VM6X3IG4-XOnMkSi-.js"},{"revision":null,"url":"assets/wardley-WFR3VGLG-C6N1rULY.js"},{"revision":null,"url":"assets/vi-VN-M7AON7JQ-BFEVKFOA.js"},{"revision":null,"url":"assets/vennDiagram-4TSXK5OY-P6FI4YvP.js"},{"revision":null,"url":"assets/utils-BxVxyehK.js"},{"revision":null,"url":"assets/utils-2pl1SbIp.js"},{"revision":null,"url":"assets/users-DuVk-TEd.js"},{"revision":null,"url":"assets/useToastHelpers-CRrpIIdY.js"},{"revision":null,"url":"assets/useSocketSubscription-ifW-vnlb.js"},{"revision":null,"url":"assets/useEscapeClose-DR_xKT_k.js"},{"revision":null,"url":"assets/useEditNoteFields-BT1ASu_q.js"},{"revision":null,"url":"assets/useDocumentThumbnail-Cj4UYyhC.js"},{"revision":null,"url":"assets/useAgentModels-B48KqDI7.js"},{"revision":null,"url":"assets/useAddTarget-DeRZWtGg.js"},{"revision":null,"url":"assets/use-workspace-identity-CSkRwVyo.js"},{"revision":null,"url":"assets/use-toolbox-Ck_cLGgf.js"},{"revision":null,"url":"assets/use-toast-BlLDqSUO.js"},{"revision":null,"url":"assets/use-theme-DaxpiICf.js"},{"revision":null,"url":"assets/use-sortable-data-BBKmqs79.js"},{"revision":null,"url":"assets/use-settings-back-DGmLAD63.js"},{"revision":null,"url":"assets/use-mobile-Db-vWu9Y.js"},{"revision":null,"url":"assets/use-menu-DIP1zh7I.js"},{"revision":null,"url":"assets/use-document-modal-PG8bQyIB.js"},{"revision":null,"url":"assets/use-create-panel-DhSNIGtr.js"},{"revision":null,"url":"assets/use-canvas-pins-C57Vbkrq.css"},{"revision":null,"url":"assets/use-canvas-pins-Bhd7_wde.js"},{"revision":null,"url":"assets/use-applet-target-BygCSj5n.js"},{"revision":null,"url":"assets/use-applet-docs-rimRHjID.js"},{"revision":null,"url":"assets/url-params-n7kU_WZ-.js"},{"revision":null,"url":"assets/uk-UA-QMV73CPH-BfWne7LV.js"},{"revision":null,"url":"assets/ui-CDoK3F3U.js"},{"revision":null,"url":"assets/treemap-WGGIJYW6-Cg7tyfH8.js"},{"revision":null,"url":"assets/treeView-Q6P3EWNA-BTTYcvrF.js"},{"revision":null,"url":"assets/tree-folders-CNu09uPg.js"},{"revision":null,"url":"assets/tr-TR-DEFEU3FU-Q633YFo2.js"},{"revision":null,"url":"assets/timeline-definition-24CTP7MA-HQ5YMAQc.js"},{"revision":null,"url":"assets/th-TH-HPSO5L25-swaKUA2N.js"},{"revision":null,"url":"assets/text-documents-Cdb3U63i.js"},{"revision":null,"url":"assets/tags-YamdPoBK.js"},{"revision":null,"url":"assets/ta-IN-2NMHFXQM-D1gPGRIR.js"},{"revision":null,"url":"assets/swimlanesDiagram-VR7AAH4N-DACbRCkF.js"},{"revision":null,"url":"assets/swimlanes-42K2YHIH-f0gJOzIY.js"},{"revision":null,"url":"assets/sv-SE-XGPEYMSR-CWEjOHYD.js"},{"revision":null,"url":"assets/subtree-transfer-dialog-DQM5zfx2.js"},{"revision":null,"url":"assets/subset-worker.chunk-D4w07nYk.js"},{"revision":null,"url":"assets/subset-shared.chunk-CzQ5JF2O.js"},{"revision":null,"url":"assets/stateDiagram-v2-MP3YSRHH-UMuzQhZ7.js"},{"revision":null,"url":"assets/stateDiagram-D77RDMKH-Dsv4fQ8Y.js"},{"revision":null,"url":"assets/src-CllyRBe0.js"},{"revision":null,"url":"assets/socket-hM4c-ZSl.js"},{"revision":null,"url":"assets/socket-CtH3EU9m.js"},{"revision":null,"url":"assets/sl-SI-NN7IZMDC-DFJxhRNE.js"},{"revision":null,"url":"assets/sketch-lazy-BY_ka1hw.js"},{"revision":null,"url":"assets/sk-SK-C5VTKIMK-NlHjiedH.js"},{"revision":null,"url":"assets/sizeCapture-INFHLROL-B0uUizjq.js"},{"revision":null,"url":"assets/si-LK-N5RQ5JYF-ROLYABqx.js"},{"revision":null,"url":"assets/shared-DsgNtRuD.js"},{"revision":null,"url":"assets/shared-BLOuO2Is.js"},{"revision":null,"url":"assets/share-target-q77WkQhO.js"},{"revision":null,"url":"assets/sha256-65KIjGvZ.js"},{"revision":null,"url":"assets/settings-HBpYbGPW.js"},{"revision":null,"url":"assets/settings-DrQdeEUS.js"},{"revision":null,"url":"assets/settings-DMM8k_4o.js"},{"revision":null,"url":"assets/settings-CjKOuPew.js"},{"revision":null,"url":"assets/sequenceDiagram-WJ2MYXX4-Dyn971wT.js"},{"revision":null,"url":"assets/search-COMZIxA7.js"},{"revision":null,"url":"assets/sankeyDiagram-P5KCCOFB-CBdZpflq.js"},{"revision":null,"url":"assets/sanitize-DrVcFY1Q.js"},{"revision":null,"url":"assets/ru-RU-B4JR7IUQ-n637KE87.js"},{"revision":null,"url":"assets/roundRect-D01gJrlt.js"},{"revision":null,"url":"assets/rough.esm-Dy-Kn_BL.js"},{"revision":null,"url":"assets/rolldown-runtime-C0FnF6B9.js"},{"revision":null,"url":"assets/roles-sb8vgjV_.js"},{"revision":null,"url":"assets/roles-p2cRajz-.js"},{"revision":null,"url":"assets/role-C5I0Plgn.js"},{"revision":null,"url":"assets/ro-RO-JPDTUUEW-BqxNXAVP.js"},{"revision":null,"url":"assets/requirementDiagram-BXWQKSXE-S99ev3k7.js"},{"revision":null,"url":"assets/remotes-RPGcw6fH.js"},{"revision":null,"url":"assets/relation-events-CKio19hE.js"},{"revision":null,"url":"assets/registry-NAExJwr9.js"},{"revision":null,"url":"assets/react-BHzhHVTZ.js"},{"revision":null,"url":"assets/railroadDiagram-O6MQD6OU-Cjw_zMBC.js"},{"revision":null,"url":"assets/railroad-peg-WCYAUIDC-BQiIsX_p.js"},{"revision":null,"url":"assets/railroad-ebnf-LZEXJU2U-V0aQVv9m.js"},{"revision":null,"url":"assets/railroad-abnf-HS5TGJTU-Cq7y22IA.js"},{"revision":null,"url":"assets/railroad-74A4TZTK-CGtTWdGc.js"},{"revision":null,"url":"assets/radar-RG4KPBEZ-B6h6pWOs.js"},{"revision":null,"url":"assets/query-debug-lD5vbJGi.js"},{"revision":null,"url":"assets/quadrantDiagram-AXDQQJYC-CAXFELe7.js"},{"revision":null,"url":"assets/punycode.es6-ZbLrB_Dn.js"},{"revision":null,"url":"assets/public-share-CXR25Q1X.js"},{"revision":null,"url":"assets/pt-PT-UZXXM6DQ-DXzHR8rJ.js"},{"revision":null,"url":"assets/pt-BR-5N22H2LF-CeODeunU.js"},{"revision":null,"url":"assets/preload-helper-Czpn1I53.js"},{"revision":null,"url":"assets/pl-PL-T2D74RX3-DgfcfsGT.js"},{"revision":null,"url":"assets/pieDiagram-E7YTZNPT-Cs2lygkh.js"},{"revision":null,"url":"assets/pie-WAS4IAKB-qxv01Y8W.js"},{"revision":null,"url":"assets/pica-XznpCgP2.js"},{"revision":null,"url":"assets/percentages-BXMCSKIN-BPGA3zHb.js"},{"revision":null,"url":"assets/pegDiagram-XKGWAZYB-DqjEkpXQ.js"},{"revision":null,"url":"assets/pdf.worker.min-C8Ts8bNu.js"},{"revision":null,"url":"assets/pdf-Ciz5_WNq.js"},{"revision":null,"url":"assets/path-fybaL0A-.js"},{"revision":null,"url":"assets/page-header-DrDt1sQ2.js"},{"revision":null,"url":"assets/packet-AYTQ26CC-BSJEH9Lb.js"},{"revision":null,"url":"assets/pa-IN-N4M65BXN-wsiZwueU.js"},{"revision":null,"url":"assets/ordinal-BDEzSJ7C.js"},{"revision":null,"url":"assets/offline-ByoT6JJX.js"},{"revision":null,"url":"assets/oc-FR-POXYY2M6-Cn1eE_Zu.js"},{"revision":null,"url":"assets/note-save-status-DPz4VzL6.js"},{"revision":null,"url":"assets/nn-NO-6E72VCQL-Dfy734xI.js"},{"revision":null,"url":"assets/nl-NL-IS3SIHDZ-C4-Hez0V.js"},{"revision":null,"url":"assets/nb-NO-T6EIAALU-BQeWbEx1.js"},{"revision":null,"url":"assets/my-MM-5M5IBNSE-BXTnMvRC.js"},{"revision":null,"url":"assets/mr-IN-CRQNXWMA-9iKXC6Ya.js"},{"revision":null,"url":"assets/mindmap-definition-YA3MSWOX-aAz9cEjj.js"},{"revision":null,"url":"assets/mermaid-parser.core-CN1hT9Tn.js"},{"revision":null,"url":"assets/markdown-view-BBBZtNSR.js"},{"revision":null,"url":"assets/markdown-it-DRESbtwK.js"},{"revision":null,"url":"assets/markdown-html-DtQ7-esK.css"},{"revision":null,"url":"assets/markdown-html-CZMGihx6.js"},{"revision":null,"url":"assets/map-BxCwdK0d.js"},{"revision":null,"url":"assets/map-BcsP_QXj.css"},{"revision":null,"url":"assets/lv-LV-5QDEKY6T-BTnV-PCT.js"},{"revision":null,"url":"assets/lt-LT-XHIRWOB4-B6H0gZ-C.js"},{"revision":null,"url":"assets/logs-DjG8_wJ2.js"},{"revision":null,"url":"assets/linear-aVQWq3ZZ.js"},{"revision":null,"url":"assets/line-DXCbHsGS.js"},{"revision":null,"url":"assets/lazy-editor-BUFAkTGl.js"},{"revision":null,"url":"assets/layer-style-Byl5LNFR.js"},{"revision":null,"url":"assets/last-path-BbXWC3b3.js"},{"revision":null,"url":"assets/label-BSTdjCWU.js"},{"revision":null,"url":"assets/ku-TR-6OUDTVRD-Ky7FAdew.js"},{"revision":null,"url":"assets/ko-KR-MTYHY66A-BdMJRRpv.js"},{"revision":null,"url":"assets/km-KH-HSX4SM5Z-CaYVKl3D.js"},{"revision":null,"url":"assets/kk-KZ-P5N5QNE5-D52-yIxL.js"},{"revision":null,"url":"assets/key-bindings-CvzGVYrr.js"},{"revision":null,"url":"assets/katex-CXMH3UgJ.js"},{"revision":null,"url":"assets/kanban-definition-UXKFOSKX-BqkLgv78.js"},{"revision":null,"url":"assets/kab-KAB-ZGHBKWFO-BXYUMKRc.js"},{"revision":null,"url":"assets/kaa-6HZHGXH3-0hNa4m6s.js"},{"revision":null,"url":"assets/journeyDiagram-3NMN7TZE-CL9Lqe59.js"},{"revision":null,"url":"assets/ja-JP-DBVTYXUO-DSHejo8t.js"},{"revision":null,"url":"assets/it-IT-JPQ66NNP-D6FUHYuZ.js"},{"revision":null,"url":"assets/ishikawaDiagram-5VMMS53U-Hs60L6ow.js"},{"revision":null,"url":"assets/input-BOtCd4HP.js"},{"revision":null,"url":"assets/init-C-OQMol4.js"},{"revision":null,"url":"assets/infoDiagram-27XIBGKW-BuJx_j6a.js"},{"revision":null,"url":"assets/info-A6RAGUB7-BlU-8_xu.js"},{"revision":null,"url":"assets/inferd-config-editor-B8x_XPOt.js"},{"revision":null,"url":"assets/index-I9cslsRe.js"},{"revision":null,"url":"assets/index-CYvpxvg6.css"},{"revision":null,"url":"assets/image-blob-reduce.esm-Dj7YBvMv.js"},{"revision":null,"url":"assets/image-GAAHSSAO-CI-0hUck.js"},{"revision":null,"url":"assets/id-ID-SAP4L64H-ZZuXM5fX.js"},{"revision":null,"url":"assets/icons-DTuc_pxj.js"},{"revision":null,"url":"assets/hu-HU-A5ZG7DT2-BBrlHtCw.js"},{"revision":null,"url":"assets/home-BRx1tOR-.js"},{"revision":null,"url":"assets/hi-IN-IWLTKZ5I-Dzr4DvnL.js"},{"revision":null,"url":"assets/he-IL-6SHJWFNN-9Ylp6ncb.js"},{"revision":null,"url":"assets/graphlib-DS17s2tU.js"},{"revision":null,"url":"assets/gl-ES-HMX3MZ6V-4bQs8jWL.js"},{"revision":null,"url":"assets/gitGraphDiagram-WWUBYQGX-D6Gfp0nt.js"},{"revision":null,"url":"assets/gitGraph-4MIJSDKK-DYlXv_yJ.js"},{"revision":null,"url":"assets/geo-CZfs0E-x.js"},{"revision":null,"url":"assets/ganttDiagram-EL5Y4UJY-BKBiwfwb.js"},{"revision":null,"url":"assets/fr-FR-RHASNOE6-BH99frB1.js"},{"revision":null,"url":"assets/form-panel-3p-ncEVK.js"},{"revision":null,"url":"assets/flowDiagram-HODETNUW-BrKzgeF8.js"},{"revision":null,"url":"assets/file-save-745eba88-Bwdfz6OZ.js"},{"revision":null,"url":"assets/file-save-3189631c-CO9S4HFW.js"},{"revision":null,"url":"assets/file-open-7c801643-DZtJT5zp.js"},{"revision":null,"url":"assets/file-open-002ab408-BHUWm0Sh.js"},{"revision":null,"url":"assets/fi-FI-Z5N7JZ37-DC3Y34Y8.js"},{"revision":null,"url":"assets/fa-IR-HGAKTJCU-ddIdgP13.js"},{"revision":null,"url":"assets/eventmodeling-NTZA5JFV-BR2FzK4R.js"},{"revision":null,"url":"assets/eu-ES-A7QVB2H4-CAoFumRj.js"},{"revision":null,"url":"assets/es-ES-U4NZUMDT-D_KzWrdW.js"},{"revision":null,"url":"assets/erDiagram-RLTQ6QDP-CL7FBspC.js"},{"revision":null,"url":"assets/en-B4ZKOASM-BClIFgbE.js"},{"revision":null,"url":"assets/embedding-D-I_ygUZ.js"},{"revision":null,"url":"assets/embedding-BvXcVfij.js"},{"revision":null,"url":"assets/el-GR-BZB4AONW-Chellj6d.js"},{"revision":null,"url":"assets/ebnfDiagram-PWID7BFC-B9wGidHs.js"},{"revision":null,"url":"assets/document-open-mode-DoImW-xs.js"},{"revision":null,"url":"assets/document-list-DAYdk5vh.css"},{"revision":null,"url":"assets/document-list-CUmMhD6M.js"},{"revision":null,"url":"assets/document-Cr7GhnVd.js"},{"revision":null,"url":"assets/dist-zgyESmtJ.js"},{"revision":null,"url":"assets/dist-Cz2MTljl.js"},{"revision":null,"url":"assets/directory-open-4ed118d0-1i309Asm.js"},{"revision":null,"url":"assets/directory-open-01563666-D4xXyWb_.js"},{"revision":null,"url":"assets/diagram-Z3DM3KII-aAOMR4aJ.js"},{"revision":null,"url":"assets/diagram-VX7I27RA-D-UFFc5T.js"},{"revision":null,"url":"assets/diagram-VSXAHHWV-BR6t4bem.js"},{"revision":null,"url":"assets/diagram-UQ7AKVKN-CC4synlk.js"},{"revision":null,"url":"assets/diagram-S7CK7UJ4-BCYFjoge.js"},{"revision":null,"url":"assets/devices-CAa1bRxk.js"},{"revision":null,"url":"assets/devices-BwU9M8-W.js"},{"revision":null,"url":"assets/desk-dI_FvLsK.js"},{"revision":null,"url":"assets/defaultLocale-BFoDCU3G.js"},{"revision":null,"url":"assets/de-DE-XR44H4JA-DNaOwkE9.js"},{"revision":null,"url":"assets/date-time-picker-DCikruos.js"},{"revision":null,"url":"assets/dagre-PrKaheQc.js"},{"revision":null,"url":"assets/dagre-GXQ25YYZ-DAaeOVEp.js"},{"revision":null,"url":"assets/da-DK-5WZEPLOC-D55fbhpB.js"},{"revision":null,"url":"assets/cytoscape.esm-CGd-uY3x.js"},{"revision":null,"url":"assets/cynefinDiagram-5FMLGOSQ-Bwsug0X5.js"},{"revision":null,"url":"assets/cynefin-OW5HDTMX-7tP7QfM3.js"},{"revision":null,"url":"assets/cs-CZ-2BRQDIVT-Bz62EbC5.js"},{"revision":null,"url":"assets/cose-bilkent-JH36ORCC-DIeJt_L_.js"},{"revision":null,"url":"assets/contexts-DDJagU4j.js"},{"revision":null,"url":"assets/contexts-Bq8LHUTK2.js"},{"revision":null,"url":"assets/context-t3rdtGUB.js"},{"revision":null,"url":"assets/color-DFEH4BfK.js"},{"revision":null,"url":"assets/code-editor-BOIngd5F.js"},{"revision":null,"url":"assets/classDiagram-v2-VYDZK3BY-DLpT76o5.js"},{"revision":null,"url":"assets/classDiagram-ZZMXUADV-DLpT76o5.js"},{"revision":null,"url":"assets/chunk-Z3N5DIM6-D9TMVU7m.js"},{"revision":null,"url":"assets/chunk-Y2CYZVJY-DsF7k-Jl.js"},{"revision":null,"url":"assets/chunk-XXDRQBXY-CazVBYiP.js"},{"revision":null,"url":"assets/chunk-XHIXRSVI-BFQ6B8BE.js"},{"revision":null,"url":"assets/chunk-UY3FDG6J-CnmaAkG5.js"},{"revision":null,"url":"assets/chunk-TLUHSLCS-C47Epi2D.js"},{"revision":null,"url":"assets/chunk-TICWLB2K-jXepk-qW.js"},{"revision":null,"url":"assets/chunk-SVP7TREG-CoPu3EjZ.js"},{"revision":null,"url":"assets/chunk-SRAX5OIU-Dhm3gOdh.js"},{"revision":null,"url":"assets/chunk-SHT3W25Y-75CQ5pWa.js"},{"revision":null,"url":"assets/chunk-PWAF6VOD-DPI_wv9p.js"},{"revision":null,"url":"assets/chunk-POPQ4Y6H-B7yAy58S.js"},{"revision":null,"url":"assets/chunk-P2QGCYS3-DsGP3wH9.js"},{"revision":null,"url":"assets/chunk-OUJLGHUK-D0j2JRSg.js"},{"revision":null,"url":"assets/chunk-OSK3NFVY-fNjfug78.js"},{"revision":null,"url":"assets/chunk-LNGE3PJU-DWpGwHrW.js"},{"revision":null,"url":"assets/chunk-L3NEJ4N5-Cl0-d4Gu.js"},{"revision":null,"url":"assets/chunk-KI3K4JFJ-Rma-0k_M.js"},{"revision":null,"url":"assets/chunk-K2UTITRG-BvHe9UPk.js"},{"revision":null,"url":"assets/chunk-JWPE2WC7-DVXcaiue.js"},{"revision":null,"url":"assets/chunk-IMKFNOWR-BuKGugNz.js"},{"revision":null,"url":"assets/chunk-IH6LHLGP-CC6I9F3i.js"},{"revision":null,"url":"assets/chunk-ICYGCRZG-749o-pGJ.js"},{"revision":null,"url":"assets/chunk-I5DQTOEV-Hm2LfiYI.js"},{"revision":null,"url":"assets/chunk-GVQU2GXP-BMi2Lqv6.js"},{"revision":null,"url":"assets/chunk-GMAD6QVW-tEmtNh72.js"},{"revision":null,"url":"assets/chunk-FOHPRMQF-DHwB1DNv.js"},{"revision":null,"url":"assets/chunk-F27PBJKO-B8_NVNfE.js"},{"revision":null,"url":"assets/chunk-EIO257PC-CAhBf1ig.js"},{"revision":null,"url":"assets/chunk-DU6HZSFF-BlZbyIL6.js"},{"revision":null,"url":"assets/chunk-CLGD4ZFX-BzBIdJij.js"},{"revision":null,"url":"assets/chunk-75Z2AOVW-CzSd0Veu.js"},{"revision":null,"url":"assets/chunk-747NJXEK-BFkZPlab.js"},{"revision":null,"url":"assets/chunk-6U3AYISY-C6-Mtja1.js"},{"revision":null,"url":"assets/chunk-6TQVIW2G-DKlLbNIP.js"},{"revision":null,"url":"assets/chunk-6K3QC6MW-CqVsVn-y.js"},{"revision":null,"url":"assets/chunk-6EIED4P4-DdUJkP0f.js"},{"revision":null,"url":"assets/chunk-6AZGARVD-BB6FqMl-.js"},{"revision":null,"url":"assets/chunk-62JRHF6Z-vspAGgtK.js"},{"revision":null,"url":"assets/chunk-5VM5RSS4-ZNzvKenW.js"},{"revision":null,"url":"assets/chunk-5V3GS4D5-i-ZDOEnP.js"},{"revision":null,"url":"assets/chunk-4HAMMTFA-DwG4o-7o.js"},{"revision":null,"url":"assets/chunk-3Z5EZCMW-DMniOlPd.js"},{"revision":null,"url":"assets/chunk-2ZTRR5NV-C2qZJila.js"},{"revision":null,"url":"assets/chunk-2Q5K7J3B-C1jixKkw.js"},{"revision":null,"url":"assets/chunk-2E4U76K2-BX8JWCIb.js"},{"revision":null,"url":"assets/channel-DbE-WRyM.js"},{"revision":null,"url":"assets/ca-ES-6MX7JW3Y-QAg3jm2p.js"},{"revision":null,"url":"assets/c4Diagram-7LVT6UL2-aDTW23RC.js"},{"revision":null,"url":"assets/button-SeUZ_Pvi.js"},{"revision":null,"url":"assets/bn-BD-2XOGV67Q-KCzfC93t.js"},{"revision":null,"url":"assets/blockDiagram-I7D4REHJ-DJlTH4XU.js"},{"revision":null,"url":"assets/blobs-WiXP9QRi.js"},{"revision":null,"url":"assets/bg-BG-XCXSNQG7-DFFjBv03.js"},{"revision":null,"url":"assets/backend-sync-progress-DU-e9TWi.css"},{"revision":null,"url":"assets/backend-sync-progress-CFe6JPuR.js"},{"revision":null,"url":"assets/az-AZ-76LH7QW2-8v0TczD5.js"},{"revision":null,"url":"assets/auth-PqttD05H.js"},{"revision":null,"url":"assets/auth-Bx9fAZmz.js"},{"revision":null,"url":"assets/array-BifhSqXX.js"},{"revision":null,"url":"assets/architectureDiagram-5GKGNRK7-2gVOlDi3.js"},{"revision":null,"url":"assets/architecture-7GRP2DOG-BMOPAkUC.js"},{"revision":null,"url":"assets/arc-SXJSVd7o.js"},{"revision":null,"url":"assets/ar-SA-G6X2FPQ2-BJ7kJfgn.js"},{"revision":null,"url":"assets/apps-C2mb0HML.js"},{"revision":null,"url":"assets/applet-target-pLdP-R76.js"},{"revision":null,"url":"assets/appearance-DiQhAis2.js"},{"revision":null,"url":"assets/api-tokens-drrVuCYc.js"},{"revision":null,"url":"assets/api-CA6WiiYM.js"},{"revision":null,"url":"assets/alert-dialog-CFeuDt0T.js"},{"revision":null,"url":"assets/agents-DxqAi3vk.js"},{"revision":null,"url":"assets/agents-BYNJHrPc.js"},{"revision":null,"url":"assets/admin-Bhg9QBHL.js"},{"revision":null,"url":"assets/add-BeESP_fg.js"},{"revision":null,"url":"assets/about-DRzhyy-e.js"},{"revision":null,"url":"assets/abnfDiagram-VCTEODGH-Cy_5vShZ.js"},{"revision":null,"url":"assets/_workspaceName_-Ck6op9kd.js"},{"revision":null,"url":"assets/_contextId_-wbu8w6OE.js"},{"revision":null,"url":"assets/_agentId_-CW33ane1.js"},{"revision":null,"url":"assets/UploadProgressList-D2wEpa7t.js"},{"revision":null,"url":"assets/TodosWidget-CNnfNk4L.js"},{"revision":null,"url":"assets/TodosApplet-DU5VWc5i.js"},{"revision":null,"url":"assets/TextDocumentEditor-BQnVD0dd.js"},{"revision":null,"url":"assets/TerminalApplet-D7YxftqM.js"},{"revision":null,"url":"assets/TerminalApplet-BrP-ENHg.css"},{"revision":null,"url":"assets/SketchEditor-DtRVLazd.css"},{"revision":null,"url":"assets/SketchEditor-DmGMcbU0.js"},{"revision":null,"url":"assets/SketchApplet-BKnhzTBA.js"},{"revision":null,"url":"assets/PickDocumentsCard-BWgc-A02.js"},{"revision":null,"url":"assets/PathPickerField-CW2yG2Yg.js"},{"revision":null,"url":"assets/ObjectPropertiesCard-Docu7O5V.css"},{"revision":null,"url":"assets/ObjectPropertiesCard-D2lrTQqT.js"},{"revision":null,"url":"assets/NotesApplet-FjdHMWCV.js"},{"revision":null,"url":"assets/NextShell-ull6WmMg.js"},{"revision":null,"url":"assets/NextShell-BT6-_CFY.css"},{"revision":null,"url":"assets/MessageComposerDialog-CdPp-3GR.js"},{"revision":null,"url":"assets/MarkdownEditor-DbpRWbO6.js"},{"revision":null,"url":"assets/MarkdownEditor-DWa37grk.css"},{"revision":null,"url":"assets/LocationTab-DAtqAQ3l.js"},{"revision":null,"url":"assets/LinkToSidePanel-eCy3nW4R.js"},{"revision":null,"url":"assets/LinkToCard-CKVi4Nrg.js"},{"revision":null,"url":"assets/LensApplet-BnW7b0KX.js"},{"revision":null,"url":"assets/IdentityFields-D-NCTUaE.js"},{"revision":null,"url":"assets/HomeFab-B3f-hO-p.js"},{"revision":null,"url":"assets/FiltersApplet-PclPc7fz.js"},{"revision":null,"url":"assets/FileForm-CDiVKvxq.js"},{"revision":null,"url":"assets/EditorOverlay-D5t3xg4w.js"},{"revision":null,"url":"assets/DocumentIcon-9i1uCMQa.js"},{"revision":null,"url":"assets/DocumentBodyEditor-CVO5KPCs.js"},{"revision":null,"url":"assets/CalendarApplet-Bno3IDzO.js"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/android-chrome-512x512.png"},{"revision":"bc4e038a89ae062004dd9ff297bba3f5","url":"images/logo_1024x1024.png"},{"revision":"6f763ad15fbd8e2e93893c0d98a9905d","url":"images/logo_128x128.png"},{"revision":"d6363d0e5249f161c4b7d78045a210e5","url":"images/logo_256x256.png"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/logo_512x512.png"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"images/logo_64x64.png"},{"revision":"caa9715e027d2757550109f1f9653d7c","url":"manifest.webmanifest"}]),self.addEventListener(`message`,e=>{e.data&&e.data.type===`SKIP_WAITING`&&self.skipWaiting()}),self.addEventListener(`activate`,e=>{e.waitUntil(Promise.all([self.clients.claim(),Ee()]))});var be=864e5,Y=/^\/rest\/v2\/workspaces\/[^/]+\/documents\/[^/]+\/(content|thumbnail)$/,xe=/^\/rest\/v2\/(auth|admin|ping|events)\b/,X=null;async function Z(){if(X&&Date.now()-X.at<1e4)return X.value;let e=await _e().catch(()=>({enabled:!1,budgetBytes:0,excludedWorkspaces:[]}));return X={at:Date.now(),value:e},e}function Q(e,t){let n=F(t);return n!==null&&e.excludedWorkspaces.includes(n)}self.addEventListener(`message`,e=>{e.data&&e.data.type===`OFFLINE_SETTINGS_CHANGED`&&(X=null)}),self.addEventListener(`fetch`,e=>{let{request:t}=e,n=new URL(t.url);if(t.method===`POST`&&n.pathname===`/share-target`){e.respondWith(Te(e));return}if(t.method===`GET`&&n.origin===self.location.origin&&n.pathname.startsWith(`/rest/v2/`)){if(Y.test(n.pathname)&&!n.searchParams.has(`download`)&&!t.headers.has(`range`)){e.respondWith(Se(e,t));return}if(!xe.test(n.pathname)&&!Y.test(n.pathname)){e.respondWith(Ce(e,t));return}}t.mode===`navigate`&&!$(n.pathname)&&e.respondWith(we(t))});function $(e){return e.startsWith(`/rest/`)||e.startsWith(`/dav/`)||e.startsWith(`/.well-known/`)}async function Se(e,t){let n=await Z();if(!n.enabled||Q(n,new URL(t.url).pathname))return fetch(t);let r=await caches.open(M),i=await r.match(t.url,{ignoreVary:!0});if(i)return e.waitUntil(J(t.url).catch(()=>{})),i;let a=await fetch(t);if(a.ok&&a.status===200){let i=a.clone();e.waitUntil((async()=>{try{await r.put(t.url,i);let e=Number(a.headers.get(`content-length`))||(await(await r.match(t.url))?.blob())?.size||0;await K(t.url,`content`,e),await ye(n.budgetBytes)}catch(e){console.warn(`[sw] offline content cache put failed`,e)}})())}return a}async function Ce(e,t){let n=await Z();if(!n.enabled||Q(n,new URL(t.url).pathname))return fetch(t);try{let n=await fetch(t);if(n.ok&&n.status===200){let r=n.clone();e.waitUntil((async()=>{try{await(await caches.open(N)).put(t.url,r),await K(t.url,`api`,Number(n.headers.get(`content-length`))||0)}catch(e){console.warn(`[sw] offline api cache put failed`,e)}})())}return n}catch(n){let r=await(await caches.open(N)).match(t.url,{ignoreVary:!0});if(r){e.waitUntil(J(t.url).catch(()=>{}));let n=new Headers(r.headers);return n.set(`X-Canvas-Offline`,`fallback`),new Response(r.body,{status:r.status,statusText:r.statusText,headers:n})}throw n}}async function we(e){try{return await fetch(e)}catch{let e=await k(`/index.html`);if(e)return e;throw Error(`offline and index.html is not precached`)}}function Te(n){let r=crypto.randomUUID();return caches.open(e).then(async e=>(await e.put(`/share-target-inbox/${r}/meta`,new Response(JSON.stringify({status:`receiving`,stashedAt:Date.now()}))),e)).then(e=>t(n.request,r,e)).then(()=>Response.redirect(new URL(`/share-target?token=${r}`,self.location.origin).href,303),()=>Response.redirect(new URL(`/share-target?error=stash-failed`,self.location.origin).href,303))}async function Ee(){try{if(!await caches.has(`share-target-inbox`))return;let t=await caches.open(e),n=await t.keys(),r=new Set;for(let e of n){let{pathname:n}=new URL(e.url);if(!n.endsWith(`/meta`))continue;let i=n.split(`/`)[2];if(!i)continue;let a=0;try{let n=await t.match(e);a=n?Number((await n.json()).stashedAt??0):0}catch{}(!a||Date.now()-a>be)&&r.add(i)}await Promise.all(n.filter(e=>r.has(new URL(e.url).pathname.split(`/`)[2])).map(e=>t.delete(e)))}catch(e){console.error(`[sw] share inbox prune failed`,e)}}
1
+ var e=`share-target-inbox`;async function t(e,t,n){let r=`/share-target-inbox/${t}`,i=[],a=async e=>{await Promise.all(i.map(e=>n.delete(e))),await n.put(`${r}/meta`,new Response(JSON.stringify({status:`error`,error:e,stashedAt:Date.now()})))};try{if(Number(e.headers.get(`content-length`))>105906176){await e.body?.cancel().catch(()=>{}),await a(`too-large`);return}let t=await e.formData(),o=t.getAll(`files`).filter(e=>e instanceof File);if(o.some(e=>e.size===0)){await a(`empty-file`);return}if(o.reduce((e,t)=>e+t.size,0)>104857600){await a(`too-large`);return}let s=e=>{let n=t.get(e);return typeof n==`string`?n:``},c=s(`title`),l=s(`text`),u=s(`url`);if(!o.length&&![c,l,u].some(e=>e.trim())){await a(`empty-share`);return}for(let[e,t]of o.entries()){let a=`${r}/file-${e}`;await n.put(a,new Response(t,{headers:{"Content-Type":t.type||`application/octet-stream`}})),i.push(a)}await n.put(`${r}/meta`,new Response(JSON.stringify({status:`ready`,title:c,text:l,url:u,fileNames:o.map(e=>e.name),stashedAt:Date.now()})))}catch{await a(`stash-failed`)}}try{self[`workbox:core:7.4.0`]&&_()}catch{}var n=(e,...t)=>{let n=e;return t.length>0&&(n+=` :: ${JSON.stringify(t)}`),n},r=class extends Error{constructor(e,t){let r=n(e,t);super(r),this.name=e,this.details=t}},i={googleAnalytics:`googleAnalytics`,precache:`precache-v2`,prefix:`workbox`,runtime:`runtime`,suffix:typeof registration<`u`?registration.scope:``},a=e=>[i.prefix,e,i.suffix].filter(e=>e&&e.length>0).join(`-`),o=e=>{for(let t of Object.keys(i))e(t)},s={updateDetails:e=>{o(t=>{typeof e[t]==`string`&&(i[t]=e[t])})},getGoogleAnalyticsName:e=>e||a(i.googleAnalytics),getPrecacheName:e=>e||a(i.precache),getPrefix:()=>i.prefix,getRuntimeName:e=>e||a(i.runtime),getSuffix:()=>i.suffix};function c(e,t){let n=t();return e.waitUntil(n),n}try{self[`workbox:precaching:7.4.0`]&&_()}catch{}var l=`__WB_REVISION__`;function u(e){if(!e)throw new r(`add-to-cache-list-unexpected-type`,{entry:e});if(typeof e==`string`){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:t,url:n}=e;if(!n)throw new r(`add-to-cache-list-unexpected-type`,{entry:e});if(!t){let e=new URL(n,location.href);return{cacheKey:e.href,url:e.href}}let i=new URL(n,location.href),a=new URL(n,location.href);return i.searchParams.set(l,t),{cacheKey:i.href,url:a.href}}var ee=class{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:n})=>{if(e.type===`install`&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;n?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return n}}},te=class{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let n=t?.cacheKey||this._precacheController.getCacheKeyForURL(e.url);return n?new Request(n,{headers:e.headers}):e},this._precacheController=e}},d;function ne(){if(d===void 0){let e=new Response(``);if(`body`in e)try{new Response(e.body),d=!0}catch{d=!1}d=!1}return d}async function re(e,t){let n=null;if(e.url&&(n=new URL(e.url).origin),n!==self.location.origin)throw new r(`cross-origin-copy-response`,{origin:n});let i=e.clone(),a={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=t?t(a):a,s=ne()?i.body:await i.blob();return new Response(s,o)}var ie=e=>new URL(String(e),location.href).href.replace(RegExp(`^${location.origin}`),``);function f(e,t){let n=new URL(e);for(let e of t)n.searchParams.delete(e);return n.href}async function ae(e,t,n,r){let i=f(t.url,n);if(t.url===i)return e.match(t,r);let a=Object.assign(Object.assign({},r),{ignoreSearch:!0}),o=await e.keys(t,a);for(let t of o)if(i===f(t.url,n))return e.match(t,r)}var oe=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}},p=new Set;async function m(){for(let e of p)await e()}function h(e){return new Promise(t=>setTimeout(t,e))}try{self[`workbox:strategies:7.4.0`]&&_()}catch{}function g(e){return typeof e==`string`?new Request(e):e}var se=class{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new oe,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(let e of this._plugins)this._pluginStateMap.set(e,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:t}=this,n=g(e);if(n.mode===`navigate`&&t instanceof FetchEvent&&t.preloadResponse){let e=await t.preloadResponse;if(e)return e}let i=this.hasCallback(`fetchDidFail`)?n.clone():null;try{for(let e of this.iterateCallbacks(`requestWillFetch`))n=await e({request:n.clone(),event:t})}catch(e){if(e instanceof Error)throw new r(`plugin-error-request-will-fetch`,{thrownErrorMessage:e.message})}let a=n.clone();try{let e;e=await fetch(n,n.mode===`navigate`?void 0:this._strategy.fetchOptions);for(let n of this.iterateCallbacks(`fetchDidSucceed`))e=await n({event:t,request:a,response:e});return e}catch(e){throw i&&await this.runCallbacks(`fetchDidFail`,{error:e,event:t,originalRequest:i.clone(),request:a.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){let t=g(e),n,{cacheName:r,matchOptions:i}=this._strategy,a=await this.getCacheKey(t,`read`),o=Object.assign(Object.assign({},i),{cacheName:r});n=await caches.match(a,o);for(let e of this.iterateCallbacks(`cachedResponseWillBeUsed`))n=await e({cacheName:r,matchOptions:i,cachedResponse:n,request:a,event:this.event})||void 0;return n}async cachePut(e,t){let n=g(e);await h(0);let i=await this.getCacheKey(n,`write`);if(!t)throw new r(`cache-put-with-no-response`,{url:ie(i.url)});let a=await this._ensureResponseSafeToCache(t);if(!a)return!1;let{cacheName:o,matchOptions:s}=this._strategy,c=await self.caches.open(o),l=this.hasCallback(`cacheDidUpdate`),u=l?await ae(c,i.clone(),[`__WB_REVISION__`],s):null;try{await c.put(i,l?a.clone():a)}catch(e){if(e instanceof Error)throw e.name===`QuotaExceededError`&&await m(),e}for(let e of this.iterateCallbacks(`cacheDidUpdate`))await e({cacheName:o,oldResponse:u,newResponse:a.clone(),request:i,event:this.event});return!0}async getCacheKey(e,t){let n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let r=e;for(let e of this.iterateCallbacks(`cacheKeyWillBeUsed`))r=g(await e({mode:t,request:r,event:this.event,params:this.params}));this._cacheKeys[n]=r}return this._cacheKeys[n]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if(typeof t[e]==`function`){let n=this._pluginStateMap.get(t);yield r=>{let i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>e.status===`rejected`);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(let e of this.iterateCallbacks(`cacheWillUpdate`))if(t=await e({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}},ce=class{constructor(e={}){this.cacheName=s.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,n=typeof e.request==`string`?new Request(e.request):e.request,r=`params`in e?e.params:void 0,i=new se(this,{event:t,request:n,params:r}),a=this._getResponse(i,n,t);return[a,this._awaitComplete(a,i,n,t)]}async _getResponse(e,t,n){await e.runCallbacks(`handlerWillStart`,{event:n,request:t});let i;try{if(i=await this._handle(t,e),!i||i.type===`error`)throw new r(`no-response`,{url:t.url})}catch(r){if(r instanceof Error){for(let a of e.iterateCallbacks(`handlerDidError`))if(i=await a({error:r,event:n,request:t}),i)break}if(!i)throw r}for(let r of e.iterateCallbacks(`handlerWillRespond`))i=await r({event:n,request:t,response:i});return i}async _awaitComplete(e,t,n,r){let i,a;try{i=await e}catch{}try{await t.runCallbacks(`handlerDidRespond`,{event:r,request:n,response:i}),await t.doneWaiting()}catch(e){e instanceof Error&&(a=e)}if(await t.runCallbacks(`handlerDidComplete`,{event:r,request:n,response:i,error:a}),t.destroy(),a)throw a}},v=class e extends ce{constructor(t={}){t.cacheName=s.getPrecacheName(t.cacheName),super(t),this._fallbackToNetwork=t.fallbackToNetwork!==!1,this.plugins.push(e.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){return await t.cacheMatch(e)||(t.event&&t.event.type===`install`?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let n,i=t.params||{};if(this._fallbackToNetwork){let r=i.integrity,a=e.integrity,o=!a||a===r;n=await t.fetch(new Request(e,{integrity:e.mode===`no-cors`?void 0:a||r})),r&&o&&e.mode!==`no-cors`&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,n.clone()))}else throw new r(`missing-precache-entry`,{cacheName:this.cacheName,url:e.url});return n}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();let n=await t.fetch(e);if(!await t.cachePut(e,n.clone()))throw new r(`bad-precaching-response`,{url:e.url,status:n.status});return n}_useDefaultCacheabilityPluginIfNeeded(){let t=null,n=0;for(let[r,i]of this.plugins.entries())i!==e.copyRedirectedCacheableResponsesPlugin&&(i===e.defaultPrecacheCacheabilityPlugin&&(t=r),i.cacheWillUpdate&&n++);n===0?this.plugins.push(e.defaultPrecacheCacheabilityPlugin):n>1&&t!==null&&this.plugins.splice(t,1)}};v.defaultPrecacheCacheabilityPlugin={async cacheWillUpdate({response:e}){return!e||e.status>=400?null:e}},v.copyRedirectedCacheableResponsesPlugin={async cacheWillUpdate({response:e}){return e.redirected?await re(e):e}};var le=class{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:n=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new v({cacheName:s.getPrecacheName(e),plugins:[...t,new te({precacheController:this})],fallbackToNetwork:n}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||=(self.addEventListener(`install`,this.install),self.addEventListener(`activate`,this.activate),!0)}addToCacheList(e){let t=[];for(let n of e){typeof n==`string`?t.push(n):n&&n.revision===void 0&&t.push(n.url);let{cacheKey:e,url:i}=u(n),a=typeof n!=`string`&&n.revision?`reload`:`default`;if(this._urlsToCacheKeys.has(i)&&this._urlsToCacheKeys.get(i)!==e)throw new r(`add-to-cache-list-conflicting-entries`,{firstEntry:this._urlsToCacheKeys.get(i),secondEntry:e});if(typeof n!=`string`&&n.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==n.integrity)throw new r(`add-to-cache-list-conflicting-integrities`,{url:i});this._cacheKeysToIntegrities.set(e,n.integrity)}if(this._urlsToCacheKeys.set(i,e),this._urlsToCacheModes.set(i,a),t.length>0){let e=`Workbox is precaching URLs without revision info: ${t.join(`, `)}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return c(e,async()=>{let t=new ee;this.strategy.plugins.push(t);for(let[t,n]of this._urlsToCacheKeys){let r=this._cacheKeysToIntegrities.get(n),i=this._urlsToCacheModes.get(t),a=new Request(t,{integrity:r,cache:i,credentials:`same-origin`});await Promise.all(this.strategy.handleAll({params:{cacheKey:n},request:a,event:e}))}let{updatedURLs:n,notUpdatedURLs:r}=t;return{updatedURLs:n,notUpdatedURLs:r}})}activate(e){return c(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),n=new Set(this._urlsToCacheKeys.values()),r=[];for(let i of t)n.has(i.url)||(await e.delete(i),r.push(i.url));return{deletedURLs:r}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,n=this.getCacheKeyForURL(t);if(n)return(await self.caches.open(this.strategy.cacheName)).match(n)}createHandlerBoundToURL(e){let t=this.getCacheKeyForURL(e);if(!t)throw new r(`non-precached-url`,{url:e});return n=>(n.request=new Request(e),n.params=Object.assign({cacheKey:t},n.params),this.strategy.handle(n))}},y,b=()=>(y||=new le,y);try{self[`workbox:routing:7.4.0`]&&_()}catch{}var x=e=>e&&typeof e==`object`?e:{handle:e},S=class{constructor(e,t,n=`GET`){this.handler=x(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=x(e)}},ue=class extends S{constructor(e,t,n){super(({url:t})=>{let n=e.exec(t.href);if(n&&(t.origin===location.origin||n.index===0))return n.slice(1)},t,n)}},de=class{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener(`fetch`,(e=>{let{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)}))}addCacheListener(){self.addEventListener(`message`,(e=>{if(e.data&&e.data.type===`CACHE_URLS`){let{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(t=>{typeof t==`string`&&(t=[t]);let n=new Request(...t);return this.handleRequest({request:n,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}}))}handleRequest({request:e,event:t}){let n=new URL(e.url,location.href);if(!n.protocol.startsWith(`http`))return;let r=n.origin===location.origin,{params:i,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:n}),o=a&&a.handler,s=e.method;if(!o&&this._defaultHandlerMap.has(s)&&(o=this._defaultHandlerMap.get(s)),!o)return;let c;try{c=o.handle({url:n,request:e,event:t,params:i})}catch(e){c=Promise.reject(e)}let l=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch(async r=>{if(l)try{return await l.handle({url:n,request:e,event:t,params:i})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw r})),c}findMatchingRoute({url:e,sameOrigin:t,request:n,event:r}){let i=this._routes.get(n.method)||[];for(let a of i){let i,o=a.match({url:e,sameOrigin:t,request:n,event:r});if(o)return i=o,(Array.isArray(i)&&i.length===0||o.constructor===Object&&Object.keys(o).length===0||typeof o==`boolean`)&&(i=void 0),{route:a,params:i}}return{}}setDefaultHandler(e,t=`GET`){this._defaultHandlerMap.set(t,x(e))}setCatchHandler(e){this._catchHandler=x(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new r(`unregister-route-but-not-found-with-method`,{method:e.method});let t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new r(`unregister-route-route-not-registered`)}},C,fe=()=>(C||(C=new de,C.addFetchListener(),C.addCacheListener()),C);function pe(e,t,n){let i;if(typeof e==`string`){let r=new URL(e,location.href);i=new S(({url:e})=>e.href===r.href,t,n)}else if(e instanceof RegExp)i=new ue(e,t,n);else if(typeof e==`function`)i=new S(e,t,n);else if(e instanceof S)i=e;else throw new r(`unsupported-route-type`,{moduleName:`workbox-routing`,funcName:`registerRoute`,paramName:`capture`});return fe().registerRoute(i),i}function me(e,t=[]){for(let n of[...e.searchParams.keys()])t.some(e=>e.test(n))&&e.searchParams.delete(n);return e}function*he(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:n=`index.html`,cleanURLs:r=!0,urlManipulation:i}={}){let a=new URL(e,location.href);a.hash=``,yield a.href;let o=me(a,t);if(yield o.href,n&&o.pathname.endsWith(`/`)){let e=new URL(o.href);e.pathname+=n,yield e.href}if(r){let e=new URL(o.href);e.pathname+=`.html`,yield e.href}if(i){let e=i({url:a});for(let t of e)yield t.href}}var w=class extends S{constructor(e,t){super(({request:n})=>{let r=e.getURLsToCacheKeys();for(let i of he(n.url,t)){let t=r.get(i);if(t)return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}},e.strategy)}};function T(e){pe(new w(b(),e))}var E=`-precache-`,D=async(e,t=E)=>{let n=(await self.caches.keys()).filter(n=>n.includes(t)&&n.includes(self.registration.scope)&&n!==e);return await Promise.all(n.map(e=>self.caches.delete(e))),n};function O(){self.addEventListener(`activate`,(e=>{let t=s.getPrecacheName();e.waitUntil(D(t).then(e=>{}))}))}function k(e){return b().matchPrecache(e)}function A(e){b().precache(e)}function j(e,t){A(e),T(t)}var M=`offline-content-v1`,N=`offline-api-v1`,P={enabled:!1,budgetBytes:4294967296,excludedWorkspaces:[]};function F(e){let t=e.match(/^\/rest\/v2\/workspaces\/([^/?#]+)/);return t?decodeURIComponent(t[1]):null}var I=1e3,L=`canvas-offline`,R=2,z=null;function B(){return z||(z=new Promise((e,t)=>{let n=indexedDB.open(L,R);n.onupgradeneeded=e=>{let t=n.result;if(t.objectStoreNames.contains(`config`)||t.createObjectStore(`config`),t.objectStoreNames.contains(`entries`)||t.createObjectStore(`entries`,{keyPath:`url`}),e.oldVersion>=1&&t.objectStoreNames.contains(`pins`)){t.deleteObjectStore(`pins`);let e=n.transaction.objectStore(`entries`).openCursor();e.onsuccess=()=>{let t=e.result;if(!t)return;let n=t.value;n.pinned&&t.update({...n,pinned:!1}),t.continue()}}t.objectStoreNames.contains(`scopes`)||t.createObjectStore(`scopes`,{keyPath:`id`})},n.onsuccess=()=>{n.result.onversionchange=()=>{n.result.close(),z=null},e(n.result)},n.onerror=()=>{z=null,t(n.error)}}),z)}function V(e){return new Promise((t,n)=>{e.oncomplete=()=>t(),e.onerror=()=>n(e.error),e.onabort=()=>n(e.error)})}function H(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}async function U(e,t){return H((await B()).transaction(e).objectStore(e).get(t))}async function ge(e){return H((await B()).transaction(e).objectStore(e).getAll())}async function W(e,t,n){let r=(await B()).transaction(e,`readwrite`);return r.objectStore(e).put(t,n),V(r)}async function G(e,t){let n=(await B()).transaction(e,`readwrite`);return n.objectStore(e).delete(t),V(n)}async function _e(){try{let e=await U(`config`,`settings`);return e?{...P,...e}:P}catch{return P}}async function K(e,t,n){let r=await U(`entries`,e);await W(`entries`,{url:e,kind:t,size:n,lastAccess:Date.now(),pinned:r?.pinned??!1})}var ve=6e4,q=new Map;async function J(e){let t=q.get(e),n=Date.now();if(t&&n-t<ve)return;q.set(e,n),q.size>4096&&q.clear();let r=await U(`entries`,e);r&&await W(`entries`,{...r,lastAccess:n})}async function ye(e){let t=await ge(`entries`),n=t.filter(e=>e.kind===`api`).sort((e,t)=>e.lastAccess-t.lastAccess),r=n.slice(0,Math.max(0,n.length-I)),i=t.filter(e=>e.kind===`content`),a=i.reduce((e,t)=>e+t.size,0),o=i.filter(e=>!e.pinned).sort((e,t)=>e.lastAccess-t.lastAccess),s=[];for(let t of o){if(a<=e)break;s.push(t),a-=t.size}if(!r.length&&!s.length)return;let[c,l]=await Promise.all([caches.open(N),caches.open(M)]);await Promise.all([...r.map(async e=>{await c.delete(e.url),await G(`entries`,e.url)}),...s.map(async e=>{await l.delete(e.url),await G(`entries`,e.url)})])}O(),j([{"revision":"08c5b1dc9433683484a6025b15fe728a","url":"index.html"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"favicon_wl.png"},{"revision":"243f17f04cf5eb5b298d9701dbd3b4b9","url":"favicon.png"},{"revision":"339e5b64fa2c186631343b5399fe3898","url":"wallpapers/files/canvas_3.svg"},{"revision":"b164dca13ae630411fdc766586da3f61","url":"wallpapers/files/canvas_1.svg"},{"revision":"6ffe60f1b1d220a5b59ef1fe376122f6","url":"screenshots/s3.png"},{"revision":"be57d83f15923b5351a2a7cde1f35bf8","url":"screenshots/s2.png"},{"revision":"c3af5f4e79b0e4b5794d10e1ed3be39a","url":"screenshots/s1.png"},{"revision":"265dfc3ecb9788a5ae8974ec254ac651","url":"js/particles.min.js"},{"revision":"443e87a6d23acf7c849051ffd38106db","url":"images/logo_orig.png"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"images/logo_64x64.png"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/logo_512x512.png"},{"revision":"d6363d0e5249f161c4b7d78045a210e5","url":"images/logo_256x256.png"},{"revision":"6f763ad15fbd8e2e93893c0d98a9905d","url":"images/logo_128x128.png"},{"revision":"bc4e038a89ae062004dd9ff297bba3f5","url":"images/logo_1024x1024.png"},{"revision":"1c1dcdd3b47bee973de6f323b504dda5","url":"images/logo-wr_orig.png"},{"revision":"34a0677b471ec1dcf5f25eeac90539e2","url":"images/logo-wr_64x64.png"},{"revision":"de6735f441492f065a0da94eacb982de","url":"images/logo-wr_512x512.png"},{"revision":"3018eca652753d237061b855645f93c9","url":"images/logo-wr_256x256.png"},{"revision":"509310a186188c5b0751569a536ee83a","url":"images/logo-wr_128x128.png"},{"revision":"c23aea3f0209c8f5817796449af52472","url":"images/logo-wr_1024x1024.png"},{"revision":"8119caf9106c961943456e5113c26cfc","url":"images/logo-br_orig.png"},{"revision":"ed7721ca00c7df91460006ae11340980","url":"images/logo-br_64x64.png"},{"revision":"657409bce8f4fe2efaa08f441d91cb26","url":"images/logo-br_512x512.png"},{"revision":"1d1659355d80946eedf1063501b091b8","url":"images/logo-br_256x256.png"},{"revision":"733bf2efe01b5cb056534806772aabd2","url":"images/logo-br_128x128.png"},{"revision":"e7561ccec1eefad2a36e697ddbebcd78","url":"images/logo-br_1024x1024.png"},{"revision":"05d9d6e8842b65d5a6b7f9b83eb6e786","url":"images/logo-bl_orig.png"},{"revision":"243f17f04cf5eb5b298d9701dbd3b4b9","url":"images/logo-bl_64x64.png"},{"revision":"a34687e37e32da4d4c127831c6f9779c","url":"images/logo-bl_512x512.png"},{"revision":"0260dd99a07186b7fc3d101023068658","url":"images/logo-bl_256x256.png"},{"revision":"ddb2b89e0437a22554694e1f0a2b894b","url":"images/logo-bl_128x128.png"},{"revision":"1ca5897439475c3b2acab290959559b9","url":"images/logo-bl_1024x1024.png"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"images/favicon.png"},{"revision":"d6363d0e5249f161c4b7d78045a210e5","url":"images/apple-touch-icon.png"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/android-chrome-512x512.png"},{"revision":"452c6675af891c549b493895764c855d","url":"images/avatars/default.png"},{"revision":null,"url":"assets/zh-TW-RAJ6MFWO-BTknr43S.js"},{"revision":null,"url":"assets/zh-HK-E62DVLB3-dcRoFFJT.js"},{"revision":null,"url":"assets/zh-CN-LNUGB5OW-N0-P-YPg.js"},{"revision":null,"url":"assets/xychartDiagram-S5SC5T6Z-Cg27DCiq.js"},{"revision":null,"url":"assets/workspaces-CqHYstZv.js"},{"revision":null,"url":"assets/workspaces-BTYGLm4X.js"},{"revision":null,"url":"assets/workspace-import-form-DTvV9jYt.js"},{"revision":null,"url":"assets/workspace-content-gate-C54J9Man.js"},{"revision":null,"url":"assets/workspace-area-menu-B-bXURzn.js"},{"revision":null,"url":"assets/workspace-access-C9nZlBBZ.js"},{"revision":null,"url":"assets/workspace-C5V-ZCOE.js"},{"revision":null,"url":"assets/workspace-BydSRtST.js"},{"revision":null,"url":"assets/workbox-window.prod.es5-Bd17z0YL.js"},{"revision":null,"url":"assets/wardleyDiagram-VM6X3IG4-XOnMkSi-.js"},{"revision":null,"url":"assets/wardley-WFR3VGLG-C6N1rULY.js"},{"revision":null,"url":"assets/vi-VN-M7AON7JQ-BFEVKFOA.js"},{"revision":null,"url":"assets/vennDiagram-4TSXK5OY-P6FI4YvP.js"},{"revision":null,"url":"assets/utils-BxVxyehK.js"},{"revision":null,"url":"assets/utils-2pl1SbIp.js"},{"revision":null,"url":"assets/users-DuVk-TEd.js"},{"revision":null,"url":"assets/useToastHelpers-CRrpIIdY.js"},{"revision":null,"url":"assets/useSocketSubscription-ifW-vnlb.js"},{"revision":null,"url":"assets/useEscapeClose-DR_xKT_k.js"},{"revision":null,"url":"assets/useEditNoteFields-BT1ASu_q.js"},{"revision":null,"url":"assets/useDocumentThumbnail-Cj4UYyhC.js"},{"revision":null,"url":"assets/useAgentModels-Dw0ibJnv.js"},{"revision":null,"url":"assets/useAddTarget-DeRZWtGg.js"},{"revision":null,"url":"assets/use-workspace-identity-CSkRwVyo.js"},{"revision":null,"url":"assets/use-toolbox-Ck_cLGgf.js"},{"revision":null,"url":"assets/use-toast-BlLDqSUO.js"},{"revision":null,"url":"assets/use-theme-DaxpiICf.js"},{"revision":null,"url":"assets/use-sortable-data-BBKmqs79.js"},{"revision":null,"url":"assets/use-settings-back-DGmLAD63.js"},{"revision":null,"url":"assets/use-mobile-Db-vWu9Y.js"},{"revision":null,"url":"assets/use-menu-DIP1zh7I.js"},{"revision":null,"url":"assets/use-document-modal-PG8bQyIB.js"},{"revision":null,"url":"assets/use-create-panel-DhSNIGtr.js"},{"revision":null,"url":"assets/use-canvas-pins-C57Vbkrq.css"},{"revision":null,"url":"assets/use-canvas-pins-Bhd7_wde.js"},{"revision":null,"url":"assets/use-applet-target-BygCSj5n.js"},{"revision":null,"url":"assets/use-applet-docs-rimRHjID.js"},{"revision":null,"url":"assets/url-params-n7kU_WZ-.js"},{"revision":null,"url":"assets/uk-UA-QMV73CPH-BfWne7LV.js"},{"revision":null,"url":"assets/ui-CDoK3F3U.js"},{"revision":null,"url":"assets/treemap-WGGIJYW6-Cg7tyfH8.js"},{"revision":null,"url":"assets/treeView-Q6P3EWNA-BTTYcvrF.js"},{"revision":null,"url":"assets/tree-folders-CNbp7be7.js"},{"revision":null,"url":"assets/tr-TR-DEFEU3FU-Q633YFo2.js"},{"revision":null,"url":"assets/timeline-definition-24CTP7MA-HQ5YMAQc.js"},{"revision":null,"url":"assets/th-TH-HPSO5L25-swaKUA2N.js"},{"revision":null,"url":"assets/text-documents-Cdb3U63i.js"},{"revision":null,"url":"assets/tags-YamdPoBK.js"},{"revision":null,"url":"assets/ta-IN-2NMHFXQM-D1gPGRIR.js"},{"revision":null,"url":"assets/swimlanesDiagram-VR7AAH4N-DACbRCkF.js"},{"revision":null,"url":"assets/swimlanes-42K2YHIH-f0gJOzIY.js"},{"revision":null,"url":"assets/sv-SE-XGPEYMSR-CWEjOHYD.js"},{"revision":null,"url":"assets/subtree-transfer-dialog-DQM5zfx2.js"},{"revision":null,"url":"assets/subset-worker.chunk-D4w07nYk.js"},{"revision":null,"url":"assets/subset-shared.chunk-CzQ5JF2O.js"},{"revision":null,"url":"assets/stateDiagram-v2-MP3YSRHH-UMuzQhZ7.js"},{"revision":null,"url":"assets/stateDiagram-D77RDMKH-Dsv4fQ8Y.js"},{"revision":null,"url":"assets/src-CllyRBe0.js"},{"revision":null,"url":"assets/socket-hM4c-ZSl.js"},{"revision":null,"url":"assets/socket-CtH3EU9m.js"},{"revision":null,"url":"assets/sl-SI-NN7IZMDC-DFJxhRNE.js"},{"revision":null,"url":"assets/sketch-lazy-BY_ka1hw.js"},{"revision":null,"url":"assets/sk-SK-C5VTKIMK-NlHjiedH.js"},{"revision":null,"url":"assets/sizeCapture-INFHLROL-B0uUizjq.js"},{"revision":null,"url":"assets/si-LK-N5RQ5JYF-ROLYABqx.js"},{"revision":null,"url":"assets/shared-BLOuO2Is.js"},{"revision":null,"url":"assets/shared-0beOwGSQ.js"},{"revision":null,"url":"assets/share-target-C7PbTH7r.js"},{"revision":null,"url":"assets/sha256-65KIjGvZ.js"},{"revision":null,"url":"assets/settings-Dluo6P1Q.js"},{"revision":null,"url":"assets/settings-CP_46X21.js"},{"revision":null,"url":"assets/settings-B_suOk2v.js"},{"revision":null,"url":"assets/settings-BIvpUSK-.js"},{"revision":null,"url":"assets/sequenceDiagram-WJ2MYXX4-Dyn971wT.js"},{"revision":null,"url":"assets/search-COMZIxA7.js"},{"revision":null,"url":"assets/sankeyDiagram-P5KCCOFB-CBdZpflq.js"},{"revision":null,"url":"assets/sanitize-DrVcFY1Q.js"},{"revision":null,"url":"assets/ru-RU-B4JR7IUQ-n637KE87.js"},{"revision":null,"url":"assets/roundRect-D01gJrlt.js"},{"revision":null,"url":"assets/rough.esm-Dy-Kn_BL.js"},{"revision":null,"url":"assets/rolldown-runtime-C0FnF6B9.js"},{"revision":null,"url":"assets/roles-sb8vgjV_.js"},{"revision":null,"url":"assets/roles-p2cRajz-.js"},{"revision":null,"url":"assets/role-C5I0Plgn.js"},{"revision":null,"url":"assets/ro-RO-JPDTUUEW-BqxNXAVP.js"},{"revision":null,"url":"assets/requirementDiagram-BXWQKSXE-S99ev3k7.js"},{"revision":null,"url":"assets/remotes-RPGcw6fH.js"},{"revision":null,"url":"assets/relation-events-CKio19hE.js"},{"revision":null,"url":"assets/registry-fC-KNk2X.js"},{"revision":null,"url":"assets/react-BHzhHVTZ.js"},{"revision":null,"url":"assets/railroadDiagram-O6MQD6OU-Cjw_zMBC.js"},{"revision":null,"url":"assets/railroad-peg-WCYAUIDC-BQiIsX_p.js"},{"revision":null,"url":"assets/railroad-ebnf-LZEXJU2U-V0aQVv9m.js"},{"revision":null,"url":"assets/railroad-abnf-HS5TGJTU-Cq7y22IA.js"},{"revision":null,"url":"assets/railroad-74A4TZTK-CGtTWdGc.js"},{"revision":null,"url":"assets/radar-RG4KPBEZ-B6h6pWOs.js"},{"revision":null,"url":"assets/query-debug-lD5vbJGi.js"},{"revision":null,"url":"assets/quadrantDiagram-AXDQQJYC-CAXFELe7.js"},{"revision":null,"url":"assets/punycode.es6-ZbLrB_Dn.js"},{"revision":null,"url":"assets/public-share-CXR25Q1X.js"},{"revision":null,"url":"assets/pt-PT-UZXXM6DQ-DXzHR8rJ.js"},{"revision":null,"url":"assets/pt-BR-5N22H2LF-CeODeunU.js"},{"revision":null,"url":"assets/preload-helper-Czpn1I53.js"},{"revision":null,"url":"assets/pl-PL-T2D74RX3-DgfcfsGT.js"},{"revision":null,"url":"assets/pieDiagram-E7YTZNPT-Cs2lygkh.js"},{"revision":null,"url":"assets/pie-WAS4IAKB-qxv01Y8W.js"},{"revision":null,"url":"assets/pica-XznpCgP2.js"},{"revision":null,"url":"assets/percentages-BXMCSKIN-BPGA3zHb.js"},{"revision":null,"url":"assets/pegDiagram-XKGWAZYB-DqjEkpXQ.js"},{"revision":null,"url":"assets/pdf.worker.min-C8Ts8bNu.js"},{"revision":null,"url":"assets/pdf-Ciz5_WNq.js"},{"revision":null,"url":"assets/path-fybaL0A-.js"},{"revision":null,"url":"assets/page-header-DrDt1sQ2.js"},{"revision":null,"url":"assets/packet-AYTQ26CC-BSJEH9Lb.js"},{"revision":null,"url":"assets/pa-IN-N4M65BXN-wsiZwueU.js"},{"revision":null,"url":"assets/ordinal-BDEzSJ7C.js"},{"revision":null,"url":"assets/offline-ByoT6JJX.js"},{"revision":null,"url":"assets/oc-FR-POXYY2M6-Cn1eE_Zu.js"},{"revision":null,"url":"assets/note-save-status-DPz4VzL6.js"},{"revision":null,"url":"assets/nn-NO-6E72VCQL-Dfy734xI.js"},{"revision":null,"url":"assets/nl-NL-IS3SIHDZ-C4-Hez0V.js"},{"revision":null,"url":"assets/nb-NO-T6EIAALU-BQeWbEx1.js"},{"revision":null,"url":"assets/my-MM-5M5IBNSE-BXTnMvRC.js"},{"revision":null,"url":"assets/mr-IN-CRQNXWMA-9iKXC6Ya.js"},{"revision":null,"url":"assets/mindmap-definition-YA3MSWOX-aAz9cEjj.js"},{"revision":null,"url":"assets/mermaid-parser.core-CN1hT9Tn.js"},{"revision":null,"url":"assets/markdown-view-BBBZtNSR.js"},{"revision":null,"url":"assets/markdown-it-DRESbtwK.js"},{"revision":null,"url":"assets/markdown-html-DtQ7-esK.css"},{"revision":null,"url":"assets/markdown-html-CZMGihx6.js"},{"revision":null,"url":"assets/map-BxCwdK0d.js"},{"revision":null,"url":"assets/map-BcsP_QXj.css"},{"revision":null,"url":"assets/lv-LV-5QDEKY6T-BTnV-PCT.js"},{"revision":null,"url":"assets/lt-LT-XHIRWOB4-B6H0gZ-C.js"},{"revision":null,"url":"assets/logs-DjG8_wJ2.js"},{"revision":null,"url":"assets/linear-aVQWq3ZZ.js"},{"revision":null,"url":"assets/line-DXCbHsGS.js"},{"revision":null,"url":"assets/lazy-editor-BUFAkTGl.js"},{"revision":null,"url":"assets/layer-style-Byl5LNFR.js"},{"revision":null,"url":"assets/last-path-BbXWC3b3.js"},{"revision":null,"url":"assets/label-BSTdjCWU.js"},{"revision":null,"url":"assets/ku-TR-6OUDTVRD-Ky7FAdew.js"},{"revision":null,"url":"assets/ko-KR-MTYHY66A-BdMJRRpv.js"},{"revision":null,"url":"assets/km-KH-HSX4SM5Z-CaYVKl3D.js"},{"revision":null,"url":"assets/kk-KZ-P5N5QNE5-D52-yIxL.js"},{"revision":null,"url":"assets/key-bindings-CqCOuyv6.js"},{"revision":null,"url":"assets/katex-CXMH3UgJ.js"},{"revision":null,"url":"assets/kanban-definition-UXKFOSKX-BqkLgv78.js"},{"revision":null,"url":"assets/kab-KAB-ZGHBKWFO-BXYUMKRc.js"},{"revision":null,"url":"assets/kaa-6HZHGXH3-0hNa4m6s.js"},{"revision":null,"url":"assets/journeyDiagram-3NMN7TZE-CL9Lqe59.js"},{"revision":null,"url":"assets/ja-JP-DBVTYXUO-DSHejo8t.js"},{"revision":null,"url":"assets/it-IT-JPQ66NNP-D6FUHYuZ.js"},{"revision":null,"url":"assets/ishikawaDiagram-5VMMS53U-Hs60L6ow.js"},{"revision":null,"url":"assets/input-BOtCd4HP.js"},{"revision":null,"url":"assets/init-C-OQMol4.js"},{"revision":null,"url":"assets/infoDiagram-27XIBGKW-BuJx_j6a.js"},{"revision":null,"url":"assets/info-A6RAGUB7-BlU-8_xu.js"},{"revision":null,"url":"assets/inferd-config-editor-B8x_XPOt.js"},{"revision":null,"url":"assets/index-DDoPhET6.js"},{"revision":null,"url":"assets/index-CYvpxvg6.css"},{"revision":null,"url":"assets/image-blob-reduce.esm-Dj7YBvMv.js"},{"revision":null,"url":"assets/image-GAAHSSAO-CI-0hUck.js"},{"revision":null,"url":"assets/id-ID-SAP4L64H-ZZuXM5fX.js"},{"revision":null,"url":"assets/icons-DTuc_pxj.js"},{"revision":null,"url":"assets/hu-HU-A5ZG7DT2-BBrlHtCw.js"},{"revision":null,"url":"assets/home-7tcQ6_Mc.js"},{"revision":null,"url":"assets/hi-IN-IWLTKZ5I-Dzr4DvnL.js"},{"revision":null,"url":"assets/he-IL-6SHJWFNN-9Ylp6ncb.js"},{"revision":null,"url":"assets/graphlib-DS17s2tU.js"},{"revision":null,"url":"assets/gl-ES-HMX3MZ6V-4bQs8jWL.js"},{"revision":null,"url":"assets/gitGraphDiagram-WWUBYQGX-D6Gfp0nt.js"},{"revision":null,"url":"assets/gitGraph-4MIJSDKK-DYlXv_yJ.js"},{"revision":null,"url":"assets/geo-CZfs0E-x.js"},{"revision":null,"url":"assets/ganttDiagram-EL5Y4UJY-BKBiwfwb.js"},{"revision":null,"url":"assets/fr-FR-RHASNOE6-BH99frB1.js"},{"revision":null,"url":"assets/form-panel-3p-ncEVK.js"},{"revision":null,"url":"assets/flowDiagram-HODETNUW-BrKzgeF8.js"},{"revision":null,"url":"assets/file-save-745eba88-Bwdfz6OZ.js"},{"revision":null,"url":"assets/file-save-3189631c-CO9S4HFW.js"},{"revision":null,"url":"assets/file-open-7c801643-DZtJT5zp.js"},{"revision":null,"url":"assets/file-open-002ab408-BHUWm0Sh.js"},{"revision":null,"url":"assets/fi-FI-Z5N7JZ37-DC3Y34Y8.js"},{"revision":null,"url":"assets/fa-IR-HGAKTJCU-ddIdgP13.js"},{"revision":null,"url":"assets/eventmodeling-NTZA5JFV-BR2FzK4R.js"},{"revision":null,"url":"assets/eu-ES-A7QVB2H4-CAoFumRj.js"},{"revision":null,"url":"assets/es-ES-U4NZUMDT-D_KzWrdW.js"},{"revision":null,"url":"assets/erDiagram-RLTQ6QDP-CL7FBspC.js"},{"revision":null,"url":"assets/en-B4ZKOASM-BClIFgbE.js"},{"revision":null,"url":"assets/embedding-D-I_ygUZ.js"},{"revision":null,"url":"assets/embedding-BvXcVfij.js"},{"revision":null,"url":"assets/el-GR-BZB4AONW-Chellj6d.js"},{"revision":null,"url":"assets/ebnfDiagram-PWID7BFC-B9wGidHs.js"},{"revision":null,"url":"assets/document-open-mode-DoImW-xs.js"},{"revision":null,"url":"assets/document-list-DAYdk5vh.css"},{"revision":null,"url":"assets/document-list-CUmMhD6M.js"},{"revision":null,"url":"assets/document-Cr7GhnVd.js"},{"revision":null,"url":"assets/dist-zgyESmtJ.js"},{"revision":null,"url":"assets/dist-Cz2MTljl.js"},{"revision":null,"url":"assets/directory-open-4ed118d0-1i309Asm.js"},{"revision":null,"url":"assets/directory-open-01563666-D4xXyWb_.js"},{"revision":null,"url":"assets/diagram-Z3DM3KII-aAOMR4aJ.js"},{"revision":null,"url":"assets/diagram-VX7I27RA-D-UFFc5T.js"},{"revision":null,"url":"assets/diagram-VSXAHHWV-BR6t4bem.js"},{"revision":null,"url":"assets/diagram-UQ7AKVKN-CC4synlk.js"},{"revision":null,"url":"assets/diagram-S7CK7UJ4-BCYFjoge.js"},{"revision":null,"url":"assets/devices-CAa1bRxk.js"},{"revision":null,"url":"assets/devices-BwU9M8-W.js"},{"revision":null,"url":"assets/desk-dI_FvLsK.js"},{"revision":null,"url":"assets/defaultLocale-BFoDCU3G.js"},{"revision":null,"url":"assets/de-DE-XR44H4JA-DNaOwkE9.js"},{"revision":null,"url":"assets/date-time-picker-DCikruos.js"},{"revision":null,"url":"assets/dagre-PrKaheQc.js"},{"revision":null,"url":"assets/dagre-GXQ25YYZ-DAaeOVEp.js"},{"revision":null,"url":"assets/da-DK-5WZEPLOC-D55fbhpB.js"},{"revision":null,"url":"assets/cytoscape.esm-CGd-uY3x.js"},{"revision":null,"url":"assets/cynefinDiagram-5FMLGOSQ-Bwsug0X5.js"},{"revision":null,"url":"assets/cynefin-OW5HDTMX-7tP7QfM3.js"},{"revision":null,"url":"assets/cs-CZ-2BRQDIVT-Bz62EbC5.js"},{"revision":null,"url":"assets/cose-bilkent-JH36ORCC-DIeJt_L_.js"},{"revision":null,"url":"assets/contexts-DDJagU4j.js"},{"revision":null,"url":"assets/contexts-Bq8LHUTK2.js"},{"revision":null,"url":"assets/context-t3rdtGUB.js"},{"revision":null,"url":"assets/color-DFEH4BfK.js"},{"revision":null,"url":"assets/code-editor-BOIngd5F.js"},{"revision":null,"url":"assets/classDiagram-v2-VYDZK3BY-DLpT76o5.js"},{"revision":null,"url":"assets/classDiagram-ZZMXUADV-DLpT76o5.js"},{"revision":null,"url":"assets/chunk-Z3N5DIM6-D9TMVU7m.js"},{"revision":null,"url":"assets/chunk-Y2CYZVJY-DsF7k-Jl.js"},{"revision":null,"url":"assets/chunk-XXDRQBXY-CazVBYiP.js"},{"revision":null,"url":"assets/chunk-XHIXRSVI-BFQ6B8BE.js"},{"revision":null,"url":"assets/chunk-UY3FDG6J-CnmaAkG5.js"},{"revision":null,"url":"assets/chunk-TLUHSLCS-C47Epi2D.js"},{"revision":null,"url":"assets/chunk-TICWLB2K-jXepk-qW.js"},{"revision":null,"url":"assets/chunk-SVP7TREG-CoPu3EjZ.js"},{"revision":null,"url":"assets/chunk-SRAX5OIU-Dhm3gOdh.js"},{"revision":null,"url":"assets/chunk-SHT3W25Y-75CQ5pWa.js"},{"revision":null,"url":"assets/chunk-PWAF6VOD-DPI_wv9p.js"},{"revision":null,"url":"assets/chunk-POPQ4Y6H-B7yAy58S.js"},{"revision":null,"url":"assets/chunk-P2QGCYS3-DsGP3wH9.js"},{"revision":null,"url":"assets/chunk-OUJLGHUK-D0j2JRSg.js"},{"revision":null,"url":"assets/chunk-OSK3NFVY-fNjfug78.js"},{"revision":null,"url":"assets/chunk-LNGE3PJU-DWpGwHrW.js"},{"revision":null,"url":"assets/chunk-L3NEJ4N5-Cl0-d4Gu.js"},{"revision":null,"url":"assets/chunk-KI3K4JFJ-Rma-0k_M.js"},{"revision":null,"url":"assets/chunk-K2UTITRG-BvHe9UPk.js"},{"revision":null,"url":"assets/chunk-JWPE2WC7-DVXcaiue.js"},{"revision":null,"url":"assets/chunk-IMKFNOWR-BuKGugNz.js"},{"revision":null,"url":"assets/chunk-IH6LHLGP-CC6I9F3i.js"},{"revision":null,"url":"assets/chunk-ICYGCRZG-749o-pGJ.js"},{"revision":null,"url":"assets/chunk-I5DQTOEV-Hm2LfiYI.js"},{"revision":null,"url":"assets/chunk-GVQU2GXP-BMi2Lqv6.js"},{"revision":null,"url":"assets/chunk-GMAD6QVW-tEmtNh72.js"},{"revision":null,"url":"assets/chunk-FOHPRMQF-DHwB1DNv.js"},{"revision":null,"url":"assets/chunk-F27PBJKO-B8_NVNfE.js"},{"revision":null,"url":"assets/chunk-EIO257PC-CAhBf1ig.js"},{"revision":null,"url":"assets/chunk-DU6HZSFF-BlZbyIL6.js"},{"revision":null,"url":"assets/chunk-CLGD4ZFX-BzBIdJij.js"},{"revision":null,"url":"assets/chunk-75Z2AOVW-CzSd0Veu.js"},{"revision":null,"url":"assets/chunk-747NJXEK-BFkZPlab.js"},{"revision":null,"url":"assets/chunk-6U3AYISY-C6-Mtja1.js"},{"revision":null,"url":"assets/chunk-6TQVIW2G-DKlLbNIP.js"},{"revision":null,"url":"assets/chunk-6K3QC6MW-CqVsVn-y.js"},{"revision":null,"url":"assets/chunk-6EIED4P4-DdUJkP0f.js"},{"revision":null,"url":"assets/chunk-6AZGARVD-BB6FqMl-.js"},{"revision":null,"url":"assets/chunk-62JRHF6Z-vspAGgtK.js"},{"revision":null,"url":"assets/chunk-5VM5RSS4-ZNzvKenW.js"},{"revision":null,"url":"assets/chunk-5V3GS4D5-i-ZDOEnP.js"},{"revision":null,"url":"assets/chunk-4HAMMTFA-DwG4o-7o.js"},{"revision":null,"url":"assets/chunk-3Z5EZCMW-DMniOlPd.js"},{"revision":null,"url":"assets/chunk-2ZTRR5NV-C2qZJila.js"},{"revision":null,"url":"assets/chunk-2Q5K7J3B-C1jixKkw.js"},{"revision":null,"url":"assets/chunk-2E4U76K2-BX8JWCIb.js"},{"revision":null,"url":"assets/channel-DbE-WRyM.js"},{"revision":null,"url":"assets/ca-ES-6MX7JW3Y-QAg3jm2p.js"},{"revision":null,"url":"assets/c4Diagram-7LVT6UL2-aDTW23RC.js"},{"revision":null,"url":"assets/button-SeUZ_Pvi.js"},{"revision":null,"url":"assets/bn-BD-2XOGV67Q-KCzfC93t.js"},{"revision":null,"url":"assets/blockDiagram-I7D4REHJ-DJlTH4XU.js"},{"revision":null,"url":"assets/blobs-WiXP9QRi.js"},{"revision":null,"url":"assets/bg-BG-XCXSNQG7-DFFjBv03.js"},{"revision":null,"url":"assets/backend-sync-progress-DU-e9TWi.css"},{"revision":null,"url":"assets/backend-sync-progress-CFe6JPuR.js"},{"revision":null,"url":"assets/az-AZ-76LH7QW2-8v0TczD5.js"},{"revision":null,"url":"assets/auth-PqttD05H.js"},{"revision":null,"url":"assets/auth-Bx9fAZmz.js"},{"revision":null,"url":"assets/array-BifhSqXX.js"},{"revision":null,"url":"assets/architectureDiagram-5GKGNRK7-2gVOlDi3.js"},{"revision":null,"url":"assets/architecture-7GRP2DOG-BMOPAkUC.js"},{"revision":null,"url":"assets/arc-SXJSVd7o.js"},{"revision":null,"url":"assets/ar-SA-G6X2FPQ2-BJ7kJfgn.js"},{"revision":null,"url":"assets/apps-DN8Ux5ac.js"},{"revision":null,"url":"assets/applet-target-pLdP-R76.js"},{"revision":null,"url":"assets/appearance-Bs11PYYg.js"},{"revision":null,"url":"assets/api-tokens-drrVuCYc.js"},{"revision":null,"url":"assets/api-CA6WiiYM.js"},{"revision":null,"url":"assets/alert-dialog-CFeuDt0T.js"},{"revision":null,"url":"assets/agents-DxqAi3vk.js"},{"revision":null,"url":"assets/agents-DcNNzyQt.js"},{"revision":null,"url":"assets/admin-Bhg9QBHL.js"},{"revision":null,"url":"assets/add-Di0PTHej.js"},{"revision":null,"url":"assets/about-CYt1r_NF.js"},{"revision":null,"url":"assets/abnfDiagram-VCTEODGH-Cy_5vShZ.js"},{"revision":null,"url":"assets/_workspaceName_-BsPptLde.js"},{"revision":null,"url":"assets/_contextId_-Dn4SYTZE.js"},{"revision":null,"url":"assets/_agentId_-D-qxZUMa.js"},{"revision":null,"url":"assets/UploadProgressList-D2wEpa7t.js"},{"revision":null,"url":"assets/TodosWidget-CNnfNk4L.js"},{"revision":null,"url":"assets/TodosApplet-DU5VWc5i.js"},{"revision":null,"url":"assets/TextDocumentEditor-BQnVD0dd.js"},{"revision":null,"url":"assets/TerminalApplet-D7YxftqM.js"},{"revision":null,"url":"assets/TerminalApplet-BrP-ENHg.css"},{"revision":null,"url":"assets/SketchEditor-DtRVLazd.css"},{"revision":null,"url":"assets/SketchEditor-DmGMcbU0.js"},{"revision":null,"url":"assets/SketchApplet-BKnhzTBA.js"},{"revision":null,"url":"assets/PickDocumentsCard-BWgc-A02.js"},{"revision":null,"url":"assets/PathPickerField-CW2yG2Yg.js"},{"revision":null,"url":"assets/ObjectPropertiesCard-Docu7O5V.css"},{"revision":null,"url":"assets/ObjectPropertiesCard-D2lrTQqT.js"},{"revision":null,"url":"assets/NotesApplet-CQElHVk-.js"},{"revision":null,"url":"assets/NextShell-ull6WmMg.js"},{"revision":null,"url":"assets/NextShell-BT6-_CFY.css"},{"revision":null,"url":"assets/MessageComposerDialog-CdPp-3GR.js"},{"revision":null,"url":"assets/MarkdownEditor-DbpRWbO6.js"},{"revision":null,"url":"assets/MarkdownEditor-DWa37grk.css"},{"revision":null,"url":"assets/LocationTab-DAtqAQ3l.js"},{"revision":null,"url":"assets/LinkToSidePanel-eCy3nW4R.js"},{"revision":null,"url":"assets/LinkToCard-CKVi4Nrg.js"},{"revision":null,"url":"assets/LensApplet-DmJnK9xh.js"},{"revision":null,"url":"assets/IdentityFields-D-NCTUaE.js"},{"revision":null,"url":"assets/HomeFab-KnJ0amal.js"},{"revision":null,"url":"assets/FiltersApplet-JdYOvvVo.js"},{"revision":null,"url":"assets/FileForm-CDiVKvxq.js"},{"revision":null,"url":"assets/EditorOverlay-D5t3xg4w.js"},{"revision":null,"url":"assets/DocumentIcon-9i1uCMQa.js"},{"revision":null,"url":"assets/DocumentBodyEditor-CVO5KPCs.js"},{"revision":null,"url":"assets/CalendarApplet-D-zqm-ie.js"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/android-chrome-512x512.png"},{"revision":"bc4e038a89ae062004dd9ff297bba3f5","url":"images/logo_1024x1024.png"},{"revision":"6f763ad15fbd8e2e93893c0d98a9905d","url":"images/logo_128x128.png"},{"revision":"d6363d0e5249f161c4b7d78045a210e5","url":"images/logo_256x256.png"},{"revision":"1c314d3790ee0733defb3e75079ba8d9","url":"images/logo_512x512.png"},{"revision":"d0c188df2432c882c53e561e64cd29a2","url":"images/logo_64x64.png"},{"revision":"caa9715e027d2757550109f1f9653d7c","url":"manifest.webmanifest"}]),self.addEventListener(`message`,e=>{e.data&&e.data.type===`SKIP_WAITING`&&self.skipWaiting()}),self.addEventListener(`activate`,e=>{e.waitUntil(Promise.all([self.clients.claim(),Ee()]))});var be=864e5,Y=/^\/rest\/v2\/workspaces\/[^/]+\/documents\/[^/]+\/(content|thumbnail)$/,xe=/^\/rest\/v2\/(auth|admin|ping|events)\b/,X=null;async function Z(){if(X&&Date.now()-X.at<1e4)return X.value;let e=await _e().catch(()=>({enabled:!1,budgetBytes:0,excludedWorkspaces:[]}));return X={at:Date.now(),value:e},e}function Q(e,t){let n=F(t);return n!==null&&e.excludedWorkspaces.includes(n)}self.addEventListener(`message`,e=>{e.data&&e.data.type===`OFFLINE_SETTINGS_CHANGED`&&(X=null)}),self.addEventListener(`fetch`,e=>{let{request:t}=e,n=new URL(t.url);if(t.method===`POST`&&n.pathname===`/share-target`){e.respondWith(Te(e));return}if(t.method===`GET`&&n.origin===self.location.origin&&n.pathname.startsWith(`/rest/v2/`)){if(Y.test(n.pathname)&&!n.searchParams.has(`download`)&&!t.headers.has(`range`)){e.respondWith(Se(e,t));return}if(!xe.test(n.pathname)&&!Y.test(n.pathname)){e.respondWith(Ce(e,t));return}}t.mode===`navigate`&&!$(n.pathname)&&e.respondWith(we(t))});function $(e){return e.startsWith(`/rest/`)||e.startsWith(`/dav/`)||e.startsWith(`/.well-known/`)}async function Se(e,t){let n=await Z();if(!n.enabled||Q(n,new URL(t.url).pathname))return fetch(t);let r=await caches.open(M),i=await r.match(t.url,{ignoreVary:!0});if(i)return e.waitUntil(J(t.url).catch(()=>{})),i;let a=await fetch(t);if(a.ok&&a.status===200){let i=a.clone();e.waitUntil((async()=>{try{await r.put(t.url,i);let e=Number(a.headers.get(`content-length`))||(await(await r.match(t.url))?.blob())?.size||0;await K(t.url,`content`,e),await ye(n.budgetBytes)}catch(e){console.warn(`[sw] offline content cache put failed`,e)}})())}return a}async function Ce(e,t){let n=await Z();if(!n.enabled||Q(n,new URL(t.url).pathname))return fetch(t);try{let n=await fetch(t);if(n.ok&&n.status===200){let r=n.clone();e.waitUntil((async()=>{try{await(await caches.open(N)).put(t.url,r),await K(t.url,`api`,Number(n.headers.get(`content-length`))||0)}catch(e){console.warn(`[sw] offline api cache put failed`,e)}})())}return n}catch(n){let r=await(await caches.open(N)).match(t.url,{ignoreVary:!0});if(r){e.waitUntil(J(t.url).catch(()=>{}));let n=new Headers(r.headers);return n.set(`X-Canvas-Offline`,`fallback`),new Response(r.body,{status:r.status,statusText:r.statusText,headers:n})}throw n}}async function we(e){try{return await fetch(e)}catch{let e=await k(`/index.html`);if(e)return e;throw Error(`offline and index.html is not precached`)}}function Te(n){let r=crypto.randomUUID();return caches.open(e).then(async e=>(await e.put(`/share-target-inbox/${r}/meta`,new Response(JSON.stringify({status:`receiving`,stashedAt:Date.now()}))),e)).then(e=>t(n.request,r,e)).then(()=>Response.redirect(new URL(`/share-target?token=${r}`,self.location.origin).href,303),()=>Response.redirect(new URL(`/share-target?error=stash-failed`,self.location.origin).href,303))}async function Ee(){try{if(!await caches.has(`share-target-inbox`))return;let t=await caches.open(e),n=await t.keys(),r=new Set;for(let e of n){let{pathname:n}=new URL(e.url);if(!n.endsWith(`/meta`))continue;let i=n.split(`/`)[2];if(!i)continue;let a=0;try{let n=await t.match(e);a=n?Number((await n.json()).stashedAt??0):0}catch{}(!a||Date.now()-a>be)&&r.add(i)}await Promise.all(n.filter(e=>r.has(new URL(e.url).pathname.split(`/`)[2])).map(e=>t.delete(e)))}catch(e){console.error(`[sw] share inbox prune failed`,e)}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@augmentd-labs/canvas-web",
3
- "version": "2.26.41",
3
+ "version": "2.26.42",
4
4
  "description": "Canvas web UI (prebuilt dist)",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "author": "Jozef Melich <me@idnc.sk>",
@@ -12,5 +12,5 @@
12
12
  "dist",
13
13
  "NOTICE"
14
14
  ],
15
- "canvasRev": "5b31ec8"
15
+ "canvasRev": "1d6595d"
16
16
  }
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{l as t,u as n}from"./code-editor-BOIngd5F.js";import{_ as r,g as i,h as a}from"./chunk-62JRHF6Z-vspAGgtK.js";import{Kn as o,L as s,Tt as c,Ur as l,Vr as u,X as d,ar as f,gr as p,kt as m,pn as h}from"./ui-CDoK3F3U.js";import{t as g}from"./utils-2pl1SbIp.js";import{t as ee}from"./button-SeUZ_Pvi.js";import{c as _,t as te}from"./api-CA6WiiYM.js";import{t as v}from"./socket-CtH3EU9m.js";import{n as ne}from"./use-toast-BlLDqSUO.js";import{h as y,o as re,s as b}from"./LinkToCard-CKVi4Nrg.js";import{At as x,D as S,G as ie,Gt as C,Kt as w,Lt as ae,W as oe,Y as se,_ as T,_n as ce,a as le,bn as E,gt as D,lt as O,mt as ue,nt as de,rn as fe,rt as pe,u as me,vt as he,w as ge,x as _e,y as ve,zt as ye}from"./workspace-C5V-ZCOE.js";import{n as be,r as xe}from"./use-canvas-pins-Bhd7_wde.js";import{u as Se}from"./ObjectPropertiesCard-D2lrTQqT.js";import{a as Ce,c as k,d as we,f as A,i as Te,l as Ee,o as De,p as Oe,r as ke,w as Ae}from"./document-list-CUmMhD6M.js";import{n as je}from"./use-toolbox-Ck_cLGgf.js";import{i as Me}from"./color-DFEH4BfK.js";import{t as Ne}from"./geo-CZfs0E-x.js";import{a as Pe,i as Fe,n as Ie,o as Le}from"./workspace-BydSRtST.js";import{n as Re,r as ze,t as Be}from"./url-params-n7kU_WZ-.js";import{i as Ve}from"./use-menu-DIP1zh7I.js";import{n as He}from"./last-path-BbXWC3b3.js";import{t as Ue}from"./workspace-area-menu-B-bXURzn.js";import{t as We}from"./workspace-content-gate-C54J9Man.js";import{t as Ge}from"./form-panel-3p-ncEVK.js";import{a as Ke,c as qe,i as Je,l as Ye,n as Xe,o as Ze,r as Qe,s as $e,t as et,u as tt}from"./tree-folders-CNu09uPg.js";import{i as nt,r as rt}from"./query-debug-lD5vbJGi.js";var j=`session.open`,it=`session.set`,at=`session.ids`,ot=`session.materialize`,st=`session.close`,ct=`session.delta`,M=e(n(),1),N=t();function lt(e){let t=we(`backends`,e.path)?.backend;return(0,N.jsx)(ut,{...e},JSON.stringify([e.workspace,t]))}function ut({workspace:e,path:t,onNavigate:n}){let r=we(`backends`,t),i=r.backend,a=r.prefix,[s,l]=(0,M.useState)(null),[u,h]=(0,M.useState)(null),g=(0,M.useRef)(!1),[ee,_]=(0,M.useState)(null),[te,v]=(0,M.useState)(null),[ne,x]=(0,M.useState)(0),[S,ie]=(0,M.useState)(new Set),[C,w]=(0,M.useState)(null),ae=(0,M.useCallback)(()=>x(e=>e+1),[]),[oe,se]=(0,M.useState)(t);oe!==t&&(se(t),ie(new Set),w(null),v(null),_(null));let T=s?.revision!==ne,ce=T?[]:s.items,le=T?[]:s.backends,E=s?.days;(0,M.useEffect)(()=>{let t=!1;return(i?k(e,i).then(e=>({...e,backends:[]})):he(e).then(e=>({items:[],days:null,backends:e.filter(e=>e.driver===`file`&&e.enabled!==!1)}))).then(e=>{t||l({...e,revision:ne,error:null})}).catch(e=>{t||l({revision:ne,items:[],backends:[],days:null,error:e instanceof Error?e.message:String(e)})}),()=>{t=!0}},[e,i,ne]),(0,M.useEffect)(()=>{let t=null,n=n=>{let r=n.detail;r?.workspaceName&&r.workspaceName!==e||r?.treeName&&r.treeName!==`backends`||(t||=setTimeout(()=>{t=null,ae()},500))};return window.addEventListener(`workspace:trash:refresh`,n),window.addEventListener(`workspace:tree:refresh`,n),()=>{window.removeEventListener(`workspace:trash:refresh`,n),window.removeEventListener(`workspace:tree:refresh`,n),t&&clearTimeout(t)}},[e,ae]);let D=Oe(ce,a),O=async(t,n)=>{if(!(!i||g.current||T||!n.length)&&!(t===`discard`&&!Ce(i,n))){g.current=!0,h(t),_(null),v(null),w(null);try{let r=await(t===`restore`?Ee:De)(e,i,[...n].sort((e,t)=>t.deletedAt-e.deletedAt).map(e=>e.id)),a=r.filter(e=>!e.ok);v(`${r.length-a.length} item(s) ${t===`restore`?`restored to their original paths`:`permanently deleted`}.`),a.length&&_(`${a.length} item(s) remain in Trash. ${a.slice(0,3).map(e=>`${e.key||`Item`}: ${e.reason===`precondition-failed`||e.reason===`target-exists`?`original path is occupied`:e.message||e.reason}`).join(`; `)}`),ie(new Set)}catch(e){_(e instanceof Error?e.message:String(e))}finally{g.current=!1,h(null),ae()}}},ue=(e,t,n)=>w({x:e,y:t,row:n});return(0,N.jsxs)(`section`,{className:`flex h-full min-h-0 flex-col bg-background`,"aria-label":`Backend Trash`,children:[(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2 border-b px-4 py-3`,children:[(0,N.jsx)(d,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,N.jsx)(b,{items:re(t,e).map((e,t)=>t===2&&i?{...e,label:i}:e),onNavigate:n,className:`basis-48`}),(0,N.jsxs)(`div`,{className:`ml-auto flex max-w-full flex-wrap items-center gap-2`,children:[S.size>0&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`button`,{className:`flex items-center gap-1 rounded border px-2 py-1 text-sm disabled:opacity-50`,disabled:!!u||T,onClick:()=>void O(`restore`,D.filter(e=>S.has(e.id)).flatMap(e=>e.items)),children:[(0,N.jsx)(c,{className:`h-3.5 w-3.5`}),`Restore selected`]}),(0,N.jsxs)(`button`,{className:`flex items-center gap-1 rounded border px-2 py-1 text-sm text-destructive disabled:opacity-50`,disabled:!!u||T,onClick:()=>void O(`discard`,D.filter(e=>S.has(e.id)).flatMap(e=>e.items)),children:[(0,N.jsx)(d,{className:`h-3.5 w-3.5`}),`Delete selected`]})]}),i&&D.length>0&&(0,N.jsxs)(`button`,{className:`flex items-center gap-1 rounded border px-2 py-1 text-sm text-destructive disabled:opacity-50`,disabled:!!u||T,onClick:()=>void O(`discard`,D.flatMap(e=>e.items)),children:[(0,N.jsx)(d,{className:`h-3.5 w-3.5`}),a?`Empty this folder`:`Empty Trash`]}),(0,N.jsx)(`button`,{title:`Refresh Trash`,"aria-label":`Refresh Trash`,className:`rounded p-2 hover:bg-accent`,disabled:!!u||T,onClick:ae,children:(0,N.jsx)(m,{className:`h-4 w-4 ${T?`animate-spin`:``}`})})]})]}),(0,N.jsxs)(`div`,{className:`border-b px-4 py-2 text-xs text-muted-foreground`,children:[`Restore files and folders to their original paths. Existing files are kept.`,E?` Deleted items are kept for ${E} days.`:``]}),te&&(0,N.jsx)(`p`,{role:`status`,className:`px-4 py-2 text-sm`,children:te}),(ee||s?.error)&&(0,N.jsx)(`p`,{role:`alert`,className:`px-4 py-2 text-sm text-destructive`,children:ee||s?.error}),u&&(0,N.jsx)(`p`,{role:`status`,className:`px-4 py-2 text-sm`,children:u===`restore`?`Restoring…`:`Deleting permanently…`}),(0,N.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto p-3`,children:T?(0,N.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`Loading Trash…`}):i?D.length===0?(0,N.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`This Trash folder is empty.`}):(0,N.jsxs)(`table`,{className:`w-full text-left text-sm`,children:[(0,N.jsx)(`thead`,{className:`border-b text-xs text-muted-foreground`,children:(0,N.jsxs)(`tr`,{children:[(0,N.jsx)(`th`,{className:`w-8 p-2`,children:(0,N.jsx)(`input`,{type:`checkbox`,"aria-label":`Select all visible items`,checked:D.length>0&&D.every(e=>S.has(e.id)),onChange:e=>ie(e.target.checked?new Set(D.map(e=>e.id)):new Set)})}),(0,N.jsx)(`th`,{className:`p-2`,children:`Name`}),(0,N.jsx)(`th`,{className:`p-2 max-sm:hidden`,children:`Original path`}),(0,N.jsx)(`th`,{className:`p-2 max-md:hidden`,children:`Deleted`}),(0,N.jsx)(`th`,{className:`p-2`,children:(0,N.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,N.jsx)(`tbody`,{children:D.map(e=>(0,N.jsxs)(`tr`,{className:`border-b border-border/50 hover:bg-accent/50`,onContextMenu:t=>{t.preventDefault(),ue(t.clientX,t.clientY,e)},onDoubleClick:()=>e.navigable&&n(A(i,e.key)),children:[(0,N.jsx)(`td`,{className:`p-2`,children:(0,N.jsx)(`input`,{type:`checkbox`,"aria-label":`Select ${e.name}`,checked:S.has(e.id),disabled:!!u,onChange:t=>ie(n=>{let r=new Set(n);return t.target.checked?r.add(e.id):r.delete(e.id),r})})}),(0,N.jsx)(`td`,{className:`p-2`,children:(0,N.jsxs)(`button`,{className:`flex items-center gap-2 text-left`,onClick:()=>e.navigable&&n(A(i,e.key)),children:[e.directory?(0,N.jsx)(o,{className:`h-4 w-4 shrink-0`}):(0,N.jsx)(f,{className:`h-4 w-4 shrink-0`}),(0,N.jsxs)(`span`,{children:[e.name,e.navigable&&(0,N.jsxs)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:[e.items.length,` items`]})]})]})}),(0,N.jsx)(`td`,{className:`p-2 text-xs text-muted-foreground max-sm:hidden`,children:e.key}),(0,N.jsx)(`td`,{className:`p-2 text-xs text-muted-foreground max-md:hidden`,children:new Date(e.items.reduce((e,t)=>Math.max(e,t.deletedAt),0)).toLocaleString()}),(0,N.jsx)(`td`,{className:`p-2 text-right`,children:(0,N.jsx)(`button`,{title:`Actions for ${e.name}`,"aria-label":`Actions for ${e.name}`,disabled:!!u,className:`rounded p-2 hover:bg-accent`,onClick:t=>ue(t.clientX,t.clientY,e),children:(0,N.jsx)(p,{className:`h-4 w-4`})})})]},e.id))})]}):(0,N.jsxs)(`div`,{className:`grid gap-2 sm:grid-cols-2 lg:grid-cols-3`,children:[le.map(e=>(0,N.jsxs)(`button`,{onClick:()=>n(A(e.address)),className:`flex items-center gap-3 rounded-lg border p-4 text-left hover:bg-accent`,children:[(0,N.jsx)(d,{className:`h-6 w-6 text-muted-foreground`}),(0,N.jsxs)(`span`,{children:[(0,N.jsx)(`span`,{className:`block text-sm font-medium`,children:e.label||e.address}),(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.address})]})]},e.address)),!le.length&&(0,N.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`No file backends are available.`})]})}),C&&(0,N.jsxs)(y,{x:C.x,y:C.y,onClose:()=>w(null),className:`min-w-44 rounded-md border bg-popover p-1 shadow-elevation-3`,children:[C.row.navigable&&(0,N.jsxs)(`button`,{className:`flex w-full items-center gap-2 rounded px-3 py-2 text-sm hover:bg-accent`,onClick:()=>{n(A(i,C.row.key)),w(null)},children:[(0,N.jsx)(o,{className:`h-4 w-4`}),`Open folder`]}),(0,N.jsxs)(`button`,{disabled:!!u,className:`flex w-full items-center gap-2 rounded px-3 py-2 text-sm hover:bg-accent disabled:opacity-50`,onClick:()=>void O(`restore`,C.row.items),children:[(0,N.jsx)(c,{className:`h-4 w-4`}),`Restore `,C.row.directory?`folder`:`file`]}),(0,N.jsxs)(`button`,{disabled:!!u||T,className:`flex w-full items-center gap-2 rounded px-3 py-2 text-sm text-destructive hover:bg-destructive/10 disabled:opacity-50`,onClick:()=>void O(`discard`,C.row.items),children:[(0,N.jsx)(d,{className:`h-4 w-4`}),`Delete permanently`]})]})]})}function dt({workspaceId:e,workspaceName:t}){let[n,r]=(0,M.useState)([]),[i,a]=(0,M.useState)(new Set),o=t=>`${e}:${t.address}:${t.resyncStartedAt||``}`;(0,M.useEffect)(()=>{let t=!1,n=!1,i=!1,a=0,o=new Map,s=new Map,c=(e,t)=>{let n=e.filter(e=>e.address!==t.backend);if(!t.resyncing)return n;let r=e.find(e=>e.address===t.backend)||s.get(t.backend);return[...n,{address:t.backend,config:r?.config,resyncStartedAt:r?.resyncStartedAt||new Date().toISOString(),progress:t.progress??r?.progress}]},l=async()=>{if(n){i=!0;return}n=!0;let u=a;try{let n=await he(e);if(!t){s=new Map(n.map(e=>[e.address,e]));let e=n.filter(e=>e.resyncing);for(let t of o.values())t.version>u&&(e=c(e,t.event));r(e)}}catch{}finally{n=!1,i&&!t&&(i=!1,l())}},u=t=>{t.workspaceId!==e||!t.backend||typeof t.resyncing!=`boolean`||(o.set(t.backend,{version:++a,event:t}),r(e=>c(e,t)))},d=t=>{t.workspaceId===e&&l()};l();let f=v.on(`connect`,l);return v.on(`backend.resync.changed`,u),v.on(`backend.changed`,d),window.addEventListener(`focus`,l),()=>{t=!0,f?.(),v.off(`backend.resync.changed`,u),v.off(`backend.changed`,d),window.removeEventListener(`focus`,l)}},[e]);let c=n.filter(e=>!i.has(o(e)));return c.length?(0,N.jsxs)(`aside`,{"aria-label":`Storage scans for ${t}`,className:`absolute bottom-5 right-5 z-50 w-72 max-w-[calc(100vw-2.5rem)] rounded-lg border bg-popover/95 p-3 text-popover-foreground shadow-lg backdrop-blur`,children:[(0,N.jsxs)(`div`,{role:`status`,className:`mb-2 flex items-center gap-2 text-sm font-medium`,children:[(0,N.jsx)(h,{"aria-hidden":`true`,className:`h-4 w-4 animate-spin`}),(0,N.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,N.jsx)(`span`,{className:`block`,children:`Scanning storage`}),(0,N.jsx)(`span`,{className:`block truncate text-xs font-normal text-muted-foreground`,title:t,children:t})]}),(0,N.jsx)(`button`,{type:`button`,"aria-label":`Hide scan progress for ${t}`,title:`Hide progress; scanning continues`,className:`rounded p-1 hover:bg-muted focus-visible:outline focus-visible:outline-2`,onClick:()=>a(e=>new Set([...e,...c.map(o)])),children:(0,N.jsx)(s,{"aria-hidden":`true`,className:`h-4 w-4`})})]}),(0,N.jsx)(`div`,{className:`max-h-48 space-y-3 overflow-y-auto`,children:c.map(e=>{let{scanned:t=0,total:n=null}=e.progress||{},r=n&&n>0?Math.min(100,Math.round(t/n*100)):null,i=typeof e.config?.label==`string`?e.config.label:e.address;return(0,N.jsxs)(`div`,{children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs`,children:[(0,N.jsx)(`span`,{className:`truncate`,children:i}),(0,N.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:n===null?`${t} files`:`${t} / ${n}`})]}),(0,N.jsx)(`div`,{role:`progressbar`,"aria-label":`Scanning ${i}`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":r??void 0,className:`mt-1.5 h-1 overflow-hidden rounded-full bg-muted`,children:(0,N.jsx)(`div`,{className:`h-full rounded-full bg-primary ${r===null?`animate-pulse`:`transition-all`}`,style:{width:r===null?`35%`:`${r}%`}})})]},e.address)})})]}):null}var ft=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null;function pt(e){return`/${e}`.replace(/\/+/g,`/`).replace(/\/$/,``)||`/`}function mt(e,t,n){if(e==null)return[];if(Array.isArray(e))return e.flatMap(e=>mt(e,t,n));if(typeof e==`string`)return[{tree:null,kind:t,path:pt(e)}];let r=ft(e);if(!r)return[];let i=r.tree??r.treeId,a=typeof i==`string`?n.get(i)??null:null;return[].concat(r.paths??r.path??`/`).filter(e=>typeof e==`string`).map(e=>({tree:a,kind:t,path:pt(e)}))}function ht(e){let t=[],n=e=>{let n=Number(e);Number.isSafeInteger(n)&&n>0&&t.push(n)};return Array.isArray(e.ids)&&e.ids.forEach(n),Array.isArray(e.documentIds)&&e.documentIds.forEach(n),e.id!=null&&n(e.id),e.documentId!=null&&n(e.documentId),t}function gt(e){let t=new Map;for(let n of e)t.set(n.id,n.name),t.set(n.name,n.name);return t}function _t(e,t,n=new Map){let r=ft(t);if(!r)return{targets:[],ids:[],unknown:!0};if(e.startsWith(`tree.`)){let e=typeof r.treeName==`string`?r.treeName:null,t=r.treeType===`directory`||r.treeType===`context`?r.treeType:null,n=r.contextSpec??r.path;return typeof n==`string`?{targets:[{tree:e,kind:t,path:pt(n)}],ids:ht(r),unknown:!1}:{targets:[],ids:[],unknown:!0}}let i=[...mt(r.context,`context`,n),...mt(r.directory,`directory`,n)],a=ft(r.changed);a&&i.push(...mt(a.context,`context`,n),...mt(a.directory,`directory`,n));let o=ht(r);if(i.length)return{targets:i,ids:o,unknown:!1};let s=r.reason===`content`||r.reason===`relations`||r.reason===`moved`;return(e.startsWith(`document.updated`)||e===`document.moved`)&&s&&o.length?{targets:[],ids:o,unknown:!1}:{targets:[],ids:o,unknown:!0}}function vt(e,t){return e===t||e===`/`||t===`/`||e.startsWith(`${t}/`)||t.startsWith(`${e}/`)}function yt(e,t){if(e.kind&&e.kind!==t.kind||e.tree&&e.tree!==t.tree)return!1;if(t.kind===`context`){let n=e=>pt(e).split(`/`).filter(Boolean).map(e=>e.normalize(`NFKC`).trim().replace(/\s+/g,` `).replace(/[^\p{L}\p{N}\p{M} .+_@-]/gu,`_`).replace(/_+/g,`_`).toLowerCase()||`_`),r=new Set(n(e.path)),i=n(t.path);return r.size===0||i.length===0||i.some(e=>r.has(e))}return vt(e.path,t.path)}function bt(e){return _t(`tree.refresh`,{treeName:e?.treeName,path:e?.path||`/`})}function xt(e,t,n){if(e.unknown||e.targets.length&&(t.wholeWorkspace||e.targets.some(e=>yt(e,t))))return!0;if(e.ids.length&&n){let t=n instanceof Set?n:new Set(n);if(e.ids.some(e=>t.has(e)))return!0}return!1}function St(e,t,n={}){return v.request(j,{workspace:e,specs:t,opts:n})}function Ct(e,t,n){return v.request(it,{sessionId:e,label:t,spec:n})}function wt(e){return v.request(at,{sessionId:e})}function P(e,t={}){return v.request(ot,{sessionId:e,...t})}function Tt(e){return v.request(st,{sessionId:e})}function F(e){return v.on(ct,e)}var I=100;function Et({workspaceRef:e,specs:t,opts:n,enabled:r=!0}){let[i,a]=(0,M.useState)([]),[o,s]=(0,M.useState)(0),[c,l]=(0,M.useState)(null),[u,d]=(0,M.useState)(null),f=(0,M.useRef)([]),p=(0,M.useRef)(new Map),m=(0,M.useRef)(null),h=(0,M.useRef)(null),g=(0,M.useRef)(null),ee=(0,M.useRef)({}),_=(0,M.useRef)(null),te=(0,M.useMemo)(()=>JSON.stringify(t),[t]),ne=(0,M.useMemo)(()=>JSON.stringify(n??{}),[n]),y=(0,M.useCallback)(()=>{let e=p.current;a(f.current.map(t=>e.get(t)).filter(Boolean))},[]),re=(0,M.useCallback)(async e=>{let t=h.current;if(!t||e.length===0)return[];let n=[];for(let r=0;r<e.length;r+=I){let i=e.slice(r,r+I),a=await de(t,`/`,[],{ids:i,scope:`workspace`,limit:i.length});n.push(...a.payload||[])}return n},[]),b=(0,M.useCallback)(async(e,t,n)=>{if(t.length>0){let e=new Set(t);f.current=f.current.filter(t=>!e.has(t));for(let t of e)p.current.delete(t)}let r=e.filter(e=>!p.current.has(e)),i=new Set(f.current);for(let t of e)i.has(t)||(f.current.push(t),i.add(t));if(n!==null&&s(n),y(),r.length===0)return;let a=await re(r);for(let e of a)p.current.set(e.id,e);let o=new Set(a.map(e=>e.id)),c=r.filter(e=>!o.has(e));if(c.length>0){let e=new Set(c);f.current=f.current.filter(t=>!e.has(t))}y()},[re,y]),x=(0,M.useCallback)(async(e,t)=>{let n=e??[],r=new Set(n);f.current=f.current.filter(e=>r.has(e));for(let e of p.current.keys())r.has(e)||p.current.delete(e);let i=new Set(f.current),a=n.filter(e=>!i.has(e));await b(a,[],t)},[b]);(0,M.useEffect)(()=>{if(h.current=e??null,!r||!e)return;let t=!1,n=null,i=async()=>{try{let r=await St(e,JSON.parse(te),JSON.parse(ne));if(t){Tt(r.sessionId).catch(()=>{});return}n=r.sessionId,m.current=r.sessionId,l(r.sessionId),d(null),f.current=[],p.current=new Map,await x(r.ids,r.count)}catch(e){if(t)return;d(e instanceof Error?e.message:`Failed to open query session`),l(null),m.current=null}};i();let o=v.on(`connect`,()=>{i()});return()=>{t=!0,o?.();let e=n??m.current;e&&Tt(e).catch(()=>{}),m.current=null,f.current=[],p.current=new Map,l(null),a([]),s(0)}},[e,te,ne,r]),(0,M.useEffect)(()=>{if(!c)return;let e=F(e=>{if(e.sessionId===c){if(g.current!==null){_.current?.(g.current,ee.current);return}e.ids===void 0?b(e.added??[],e.removed??[],e.count):x(e.ids,e.count)}});return()=>{e?.()}},[c,b,x]);let S=(0,M.useCallback)(async()=>{let e=m.current;if(e)try{let t=await wt(e);await x(t.ids,t.count)}catch{}},[x]),ie=(0,M.useCallback)(async(e,t)=>{let n=m.current;if(!n)throw Error(`No open query session`);let r=await Ct(n,e,t);if(g.current!==null){await _.current?.(g.current,ee.current);return}await x(r.ids,r.count)},[x]),C=(0,M.useCallback)(async(e,t={})=>{let n=m.current;if(!n)throw Error(`No open query session`);if(g.current=e,ee.current=t,e===null){await S();return}let r=await P(n,{match:e,...t});for(let e of r.documents)p.current.set(e.id,e);f.current=r.ids,s(r.totalCount),y()},[y,S]);(0,M.useEffect)(()=>{_.current=C},[C]);let w=(0,M.useCallback)(async(e,t,n={})=>{let r=m.current;if(!r)throw Error(`No open query session`);let i=await P(r,{match:t,limit:n.limit??100,...n.mode?{mode:n.mode}:{}});for(let e of i.documents)p.current.set(e.id,e);let a=await Ct(r,e,{ids:i.ids});return await x(a.ids,a.count),i.ids},[x]);return{documents:i,count:o,ready:c!==null,error:u,setCue:ie,resync:S,rank:C,rankAndPin:w}}function Dt({data:e,className:t}){let[n,r]=(0,M.useState)(!0),{rows:i,gapIndex:a,span:o}=(0,M.useMemo)(()=>{let t=[...e.distances].sort((e,t)=>e.distance-t.distance),n=[];for(let e=1;e<t.length;e++)n.push(t[e].distance-t[e-1].distance);let r=n.length?[...n].sort((e,t)=>e-t)[Math.floor(n.length/2)]:0,i=-1,a=0;for(let e=0;e<n.length;e++)n[e]>a&&(a=n[e],i=e+1);let o=i>0&&a>=Math.max(r*4,1e-6),s=t[0]?.distance??0,c=t[t.length-1]?.distance??0;return{rows:t,gapIndex:o?i:-1,span:{first:s,last:c,biggest:a,median:r}}},[e.distances]);if(i.length===0)return(0,N.jsxs)(`div`,{className:g(`rounded-md border border-dashed border-border px-3 py-2 text-xs text-muted-foreground`,t),children:[`Query debug: no image distances for “`,e.query,`”. The dense side returned nothing: either no photos are embedded in this scope, or the image space is not ready.`]});let s=a>0?i[a].distance:null;return(0,N.jsxs)(`div`,{className:g(`rounded-md border border-border bg-muted/30 text-xs`,t),children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>r(e=>!e),className:`flex w-full items-center gap-1.5 px-3 py-2 text-left font-medium`,children:[n?(0,N.jsx)(l,{className:`h-3.5 w-3.5`}):(0,N.jsx)(u,{className:`h-3.5 w-3.5`}),`Query debug`,(0,N.jsxs)(`span`,{className:`font-normal text-muted-foreground`,children:[`: image distances for “`,e.query,`” (`,i.length,` nearest, unfloored)`]})]}),n&&(0,N.jsxs)(`div`,{className:`space-y-2 border-t border-border px-3 py-2`,children:[(0,N.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Best-first cosine distance (0 = identical). Scroll to where the photos stop being relevant and set the image relevance floor just above that value in Settings → Database → Search tuning.`,s===null?(0,N.jsxs)(N.Fragment,{children:[` `,(0,N.jsx)(`span`,{className:`text-amber-600 dark:text-amber-500`,children:`No boundary in this window`}),`; the distances step evenly (typical Δ`,o.median.toFixed(4),`), so there is nothing here to set a floor from. Relevance probably ends further down the list than this window reaches, or the model is not separating this query at all.`]}):(0,N.jsxs)(N.Fragment,{children:[` A jump at `,(0,N.jsx)(`span`,{className:`font-mono`,children:s.toFixed(4)}),` (Δ`,o.biggest.toFixed(4),`, vs typical Δ`,o.median.toFixed(4),`) stands out (a likely boundary).`]})]}),(0,N.jsx)(`div`,{className:`max-h-56 overflow-y-auto`,children:(0,N.jsx)(`table`,{className:`w-full font-mono text-[11px]`,children:(0,N.jsx)(`tbody`,{children:i.map((e,t)=>(0,N.jsxs)(`tr`,{className:g(`border-b border-border/40 last:border-0`,t===a&&`border-t-2 border-t-amber-500/70`),children:[(0,N.jsx)(`td`,{className:`py-0.5 pr-3 text-muted-foreground`,children:t+1}),(0,N.jsxs)(`td`,{className:`py-0.5 pr-3`,children:[`#`,e.id]}),(0,N.jsx)(`td`,{className:`py-0.5 tabular-nums`,children:e.distance.toFixed(4)}),t===a&&(0,N.jsx)(`td`,{className:`py-0.5 pl-2 font-sans text-[10px] text-amber-600 dark:text-amber-500`,children:`← biggest gap`})]},e.id))})})}),(0,N.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Range `,o.first.toFixed(4),` – `,o.last.toFixed(4),` (spread `,(o.last-o.first).toFixed(4),`) over `,i.length,` rows. Absolute values shift with the model and are not comparable across models. After a re-embed every floor has to be picked again. A spread this narrow relative to the range means ranking is doing the work, not distance.`]})]})]})}var Ot=new Map;function L(e,t,n){return`${e}\0${t}\0${n}`}function kt(e,t,n,r,i,a,o=``,s=``,c=`path`){return`${L(e,t,n)}\0${r}\0${i}\0${a}\0${o}\0${s}\0${c}`}function R(e,t,n){let r=L(e,t,n);for(let e of Ot.keys())e.startsWith(r)&&Ot.delete(e)}function At(e,t){let n=`${e}\0`;for(let[e,r]of Ot){if(!e.startsWith(n))continue;let[,i,a,,,,,,o=`path`]=e.split(`\0`);xt(t,{tree:i,kind:E(i),path:a,wholeWorkspace:o.startsWith(`workspace`)},r.documents.map(e=>Number(e.id)))&&Ot.delete(e)}}function jt(e,t){At(t?.workspaceName??e,bt(t))}function Mt(){let{workspaceName:e}=r();return e?(0,N.jsx)(We,{workspaceName:e,children:(0,N.jsx)(z,{})}):null}function z(){let{workspaceName:e,treeName:t}=r(),n=a(),o=i(),{showToast:s,showProgress:c}=ne(),l=new URLSearchParams(n.search),u=(()=>{let e=l.getAll(`q`).map(e=>e.trim()).filter(Boolean);if(e.length>0)return e;let t=(l.get(`search`)||``).trim();return t?[t]:[]})(),[d,f]=(0,M.useState)(null),[p,m]=(0,M.useState)(!0),[h,y]=(0,M.useState)([]),[re,b]=(0,M.useState)(!1),[Ce,k]=(0,M.useState)(0),A=rt(),[Ee,De]=(0,M.useState)(null),[Oe,We]=(0,M.useState)(A);Oe!==A&&(We(A),A||De(null));let[j,it]=(0,M.useState)(`path`),[at,ot]=(0,M.useState)(!1),[st,ct]=(0,M.useState)(null),[ut,ft]=(0,M.useState)(null),[pt,mt]=(0,M.useState)(``),[ht,vt]=(0,M.useState)(!1),[yt,St]=(0,M.useState)(!1),[Ct,wt]=(0,M.useState)(!1),[P,Tt]=(0,M.useState)(null),[F,I]=(0,M.useState)(1),[L,Mt]=(0,M.useState)(50),[z,Nt]=(0,M.useState)(u),[Ft,It]=(0,M.useState)(null),{state:B,saveFilters:Lt,setSort:Rt,setAccentColor:zt,setMapDocuments:Bt}=je(),Vt=B.filters.features.allOf,Ht=B.filters.features.anyOf,Ut=B.filters.features.noneOf,Wt=Fe(B.filters.timeline),Gt=Pe(B.filters.geo),Kt=Le(B.filters.lens,B.filters.geo.includeUnlocated),V=B.filters.lens.ids,qt=[...Wt,...Gt,...Kt],Jt=B.filters.sort??Ie,Yt=JSON.stringify({a:Vt,b:Ht,c:Ut,d:qt,i:V,s:Jt}),Xt=JSON.stringify({a:Vt,b:Ht,c:Ut,d:qt,s:Jt}),H=Re(n.pathname).path,U=t??`context`,W=U===`backends`,[Zt,Qt]=(0,M.useState)([]);(0,M.useEffect)(()=>{!W||!e||he(e).then(Qt).catch(()=>Qt([]))},[W,e]);let $t=W?le(H,Zt):null,[en,tn]=(0,M.useState)(!1),nn=`${U}\0${H}`,[rn,an]=(0,M.useState)(nn);rn!==nn&&(an(nn),tn(!1));let G=l.get(`layer`)===`1`,K=l.get(`layerId`)||null,[q,on]=(0,M.useState)(null),[J,sn]=(0,M.useState)(null),cn=(0,M.useRef)(null);(0,M.useEffect)(()=>{cn.current=J},[J]);let[ln,un]=(0,M.useState)(`left`),[dn,fn]=(0,M.useState)([]),{openM1Drawer:pn,openM2Drawer:mn,goBack:hn}=Ve(),[gn,_n]=(0,M.useState)([]),Y=(0,M.useMemo)(()=>{if(!q||H===`/`||G)return null;let e=H.split(`/`).filter(Boolean),t=q;for(let n of e)if(t=t?.children?.find(e=>e.name===n)??null,!t)return null;return t},[q,H,G]),X=Y?.type===`canvas`?`canvas`:null,vn=(0,M.useRef)(null);(0,M.useEffect)(()=>{!e||!q||G||vn.current===`${e}/${U}`&&(H!==`/`&&!Y||He(e,U,H))},[e,q,G,H,Y,U]);let yn=(0,M.useMemo)(()=>G||j===`workspace`||z.length>0?[]:et(q,H),[q,H,G,j,z]),bn=G?null:H===`/`?q:Y,Z=Ae(),xn=`${U}\0${H}`,[Sn,Cn]=(0,M.useState)(null),wn=Sn?.key===xn?Sn.views:$e(bn?.metadata),Tn=Z?.pinned&&Z.view?[Z.view,...wn.filter(e=>e.id!==Z.view.id)]:wn,En=Z?.pinned&&Z.view?Z.view.id:Sn?.key===xn?Sn.activeId:Tn[0]?.id??Ke.id,Q=Tn.find(e=>e.id===En)??Tn[0]??Ke;(0,M.useEffect)(()=>{Z?.selectView(Q)},[Q,Z]);let Dn=W?void 0:Z?.schema??Ze(Q),On=Dn?[...Vt,Dn]:Vt;tt(Ye({workspace:e??null,treeNameOrId:U,treeType:E(U),path:H,scope:j===`workspace`?`workspace`:G?`layer`:`path`,layerId:G?K:void 0,unfiledOnly:en},{...B.filters,features:{...B.filters.features,allOf:On}},B.geoSelection,z));let kn=e=>{let t=Tn.find(t=>t.id===e);t&&Z?.selectView(t),I(1),fn([]),Cn({key:xn,views:Tn,activeId:e})},An=(t,n)=>{n&&n!==En&&(I(1),fn([]));let r=t.find(e=>e.id===(n??En));r&&Z?.selectView(r),Cn({key:xn,views:t,activeId:n??En}),ce(e,H,{metadata:{...bn?.metadata??{},views:t}},U).catch(()=>{s({title:`View not saved`,description:`Could not persist views to the layer`,variant:`destructive`})})},jn=X===`canvas`&&typeof Y?.querySpec?.query==`string`?Y.querySpec.query:``,Mn=X===`canvas`?{label:Y?.label,description:Y?.description,color:Y?.color}:null,{isPinned:Nn,pin:Pn,unpin:Fn,pins:In}=be(),Ln=d?.name,$=(0,M.useMemo)(()=>Ln&&X===`canvas`&&!G?{workspaceName:Ln,treeName:U,path:H}:null,[Ln,X,G,U,H]),Rn=$?Nn($):!1,zn=Y?.id,Bn=Y?.label,Vn=(0,M.useCallback)(async()=>{if($)try{let e=In.find(e=>e.workspaceName===$.workspaceName&&e.treeName===$.treeName&&e.path===$.path);e?await Fn(e.id):await Pn({...$,layerId:zn,label:Bn})}catch(e){console.error(`Failed to update home pins:`,e)}},[$,In,Pn,Fn,zn,Bn]),Hn=e?`${e}://${H===`/`?``:H.replace(/^\//,``)}`:``,Un=Me(d?.color)||null;(0,M.useEffect)(()=>(zt(Un),()=>zt(null)),[Un,zt]);let Wn=(0,M.useCallback)(async t=>{let n=V;if(t?.anyOf?.length&&Ht.length&&(n=((await ie(e,H,U,{limit:0,anyOf:Ht,ids:V,applyCanvasSpec:!1})).payload||[]).map(e=>e.id),!n.length))return{payload:[],count:0,totalCount:0};let r=await ie(e,H,U,{limit:t?.limit,offset:t?.offset,page:t?.page,sortBy:t?.sortBy,order:t?.order,allOf:[...Vt,...t?.allOf??[]],anyOf:t?.anyOf?.length?t.anyOf:Ht,noneOf:Ut,filters:qt,ids:n,queries:[...z,...t?.queries??[],...t?.q?[t.q]:[]],applyCanvasSpec:!1});return{payload:r.payload||[],count:r.count??void 0,totalCount:r.totalCount??void 0}},[e,H,U,Yt,z]);(0,M.useEffect)(()=>{e&&(async()=>{m(!0);try{let t=await te.get(`${_.workspaces}/${e}`),n;n=t&&`workspace`in t?t.workspace:t,f(n)}catch(t){let n=t instanceof Error?t.message:`Failed to fetch workspace ${e}`;s({title:`Error`,description:n,variant:`destructive`}),f(null)}finally{m(!1)}})()},[e,s]),(0,M.useEffect)(()=>{let e=e=>{let t=e.detail?.workspace;t&&f(e=>e&&(t===e.name||t===e.id)&&e.status!==`active`?{...e,status:`active`}:e)};return window.addEventListener(`workspace:autostarted`,e),()=>window.removeEventListener(`workspace:autostarted`,e)},[]);let Gn=(V?.length??0)>0&&!G&&!(en&&$t)&&z.length<=1,{documents:Kn,count:qn,ready:Jn,setCue:Yn,resync:Xn,rank:Zn}=Et({workspaceRef:e,specs:(0,M.useMemo)(()=>{let e={features:{allOf:On,anyOf:Ht,noneOf:Ut},filters:qt};return j!==`workspace`&&(E(U)===`directory`?e.directory={tree:U,path:H}:e.context=H),[{label:`scope`,spec:e}]},[Xt,H,U,j,Dn]),opts:(0,M.useMemo)(()=>({mode:`live`,debounceMs:150}),[]),enabled:Gn}),Qn=Gn&&Jn,$n=(0,M.useRef)(!1);(0,M.useEffect)(()=>{$n.current=Qn},[Qn]);let er=z.length===1?z[0].trim():``;(0,M.useEffect)(()=>{Jn&&Zn(er?{text:er}:null,{limit:L,offset:(F-1)*L}).catch(()=>{})},[Jn,er,L,F,Zn]);let tr=(V??[]).join(`,`);(0,M.useEffect)(()=>{Jn&&Yn(`lens`,{ids:V??[]}).catch(()=>{})},[Jn,tr,Yn,V]);let nr=Qn?Kn:h,rr=Qn?qn:Ce,ir=(0,M.useRef)(new Set);(0,M.useEffect)(()=>{ir.current=new Set(nr.map(e=>Number(e.id)))},[nr]);let ar=B.geoSelection;(0,M.useEffect)(()=>{Bt(nr,d?.name??null)},[nr,d?.name,Bt]),(0,M.useEffect)(()=>()=>Bt([]),[Bt]);let or=(0,M.useMemo)(()=>ar?nr.filter(e=>Ne(e,ar,B.filters.geo.includeUnlocated)):nr,[nr,ar,B.filters.geo.includeUnlocated]),sr=me(H,On,{treeName:U,treeType:E(U),scope:j,queries:z,anyOf:Ht,noneOf:Ut,filters:qt,ids:V,layerId:G&&K?K:void 0}),cr=JSON.stringify([e,sr]),[lr,ur]=(0,M.useState)(``),[dr,fr]=(0,M.useState)(!1),pr=(0,M.useRef)(!1),mr=re||dr||lr!==cr||Qn||!!ar,hr=(0,M.useRef)(0),gr=(0,M.useRef)(null);(0,M.useEffect)(()=>()=>{hr.current++,gr.current=null},[]);let _r=(0,M.useRef)(``),vr=(0,M.useCallback)(async t=>{if(!e)return;if(we(U,H)){hr.current++,gr.current=null,_r.current=``,y([]),k(0),b(!1);return}if($n.current)return;let n=`${en&&$t?`${j}:unfiled`:j}:${Dn??``}`,r=(V?.length??0)>0,i=kt(e,U,H,F,L,z.join(`␟`),Xt,G&&K?K:``,n),a=r&&i===_r.current;_r.current=i;let o=kt(e,U,H,F,L,z.join(`␟`),Yt,G&&K?K:``,n),c=`${o}\0${A}`;if(t?.silent&&gr.current?.key===c){gr.current.refreshPending=!0;return}let l=++hr.current,u=t?.silent||r||A?void 0:Ot.get(o);u&&(y(u.documents),k(u.totalCount),ur(cr),b(!1)),(t?.silent??(a||!!u))||b(!0);let d={key:c,refreshPending:!1};gr.current=d;try{let t;if(en&&$t)t=await D(e,$t.driver,$t.address,{linked:!1,limit:L,offset:(F-1)*L});else if(G&&K&&j!==`workspace`)t=await pe(e,U,K,{limit:L,page:F,queries:z,allOf:On,anyOf:Ht,noneOf:Ut,filters:qt,ids:V,sortBy:Jt.sortBy||void 0,order:Jt.order});else{let n=E(U);t=await de(e,H,On,{limit:L,page:F,treeName:U,treeType:n,queries:z,anyOf:Ht,noneOf:Ut,filters:qt,ids:V,sortBy:Jt.sortBy||void 0,order:Jt.order,scope:j,debug:A&&z.length>0,debugLimit:200})}let n=t.payload||[],i=t.totalCount||t.count||0;if(!r&&!d.refreshPending&&Ot.set(o,{documents:n,totalCount:i}),l!==hr.current)return;let s=t.debug,c=s?.imageDistances??s?.distances??null;De(c?{query:z[z.length-1]??``,distances:c}:null),y(a?e=>e.length===n.length&&e.every((e,t)=>e.id===n[t].id)?e:n:n),k(i),ur(cr)}catch(e){if(l!==hr.current)return;let t=e instanceof Error?e.message:`Failed to fetch documents`;s({title:`Error`,description:t,variant:`destructive`}),y([]),k(0)}finally{gr.current===d&&(gr.current=null),l===hr.current&&b(!1),l===hr.current&&d.refreshPending&&vr({silent:!0})}},[e,H,U,K,G,F,L,d?.status,z,Yt,j,en,A,Dn]);(0,M.useEffect)(()=>{vr()},[vr]),(0,M.useEffect)(()=>{let t=t=>{let n=t.detail;!n||n.workspaceName!==e||(sn({treeName:n.treeName||`context`,path:ze(n.path||`/`)}),un(`left`))};return window.addEventListener(`workspace:open-to-side`,t),()=>window.removeEventListener(`workspace:open-to-side`,t)},[e,U,H]),(0,M.useEffect)(()=>{let t=t=>{let n=t.detail;if(!(n?.workspaceName&&n.workspaceName!==e)&&(e&&jt(e,n),xt(bt(n),{tree:U,kind:E(U),path:H,wholeWorkspace:j===`workspace`}))){if(e&&R(e,U,H),$n.current){Xn();return}vr({silent:!0})}};return window.addEventListener(`workspace:documents:refresh`,t),()=>window.removeEventListener(`workspace:documents:refresh`,t)},[vr,e,H,U,j,Xn]);let yr=d?.name,br=d?.id;(0,M.useEffect)(()=>{if(!e||!yr&&!br)return;let t=[yr,br].filter(Boolean).map(e=>`workspace:${e}`),n=()=>t.forEach(e=>v.emit(`subscribe`,{channel:e}));n();let r=v.on(`connect`,n),i=new Map,a=!1,o=()=>{x(e).then(e=>{a||(i=gt(e))}).catch(()=>{})};o();let s=null,c=0,l=!1,u=null,d=()=>{if(s=null,c=Date.now(),u){let{treeName:t,path:n}=u;u=null,window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e,treeName:t,path:n}}))}if(l){if(l=!1,$n.current){Xn();return}vr({silent:!0})}},f=t=>n=>{(t.startsWith(`tree.created`)||t.startsWith(`tree.renamed`))&&o();let r=_t(t,n,i);At(e,r);let a={tree:U,kind:E(U),path:H,wholeWorkspace:j===`workspace`},f=cn.current;f&&xt(r,{tree:f.treeName,kind:E(f.treeName),path:f.path})&&(u=f),xt(r,a,ir.current)&&(l=!0),!(!l&&!u)&&(s||=setTimeout(d,Math.max(200,c+1500-Date.now())))},p=[`document.inserted`,`document.inserted.batch`,`document.updated`,`document.moved`,`document.removed`,`document.deleted`,`document.removed.batch`,`document.deleted.batch`,`document.linked`,`document.unlinked`,`document.linked.batch`,`document.unlinked.batch`,`tree.document.inserted`,`tree.document.inserted.batch`,`tree.document.removed`,`tree.document.removed.batch`,`tree.document.deleted`,`tree.document.deleted.batch`,`tree.layer.merged`,`tree.layer.subtracted`,`tree.created`,`tree.renamed`].map(e=>[e,f(e)]);return p.forEach(([e,t])=>v.on(e,t)),()=>{a=!0,s&&clearTimeout(s),r?.(),p.forEach(([e,t])=>v.off(e,t))}},[e,br,yr,U,H,j,vr,Xn]);let xr=`${H}\0${U}\0${K??``}\0${j}`,[Sr,Cr]=(0,M.useState)(xr);Sr!==xr&&(Cr(xr),I(1),It(null));let wr=`${H}\0${U}\0${K??``}`,[Tr,Er]=(0,M.useState)(wr);Tr!==wr&&(Er(wr),it(`path`));let Dr=(e,t)=>{let n=e===`/`?`canvas`:e.split(`/`).pop()||`canvas`;mt(n),ft({parentPath:e,captureView:t})},Or=l.get(`createCanvas`)===`1`,[kr,Ar]=(0,M.useState)(!1);kr!==Or&&(Ar(Or),Or&&Dr(H,!1)),(0,M.useEffect)(()=>{if(!Or)return;let e=new URLSearchParams(n.search);e.delete(`createCanvas`);let t=e.toString();o(`${n.pathname}${t?`?${t}`:``}${n.hash}`,{replace:!0})},[Or,H]);let jr=(0,M.useCallback)(e=>{let t=new URLSearchParams(n.search);t.delete(`q`),t.delete(`search`);for(let n of e)t.append(`q`,n);let r=t.toString();o(`${n.pathname}${r?`?${r}`:``}${n.hash}`)},[n.pathname,n.search,n.hash,o]),Mr=JSON.stringify([l.has(`q`),...u]),[Nr,Pr]=(0,M.useState)(Mr);Nr!==Mr&&(Pr(Mr),Nt(u),I(1));let Fr=`${Mr}\0${X??``}\0${jn}\0${H}\0${Ft??``}`,[Ir,Lr]=(0,M.useState)(Fr);Ir!==Fr&&(Lr(Fr),l.has(`q`)||u.length>0||X!==`canvas`||Ft===H||(Nt(jn?[jn]:[]),I(1)));let Rr=(0,M.useCallback)(e=>{let t=e.trim();t&&(It(null),Nt(e=>{if(e.includes(t))return e;let n=[...e,t];return jr(n),I(1),n}))},[jr,It,Nt,I]),zr=(0,M.useCallback)(e=>{Nt(t=>{let n=e<0?[]:t.filter((t,n)=>n!==e);return n.length===0&&It(H),jr(n),I(1),n})},[jr,H,It,Nt,I]),Br=z.join(` `).trim(),Vr=!!B.activeContextType&&(B.isDirty||Br!==(X===`canvas`?jn:B.savedSearchQuery||``));!e&&q!==null&&on(null),(0,M.useEffect)(()=>{let t=!1;if(!e)return;let n=0,r=!1,i=(i=!1)=>{let a=++n;i&&ue(e,U),oe(e,U).then(i=>{!t&&a===n&&(r=!0,vn.current=`${e}/${U}`,on(i))}).catch(()=>{!t&&a===n&&!r&&on(null)})};i(!1);let a=t=>{let n=t.detail;n?.workspaceName&&n.workspaceName!==e||n?.treeName&&n.treeName!==U||i(!n?.cacheInvalidated)};window.addEventListener(`workspace:tree:refresh`,a);let o=Te(e,br);return()=>{t=!0,o(),window.removeEventListener(`workspace:tree:refresh`,a)}},[e,U,br]),!(e&&X===`canvas`&&!G)&&P!==null&&Tt(null),(0,M.useEffect)(()=>{let t=!1;if(!(!e||X!==`canvas`||G))return se(e,H,U).then(e=>{t||Tt(e)}).catch(()=>{t||Tt(null)}),()=>{t=!0}},[e,H,U,X,G]);let Hr=async()=>{if(d){ot(!0);try{let t=await fe(e||d.id);f(t),s({title:`Success`,description:`Workspace started successfully`}),window.dispatchEvent(new CustomEvent(`workspaces:refresh`))}catch(e){let t=e instanceof Error?e.message:`Failed to start workspace`;s({title:`Error`,description:t,variant:`destructive`})}finally{ot(!1)}}},Ur=async t=>{if(!d)return;let n=c({title:`Removing…`,description:`Document from "${H}"`});try{await C(e||d.id,[t],H,[],U,Zr,{trashIfOrphaned:!0}),R(e||d.id,U,H),y(e=>e.filter(e=>e.id!==t)),k(e=>Math.max(0,e-1)),n.done({title:`Success`,description:`Document removed from workspace path.`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to remove document`,variant:`destructive`})}},Wr=async t=>{if(!d)return;let n=c({title:`Deleting…`,description:`Document from "${H}"`});try{await ge(e||d.id,[t],H,[],U,Zr),R(e||d.id,U,H),y(e=>e.filter(e=>e.id!==t)),k(e=>Math.max(0,e-1)),n.done({title:`Success`,description:`Document deleted.`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to delete document`,variant:`destructive`})}},Gr=async t=>{if(!d)return;let n=c({title:`Removing…`,description:`${t.length} document(s) from "${H}"`});try{await C(e||d.id,t,H,[],U,Zr,{trashIfOrphaned:!0}),R(e||d.id,U,H),y(e=>e.filter(e=>!t.includes(e.id))),k(e=>Math.max(0,e-t.length)),n.done({title:`Success`,description:`${t.length} document(s) removed.`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to remove documents`,variant:`destructive`})}},Kr=async t=>{if(!d)return;let n=c({title:`Deleting…`,description:`${t.length} document(s)`});try{await ge(e||d.id,t,H,[],U,Zr),R(e||d.id,U,H),y(e=>e.filter(e=>!t.includes(e.id))),k(e=>Math.max(0,e-t.length)),n.done({title:`Success`,description:`${t.length} document(s) deleted.`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to delete documents`,variant:`destructive`})}},qr=async t=>{if(!d)return;let n=c({title:`Destroying…`,description:`Document and its backend copies`});try{let r=await S(e||d.id,[t]);if(r.failed?.length){n.fail({title:`Error`,description:r.failed[0].reason,variant:`destructive`});return}y(e=>e.filter(e=>e.id!==t)),k(e=>Math.max(0,e-1)),n.done({title:`Destroyed`,description:`Document removed from all backends.`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to destroy document`,variant:`destructive`})}},Jr=async t=>{if(!d)return;let n=c({title:`Destroying…`,description:`${t.length} document(s) and their backend copies`});try{let r=await S(e||d.id,t),i=new Set(r.successful?.filter(e=>e.docDeleted).map(e=>e.id)??[]);y(e=>e.filter(e=>!i.has(e.id))),k(e=>Math.max(0,e-i.size));let a=[r.successful?.length?`${r.successful.length} destroyed`:null,r.failed?.length?`${r.failed.length} failed`:null].filter(Boolean).join(`, `);r.failed?.length?n.fail({title:`Destroy incomplete`,description:a,variant:`destructive`}):n.done({title:`Destroyed`,description:a||`No documents destroyed`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to destroy documents`,variant:`destructive`})}},Yr=e=>{ct({documentIds:e,operation:`copy`,sourcePath:H,sourceTreeName:U}),window.dispatchEvent(new CustomEvent(`documents:clipboard`,{detail:{documentIds:e,operation:`copy`}})),s({title:`Copied`,description:`${e.length} document(s) copied to clipboard`})},Xr=e=>{ct({documentIds:e,operation:`cut`,sourcePath:H,sourceTreeName:U}),window.dispatchEvent(new CustomEvent(`documents:clipboard`,{detail:{documentIds:e,operation:`cut`}})),s({title:`Cut`,description:`${e.length} document(s) cut to clipboard`})},Zr=E(U),Qr=async(t,n,r={})=>{if(!e)return!1;let i=r.targetTreeName??U,a=r.targetTreeType??Zr,o=r.move??st?.operation===`cut`,s=c({title:o?`Moving…`:`Pasting…`,description:`${n.length} document(s) → "${t}"`});try{let c=await ae(e,t,n,i,a);if(c){R(e,i,t);let a=r.sourceTreeName||st?.sourceTreeName,c=r.sourcePath||st?.sourcePath;if((r.move??st?.operation===`cut`)&&c&&a){let t=E(a);await C(e,n,c,[],a,t),R(e,a,c),window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e,path:c,treeName:a}}))}s.done({title:`Success`,description:`${n.length} document(s) ${o?`moved`:`pasted`} to "${t}"`}),ct(null),window.dispatchEvent(new CustomEvent(`documents:clipboard`,{detail:null}));let l=performance.now();await vr(),console.info(`[paste] list refresh ${Math.round(performance.now()-l)} ms`),window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e,path:t,treeName:i}}))}else s.done();return c}catch(e){return s.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to paste documents`,variant:`destructive`}),!1}},$r=async(t,n)=>{if(!e)return!1;try{let r=(await O(e,n,t,U,Zr)).length>0;return r&&(ke(e,U,n),s({title:`Success`,description:`Imported ${t.length} document(s) to "${n}"`})),r}catch(e){return s({title:`Error`,description:e instanceof Error?e.message:`Failed to import documents`,variant:`destructive`}),!1}},ei=async()=>{if(!d||rr===0||mr||pr.current||window.prompt(`Type PURGE to permanently delete all ${rr} matching documents across all pages.`)!==`PURGE`)return;pr.current=!0,fr(!0);let t=c({title:`Purging…`,description:`${rr} matching document(s)`});try{let n=await ye(e||d.id,sr,rr);n.deleted===n.requested?t.done({title:`Success`,description:`${n.deleted} document(s) purged.`}):t.fail({title:`Purge incomplete`,description:`${n.deleted} of ${n.requested} document(s) purged. Refresh and review the remaining results before retrying.`})}catch(e){t.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to purge documents`,variant:`destructive`})}finally{R(e||d.id,U,H),await vr({silent:!0}),pr.current=!1,fr(!1)}},ti=()=>Dr(H,!0),ni=async()=>{if(!(!e||!ut||!pt.trim())){vt(!0);try{let t=pt.trim(),n=ut.parentPath,r=n===`/`?`/${t}`:`${n}/${t}`,i={...B.filters,features:{...B.filters.features,allOf:On}};await ve(e,r,U,ut.captureView?{metadata:{toolbox:i},querySpec:{features:i.features,filters:[...Fe(B.filters.timeline),...Pe(B.filters.geo)],query:Br||void 0,sort:B.filters.sort?.sortBy?B.filters.sort:null}}:{}),ft(null),ue(e,U);try{let t=await oe(e,U,{force:!0});on(t)}catch{}window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e}})),o(Be(e,r,U))}catch(e){s({title:`Error`,description:e instanceof Error?e.message:`Failed to create canvas`,variant:`destructive`})}finally{vt(!1)}}},ri=async()=>{if(!(!e||X!==`canvas`)){St(!0);try{let t=P||await T(e,H,U);Tt(t);let n=`${window.location.origin}${t.url}`;await navigator.clipboard?.writeText(n),s({title:`Public canvas link copied`,description:n})}catch(e){s({title:`Error`,description:e instanceof Error?e.message:`Failed to share canvas`,variant:`destructive`})}finally{St(!1)}}},ii=async()=>{if(P){St(!0);try{await _e(P.code),Tt(null),window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e,treeName:U}})),s({title:`Canvas unshared`,description:`The public link no longer works.`})}catch(e){s({title:`Error`,description:e instanceof Error?e.message:`Failed to unshare canvas`,variant:`destructive`})}finally{St(!1)}}},ai=async()=>{if(!e||X!==`canvas`||H===`/`)return;let t=Mn?.label||H.split(`/`).pop()||`canvas`,n=P?` Its public link will stop working.`:``;if(window.confirm(`Delete canvas "${t}"? This cannot be undone.${n}`)){wt(!0);try{if(P)await _e(P.code),Tt(null);else if(Y?.locked){s({title:`Canvas is locked`,description:`Unlock it before deleting.`,variant:`destructive`});return}await w(e,H,!1,U);let n=H.split(`/`).filter(Boolean);n.pop();let r=n.length?`/${n.join(`/`)}`:`/`;window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e,treeName:U}})),o(Be(e,r,U)),s({title:`Canvas deleted`,description:`"${t}" was removed.`})}catch(e){s({title:`Error`,description:e instanceof Error?e.message:`Failed to delete canvas`,variant:`destructive`})}finally{wt(!1)}}},oi=(0,M.useCallback)(async t=>{if(!e||!J)return;let n={treeName:U,path:H},r=ln===`left`?n:J,i=ln===`left`?J:n,a=ln===`left`?dn:gn;if(a.length===0){s({title:`Nothing selected`,description:`Tick documents in the focused pane first.`});return}let o=E(i.treeName),l=c({title:t?`Moving…`:`Copying…`,description:`${a.length} document(s) → "${i.path}"`});try{if(!await ae(e,i.path,a,i.treeName,o)){l.done();return}if(R(e,i.treeName,i.path),t){let t=E(r.treeName);await C(e,a,r.path,[],r.treeName,t),R(e,r.treeName,r.path)}[r,i].forEach(t=>window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e,path:t.path,treeName:t.treeName}}))),l.done({title:t?`Moved`:`Copied`,description:`${a.length} document(s) → "${i.path}"`})}catch(e){l.fail({title:`Error`,description:e instanceof Error?e.message:`Transfer failed`,variant:`destructive`})}},[e,J,ln,U,H,dn,gn,s,c]);if((0,M.useEffect)(()=>{if(!J)return;let e=e=>{if(e.key!==`F5`&&e.key!==`F6`)return;let t=e.target;t.tagName!==`INPUT`&&t.tagName!==`TEXTAREA`&&(e.preventDefault(),oi(e.key===`F6`))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[J,oi]),p)return(0,N.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,N.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,N.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-b-2 border-primary mx-auto`}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading workspace...`})]})});if(!d)return(0,N.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:`Workspace not found.`});let si=X===`canvas`&&!G&&!!Y,ci=!si&&!W&&bn?(0,N.jsx)(Je,{views:Tn,activeId:En,onSelect:kn,onSave:An,accentColor:Me(d.color),onOpenToSide:e=>{sn({treeName:U,path:H,viewId:e}),un(`right`)}}):void 0,li=$t||d.status!==`active`?(0,N.jsxs)(N.Fragment,{children:[$t&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>{tn(!en),I(1)},"aria-pressed":en,className:g(`min-h-10 rounded-md border px-2 text-xs`,en&&`bg-warning/15 text-warning`),children:`Unfiled only`}),d.status!==`active`&&(0,N.jsx)(`button`,{type:`button`,onClick:Hr,disabled:at,className:`min-h-10 rounded-md border px-2 text-xs`,children:at?`Starting…`:`Start`})]}):void 0,ui=we(U,H)?H===`/Trash`?(0,N.jsx)(`div`,{className:`h-full overflow-auto p-4`,children:(0,N.jsx)(nt,{workspaceName:e||d.id})}):(0,N.jsx)(lt,{workspace:e||d.id,path:H,onNavigate:t=>o(Be(e,t,`backends`))},e):(0,N.jsx)(qe,{navigationTabs:ci,navigationActions:li,onBack:hn,accentColor:Me(d.color),urlType:G?E(U)===`directory`?`${U}-layer`:`context-layer`:X===`canvas`?`canvas`:E(U)===`directory`?U:`context`,urlDisplay:Hn,contextPath:H,treeName:U,workspaceId:e||d.id,workspaceLabel:d.label||d.name,workspaceIcon:d.icon,documentSchema:Dn,documents:or,isLoading:re,totalCount:rr,currentPage:F,pageSize:L,onPageChange:I,onPageSizeChange:e=>{Mt(e),I(1)},onRemoveDocument:H===`/`?void 0:Ur,onDeleteDocument:Wr,onDestroyDocument:qr,onRemoveDocuments:H===`/`?void 0:Gr,onDeleteDocuments:Kr,onDestroyDocuments:Jr,onCopyDocuments:Yr,onCutDocuments:Xr,onPasteDocuments:W?void 0:Qr,onImportDocuments:W?void 0:$r,onSelectionChange:fn,onBrowseTree:()=>mn(`workspaces`,`detail`,e??null),onBrowseWorkspaces:()=>pn(`workspaces`),onNavigatePath:t=>o(Be(e,t,U)),folders:yn,onOpenFolder:t=>o(Be(e,ze(t),U)),scope:j,onScopeChange:it,pastedDocumentIds:st?.documentIds,linkTree:q,onPurgeDocuments:W?void 0:ei,disablePurgeDocuments:mr,canvasInfo:Mn??void 0,isCanvasPinned:Rn,onTogglePinCanvas:$?Vn:void 0,onSaveAsCanvas:q&&X!==`canvas`&&!G&&!W?ti:void 0,onShareCanvas:X===`canvas`&&!G?ri:void 0,onUnshareCanvas:P?ii:void 0,onDeleteCanvas:X===`canvas`&&!G?ai:void 0,isSharingCanvas:yt,isDeletingCanvas:Ct,isCanvasShared:!!P,isCanvasLocked:!!Y?.locked,backendSearchQueries:z,onBackendSearch:Rr,serverSort:B.filters.sort,onServerSortChange:Rt,onRemoveBackendQuery:zr,canSaveChanges:Vr,isSavingChanges:B.isSaving,onSaveChanges:Lt,contentBanner:A&&Ee?(0,N.jsx)(Dt,{data:Ee,className:`mb-3`}):null,children:si&&Y?(0,N.jsx)(xe,{workspaceId:e||d.id,treeName:U,path:H,layerId:Y.id,querySpec:Y.querySpec,metadata:Y.metadata,isLocked:!!Y.locked,fetchDocuments:B.isDirty?Wn:void 0}):!W&&Q.kind===`columns`?(0,N.jsx)(Qe,{documents:or,workspaceId:e||d.id,columns:Q.columns??[],onColumnsChange:e=>An(Tn.map(t=>t.id===Q.id?{...t,columns:e}:t))}):!W&&Q.kind===`app`&&Q.app&&Q.app!==`notes`?(0,N.jsx)(Xe,{app:Q.app,workspaceId:e||d.id,treeName:U,path:H}):null});return(0,N.jsxs)(Ue,{workspaceId:e||d.id,treeName:U,path:H,headerOnly:!0,className:`relative flex flex-col h-full min-h-0`,children:[(0,N.jsx)(dt,{workspaceId:d.id,workspaceName:d.label||d.name},d.id),we(U,H)&&(0,N.jsx)(Se,{workspace:d.label||d.name,workspaceIcon:d.icon,tree:U,path:H,onBack:hn,onBrowseTree:()=>mn(`workspaces`,`detail`,e||d.id),onBrowseWorkspaces:()=>pn(`workspaces`),onNavigatePath:t=>o(Be(e,t,U)),accentColor:Me(d.color)}),ut&&(0,N.jsx)(`div`,{className:`shrink-0 px-2 pt-2`,children:(0,N.jsx)(Ge,{title:`New canvas`,onClose:()=>ft(null),children:(0,N.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),ni()},className:`space-y-4`,children:[(0,N.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`label`,{htmlFor:`canvas-name`,className:`mb-1 block text-sm font-medium`,children:`Name`}),(0,N.jsx)(`input`,{id:`canvas-name`,className:`w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary`,placeholder:`Canvas name…`,value:pt,onChange:e=>mt(e.target.value),onKeyDown:e=>{e.key===`Escape`&&ft(null)},autoFocus:!0})]}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`Parent path`}),(0,N.jsx)(`div`,{className:`flex h-10 items-center rounded-md bg-muted px-3 font-mono text-sm text-muted-foreground`,children:ut.parentPath===`/`?`/`:ut.parentPath})]})]}),(0,N.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,N.jsx)(`input`,{type:`checkbox`,className:`mt-0.5`,checked:ut.captureView,onChange:e=>ft({...ut,captureView:e.target.checked})}),(0,N.jsxs)(`span`,{children:[`Capture the current view`,(0,N.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:`Freezes the active filters, search and sort into the canvas.`})]})]}),(0,N.jsxs)(`div`,{className:`flex gap-2`,children:[(0,N.jsx)(ee,{type:`submit`,disabled:!pt.trim()||ht,children:ht?`Creating…`:`Create canvas`}),(0,N.jsx)(ee,{type:`button`,variant:`outline`,onClick:()=>ft(null),children:`Cancel`})]})]})})}),(0,N.jsxs)(`div`,{"data-canvas-panes":!0,className:`flex-1 min-h-0 flex gap-2`,children:[(0,N.jsx)(`div`,{"data-canvas-pane":!0,className:g(`flex-1 min-w-0 bg-background overflow-hidden`,J&&(ln===`left`?`ring-2 ring-primary`:`ring-1 ring-primary/20`)),onMouseDown:e=>{e.target.closest(`button,input,textarea,select,a`)||un(`left`)},children:ui}),J&&e&&(0,N.jsx)(Pt,{workspaceName:e,workspaceLabel:d.label||d.name,workspaceIcon:d.icon,pane:J,isFocused:ln===`right`,clipboard:st,setClipboard:ct,onFocus:()=>un(`right`),onSelectionChange:_n,onNavigate:e=>sn(t=>t&&{...t,path:e,viewId:void 0}),onClose:()=>{sn(null),un(`left`),_n([])}})]})]})}function Nt(e,t){if(!e||t===`/`)return e;let n=e;for(let e of t.split(`/`).filter(Boolean))if(n=n?.children?.find(t=>t.name===e)??null,!n)return null;return n}function Pt({workspaceName:e,workspaceLabel:t,workspaceIcon:n,pane:r,isFocused:i=!1,clipboard:a,setClipboard:o,onFocus:s,onSelectionChange:c,onNavigate:l,onClose:u}){let{openM1Drawer:d,openM2Drawer:f}=Ve(),{showToast:p,showProgress:m}=ne(),[h,ee]=(0,M.useState)(null),[_,te]=(0,M.useState)([]),[v,y]=(0,M.useState)(!1),[re,b]=(0,M.useState)(0),[x,ie]=(0,M.useState)(1),[w,se]=(0,M.useState)(50),T=E(r.treeName),ce=Nt(h,r.path),le=ce?.type===`canvas`,D=(0,M.useMemo)(()=>et(h,r.path),[h,r.path]),O=r.viewId?$e(ce?.metadata).find(e=>e.id===r.viewId)??null:null,fe=`${e}://${r.path===`/`?``:r.path.replace(/^\//,``)}`,pe=Ze(O),me=(0,M.useCallback)(async()=>{if(we(r.treeName,r.path)){te([]),b(0),y(!1);return}let t=kt(e,r.treeName,r.path,x,w,``,pe??``),n=Ot.get(t);if(n){te(n.documents),b(n.totalCount);return}y(!0);try{let n=await de(e,r.path,pe?[pe]:[],{limit:w,page:x,treeName:r.treeName,treeType:T}),i=n.payload||[],a=n.totalCount||n.count||0;te(i),b(a),Ot.set(t,{documents:i,totalCount:a})}catch(e){p({title:`Error`,description:e instanceof Error?e.message:`Failed to fetch side pane documents`,variant:`destructive`}),te([]),b(0)}finally{y(!1)}},[e,r.path,r.treeName,T,w,x,p,pe]);(0,M.useEffect)(()=>{let t=!1,n=0,i=!1,a=(a=!1)=>{let o=++n;a&&ue(e,r.treeName),oe(e,r.treeName).then(e=>{!t&&o===n&&(i=!0,ee(e))}).catch(()=>{!t&&o===n&&!i&&ee(null)})};a(!1);let o=t=>{let n=t.detail;n?.workspaceName&&n.workspaceName!==e||n?.treeName&&n.treeName!==r.treeName||a(!n?.cacheInvalidated)};return window.addEventListener(`workspace:tree:refresh`,o),()=>{t=!0,window.removeEventListener(`workspace:tree:refresh`,o)}},[e,r.treeName]),(0,M.useEffect)(()=>{me()},[me]),(0,M.useEffect)(()=>{let t=t=>{let n=t.detail;n?.workspaceName&&n.workspaceName!==e||(jt(e,n),xt(bt(n),{tree:r.treeName,kind:E(r.treeName),path:r.path})&&(R(e,r.treeName,r.path),me()))};return window.addEventListener(`workspace:documents:refresh`,t),()=>window.removeEventListener(`workspace:documents:refresh`,t)},[me,e,r.treeName,r.path]);let he=(0,M.useCallback)(async(t,n,i={})=>{let s=i.targetTreeName??r.treeName,c=i.targetTreeType??T,l=i.move??a?.operation===`cut`,u=m({title:l?`Moving…`:`Pasting…`,description:`${n.length} document(s) → "${t}"`});try{let r=await ae(e,t,n,s,c);if(r){R(e,s,t);let r=i.sourcePath||a?.sourcePath,c=i.sourceTreeName||a?.sourceTreeName;if((i.move??a?.operation===`cut`)&&r&&c){let t=E(c);await C(e,n,r,[],c,t),R(e,c,r),window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e,path:r,treeName:c}}))}u.done({title:`Success`,description:`${n.length} document(s) ${l?`moved`:`pasted`} to "${t}"`}),o(null),await me(),window.dispatchEvent(new CustomEvent(`workspace:documents:refresh`,{detail:{workspaceName:e,path:t,treeName:s}}))}else u.done();return r}catch(e){return u.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to paste documents`,variant:`destructive`}),!1}},[e,r.treeName,T,me,m,a,o]),_e=(0,M.useCallback)(()=>{R(e,r.treeName,r.path),me()},[e,r.treeName,r.path,me]),ve=(0,M.useCallback)(async t=>{let n=m({title:`Removing…`,description:`${t.length} document(s) from "${r.path}"`});try{await C(e,t,r.path,[],r.treeName,T),_e(),n.done({title:`Removed`,description:`${t.length} document(s) removed from "${r.path}"`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to remove documents`,variant:`destructive`})}},[e,r.path,r.treeName,T,_e,m]),ye=(0,M.useCallback)(async t=>{let n=m({title:`Deleting…`,description:`${t.length} document(s)`});try{await ge(e,t,r.path,[],r.treeName,T),_e(),n.done({title:`Deleted`,description:`${t.length} document(s) deleted.`})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to delete documents`,variant:`destructive`})}},[e,r.path,r.treeName,T,_e,m]),be=(0,M.useCallback)(async t=>{let n=m({title:`Destroying…`,description:`${t.length} document(s) and their backend copies`});try{let r=await S(e,t);if(r.failed?.length&&!r.successful?.length){n.fail({title:`Error`,description:r.failed[0].reason,variant:`destructive`});return}_e();let i=`${r.successful?.length??0} document(s) destroyed${r.failed?.length?` · ${r.failed.length} failed`:``}.`;r.failed?.length?n.fail({title:`Destroy incomplete`,description:i,variant:`destructive`}):n.done({title:`Destroyed`,description:i})}catch(e){n.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to destroy documents`,variant:`destructive`})}},[e,_e,m]);return(0,N.jsxs)(`div`,{className:g(`relative flex-1 min-w-0 rounded-(--sheet-radius) border bg-background overflow-hidden`,i?`ring-2 ring-primary`:`ring-1 ring-primary/20`),onMouseDown:e=>{e.target.closest(`button,input,textarea,select,a`)||s()},children:[u&&(0,N.jsx)(`button`,{type:`button`,onClick:u,className:`absolute right-2 top-2 z-10 px-2 py-1 text-xs rounded-md border bg-background/90 hover:bg-accent`,children:`Close`}),we(r.treeName,r.path)?r.path===`/Trash`?(0,N.jsx)(`div`,{className:`h-full overflow-auto p-4`,children:(0,N.jsx)(nt,{workspaceName:e})}):(0,N.jsx)(lt,{workspace:e,path:r.path,onNavigate:l||(()=>{})}):(0,N.jsx)(qe,{frameContent:!1,onBrowseWorkspaces:()=>d(`workspaces`),onBrowseTree:()=>f(`workspaces`,`detail`,e),urlType:le?`canvas`:T===`directory`?r.treeName:`context`,urlDisplay:fe,contextPath:r.path,treeName:r.treeName,workspaceId:e,workspaceLabel:t,workspaceIcon:n,documentSchema:pe,documents:_,isLoading:v,totalCount:re,currentPage:x,pageSize:w,onPageChange:ie,onPageSizeChange:e=>{se(e),ie(1)},onRemoveDocument:r.path===`/`?void 0:e=>ve([e]),onRemoveDocuments:r.path===`/`?void 0:ve,onDeleteDocument:e=>ye([e]),onDeleteDocuments:ye,onDestroyDocument:e=>be([e]),onDestroyDocuments:be,onCopyDocuments:e=>{o({documentIds:e,operation:`copy`,sourcePath:r.path,sourceTreeName:r.treeName}),window.dispatchEvent(new CustomEvent(`documents:clipboard`,{detail:{documentIds:e,operation:`copy`}}))},onCutDocuments:e=>{o({documentIds:e,operation:`cut`,sourcePath:r.path,sourceTreeName:r.treeName}),window.dispatchEvent(new CustomEvent(`documents:clipboard`,{detail:{documentIds:e,operation:`cut`}}))},onPasteDocuments:r.treeName===`backends`?void 0:he,onSelectionChange:c,pastedDocumentIds:a?.documentIds,linkTree:h,folders:D,onOpenFolder:l,onNavigatePath:l,canvasInfo:le?{label:ce?.label,description:ce?.description,color:ce?.color}:void 0,children:O?.kind===`columns`?(0,N.jsx)(Qe,{documents:_,workspaceId:e,columns:O.columns??[],onColumnsChange:()=>{},readOnly:!0}):O?.kind===`app`&&O.app&&O.app!==`notes`?(0,N.jsx)(Xe,{app:O.app,workspaceId:e,treeName:r.treeName,path:r.path}):null})]})}export{Mt as default};