@augmentd-labs/canvas-web 2.26.36 → 2.26.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{CalendarApplet-CI650A38.js → CalendarApplet-7wqNCpcs.js} +1 -1
- package/dist/assets/{FiltersApplet-Ia3RTHqt.js → FiltersApplet-Dh4SUfjN.js} +1 -1
- package/dist/assets/HomeFab-W7y591CD.js +3 -0
- package/dist/assets/{LensApplet-DxqrTTvu.js → LensApplet-CddpZXRw.js} +1 -1
- package/dist/assets/{NotesApplet-ALnJx1R5.js → NotesApplet-Cyuirnp1.js} +1 -1
- package/dist/assets/{_agentId_-DiuSEd4O.js → _agentId_-Dy7lgkJK.js} +0 -0
- package/dist/assets/_contextId_-BBpL3f_T.js +1 -0
- package/dist/assets/_workspaceName_-CU-hpvv7.js +1 -0
- package/dist/assets/{about-CIz-eZ-8.js → about-Cns4GXCX.js} +1 -1
- package/dist/assets/{add-Cf7qavr8.js → add-jGjbB0x1.js} +1 -1
- package/dist/assets/{agents-t82sp0lw.js → agents-DsaNiZJc.js} +1 -1
- package/dist/assets/{appearance-Ba1GYZ_J.js → appearance-C1xkguK7.js} +1 -1
- package/dist/assets/{apps-uPsYOOCl.js → apps-BCy4q37-.js} +1 -1
- package/dist/assets/{home-CsrwkvZX.js → home-C8Wq8hsp.js} +1 -1
- package/dist/assets/index-Cp75myNf.js +16 -0
- package/dist/assets/index-_0FSwEvG.css +2 -0
- package/dist/assets/{key-bindings-CnvBrNMZ.js → key-bindings-CA_ePKGA.js} +1 -1
- package/dist/assets/{registry-9MElXU-U.js → registry-QDfCL8gg.js} +2 -2
- package/dist/assets/{settings-DxEF5yL8.js → settings-Bz400KLm.js} +3 -3
- package/dist/assets/{settings-Dkb35vRa.js → settings-aOogFA9n.js} +1 -1
- package/dist/assets/{settings-B9-XHGdl.js → settings-jIm9JVC-.js} +1 -1
- package/dist/assets/settings-tgfewl6I.js +1 -0
- package/dist/assets/{share-target-DJICHfZZ.js → share-target-cRZICq5X.js} +1 -1
- package/dist/assets/{shared-DmdHUnl7.js → shared-eIOEFQRM.js} +1 -1
- package/dist/assets/tree-folders-cmsIS19Z.js +1 -0
- package/dist/assets/{useAgentModels-BjT4oN4e.js → useAgentModels-B10Tbl6D.js} +1 -1
- package/dist/assets/workspaces-DC19HlpI.js +1 -0
- package/dist/index.html +3 -3
- package/dist/sw.js +1 -1
- package/package.json +2 -2
- package/dist/assets/HomeFab-CXuEjvlA.js +0 -3
- package/dist/assets/_contextId_-Bovrvd2T.js +0 -1
- package/dist/assets/_workspaceName_-DXYHTbna.js +0 -1
- package/dist/assets/content-app-view-DfmmWQ_z.js +0 -1
- package/dist/assets/index-C51Jk0Xq.css +0 -2
- package/dist/assets/index-DRHEGJ8I.js +0 -16
- package/dist/assets/settings-CUxtVfMx.js +0 -1
- package/dist/assets/workspaces-DpVuDD1E.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":"993f4fb50df1949cfdb941a3b5b4a5b5","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-DpVuDD1E.js"},{"revision":null,"url":"assets/workspaces-CqHYstZv.js"},{"revision":null,"url":"assets/workspace-import-form-Bb6z42nw.js"},{"revision":null,"url":"assets/workspace-content-gate-NLuRPvbm.js"},{"revision":null,"url":"assets/workspace-area-menu-BFw2yUHk.js"},{"revision":null,"url":"assets/workspace-access-C9nZlBBZ.js"},{"revision":null,"url":"assets/workspace-BydSRtST.js"},{"revision":null,"url":"assets/workspace-BJELPCNs.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-DXLTFEqL.js"},{"revision":null,"url":"assets/useDocumentThumbnail-wW0lSOEy.js"},{"revision":null,"url":"assets/useAgentModels-BjT4oN4e.js"},{"revision":null,"url":"assets/useAddTarget-B3b6TyZr.js"},{"revision":null,"url":"assets/use-workspace-identity-B8gOMGj4.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-DkWN9oEd.js"},{"revision":null,"url":"assets/use-canvas-pins-C57Vbkrq.css"},{"revision":null,"url":"assets/use-applet-target-ffIGaAqT.js"},{"revision":null,"url":"assets/use-applet-docs-B2dk__vk.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/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-BaXhu3ra.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-BbNgGbR3.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-DmdHUnl7.js"},{"revision":null,"url":"assets/shared-BnpwVpxG.js"},{"revision":null,"url":"assets/share-target-DJICHfZZ.js"},{"revision":null,"url":"assets/sha256-65KIjGvZ.js"},{"revision":null,"url":"assets/settings-DxEF5yL8.js"},{"revision":null,"url":"assets/settings-Dkb35vRa.js"},{"revision":null,"url":"assets/settings-CUxtVfMx.js"},{"revision":null,"url":"assets/settings-B9-XHGdl.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-p2cRajz-.js"},{"revision":null,"url":"assets/roles-DoR2drD1.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-9MElXU-U.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-CQ0I3cXX.js"},{"revision":null,"url":"assets/quadrantDiagram-AXDQQJYC-CAXFELe7.js"},{"revision":null,"url":"assets/punycode.es6-ZbLrB_Dn.js"},{"revision":null,"url":"assets/public-share-D5yz-Pmo.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-sNCjxnp-.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-CnvBrNMZ.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-DRHEGJ8I.js"},{"revision":null,"url":"assets/index-C51Jk0Xq.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-CsrwkvZX.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-CQ1_7Sja.js"},{"revision":null,"url":"assets/document-CTvT2Qa5.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-txVhlNO0.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-Df-cWUlj2.js"},{"revision":null,"url":"assets/contexts-DDJagU4j.js"},{"revision":null,"url":"assets/context-DZ1Hn7tt.js"},{"revision":null,"url":"assets/content-app-view-DfmmWQ_z.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-tUU2XWtW.js"},{"revision":null,"url":"assets/backend-sync-progress-DU-e9TWi.css"},{"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-uPsYOOCl.js"},{"revision":null,"url":"assets/applet-target-I8w6EPj0.js"},{"revision":null,"url":"assets/appearance-Ba1GYZ_J.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-t82sp0lw.js"},{"revision":null,"url":"assets/agents-DxqAi3vk.js"},{"revision":null,"url":"assets/admin-Bhg9QBHL.js"},{"revision":null,"url":"assets/add-Cf7qavr8.js"},{"revision":null,"url":"assets/about-CIz-eZ-8.js"},{"revision":null,"url":"assets/abnfDiagram-VCTEODGH-Cy_5vShZ.js"},{"revision":null,"url":"assets/_workspaceName_-DXYHTbna.js"},{"revision":null,"url":"assets/_contextId_-Bovrvd2T.js"},{"revision":null,"url":"assets/_agentId_-DiuSEd4O.js"},{"revision":null,"url":"assets/UploadProgressList-Ci1akl_D.js"},{"revision":null,"url":"assets/TodosWidget-CYK5RbYD.js"},{"revision":null,"url":"assets/TodosApplet-ASG9wXjL.js"},{"revision":null,"url":"assets/TextDocumentEditor-CU5ersd_.js"},{"revision":null,"url":"assets/TerminalApplet-BrP-ENHg.css"},{"revision":null,"url":"assets/TerminalApplet-BNeLmNFF.js"},{"revision":null,"url":"assets/SketchEditor-DtRVLazd.css"},{"revision":null,"url":"assets/SketchEditor-B2LYe_MO.js"},{"revision":null,"url":"assets/SketchApplet-14xrogy3.js"},{"revision":null,"url":"assets/PickDocumentsCard-CFDQL70e.js"},{"revision":null,"url":"assets/PathPickerField-B4yFUjgD.js"},{"revision":null,"url":"assets/ObjectPropertiesCard-Docu7O5V.css"},{"revision":null,"url":"assets/ObjectPropertiesCard-BTTwYnN9.js"},{"revision":null,"url":"assets/NotesApplet-ALnJx1R5.js"},{"revision":null,"url":"assets/NextShell-BfQHKEKO.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-BQ1yoFDr.js"},{"revision":null,"url":"assets/LensApplet-DxqrTTvu.js"},{"revision":null,"url":"assets/IdentityFields-DZRqtnIG.js"},{"revision":null,"url":"assets/HomeFab-CXuEjvlA.js"},{"revision":null,"url":"assets/FiltersApplet-Ia3RTHqt.js"},{"revision":null,"url":"assets/FileForm-C35drQ_R.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-CI650A38.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":"5b27694a9d3ee30e330c6b608c443043","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-DC19HlpI.js"},{"revision":null,"url":"assets/workspaces-CqHYstZv.js"},{"revision":null,"url":"assets/workspace-import-form-Bb6z42nw.js"},{"revision":null,"url":"assets/workspace-content-gate-NLuRPvbm.js"},{"revision":null,"url":"assets/workspace-area-menu-BFw2yUHk.js"},{"revision":null,"url":"assets/workspace-access-C9nZlBBZ.js"},{"revision":null,"url":"assets/workspace-BydSRtST.js"},{"revision":null,"url":"assets/workspace-BJELPCNs.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-DXLTFEqL.js"},{"revision":null,"url":"assets/useDocumentThumbnail-wW0lSOEy.js"},{"revision":null,"url":"assets/useAgentModels-B10Tbl6D.js"},{"revision":null,"url":"assets/useAddTarget-B3b6TyZr.js"},{"revision":null,"url":"assets/use-workspace-identity-B8gOMGj4.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-DkWN9oEd.js"},{"revision":null,"url":"assets/use-canvas-pins-C57Vbkrq.css"},{"revision":null,"url":"assets/use-applet-target-ffIGaAqT.js"},{"revision":null,"url":"assets/use-applet-docs-B2dk__vk.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-cmsIS19Z.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-BaXhu3ra.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-BbNgGbR3.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-eIOEFQRM.js"},{"revision":null,"url":"assets/shared-BnpwVpxG.js"},{"revision":null,"url":"assets/share-target-cRZICq5X.js"},{"revision":null,"url":"assets/sha256-65KIjGvZ.js"},{"revision":null,"url":"assets/settings-tgfewl6I.js"},{"revision":null,"url":"assets/settings-jIm9JVC-.js"},{"revision":null,"url":"assets/settings-aOogFA9n.js"},{"revision":null,"url":"assets/settings-Bz400KLm.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-p2cRajz-.js"},{"revision":null,"url":"assets/roles-DoR2drD1.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-QDfCL8gg.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-CQ0I3cXX.js"},{"revision":null,"url":"assets/quadrantDiagram-AXDQQJYC-CAXFELe7.js"},{"revision":null,"url":"assets/punycode.es6-ZbLrB_Dn.js"},{"revision":null,"url":"assets/public-share-D5yz-Pmo.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-sNCjxnp-.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-CA_ePKGA.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-_0FSwEvG.css"},{"revision":null,"url":"assets/index-Cp75myNf.js"},{"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-C8Wq8hsp.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-CQ1_7Sja.js"},{"revision":null,"url":"assets/document-CTvT2Qa5.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-txVhlNO0.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-Df-cWUlj2.js"},{"revision":null,"url":"assets/contexts-DDJagU4j.js"},{"revision":null,"url":"assets/context-DZ1Hn7tt.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-tUU2XWtW.js"},{"revision":null,"url":"assets/backend-sync-progress-DU-e9TWi.css"},{"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-BCy4q37-.js"},{"revision":null,"url":"assets/applet-target-I8w6EPj0.js"},{"revision":null,"url":"assets/appearance-C1xkguK7.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-DsaNiZJc.js"},{"revision":null,"url":"assets/admin-Bhg9QBHL.js"},{"revision":null,"url":"assets/add-jGjbB0x1.js"},{"revision":null,"url":"assets/about-Cns4GXCX.js"},{"revision":null,"url":"assets/abnfDiagram-VCTEODGH-Cy_5vShZ.js"},{"revision":null,"url":"assets/_workspaceName_-CU-hpvv7.js"},{"revision":null,"url":"assets/_contextId_-BBpL3f_T.js"},{"revision":null,"url":"assets/_agentId_-Dy7lgkJK.js"},{"revision":null,"url":"assets/UploadProgressList-Ci1akl_D.js"},{"revision":null,"url":"assets/TodosWidget-CYK5RbYD.js"},{"revision":null,"url":"assets/TodosApplet-ASG9wXjL.js"},{"revision":null,"url":"assets/TextDocumentEditor-CU5ersd_.js"},{"revision":null,"url":"assets/TerminalApplet-BrP-ENHg.css"},{"revision":null,"url":"assets/TerminalApplet-BNeLmNFF.js"},{"revision":null,"url":"assets/SketchEditor-DtRVLazd.css"},{"revision":null,"url":"assets/SketchEditor-B2LYe_MO.js"},{"revision":null,"url":"assets/SketchApplet-14xrogy3.js"},{"revision":null,"url":"assets/PickDocumentsCard-CFDQL70e.js"},{"revision":null,"url":"assets/PathPickerField-B4yFUjgD.js"},{"revision":null,"url":"assets/ObjectPropertiesCard-Docu7O5V.css"},{"revision":null,"url":"assets/ObjectPropertiesCard-BTTwYnN9.js"},{"revision":null,"url":"assets/NotesApplet-Cyuirnp1.js"},{"revision":null,"url":"assets/NextShell-BfQHKEKO.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-BQ1yoFDr.js"},{"revision":null,"url":"assets/LensApplet-CddpZXRw.js"},{"revision":null,"url":"assets/IdentityFields-DZRqtnIG.js"},{"revision":null,"url":"assets/HomeFab-W7y591CD.js"},{"revision":null,"url":"assets/FiltersApplet-Dh4SUfjN.js"},{"revision":null,"url":"assets/FileForm-C35drQ_R.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-7wqNCpcs.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.
|
|
3
|
+
"version": "2.26.38",
|
|
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": "
|
|
15
|
+
"canvasRev": "fbe26f7"
|
|
16
16
|
}
|
|
@@ -1,3 +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{yt as r}from"./react-BHzhHVTZ.js";import{g as i}from"./chunk-62JRHF6Z-vspAGgtK.js";import{Gr as a,L as o,Pt as s,U as c,W as l,_n as u,ar as d,hn as f,tt as p}from"./ui-CDoK3F3U.js";import{t as m}from"./utils-2pl1SbIp.js";import{t as h}from"./input-BOtCd4HP.js";import{t as g}from"./label-BSTdjCWU.js";import{t as _}from"./LinkToCard-BQ1yoFDr.js";import{zt as v}from"./workspace-BJELPCNs.js";import{t as y}from"./use-mobile-Db-vWu9Y.js";import{a as b,i as x,s as S,t as ee}from"./IdentityFields-DZRqtnIG.js";import{n as C,r as te}from"./use-toolbox-Ck_cLGgf.js";import{l as ne}from"./date-time-picker-txVhlNO0.js";import{n as w,t as re}from"./PickDocumentsCard-CFDQL70e.js";import{t as T}from"./useToastHelpers-CRrpIIdY.js";import{r as E,t as D}from"./note-save-status-DPz4VzL6.js";import{t as O}from"./DocumentBodyEditor-CVO5KPCs.js";import{a as k,i as A,n as j,o as M,r as N,s as P,t as F}from"./UploadProgressList-Ci1akl_D.js";import{A as I,O as L,j as R,k as z}from"./index-DRHEGJ8I.js";var B=e(r(),1),V=e(n(),1),H=t();function U({onClose:e,initialData:t,draftId:n}){let r=z(void 0,void 0,`home-card:${n}`);return(0,V.useEffect)(()=>{t?.title&&r.setTitle(t.title),t?.content&&r.setContent(t.content)},[]),(0,H.jsx)(w,{title:`New Note`,icon:p,onClose:e,onSave:async e=>{let t=await r.save({mode:`workspace`,...e});return r.finish(),t},canSave:r.canSave,saving:r.saving,successMessage:`Note created`,children:(0,H.jsxs)(`div`,{className:`flex h-full flex-col gap-4 p-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{htmlFor:`qa-note-title`,children:`Title`}),(0,H.jsx)(h,{id:`qa-note-title`,value:r.title,onChange:e=>r.setTitle(e.target.value),placeholder:`Optional; defaults to today's date`})]}),(0,H.jsxs)(`div`,{className:`flex flex-1 flex-col gap-1.5`,children:[(0,H.jsx)(g,{children:`Body`}),(0,H.jsx)(`div`,{className:`flex-1`,children:(0,H.jsx)(O,{kind:`markdown`,value:r.content,onChange:r.setContent,placeholder:`Write your note…`})})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{children:`Tags`}),(0,H.jsx)(S,{tags:r.tags,onChange:r.setTags})]}),(0,H.jsx)(D,{...r,onRetry:r.retry}),(0,H.jsx)(P,{geotag:r.geotag,idPrefix:`qa-note-geotag`})]})})}function W({onClose:e,initialData:t}){let n=L();return(0,V.useEffect)(()=>{t?.url&&n.setUrl(t.url),t?.title&&n.setTitle(t.title)},[]),(0,H.jsx)(w,{title:`New Link`,icon:u,onClose:e,onSave:e=>n.save({mode:`workspace`,...e}),canSave:n.canSave,saving:n.saving,successMessage:`Link created`,children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{htmlFor:`qa-link-url`,children:`URL`}),(0,H.jsx)(h,{id:`qa-link-url`,value:n.url,onChange:e=>n.setUrl(e.target.value),placeholder:`https://example.com`,autoFocus:!0}),n.showUrlError&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:`Enter a valid URL, e.g. https://example.com`})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{htmlFor:`qa-link-title`,children:`Title`}),(0,H.jsx)(h,{id:`qa-link-title`,value:n.title,onChange:e=>n.setTitle(e.target.value),placeholder:`Optional display title`})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{children:`Tags`}),(0,H.jsx)(S,{tags:n.tags,onChange:n.setTags})]}),(0,H.jsx)(P,{geotag:n.geotag,idPrefix:`qa-link-geotag`})]})})}function G({onClose:e,initialData:t}){let n=ne();return(0,V.useEffect)(()=>{t?.title&&n.setTitle(t.title),t?.content&&n.setDescription(t.content)},[]),(0,H.jsx)(w,{title:`New Todo`,icon:f,onClose:e,onSave:e=>n.save({mode:`workspace`,...e}),canSave:n.canSave,saving:n.saving,successMessage:`Todo created`,children:(0,H.jsxs)(`div`,{className:`flex h-full flex-col gap-4 p-4`,children:[(0,H.jsx)(b,{...n,idPrefix:`qa-todo`}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{children:`Tags`}),(0,H.jsx)(S,{tags:n.tags,onChange:n.setTags})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{htmlFor:`qa-todo-comment`,children:`Comment`}),(0,H.jsx)(`textarea`,{id:`qa-todo-comment`,value:n.comment,onChange:e=>n.setComment(e.target.value),rows:3,placeholder:`Optional context`,className:`flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-elevation-1 transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`})]}),(0,H.jsx)(P,{geotag:n.geotag,idPrefix:`qa-todo-geotag`})]})})}function K({onClose:e,initialData:t}){let n=x();return(0,V.useEffect)(()=>{t?.title&&n.setDisplayName(t.title)},[]),(0,H.jsx)(w,{title:`New Identity`,icon:c,onClose:e,onSave:e=>n.save({mode:`workspace`,...e}),canSave:n.canSave,saving:n.saving,successMessage:`Identity created`,children:(0,H.jsxs)(`div`,{className:`flex h-full flex-col gap-4 p-4`,children:[(0,H.jsx)(ee,{idPrefix:`qa-identity`,...n,emailValid:n.emailValid}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{children:`Tags`}),(0,H.jsx)(S,{tags:n.tags,onChange:n.setTags})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(g,{htmlFor:`qa-identity-comment`,children:`Comment`}),(0,H.jsx)(`textarea`,{id:`qa-identity-comment`,value:n.comment,onChange:e=>n.setComment(e.target.value),rows:3,placeholder:`How you know them, where they came from…`,className:`flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-elevation-1 transition-colors placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`})]})]})})}var q={jpg:`image/jpeg`,jpeg:`image/jpeg`,png:`image/png`,gif:`image/gif`,webp:`image/webp`,avif:`image/avif`,heic:`image/heic`,heif:`image/heif`,bmp:`image/bmp`,tif:`image/tiff`,tiff:`image/tiff`,svg:`image/svg+xml`,mp4:`video/mp4`,mov:`video/quicktime`,webm:`video/webm`,"3gp":`video/3gpp`};function J(e){return/^(image|video)\//.test(e.type)}async function Y(e){let t=await Promise.all(e.map(async e=>{let t=new Uint8Array(await e.slice(0,64).arrayBuffer()),n=(e,n)=>String.fromCharCode(...t.slice(e,e+n)),r=``;if(t[0]===255&&t[1]===216&&t[2]===255)r=`image/jpeg`;else if(n(0,8)===`PNG\r
|
|
2
|
-
|
|
3
|
-
`)r=`image/png`;else if([`GIF87a`,`GIF89a`].includes(n(0,6)))r=`image/gif`;else if(n(0,4)===`RIFF`&&n(8,4)===`WEBP`)r=`image/webp`;else if(n(0,5)===`%PDF-`)r=`application/pdf`;else if(n(0,4)===`PK`)r=`application/zip`;else if(n(4,4)===`ftyp`){let e=[n(8,4)],i=new DataView(t.buffer).getUint32(0);for(let r=16;r+4<=Math.min(t.length,i);r+=4)e.push(n(r,4));e.some(e=>[`avif`,`avis`].includes(e))?r=`image/avif`:e.some(e=>[`heic`,`heix`,`hevc`,`hevx`].includes(e))?r=`image/heic`:e.some(e=>[`mif1`,`msf1`].includes(e))?r=`image/heif`:e.includes(`qt `)?r=`video/quicktime`:e.some(e=>[`isom`,`iso2`,`mp41`,`mp42`,`avc1`,`M4V `].includes(e))&&(r=`video/mp4`)}let i=e.type.toLowerCase().split(`;`)[0].trim(),a=!i||[`application/octet-stream`,`binary/octet-stream`,`*/*`].includes(i),o=e.name.split(`.`).pop()?.toLowerCase()??``,s=r||a&&q[o]||i;return s===e.type?e:new File([e],e.name,{type:s,lastModified:e.lastModified})}));return{kind:t.length>0&&t.every(J)?`photo`:`file`,files:t}}function X({file:e}){let t=(0,V.useRef)(null),[n,r]=(0,V.useState)(!1);return(0,V.useEffect)(()=>{let n=t.current;if(!n)return;let r=URL.createObjectURL(e);return n.src=r,()=>{n.removeAttribute(`src`),URL.revokeObjectURL(r)}},[e]),(0,H.jsx)(`div`,{className:`flex min-h-24 items-center justify-center overflow-hidden rounded-md border border-input bg-muted/30`,children:n?(0,H.jsxs)(`p`,{className:`p-4 text-center text-sm text-muted-foreground`,children:[`Preview unavailable for `,e.name,`. You can still save the original.`]}):e.type.startsWith(`video/`)?(0,H.jsx)(`video`,{ref:t,controls:!0,preload:`metadata`,"aria-label":e.name,onError:()=>r(!0),className:`max-h-64 max-w-full`}):(0,H.jsx)(`img`,{ref:t,alt:e.name,onError:()=>r(!0),className:`max-h-64 max-w-full object-contain`})})}function ie({onClose:e,initialData:t}){let n=(0,V.useRef)(null),r=N(t?.files),i=r.items.map(e=>e.file),[a,o]=(0,V.useState)(!1),[s,c]=(0,V.useState)(!1),{state:u}=C(),d=M(u.activeWorkspaceName),f=e=>{e&&(s||r.addFiles(Array.from(e)))},p=e=>{e.preventDefault(),o(!1),f(e.dataTransfer.files)},h=i.length>0;return(0,H.jsx)(w,{title:`Upload File`,icon:l,onClose:e,onSave:async e=>{c(!0);try{let t={mode:`workspace`,...e},n=await d.geotag.capture(),i=await r.start(t,(e,t)=>k(e,t,{tags:d.tags,comment:d.comment,geo:n}));if(i.failed)throw Error(`${i.failed} file(s) failed or cancelled. Retry keeps completed uploads.`);return i.docIds}finally{c(!1)}},navigateAfterSave:!0,canSave:h,saving:s,saveProgress:(0,H.jsx)(j,{items:r.items,running:r.running,onCancel:r.cancel}),successMessage:`File(s) uploaded`,children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-4 p-4`,children:[(0,H.jsxs)(`div`,{onDragOver:e=>{e.preventDefault(),o(!0)},onDragLeave:()=>o(!1),onDrop:p,onClick:()=>n.current?.click(),className:m(`flex cursor-pointer flex-col items-center justify-center gap-2 rounded-md border border-dashed px-4 py-8 text-center transition-colors`,a?`border-primary bg-primary/5`:`border-input hover:bg-muted/40`),children:[(0,H.jsx)(l,{className:`h-6 w-6 text-muted-foreground touch-target`}),(0,H.jsx)(`p`,{className:`text-sm`,children:`Drag & drop files here`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`or click to browse`}),(0,H.jsx)(`input`,{ref:n,type:`file`,multiple:!0,disabled:s,className:`hidden`,onChange:e=>{f(e.target.files),e.target.value=``}})]}),r.items.filter(e=>J(e.file)).map(e=>(0,H.jsx)(X,{file:e.file},e.id)),(0,H.jsx)(F,{items:r.items,running:s,onRemove:r.removeItem}),(0,H.jsx)(A,{fields:d,idPrefix:`qa-file`,multiple:i.length>1})]})})}function ae({onClose:e,initialData:t}){let n=N(t?.files),r=(0,V.useRef)(null),i=n.items.length>0,[s,c]=(0,V.useState)(!1),{state:l}=C(),u=M(l.activeWorkspaceName),f=e=>{!s&&e&&n.addFiles([e])};return(0,H.jsx)(w,{title:`Photo/Video`,icon:a,onClose:e,onSave:async e=>{if(!i)return[];c(!0);try{let t=await u.geotag.capture(),r={mode:`workspace`,...e},i=await n.start(r,(e,n)=>k(e,n,{tags:u.tags,comment:u.comment,geo:t}));if(i.failed)throw Error(`Upload failed or cancelled. You can retry.`);return i.docIds}finally{c(!1)}},navigateAfterSave:!0,canSave:i,saving:s,saveProgress:(0,H.jsx)(j,{items:n.items,running:n.running,onCancel:n.cancel}),successMessage:`Upload saved`,children:(0,H.jsxs)(`div`,{className:m(`flex h-full flex-col gap-4 p-4`,!i&&`items-center justify-center`),children:[i?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:`flex min-h-0 w-full flex-1 flex-col gap-3 overflow-y-auto`,children:n.items.map(({id:e,file:t,status:r})=>(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(X,{file:t}),(0,H.jsxs)(`div`,{className:`flex w-full items-center gap-2 rounded border border-input px-3 py-2 text-sm`,children:[(0,H.jsx)(d,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,H.jsx)(`span`,{className:`flex-1 truncate`,children:t.name}),(0,H.jsxs)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:[(t.size/1024/1024).toFixed(1),` MB`]}),(0,H.jsx)(`button`,{type:`button`,disabled:s||r===`done`,onClick:()=>n.removeItem(e),"aria-label":`Remove ${t.name}`,className:`text-muted-foreground hover:text-foreground disabled:opacity-40`,children:(0,H.jsx)(o,{className:`h-3.5 w-3.5`})})]})]},e))}),(0,H.jsx)(`div`,{className:`w-full shrink-0 space-y-4`,children:(0,H.jsx)(A,{fields:u,idPrefix:`qa-photo`,multiple:n.items.length>1})})]}):(0,H.jsxs)(`button`,{type:`button`,onClick:()=>r.current?.click(),className:`flex flex-col items-center gap-2 rounded-md border border-dashed border-input px-6 py-10 text-center transition-colors hover:bg-muted/40`,children:[(0,H.jsx)(a,{className:`h-8 w-8 text-muted-foreground`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Open camera`})]}),(0,H.jsx)(`input`,{ref:r,type:`file`,accept:`image/*,video/*`,capture:`environment`,className:`hidden`,disabled:s,onChange:e=>{f(e.target.files?.[0]??null),e.target.value=``}})]})})}var Z=`shrink-0 h-viewport-card w-[min(380px,90vw)] max-md:fixed max-md:inset-2 max-md:z-40 max-md:h-auto max-md:w-auto max-md:shadow-elevation-5`;function oe({onClose:e}){let{showSuccessToast:t,showErrorToast:n}=T(),[r,i]=(0,V.useState)(null),[a,o]=(0,V.useState)(!1);return r?(0,H.jsx)(_,{sizeClassName:Z,documentCount:r.length,saving:a,onClose:e,onConfirm:async(i,a)=>{o(!0);try{await Promise.all(i.map(e=>v(a.workspaceName,e,r,a.treeName,a.treeType))),t(`${r.length} document${r.length===1?``:`s`} linked`),e()}catch(e){n(e instanceof Error?e.message:`Failed to link documents`)}finally{o(!1)}}}):(0,H.jsx)(re,{sizeClassName:Z,onConfirm:e=>{e.length&&i(e)},onClose:e})}function Q(){let e=E(`new:home-card:`);try{return Object.keys(localStorage).filter(t=>t.startsWith(e)&&t.endsWith(`:home`)).filter(e=>{let t=JSON.parse(localStorage.getItem(e)||`null`)?.value;return t&&(t.title||t.content||t.comment||t.tags?.length)}).map(t=>t.slice(e.length,-5))}catch{return[]}}var $=0;function se(){return $+=1,`card-${$}`}function ce({initialKind:e,initialData:t,onInitialCardClose:n,onCardsOpenChange:r}){let[a,c]=(0,V.useState)(!1),l=y(),u=te(),d=!!(u?.state.t1Open||u?.state.addOpen),[f,p]=(0,V.useState)(()=>e?[{id:`initial`,kind:e,initialData:t,noteDraftId:crypto.randomUUID()}]:Q().map(e=>({id:e,kind:`note`,noteDraftId:e}))),h=f.length>0,g=(0,V.useRef)(r);(0,V.useEffect)(()=>{g.current=r},[r]),(0,V.useEffect)(()=>{g.current?.(h)},[h]),d&&a&&c(!1);let _=i(),v=e=>{if(e===`sketch`){c(!1),_(R.createUrl(null));return}let t=e===`note`?Q().find(e=>!f.some(t=>t.noteDraftId===e))||crypto.randomUUID():void 0;p(n=>[...n,{id:se(),kind:e,noteDraftId:t}]),c(!1)},b=e=>{p(t=>t.filter(t=>t.id!==e)),e===`initial`&&n?.()},x=(0,H.jsxs)(`div`,{className:m(`pointer-events-none fixed right-6 z-40 flex flex-col items-end gap-2`,`bottom-fab-inset md:bottom-[calc(var(--spacing-fab-inset)+5rem)]`,f.length>0&&`max-md:hidden`,d&&`hidden`),children:[(0,H.jsx)(`div`,{className:m(`flex flex-col items-end gap-2 transition-all duration-fast`,a?`pointer-events-auto opacity-100`:`pointer-events-none translate-y-2 opacity-0`),children:(0,H.jsx)(I,{variant:`stack`,omit:[`plaintext`,`folder`,`message`],onSelect:v})}),(0,H.jsx)(`div`,{className:`pointer-events-none flex w-16 justify-center`,children:(0,H.jsx)(`button`,{type:`button`,onClick:()=>c(e=>!e),"aria-label":a?`Close quick add`:`Quick add`,className:`pointer-events-auto flex h-11 w-11 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-elevation-3 transition-transform hover:scale-105`,children:a?(0,H.jsx)(o,{className:`h-5 w-5`}):(0,H.jsx)(s,{className:`h-5 w-5`})})})]});return(0,H.jsxs)(`div`,{className:`relative flex h-full w-full flex-col`,children:[f.length>0&&(0,H.jsx)(`div`,{className:`pointer-events-auto flex flex-1 items-center gap-4 overflow-x-auto p-6 md:pr-28`,children:f.map(e=>{let t=()=>b(e.id);switch(e.kind){case`note`:return(0,H.jsx)(U,{draftId:e.noteDraftId,onClose:t,initialData:e.initialData},e.id);case`link`:return(0,H.jsx)(W,{onClose:t,initialData:e.initialData},e.id);case`todo`:return(0,H.jsx)(G,{onClose:t,initialData:e.initialData},e.id);case`identity`:return(0,H.jsx)(K,{onClose:t,initialData:e.initialData},e.id);case`file`:return(0,H.jsx)(ie,{onClose:t,initialData:e.initialData},e.id);case`photo`:return(0,H.jsx)(ae,{onClose:t,initialData:e.initialData},e.id);case`existing`:return(0,H.jsx)(oe,{onClose:t},e.id);case`sketch`:return null;case`folder`:case`message`:return null}})}),l?(0,B.createPortal)(x,document.body):x]})}export{Y as n,ce as t};
|
|
@@ -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{t as o}from"./socket-CtH3EU9m.js";import{n as s}from"./use-toast-BlLDqSUO.js";import{o as c,s as l}from"./LinkToCard-BQ1yoFDr.js";import{G as u,Sn as d,V as ee,bn as te,zt as ne}from"./workspace-BJELPCNs.js";import{r as re}from"./document-list-CQ1_7Sja.js";import{n as ie}from"./use-toolbox-Ck_cLGgf.js";import{E as ae,_ as oe,a as se,b as ce,i as le,l as ue,o as de}from"./context-DZ1Hn7tt.js";import{i as fe}from"./color-DFEH4BfK.js";import{t as pe}from"./geo-CZfs0E-x.js";import{a as me,i as he,o as ge}from"./workspace-BydSRtST.js";import{i as _e}from"./use-menu-DIP1zh7I.js";import{a as ve,c as ye,i as be,l as xe,n as Se,o as Ce,r as we,s as Te,t as Ee}from"./content-app-view-DfmmWQ_z.js";import{t as De}from"./use-workspace-identity-B8gOMGj4.js";var f=e(n(),1),p=t();function Oe(e,t){if(!e||!t)return`/`;let n=`${t}://`;if(!e.startsWith(n))return`/`;let r=e.slice(n.length).replace(/^\/+/,``).replace(/\/+$/,``);return r?`/${r}`:`/`}function m(){let{contextId:e}=r(),t=a(),n=i(),m=new URLSearchParams(t.search).get(`ownerId`)||void 0,h=(0,f.useMemo)(()=>{let e=new URLSearchParams(t.search),n=e.getAll(`q`).map(e=>e.trim()).filter(Boolean),r=(e.get(`search`)||``).trim();return n.length?n:r?[r]:[]},[t.search]),{showToast:g,showProgress:ke}=s(),{state:_,saveFilters:Ae,setSort:je,setAccentColor:v,setMapDocuments:y}=ie(),{openM1Drawer:Me,openM2Drawer:Ne,goBack:Pe}=_e(),b=_.filters.features.allOf,Fe=_.filters.features.anyOf,Ie=_.filters.features.noneOf,Le=[...he(_.filters.timeline),...me(_.filters.geo),...ge(_.filters.lens,_.filters.geo.includeUnlocated)],x=JSON.stringify({a:b,b:Fe,c:Ie,d:Le,ids:_.filters.lens.ids,sort:_.filters.sort,geoSelection:_.geoSelection,includeUnlocated:_.filters.geo.includeUnlocated}),S=(0,f.useMemo)(()=>JSON.parse(x),[x]),[C,w]=(0,f.useState)(null),[Re,ze]=(0,f.useState)(!0),[Be,Ve]=(0,f.useState)(null),[T,E]=(0,f.useState)([]),[He,Ue]=(0,f.useState)(!1),[We,D]=(0,f.useState)(0),[Ge,Ke]=(0,f.useState)([]),[O,k]=(0,f.useState)(1),[A,qe]=(0,f.useState)(50),[j,M]=(0,f.useState)(h),[N,P]=(0,f.useState)(!1),[F,Je]=(0,f.useState)(null),[I,Ye]=(0,f.useState)(!1),L=(0,f.useRef)(!1),R=F?.id===C?.id&&F?.url===C?.url?F?.path:null,Xe=new URLSearchParams(t.search).get(`layer`),z=!!m,Ze=De(z?void 0:C?.workspaceName||C?.workspaceId),B=C?Oe(C.url,C.workspaceName):`/`,Qe=Xe?`context-layer`:`context`,V=!_.liveEnabled&&typeof C?.metadata?.toolboxSearchQuery==`string`?C.metadata.toolboxSearchQuery:``,H=z?null:C?.workspaceName??null,[$e,et]=(0,f.useState)(null);(0,f.useEffect)(()=>{if(!H)return;let e=!1;return u(H,d).then(t=>{e||et({key:H,tree:t})}).catch(()=>{e||et({key:H,tree:null})}),()=>{e=!0}},[H]);let U=H&&$e?.key===H?$e.tree:null,W=!Xe&&!z&&U?B===`/`?U:ee(U,B):null,G=`${C?.workspaceName??``}\0${B}`,[K,tt]=(0,f.useState)(null),q=K?.key===G?K.views:Ce(W?.metadata),J=K?.key===G?K.activeId:q[0]?.id??be.id,Y=q.find(e=>e.id===J)??q[0]??be,X=ve(Y);xe(ye({workspace:C?.workspaceName||C?.workspaceId||null,treeNameOrId:_.activeTreeName,path:B,contextId:e??null,scope:`context`},{..._.filters,features:{..._.filters.features,allOf:X?[...b,X]:b}},_.geoSelection,j));let nt=e=>{k(1),tt({key:G,views:q,activeId:e})},rt=(e,t)=>{t&&t!==J&&k(1),tt({key:G,views:e,activeId:t??J}),C?.workspaceName&&te(C.workspaceName,B,{metadata:{...W?.metadata??{},views:e}},d).catch(()=>{g({title:`View not saved`,description:`Could not persist views to the layer`,variant:`destructive`})})},Z=(0,f.useRef)(null);(0,f.useEffect)(()=>()=>Z.current?.abort(),[]);let Q=(0,f.useCallback)(async()=>{if(!e)return;Z.current?.abort();let t=new AbortController;Z.current=t,Ue(!0);try{let n=await de(e,X?[...S.a,X]:S.a,S.d,{...S.sort,geoSelection:S.geoSelection,includeUnlocated:S.includeUnlocated,ids:S.ids,signal:t.signal,limit:A,page:O,queries:j.length?j:void 0,anyOf:S.b,noneOf:S.c,applyContextSpec:!1},m);if(t.signal.aborted)return;E(n),D(n.totalCount||n.count||n.length)}catch(e){if(t.signal.aborted)return;g({title:`Error`,description:e instanceof Error?e.message:`Failed to fetch documents`,variant:`destructive`}),E([]),D(0)}finally{t.signal.aborted||Ue(!1)}},[e,O,A,m,j,S,g,X]),it=(0,f.useCallback)(async()=>{if(e){ze(!0);try{let t=z?await se(e,m):await se(e);if(!t)throw Error(`No context data received.`);let n=t.workspace,r=t.workspaceId||(typeof n==`string`?n:n?.id)||``,i=t.workspaceName||(typeof n==`string`?n:n?.name)||``;w({id:t.id,userId:t.userId,url:t.url,baseUrl:t.baseUrl||null,path:t.path||null,pathArray:t.pathArray||[],workspaceId:r,workspaceName:i,acl:t.acl||{},createdAt:t.createdAt,updatedAt:t.updatedAt,locked:t.locked||!1,serverContextArray:t.serverContextArray||[],clientContextArray:t.clientContextArray||[],contextBitmapArray:t.contextBitmapArray||[],featureBitmapArray:t.featureBitmapArray||[],filterArray:t.filterArray||[],pendingUrl:t.pendingUrl||null,description:t.description||null,metadata:t.metadata||{},name:t.name??null,color:t.color??null,icon:t.icon??null}),Ve(null)}catch(t){let n=t instanceof Error?t.message:`Failed to fetch context ${e}`;Ve(n),w(null),g({title:`Error`,description:n,variant:`destructive`})}ze(!1)}},[e,m,z,g]);(0,f.useEffect)(()=>{it()},[it]);let at=fe(C?.color)||null;(0,f.useEffect)(()=>(v(at),()=>v(null)),[at,v]);let ot=_.geoSelection,st=C?.workspaceName||C?.workspaceId||null;(0,f.useEffect)(()=>{y(T,st)},[T,st,y]),(0,f.useEffect)(()=>()=>y([]),[y]);let ct=(0,f.useMemo)(()=>ot?T.filter(e=>pe(e,ot,_.filters.geo.includeUnlocated)):T,[T,ot,_.filters.geo.includeUnlocated]),lt=C?.id,ut=C?.url;(0,f.useEffect)(()=>{lt&&Q()},[lt,ut,Q]),(0,f.useEffect)(()=>{let e=()=>Q();return window.addEventListener(`workspace:documents:refresh`,e),()=>window.removeEventListener(`workspace:documents:refresh`,e)},[Q]);let[dt,ft]=(0,f.useState)(x);dt!==x&&(ft(x),k(1));let[pt,mt]=(0,f.useState)(e);pt!==e&&(mt(e),k(1),P(!1));let[ht,gt]=(0,f.useState)(h);ht!==h&&(gt(h),M(h),k(1));let[_t,vt]=(0,f.useState)({urlSearchQueries:h,ignoreSavedSearch:N,savedContextSearchQuery:V});(_t.urlSearchQueries!==h||_t.ignoreSavedSearch!==N||_t.savedContextSearchQuery!==V)&&(vt({urlSearchQueries:h,ignoreSavedSearch:N,savedContextSearchQuery:V}),!new URLSearchParams(t.search).has(`q`)&&!h.length&&!N&&(M(V?[V]:[]),k(1)));let $=(0,f.useCallback)(e=>{let r=new URLSearchParams(t.search);r.delete(`q`),r.delete(`search`);for(let t of e)r.append(`q`,t);let i=r.toString();n(`${t.pathname}${i?`?${i}`:``}${t.hash}`)},[t.pathname,t.search,t.hash,n]),yt=(0,f.useCallback)(e=>{let t=e.trim();if(!t)return;P(!1);let n=j.includes(t)?j:[...j,t];M(n),$(n)},[j,$]),bt=(0,f.useCallback)(e=>{let t=e<0?[]:j.filter((t,n)=>n!==e);t.length===0&&P(!0),M(t),$(t)},[j,$]),xt=(j[0]||``).trim(),St=!!_.activeContextType&&(_.isDirty||xt!==(_.savedSearchQuery||V||``));(0,f.useEffect)(()=>{if(!e)return;let t=`context:${m?`${m}/`:``}${e}`,n=()=>o.emit(`subscribe`,{channel:t}),r=()=>o.emit(`unsubscribe`,{channel:t}),i=o.on(`connect`,n);n();let a=new Map,s=(t,n)=>{let r=Date.now(),i=`${t}:${n?.id||n?.contextId||e}`;return(a.get(i)||0)+1e3>r?!1:(a.set(i,r),!0)},c=t=>{let n=t,r=n?.context||n;(r?.id===e||r?.contextId===e)&&s(`ctx:updated`,r)&&(w(e=>e?{...e,...r}:null),r.url&&Q())},l=t=>{let n=t,r=n?.id||n?.contextId||n?.context?.id,i=n?.url||n?.context?.url;r===e&&typeof i==`string`&&s(`ctx:url`,n)&&(w(e=>e?{...e,url:i}:null),Q())},u=t=>{let n=t;(n?.contextId||n?.id||n?.context?.id)===e&&s(`doc:changed`,n)&&Q()},d=[[`context.updated`,c],[`context:updated`,c],[`context.url.set`,l],[`context:url:set`,l],[`document.inserted`,u],[`document.updated`,u],[`document.removed`,u],[`document.removed.batch`,u],[`document.linked`,u],[`document.unlinked`,u],[`document.linked.batch`,u],[`document.unlinked.batch`,u],[`document.deleted`,u],[`document.deleted.batch`,u]];return d.forEach(([e,t])=>o.on(e,t)),()=>{i(),r(),d.forEach(([e,t])=>o.off(e,t))}},[e,m,Q]);let Ct=async e=>{if(C)try{await ce(C.id,[e],m,B),E(t=>t.filter(t=>t.id!==e)),D(e=>Math.max(0,e-1)),g({title:`Success`,description:`Document removed from context.`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to remove document`,variant:`destructive`})}},wt=async e=>{if(C)try{await le(C.id,[e],m,B),E(t=>t.filter(t=>t.id!==e)),D(e=>Math.max(0,e-1)),g({title:`Success`,description:`Document deleted.`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to delete document`,variant:`destructive`})}},Tt=async e=>{if(C)try{await ce(C.id,e,m,B),E(t=>t.filter(t=>!e.includes(t.id))),D(t=>Math.max(0,t-e.length)),g({title:`Success`,description:`${e.length} document(s) removed.`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to remove documents`,variant:`destructive`})}},Et=async e=>{if(C)try{await le(C.id,e,m,B),E(t=>t.filter(t=>!e.includes(t.id))),D(t=>Math.max(0,t-e.length)),g({title:`Success`,description:`${e.length} document(s) deleted.`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Failed to delete documents`,variant:`destructive`})}},Dt=e=>{Ke(e),g({title:`Copied`,description:`${e.length} document(s) copied to clipboard`})},Ot=async(e,t,n={})=>{if(!C)return!1;let r=ke({title:`Pasting…`,description:`${t.length} document(s) → "${e}"`});try{let i=n.targetTreeName&&!z?await ne(C.workspaceName||C.workspaceId,e,t,n.targetTreeName,n.targetTreeType):await oe(C.id,e,t,m);return r.done(i?{title:`Success`,description:`${t.length} document(s) pasted to "${e}"`}:void 0),i&&(Ke([]),await Q()),i}catch(e){return r.fail({title:`Error`,description:e instanceof Error?e.message:`Failed to paste documents`,variant:`destructive`}),!1}},kt=async(e,t)=>{if(!C)return!1;try{let n=await ue(C.workspaceId,t,e);return n&&(re(C.workspaceName||C.workspaceId,`context`,t),g({title:`Success`,description:`Imported ${e.length} document(s) to "${t}"`})),n}catch(e){return g({title:`Error`,description:e instanceof Error?e.message:`Failed to import documents`,variant:`destructive`}),!1}},At=async()=>{if(!C||!R||z||L.current)return;let e={id:C.id,url:C.url,path:R};L.current=!0,Ye(!0);try{let t=await ae(e.id,`${C.workspaceName}://${e.path.replace(/^\/+/,``)}`);w(n=>n?.id===e.id&&n.url===e.url?{...n,url:t.url,path:e.path}:n),Je(null),k(1),window.dispatchEvent(new CustomEvent(`contexts:refresh`,{detail:{contextId:e.id}})),g({title:`Saved`,description:`Context path updated`})}catch(e){g({title:`Error`,description:e instanceof Error?e.message:`Could not update context path`,variant:`destructive`})}finally{L.current=!1,Ye(!1)}};if(Re)return(0,p.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,p.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,p.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-b-2 border-primary mx-auto`}),(0,p.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading context...`})]})});if(Be&&!C)return(0,p.jsxs)(`div`,{className:`flex items-center justify-center h-full text-destructive`,children:[`Error: `,Be]});if(!C)return(0,p.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:`Context not found.`});let jt=fe(C.color);return(0,p.jsx)(`div`,{className:`flex flex-col h-full min-h-0`,children:(0,p.jsx)(Te,{onBack:Pe,accentColor:jt,navigationTabs:W?(0,p.jsx)(we,{views:q,activeId:J,onSelect:nt,onSave:rt,accentColor:jt}):void 0,workspaceLabel:Ze?.label||C.workspaceName||C.workspaceId,workspaceIcon:Ze?.icon,treeName:d,urlType:Qe,urlDisplay:C.url,contextPath:B,workspaceId:C.workspaceName||C.workspaceId,documentSchema:X,linkTree:U,documents:ct,isLoading:He,totalCount:We,currentPage:O,pageSize:A,onPageChange:k,onPageSizeChange:e=>{qe(e),k(1)},onRemoveDocument:B===`/`?void 0:Ct,onDeleteDocument:wt,onRemoveDocuments:B===`/`?void 0:Tt,onDeleteDocuments:Et,onCopyDocuments:Dt,onPasteDocuments:Ot,onImportDocuments:z?void 0:kt,pastedDocumentIds:Ge,backendSearchQueries:j,onBackendSearch:yt,serverSort:_.filters.sort,onServerSortChange:je,onRemoveBackendQuery:bt,canSaveChanges:St,isSavingChanges:_.isSaving,onSaveChanges:Ae,onBrowseTree:!z&&e?()=>Ne(`contexts`,`detail`,e):void 0,onBrowseWorkspaces:()=>Me(`workspaces`),onNavigatePath:z?void 0:e=>{L.current||Je({id:C.id,url:C.url,path:e})},contentBanner:R?(0,p.jsxs)(`div`,{className:`border-b bg-warning/10 px-4 py-2`,role:`status`,children:[(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Set this context to the selected path? Contents stay at the current path until you apply it.`}),(0,p.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,p.jsx)(l,{items:c(R,C.workspaceName),label:`Selected context path`}),(0,p.jsx)(`button`,{type:`button`,disabled:I,onClick:()=>void At(),className:`shrink-0 rounded border px-3 py-1 text-sm hover:bg-accent disabled:opacity-50`,children:I?`Setting…`:`Set`}),(0,p.jsx)(`button`,{type:`button`,disabled:I,onClick:()=>Je(null),className:`shrink-0 rounded px-2 py-1 text-sm hover:bg-accent disabled:opacity-50`,children:`Cancel`})]})]}):void 0,children:Y.kind===`columns`?(0,p.jsx)(Se,{documents:ct,workspaceId:C.workspaceName||C.workspaceId,columns:Y.columns??[],onColumnsChange:e=>rt(q.map(t=>t.id===Y.id?{...t,columns:e}:t))}):Y.kind===`app`&&Y.app&&Y.app!==`notes`?(0,p.jsx)(Ee,{app:Y.app,contextId:e,workspaceId:C.workspaceName||C.workspaceId,treeName:d,path:B}):null})})}export{m as default};
|
|
@@ -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{L as o,Ur as s,Vr as c,pn as l}from"./ui-CDoK3F3U.js";import{t as u}from"./utils-2pl1SbIp.js";import{t as d}from"./button-SeUZ_Pvi.js";import{c as f,t as p}from"./api-CA6WiiYM.js";import{t as m}from"./socket-CtH3EU9m.js";import{n as h}from"./use-toast-BlLDqSUO.js";import{Cn as g,D as ee,G as te,Jt as _,K as v,Mt as ne,Vt as y,X as re,_ as ie,_t as b,a as ae,bn as oe,ht as se,it as ce,on as le,qt as ue,rt as de,u as fe,ut as pe,w as me,x,y as he,yt as ge,zt as _e}from"./workspace-BJELPCNs.js";import{n as ve,r as ye}from"./use-canvas-pins-DkWN9oEd.js";import{u as be}from"./ObjectPropertiesCard-BTTwYnN9.js";import{h as xe,i as S,r as Se}from"./document-list-CQ1_7Sja.js";import{n as Ce}from"./use-toolbox-Ck_cLGgf.js";import{i as we}from"./color-DFEH4BfK.js";import{t as Te}from"./geo-CZfs0E-x.js";import{c as Ee}from"./backend-sync-progress-tUU2XWtW.js";import{a as De,i as Oe,n as ke,o as Ae}from"./workspace-BydSRtST.js";import{n as je,r as Me,t as Ne}from"./url-params-n7kU_WZ-.js";import{i as Pe}from"./use-menu-DIP1zh7I.js";import{n as Fe}from"./last-path-BbXWC3b3.js";import{t as Ie}from"./workspace-area-menu-BFw2yUHk.js";import{t as Le}from"./workspace-content-gate-NLuRPvbm.js";import{t as Re}from"./form-panel-3p-ncEVK.js";import{a as ze,c as Be,i as Ve,l as He,n as Ue,o as We,r as Ge,s as Ke,t as qe}from"./content-app-view-DfmmWQ_z.js";import{i as Je,o as Ye,r as Xe}from"./query-debug-CQ0I3cXX.js";var C=`session.open`,Ze=`session.set`,Qe=`session.ids`,$e=`session.materialize`,et=`session.close`,w=`session.delta`,T=e(n(),1),E=t();function tt({workspaceId:e,workspaceName:t}){let[n,r]=(0,T.useState)([]),[i,a]=(0,T.useState)(new Set),s=t=>`${e}:${t.address}:${t.resyncStartedAt||``}`;(0,T.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 ge(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=m.on(`connect`,l);return m.on(`backend.resync.changed`,u),m.on(`backend.changed`,d),window.addEventListener(`focus`,l),()=>{t=!0,f?.(),m.off(`backend.resync.changed`,u),m.off(`backend.changed`,d),window.removeEventListener(`focus`,l)}},[e]);let c=n.filter(e=>!i.has(s(e)));return c.length?(0,E.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,E.jsxs)(`div`,{role:`status`,className:`mb-2 flex items-center gap-2 text-sm font-medium`,children:[(0,E.jsx)(l,{"aria-hidden":`true`,className:`h-4 w-4 animate-spin`}),(0,E.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,E.jsx)(`span`,{className:`block`,children:`Scanning storage`}),(0,E.jsx)(`span`,{className:`block truncate text-xs font-normal text-muted-foreground`,title:t,children:t})]}),(0,E.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(s)])),children:(0,E.jsx)(o,{"aria-hidden":`true`,className:`h-4 w-4`})})]}),(0,E.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,E.jsxs)(`div`,{children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs`,children:[(0,E.jsx)(`span`,{className:`truncate`,children:i}),(0,E.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:n===null?`${t} files`:`${t} / ${n}`})]}),(0,E.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,E.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 nt=e=>e&&typeof e==`object`&&!Array.isArray(e)?e:null;function D(e){return`/${e}`.replace(/\/+/g,`/`).replace(/\/$/,``)||`/`}function rt(e,t,n){if(e==null)return[];if(Array.isArray(e))return e.flatMap(e=>rt(e,t,n));if(typeof e==`string`)return[{tree:null,kind:t,path:D(e)}];let r=nt(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:D(e)}))}function O(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 it(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 at(e,t,n=new Map){let r=nt(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:D(n)}],ids:O(r),unknown:!1}:{targets:[],ids:[],unknown:!0}}let i=[...rt(r.context,`context`,n),...rt(r.directory,`directory`,n)],a=nt(r.changed);a&&i.push(...rt(a.context,`context`,n),...rt(a.directory,`directory`,n));let o=O(r);if(i.length)return{targets:i,ids:o,unknown:!1};let s=r.reason===`content`||r.reason===`relations`;return e.startsWith(`document.updated`)&&s&&o.length?{targets:[],ids:o,unknown:!1}:{targets:[],ids:o,unknown:!0}}function k(e,t){return e===t||e===`/`||t===`/`||e.startsWith(`${t}/`)||t.startsWith(`${e}/`)}function ot(e,t){if(e.kind&&e.kind!==t.kind||e.tree&&e.tree!==t.tree)return!1;if(t.kind===`context`){let n=e=>D(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 k(e.path,t.path)}function st(e){return at(`tree.refresh`,{treeName:e?.treeName,path:e?.path||`/`})}function ct(e,t,n){if(e.unknown||e.targets.length&&(t.wholeWorkspace||e.targets.some(e=>ot(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 lt(e,t,n={}){return m.request(C,{workspace:e,specs:t,opts:n})}function ut(e,t,n){return m.request(Ze,{sessionId:e,label:t,spec:n})}function dt(e){return m.request(Qe,{sessionId:e})}function A(e,t={}){return m.request($e,{sessionId:e,...t})}function ft(e){return m.request(et,{sessionId:e})}function pt(e){return m.on(w,e)}var mt=100;function ht({workspaceRef:e,specs:t,opts:n,enabled:r=!0}){let[i,a]=(0,T.useState)([]),[o,s]=(0,T.useState)(0),[c,l]=(0,T.useState)(null),[u,d]=(0,T.useState)(null),f=(0,T.useRef)([]),p=(0,T.useRef)(new Map),h=(0,T.useRef)(null),g=(0,T.useRef)(null),ee=(0,T.useRef)(null),te=(0,T.useRef)({}),_=(0,T.useRef)(null),v=(0,T.useMemo)(()=>JSON.stringify(t),[t]),ne=(0,T.useMemo)(()=>JSON.stringify(n??{}),[n]),y=(0,T.useCallback)(()=>{let e=p.current;a(f.current.map(t=>e.get(t)).filter(Boolean))},[]),re=(0,T.useCallback)(async e=>{let t=g.current;if(!t||e.length===0)return[];let n=[];for(let r=0;r<e.length;r+=mt){let i=e.slice(r,r+mt),a=await de(t,`/`,[],{ids:i,scope:`workspace`,limit:i.length});n.push(...a.payload||[])}return n},[]),ie=(0,T.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]),b=(0,T.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 ie(a,[],t)},[ie]);(0,T.useEffect)(()=>{if(g.current=e??null,!r||!e)return;let t=!1,n=null,i=async()=>{try{let r=await lt(e,JSON.parse(v),JSON.parse(ne));if(t){ft(r.sessionId).catch(()=>{});return}n=r.sessionId,h.current=r.sessionId,l(r.sessionId),d(null),f.current=[],p.current=new Map,await b(r.ids,r.count)}catch(e){if(t)return;d(e instanceof Error?e.message:`Failed to open query session`),l(null),h.current=null}};i();let o=m.on(`connect`,()=>{i()});return()=>{t=!0,o?.();let e=n??h.current;e&&ft(e).catch(()=>{}),h.current=null,f.current=[],p.current=new Map,l(null),a([]),s(0)}},[e,v,ne,r]),(0,T.useEffect)(()=>{if(!c)return;let e=pt(e=>{if(e.sessionId===c){if(ee.current!==null){_.current?.(ee.current,te.current);return}e.ids===void 0?ie(e.added??[],e.removed??[],e.count):b(e.ids,e.count)}});return()=>{e?.()}},[c,ie,b]);let ae=(0,T.useCallback)(async()=>{let e=h.current;if(e)try{let t=await dt(e);await b(t.ids,t.count)}catch{}},[b]),oe=(0,T.useCallback)(async(e,t)=>{let n=h.current;if(!n)throw Error(`No open query session`);let r=await ut(n,e,t);if(ee.current!==null){await _.current?.(ee.current,te.current);return}await b(r.ids,r.count)},[b]),se=(0,T.useCallback)(async(e,t={})=>{let n=h.current;if(!n)throw Error(`No open query session`);if(ee.current=e,te.current=t,e===null){await ae();return}let r=await A(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,ae]);(0,T.useEffect)(()=>{_.current=se},[se]);let ce=(0,T.useCallback)(async(e,t,n={})=>{let r=h.current;if(!r)throw Error(`No open query session`);let i=await A(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 ut(r,e,{ids:i.ids});return await b(a.ids,a.count),i.ids},[b]);return{documents:i,count:o,ready:c!==null,error:u,setCue:oe,resync:ae,rank:se,rankAndPin:ce}}function gt({data:e,className:t}){let[n,r]=(0,T.useState)(!0),{rows:i,gapIndex:a,span:o}=(0,T.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,E.jsxs)(`div`,{className:u(`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 l=a>0?i[a].distance:null;return(0,E.jsxs)(`div`,{className:u(`rounded-md border border-border bg-muted/30 text-xs`,t),children:[(0,E.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,E.jsx)(s,{className:`h-3.5 w-3.5`}):(0,E.jsx)(c,{className:`h-3.5 w-3.5`}),`Query debug`,(0,E.jsxs)(`span`,{className:`font-normal text-muted-foreground`,children:[`: image distances for “`,e.query,`” (`,i.length,` nearest, unfloored)`]})]}),n&&(0,E.jsxs)(`div`,{className:`space-y-2 border-t border-border px-3 py-2`,children:[(0,E.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.`,l===null?(0,E.jsxs)(E.Fragment,{children:[` `,(0,E.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,E.jsxs)(E.Fragment,{children:[` A jump at `,(0,E.jsx)(`span`,{className:`font-mono`,children:l.toFixed(4)}),` (Δ`,o.biggest.toFixed(4),`, vs typical Δ`,o.median.toFixed(4),`) stands out (a likely boundary).`]})]}),(0,E.jsx)(`div`,{className:`max-h-56 overflow-y-auto`,children:(0,E.jsx)(`table`,{className:`w-full font-mono text-[11px]`,children:(0,E.jsx)(`tbody`,{children:i.map((e,t)=>(0,E.jsxs)(`tr`,{className:u(`border-b border-border/40 last:border-0`,t===a&&`border-t-2 border-t-amber-500/70`),children:[(0,E.jsx)(`td`,{className:`py-0.5 pr-3 text-muted-foreground`,children:t+1}),(0,E.jsxs)(`td`,{className:`py-0.5 pr-3`,children:[`#`,e.id]}),(0,E.jsx)(`td`,{className:`py-0.5 tabular-nums`,children:e.distance.toFixed(4)}),t===a&&(0,E.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,E.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.`]})]})]})}function _t(e,t){if(!e)return[];let n=t.split(`/`).filter(Boolean),r=e;for(let e of n)if(r=r?.children?.find(t=>t.name===e)??null,!r)return[];let i=n.length?`/${n.join(`/`)}`:``,a=(r.children??[]).filter(e=>e.type!==`canvas`).map(e=>({name:e.name,path:`${i}/${e.name}`,label:e.label,color:e.color,childCount:e.children?.length??0})).sort((e,t)=>(e.label||e.name).localeCompare(t.label||t.name,void 0,{numeric:!0,sensitivity:`base`}));return n.length>0&&a.unshift({name:`..`,path:n.length>1?`/${n.slice(0,-1).join(`/`)}`:`/`,isParent:!0}),a}var vt=new Map;function yt(e,t,n){return`${e}\0${t}\0${n}`}function bt(e,t,n,r,i,a,o=``,s=``,c=`path`){return`${yt(e,t,n)}\0${r}\0${i}\0${a}\0${o}\0${s}\0${c}`}function j(e,t,n){let r=yt(e,t,n);for(let e of vt.keys())e.startsWith(r)&&vt.delete(e)}function xt(e,t){let n=`${e}\0`;for(let[e,r]of vt){if(!e.startsWith(n))continue;let[,i,a,,,,,,o=`path`]=e.split(`\0`);ct(t,{tree:i,kind:g(i),path:a,wholeWorkspace:o.startsWith(`workspace`)},r.documents.map(e=>Number(e.id)))&&vt.delete(e)}}function St(e,t){xt(t?.workspaceName??e,st(t))}function Ct(){let{workspaceName:e}=r();return e?(0,E.jsx)(Le,{workspaceName:e,children:(0,E.jsx)(M,{})}):null}function M(){let{workspaceName:e,treeName:t}=r(),n=a(),o=i(),{showToast:s,showProgress:c}=h(),l=new URLSearchParams(n.search),Le=(()=>{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]:[]})(),[C,Ze]=(0,T.useState)(null),[Qe,$e]=(0,T.useState)(!0),[et,w]=(0,T.useState)([]),[nt,D]=(0,T.useState)(!1),[rt,O]=(0,T.useState)(0),k=Xe(),[ot,lt]=(0,T.useState)(null),[ut,dt]=(0,T.useState)(k);ut!==k&&(dt(k),k||lt(null));let[A,ft]=(0,T.useState)(`path`),[pt,mt]=(0,T.useState)(!1),[yt,Ct]=(0,T.useState)(null),[M,wt]=(0,T.useState)(null),[Et,Dt]=(0,T.useState)(``),[Ot,kt]=(0,T.useState)(!1),[At,jt]=(0,T.useState)(!1),[Mt,Nt]=(0,T.useState)(!1),[N,Pt]=(0,T.useState)(null),[P,F]=(0,T.useState)(1),[I,Ft]=(0,T.useState)(50),[L,It]=(0,T.useState)(Le),[Lt,Rt]=(0,T.useState)(null),{state:R,saveFilters:zt,setSort:Bt,setAccentColor:Vt,setMapDocuments:Ht}=Ce(),Ut=R.filters.features.allOf,z=R.filters.features.anyOf,Wt=R.filters.features.noneOf,Gt=Oe(R.filters.timeline),Kt=De(R.filters.geo),qt=Ae(R.filters.lens,R.filters.geo.includeUnlocated),B=R.filters.lens.ids,Jt=[...Gt,...Kt,...qt],Yt=R.filters.sort??ke,Xt=JSON.stringify({a:Ut,b:z,c:Wt,d:Jt,i:B,s:Yt}),Zt=JSON.stringify({a:Ut,b:z,c:Wt,d:Jt,s:Yt}),V=je(n.pathname).path,H=t??`context`,U=H===`backends`,[Qt,$t]=(0,T.useState)([]);(0,T.useEffect)(()=>{!U||!e||ge(e).then($t).catch(()=>$t([]))},[U,e]);let en=U?ae(V,Qt):null,[tn,nn]=(0,T.useState)(!1),rn=`${H}\0${V}`,[an,on]=(0,T.useState)(rn);an!==rn&&(on(rn),nn(!1));let W=l.get(`layer`)===`1`,G=l.get(`layerId`)||null,[K,sn]=(0,T.useState)(null),[q,cn]=(0,T.useState)(null),ln=(0,T.useRef)(null);(0,T.useEffect)(()=>{ln.current=q},[q]);let[un,dn]=(0,T.useState)(`left`),[fn,pn]=(0,T.useState)([]),{openM1Drawer:mn,openM2Drawer:hn,goBack:gn}=Pe(),[_n,vn]=(0,T.useState)([]),J=(0,T.useMemo)(()=>{if(!K||V===`/`||W)return null;let e=V.split(`/`).filter(Boolean),t=K;for(let n of e)if(t=t?.children?.find(e=>e.name===n)??null,!t)return null;return t},[K,V,W]),Y=J?.type===`canvas`?`canvas`:null,yn=(0,T.useRef)(null);(0,T.useEffect)(()=>{!e||!K||W||yn.current===`${e}/${H}`&&(V!==`/`&&!J||Fe(e,H,V))},[e,K,W,V,J,H]);let bn=(0,T.useMemo)(()=>W||A===`workspace`||L.length>0||g(H)!==`directory`?[]:_t(K,V),[K,V,H,W,A,L]),xn=W?null:V===`/`?K:J,X=xe(),Sn=`${H}\0${V}`,[Cn,wn]=(0,T.useState)(null),Tn=Cn?.key===Sn?Cn.views:We(xn?.metadata),En=X?.pinned&&X.view?[X.view,...Tn.filter(e=>e.id!==X.view.id)]:Tn,Dn=X?.pinned&&X.view?X.view.id:Cn?.key===Sn?Cn.activeId:En[0]?.id??Ve.id,Z=En.find(e=>e.id===Dn)??En[0]??Ve;(0,T.useEffect)(()=>{X?.selectView(Z)},[Z,X]);let On=U?void 0:X?.schema??ze(Z),kn=On?[...Ut,On]:Ut;He(Be({workspace:e??null,treeNameOrId:H,treeType:g(H),path:V,scope:A===`workspace`?`workspace`:W?`layer`:`path`,layerId:W?G:void 0,unfiledOnly:tn},{...R.filters,features:{...R.filters.features,allOf:kn}},R.geoSelection,L));let An=e=>{let t=En.find(t=>t.id===e);t&&X?.selectView(t),F(1),pn([]),wn({key:Sn,views:En,activeId:e})},jn=(t,n)=>{n&&n!==Dn&&(F(1),pn([]));let r=t.find(e=>e.id===(n??Dn));r&&X?.selectView(r),wn({key:Sn,views:t,activeId:n??Dn}),oe(e,V,{metadata:{...xn?.metadata??{},views:t}},H).catch(()=>{s({title:`View not saved`,description:`Could not persist views to the layer`,variant:`destructive`})})},Mn=Y===`canvas`&&typeof J?.querySpec?.query==`string`?J.querySpec.query:``,Nn=Y===`canvas`?{label:J?.label,description:J?.description,color:J?.color}:null,{isPinned:Pn,pin:Fn,unpin:In,pins:Ln}=ve(),Rn=C?.name,Q=(0,T.useMemo)(()=>Rn&&Y===`canvas`&&!W?{workspaceName:Rn,treeName:H,path:V}:null,[Rn,Y,W,H,V]),zn=Q?Pn(Q):!1,Bn=J?.id,Vn=J?.label,Hn=(0,T.useCallback)(async()=>{if(Q)try{let e=Ln.find(e=>e.workspaceName===Q.workspaceName&&e.treeName===Q.treeName&&e.path===Q.path);e?await In(e.id):await Fn({...Q,layerId:Bn,label:Vn})}catch(e){console.error(`Failed to update home pins:`,e)}},[Q,Ln,Fn,In,Bn,Vn]),Un=e?`${e}://${V===`/`?``:V.replace(/^\//,``)}`:``,Wn=we(C?.color)||null;(0,T.useEffect)(()=>(Vt(Wn),()=>Vt(null)),[Wn,Vt]);let Gn=(0,T.useCallback)(async t=>{let n=B;if(t?.anyOf?.length&&z.length&&(n=((await v(e,V,H,{limit:0,anyOf:z,ids:B,applyCanvasSpec:!1})).payload||[]).map(e=>e.id),!n.length))return{payload:[],count:0,totalCount:0};let r=await v(e,V,H,{limit:t?.limit,offset:t?.offset,page:t?.page,sortBy:t?.sortBy,order:t?.order,allOf:[...Ut,...t?.allOf??[]],anyOf:t?.anyOf?.length?t.anyOf:z,noneOf:Wt,filters:Jt,ids:n,queries:[...L,...t?.queries??[],...t?.q?[t.q]:[]],applyCanvasSpec:!1});return{payload:r.payload||[],count:r.count??void 0,totalCount:r.totalCount??void 0}},[e,V,H,Xt,L]);(0,T.useEffect)(()=>{e&&(async()=>{$e(!0);try{let t=await p.get(`${f.workspaces}/${e}`),n;n=t&&`workspace`in t?t.workspace:t,Ze(n)}catch(t){let n=t instanceof Error?t.message:`Failed to fetch workspace ${e}`;s({title:`Error`,description:n,variant:`destructive`}),Ze(null)}finally{$e(!1)}})()},[e,s]),(0,T.useEffect)(()=>{let e=e=>{let t=e.detail?.workspace;t&&Ze(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 Kn=(B?.length??0)>0&&!W&&!(tn&&en)&&L.length<=1,{documents:qn,count:Jn,ready:Yn,setCue:Xn,resync:Zn,rank:Qn}=ht({workspaceRef:e,specs:(0,T.useMemo)(()=>{let e={features:{allOf:kn,anyOf:z,noneOf:Wt},filters:Jt};return A!==`workspace`&&(g(H)===`directory`?e.directory={tree:H,path:V}:e.context=V),[{label:`scope`,spec:e}]},[Zt,V,H,A,On]),opts:(0,T.useMemo)(()=>({mode:`live`,debounceMs:150}),[]),enabled:Kn}),$n=Kn&&Yn,er=(0,T.useRef)(!1);(0,T.useEffect)(()=>{er.current=$n},[$n]);let tr=L.length===1?L[0].trim():``;(0,T.useEffect)(()=>{Yn&&Qn(tr?{text:tr}:null,{limit:I,offset:(P-1)*I}).catch(()=>{})},[Yn,tr,I,P,Qn]);let nr=(B??[]).join(`,`);(0,T.useEffect)(()=>{Yn&&Xn(`lens`,{ids:B??[]}).catch(()=>{})},[Yn,nr,Xn,B]);let rr=$n?qn:et,ir=$n?Jn:rt,ar=(0,T.useRef)(new Set);(0,T.useEffect)(()=>{ar.current=new Set(rr.map(e=>Number(e.id)))},[rr]);let or=R.geoSelection;(0,T.useEffect)(()=>{Ht(rr,C?.name??null)},[rr,C?.name,Ht]),(0,T.useEffect)(()=>()=>Ht([]),[Ht]);let sr=(0,T.useMemo)(()=>or?rr.filter(e=>Te(e,or,R.filters.geo.includeUnlocated)):rr,[rr,or,R.filters.geo.includeUnlocated]),cr=fe(V,kn,{treeName:H,treeType:g(H),scope:A,queries:L,anyOf:z,noneOf:Wt,filters:Jt,ids:B,layerId:W&&G?G:void 0}),lr=JSON.stringify([e,cr]),[ur,dr]=(0,T.useState)(``),[fr,pr]=(0,T.useState)(!1),mr=(0,T.useRef)(!1),hr=nt||fr||ur!==lr||$n||!!or,gr=(0,T.useRef)(0),_r=(0,T.useRef)(null);(0,T.useEffect)(()=>()=>{gr.current++,_r.current=null},[]);let vr=(0,T.useRef)(``),$=(0,T.useCallback)(async t=>{if(!e)return;if(Ee(H,V)){gr.current++,_r.current=null,vr.current=``,w([]),O(0),D(!1);return}if(er.current)return;let n=`${tn&&en?`${A}:unfiled`:A}:${On??``}`,r=(B?.length??0)>0,i=bt(e,H,V,P,I,L.join(`␟`),Zt,W&&G?G:``,n),a=r&&i===vr.current;vr.current=i;let o=bt(e,H,V,P,I,L.join(`␟`),Xt,W&&G?G:``,n),c=`${o}\0${k}`;if(t?.silent&&_r.current?.key===c){_r.current.refreshPending=!0;return}let l=++gr.current,u=t?.silent||r||k?void 0:vt.get(o);u&&(w(u.documents),O(u.totalCount),dr(lr),D(!1)),(t?.silent??(a||!!u))||D(!0);let d={key:c,refreshPending:!1};_r.current=d;try{let t;if(tn&&en)t=await b(e,en.driver,en.address,{linked:!1,limit:I,offset:(P-1)*I});else if(W&&G&&A!==`workspace`)t=await ce(e,H,G,{limit:I,page:P,queries:L,allOf:kn,anyOf:z,noneOf:Wt,filters:Jt,ids:B,sortBy:Yt.sortBy||void 0,order:Yt.order});else{let n=g(H);t=await de(e,V,kn,{limit:I,page:P,treeName:H,treeType:n,queries:L,anyOf:z,noneOf:Wt,filters:Jt,ids:B,sortBy:Yt.sortBy||void 0,order:Yt.order,scope:A,debug:k&&L.length>0,debugLimit:200})}let n=t.payload||[],i=t.totalCount||t.count||0;if(!r&&!d.refreshPending&&vt.set(o,{documents:n,totalCount:i}),l!==gr.current)return;let s=t.debug,c=s?.imageDistances??s?.distances??null;lt(c?{query:L[L.length-1]??``,distances:c}:null),w(a?e=>e.length===n.length&&e.every((e,t)=>e.id===n[t].id)?e:n:n),O(i),dr(lr)}catch(e){if(l!==gr.current)return;let t=e instanceof Error?e.message:`Failed to fetch documents`;s({title:`Error`,description:t,variant:`destructive`}),w([]),O(0)}finally{_r.current===d&&(_r.current=null),l===gr.current&&D(!1),l===gr.current&&d.refreshPending&&$({silent:!0})}},[e,V,H,G,W,P,I,C?.status,L,Xt,A,tn,k,On]);(0,T.useEffect)(()=>{$()},[$]),(0,T.useEffect)(()=>{let t=t=>{let n=t.detail;!n||n.workspaceName!==e||(cn({treeName:n.treeName||`context`,path:Me(n.path||`/`)}),dn(`left`))};return window.addEventListener(`workspace:open-to-side`,t),()=>window.removeEventListener(`workspace:open-to-side`,t)},[e,H,V]),(0,T.useEffect)(()=>{let t=t=>{let n=t.detail;if(!(n?.workspaceName&&n.workspaceName!==e)&&(e&&St(e,n),ct(st(n),{tree:H,kind:g(H),path:V,wholeWorkspace:A===`workspace`}))){if(e&&j(e,H,V),er.current){Zn();return}$({silent:!0})}};return window.addEventListener(`workspace:documents:refresh`,t),()=>window.removeEventListener(`workspace:documents:refresh`,t)},[$,e,V,H,A,Zn]);let yr=C?.name,br=C?.id;(0,T.useEffect)(()=>{if(!e||!yr&&!br)return;let t=[yr,br].filter(Boolean).map(e=>`workspace:${e}`),n=()=>t.forEach(e=>m.emit(`subscribe`,{channel:e}));n();let r=m.on(`connect`,n),i=new Map,a=!1,o=()=>{ne(e).then(e=>{a||(i=it(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,er.current){Zn();return}$({silent:!0})}},f=t=>n=>{(t.startsWith(`tree.created`)||t.startsWith(`tree.renamed`))&&o();let r=at(t,n,i);xt(e,r);let a={tree:H,kind:g(H),path:V,wholeWorkspace:A===`workspace`},f=ln.current;f&&ct(r,{tree:f.treeName,kind:g(f.treeName),path:f.path})&&(u=f),ct(r,a,ar.current)&&(l=!0),!(!l&&!u)&&(s||=setTimeout(d,Math.max(200,c+1500-Date.now())))},p=[`document.inserted`,`document.inserted.batch`,`document.updated`,`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])=>m.on(e,t)),()=>{a=!0,s&&clearTimeout(s),r?.(),p.forEach(([e,t])=>m.off(e,t))}},[e,br,yr,H,V,A,$,Zn]);let xr=`${V}\0${H}\0${G??``}\0${A}`,[Sr,Cr]=(0,T.useState)(xr);Sr!==xr&&(Cr(xr),F(1),Rt(null));let wr=`${V}\0${H}\0${G??``}`,[Tr,Er]=(0,T.useState)(wr);Tr!==wr&&(Er(wr),ft(`path`));let Dr=(e,t)=>{let n=e===`/`?`canvas`:e.split(`/`).pop()||`canvas`;Dt(n),wt({parentPath:e,captureView:t})},Or=l.get(`createCanvas`)===`1`,[kr,Ar]=(0,T.useState)(!1);kr!==Or&&(Ar(Or),Or&&Dr(V,!1)),(0,T.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,V]);let jr=(0,T.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`),...Le]),[Nr,Pr]=(0,T.useState)(Mr);Nr!==Mr&&(Pr(Mr),It(Le),F(1));let Fr=`${Mr}\0${Y??``}\0${Mn}\0${V}\0${Lt??``}`,[Ir,Lr]=(0,T.useState)(Fr);Ir!==Fr&&(Lr(Fr),l.has(`q`)||Le.length>0||Y!==`canvas`||Lt===V||(It(Mn?[Mn]:[]),F(1)));let Rr=(0,T.useCallback)(e=>{let t=e.trim();t&&(Rt(null),It(e=>{if(e.includes(t))return e;let n=[...e,t];return jr(n),F(1),n}))},[jr,Rt,It,F]),zr=(0,T.useCallback)(e=>{It(t=>{let n=e<0?[]:t.filter((t,n)=>n!==e);return n.length===0&&Rt(V),jr(n),F(1),n})},[jr,V,Rt,It,F]),Br=L.join(` `).trim(),Vr=!!R.activeContextType&&(R.isDirty||Br!==(Y===`canvas`?Mn:R.savedSearchQuery||``));!e&&K!==null&&sn(null),(0,T.useEffect)(()=>{let t=!1;if(!e)return;let n=0,r=!1,i=(i=!1)=>{let a=++n;i&&se(e,H),te(e,H).then(i=>{!t&&a===n&&(r=!0,yn.current=`${e}/${H}`,sn(i))}).catch(()=>{!t&&a===n&&!r&&sn(null)})};i(!1);let a=t=>{let n=t.detail;n?.workspaceName&&n.workspaceName!==e||n?.treeName&&n.treeName!==H||i(!n?.cacheInvalidated)};window.addEventListener(`workspace:tree:refresh`,a);let o=S(e,br);return()=>{t=!0,o(),window.removeEventListener(`workspace:tree:refresh`,a)}},[e,H,br]),!(e&&Y===`canvas`&&!W)&&N!==null&&Pt(null),(0,T.useEffect)(()=>{let t=!1;if(!(!e||Y!==`canvas`||W))return re(e,V,H).then(e=>{t||Pt(e)}).catch(()=>{t||Pt(null)}),()=>{t=!0}},[e,V,H,Y,W]);let Hr=async()=>{if(C){mt(!0);try{let t=await le(e||C.id);Ze(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{mt(!1)}}},Ur=async t=>{if(!C)return;let n=c({title:`Removing…`,description:`Document from "${V}"`});try{await ue(e||C.id,[t],V,[],H,Zr,{trashIfOrphaned:!0}),j(e||C.id,H,V),w(e=>e.filter(e=>e.id!==t)),O(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(!C)return;let n=c({title:`Deleting…`,description:`Document from "${V}"`});try{await me(e||C.id,[t],V,[],H,Zr),j(e||C.id,H,V),w(e=>e.filter(e=>e.id!==t)),O(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(!C)return;let n=c({title:`Removing…`,description:`${t.length} document(s) from "${V}"`});try{await ue(e||C.id,t,V,[],H,Zr,{trashIfOrphaned:!0}),j(e||C.id,H,V),w(e=>e.filter(e=>!t.includes(e.id))),O(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(!C)return;let n=c({title:`Deleting…`,description:`${t.length} document(s)`});try{await me(e||C.id,t,V,[],H,Zr),j(e||C.id,H,V),w(e=>e.filter(e=>!t.includes(e.id))),O(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(!C)return;let n=c({title:`Destroying…`,description:`Document and its backend copies`});try{let r=await ee(e||C.id,[t]);if(r.failed?.length){n.fail({title:`Error`,description:r.failed[0].reason,variant:`destructive`});return}w(e=>e.filter(e=>e.id!==t)),O(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(!C)return;let n=c({title:`Destroying…`,description:`${t.length} document(s) and their backend copies`});try{let r=await ee(e||C.id,t),i=new Set(r.successful?.filter(e=>e.docDeleted).map(e=>e.id)??[]);w(e=>e.filter(e=>!i.has(e.id))),O(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:V,sourceTreeName:H}),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:V,sourceTreeName:H}),window.dispatchEvent(new CustomEvent(`documents:clipboard`,{detail:{documentIds:e,operation:`cut`}})),s({title:`Cut`,description:`${e.length} document(s) cut to clipboard`})},Zr=g(H),Qr=async(t,n,r={})=>{if(!e)return!1;let i=r.targetTreeName??H,a=r.targetTreeType??Zr,o=r.move??yt?.operation===`cut`,s=c({title:o?`Moving…`:`Pasting…`,description:`${n.length} document(s) → "${t}"`});try{let c=await _e(e,t,n,i,a);if(c){j(e,i,t);let a=r.sourceTreeName||yt?.sourceTreeName,c=r.sourcePath||yt?.sourcePath;if((r.move??yt?.operation===`cut`)&&c&&a){let t=g(a);await ue(e,n,c,[],a,t),j(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 $(),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 pe(e,n,t,H,Zr)).length>0;return r&&(Se(e,H,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(!C||ir===0||hr||mr.current||window.prompt(`Type PURGE to permanently delete all ${ir} matching documents across all pages.`)!==`PURGE`)return;mr.current=!0,pr(!0);let t=c({title:`Purging…`,description:`${ir} matching document(s)`});try{let n=await y(e||C.id,cr,ir);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{j(e||C.id,H,V),await $({silent:!0}),mr.current=!1,pr(!1)}},ti=()=>Dr(V,!0),ni=async()=>{if(!(!e||!M||!Et.trim())){kt(!0);try{let t=Et.trim(),n=M.parentPath,r=n===`/`?`/${t}`:`${n}/${t}`,i={...R.filters,features:{...R.filters.features,allOf:kn}};await he(e,r,H,M.captureView?{metadata:{toolbox:i},querySpec:{features:i.features,filters:[...Oe(R.filters.timeline),...De(R.filters.geo)],query:Br||void 0,sort:R.filters.sort?.sortBy?R.filters.sort:null}}:{}),wt(null),se(e,H);try{let t=await te(e,H,{force:!0});sn(t)}catch{}window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e}})),o(Ne(e,r,H))}catch(e){s({title:`Error`,description:e instanceof Error?e.message:`Failed to create canvas`,variant:`destructive`})}finally{kt(!1)}}},ri=async()=>{if(!(!e||Y!==`canvas`)){jt(!0);try{let t=N||await ie(e,V,H);Pt(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{jt(!1)}}},ii=async()=>{if(N){jt(!0);try{await x(N.code),Pt(null),window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e,treeName:H}})),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{jt(!1)}}},ai=async()=>{if(!e||Y!==`canvas`||V===`/`)return;let t=Nn?.label||V.split(`/`).pop()||`canvas`,n=N?` Its public link will stop working.`:``;if(window.confirm(`Delete canvas "${t}"? This cannot be undone.${n}`)){Nt(!0);try{if(N)await x(N.code),Pt(null);else if(J?.locked){s({title:`Canvas is locked`,description:`Unlock it before deleting.`,variant:`destructive`});return}await _(e,V,!1,H);let n=V.split(`/`).filter(Boolean);n.pop();let r=n.length?`/${n.join(`/`)}`:`/`;window.dispatchEvent(new CustomEvent(`workspace:tree:refresh`,{detail:{workspaceName:e,treeName:H}})),o(Ne(e,r,H)),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{Nt(!1)}}},oi=(0,T.useCallback)(async t=>{if(!e||!q)return;let n={treeName:H,path:V},r=un===`left`?n:q,i=un===`left`?q:n,a=un===`left`?fn:_n;if(a.length===0){s({title:`Nothing selected`,description:`Tick documents in the focused pane first.`});return}let o=g(i.treeName),l=c({title:t?`Moving…`:`Copying…`,description:`${a.length} document(s) → "${i.path}"`});try{if(!await _e(e,i.path,a,i.treeName,o)){l.done();return}if(j(e,i.treeName,i.path),t){let t=g(r.treeName);await ue(e,a,r.path,[],r.treeName,t),j(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,q,un,H,V,fn,_n,s,c]);if((0,T.useEffect)(()=>{if(!q)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)},[q,oi]),Qe)return(0,E.jsx)(`div`,{className:`flex items-center justify-center h-full`,children:(0,E.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,E.jsx)(`div`,{className:`animate-spin rounded-full h-8 w-8 border-b-2 border-primary mx-auto`}),(0,E.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading workspace...`})]})});if(!C)return(0,E.jsx)(`div`,{className:`flex items-center justify-center h-full text-muted-foreground`,children:`Workspace not found.`});let si=Y===`canvas`&&!W&&!!J,ci=!si&&!U&&xn?(0,E.jsx)(Ge,{views:En,activeId:Dn,onSelect:An,onSave:jn,accentColor:we(C.color),onOpenToSide:e=>{cn({treeName:H,path:V,viewId:e}),dn(`right`)}}):void 0,li=en||C.status!==`active`?(0,E.jsxs)(E.Fragment,{children:[en&&(0,E.jsx)(`button`,{type:`button`,onClick:()=>{nn(!tn),F(1)},"aria-pressed":tn,className:u(`min-h-10 rounded-md border px-2 text-xs`,tn&&`bg-warning/15 text-warning`),children:`Unfiled only`}),C.status!==`active`&&(0,E.jsx)(`button`,{type:`button`,onClick:Hr,disabled:pt,className:`min-h-10 rounded-md border px-2 text-xs`,children:pt?`Starting…`:`Start`})]}):void 0,ui=Ee(H,V)?V===`/Trash`?(0,E.jsx)(`div`,{className:`h-full overflow-auto p-4`,children:(0,E.jsx)(Je,{workspaceName:e||C.id})}):(0,E.jsx)(Ye,{workspace:e||C.id,path:V,onNavigate:t=>o(Ne(e,t,`backends`))},e):(0,E.jsx)(Ke,{navigationTabs:ci,navigationActions:li,onBack:gn,accentColor:we(C.color),urlType:W?g(H)===`directory`?`${H}-layer`:`context-layer`:Y===`canvas`?`canvas`:g(H)===`directory`?H:`context`,urlDisplay:Un,contextPath:V,treeName:H,workspaceId:e||C.id,workspaceLabel:C.label||C.name,workspaceIcon:C.icon,documentSchema:On,documents:sr,isLoading:nt,totalCount:ir,currentPage:P,pageSize:I,onPageChange:F,onPageSizeChange:e=>{Ft(e),F(1)},onRemoveDocument:V===`/`?void 0:Ur,onDeleteDocument:Wr,onDestroyDocument:qr,onRemoveDocuments:V===`/`?void 0:Gr,onDeleteDocuments:Kr,onDestroyDocuments:Jr,onCopyDocuments:Yr,onCutDocuments:Xr,onPasteDocuments:U?void 0:Qr,onImportDocuments:U?void 0:$r,onSelectionChange:pn,onBrowseTree:()=>hn(`workspaces`,`detail`,e??null),onBrowseWorkspaces:()=>mn(`workspaces`),onNavigatePath:t=>o(Ne(e,t,H)),folders:bn,onOpenFolder:t=>o(Ne(e,Me(t),H)),scope:A,onScopeChange:ft,pastedDocumentIds:yt?.documentIds,linkTree:K,onPurgeDocuments:U?void 0:ei,disablePurgeDocuments:hr,canvasInfo:Nn??void 0,isCanvasPinned:zn,onTogglePinCanvas:Q?Hn:void 0,onSaveAsCanvas:K&&Y!==`canvas`&&!W&&!U?ti:void 0,onShareCanvas:Y===`canvas`&&!W?ri:void 0,onUnshareCanvas:N?ii:void 0,onDeleteCanvas:Y===`canvas`&&!W?ai:void 0,isSharingCanvas:At,isDeletingCanvas:Mt,isCanvasShared:!!N,isCanvasLocked:!!J?.locked,backendSearchQueries:L,onBackendSearch:Rr,serverSort:R.filters.sort,onServerSortChange:Bt,onRemoveBackendQuery:zr,canSaveChanges:Vr,isSavingChanges:R.isSaving,onSaveChanges:zt,contentBanner:k&&ot?(0,E.jsx)(gt,{data:ot,className:`mb-3`}):null,children:si&&J?(0,E.jsx)(ye,{workspaceId:e||C.id,treeName:H,path:V,layerId:J.id,querySpec:J.querySpec,metadata:J.metadata,isLocked:!!J.locked,fetchDocuments:R.isDirty?Gn:void 0}):!U&&Z.kind===`columns`?(0,E.jsx)(Ue,{documents:sr,workspaceId:e||C.id,columns:Z.columns??[],onColumnsChange:e=>jn(En.map(t=>t.id===Z.id?{...t,columns:e}:t))}):!U&&Z.kind===`app`&&Z.app&&Z.app!==`notes`?(0,E.jsx)(qe,{app:Z.app,workspaceId:e||C.id,treeName:H,path:V}):null});return(0,E.jsxs)(Ie,{workspaceId:e||C.id,treeName:H,path:V,headerOnly:!0,className:`relative flex flex-col h-full min-h-0`,children:[(0,E.jsx)(tt,{workspaceId:C.id,workspaceName:C.label||C.name},C.id),Ee(H,V)&&(0,E.jsx)(be,{workspace:C.label||C.name,workspaceIcon:C.icon,tree:H,path:V,onBack:gn,onBrowseTree:()=>hn(`workspaces`,`detail`,e||C.id),onBrowseWorkspaces:()=>mn(`workspaces`),onNavigatePath:t=>o(Ne(e,t,H)),accentColor:we(C.color)}),M&&(0,E.jsx)(`div`,{className:`shrink-0 px-2 pt-2`,children:(0,E.jsx)(Re,{title:`New canvas`,onClose:()=>wt(null),children:(0,E.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),ni()},className:`space-y-4`,children:[(0,E.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`label`,{htmlFor:`canvas-name`,className:`mb-1 block text-sm font-medium`,children:`Name`}),(0,E.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:Et,onChange:e=>Dt(e.target.value),onKeyDown:e=>{e.key===`Escape`&&wt(null)},autoFocus:!0})]}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`span`,{className:`mb-1 block text-sm font-medium`,children:`Parent path`}),(0,E.jsx)(`div`,{className:`flex h-10 items-center rounded-md bg-muted px-3 font-mono text-sm text-muted-foreground`,children:M.parentPath===`/`?`/`:M.parentPath})]})]}),(0,E.jsxs)(`label`,{className:`flex items-start gap-2 text-sm`,children:[(0,E.jsx)(`input`,{type:`checkbox`,className:`mt-0.5`,checked:M.captureView,onChange:e=>wt({...M,captureView:e.target.checked})}),(0,E.jsxs)(`span`,{children:[`Capture the current view`,(0,E.jsx)(`span`,{className:`block text-xs text-muted-foreground`,children:`Freezes the active filters, search and sort into the canvas.`})]})]}),(0,E.jsxs)(`div`,{className:`flex gap-2`,children:[(0,E.jsx)(d,{type:`submit`,disabled:!Et.trim()||Ot,children:Ot?`Creating…`:`Create canvas`}),(0,E.jsx)(d,{type:`button`,variant:`outline`,onClick:()=>wt(null),children:`Cancel`})]})]})})}),(0,E.jsxs)(`div`,{"data-canvas-panes":!0,className:`flex-1 min-h-0 flex gap-2`,children:[(0,E.jsx)(`div`,{"data-canvas-pane":!0,className:u(`flex-1 min-w-0 bg-background overflow-hidden`,q&&(un===`left`?`ring-2 ring-primary`:`ring-1 ring-primary/20`)),onMouseDown:e=>{e.target.closest(`button,input,textarea,select,a`)||dn(`left`)},children:ui}),q&&e&&(0,E.jsx)(Tt,{workspaceName:e,workspaceLabel:C.label||C.name,workspaceIcon:C.icon,pane:q,isFocused:un===`right`,clipboard:yt,setClipboard:Ct,onFocus:()=>dn(`right`),onSelectionChange:vn,onNavigate:e=>cn(t=>t&&{...t,path:e,viewId:void 0}),onClose:()=>{cn(null),dn(`left`),vn([])}})]})]})}function wt(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 Tt({workspaceName:e,workspaceLabel:t,workspaceIcon:n,pane:r,isFocused:i=!1,clipboard:a,setClipboard:o,onFocus:s,onSelectionChange:c,onNavigate:l,onClose:d}){let{openM1Drawer:f,openM2Drawer:p}=Pe(),{showToast:m,showProgress:_}=h(),[v,ne]=(0,T.useState)(null),[y,re]=(0,T.useState)([]),[ie,b]=(0,T.useState)(!1),[ae,oe]=(0,T.useState)(0),[ce,le]=(0,T.useState)(1),[fe,pe]=(0,T.useState)(50),x=g(r.treeName),he=wt(v,r.path),ge=he?.type===`canvas`,ve=(0,T.useMemo)(()=>x===`directory`?_t(v,r.path):[],[v,r.path,x]),ye=r.viewId?We(he?.metadata).find(e=>e.id===r.viewId)??null:null,be=`${e}://${r.path===`/`?``:r.path.replace(/^\//,``)}`,xe=ze(ye),S=(0,T.useCallback)(async()=>{if(Ee(r.treeName,r.path)){re([]),oe(0),b(!1);return}let t=bt(e,r.treeName,r.path,ce,fe,``,xe??``),n=vt.get(t);if(n){re(n.documents),oe(n.totalCount);return}b(!0);try{let n=await de(e,r.path,xe?[xe]:[],{limit:fe,page:ce,treeName:r.treeName,treeType:x}),i=n.payload||[],a=n.totalCount||n.count||0;re(i),oe(a),vt.set(t,{documents:i,totalCount:a})}catch(e){m({title:`Error`,description:e instanceof Error?e.message:`Failed to fetch side pane documents`,variant:`destructive`}),re([]),oe(0)}finally{b(!1)}},[e,r.path,r.treeName,x,fe,ce,m,xe]);(0,T.useEffect)(()=>{let t=!1,n=0,i=!1,a=(a=!1)=>{let o=++n;a&&se(e,r.treeName),te(e,r.treeName).then(e=>{!t&&o===n&&(i=!0,ne(e))}).catch(()=>{!t&&o===n&&!i&&ne(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,T.useEffect)(()=>{S()},[S]),(0,T.useEffect)(()=>{let t=t=>{let n=t.detail;n?.workspaceName&&n.workspaceName!==e||(St(e,n),ct(st(n),{tree:r.treeName,kind:g(r.treeName),path:r.path})&&(j(e,r.treeName,r.path),S()))};return window.addEventListener(`workspace:documents:refresh`,t),()=>window.removeEventListener(`workspace:documents:refresh`,t)},[S,e,r.treeName,r.path]);let Se=(0,T.useCallback)(async(t,n,i={})=>{let s=i.targetTreeName??r.treeName,c=i.targetTreeType??x,l=i.move??a?.operation===`cut`,u=_({title:l?`Moving…`:`Pasting…`,description:`${n.length} document(s) → "${t}"`});try{let r=await _e(e,t,n,s,c);if(r){j(e,s,t);let r=i.sourcePath||a?.sourcePath,c=i.sourceTreeName||a?.sourceTreeName;if((i.move??a?.operation===`cut`)&&r&&c){let t=g(c);await ue(e,n,r,[],c,t),j(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 S(),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,x,S,_,a,o]),Ce=(0,T.useCallback)(()=>{j(e,r.treeName,r.path),S()},[e,r.treeName,r.path,S]),we=(0,T.useCallback)(async t=>{let n=_({title:`Removing…`,description:`${t.length} document(s) from "${r.path}"`});try{await ue(e,t,r.path,[],r.treeName,x),Ce(),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,x,Ce,_]),Te=(0,T.useCallback)(async t=>{let n=_({title:`Deleting…`,description:`${t.length} document(s)`});try{await me(e,t,r.path,[],r.treeName,x),Ce(),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,x,Ce,_]),De=(0,T.useCallback)(async t=>{let n=_({title:`Destroying…`,description:`${t.length} document(s) and their backend copies`});try{let r=await ee(e,t);if(r.failed?.length&&!r.successful?.length){n.fail({title:`Error`,description:r.failed[0].reason,variant:`destructive`});return}Ce();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,Ce,_]);return(0,E.jsxs)(`div`,{className:u(`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:[d&&(0,E.jsx)(`button`,{type:`button`,onClick:d,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`}),Ee(r.treeName,r.path)?r.path===`/Trash`?(0,E.jsx)(`div`,{className:`h-full overflow-auto p-4`,children:(0,E.jsx)(Je,{workspaceName:e})}):(0,E.jsx)(Ye,{workspace:e,path:r.path,onNavigate:l||(()=>{})}):(0,E.jsx)(Ke,{frameContent:!1,onBrowseWorkspaces:()=>f(`workspaces`),onBrowseTree:()=>p(`workspaces`,`detail`,e),urlType:ge?`canvas`:x===`directory`?r.treeName:`context`,urlDisplay:be,contextPath:r.path,treeName:r.treeName,workspaceId:e,workspaceLabel:t,workspaceIcon:n,documentSchema:xe,documents:y,isLoading:ie,totalCount:ae,currentPage:ce,pageSize:fe,onPageChange:le,onPageSizeChange:e=>{pe(e),le(1)},onRemoveDocument:r.path===`/`?void 0:e=>we([e]),onRemoveDocuments:r.path===`/`?void 0:we,onDeleteDocument:e=>Te([e]),onDeleteDocuments:Te,onDestroyDocument:e=>De([e]),onDestroyDocuments:De,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:Se,onSelectionChange:c,pastedDocumentIds:a?.documentIds,linkTree:v,folders:ve,onOpenFolder:l,onNavigatePath:l,canvasInfo:ge?{label:he?.label,description:he?.description,color:he?.color}:void 0,children:ye?.kind===`columns`?(0,E.jsx)(Ue,{documents:y,workspaceId:e,columns:ye.columns??[],onColumnsChange:()=>{},readOnly:!0}):ye?.kind===`app`&&ye.app&&ye.app!==`notes`?(0,E.jsx)(qe,{app:ye.app,workspaceId:e,treeName:r.treeName,path:r.path}):null})]})}export{Ct as default};
|
|
@@ -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{h as r}from"./chunk-62JRHF6Z-vspAGgtK.js";import{Ct as i,Er as a,G as o,Jr as s,L as c,Lt as l,Pt as u,Rt as d,St as f,Vr as p,Wt as m,X as h,Zr as g,bn as _,ct as v,hn as y,it as b,mt as x,ri as S,tt as C,yn as w}from"./ui-CDoK3F3U.js";import{t as T}from"./utils-2pl1SbIp.js";import{An as E,Cn as D,Hn as O,K as k}from"./workspace-BJELPCNs.js";import{t as ee}from"./TodosWidget-CYK5RbYD.js";import{d as te,o as ne,u as re}from"./ObjectPropertiesCard-BTTwYnN9.js";import{h as ie,s as ae,t as oe,u as se}from"./document-list-CQ1_7Sja.js";import{n as ce,r as le}from"./use-toolbox-Ck_cLGgf.js";import{t as ue}from"./useToastHelpers-CRrpIIdY.js";import{n as A}from"./color-DFEH4BfK.js";import{t as de}from"./DocumentIcon-9i1uCMQa.js";import{r as fe}from"./workspace-BydSRtST.js";import{t as j}from"./registry-9MElXU-U.js";import{t as pe}from"./FileForm-C35drQ_R.js";import{t as me}from"./applet-target-I8w6EPj0.js";var M=e(n(),1);function he(e){let{pathname:t}=r(),n=le()?.setAgentView,i=JSON.stringify(e);(0,M.useEffect)(()=>(n?.({pathname:t,view:JSON.parse(i)}),()=>n?.(null)),[t,i,n])}function ge(e,t,n,r){return structuredClone({...e,query:fe(t,n,r),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})}var N=t();function _e({target:e,children:t}){let[n,r]=(0,M.useState)([]),i=(0,M.useRef)(!1),[a,o]=(0,M.useState)(!1),[s,c]=(0,M.useState)(!1),[l,u]=(0,M.useState)(null),{showErrorToast:d}=ue();return(0,N.jsxs)(`div`,{className:`relative flex flex-col h-full min-h-0 bg-background ${a?`ring-2 ring-inset ring-primary`:``}`,onDragOverCapture:t=>{s||!e||!Array.from(t.dataTransfer.types).includes(`Files`)||(t.preventDefault(),t.stopPropagation(),t.dataTransfer.dropEffect=i.current?`none`:`copy`,o(!i.current))},onDragLeaveCapture:e=>{e.currentTarget.contains(e.relatedTarget)||o(!1)},onDropCapture:t=>{if(s||!e||!Array.from(t.dataTransfer.types).includes(`Files`))return;if(t.preventDefault(),t.stopPropagation(),o(!1),i.current){d(`Wait for the current upload to finish`);return}let n=Array.from(t.dataTransfer.files);if(!n.length){d(`Drop files rather than folders`);return}r(n),u(e),c(!0)},children:[t,a&&(0,N.jsxs)(`div`,{className:`pointer-events-none absolute inset-0 z-30 flex items-center justify-center bg-background/80 text-sm font-medium`,children:[`Drop files to upload to `,e?.mode===`workspace`?e.path:`this context`]}),s&&(0,N.jsxs)(se,{label:`Import files`,onClose:()=>{i.current||c(!1)},children:[(0,N.jsx)(`h2`,{className:`border-b px-4 py-3 text-sm font-medium`,children:`Import files`}),(0,N.jsx)(pe,{target:l,initialFiles:n,onClose:()=>c(!1),onBusyChange:e=>{i.current=e}})]})]})}function P({navigationTabs:e,navigationActions:t,onBack:n,accentColor:r,frameContent:a=!0,urlType:s,urlDisplay:c,contextPath:u,treeName:f,workspaceId:p,workspaceLabel:m,workspaceIcon:g,documentSchema:v,documents:y,isLoading:b,totalCount:C,currentPage:w,pageSize:T,onPageChange:E,onPageSizeChange:O,onRemoveDocument:k,onDeleteDocument:ee,onDestroyDocument:ae,onRemoveDocuments:se,onDeleteDocuments:le,onDestroyDocuments:ue,onCopyDocuments:A,onCutDocuments:de,onPasteDocuments:fe,onImportDocuments:j,onSelectionChange:pe,pastedDocumentIds:me,onPurgeDocuments:he,disablePurgeDocuments:ge,canvasInfo:P,isCanvasPinned:F,onTogglePinCanvas:I,onSaveAsCanvas:L,onShareCanvas:R,onUnshareCanvas:z,onDeleteCanvas:B,isSharingCanvas:V,isDeletingCanvas:H,isCanvasShared:U,isCanvasLocked:W,backendSearchQueries:G,onBackendSearch:K,onRemoveBackendQuery:q,serverSort:ve,onServerSortChange:ye,scope:be,onScopeChange:xe,canSaveChanges:Se,isSavingChanges:J,onSaveChanges:Y,onBrowseWorkspaces:Ce,onBrowseTree:we,onNavigatePath:Te,linkTree:Ee,children:X,contentBanner:De,folders:Oe,onOpenFolder:ke}){let Ae=s===`canvas`,Z=ie(),{state:je,toggleView:Me,hasActiveFilters:Ne,openAddPicker:Pe}=ce(),Q=ne(),[Fe,$]=(0,M.useState)(``),Ie=JSON.stringify([p,f,u,v]),[Le,Re]=(0,M.useState)(Ie);Le!==Ie&&(Re(Ie),$(``));let ze=(0,N.jsxs)(N.Fragment,{children:[t,L&&(0,N.jsx)(`button`,{type:`button`,onClick:L,title:`Save as canvas`,"aria-label":`Save as canvas`,className:`flex h-control-sm w-control-sm shrink-0 items-center justify-center rounded-md border text-muted-foreground hover:bg-accent touch-target`,children:(0,N.jsx)(S,{className:`h-4 w-4`})})]});return(0,N.jsxs)(_e,{target:j&&p?{mode:`workspace`,workspaceName:p,path:u,treeName:f||`context`,treeType:D(f)}:null,children:[e&&!Z&&(0,N.jsx)(te,{accentColor:r,children:e}),(0,N.jsxs)(`div`,{className:`canvas-surface-body${a&&!Z?` is-framed`:``}`,children:[(0,N.jsx)(re,{workspaceIcon:g,workspace:m||p||c.split(`://`)[0]||`Workspace`,actions:Z&&e?(0,N.jsxs)(`details`,{className:`relative shrink-0`,"aria-label":`Canvas views`,children:[(0,N.jsx)(`summary`,{className:`cursor-pointer rounded-md border px-2 py-1 text-xs`,title:`Choose or manage content views`,children:`Views`}),(0,N.jsx)(`div`,{className:`absolute right-0 top-full z-30 mt-2 min-w-64 max-w-[80vw] rounded-md border bg-background p-2 shadow-lg`,children:e})]}):void 0,tree:f?`${f}${s.endsWith(`-layer`)?`:layer`:``}`:s.replace(`-layer`,``),path:u,accentColor:r,onBack:Q.location?Q.location.section===`view`?Q.close:()=>Q.update?.({section:`view`}):n,section:Q.location?`document/${Q.location.documentId}/${Q.location.section}`:void 0,onSection:Q.location?()=>Q.update?.({section:`view`}):void 0,onBrowseWorkspaces:Ce,onBrowseTree:we,onNavigatePath:Te,onFilter:()=>Me(`tools`),filtersActive:Ne,filtersOpen:je.t1Open&&je.t1View===`tools`,onAdd:e=>Pe({modal:e.shiftKey,fresh:!0}),search:K||!X?{workspaceId:p,queries:G||[],onSearch:K??$,localOnly:!K,onRemoveQuery:q,scope:be,onScopeChange:xe}:void 0,onDraftChange:X?void 0:$}),Ae&&P?(0,N.jsx)(N.Fragment,{children:(0,N.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2.5 border-b bg-muted/20 shrink-0 min-w-0`,children:[P.color&&(0,N.jsx)(`div`,{className:`w-1 h-6 rounded-full shrink-0`,style:{backgroundColor:P.color}}),(0,N.jsx)(_,{className:`w-4 h-4 shrink-0 text-primary`}),(0,N.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[(0,N.jsx)(`span`,{className:`text-lg font-semibold leading-tight truncate`,children:P.label||c.split(`://`)[1]||`Canvas`}),P.description&&(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground truncate leading-tight`,children:P.description})]}),Se&&Y&&(0,N.jsxs)(`button`,{type:`button`,onClick:Y,disabled:J,className:`shrink-0 flex items-center gap-1.5 px-2.5 py-1 text-xs border rounded-md hover:bg-accent transition-colors text-muted-foreground hover:text-foreground disabled:opacity-50`,title:`Save filters`,children:[(0,N.jsx)(i,{className:`w-3 h-3`}),(0,N.jsx)(`span`,{className:`hidden sm:inline`,children:J?`Saving...`:`Save filters`})]}),I&&(0,N.jsxs)(`button`,{type:`button`,onClick:I,"aria-pressed":!!F,className:`shrink-0 flex items-center gap-1.5 px-2.5 py-1 text-xs border rounded-md hover:bg-accent transition-colors text-muted-foreground hover:text-foreground`,title:F?`Unpin from home`:`Pin to home`,children:[F?(0,N.jsx)(d,{className:`w-3 h-3`}):(0,N.jsx)(l,{className:`w-3 h-3`}),(0,N.jsx)(`span`,{className:`hidden sm:inline`,children:F?`Unpin`:`Pin`})]}),R&&(0,N.jsxs)(`button`,{type:`button`,onClick:R,disabled:V||H,className:`shrink-0 flex items-center gap-1.5 px-2.5 py-1 text-xs border rounded-md hover:bg-accent transition-colors text-muted-foreground hover:text-foreground disabled:opacity-50`,title:U?`Copy public link`:`Share canvas`,children:[(0,N.jsx)(x,{className:`w-3 h-3`}),(0,N.jsx)(`span`,{className:`hidden sm:inline`,children:V?`Sharing...`:U?`Copy link`:`Share`})]}),U&&z&&(0,N.jsxs)(`button`,{type:`button`,onClick:z,disabled:V||H,className:`shrink-0 flex items-center gap-1.5 px-2.5 py-1 text-xs border rounded-md hover:bg-destructive/10 transition-colors text-muted-foreground hover:text-destructive disabled:opacity-50`,children:[(0,N.jsx)(o,{className:`w-3 h-3`}),(0,N.jsx)(`span`,{className:`hidden sm:inline`,children:`Unshare`})]}),B&&(0,N.jsxs)(`button`,{type:`button`,onClick:B,disabled:H||W&&!U,title:W&&!U?`Unlock this canvas before deleting it`:`Delete canvas`,className:`shrink-0 flex items-center gap-1.5 px-2.5 py-1 text-xs border rounded-md hover:bg-destructive/10 transition-colors text-muted-foreground hover:text-destructive disabled:opacity-50`,children:[(0,N.jsx)(h,{className:`w-3 h-3`}),(0,N.jsx)(`span`,{className:`hidden sm:inline`,children:H?`Deleting…`:`Delete`})]})]})}):null,X&&(L||t)&&(0,N.jsx)(`div`,{className:`flex items-center gap-2 border-b px-3 py-1`,children:ze}),(0,N.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:[De,X||(0,N.jsx)(oe,{readingPane:!0,externalSearchQuery:Fe,toolbarActions:ze,documents:v?y.filter(e=>e.schema===v):y,isLoading:b,folders:v?void 0:Oe,onOpenFolder:ke,contextPath:u,treeName:f,workspaceId:p,totalCount:C,viewMode:v?`card`:`table`,allowViewToggle:!0,currentPage:w,pageSize:T,onPageChange:E,onPageSizeChange:O,onRemoveDocument:k,onDeleteDocument:ee,onDestroyDocument:ae,onRemoveDocuments:se,onDeleteDocuments:le,onDestroyDocuments:ue,onCopyDocuments:A,onCutDocuments:de,onPasteDocuments:fe,onImportDocuments:j,onSelectionChange:pe,pastedDocumentIds:me,onPurgeDocuments:v?void 0:he,disablePurgeDocuments:ge,backendSearchQueries:G,onBackendSearch:K,serverSort:ve,onServerSortChange:ye,onRemoveBackendQuery:q,scope:be,onScopeChange:xe,canSaveChanges:!Ae&&Se,isSavingChanges:J,onSaveChanges:Y,linkTree:Ee},v??`documents`)]})]})]})}var F=[{id:`todos`,label:`Todo list`},{id:`todo-app`,label:`Todo App`},{id:`notes`,label:`Notes list`},{id:`notes-app`,label:`Notes App`},{id:`calendar`,label:`Calendar`},{id:`sketch`,label:`Sketch`},{id:`terminal`,label:`Terminal`}];function I(e){return e?.kind===`app`&&e.app===`notes`?`data/schema/note`:void 0}var L={id:`default`,name:`All`,kind:`documents`};function R(){return[{id:`emails`,label:`Emails`,schemas:[`data/schema/message`]},{id:`todos`,label:`Todos`,schemas:[`data/schema/task`]},{id:`notes`,label:`Notes`,schemas:[`data/schema/note`]},{id:`links`,label:`Links`,schemas:[`data/schema/tab`,`data/schema/link`]},{id:`files`,label:`Files`,schemas:[`data/schema/file`]}]}function z(e){let t=e?.views;if(!Array.isArray(t))return[L];let n=t.filter(e=>{let t=e;return!t||typeof t.id!=`string`||typeof t.name!=`string`?!1:t.kind===`documents`||t.kind===`columns`||t.kind===`app`&&(F.some(e=>e.id===t.app)||t.app===`filters`||t.app===`lens`)});return n.length>0?n:[L]}var B={todos:y,"todo-app":y,notes:C,"notes-app":C,calendar:s,filters:v,sketch:g,terminal:b,lens:f};function V({views:e,activeId:t,onSelect:n,onSave:r,readOnly:i=!1,className:o,accentColor:s,onOpenToSide:l}){let[d,f]=(0,M.useState)(null),[p,h]=(0,M.useState)(``),[g,_]=(0,M.useState)(!1),[v,y]=(0,M.useState)(null),[b,x]=(0,M.useState)(null),S=(0,M.useRef)(null);(0,M.useEffect)(()=>{let e=S.current;if(!e)return;let t=t=>{if(t.ctrlKey||e.scrollWidth<=e.clientWidth)return;let n=Math.abs(t.deltaX)>Math.abs(t.deltaY)?t.deltaX:t.deltaY,r=t.deltaMode===1?16:t.deltaMode===2?e.clientWidth:1;t.preventDefault(),e.scrollLeft+=n*r};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[]),(0,M.useEffect)(()=>{S.current?.querySelector(`[aria-pressed="true"], input`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},[t,d]);let C=()=>{y(null),x(null)},E=()=>{if(v&&b&&v!==b.id){let t=e.find(e=>e.id===v),n=e.filter(e=>e.id!==v),i=n.findIndex(e=>e.id===b.id);t&&i>=0&&(n.splice(b.before?i:i+1,0,t),n.some((t,n)=>t.id!==e[n].id)&&r(n))}C()},D=()=>{if(!d)return;let t=p.trim();t&&r(e.map(e=>e.id===d?{...e,name:t}:e)),f(null)},O=(t,n)=>{_(!1);let i=`view-${Date.now().toString(36)}`,a=t===`columns`?`Board`:t===`app`?F.find(e=>e.id===n)?.label??`App`:`List`,o=t===`columns`?{id:i,name:a,kind:t,columns:R()}:t===`app`?{id:i,name:a,kind:t,app:n}:{id:i,name:a,kind:t};r([...e,o],i),f(i),h(a)},k=n=>{let i=e.filter(e=>e.id!==n);r(i.length>0?i:[L],n===t?i[0]?.id??L.id:void 0)};return(0,N.jsxs)(`div`,{className:T(`relative flex h-full min-w-0 items-end`,o),children:[(0,N.jsx)(`div`,{ref:S,className:`flex min-w-0 items-end gap-0.5 overflow-x-auto overscroll-x-contain pt-1 [scrollbar-width:none]`,children:e.map(r=>{let o=r.id===t,u=r.kind===`columns`?a:r.kind===`app`&&r.app?B[r.app]:w;return d===r.id?(0,N.jsx)(`input`,{autoFocus:!0,"aria-label":`Tab name`,value:p,onChange:e=>h(e.target.value),onBlur:D,onKeyDown:e=>{e.key===`Enter`&&D(),e.key===`Escape`&&f(null)},className:T(`relative h-[2.3rem] w-28 shrink-0 rounded-t-[.5rem] border-0 px-3 pb-1 text-xs outline-none ring-0`,o?T(`z-[2] bg-background font-medium`,s?A(s):`text-foreground`):`bg-muted text-muted-foreground`),style:{backgroundColor:o?s:void 0}},r.id):(0,N.jsxs)(`button`,{type:`button`,"aria-pressed":o,onClick:()=>n(r.id),onDoubleClick:()=>{i||(f(r.id),h(r.name))},title:i?r.name:`${r.name}: double-click to rename, drag to reorder`,draggable:!i,onDragStart:e=>{e.dataTransfer.setData(`text/plain`,r.name),e.dataTransfer.effectAllowed=`move`,y(r.id)},onDragOver:e=>{if(!v||v===r.id)return;e.preventDefault(),e.dataTransfer.dropEffect=`move`;let t=e.currentTarget.getBoundingClientRect(),n=e.clientX<t.left+t.width/2;x(e=>e?.id===r.id&&e.before===n?e:{id:r.id,before:n})},onDrop:e=>{e.preventDefault(),E()},onDragEnd:C,className:T(`group relative flex h-[2.3rem] shrink-0 items-center gap-1.5 rounded-t-[.5rem] border-0 px-3 pb-1 text-xs transition-colors`,o?T(`z-[2] bg-background font-medium`,s?A(s):`text-foreground`):`bg-muted text-muted-foreground hover:bg-accent hover:text-foreground`,v===r.id&&`opacity-50`),style:{backgroundColor:o?s:void 0,boxShadow:b?.id===r.id?`inset ${b.before?`2px`:`-2px`} 0 0 var(--primary)`:void 0},children:[(0,N.jsx)(u,{className:`h-3 w-3 shrink-0`}),(0,N.jsx)(`span`,{className:`max-w-32 truncate`,children:r.name}),l&&(0,N.jsx)(m,{className:`h-3 w-3 shrink-0 opacity-0 transition-opacity hover:opacity-100 group-hover:opacity-60`,"aria-label":`Open to the side`,onClick:e=>{e.stopPropagation(),l(r.id)}}),!i&&e.length>1&&(0,N.jsx)(c,{className:T(`h-3 w-3 shrink-0 transition-opacity hover:text-destructive`,o?`opacity-60 hover:opacity-100`:`opacity-0 group-hover:opacity-100`),onClick:e=>{e.stopPropagation(),k(r.id)}})]},r.id)})}),!i&&(g?(0,N.jsxs)(`span`,{className:`absolute left-0 top-full z-30 flex w-full min-w-64 flex-wrap items-center gap-2 rounded-b-xl border bg-card p-2 shadow-lg`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>O(`documents`),className:`flex h-10 items-center gap-1.5 rounded-md border px-2 text-xs text-muted-foreground hover:bg-accent/50 hover:text-foreground`,children:[(0,N.jsx)(w,{className:`h-3 w-3`}),` List`]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>O(`columns`),className:`flex h-10 items-center gap-1.5 rounded-md border px-2 text-xs text-muted-foreground hover:bg-accent/50 hover:text-foreground`,children:[(0,N.jsx)(a,{className:`h-3 w-3`}),` Board`]}),F.map(e=>{let t=B[e.id];return(0,N.jsxs)(`button`,{type:`button`,onClick:()=>O(`app`,e.id),className:`flex h-10 items-center gap-1.5 rounded-md border px-2 text-xs text-muted-foreground hover:bg-accent/50 hover:text-foreground`,children:[(0,N.jsx)(t,{className:`h-3 w-3`}),` `,e.label]},e.id)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>_(!1),className:`p-1 text-muted-foreground hover:text-foreground`,"aria-label":`Cancel`,children:(0,N.jsx)(c,{className:`h-3 w-3`})})]}):(0,N.jsx)(`button`,{type:`button`,onClick:()=>_(!0),title:`Add view`,"aria-label":`Add view`,className:`relative ml-1 flex h-[2.3rem] w-10 shrink-0 items-center justify-center rounded-md pb-1 text-muted-foreground hover:bg-accent/50 hover:text-foreground`,children:(0,N.jsx)(u,{className:`h-3.5 w-3.5`})}))]})}var H=[{id:`emails`,label:`Emails`,schemas:[`data/schema/message`]},{id:`todos`,label:`Todos`,schemas:[`data/schema/task`]},{id:`notes`,label:`Notes`,schemas:[`data/schema/note`]},{id:`links`,label:`Links`,schemas:[`data/schema/tab`,`data/schema/link`]},{id:`files`,label:`Files`,schemas:[`data/schema/file`]}];function U(e,t){return t.some(t=>e.schema===t||e.schema.startsWith(`${t}/`))}function W({documents:e,workspaceId:t,columns:n,onColumnsChange:r,readOnly:i=!1}){let[a,o]=(0,M.useState)(null),[s,l]=(0,M.useState)(!1),[d,f]=(0,M.useState)({}),[m,h]=(0,M.useState)({}),g=(0,M.useRef)(null),[_,v]=(0,M.useState)(!1),y=(0,M.useCallback)(()=>{let e=g.current;e&&v(e.scrollWidth-e.clientWidth-e.scrollLeft>8)},[]);(0,M.useEffect)(()=>{let e=g.current;if(!e)return;let t=new ResizeObserver(()=>y());return t.observe(e),()=>t.disconnect()},[y]);let b=(e,t)=>{e.preventDefault();let i=e.currentTarget.parentElement;if(!i)return;let a=e.clientX,o=i.getBoundingClientRect().width,s=o,c=e=>{s=Math.min(900,Math.max(220,o+e.clientX-a)),h(e=>({...e,[t]:s}))},l=()=>{window.removeEventListener(`pointermove`,c),window.removeEventListener(`pointerup`,l),r(n.map(e=>e.id===t?{...e,width:Math.round(s)}:e))};window.addEventListener(`pointermove`,c),window.addEventListener(`pointerup`,l)},x=e=>{h(t=>{let n={...t};return delete n[e],n}),r(n.map(t=>t.id===e?{...t,width:void 0}:t))},S=e=>{let t=d[e];if(t===void 0)return;let i=n.find(t=>t.id===e);i&&(i.filter||``)!==t&&r(n.map(n=>n.id===e?{...n,filter:t||void 0}:n))},C=H.filter(e=>!n.some(t=>t.id===e.id));return(0,N.jsxs)(`div`,{className:`relative h-full`,children:[(0,N.jsx)(`div`,{ref:g,onScroll:y,className:`flex h-full snap-x snap-mandatory gap-3 overflow-x-auto overscroll-x-contain p-2`,"data-testid":`schema-columns-board`,children:n.map(t=>{let a=(d[t.id]??t.filter??``).toLowerCase(),s=e.filter(e=>U(e,t.schemas)).filter(e=>{if(!a)return!0;let t=E(e);return`${t.title}\n${t.preview}\n${t.subtitle}`.toLowerCase().includes(a)}),l=m[t.id]??t.width;return(0,N.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 shrink-0 grow-0 basis-full snap-start flex-col rounded-(--card-radius) border bg-muted/20 ${l?`sm:basis-[var(--col-w)]`:`sm:basis-[48%] lg:basis-[32%] xl:basis-[24%]`}`,style:l?{"--col-w":`${l}px`}:void 0,children:[!i&&(0,N.jsx)(`div`,{onPointerDown:e=>b(e,t.id),onDoubleClick:()=>x(t.id),title:`Drag to resize; double-click to reset`,className:`absolute right-0 inset-y-0 z-10 w-2 cursor-col-resize touch-none rounded-r-lg transition-colors hover:bg-primary/25 active:bg-primary/40 max-sm:hidden`}),(0,N.jsxs)(`div`,{className:`flex items-center gap-2 px-3 pb-1 pt-2.5 max-sm:pr-10`,children:[(0,N.jsx)(`span`,{className:`truncate text-sm font-medium`,children:t.label}),(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:s.length}),(0,N.jsx)(`span`,{className:`flex-1`}),!i&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>r(n.filter(e=>e.id!==t.id)),title:`Remove column`,className:`rounded-sm p-0.5 text-muted-foreground hover:text-destructive`,children:(0,N.jsx)(c,{className:`h-3.5 w-3.5`})})]}),(0,N.jsx)(`div`,{className:`px-3 pb-2`,children:(0,N.jsx)(`input`,{value:d[t.id]??t.filter??``,onChange:e=>f(n=>({...n,[t.id]:e.target.value})),onBlur:()=>S(t.id),onKeyDown:e=>{e.key===`Enter`&&S(t.id)},placeholder:`Filter…`,readOnly:i,className:`h-7 w-full rounded-md border border-input bg-background px-2 text-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`})}),(0,N.jsxs)(`div`,{className:`flex-1 space-y-1.5 overflow-y-auto px-2 pb-2`,children:[s.map(e=>{let t=E(e);return(0,N.jsxs)(`button`,{type:`button`,onClick:()=>o(e),className:`w-full min-w-0 rounded-md border bg-card px-2.5 py-2 text-left transition-colors hover:bg-accent/50`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,N.jsx)(de,{document:e,size:3.5}),(0,N.jsx)(`span`,{className:`truncate text-xs font-medium`,title:t.title,children:t.title})]}),t.preview&&(0,N.jsx)(`p`,{className:`mt-1 line-clamp-2 break-words text-[11px] leading-snug text-muted-foreground`,children:t.preview}),(0,N.jsx)(`p`,{className:`mt-1 text-[10px] text-muted-foreground/70`,children:new Date(e.updatedAt||e.createdAt).toLocaleDateString()})]},e.id)}),s.length===0&&(0,N.jsx)(`p`,{className:`px-2 py-3 text-center text-xs text-muted-foreground/60`,children:`Empty`})]})]},t.id)})}),(!i&&C.length>0||_)&&(0,N.jsxs)(`div`,{className:`pointer-events-none absolute inset-y-0 right-0 z-20 flex w-7 flex-col items-end bg-gradient-to-l from-background via-background/60 to-transparent py-2`,children:[!i&&C.length>0&&(0,N.jsxs)(`div`,{className:`pointer-events-auto relative`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>l(e=>!e),title:`Add column`,"aria-label":`Add column`,className:`flex h-7 w-6 items-center justify-center rounded-l-md border border-r-0 bg-background text-muted-foreground shadow-elevation-1 hover:bg-accent hover:text-foreground`,children:(0,N.jsx)(u,{className:`h-3.5 w-3.5`})}),s&&(0,N.jsxs)(`div`,{className:`absolute right-0 top-8 w-44 rounded-lg border bg-background p-2 shadow-elevation-2`,children:[(0,N.jsx)(`p`,{className:`px-2 pb-1 text-[10px] uppercase tracking-wide text-muted-foreground`,children:`Add column`}),C.map(e=>(0,N.jsx)(`button`,{type:`button`,onClick:()=>{l(!1),r([...n,{...e}])},className:`w-full rounded-md px-2 py-1.5 text-left text-xs text-muted-foreground hover:bg-accent/50 hover:text-foreground`,children:e.label},e.id)),(0,N.jsx)(`button`,{type:`button`,onClick:()=>l(!1),className:`mt-1 w-full rounded-md px-2 py-1.5 text-left text-xs text-muted-foreground/60 hover:bg-accent/50`,children:`Cancel`})]})]}),_&&(0,N.jsx)(p,{className:`my-auto h-4 w-4 self-center text-muted-foreground/70`,"aria-label":`More columns`})]}),(0,N.jsx)(ae,{document:a,isOpen:a!==null,onClose:()=>o(null),workspaceId:t})]})}function G(e,t,n,r,i){let a=`${e}\0${t}\0${n}\0${r}\0${i??``}`,[o,s]=(0,M.useState)(0),[c,l]=(0,M.useState)(null);(0,M.useEffect)(()=>{let o=!1;return k(e,n,t,{limit:200,allOf:[r],...i?{sortBy:i,order:`asc`}:{}}).then(e=>{o||l({key:a,docs:e.payload||[]})}).catch(()=>{o||l({key:a,docs:[]})}),()=>{o=!0}},[a,o]);let u=c?.key===a?c.docs:[],d=c?.key!==a;return(0,M.useEffect)(()=>{let e=()=>s(e=>e+1);return window.addEventListener(`workspace:documents:refresh`,e),()=>window.removeEventListener(`workspace:documents:refresh`,e)},[]),{docs:u,isLoading:d,refresh:(0,M.useCallback)(()=>s(e=>e+1),[])}}function K({workspaceId:e,treeName:t,path:n}){let{docs:r,isLoading:i,refresh:a}=G(e,t,n,O,`tasks`),[o,s]=(0,M.useState)(!1),c=o?r.filter(e=>e.data?.status!==`completed`):r,l=r.filter(e=>{let t=e.data?.status;return t!==`completed`&&t!==`cancelled`}).length;return(0,N.jsxs)(`div`,{className:`mx-auto flex h-full w-full max-w-3xl flex-col p-4`,children:[(0,N.jsxs)(`div`,{className:`mb-2 flex shrink-0 items-center justify-between gap-2`,children:[(0,N.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[l,` open`]}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:o,onChange:e=>s(e.target.checked)}),`hide done`]})]}),(0,N.jsx)(`div`,{className:`min-h-0 flex-1 space-y-1 overflow-y-auto`,children:i?(0,N.jsx)(`p`,{className:`py-4 text-sm text-muted-foreground`,children:`Loading…`}):c.length===0?(0,N.jsx)(`p`,{className:`py-4 text-sm text-muted-foreground`,children:`No todos here.`}):c.map(t=>(0,N.jsx)(ee,{doc:t,workspaceId:e,readOnly:!1,onChanged:a},t.id))})]})}function q({app:e,contextId:t,...n}){let r=t&&e!==`lens`?{mode:`context`,contextId:t}:{mode:`workspace`,workspaceName:n.workspaceId,treeName:n.treeName,path:n.path,treeType:D(n.treeName)},i=e===`todo-app`?`todo`:e===`notes-app`?`notes`:e,a=j.find(e=>e.id===i);return(0,N.jsx)(me,{target:r,children:e===`todos`?(0,N.jsx)(K,{...n}):a?(0,N.jsx)(a.Component,{}):null})}export{I as a,ge as c,L as i,he as l,W as n,z as o,V as r,P as s,q as t};
|