pi-weave 0.3.8 → 0.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +21 -17
  2. package/package.json +4 -3
  3. package/skills/weave-explore/SKILL.md +3 -5
  4. package/skills/weave-notepad/SKILL.md +22 -2
  5. package/skills/weave-notepad/references/second-thoughts.md +57 -0
  6. package/src/core/graph/build.ts +1 -1
  7. package/src/core/graph/current.ts +10 -8
  8. package/src/core/history.ts +417 -0
  9. package/src/core/index.ts +19 -0
  10. package/src/core/links/repair.ts +5 -68
  11. package/src/core/noteAction.ts +72 -2
  12. package/src/core/openInEditor.ts +3 -8
  13. package/src/core/repoAction.ts +20 -61
  14. package/src/core/repoIndex.ts +38 -0
  15. package/src/core/trail.ts +124 -0
  16. package/src/core/types.ts +1 -3
  17. package/src/core/vault.ts +116 -29
  18. package/src/core/view/focus.ts +2 -2
  19. package/src/core/view/index.ts +2 -3
  20. package/src/core/view/rawTail.ts +153 -0
  21. package/src/core/workspace.ts +20 -26
  22. package/src/core/workspaceCommands.ts +14 -14
  23. package/src/opencode/tools.ts +3 -3
  24. package/src/opencode/tui.ts +1 -7
  25. package/src/pi/index.ts +68 -80
  26. package/src/pi/tools/noteTool.ts +1 -1
  27. package/src/pi/tools/repoTool.ts +3 -6
  28. package/src/pi/viewer/web/run.ts +6 -8
  29. package/src/web/client/api.ts +103 -5
  30. package/src/web/client/context/context.model.ts +5 -0
  31. package/src/web/client/dist/app.js +499 -129
  32. package/src/web/client/graph/Graph.tsx +166 -14
  33. package/src/web/client/graph/column.model.ts +59 -2
  34. package/src/web/client/graph/graph.model.ts +183 -7
  35. package/src/web/client/graph/renderer.ts +39 -9
  36. package/src/web/client/graph/spotlight.model.ts +472 -0
  37. package/src/web/client/note/Note.tsx +370 -66
  38. package/src/web/client/note/Replay.tsx +139 -0
  39. package/src/web/client/note/drafts.ts +115 -11
  40. package/src/web/client/note/editbar.model.ts +153 -0
  41. package/src/web/client/note/note.model.ts +82 -1
  42. package/src/web/client/note/replay.model.ts +248 -0
  43. package/src/web/client/search/SearchPalette.tsx +103 -34
  44. package/src/web/client/search/search.model.ts +533 -26
  45. package/src/web/client/shell/ContextRail.tsx +7 -0
  46. package/src/web/client/shell/Settings.tsx +21 -1
  47. package/src/web/client/shell/Shell.tsx +93 -27
  48. package/src/web/client/shell/StatusBar.tsx +1 -0
  49. package/src/web/client/shell/icons.model.ts +68 -1
  50. package/src/web/client/shell/keys.model.ts +31 -8
  51. package/src/web/client/shell/shell.model.ts +48 -1
  52. package/src/web/client/shell/theme.model.ts +3 -0
  53. package/src/web/client/shell/theme.ts +354 -32
  54. package/src/web/client/shell/workspace.css.ts +40 -9
  55. package/src/web/client/trail/TrailStrip.tsx +55 -0
  56. package/src/web/client/trail/trail.model.ts +195 -0
  57. package/src/web/client/trail/trail.ts +45 -0
  58. package/src/web/client/tree/Tree.tsx +7 -3
  59. package/src/web/client/tree/tree.model.ts +2 -5
  60. package/src/web/server/page.ts +1 -1
  61. package/src/web/server/routes.ts +83 -3
  62. package/src/web/shared/logo.ts +1 -1
  63. package/src/web/shared/themes.ts +1 -1
  64. package/src/web/shared/view.ts +10 -4
  65. package/src/web/shared/wire.ts +74 -1
  66. package/src/web/shared/workspace.ts +10 -2
  67. package/src/core/view/health.ts +0 -160
  68. package/src/pi/viewer/tui/bodyStore.ts +0 -95
  69. package/src/pi/viewer/tui/branding.ts +0 -14
  70. package/src/pi/viewer/tui/model.ts +0 -390
  71. package/src/pi/viewer/tui/openNote.ts +0 -11
  72. package/src/pi/viewer/tui/run.ts +0 -71
  73. package/src/pi/viewer/tui/surface/base.ts +0 -203
  74. package/src/pi/viewer/tui/surface/detail.ts +0 -315
  75. package/src/pi/viewer/tui/surface/explore.ts +0 -241
  76. package/src/pi/viewer/tui/surface/focus.ts +0 -139
  77. package/src/pi/viewer/tui/surface/health.ts +0 -102
  78. package/src/pi/viewer/tui/theme.ts +0 -90
  79. package/src/pi/viewer/tui/workspace.ts +0 -53
  80. package/src/pi/viewer/tui/workspaceRoot.ts +0 -389
@@ -18,11 +18,88 @@
18
18
  * sigma@3.0.3 — MIT
19
19
  */
20
20
 
21
- "use strict";(()=>{var $f=Object.create;var Zs=Object.defineProperty;var zf=Object.getOwnPropertyDescriptor;var Wf=Object.getOwnPropertyNames;var Hf=Object.getPrototypeOf,Uf=Object.prototype.hasOwnProperty;var Qs=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var Bf=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Wf(t))!Uf.call(e,i)&&i!==n&&Zs(e,i,{get:()=>t[i],enumerable:!(r=zf(t,i))||r.enumerable});return e};var ir=(e,t,n)=>(n=e!=null?$f(Hf(e)):{},Bf(t||!e||!e.__esModule?Zs(n,"default",{value:e,enumerable:!0}):n,e));var zi=Qs((Q0,Xa)=>{"use strict";var $n=typeof Reflect=="object"?Reflect:null,kd=$n&&typeof $n.apply=="function"?$n.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},Fi;$n&&typeof $n.ownKeys=="function"?Fi=$n.ownKeys:Object.getOwnPropertySymbols?Fi=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Fi=function(t){return Object.getOwnPropertyNames(t)};function zv(e){console&&console.warn&&console.warn(e)}var Ed=Number.isNaN||function(t){return t!==t};function re(){re.init.call(this)}Xa.exports=re;Xa.exports.once=Bv;re.EventEmitter=re;re.prototype._events=void 0;re.prototype._eventsCount=0;re.prototype._maxListeners=void 0;var _d=10;function $i(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(re,"defaultMaxListeners",{enumerable:!0,get:function(){return _d},set:function(e){if(typeof e!="number"||e<0||Ed(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");_d=e}});re.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};re.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Ed(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Td(e){return e._maxListeners===void 0?re.defaultMaxListeners:e._maxListeners}re.prototype.getMaxListeners=function(){return Td(this)};re.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",o=this._events;if(o!==void 0)i=i&&o.error===void 0;else if(!i)return!1;if(i){var a;if(n.length>0&&(a=n[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=o[t];if(l===void 0)return!1;if(typeof l=="function")kd(l,this,n);else for(var c=l.length,u=Ld(l,c),r=0;r<c;++r)kd(u[r],this,n);return!0};function Sd(e,t,n,r){var i,o,a;if($i(n),o=e._events,o===void 0?(o=e._events=Object.create(null),e._eventsCount=0):(o.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),a===void 0)a=o[t]=n,++e._eventsCount;else if(typeof a=="function"?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),i=Td(e),i>0&&a.length>i&&!a.warned){a.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=a.length,zv(s)}return e}re.prototype.addListener=function(t,n){return Sd(this,t,n,!1)};re.prototype.on=re.prototype.addListener;re.prototype.prependListener=function(t,n){return Sd(this,t,n,!0)};function Wv(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Rd(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=Wv.bind(r);return i.listener=n,r.wrapFn=i,i}re.prototype.once=function(t,n){return $i(n),this.on(t,Rd(this,t,n)),this};re.prototype.prependOnceListener=function(t,n){return $i(n),this.prependListener(t,Rd(this,t,n)),this};re.prototype.removeListener=function(t,n){var r,i,o,a,s;if($i(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(o=-1,a=r.length-1;a>=0;a--)if(r[a]===n||r[a].listener===n){s=r[a].listener,o=a;break}if(o<0)return this;o===0?r.shift():Hv(r,o),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this};re.prototype.off=re.prototype.removeListener;re.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var o=Object.keys(r),a;for(i=0;i<o.length;++i)a=o[i],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function Ad(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?Uv(i):Ld(i,i.length)}re.prototype.listeners=function(t){return Ad(this,t,!0)};re.prototype.rawListeners=function(t){return Ad(this,t,!1)};re.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Cd.call(e,t)};re.prototype.listenerCount=Cd;function Cd(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}re.prototype.eventNames=function(){return this._eventsCount>0?Fi(this._events):[]};function Ld(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function Hv(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Uv(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function Bv(e,t){return new Promise(function(n,r){function i(a){e.removeListener(t,o),r(a)}function o(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}Nd(e,t,o,{once:!0}),t!=="error"&&Kv(e,i,{once:!0})})}function Kv(e,t,n){typeof e.on=="function"&&Nd(e,"error",t,n)}function Nd(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(o){r.once&&e.removeEventListener(t,i),n(o)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Za=Qs((tE,Dd)=>{"use strict";Dd.exports=function(t){return t!==null&&typeof t=="object"&&typeof t.addUndirectedEdgeWithKey=="function"&&typeof t.dropNode=="function"&&typeof t.multi=="boolean"}});var oi,ne,rl,Kf,$t,Js,il,ol,No,Jr,or,al,Io,Po,Do,Vf,ni={},ri=[],jf=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ai=Array.isArray;function St(e,t){for(var n in t)e[n]=t[n];return e}function Go(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function qf(e,t,n){var r,i,o,a={};for(o in t)o=="key"?r=t[o]:o=="ref"?i=t[o]:a[o]=t[o];if(arguments.length>2&&(a.children=arguments.length>3?oi.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(o in e.defaultProps)a[o]===void 0&&(a[o]=e.defaultProps[o]);return ei(e,a,r,i,null)}function ei(e,t,n,r,i){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++rl,__i:-1,__u:0};return i==null&&ne.vnode!=null&&ne.vnode(o),o}function pe(e){return e.children}function ti(e,t){this.props=e,this.context=t}function Qt(e,t){if(t==null)return e.__?Qt(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?Qt(e):null}function Yf(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],i=[],o=St({},t);o.__v=t.__v+1,ne.vnode&&ne.vnode(o),Mo(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??Qt(t),!!(32&t.__u),i),o.__v=t.__v,o.__.__k[o.__i]=o,dl(r,o,i),t.__e=t.__=null,o.__e!=n&&sl(o)}}function sl(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),sl(e)}function el(e){(!e.__d&&(e.__d=!0)&&$t.push(e)&&!ii.__r++||Js!=ne.debounceRendering)&&((Js=ne.debounceRendering)||il)(ii)}function ii(){try{for(var e,t=1;$t.length;)$t.length>t&&$t.sort(ol),e=$t.shift(),t=$t.length,Yf(e)}finally{$t.length=ii.__r=0}}function ll(e,t,n,r,i,o,a,s,l,c,u){var h,d,p,m,w,v,y=r&&r.__k||ri,b=t.length;for(l=Xf(n,t,y,l,b),h=0;h<b;h++)(p=n.__k[h])!=null&&(d=p.__i!=-1&&y[p.__i]||ni,p.__i=h,v=Mo(e,p,d,i,o,a,s,l,c,u),m=p.__e,p.ref&&d.ref!=p.ref&&(d.ref&&Oo(d.ref,null,p),u.push(p.ref,p.__c||m,p)),w==null&&m!=null&&(w=m),4&p.__u?(l=cl(p,l,e),d.__e&&(d.__e=null)):typeof p.type=="function"&&v!==void 0?l=v:m&&(l=m.nextSibling),p.__u&=-7);return n.__e=w,l}function Xf(e,t,n,r,i){var o,a,s,l,c,u=n.length,h=u,d=0;for(e.__k=new Array(i),o=0;o<i;o++)(a=t[o])!=null&&typeof a!="boolean"&&typeof a!="function"?(typeof a=="string"||typeof a=="number"||typeof a=="bigint"||a.constructor==String?a=e.__k[o]=ei(null,a,null,null,null):ai(a)?a=e.__k[o]=ei(pe,{children:a},null,null,null):a.constructor===void 0&&a.__b>0?a=e.__k[o]=ei(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):e.__k[o]=a,l=o+d,a.__=e,a.__b=e.__b+1,s=null,(c=a.__i=Zf(a,n,l,h))!=-1&&(h--,(s=n[c])&&(s.__u|=2)),s==null||s.__v==null?(c==-1&&(i>u?d--:i<u&&d++),typeof a.type!="function"&&(a.__u|=4)):c!=l&&(c==l-1?d--:c==l+1?d++:(c>l?d--:d++,a.__u|=4))):e.__k[o]=null;if(h)for(o=0;o<u;o++)(s=n[o])!=null&&(2&s.__u)==0&&(s.__e==r&&(r=Qt(s)),pl(s,s));return r}function cl(e,t,n){var r,i;if(typeof e.type=="function"){for(r=e.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=e,t=cl(r[i],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=Qt(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Zf(e,t,n,r){var i,o,a,s=e.key,l=e.type,c=t[n],u=c!=null&&(2&c.__u)==0;if(c===null&&s==null||u&&s==c.key&&l==c.type)return n;if(r>(u?1:0)){for(i=n-1,o=n+1;i>=0||o<t.length;)if((c=t[a=i>=0?i--:o++])!=null&&(2&c.__u)==0&&s==c.key&&l==c.type)return a}return-1}function tl(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||jf.test(t)?n:n+"px"}function Qr(e,t,n,r,i){var o,a;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||tl(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||tl(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")o=t!=(t=t.replace(al,"$1")),a=t.toLowerCase(),t=a in e||t=="onFocusOut"||t=="onFocusIn"?a.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r?n[or]=r[or]:(n[or]=Io,e.addEventListener(t,o?Do:Po,o)):e.removeEventListener(t,o?Do:Po,o);else{if(i=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function nl(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[Jr]==null)t[Jr]=Io++;else if(t[Jr]<n[or])return;return n(ne.event?ne.event(t):t)}}}function Mo(e,t,n,r,i,o,a,s,l,c){var u,h,d,p,m,w,v,y,b,k,E,I,A,D,O,W,T=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),o=[s=t.__e=n.__e]),(u=ne.__b)&&u(t);e:if(typeof T=="function"){h=a.length;try{if(b=t.props,k=T.prototype&&T.prototype.render,E=(u=T.contextType)&&r[u.__c],I=u?E?E.props.value:u.__:r,n.__c?y=(d=t.__c=n.__c).__=d.__E:(k?t.__c=d=new T(b,I):(t.__c=d=new ti(b,I),d.constructor=T,d.render=Jf),E&&E.sub(d),d.state||(d.state={}),d.__n=r,p=d.__d=!0,d.__h=[],d._sb=[]),k&&d.__s==null&&(d.__s=d.state),k&&T.getDerivedStateFromProps!=null&&(d.__s==d.state&&(d.__s=St({},d.__s)),St(d.__s,T.getDerivedStateFromProps(b,d.__s))),m=d.props,w=d.state,d.__v=t,p)k&&T.getDerivedStateFromProps==null&&d.componentWillMount!=null&&d.componentWillMount(),k&&d.componentDidMount!=null&&d.__h.push(d.componentDidMount);else{if(k&&T.getDerivedStateFromProps==null&&b!==m&&d.componentWillReceiveProps!=null&&d.componentWillReceiveProps(b,I),t.__v==n.__v||!d.__e&&d.shouldComponentUpdate!=null&&d.shouldComponentUpdate(b,d.__s,I)===!1){t.__v!=n.__v&&(d.props=b,d.state=d.__s,d.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(F){F&&(F.__=t)}),ri.push.apply(d.__h,d._sb),d._sb=[],d.__h.length&&a.push(d),s=Qt(n);break e}d.componentWillUpdate!=null&&d.componentWillUpdate(b,d.__s,I),k&&d.componentDidUpdate!=null&&d.__h.push(function(){d.componentDidUpdate(m,w,v)})}if(d.context=I,d.props=b,d.__P=e,d.__e=!1,A=ne.__r,D=0,k)d.state=d.__s,d.__d=!1,A&&A(t),u=d.render(d.props,d.state,d.context),ri.push.apply(d.__h,d._sb),d._sb=[];else do d.__d=!1,A&&A(t),u=d.render(d.props,d.state,d.context),d.state=d.__s;while(d.__d&&++D<25);d.state=d.__s,d.getChildContext!=null&&(r=St(St({},r),d.getChildContext())),k&&!p&&d.getSnapshotBeforeUpdate!=null&&(v=d.getSnapshotBeforeUpdate(m,w)),O=u!=null&&u.type===pe&&u.key==null?hl(u.props.children):u,s=ll(e,ai(O)?O:[O],t,n,r,i,o,a,s,l,c),d.base=t.__e,t.__u&=-161,d.__h.length&&a.push(d),y&&(d.__E=d.__=null)}catch(F){if(a.length=h,t.__v=null,l||o!=null){if(F.then){for(t.__u|=l?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;o!=null&&(o[o.indexOf(s)]=null),t.__e=s}else if(o!=null)for(W=o.length;W--;)Go(o[W])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),F.then||ul(t),ne.__e(F,t,n)}}else o==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):s=t.__e=Qf(n.__e,t,n,r,i,o,a,l,c);return(u=ne.diffed)&&u(t),128&t.__u?void 0:s}function ul(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(ul))}function dl(e,t,n){for(var r=0;r<n.length;r++)Oo(n[r],n[++r],n[++r]);ne.__c&&ne.__c(t,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(o){o.call(i)})}catch(o){ne.__e(o,i.__v)}})}function hl(e){return typeof e!="object"||e==null||e.__b>0?e:ai(e)?e.map(hl):e.constructor!==void 0?null:St({},e)}function Qf(e,t,n,r,i,o,a,s,l){var c,u,h,d,p,m,w,v=n.props||ni,y=t.props,b=t.type;if(b=="svg"?i="http://www.w3.org/2000/svg":b=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),o!=null){for(c=0;c<o.length;c++)if((p=o[c])&&"setAttribute"in p==!!b&&(b?p.localName==b:p.nodeType==3)){e=p,o[c]=null;break}}if(e==null){if(b==null)return document.createTextNode(y);e=document.createElementNS(i,b,y.is&&y),s&&(ne.__m&&ne.__m(t,o),s=!1),o=null}if(b==null)v===y||s&&e.data==y||(e.data=y);else{if(o=b=="textarea"&&y.defaultValue!=null?null:o&&oi.call(e.childNodes),!s&&o!=null)for(v={},c=0;c<e.attributes.length;c++)v[(p=e.attributes[c]).name]=p.value;for(c in v)p=v[c],c=="dangerouslySetInnerHTML"?h=p:c=="children"||c in y||c=="value"&&"defaultValue"in y||c=="checked"&&"defaultChecked"in y||Qr(e,c,null,p,i);for(c in y)p=y[c],c=="children"?d=p:c=="dangerouslySetInnerHTML"?u=p:c=="value"?m=p:c=="checked"?w=p:s&&typeof p!="function"||v[c]===p||Qr(e,c,p,v[c],i);if(u)s||h&&(u.__html==h.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(h&&(e.innerHTML=""),ll(t.type=="template"?e.content:e,ai(d)?d:[d],t,n,r,b=="foreignObject"?"http://www.w3.org/1999/xhtml":i,o,a,o?o[0]:n.__k&&Qt(n,0),s,l),o!=null)for(c=o.length;c--;)Go(o[c]);s&&b!="textarea"||(c="value",b=="progress"&&m==null?e.removeAttribute("value"):m!=null&&(m!==e[c]||b=="progress"&&!m||b=="option"&&m!=v[c])&&Qr(e,c,m,v[c],i),c="checked",w!=null&&w!=e[c]&&Qr(e,c,w,v[c],i))}return e}function Oo(e,t,n){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(i){ne.__e(i,n)}}function pl(e,t,n){var r,i;if(ne.unmount&&ne.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||Oo(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(o){ne.__e(o,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&pl(r[i],t,n||typeof e.type!="function");n||Go(e.__e),e.__c=e.__=e.__e=void 0}function Jf(e,t,n){return this.constructor(e,n)}function fl(e,t,n){var r,i,o,a;t==document&&(t=document.documentElement),ne.__&&ne.__(e,t),i=(r=typeof n=="function")?null:n&&n.__k||t.__k,o=[],a=[],Mo(t,e=(!r&&n||t).__k=qf(pe,null,[e]),i||ni,ni,t.namespaceURI,!r&&n?[n]:i?null:t.firstChild?oi.call(t.childNodes):null,o,!r&&n?n:i?i.__e:t.firstChild,r,a),dl(o,e,a),e.props.children=null}oi=ri.slice,ne={__e:function(e,t,n,r){for(var i,o,a;t=t.__;)if((i=t.__c)&&!i.__)try{if((o=i.constructor)&&o.getDerivedStateFromError!=null&&(i.setState(o.getDerivedStateFromError(e)),a=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),a=i.__d),a)return i.__E=i}catch(s){e=s}throw e}},rl=0,Kf=function(e){return e!=null&&e.constructor===void 0},ti.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=St({},this.state),typeof e=="function"&&(e=e(St({},n),this.props)),e&&St(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),el(this))},ti.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),el(this))},ti.prototype.render=pe,$t=[],il=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ol=function(e,t){return e.__v.__b-t.__v.__b},ii.__r=0,No=Math.random().toString(8),Jr="__d"+No,or="__a"+No,al=/(PointerCapture)$|Capture$/i,Io=0,Po=nl(!1),Do=nl(!0),Vf=0;var gl="weave-bootstrap";var Fo={cwd:""};function eg(e){return typeof e!="object"||e===null?!1:typeof e.cwd=="string"}function ml(e){if(e===null||e.trim()==="")return Fo;let t;try{t=JSON.parse(e)}catch{return Fo}return eg(t)?t:Fo}var Jt,he,$o,vl,ar=0,Tl=[],ge=ne,wl=ge.__b,yl=ge.__r,bl=ge.diffed,xl=ge.__c,kl=ge.unmount,_l=ge.__;function sr(e,t){ge.__h&&ge.__h(he,e,ar||t),ar=0;var n=he.__H||(he.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function q(e){return ar=1,tg(Al,e)}function tg(e,t,n){var r=sr(Jt++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Al(void 0,t),function(s){var l=r.__N?r.__N[0]:r.__[0],c=r.t(l,s);l!==c&&(r.__N=[c,r.__[1]],r.__c.setState({}))}],r.__c=he,!he.__f)){var i=function(s,l,c){if(!r.__c.__H)return!0;var u=!1,h=r.__c.props!==s;if(r.__c.__H.__.some(function(p){if(p.__N){u=!0;var m=p.__[0];p.__=p.__N,p.__N=void 0,m!==p.__[0]&&(h=!0)}}),o){var d=o.call(this,s,l,c);return u?d||h:d}return!u||h};he.__f=!0;var o=he.shouldComponentUpdate,a=he.componentWillUpdate;he.componentWillUpdate=function(s,l,c){if(this.__e){var u=o;o=void 0,i(s,l,c),o=u}a&&a.call(this,s,l,c)},he.shouldComponentUpdate=i}return r.__N||r.__}function oe(e,t){var n=sr(Jt++,3);!ge.__s&&Wo(n.__H,t)&&(n.__=e,n.u=t,he.__H.__h.push(n))}function Qe(e,t){var n=sr(Jt++,4);!ge.__s&&Wo(n.__H,t)&&(n.__=e,n.u=t,he.__h.push(n))}function Y(e){return ar=5,vt(function(){return{current:e}},[])}function vt(e,t){var n=sr(Jt++,7);return Wo(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Sl(e,t){return ar=8,vt(function(){return e},t)}function Rl(){var e=sr(Jt++,11);if(!e.__){for(var t=he.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__}function ng(){for(var e;e=Tl.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(si),t.__h.some(zo),t.__h=[]}catch(n){t.__h=[],ge.__e(n,e.__v)}}}ge.__b=function(e){he=null,wl&&wl(e)},ge.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),_l&&_l(e,t)},ge.__r=function(e){yl&&yl(e),Jt=0;var t=(he=e.__c).__H;t&&($o===he?(t.__h=[],he.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(si),t.__h.some(zo),t.__h=[],Jt=0)),$o=he},ge.diffed=function(e){bl&&bl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Tl.push(t)!==1&&vl===ge.requestAnimationFrame||((vl=ge.requestAnimationFrame)||rg)(ng)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),$o=he=null},ge.__c=function(e,t){t.some(function(n){try{n.__h.some(si),n.__h=n.__h.filter(function(r){return!r.__||zo(r)})}catch(r){t.some(function(i){i.__h&&(i.__h=[])}),t=[],ge.__e(r,n.__v)}}),xl&&xl(e,t)},ge.unmount=function(e){kl&&kl(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(r){try{si(r)}catch(i){t=i}}),n.__H=void 0,t&&ge.__e(t,n.__v))};var El=typeof requestAnimationFrame=="function";function rg(e){var t,n=function(){clearTimeout(r),El&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);El&&(t=requestAnimationFrame(n))}function si(e){var t=he,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),he=t}function zo(e){var t=he;e.__c=e.__(),he=t}function Wo(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function Al(e,t){return typeof t=="function"?t(e):t}var Cl={bg:"#eff1f5",panel:"#e6e9ef",page:"#dce0e8",raise:"#ccd0da",fg:"#4c4f69",dim:"#56586a",faint:"#606274",line:"#ccd0da","line-strong":"#bcc0cc",accent:"#7113ec",ok:"#28641b",warn:"#7c4f10",bad:"#b20d30"},Ll={bg:"#24273a",panel:"#1e2030",page:"#181926",raise:"#363a4f",fg:"#cad3f5",dim:"#a5adcb",faint:"#939ab7",line:"#363a4f","line-strong":"#494d64",accent:"#c6a0f6",ok:"#a6da95",warn:"#eed49f",bad:"#ed8796"},ue={light:{name:"Catppuccin Latte · Mauve",scheme:"light",colors:Cl},"latte-blue":{name:"Catppuccin Latte · Blue",scheme:"light",colors:{...Cl,accent:"#1750bf"}},"frappe-teal":{name:"Catppuccin Frappé · Teal",scheme:"dark",colors:{bg:"#303446",panel:"#292c3c",page:"#232634",raise:"#414559",fg:"#c6d0f5",dim:"#b5bfe2",faint:"#a5adce",line:"#414559","line-strong":"#51576d",accent:"#81c8be",ok:"#a6d189",warn:"#e5c890",bad:"#f4a4a6"}},dark:{name:"Catppuccin Macchiato · Mauve",scheme:"dark",colors:Ll},"macchiato-peach":{name:"Catppuccin Macchiato · Peach",scheme:"dark",colors:{...Ll,accent:"#f5a97f"}},"mocha-lavender":{name:"Catppuccin Mocha · Lavender",scheme:"dark",colors:{bg:"#1e1e2e",panel:"#181825",page:"#11111b",raise:"#313244",fg:"#cdd6f4",dim:"#a6adc8",faint:"#9399b2",line:"#313244","line-strong":"#45475a",accent:"#b4befe",ok:"#a6e3a1",warn:"#f9e2af",bad:"#f38ba8"}},"paper-blue":{name:"Paper · Blue",scheme:"light",colors:{bg:"#f4f6f8",panel:"#e9edf2",page:"#ffffff",raise:"#dce3eb",fg:"#182334",dim:"#42536a",faint:"#526176",line:"#dce3eb","line-strong":"#bac6d4",accent:"#174ea6",ok:"#21623b",warn:"#805300",bad:"#a3223c"}},"ink-blue":{name:"Ink · Blue",scheme:"dark",colors:{bg:"#1b2430",panel:"#141c27",page:"#101720",raise:"#2b3748",fg:"#edf2f8",dim:"#becadc",faint:"#a5b5cb",line:"#2b3748","line-strong":"#46566d",accent:"#8bbcff",ok:"#91d5a5",warn:"#edc47b",bad:"#ff9fae"}},"sand-amber":{name:"Sand · Amber",scheme:"light",colors:{bg:"#f7f3ec",panel:"#ede6da",page:"#fffdf8",raise:"#e2d8c8",fg:"#30291f",dim:"#5b4e3f",faint:"#675847",line:"#e2d8c8","line-strong":"#c7b8a2",accent:"#814500",ok:"#365c2a",warn:"#795000",bad:"#a12c32"}},"ember-amber":{name:"Ember · Amber",scheme:"dark",colors:{bg:"#29231f",panel:"#211c19",page:"#191512",raise:"#3c322b",fg:"#f3e9dc",dim:"#d0bfab",faint:"#bfa991",line:"#3c322b","line-strong":"#5c4d40",accent:"#edb96b",ok:"#b5cf8a",warn:"#efc57a",bad:"#f69a91"}},"mist-teal":{name:"Mist · Teal",scheme:"light",colors:{bg:"#eff5f3",panel:"#e1ece8",page:"#fafffd",raise:"#d2e2dc",fg:"#18342e",dim:"#3c5b52",faint:"#48655b",line:"#d2e2dc","line-strong":"#acc5bc",accent:"#006457",ok:"#2a5e35",warn:"#795300",bad:"#a52a43"}},"forest-teal":{name:"Forest · Teal",scheme:"dark",colors:{bg:"#1c2b27",panel:"#16221e",page:"#101b17",raise:"#2b4038",fg:"#e6f2ec",dim:"#b8d0c4",faint:"#a2bfb0",line:"#2b4038","line-strong":"#456255",accent:"#7cd8bb",ok:"#a5d6a0",warn:"#e6c582",bad:"#f5a2ac"}}},Nl=["system",...Object.keys(ue)];function Rn(e){return typeof e=="string"&&Nl.includes(e)}var en={mauve:{name:"Mauve",light:"#7113ec",dark:"#cba9f8"},blue:{name:"Blue",light:"#1750bf",dark:"#8bbcff"},teal:{name:"Teal",light:"#006457",dark:"#7cd8bb"},peach:{name:"Peach",light:"#814500",dark:"#f5a97f"},rose:{name:"Rose",light:"#a52a43",dark:"#f4a4a6"},green:{name:"Green",light:"#28641b",dark:"#a6da95"},amber:{name:"Amber",light:"#775000",dark:"#edb96b"},lavender:{name:"Lavender",light:"#445198",dark:"#b4befe"}};function li(e){return typeof e=="string"?e:e.theme}function Pl(e,t){return t==="theme"?ue[e].colors.accent:en[t][ue[e].scheme]}var Ve={containsRest:55,containsStrength:.12,relationDistance:50,relationStrength:.07,charge:-200,chargeMax:800,center:.05},zt={...Ve};function Ho(e){Object.assign(Ve,e)}var An=[{key:"containsStrength",label:"Group cohesion",hint:"how hard a parent holds its children — group cohesion",min:0,max:1,step:.01},{key:"containsRest",label:"Group radius",hint:"how far children sit from their parent — rosette radius",min:10,max:300,step:5},{key:"relationStrength",label:"Link strength",hint:"pull of links-to / mentions across groups",min:0,max:1,step:.01},{key:"relationDistance",label:"Link distance",hint:"how long those cross-group springs are",min:20,max:600,step:10},{key:"charge",label:"Repulsion",hint:"node-to-node repulsion — more negative pushes harder",min:-1200,max:0,step:10},{key:"chargeMax",label:"Repulsion range",hint:"distance past which repulsion stops — caps overall spread",min:100,max:4e3,step:50},{key:"center",label:"Center gravity",hint:"pull toward the origin — too much makes one blob",min:0,max:.3,step:.005}],Wt={lightTheme:"light",darkTheme:"dark",accent:"theme",fontSize:14,readable:!0,spellcheck:!0,defaultEdit:!1,startup:"restore",focusNewTabs:!0,groupColors:!0,forces:{...zt}};function Dl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Il(e){if(!Dl(e))return null;let n=!Object.hasOwn(e,"lightTheme")&&!Object.hasOwn(e,"darkTheme")?{...e,lightTheme:"light",darkTheme:"dark"}:e;if(Object.keys(n).length!==Object.keys(Wt).length)return null;for(let i of["light","dark"]){let o=n[`${i}Theme`];if(!Rn(o)||o==="system"||ue[o].scheme!==i)return null}if(n.accent!=="theme"&&(typeof n.accent!="string"||!Object.hasOwn(en,n.accent))||typeof n.fontSize!="number"||!Number.isInteger(n.fontSize)||n.fontSize<12||n.fontSize>22)return null;for(let i of["readable","spellcheck","defaultEdit","focusNewTabs","groupColors"])if(typeof n[i]!="boolean")return null;if(n.startup!=="restore"&&n.startup!=="empty")return null;let r=n.forces;if(!Dl(r)||Object.keys(r).length!==An.length)return null;for(let{key:i,min:o,max:a}of An){let s=r[i];if(typeof s!="number"||!Number.isFinite(s)||s<o||s>a)return null}return n}var Vo=40,Gl=100,ig=1e9,lr=e=>({id:e,kind:"document",history:[null],cursor:0,scroll:0});function jo(){return{version:1,panes:[{id:"pane-1",tabs:[lr("tab-1")],activeTab:"tab-1"}],activePane:"pane-1",split:"right",ratio:.5,treeVisible:!0,contextVisible:!0,treeWidth:240,contextWidth:240,contextGraphHeight:260,contextTagsHeight:180,theme:"system",preferences:Wt}}function cr(e){return e.panes.find(t=>t.id===e.activePane)}function tn(e){let t=cr(e);return t.tabs.find(n=>n.id===t.activeTab)}function wt(e){return e.kind==="document"?e.history[e.cursor]??null:null}function Ln(e,t){let n=new Set(e.panes.flatMap(i=>[i.id,...i.tabs.map(o=>o.id)])),r=1;for(;n.has(`${t}-${r}`);)r++;return`${t}-${r}`}function nn(e,t,n){return{...e,activePane:t.id,panes:e.panes.map(r=>r.id===t.id?ui({...t,activeTab:n.id,tabs:t.tabs.map(i=>i.id===n.id?n:i)}):r)}}function qo(e){return e.tabs.find(t=>t.id===e.lastDocumentTab&&t.kind==="document")??[...e.tabs].reverse().find(t=>t.kind==="document")}function ui(e){let{lastDocumentTab:t,...n}=e,r=e.tabs.find(i=>i.id===e.activeTab&&i.kind==="document")??qo(e);return r?{...n,lastDocumentTab:r.id}:n}function di(e){if(tn(e).kind==="document")return e;let t=cr(e),n=qo(t);return n?nn(e,t,n):Nn(e,null,{newTab:!0})}function hi(e,t,n){let r=e.panes.find(o=>o.id===t),i=r?.tabs.find(o=>o.id===n);return r&&i?{pane:r,tab:i}:null}function Ko(e,t,n){return e.panes.reduce((r,i)=>r+i.tabs.length,0)>=Vo?e:nn(e,{...t,tabs:[...t.tabs,n]},n)}function Uo(e,t){let n=e.history.slice(0,e.cursor+1);return n.at(-1)===t?e:(n.push(t),n.length>Gl&&n.shift(),{...e,history:n,cursor:n.length-1,scroll:0})}function Nn(e,t,n={}){let r=e.panes.find(s=>s.id===(n.paneId??e.activePane));if(!r)return e;let i=r.activeTab,o=r.tabs.find(s=>s.id===i);if(o?.kind==="graph"&&(o=qo(r),o?r={...r,activeTab:o.id}:n.newTab||(n={...n,newTab:!0})),n.newTab||!o)return Ko(e,r,Uo(lr(Ln(e,"tab")),t));let a=Uo(o,t);return a===o&&r.id===e.activePane&&i===o.id?e:nn(e,r,a)}function Yo(e){let t=e.panes.flatMap(r=>r.tabs.filter(i=>i.kind==="graph").map(i=>({pane:r,tab:i})))[0];if(t)return t.pane.id===e.activePane&&t.pane.activeTab===t.tab.id?e:nn(e,t.pane,t.tab);let n=cr(e);return Ko(e,n,{id:Ln(e,"tab"),kind:"graph",history:[null],cursor:0,scroll:0})}function Xo(e,t,n){let r=hi(e,t,n);return!r||e.activePane===t&&r.pane.activeTab===n?e:nn(e,r.pane,r.tab)}function Zo(e,t,n){let r=hi(e,t,n);if(!r)return e;let{pane:i}=r;if(i.tabs.length===1){let c=e.panes.find(h=>h.id!==t);if(c)return{...e,panes:[c],activePane:c.id};let u=lr(Ln(e,"tab"));return nn(e,{...i,tabs:[u]},u)}let o=i.tabs.filter(c=>c.id!==n),a=i.activeTab===n,s=o[Math.max(0,i.tabs.findIndex(c=>c.id===n)-1)],l=ui({...i,tabs:o,activeTab:a?s.id:i.activeTab});return{...e,activePane:a?t:e.activePane,panes:e.panes.map(c=>c.id===t?l:c)}}function Qo(e,t,n){let r=e.panes.find(a=>a.id===t),i=r?.tabs.find(a=>a.id===r.activeTab);if(!r||!i||i.kind!=="document")return e;let o=i.cursor+n;return o<0||o>=i.history.length?e:nn(e,r,{...i,cursor:o,scroll:0})}function Jo(e,t){if(e.panes.length===2)return e.split===t?e:{...e,split:t};let n=fi(e,e.activePane,tn(e).id);return n===e?e:{...n,split:t}}function Ml(e,t){if(e.panes.length!==2||!e.panes.some(i=>i.id===t))return e;let n=e.panes.find(i=>i.id===t),r=e.panes.find(i=>i.id!==t);return{...e,panes:[{...r,tabs:[...r.tabs,...n.tabs]}],activePane:r.id}}function ea(e,t,n,r){let i=hi(e,t,n);if(!i||r===n||r!==null&&!i.pane.tabs.some(a=>a.id===r))return e;let o=i.pane.tabs.filter(a=>a.id!==n);return o.splice(r===null?o.length:o.findIndex(a=>a.id===r),0,i.tab),o.every((a,s)=>a===i.pane.tabs[s])?e:{...e,panes:e.panes.map(a=>a.id===t?{...a,tabs:o}:a)}}function pi(e,t,n){return e.panes.some(r=>r.id===t)?e.panes.find(r=>r.id!==t&&r.tabs.some(i=>i.id===n))?.id??null:null}function fi(e,t,n){let r=hi(e,t,n);if(!r)return e;let i=e.panes.find(u=>u.id!==t)??{id:Ln(e,"pane"),tabs:[],activeTab:""},o=r.pane.tabs.filter(u=>u.id!==n),a=ui({...i,tabs:[...i.tabs,r.tab],activeTab:r.tab.id});if(!o.length&&e.panes.length===2)return{...e,panes:[a],activePane:i.id};if(!o.length&&e.panes.reduce((u,h)=>u+h.tabs.length,0)>=Vo)return e;let s=o.length?null:lr(Ln(e,"tab")),l=o.length?o:[s],c=ui({...r.pane,tabs:l,activeTab:r.pane.activeTab===n?l[Math.max(0,r.pane.tabs.findIndex(u=>u.id===n)-1)].id:r.pane.activeTab});return{...e,activePane:i.id,panes:e.panes.length===1?[c,a]:e.panes.map(u=>u.id===c.id?c:a)}}function Bo(e,t){return Object.keys(e).length===t.length&&t.every(n=>Object.hasOwn(e,n))}function ci(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Cn(e,t){return typeof e=="string"&&e.length<=2048&&(t===void 0?e.length>0&&!/[\u0000-\u001f\u007f]/.test(e):new RegExp(`^${t}-[1-9][0-9]{0,8}$`).test(e))}function Ol(e){if(!ci(e)||!Bo(e,["version","panes","activePane","split","ratio","treeVisible","contextVisible","treeWidth","contextWidth","theme",...["preferences","contextGraphHeight","contextTagsHeight"].filter(c=>Object.hasOwn(e,c))])||e.version!==1||!Array.isArray(e.panes)||e.panes.length<1||e.panes.length>2||!Cn(e.activePane,"pane")||e.split!=="right"&&e.split!=="down"||typeof e.ratio!="number"||!Number.isFinite(e.ratio)||e.ratio<.1||e.ratio>.9||typeof e.treeVisible!="boolean"||typeof e.contextVisible!="boolean"||typeof e.treeWidth!="number"||!Number.isFinite(e.treeWidth)||e.treeWidth<120||e.treeWidth>800||typeof e.contextWidth!="number"||!Number.isFinite(e.contextWidth)||e.contextWidth<120||e.contextWidth>800)return null;let t=Object.hasOwn(e,"contextGraphHeight")?e.contextGraphHeight:260,n=Object.hasOwn(e,"contextTagsHeight")?e.contextTagsHeight:180;if(typeof t!="number"||!Number.isFinite(t)||t<120||t>800||typeof n!="number"||!Number.isFinite(n)||n<60||n>600||!Rn(e.theme))return null;let r=Object.hasOwn(e,"preferences")?Il(e.preferences):Wt;if(r===null)return null;let i=e.preferences;e.theme!=="system"&&(!ci(i)||!Object.hasOwn(i,"lightTheme"))&&(r={...r,[`${ue[e.theme].scheme}Theme`]:e.theme});let o=new Set,a=0,s=0,l=[];for(let c of e.panes){if(!ci(c)||!Bo(c,Object.hasOwn(c,"lastDocumentTab")?["id","tabs","activeTab","lastDocumentTab"]:["id","tabs","activeTab"])||!Cn(c.id,"pane")||!Array.isArray(c.tabs)||c.tabs.length<1||!Cn(c.activeTab,"tab")||o.has(c.id))return null;o.add(c.id);let u=[],h=!1;for(let p of c.tabs){if(!ci(p)||!Bo(p,["id","kind","history","cursor","scroll"])||!Cn(p.id,"tab")||o.has(p.id)||(o.add(p.id),p.kind!=="document"&&p.kind!=="graph"))return null;let m=p.kind;if(!Array.isArray(p.history)||p.history.length<1||p.history.length>Gl||!Number.isInteger(p.cursor)||p.cursor<0||p.cursor>=p.history.length||p.history.some(w=>w!==null&&!Cn(w))||typeof p.scroll!="number"||!Number.isFinite(p.scroll)||p.scroll<0||p.scroll>ig)return null;m==="graph"&&s++,a++,p.id===c.activeTab&&(h=!0),u.push({id:p.id,kind:m,history:p.history,cursor:p.cursor,scroll:p.scroll})}if(!h)return null;let d=c.lastDocumentTab;if(Object.hasOwn(c,"lastDocumentTab")&&(!Cn(d,"tab")||!u.some(p=>p.id===d&&p.kind==="document")))return null;l.push({id:c.id,tabs:u,activeTab:c.activeTab,...typeof d=="string"?{lastDocumentTab:d}:{}})}return a>Vo||s>1||!l.some(c=>c.id===e.activePane)?null:{version:1,panes:l,activePane:e.activePane,split:e.split,ratio:e.ratio,treeVisible:e.treeVisible,contextVisible:e.contextVisible,treeWidth:e.treeWidth,contextWidth:e.contextWidth,contextGraphHeight:t,contextTagsHeight:n,theme:e.theme,preferences:r}}function Fl(e){if(e.preferences.startup==="restore")return e;let t=jo();return{...e,panes:t.panes,activePane:t.activePane}}function $l(e,t,n={}){let r=Nn(e,t,n);return!n.newTab||e.preferences.focusNewTabs?r:{...r,activePane:e.activePane,panes:r.panes.map(i=>{let o=e.panes.find(l=>l.id===i.id),{lastDocumentTab:a,...s}=i;return{...s,activeTab:o.activeTab,...o.lastDocumentTab?{lastDocumentTab:o.lastDocumentTab}:{}}})}}var Ae=(e,t)=>fetch(e,{...t?.method===void 0?{}:{method:t.method},...t?.headers===void 0?{}:{headers:t.headers},...t?.body===void 0?{}:{body:t.body},...t?.signal===void 0?{}:{signal:t.signal},credentials:"same-origin"});function ta(e,t=!1){return{ok:!0,data:e,cached:t}}function Rt(e,t,n){return{ok:!1,kind:e,status:t,message:n}}function zl(e){return e===403?"auth":e===404?"missing":"server"}function Wl(e){return e===403?"not authorised — this workspace session has ended":e===404?"not found":`server error (${e})`}async function ur(e,t,n,r){let i;try{i=await e(t,r)}catch(a){return Rt("network",0,a instanceof Error?a.message:"network request failed")}if(!i.ok)return Rt(zl(i.status),i.status,Wl(i.status));let o;try{o=await i.json()}catch{return Rt("malformed",i.status,"response was not valid JSON")}return n(o)?ta(o):Rt("malformed",i.status,"response did not match the expected shape")}function At(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function og(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function ag(e){if(!At(e)||typeof e.stamp!="string")return!1;let t=e.model;return!At(t)||!Array.isArray(t.nodes)||!Array.isArray(t.edges)?!1:At(e.tags)&&At(e.dangling)}function sg(e){if(!At(e))return!1;for(let t of["slug","title","body","created","updated","source"])if(typeof e[t]!="string")return!1;return og(e.tags)}function Hl(e){return At(e)&&sg(e.note)}function lg(e){return At(e)&&typeof e.query=="string"&&Array.isArray(e.hits)}function cg(e){return At(e)&&typeof e.opened=="boolean"}function ug(e){return At(e)&&e.ok===!0&&(e.id===void 0||typeof e.id=="string")}async function gi(e,t=null){let n=t===null?void 0:{"if-none-match":`"${t.stamp}"`},r;try{r=await e("/api/graph",n===void 0?{}:{headers:n})}catch(o){return Rt("network",0,o instanceof Error?o.message:"network request failed")}if(r.status===304)return t===null?Rt("malformed",304,"server sent 304 for an unconditional request"):ta(t,!0);if(!r.ok)return Rt(zl(r.status),r.status,Wl(r.status));let i;try{i=await r.json()}catch{return Rt("malformed",r.status,"response was not valid JSON")}return ag(i)?ta(i):Rt("malformed",r.status,"response did not match the expected shape")}function na(e,t){return ur(e,`/api/note/${encodeURIComponent(t)}`,Hl)}function Ul(e,t,n){return ur(e,`/api/search?q=${encodeURIComponent(t)}`,lg,n===void 0?void 0:{signal:n})}function Bl(e,t){return ur(e,"/api/open",cg,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({slug:t})})}function Kl(e,t){return ur(e,"/api/notes",Hl,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({title:t})})}function rn(e,t,n,r){return ur(e,t,ug,{method:n,...r===void 0?{}:{headers:{"content-type":"application/json"},body:JSON.stringify(r)}})}var mi=(e,t="")=>`/api/note/${encodeURIComponent(e)}${t}`,ra=(e,t="")=>`/api/folder/${e.split("/").map(encodeURIComponent).join("/")}${t}`,Vl=(e,t,n)=>rn(e,mi(t),"POST",{body:n}),jl=(e,t,n)=>rn(e,mi(t,"/rename"),"POST",{name:n}),ql=(e,t,n)=>rn(e,mi(t,"/move"),"POST",{folder:n}),Yl=(e,t)=>rn(e,mi(t),"DELETE"),Xl=(e,t)=>rn(e,ra(t),"POST"),Zl=(e,t,n)=>rn(e,ra(t,"/rename"),"POST",{name:n}),Ql=(e,t)=>rn(e,ra(t),"DELETE");function Je(e){if(e.kind==="external"&&e.detail.url){let t=e.detail.url.replace(/^[a-z]+:\/\//,"").replace(/^[^@\/]+@/,"").replace(/\.git$/,"").replace(/\/+$/,"");if(t)return t}return e.kind==="package"&&e.detail.manifest?`${e.label} (${e.detail.manifest})`:e.label}function dg(e){let t=new Map;for(let l of e.nodes)t.set(l.id,l);let n=new Map,r=new Map,i=new Set;for(let l of e.edges){if(l.kind==="contains"){let c=n.get(l.source);c?c.push(l.target):n.set(l.source,[l.target])}if(l.kind==="contains"||l.kind==="anchored-at"){let c=r.get(l.source);c?c.push(l.target):r.set(l.source,[l.target]),i.add(l.target)}}let o=l=>{if(!l.detail.path)return null;let c=l.detail.path,u=null,h=0,d=n.get("repository")??[];for(let p of d){let m=t.get(p);if(m&&m.kind==="module"&&m.detail.path){let w=m.detail.path;c.startsWith(w+"/")&&w.length>h&&(u=p,h=w.length)}}return u},a=new Map;for(let l of e.nodes){if(l.kind!=="entryPoint")continue;let c=o(l);if(c){let u=a.get(c);u?u.push(l.id):a.set(c,[l.id])}}let s=e.nodes.filter(l=>!i.has(l.id)).map(l=>l.id);return{byId:t,contains:n,tree:r,incoming:i,moduleEntries:a,roots:s}}function tc(e){let t=new Set;for(let n of e.edges)(n.kind==="contains"||n.kind==="anchored-at")&&t.add(n.target);return e.nodes.filter(n=>!t.has(n.id)).map(n=>n.id)}function hg(e){return e==="gitState"||e==="external"||e==="package"||e==="entryPoint"}function Jl(e){return e?e.kind==="module"||e.id.startsWith("vfolder:"):!1}function pg(e,t){return e.slice().sort((n,r)=>{let i=t.get(n),o=t.get(r),a=Jl(i),s=Jl(o);if(a!==s)return a?-1:1;let l=Je(i),c=Je(o);return l.localeCompare(c)})}function ec(e,t,n){let r=Number(e);return Number.isFinite(r)?{kind:"count",n:r,unit:t,phrasing:n}:{kind:"text",text:n==="attribute"?`${t}=${e}`:`${e} ${t}`}}function fg(e){switch(e.kind){case"note":return e.detail.updated?{kind:"relTime",iso:e.detail.updated}:null;case"module":return e.detail.files?ec(e.detail.files,"files","attribute"):null;case"gitState":return e.detail.commit?{kind:"commit",sha:e.detail.commit}:null;case"repository":return e.detail.files?ec(e.detail.files,"files","prose"):null;case"package":return e.detail.kind?{kind:"text",text:e.detail.kind}:null;case"entryPoint":return e.detail.summary?{kind:"text",text:"summary"}:null;default:return null}}function ia(e,t){let n=dg(e),{byId:r,tree:i,moduleEntries:o,roots:a}=n,s=m=>{let y=(i.get(m)??[]).filter(b=>{let k=r.get(b);if(!k||k.kind!=="entryPoint")return!0;for(let[,E]of o)if(E.includes(b))return!1;return!0}).concat(o.get(m)??[]);return y=y.filter(b=>r.has(b)),t.showInternals||(y=y.filter(b=>{let k=r.get(b);return!(k&&hg(k.kind))})),pg(y,r)},l=t.provFilter!==null||t.query.length>0,c=m=>!(t.provFilter!==null&&m.provenance!==t.provFilter||t.query.length>0&&!Je(m).toLowerCase().includes(t.query.toLowerCase())),u=new Set,h=m=>{let w=r.get(m),v=!1;for(let b of s(m))h(b)&&(v=!0);let y=c(w)||v;return y&&u.add(m),y};for(let m of a)h(m);let d=[],p=(m,w)=>{if(!u.has(m))return;let v=r.get(m),y=s(m),b=y.filter(E=>u.has(E)),k=l?b.length>0:t.expanded.has(m);if(d.push({id:m,depth:w,hasKids:y.length>0,expanded:k,label:Je(v),kind:v.kind,provenance:v.provenance,meta:fg(v)}),k)for(let E of b)p(E,w+1)};for(let m of a)p(m,0);return d}function oa(e){if(!e.nodes.find(i=>i.kind==="vault"))return null;let n=e.nodes.some(i=>i.kind==="note"),r=e.nodes.some(i=>i.kind==="repository");return!n&&!r?"no notes yet — add one with the weave_note tool":null}function dr(e,t){if(!e)return"";let n=Date.parse(e);if(Number.isNaN(n))return"";let r=Math.max(0,Math.floor((t-n)/1e3));if(r<60)return"just now";let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let o=Math.floor(i/60);if(o<24)return`${o}h ago`;let a=Math.floor(o/24);if(a<30)return`${a}d ago`;let s=Math.floor(a/30);return s<12?`${s}mo ago`:`${Math.floor(s/12)}y ago`}var gg=7;function aa(e,t){if(e===null)return"";switch(e.kind){case"relTime":return dr(e.iso,t);case"count":return e.phrasing==="attribute"?`${e.unit}=${e.n}`:`${e.n} ${e.unit}`;case"commit":return e.sha.slice(0,gg);case"text":return e.text}}var mg=["title","description","path","size","slug","source","updated","created","tags","files","languages","branch","commit","uncommitted changes","captured","manifest","kind","url","summarized files","summarized by","summarized at","summary","dangling links","link references","warning","stale","preview","root","notes","state"];function sa(e,t){let n=new Map;for(let s of e.nodes)n.set(s.id,s);let r=n.get(t);if(!r)return null;let i=[];for(let s of mg){let l=r.detail[s];l===void 0||l===""||i.push({id:`meta:${s}`,label:s,value:l})}let o=[];for(let s of e.edges){if(s.source!==t)continue;let l=n.get(s.target);l&&o.push({id:`link:${s.kind}:${s.target}`,target:s.target,label:`${s.kind} → ${Je(l)}`,kind:l.kind,provenance:l.provenance,direction:"link"})}let a=[];for(let s of e.edges){if(s.kind!=="links-to"||s.target!==t)continue;let l=n.get(s.source);l&&a.push({id:`backlink:${s.source}`,target:s.source,label:`← ${Je(l)}`,kind:l.kind,provenance:l.provenance,direction:"backlink"})}return{id:t,label:Je(r),kind:r.kind,provenance:r.provenance,meta:i,links:o,backlinks:a}}function vi(e,t){let n=new Set([e]);for(let r of t)r.source===e&&n.add(r.target),r.target===e&&n.add(r.source);return n}var vg=["contains","anchored-at"];function wg(e){return vg.includes(e)}function wi(e,t){let n=new Map;for(let d of e.nodes)n.set(d.id,d);let r=yg(e,n),i=tc(e),o=new Set,a=d=>{if(!o.has(d)&&(o.add(d),!!t.has(d)))for(let p of r.get(d)??[])a(p)};for(let d of i)a(d);let s=new Map;for(let d of r.keys())s.set(d,bg(d,r));let l=new Map;for(let d of e.nodes)if(!(!o.has(d.id)||t.has(d.id)))for(let p of s.get(d.id)??[])!o.has(p)&&!l.has(p)&&l.set(p,d.id);for(let d of e.nodes)!o.has(d.id)&&!l.has(d.id)&&o.add(d.id);let c=new Map;for(let[d,p]of r){let m=s.get(d);c.set(d,{children:p,descendants:m,members:m.filter(w=>l.get(w)===d),provenance:xg(m,n),expanded:t.has(d)})}let u=new Set,h=[];for(let d of e.nodes)o.has(d.id)?h.push(d):u.add(d.id);return{nodes:h,edges:kg(e.edges,o,l),clusters:c,hidden:u,representative:l,roots:i}}function yg(e,t){let n=new Map;for(let r of e.edges){if(!wg(r.kind)||!t.has(r.source)||!t.has(r.target))continue;let i=n.get(r.source);i===void 0?n.set(r.source,[r.target]):i.includes(r.target)||i.push(r.target)}return n}function bg(e,t){let n=[],r=new Set([e]),i=o=>{for(let a of t.get(o)??[])r.has(a)||(r.add(a),n.push(a),i(a))};return i(e),n}function xg(e,t){let n={human:0,agent:0,generated:0,none:0};for(let r of e){let i=t.get(r)?.provenance??null;i===null?n.none++:n[i]++}return n}function kg(e,t,n){let r=a=>t.has(a)?a:n.get(a),i=[],o=new Set;for(let a of e){let s=r(a.source),l=r(a.target);if(s===void 0||l===void 0||s===l)continue;let c=`${s}\0${l}\0${a.kind}`;o.has(c)||(o.add(c),i.push({source:s,target:l,kind:a.kind}))}return i}function la(e){let t=new Map;for(let n of e){if(n.kind!=="links-to")continue;let r=t.get(n.target);r?r.push(n.source):t.set(n.target,[n.source])}return t}var Pn=[null,"human","agent","generated"];function nc(e=["vault","repository"]){return{expanded:new Set(e),showInternals:!1,provFilter:null,query:""}}function da(e,t){let n=new Set(e.expanded).add("vault"),r="";for(let i of t?t.split("/"):[])r=r?`${r}/${i}`:i,n.add(`vfolder:${r}`);return{...e,expanded:n,query:"",provFilter:null}}function on(e){return{...e.model,danglingLinks:e.dangling}}function rc(e,t){return e===null?[]:ia(on(e),t)}var Dn="vfolder:\0draft";function ic(e){return e.type==="vault"?"":e.type==="folder"?e.path:e.path.split("/").slice(0,-1).join("/")}function oc(e,t){let n=t.trim();return n===""?null:e===""?n:`${e}/${n}`}function ac(e,t){if(t===null)return[...e];let n={id:Dn,depth:t===""?1:t.split("/").length+1,hasKids:!1,expanded:!1,label:"",kind:"module",provenance:null,meta:null};if(t==="")return[...e,n];let r=e.findIndex(o=>o.id===`vfolder:${t}`);if(r===-1)return[...e,n];let i=r+1;for(;i<e.length&&e[i].depth>e[r].depth;)i++;return[...e.slice(0,i),n,...e.slice(i)]}function ha(e,t){let n=new Set(e.expanded);return n.delete(t)||n.add(t),{...e,expanded:n}}function _g(e,t){if(e.expanded.has(t))return e;let n=new Set(e.expanded);return n.add(t),{...e,expanded:n}}function Eg(e,t){if(!e.expanded.has(t))return e;let n=new Set(e.expanded);return n.delete(t),{...e,expanded:n}}function pa(e){return e==="vault"?null:e.startsWith("vfolder:")?e.slice(8):void 0}function an(e){return e==="vault"?{type:"vault",path:""}:e.startsWith("note:")?{type:"note",path:e.slice(5)}:e.startsWith("vfolder:")?{type:"folder",path:e.slice(8)}:null}function bi(e,t){if(t.type==="note")return[t.path];if(t.type!=="folder"||e===null)return[];let n=`note:${t.path}/`;return e.model.nodes.filter(r=>r.kind==="note"&&r.id.startsWith(n)).map(r=>r.id.slice(5))}function sc(e,t){return e===null?!1:t.type==="note"?e===`note:${t.path}`:t.type==="folder"?e===`vfolder:${t.path}`||e.startsWith(`vfolder:${t.path}/`)||e.startsWith(`note:${t.path}/`):!1}function fa(e){return e.type==="folder"}function lc(e,t,n){return fa(e)?n?`Delete “${t}” and everything in it`:"Delete…":"Delete"}function cc(e,t){return e.query===t?e:{...e,query:t}}function uc(e){let t=Pn.indexOf(e.provFilter),n=Pn[(t+1)%Pn.length]??null;return{...e,provFilter:n}}function dc(e){return{...e,showInternals:!e.showInternals}}function xi(e,t){return t===null?-1:e.findIndex(n=>n.id===t)}function ua(e,t){return e[t]?.id??null}function ca(e,t,n){if(e.length===0)return null;let r=xi(e,t),i=r===-1?n>0?-1:e.length:r;return ua(e,Math.min(e.length-1,Math.max(0,i+n)))}function Tg(e,t){let n=xi(e,t),r=n<=0?void 0:e[n];if(r===void 0)return null;for(let i of e.slice(0,n).reverse())if(i.depth<r.depth)return i.id;return null}var Sg={j:"ArrowDown",k:"ArrowUp"};function Rg(e){return Sg[e]??e}function hc(e,t,n,r,i=!1){let o={state:t,selectedId:n,handled:!1};if(i)return o;let a=h=>({state:t,selectedId:h,handled:!0}),s=Rg(r);if(s==="ArrowDown")return a(ca(e,n,1));if(s==="ArrowUp")return a(ca(e,n,-1));if(s==="Home")return a(ua(e,0));if(s==="End")return a(ua(e,e.length-1));if(s!=="ArrowRight"&&s!=="ArrowLeft")return o;let l=xi(e,n),c=l===-1?void 0:e[l];if(c===void 0||n===null)return o;if(s==="ArrowRight")return c.hasKids?c.expanded?a(ca(e,n,1)):{state:_g(t,n),selectedId:n,handled:!0}:o;if(c.hasKids&&c.expanded)return{state:Eg(t,n),selectedId:n,handled:!0};let u=Tg(e,n);return u===null?o:a(u)}var Ag={vault:"vault",note:"note",repository:"repository",module:"module",package:"package",entryPoint:"entryPoint",gitState:"gitState",external:"external",file:"file"};function sn(e){return Ag[e]}var Cg={human:"●",agent:"◐",generated:"○"};function ln(e){return e===null?"":Cg[e]}function In(e){return e===null?"":`${e}-authored`}function pc(e){return`weave-row-${e.replace(/[^A-Za-z0-9_-]/g,"-")}`}function Lg(e){let t=e.map(()=>({posinset:1,setsize:1})),n=[],r=i=>{for(let o of n.splice(i+1))for(let[a,s]of o.entries())t[s]={posinset:a+1,setsize:o.length}};for(let[i,o]of e.entries()){r(o.depth);let a=n[o.depth];if(a===void 0){for(a=[];n.length<o.depth;)n.push([]);n.push(a)}a.push(i)}return r(-1),t}function Ng(e,t,n,r={posinset:1,setsize:1}){let i=e.hasKids?e.expanded?"open":"closed":"leaf";return{id:e.id,domId:pc(e.id),posinset:r.posinset,setsize:r.setsize,depth:e.depth,label:e.label,kind:e.kind,kindIcon:sn(e.kind),provenance:e.provenance,provenanceGlyph:ln(e.provenance),provenanceTitle:In(e.provenance),twisty:i,hasKids:e.hasKids,expanded:e.expanded,selected:e.id===t,meta:aa(e.meta,n),level:e.depth+1}}function fc(e,t,n){let r=Lg(e);return e.map((i,o)=>Ng(i,t,n,r[o]))}function gc(e,t){return xi(e,t)===-1?null:pc(t)}function mc(e){return{"--weave-depth":String(Math.max(0,e))}}function yi(e){return e===null?"all":e}function vc(e){let t=Pn.indexOf(e),n=Pn[(t+1)%Pn.length]??null;return`provenance filter: ${yi(e)} — click for ${yi(n)}`}function wc(e){return e?"internals":"knowledge"}function yc(e){return e?"showing git state, packages, externals and entry points — click to hide":"hiding git state, packages, externals and entry points — click to show"}var bc="filter…",xc="Vault and repository",kc="Filter the tree",_c="Filter the tree (/)";function Ec(e,t,n){if(e===null)return"loading…";let r=oa(on(e));return r!==null?r:t.length>0?null:n.query.length>0||n.provFilter!==null?"nothing matches this filter — clear it to see the whole vault":"nothing to show"}function Tc(e){return e.length===1?"1 row":`${e.length} rows`}function Sc(e){let t=+this._x.call(null,e),n=+this._y.call(null,e);return Rc(this.cover(t,n),t,n,e)}function Rc(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,o=e._root,a={data:r},s=e._x0,l=e._y0,c=e._x1,u=e._y1,h,d,p,m,w,v,y,b;if(!o)return e._root=a,e;for(;o.length;)if((w=t>=(h=(s+c)/2))?s=h:c=h,(v=n>=(d=(l+u)/2))?l=d:u=d,i=o,!(o=o[y=v<<1|w]))return i[y]=a,e;if(p=+e._x.call(null,o.data),m=+e._y.call(null,o.data),t===p&&n===m)return a.next=o,i?i[y]=a:e._root=a,e;do i=i?i[y]=new Array(4):e._root=new Array(4),(w=t>=(h=(s+c)/2))?s=h:c=h,(v=n>=(d=(l+u)/2))?l=d:u=d;while((y=v<<1|w)===(b=(m>=d)<<1|p>=h));return i[b]=o,i[y]=a,e}function Ac(e){var t,n,r=e.length,i,o,a=new Array(r),s=new Array(r),l=1/0,c=1/0,u=-1/0,h=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(o=+this._y.call(null,t))||(a[n]=i,s[n]=o,i<l&&(l=i),i>u&&(u=i),o<c&&(c=o),o>h&&(h=o));if(l>u||c>h)return this;for(this.cover(l,c).cover(u,h),n=0;n<r;++n)Rc(this,a[n],s[n],e[n]);return this}function Cc(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,o=(r=Math.floor(t))+1;else{for(var a=i-n||1,s=this._root,l,c;n>e||e>=i||r>t||t>=o;)switch(c=(t<r)<<1|e<n,l=new Array(4),l[c]=s,s=l,a*=2,c){case 0:i=n+a,o=r+a;break;case 1:n=i-a,o=r+a;break;case 2:i=n+a,r=o-a;break;case 3:n=i-a,r=o-a;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this}function Lc(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function Nc(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function Se(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function Pc(e,t,n){var r,i=this._x0,o=this._y0,a,s,l,c,u=this._x1,h=this._y1,d=[],p=this._root,m,w;for(p&&d.push(new Se(p,i,o,u,h)),n==null?n=1/0:(i=e-n,o=t-n,u=e+n,h=t+n,n*=n);m=d.pop();)if(!(!(p=m.node)||(a=m.x0)>u||(s=m.y0)>h||(l=m.x1)<i||(c=m.y1)<o))if(p.length){var v=(a+l)/2,y=(s+c)/2;d.push(new Se(p[3],v,y,l,c),new Se(p[2],a,y,v,c),new Se(p[1],v,s,l,y),new Se(p[0],a,s,v,y)),(w=(t>=y)<<1|e>=v)&&(m=d[d.length-1],d[d.length-1]=d[d.length-1-w],d[d.length-1-w]=m)}else{var b=e-+this._x.call(null,p.data),k=t-+this._y.call(null,p.data),E=b*b+k*k;if(E<n){var I=Math.sqrt(n=E);i=e-I,o=t-I,u=e+I,h=t+I,r=p.data}}return r}function Dc(e){if(isNaN(u=+this._x.call(null,e))||isNaN(h=+this._y.call(null,e)))return this;var t,n=this._root,r,i,o,a=this._x0,s=this._y0,l=this._x1,c=this._y1,u,h,d,p,m,w,v,y;if(!n)return this;if(n.length)for(;;){if((m=u>=(d=(a+l)/2))?a=d:l=d,(w=h>=(p=(s+c)/2))?s=p:c=p,t=n,!(n=n[v=w<<1|m]))return this;if(!n.length)break;(t[v+1&3]||t[v+2&3]||t[v+3&3])&&(r=t,y=v)}for(;n.data!==e;)if(i=n,!(n=n.next))return this;return(o=n.next)&&delete n.next,i?(o?i.next=o:delete i.next,this):t?(o?t[v]=o:delete t[v],(n=t[0]||t[1]||t[2]||t[3])&&n===(t[3]||t[2]||t[1]||t[0])&&!n.length&&(r?r[y]=n:this._root=n),this):(this._root=o,this)}function Ic(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function Gc(){return this._root}function Mc(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function Oc(e){var t=[],n,r=this._root,i,o,a,s,l;for(r&&t.push(new Se(r,this._x0,this._y0,this._x1,this._y1));n=t.pop();)if(!e(r=n.node,o=n.x0,a=n.y0,s=n.x1,l=n.y1)&&r.length){var c=(o+s)/2,u=(a+l)/2;(i=r[3])&&t.push(new Se(i,c,u,s,l)),(i=r[2])&&t.push(new Se(i,o,u,c,l)),(i=r[1])&&t.push(new Se(i,c,a,s,u)),(i=r[0])&&t.push(new Se(i,o,a,c,u))}return this}function Fc(e){var t=[],n=[],r;for(this._root&&t.push(new Se(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var i=r.node;if(i.length){var o,a=r.x0,s=r.y0,l=r.x1,c=r.y1,u=(a+l)/2,h=(s+c)/2;(o=i[0])&&t.push(new Se(o,a,s,u,h)),(o=i[1])&&t.push(new Se(o,u,s,l,h)),(o=i[2])&&t.push(new Se(o,a,h,u,c)),(o=i[3])&&t.push(new Se(o,u,h,l,c))}n.push(r)}for(;r=n.pop();)e(r.node,r.x0,r.y0,r.x1,r.y1);return this}function $c(e){return e[0]}function zc(e){return arguments.length?(this._x=e,this):this._x}function Wc(e){return e[1]}function Hc(e){return arguments.length?(this._y=e,this):this._y}function cn(e,t,n){var r=new ga(t??$c,n??Wc,NaN,NaN,NaN,NaN);return e==null?r:r.addAll(e)}function ga(e,t,n,r,i,o){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Uc(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var $e=cn.prototype=ga.prototype;$e.copy=function(){var e=new ga(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,n,r;if(!t)return e;if(!t.length)return e._root=Uc(t),e;for(n=[{source:t,target:e._root=new Array(4)}];t=n.pop();)for(var i=0;i<4;++i)(r=t.source[i])&&(r.length?n.push({source:r,target:t.target[i]=new Array(4)}):t.target[i]=Uc(r));return e};$e.add=Sc;$e.addAll=Ac;$e.cover=Cc;$e.data=Lc;$e.extent=Nc;$e.find=Pc;$e.remove=Dc;$e.removeAll=Ic;$e.root=Gc;$e.size=Mc;$e.visit=Oc;$e.visitAfter=Fc;$e.x=zc;$e.y=Hc;function ve(e){return function(){return e}}function ut(e){return(e()-.5)*1e-6}function Pg(e){return e.x+e.vx}function Dg(e){return e.y+e.vy}function ma(e){var t,n,r,i=1,o=1;typeof e!="function"&&(e=ve(e==null?1:+e));function a(){for(var c,u=t.length,h,d,p,m,w,v,y=0;y<o;++y)for(h=cn(t,Pg,Dg).visitAfter(s),c=0;c<u;++c)d=t[c],w=n[d.index],v=w*w,p=d.x+d.vx,m=d.y+d.vy,h.visit(b);function b(k,E,I,A,D){var O=k.data,W=k.r,T=w+W;if(O){if(O.index>d.index){var F=p-O.x-O.vx,V=m-O.y-O.vy,j=F*F+V*V;j<T*T&&(F===0&&(F=ut(r),j+=F*F),V===0&&(V=ut(r),j+=V*V),j=(T-(j=Math.sqrt(j)))/j*i,d.vx+=(F*=j)*(T=(W*=W)/(v+W)),d.vy+=(V*=j)*T,O.vx-=F*(T=1-T),O.vy-=V*T)}return}return E>p+T||A<p-T||I>m+T||D<m-T}}function s(c){if(c.data)return c.r=n[c.data.index];for(var u=c.r=0;u<4;++u)c[u]&&c[u].r>c.r&&(c.r=c[u].r)}function l(){if(t){var c,u=t.length,h;for(n=new Array(u),c=0;c<u;++c)h=t[c],n[h.index]=+e(h,c,t)}}return a.initialize=function(c,u){t=c,r=u,l()},a.iterations=function(c){return arguments.length?(o=+c,a):o},a.strength=function(c){return arguments.length?(i=+c,a):i},a.radius=function(c){return arguments.length?(e=typeof c=="function"?c:ve(+c),l(),a):e},a}function Ig(e){return e.index}function Bc(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function va(e){var t=Ig,n=h,r,i=ve(30),o,a,s,l,c,u=1;e==null&&(e=[]);function h(v){return 1/Math.min(s[v.source.index],s[v.target.index])}function d(v){for(var y=0,b=e.length;y<u;++y)for(var k=0,E,I,A,D,O,W,T;k<b;++k)E=e[k],I=E.source,A=E.target,D=A.x+A.vx-I.x-I.vx||ut(c),O=A.y+A.vy-I.y-I.vy||ut(c),W=Math.sqrt(D*D+O*O),W=(W-o[k])/W*v*r[k],D*=W,O*=W,A.vx-=D*(T=l[k]),A.vy-=O*T,I.vx+=D*(T=1-T),I.vy+=O*T}function p(){if(a){var v,y=a.length,b=e.length,k=new Map(a.map((I,A)=>[t(I,A,a),I])),E;for(v=0,s=new Array(y);v<b;++v)E=e[v],E.index=v,typeof E.source!="object"&&(E.source=Bc(k,E.source)),typeof E.target!="object"&&(E.target=Bc(k,E.target)),s[E.source.index]=(s[E.source.index]||0)+1,s[E.target.index]=(s[E.target.index]||0)+1;for(v=0,l=new Array(b);v<b;++v)E=e[v],l[v]=s[E.source.index]/(s[E.source.index]+s[E.target.index]);r=new Array(b),m(),o=new Array(b),w()}}function m(){if(a)for(var v=0,y=e.length;v<y;++v)r[v]=+n(e[v],v,e)}function w(){if(a)for(var v=0,y=e.length;v<y;++v)o[v]=+i(e[v],v,e)}return d.initialize=function(v,y){a=v,c=y,p()},d.links=function(v){return arguments.length?(e=v,p(),d):e},d.id=function(v){return arguments.length?(t=v,d):t},d.iterations=function(v){return arguments.length?(u=+v,d):u},d.strength=function(v){return arguments.length?(n=typeof v=="function"?v:ve(+v),m(),d):n},d.distance=function(v){return arguments.length?(i=typeof v=="function"?v:ve(+v),w(),d):i},d}var Gg={value:()=>{}};function Vc(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new ki(n)}function ki(e){this._=e}function Mg(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}ki.prototype=Vc.prototype={constructor:ki,on:function(e,t){var n=this._,r=Mg(e+"",n),i,o=-1,a=r.length;if(arguments.length<2){for(;++o<a;)if((i=(e=r[o]).type)&&(i=Og(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<a;)if(i=(e=r[o]).type)n[i]=Kc(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Kc(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new ki(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,o;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,o=r.length;i<o;++i)r[i].value.apply(t,n)}};function Og(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Kc(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Gg,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var wa=Vc;var Gn=0,pr=0,hr=0,qc=1e3,_i,fr,Ei=0,un=0,Ti=0,gr=typeof performance=="object"&&performance.now?performance:Date,Yc=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function xa(){return un||(Yc(Fg),un=gr.now()+Ti)}function Fg(){un=0}function ya(){this._call=this._time=this._next=null}ya.prototype=Si.prototype={constructor:ya,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?xa():+n)+(t==null?0:+t),!this._next&&fr!==this&&(fr?fr._next=this:_i=this,fr=this),this._call=e,this._time=n,ba()},stop:function(){this._call&&(this._call=null,this._time=1/0,ba())}};function Si(e,t,n){var r=new ya;return r.restart(e,t,n),r}function Xc(){xa(),++Gn;for(var e=_i,t;e;)(t=un-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Gn}function jc(){un=(Ei=gr.now())+Ti,Gn=pr=0;try{Xc()}finally{Gn=0,zg(),un=0}}function $g(){var e=gr.now(),t=e-Ei;t>qc&&(Ti-=t,Ei=e)}function zg(){for(var e,t=_i,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:_i=n);fr=e,ba(r)}function ba(e){if(!Gn){pr&&(pr=clearTimeout(pr));var t=e-un;t>24?(e<1/0&&(pr=setTimeout(jc,e-gr.now()-Ti)),hr&&(hr=clearInterval(hr))):(hr||(Ei=gr.now(),hr=setInterval($g,qc)),Gn=1,Yc(jc))}}function Zc(){let e=1;return()=>(e=(1664525*e+1013904223)%4294967296)/4294967296}function Qc(e){return e.x}function Jc(e){return e.y}var Wg=10,Hg=Math.PI*(3-Math.sqrt(5));function ka(e){var t,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,s=new Map,l=Si(h),c=wa("tick","end"),u=Zc();e==null&&(e=[]);function h(){d(),c.call("tick",t),n<r&&(l.stop(),c.call("end",t))}function d(w){var v,y=e.length,b;w===void 0&&(w=1);for(var k=0;k<w;++k)for(n+=(o-n)*i,s.forEach(function(E){E(n)}),v=0;v<y;++v)b=e[v],b.fx==null?b.x+=b.vx*=a:(b.x=b.fx,b.vx=0),b.fy==null?b.y+=b.vy*=a:(b.y=b.fy,b.vy=0);return t}function p(){for(var w=0,v=e.length,y;w<v;++w){if(y=e[w],y.index=w,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var b=Wg*Math.sqrt(.5+w),k=w*Hg;y.x=b*Math.cos(k),y.y=b*Math.sin(k)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(w){return w.initialize&&w.initialize(e,u),w}return p(),t={tick:d,restart:function(){return l.restart(h),t},stop:function(){return l.stop(),t},nodes:function(w){return arguments.length?(e=w,p(),s.forEach(m),t):e},alpha:function(w){return arguments.length?(n=+w,t):n},alphaMin:function(w){return arguments.length?(r=+w,t):r},alphaDecay:function(w){return arguments.length?(i=+w,t):+i},alphaTarget:function(w){return arguments.length?(o=+w,t):o},velocityDecay:function(w){return arguments.length?(a=1-w,t):1-a},randomSource:function(w){return arguments.length?(u=w,s.forEach(m),t):u},force:function(w,v){return arguments.length>1?(v==null?s.delete(w):s.set(w,m(v)),t):s.get(w)},find:function(w,v,y){var b=0,k=e.length,E,I,A,D,O;for(y==null?y=1/0:y*=y,b=0;b<k;++b)D=e[b],E=w-D.x,I=v-D.y,A=E*E+I*I,A<y&&(O=D,y=A);return O},on:function(w,v){return arguments.length>1?(c.on(w,v),t):c.on(w)}}}function _a(){var e,t,n,r,i=ve(-30),o,a=1,s=1/0,l=.81;function c(p){var m,w=e.length,v=cn(e,Qc,Jc).visitAfter(h);for(r=p,m=0;m<w;++m)t=e[m],v.visit(d)}function u(){if(e){var p,m=e.length,w;for(o=new Array(m),p=0;p<m;++p)w=e[p],o[w.index]=+i(w,p,e)}}function h(p){var m=0,w,v,y=0,b,k,E;if(p.length){for(b=k=E=0;E<4;++E)(w=p[E])&&(v=Math.abs(w.value))&&(m+=w.value,y+=v,b+=v*w.x,k+=v*w.y);p.x=b/y,p.y=k/y}else{w=p,w.x=w.data.x,w.y=w.data.y;do m+=o[w.data.index];while(w=w.next)}p.value=m}function d(p,m,w,v){if(!p.value)return!0;var y=p.x-t.x,b=p.y-t.y,k=v-m,E=y*y+b*b;if(k*k/l<E)return E<s&&(y===0&&(y=ut(n),E+=y*y),b===0&&(b=ut(n),E+=b*b),E<a&&(E=Math.sqrt(a*E)),t.vx+=y*p.value*r/E,t.vy+=b*p.value*r/E),!0;if(p.length||E>=s)return;(p.data!==t||p.next)&&(y===0&&(y=ut(n),E+=y*y),b===0&&(b=ut(n),E+=b*b),E<a&&(E=Math.sqrt(a*E)));do p.data!==t&&(k=o[p.data.index]*r/E,t.vx+=y*k,t.vy+=b*k);while(p=p.next)}return c.initialize=function(p,m){e=p,n=m,u()},c.strength=function(p){return arguments.length?(i=typeof p=="function"?p:ve(+p),u(),c):i},c.distanceMin=function(p){return arguments.length?(a=p*p,c):Math.sqrt(a)},c.distanceMax=function(p){return arguments.length?(s=p*p,c):Math.sqrt(s)},c.theta=function(p){return arguments.length?(l=p*p,c):Math.sqrt(l)},c}function Ea(e){var t=ve(.1),n,r,i;typeof e!="function"&&(e=ve(e==null?0:+e));function o(s){for(var l=0,c=n.length,u;l<c;++l)u=n[l],u.vx+=(i[l]-u.x)*r[l]*s}function a(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+e(n[s],s,n))?0:+t(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(t=typeof s=="function"?s:ve(+s),a(),o):t},o.x=function(s){return arguments.length?(e=typeof s=="function"?s:ve(+s),a(),o):e},o}function Ta(e){var t=ve(.1),n,r,i;typeof e!="function"&&(e=ve(e==null?0:+e));function o(s){for(var l=0,c=n.length,u;l<c;++l)u=n[l],u.vy+=(i[l]-u.y)*r[l]*s}function a(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+e(n[s],s,n))?0:+t(n[s],s,n)}}return o.initialize=function(s){n=s,a()},o.strength=function(s){return arguments.length?(t=typeof s=="function"?s:ve(+s),a(),o):t},o.y=function(s){return arguments.length?(e=typeof s=="function"?s:ve(+s),a(),o):e},o}var Ug=9,Ri=6,Ai=18,Bg=32,nu=9,mr=Ug+nu;function Sa(e){let t=Number.isFinite(e)&&e>0?e:0,n=Math.min(1,Math.log2(1+t)/Math.log2(1+Bg));return Ri+(Ai-Ri)*n}function Ra(e){return e+nu}var Kg=300,ru=1,eu=.001;function tu(e){return e==="contains"||e==="anchored-at"}function Vg(e){let t=Math.trunc(e)>>>0;return()=>(t=(1664525*t+1013904223)%4294967296)/4294967296}function jg(e){let t=[],n=new Set;for(let o of e.nodes)n.has(o.id)||(n.add(o.id),t.push(o.id));let r=[],i=new Set;for(let o of e.edges){if(o.source===o.target||!n.has(o.source)||!n.has(o.target))continue;let a=`${o.source}\0${o.target}\0${o.kind}`;i.has(a)||(i.add(a),r.push(o))}return{ids:t,edges:r}}function Aa(e){let t=va(e.links).id(n=>n.id).distance(n=>tu(n.kind)?Ve.containsRest:Ve.relationDistance).strength(n=>tu(n.kind)?Ve.containsStrength:Ve.relationStrength).iterations(2);return ka(e.nodes).randomSource(Vg(e.seed??ru)).force("charge",_a().strength(Ve.charge).distanceMax(Ve.chargeMax)).force("link",t).force("collide",ma(n=>n.r??mr).strength(1)).force("x",Ea(0).strength(Ve.center)).force("y",Ta(0).strength(Ve.center)).stop()}function qg(e,t,n){let r=Aa({nodes:e,links:t.map(({source:i,target:o,kind:a})=>({source:i,target:o,kind:a})),seed:n.seed}).alpha(n.warm?.3:1).alphaMin(eu).alphaDecay(n.ticks>0?1-Math.pow(eu,1/n.ticks):0);for(let i=0;i<n.ticks;i++)r.tick()}function iu(e,t={}){let n=Math.max(0,Math.trunc(t.ticks??Kg)),{ids:r,edges:i}=jg(e),o=r.map(l=>{let c=t.initial?.get(l),u={id:l,vx:0,vy:0};return c!==void 0&&Number.isFinite(c.x)&&Number.isFinite(c.y)&&(u.x=c.x,u.y=c.y,t.pinWarm===!0&&(u.fx=c.x,u.fy=c.y)),u}),a=new Map;for(let l of i)a.set(l.source,(a.get(l.source)??0)+1),a.set(l.target,(a.get(l.target)??0)+1);for(let l of o)l.r=Ra(Sa(a.get(l.id)??0));o.length>1&&qg(o,i,{ticks:n,seed:t.seed??ru,warm:t.initial!==void 0});let s=new Map;for(let l of o)s.set(l.id,{x:Number.isFinite(l.x)?l.x:0,y:Number.isFinite(l.y)?l.y:0});return s}var Yg=Object.fromEntries(Object.entries(ue).map(([e,{colors:t}])=>[e,{accent:t.accent,success:t.ok,warning:t.warn,dim:t.dim,text:t.fg,muted:t.faint,line:t["line-strong"],ground:t.bg}]));function Ht(e){let t=Yg[li(e)];return typeof e=="string"?t:{...t,accent:Pl(e.theme,e.accent)}}var Xg={vault:"accent",note:"text",repository:"accent",module:"dim",package:"dim",entryPoint:"dim",gitState:"dim",external:"dim",file:"dim"},Zg={contains:"dim","anchored-at":"dim","links-to":"accent",mentions:"accent"};function Qg(e,t){return Ht(t)[Xg[e]]}function ou(e,t){return Ht(t)[Zg[e]]}function Jg(e,t){return em(e)?La(ou(e,t),t,tm):ou(e,t)}function em(e){return e==="contains"||e==="anchored-at"}var Ca=.85,tm=.3;function vr(e,t,n){let r=l=>/^#[0-9a-f]{6}$/.test(l)?[Number.parseInt(l.slice(1,3),16),Number.parseInt(l.slice(3,5),16),Number.parseInt(l.slice(5,7),16)]:null,i=r(e),o=r(t);if(i===null||o===null)return e;let a=Math.min(1,Math.max(0,Number.isFinite(n)?n:0)),s=(l,c)=>Math.round(l+(c-l)*a).toString(16).padStart(2,"0");return`#${s(i[0],o[0])}${s(i[1],o[1])}${s(i[2],o[2])}`}function La(e,t,n=Ca){return vr(e,Ht(t).ground,n)}var nm={contains:1,"anchored-at":1,"links-to":1.4,mentions:1},au=1.6,lu=32,rm=lu/2;function im(e,t=lu){if(t<=0)return e.length>0?"…":e;if(e.length<=t)return e;let n=t-1,i=e.slice(0,n).lastIndexOf(" "),o=i>=rm?i:n;return`${e.slice(0,o).trimEnd()}…`}function om(e){let t=ln(e.provenance),n=Je(e);return im(t===""?n:`${t} ${n}`)}var am=6,sm=6;function lm(e){return(t,n,r)=>{if(n.label===null||n.label==="")return;let i=Ht(e);t.save(),t.font=`${r.labelSize}px ${r.labelFont}`,t.textAlign="center",t.shadowColor=i.ground,t.shadowBlur=sm,t.fillStyle=i.text,t.fillText(n.label,n.x,n.y+n.size+r.labelSize+am),t.restore()}}function cu(e){let t=1/0,n=1/0,r=-1/0,i=-1/0,o=0;for(let s of e)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(o++,s.x<t&&(t=s.x),s.x>r&&(r=s.x),s.y<n&&(n=s.y),s.y>i&&(i=s.y));if(o===0)return null;let a=Math.max(0,(mr*4-Math.max(r-t,i-n))/2);return{x:[t-a,r+a],y:[n-a,i+a]}}var uu={nodes:[],edges:[]};function du(e){return`${e.source}\0${e.target}\0${e.kind}`}function cm(e,t){let n=new Map,r=new Set;for(let i of e){if(i.source===i.target||!t.has(i.source)||!t.has(i.target))continue;let o=du(i);r.has(o)||(r.add(o),n.set(i.source,(n.get(i.source)??0)+1),n.set(i.target,(n.get(i.target)??0)+1))}return n}function hu(e,t,n,r,i){let o=new Map;for(let h of e){if(o.has(h.id))continue;let d=n.get(h.id);d===void 0||!Number.isFinite(d.x)||!Number.isFinite(d.y)||o.set(h.id,h)}let a=new Set(o.keys()),s=cm(t,a),l=[];for(let[h,d]of o){let p=n.get(h),m=Sa(s.get(h)??0);l.push({id:h,x:p.x,y:p.y,size:m,label:om(d),color:i?.get(h)??Qg(d.kind,r),kind:d.kind,provenance:d.provenance,zIndex:Math.round(m),type:"circle"})}let c=[],u=new Set;for(let h of t){if(h.source===h.target||!a.has(h.source)||!a.has(h.target))continue;let d=du(h);u.has(d)||(u.add(d),c.push({key:d,source:h.source,target:h.target,size:nm[h.kind],color:Jg(h.kind,r),kind:h.kind,zIndex:0,type:"line"}))}return{nodes:l,edges:c}}function pu(e,t,n=1){return(r,i,o)=>e===null||n<=0?{}:r===t&&e.has(r)?{zIndex:i.zIndex+su*2,size:i.size*Ci(pm,n)}:e.has(r)?{zIndex:i.zIndex+su,size:i.size*Ci(fm,n)}:{color:La(i.color,o,Ca*n),label:n>=hm?null:i.label,zIndex:0}}var um=60,dm=.004;function fu(e,t,n){let r=Number.isFinite(n)&&n>0?n:0,i=t+(e-t)*Math.exp(-r/um);return Math.abs(t-i)<dm?t:i}function Ci(e,t){return 1+(e-1)*t}var hm=.5,pm=1.45,fm=1.15,su=Ai+1;function gu(e,t,n=1){return(r,i,o)=>e===null||n<=0?{}:!e.has(i.source)||!e.has(i.target)?{color:La(i.color,o,Ca*n)}:t!=null&&(i.source===t||i.target===t)?{zIndex:2,size:i.size*Ci(au*1.35,n),color:vr(i.color,Ht(o).accent,n)}:{zIndex:1,size:i.size*Ci(au,n)}}var gm=(Ri+Ai)/2,mm=mr*4,vm=1;function mu(e){let t=Ht(e);return{hideEdgesOnMove:!0,enableCameraPanning:!0,renderEdgeLabels:!1,labelDensity:vm,labelGridCellSize:mm,labelRenderedSizeThreshold:gm,labelFont:"inherit",labelSize:11,labelColor:{color:t.text},defaultNodeColor:t.dim,defaultEdgeColor:t.line,defaultNodeType:"circle",defaultEdgeType:"line",minEdgeThickness:.6,zIndex:!0,itemSizesReference:"positions",zoomToSizeRatioFunction:n=>n,stagePadding:mr,defaultDrawNodeHover:lm(e),allowInvalidContainer:!0}}function vu(e){return e==="contains"||e==="anchored-at"}function wm(e,t){let n=new Set(e.map(i=>i.id)),r=new Map;for(let i of t)vu(i.kind)&&i.source!==i.target&&(!n.has(i.source)||!n.has(i.target)||r.has(i.target)||r.set(i.target,i.source));return r}function ym(e,t){let n=wm(e,t),r=new Map;for(let i of e){let o=i.id,a=i.id,s=0,l=new Set([o]);for(;;){let c=n.get(o);if(c===void 0||l.has(c))break;l.add(c),a=o,o=c,s++}r.set(i.id,{key:a,depth:Math.max(0,s-1)})}return r}function bm(e){let t=new Map;for(let n of e.values())t.set(n,(t.get(n)??0)+1);return t}var xm={dark:["#f5bde6","#c6a0f6","#ed8796","#f5a97f","#eed49f","#a6da95","#8bd5ca","#7dc4e4","#8aadf4","#b7bdf8"],light:["#824171","#7832d4","#d20f39","#9f3e07","#7b4e10","#28641b","#106368","#14616e","#1853c8","#445198"]},km=3;function _m(e,t){let n=xm[ue[li(t)].scheme],i=[...bm(e).entries()].sort((a,s)=>s[1]-a[1]||(a[0]<s[0]?-1:a[0]>s[0]?1:0)),o=new Map;return i.forEach(([a],s)=>o.set(a,n[s*km%n.length])),o}var Em=.11,Tm=.34;function Sm(e,t,n){let r=Number.isFinite(t)&&t>0?t:0;return vr(e,Ht(n).ground,Math.min(Tm,r*Em))}var Rm=.26,Am=.55;function Cm(e,t,n){if(t.length===0)return e;let r=e,i=0;for(let o of t){let a=Math.min(Rm,Am-i);if(a<=0)break;i+=a,r=vr(r,o,a)}return r}function wu(e,t,n){let r=ym(e,t),i=new Map;for(let[u,h]of r)i.set(u,h.key);let o=_m(i,n),a=new Set(e.map(u=>u.id)),s=new Map,l=(u,h)=>{let d=r.get(u)?.key,p=r.get(h)?.key;if(d===void 0||p===void 0||d===p)return;let m=s.get(u);m===void 0?s.set(u,new Set([p])):m.add(p)};for(let u of t)vu(u.kind)||u.source!==u.target&&(!a.has(u.source)||!a.has(u.target)||(l(u.source,u.target),l(u.target,u.source)));let c=new Map;for(let u of e){let h=r.get(u.id);if(h===void 0)continue;let d=o.get(h.key);if(d===void 0)continue;let p=Sm(d,h.depth,n),m=[...s.get(u.id)??[]].sort().map(w=>o.get(w)).filter(w=>w!==void 0);c.set(u.id,Cm(p,m,n))}return c}function Na(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}var Lm=300,Nm=1;function Pm(e,t,n){let r=new Map(n??[]);if(r.size>0)for(let o of t){if(o.kind!=="contains"&&o.kind!=="anchored-at"||r.has(o.target))continue;let a=r.get(o.source);a!==void 0&&r.set(o.target,{x:a.x,y:a.y})}let i={ticks:Lm,seed:Nm,pinWarm:!0};return r.size>0&&(i.initial=r),iu({generatedAt:"",staleness:null,nodes:[...e],edges:[...t],contentDigest:""},i)}function Dm(e,t){let n=0,r=0;for(let o of e){let a=Na(o.id);n^=a,r=r+a>>>0}for(let o of t){let a=Na(`${o.source}\0${o.target}\0${o.kind}`);n^=a,r=r+a>>>0}return[...[e.length,t.length,n>>>0,r].map(o=>o.toString(16)),Na(JSON.stringify(Ve)).toString(16)].join("-")}var bu="pi-weave.graph.positions.v4";function yu(e){return Math.round(e*10)/10}function Im(e,t){let n={};for(let[r,i]of t)n[r]=[yu(i.x),yu(i.y)];return JSON.stringify({v:4,key:e,at:n})}function Gm(e,t){if(e===null)return null;let n;try{n=JSON.parse(e)}catch{return null}if(typeof n!="object"||n===null||Array.isArray(n))return null;let r=n;if(r.v!==4||r.key!==t)return null;let i=r.at;if(typeof i!="object"||i===null||Array.isArray(i))return null;let o=new Map;for(let[a,s]of Object.entries(i)){if(!Array.isArray(s)||s.length!==2)return null;let[l,c]=s;if(typeof l!="number"||typeof c!="number"||!Number.isFinite(l)||!Number.isFinite(c))return null;o.set(a,{x:l,y:c})}return o.size===0?null:o}function Mm(e,t){let n;try{n=e.getItem(bu)}catch{return null}return Gm(n,t)}function Om(e,t,n){try{return e.setItem(bu,Im(t,n)),!0}catch{return!1}}function xu(e,t,n){let r=Dm(t,n),i=Mm(e,r);if(i!==null&&t.every(a=>i.has(a.id)))return{key:r,positions:i,cached:!0};let o=Pm(t,n);return Om(e,r,o),{key:r,positions:o,cached:!1}}function _u(e,t){if(e===null||t===null)return null;let n=e.model.nodes.find(i=>i.id===t);if(n===void 0)return null;let r=t.startsWith("artifact:")?"HTML artifact":t.startsWith("vfolder:")?"Folder":n.kind;return{id:t,title:n.label,kind:r,icon:sn(n.kind)}}function Fm(e){return{expanded:new Set(wi(e,new Set).clusters.keys())}}function Eu(e,t){return t!==null?t:e===null?{expanded:new Set}:Fm(on(e))}function $m(e,t){let n=new Set(e.expanded);return n.delete(t)||n.add(t),{...e,expanded:n}}function zm(e,t){return t===null?null:vi(t,e)}function Tu(e,t,n){return t===null?n:vi(t,e)}var Su="fit",Ru="frame the whole graph",Li={selected:"selected",neighborhood:"neighborhood",dimmed:"not related"};function Au(e,t){let n=t===1?"node":"nodes";return e===t?`${t} ${n}`:`${e} of ${t} ${n}`}function Wm(e,t){return e===null?"Loading…":e.model.nodes.length===0?"Nothing indexed yet — add a note or run /weave-scan.":t===0?"Nothing to draw at this expansion.":null}var Hm="The workspace did not load — ⟳ retries now, and the next change to the vault retries on its own.",ku={graph:uu,highlight:null,key:"",cached:!1,clusters:new Map,visible:0,total:0,empty:"Loading…"};function Cu(e,t,n,r,i,o=!1,a=!0){if(e===null)return o?{...ku,empty:Hm}:ku;let s=on(e),l=wi(s,n.expanded),u=n.expanded.has("vault")?l.edges.filter(m=>m.source!=="vault"&&m.target!=="vault"):l.edges,h=xu(r,l.nodes,u),d=a?wu(l.nodes,u,i):void 0;return{graph:hu(l.nodes,u,h.positions,i,d),highlight:zm(u,t),key:h.key,cached:h.cached,clusters:l.clusters,visible:l.nodes.length,total:s.nodes.length,empty:Wm(e,l.nodes.length)}}function Lu(e,t,n){return n===null?{state:e,selectedId:null}:t.get(n)===void 0||e.expanded.has(n)?{state:e,selectedId:n}:{state:$m(e,n),selectedId:n}}var Nu="(prefers-color-scheme: light)";function wr(e){return e==null||typeof e.matchMedia!="function"?"dark":e.matchMedia(Nu).matches?"light":"dark"}function Pu(e,t){if(typeof e.matchMedia!="function")return()=>{};let n=e.matchMedia(Nu);if(typeof n.addEventListener!="function")return()=>{};let r=()=>t(n.matches?"light":"dark");return n.addEventListener("change",r),()=>n.removeEventListener("change",r)}var Um=.06,Bm=.2,Pa=.001,Du=.5;function Iu(e,t){if(e.nodes.length===0)return null;let n=e.nodes.map(s=>{let l=t?.get(s.id);return{id:s.id,x:l!==void 0&&Number.isFinite(l.x)?l.x:s.x,y:l!==void 0&&Number.isFinite(l.y)?l.y:s.y,vx:0,vy:0,r:Ra(s.size)}}),r=new Map(n.map(s=>[s.id,s])),i=new Set,o=[];for(let s of e.edges){if(s.source===s.target||!r.has(s.source)||!r.has(s.target))continue;let l=`${s.source}\0${s.target}\0${s.kind}`;i.has(l)||(i.add(l),o.push({source:s.source,target:s.target,kind:s.kind}))}let a=Aa({nodes:n,links:o,seed:1}).alpha(Um).alphaMin(Pa);return{tick(){a.tick()},awake(){return a.alphaTarget()>Pa||a.alpha()>Pa},positions(){return new Map(n.map(s=>[s.id,{x:s.x??0,y:s.y??0}]))},pin(s,l){let c=r.get(s);if(!c)return;let u=c.fx!=null&&c.fy!=null&&Math.abs(c.fx-l.x)<Du&&Math.abs(c.fy-l.y)<Du;c.fx=l.x,c.fy=l.y,a.alphaTarget(u?0:Bm)},release(s){let l=r.get(s);l&&(l.fx=null,l.fy=null,a.alphaTarget(0))}}}var yr="application/x-weave-note";function Gu(e,t){return t.startsWith("note:")&&e?.model.nodes.some(n=>n.id===t&&n.kind==="note")?t:null}function Da(e,t){return t===null?e:[t,...e.filter(n=>n!==t)].slice(0,100)}function Mu(e,t){return t!==null&&t===e}function Ou(e,t,n){return e.map(r=>{let i=t?.model.nodes.find(a=>a.id===r),o=i?.kind??(r.startsWith("vfolder:")?"module":r.startsWith("artifact:")?"file":"note");return{id:r,label:i?.label??r.replace(/^[^:]+:/,""),icon:sn(o),selected:r===n}})}var Fu={title:"Context"},Km="—";function $u(e,t){return{cwd:e===""?Km:e,selection:t??"nothing selected"}}var zu=6e4;function Ni(e){return e?"⌘K":"Ctrl K"}function Wu(e){return`Search notes and repository (${e})`}function Pi(e){return/mac|iphone|ipad/i.test(e)}var Vm={k:{type:"openSearch"},",":{type:"openSettings"}},Hu={1:"tree",2:"note",3:"graph"};function jm(e){return e.ctrl!==e.meta&&!e.alt&&!e.shift}function qm(e){return!e.ctrl&&!e.meta&&!e.alt}var Ym={"/":{type:"filterTree"},g:{type:"fitGraph"},"?":{type:"openHelp"},t:{type:"toggleTheme"}};function Uu(e,t){if(t.overlay!==null)return e.key==="Escape"?{type:"closeOverlay"}:null;if(e.alt&&!e.meta&&!e.ctrl&&!e.shift&&e.key.toLowerCase()==="w")return{type:"closeTab"};if(jm(e)){let n=Vm[e.key.toLowerCase()];if(n!==void 0)return n;let r=Hu[e.key];return r===void 0?null:{type:"focusColumn",column:r}}return e.key==="Escape"?t.hasSelection?{type:"clearSelection"}:null:!qm(e)||e.typing?null:Ym[e.key]??null}var Xm=["INPUT","TEXTAREA","SELECT"];function Ia(e,t){return t?!0:e!==null&&Xm.includes(e.toUpperCase())}function Bu(e){return{key:e.altKey&&e.code==="KeyW"?"w":e.key,ctrl:e.ctrlKey,meta:e.metaKey,shift:e.shiftKey,alt:e.altKey,typing:Ia(e.target?.tagName??null,e.target?.isContentEditable===!0)}}var Mn={tree:".weave-sidebar-notes .weave-rows",note:".weave-pane-active .weave-note-body",graph:".weave-graph-host .weave-graph-canvas"},Ga=".weave-sidebar-notes .weave-filter";function Zm(e){let t=e;return typeof t?.focus=="function"?t:null}function Di(e,t){let n=Zm(e.querySelector(t));return n===null?!1:(n.focus(),!0)}function Ku(e,t){switch(e.type){case"openSearch":return t.setOverlay("search");case"openSettings":return t.setOverlay("settings");case"openHelp":return t.setOverlay("help");case"closeOverlay":return t.setOverlay(null);case"focusColumn":return void t.focusSelector(Mn[e.column]);case"filterTree":return void t.focusSelector(Ga);case"fitGraph":return t.fitGraph();case"clearSelection":return t.clearSelection();case"closeTab":return t.closeTab();case"toggleTheme":return t.toggleTheme()}}function Ii(e){return[{title:"Global",entries:[{combo:"⌥W / Alt W",what:"Close the active tab"},{combo:`${e},`,what:"Open settings"},{combo:`${e}K`,what:"Search notes and the repository"},...Object.entries(Hu).map(([t,n])=>({combo:`${e}${t}`,what:n==="tree"?"Open and focus the notes sidebar":n==="graph"?"Open and focus Graph view":"Focus the note"})),{combo:"?",what:"This help"},{combo:"t",what:"Switch between selected light and dark themes"},{combo:"Esc",what:"Clear the selection, or close an overlay"}]},{title:"Tree",entries:[{combo:"/",what:"Filter the tree"},{combo:"j / ↓",what:"Next row"},{combo:"k / ↑",what:"Previous row"},{combo:"→",what:"Expand, or step into"},{combo:"←",what:"Collapse, or step out"},{combo:"Home / End",what:"First / last row"}]},{title:"Tabs and panes",entries:[{combo:"Alt ← / →",what:"Reorder the focused tab"},{combo:"← / → / Home / End",what:"Select a tab when the tab strip is focused"},{combo:`${e}click`,what:"Open a note or search result in a new tab"},{combo:"Pane options (···)",what:"Split right or down, move a tab, or close a pane"}]},{title:"Graph",entries:[{combo:"g",what:"Fit the whole graph"}]},{title:"Search",entries:[{combo:"↑ / ↓",what:"Move through results"},{combo:"↵",what:"Open the highlighted result"},{combo:`${e}↵`,what:"Open the highlighted result in a new tab"},{combo:"Esc",what:"Close the palette"}]}]}var Ma="Keyboard shortcuts",Vu="esc close";var ju={chevron:{d:["M5.75 4.25 9.5 8l-3.75 3.75"],filled:!1},vault:{d:["M8 2.6 13.4 8 8 13.4 2.6 8Z"],filled:!0},note:{d:["M4.5 2.75h4.75l2.25 2.25v8.25h-7Z","M9.25 2.75V5h2.25"],filled:!1},repository:{d:["M2.75 4.25h10.5v7.5H2.75Z","M2.75 6.75h10.5"],filled:!1},module:{d:["M2.75 4.25h4l1.5 1.75h5v5.75h-10.5Z"],filled:!1},package:{d:["M8 2.5 13.25 5v6L8 13.5 2.75 11V5Z","M2.75 5 8 7.5 13.25 5","M8 7.5v6"],filled:!1},entryPoint:{d:["M5.75 3.75v8.5L12.75 8Z"],filled:!0},gitState:{d:["M8 2.85 13.15 8 8 13.15 2.85 8Z"],filled:!1},external:{d:["M4.5 11.5l7-7","M6.75 4.5h4.75v4.75"],filled:!1},file:{d:["M4.5 2.75h7v10.5h-7Z"],filled:!1}};var Qm=0;function f(e,t,n,r,i,o){t||(t={});var a,s,l=t;if("ref"in l)for(s in l={},t)s=="ref"?a=t[s]:l[s]=t[s];var c={type:e,props:l,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Qm,__i:-1,__u:0,__source:i,__self:o};if(typeof e=="function"&&(a=e.defaultProps))for(s in a)l[s]===void 0&&(l[s]=a[s]);return ne.vnode&&ne.vnode(c),c}function Ct({name:e,class:t}){let n=ju[e];return f("svg",{class:t,width:16,height:16,viewBox:`0 0 ${16} ${16}`,fill:n.filled?"currentColor":"none",stroke:n.filled?void 0:"currentColor","stroke-width":n.filled?void 0:n.width??1.5,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:n.d.map(r=>f("path",{d:r}))})}function ev({view:e,recentIds:t,edit:n,onEdit:r,onRename:i,onSelect:o,onToggle:a,onMenu:s,onDrop:l}){let c=pa(e.id);return f("li",{id:e.domId,"data-row-id":e.id,class:`weave-row weave-row-${e.kind}${e.selected?" weave-row-on":""}${t.has(e.id)?" weave-row-new":""}`,role:"treeitem","aria-level":e.level,"aria-posinset":e.posinset,"aria-setsize":e.setsize,"aria-selected":e.selected,"aria-expanded":e.hasKids?e.expanded:void 0,style:mc(e.depth),onClick:u=>o(u.metaKey||u.ctrlKey),draggable:e.id.startsWith("note:"),"aria-label":e.id===Dn?"New folder":void 0,onDragStart:u=>{u.dataTransfer?.setData("text/plain",e.id),u.dataTransfer?.setData(yr,e.id),u.dataTransfer&&(u.dataTransfer.effectAllowed="copyMove")},onDragOver:c===void 0?void 0:u=>u.preventDefault(),onDrop:c===void 0?void 0:u=>{u.preventDefault(),l(u.dataTransfer?.getData("text/plain")??"")},onContextMenu:u=>{u.preventDefault(),u.stopPropagation(),s(u.clientX,u.clientY)},children:[f("span",{class:"weave-twisty","aria-hidden":"true",onClick:u=>{u.stopPropagation(),a()},children:e.hasKids?f(Ct,{name:"chevron",class:e.expanded?"weave-icon weave-icon-open":"weave-icon"}):null}),f("span",{class:"weave-kind","aria-hidden":"true",children:f(Ct,{name:e.kindIcon,class:"weave-icon"})}),f("span",{class:`weave-prov weave-prov-${e.provenance??"none"}`,title:e.provenanceTitle,children:e.provenanceGlyph}),n===null?f("span",{class:"weave-label",children:e.label}):f(tv,{value:n,draft:e.id===Dn,onEdit:r,onCommit:i}),f("span",{class:"weave-meta",children:e.meta})]})}function tv({value:e,draft:t,onEdit:n,onCommit:r}){let i=Y(null);return Qe(()=>{let o=i.current;o!==null&&(o.focus(),o.select())},[]),f("input",{ref:i,class:"weave-tree-rename",value:e,placeholder:t?"New folder name…":void 0,onClick:o=>o.stopPropagation(),onInput:o=>n(o.currentTarget.value),onBlur:o=>r(o.currentTarget.value),onKeyDown:o=>{o.stopPropagation(),o.key==="Enter"?o.currentTarget.blur():o.key==="Escape"&&r(null)}})}function qu(e){let[t,n]=q(nc),[r,i]=q(null),o=Y(null);Qe(()=>{r!==null&&o.current?.querySelector(".weave-menu button")?.focus()},[r?.id]);let a=()=>{i(null),o.current?.querySelector(".weave-tree-actions")?.focus()},[s,l]=q(null),[c,u]=q(null),h=ac(rc(e.graph,t),c),d=Ec(e.graph,h,t),p=async(y,b)=>{let k=await y;if(!k.ok)window.alert(k.message);else{let E=k.data.id??b;E!==void 0&&e.onSelect(E),e.onRefresh()}},m=async y=>{if(r===null)return;let b=an(r.id);if(i(null),b!==null){if(y==="newFolder"){let k=ic(b);n(E=>da(E,k)),u(k),l({id:Dn,label:"",value:""})}else if(y==="rename")n(k=>da(k,b.path.split("/").slice(0,-1).join("/"))),l({id:r.id,label:r.label,value:r.label});else if(b.type!=="vault"){if(!e.onMutate(bi(e.graph,b)))return;await p(b.type==="note"?Yl(Ae,b.path):Ql(Ae,b.path),sc(e.selectedId,b)?"vault":void 0)}}},w=y=>{if(r!==null){if(fa(y)&&r.armed!==!0){i({...r,armed:!0});return}m("delete")}},v=y=>{let b=s,k=c;if(l(null),u(null),b===null)return;let E=y?.trim();if(b.id===Dn){let A=k===null||!E?null:oc(k,E);A!==null&&p(Xl(Ae,A));return}let I=an(b.id);if(I!==null&&E&&E!==b.label){if(!e.onMutate(bi(e.graph,I)))return;p(I.type==="note"?jl(Ae,I.path,E):Zl(Ae,I.path,E))}};return f("div",{class:"weave-tree",ref:o,onKeyDown:y=>{if(r!==null&&y.key==="Escape"){y.preventDefault(),y.stopPropagation(),a();return}let b=y.target,k=hc(h,t,e.selectedId,y.key,Ia(b?.tagName??null,b?.isContentEditable===!0));k.handled&&(y.preventDefault(),n(k.state),k.selectedId!==null&&e.onSelect(k.selectedId,!1,!0))},children:[f("div",{class:"weave-tree-controls",children:[f("input",{type:"search",class:"weave-filter",value:t.query,placeholder:bc,"aria-label":kc,title:_c,onInput:y=>n(cc(t,y.currentTarget.value))}),f("button",{type:"button",class:"weave-chip",title:vc(t.provFilter),onClick:()=>n(uc(t)),children:["◧ ",yi(t.provFilter)]}),f("button",{type:"button",class:"weave-chip",title:yc(t.showInternals),onClick:()=>n(dc(t)),children:["◧ ",wc(t.showInternals)]}),f("button",{type:"button",class:"weave-chip weave-tree-actions","aria-label":"File actions",title:"File actions for the selected item",onClick:y=>{let b=e.selectedId!==null&&an(e.selectedId)!==null?e.selectedId:"vault",k=y.currentTarget.getBoundingClientRect();i({id:b,label:e.graph?.model.nodes.find(E=>E.id===b)?.label??"Vault",x:k.left,y:k.bottom})},children:"···"})]}),d===null?f("ul",{class:"weave-rows",role:"tree",tabIndex:0,"aria-label":xc,"aria-activedescendant":gc(h,e.selectedId)??void 0,onContextMenu:y=>{y.preventDefault(),i({id:"vault",label:"Vault",x:y.clientX,y:y.clientY})},children:fc(h,e.selectedId,e.now).map(y=>f(ev,{view:y,recentIds:e.recentIds,edit:s?.id===y.id?s.value:null,onEdit:b=>l(k=>k===null?null:{...k,value:b}),onRename:v,onSelect:b=>{e.onSelect(y.id,b),y.hasKids&&n(k=>ha(k,y.id))},onToggle:()=>n(ha(t,y.id)),onMenu:(b,k)=>i({id:y.id,label:y.label,x:b,y:k}),onDrop:b=>{let k=pa(y.id);if(b.startsWith("note:")&&k!==void 0){let E=an(b);if(E!==null&&!e.onMutate(bi(e.graph,E)))return;p(ql(Ae,b.slice(5),k))}}},y.id))}):f("p",{class:"weave-tree-empty",children:d}),f("p",{class:"weave-tree-count",children:Tc(h)}),r!==null&&an(r.id)!==null?(()=>{let y=an(r.id);return f(pe,{children:[f("button",{type:"button",class:"weave-menu-backdrop","aria-label":"Close context menu",onClick:a}),f("div",{class:"weave-menu",role:"menu",style:{left:`${r.x}px`,top:`${r.y}px`},onKeyDown:b=>{if(b.key==="Escape")b.preventDefault(),a();else if(["ArrowDown","ArrowUp","Home","End"].includes(b.key)){b.preventDefault();let k=[...b.currentTarget.querySelectorAll("button")],E=k.indexOf(document.activeElement),I=b.key==="Home"?0:b.key==="End"?k.length-1:(E+(b.key==="ArrowDown"?1:-1)+k.length)%k.length;k[I]?.focus()}b.stopPropagation()},children:[f("button",{type:"button",role:"menuitem",onClick:()=>{m("newFolder")},children:"New folder…"}),y.type!=="vault"?f(pe,{children:[f("button",{type:"button",role:"menuitem",onClick:()=>{m("rename")},children:"Rename…"}),f("button",{type:"button",role:"menuitem",class:"weave-menu-danger",onClick:()=>w(y),children:lc(y,r.label,r.armed===!0)})]}):null]})]})})():null]})}function Yu(e){let t=Y(null),n=Y(null),r=Y(null),i=Y(null),o=Sl(()=>{if(i.current!==null)return;let w=()=>{i.current=null;let v=r.current;v!==null&&(v.tick(),v.awake()&&(n.current?.setPositions(v.positions()),i.current=requestAnimationFrame(w)))};i.current=requestAnimationFrame(w)},[]),[a,s]=q(null),l=vt(()=>(Ho(e.forces),JSON.stringify(e.forces)),[e.forces]),c=e.groupColors,u=e.scheme??wr(e.host),h=Eu(e.graph,a),d=vt(()=>Cu(e.graph,e.selectedId,h,e.storage,u,e.bootFailed,c),[e.graph,e.selectedId,h,e.storage,u,e.bootFailed,l,c]),p=_u(e.graph,e.previewId),m=Y({view:h,model:d,onSelect:e.onSelect,selectedId:e.selectedId});return m.current={view:h,model:d,onSelect:e.onSelect,selectedId:e.selectedId},oe(()=>{let w=e.renderer(u);return w.onSelect(v=>{let y=Lu(m.current.view,m.current.model.clusters,v);s(y.state),m.current.onSelect(y.selectedId)}),w.onHover(v=>{let{model:y,selectedId:b}=m.current;w.setHighlight(Tu(y.graph.edges,v,y.highlight),v??b)}),w.onDragStart(v=>{let y=n.current?.positions().get(v);y&&(r.current?.pin(v,y),o())}),w.onDragMove((v,y)=>{r.current?.pin(v,y)}),w.onDragEnd(v=>{r.current?.release(v)}),w.mount(t.current??{clientWidth:0,clientHeight:0}),n.current=w,w.setGraph(m.current.model.graph),w.setHighlight(m.current.model.highlight,m.current.selectedId),e.fit.current=()=>w.fit(),()=>{w.destroy(),n.current=null,e.fit.current=null}},[e.renderer,u]),oe(()=>{n.current?.setGraph(d.graph)},[d.key,l,c]),oe(()=>{let w=Iu(d.graph,n.current?.positions());return r.current=w,w!==null&&o(),()=>{r.current=null}},[d.key,o,l]),oe(()=>()=>{i.current!==null&&(cancelAnimationFrame(i.current),i.current=null)},[]),oe(()=>{n.current?.setHighlight(d.highlight,e.selectedId)},[d.highlight,e.selectedId]),f("div",{class:"weave-graph",children:[d.empty===null?null:f("p",{class:"weave-graph-empty",children:d.empty}),f("div",{class:"weave-graph-canvas",ref:t,role:"img","aria-label":"Knowledge graph",tabIndex:-1}),p===null?null:f("aside",{class:"weave-graph-preview","aria-label":"Selected graph node",children:[f("div",{class:"weave-graph-preview-info",children:[f("span",{class:"weave-kind","aria-hidden":"true",children:f(Ct,{name:p.icon,class:"weave-icon"})}),f("div",{class:"weave-graph-preview-copy",children:[f("span",{class:"weave-graph-preview-kind",children:p.kind}),f("strong",{class:"weave-graph-preview-title",title:p.title,children:p.title})]})]}),f("button",{type:"button",class:"weave-graph-preview-close","aria-label":"Clear graph selection",onClick:()=>e.onSelect(null),children:"×"}),f("button",{type:"button",class:"weave-chip",onClick:()=>e.onOpen(p.id),children:"Open in new tab"})]}),f("div",{class:"weave-graph-controls",children:[f("button",{type:"button",class:"weave-chip",title:Ru,onClick:()=>n.current?.fit(),children:Su}),f("span",{class:"weave-graph-legend",children:[f("span",{class:"weave-legend-on",children:["◉ ",Li.selected]}),f("span",{class:"weave-legend-near",children:["● ",Li.neighborhood]}),f("span",{class:"weave-legend-dim",children:["· ",Li.dimmed]})]})]}),f("p",{class:"weave-graph-count",children:Au(d.visible,d.total)})]})}function nv(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function hn(e){var t=nv(e,"string");return typeof t=="symbol"?t:t+""}function xe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Xu(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,hn(r.key),r)}}function ke(e,t,n){return t&&Xu(e.prototype,t),n&&Xu(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function dn(e){return dn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},dn(e)}function Zu(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(Zu=function(){return!!e})()}function rv(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function iv(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return rv(e)}function ze(e,t,n){return t=dn(t),iv(e,Zu()?Reflect.construct(t,n||[],dn(e).constructor):t.apply(e,n))}function Oa(e,t){return Oa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Oa(e,t)}function We(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Oa(e,t)}function ov(e){if(Array.isArray(e))return e}function av(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,i=u}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}function Mi(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Wa(e,t){if(e){if(typeof e=="string")return Mi(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mi(e,t):void 0}}function sv(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
22
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ut(e,t){return ov(e)||av(e,t)||Wa(e,t)||sv()}var Fa={black:"#000000",silver:"#C0C0C0",gray:"#808080",grey:"#808080",white:"#FFFFFF",maroon:"#800000",red:"#FF0000",purple:"#800080",fuchsia:"#FF00FF",green:"#008000",lime:"#00FF00",olive:"#808000",yellow:"#FFFF00",navy:"#000080",blue:"#0000FF",teal:"#008080",aqua:"#00FFFF",darkblue:"#00008B",mediumblue:"#0000CD",darkgreen:"#006400",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",springgreen:"#00FF7F",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",rebeccapurple:"#663399",mediumaquamarine:"#66CDAA",dimgray:"#696969",dimgrey:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",slategrey:"#708090",lightslategray:"#778899",lightslategrey:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370DB",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",palevioletred:"#DB7093",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",lightyellow:"#FFFFE0",ivory:"#FFFFF0"};var Qu=new Int8Array(4),$a=new Int32Array(Qu.buffer,0,1),lv=new Float32Array(Qu.buffer,0,1),cv=/^\s*rgba?\s*\(/,uv=/^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,\s*([0-9]*)(?:\s*,\s*(.*)?)?\)\s*$/;function dv(e){var t=0,n=0,r=0,i=1;if(e[0]==="#")e.length===4?(t=parseInt(e.charAt(1)+e.charAt(1),16),n=parseInt(e.charAt(2)+e.charAt(2),16),r=parseInt(e.charAt(3)+e.charAt(3),16)):(t=parseInt(e.charAt(1)+e.charAt(2),16),n=parseInt(e.charAt(3)+e.charAt(4),16),r=parseInt(e.charAt(5)+e.charAt(6),16)),e.length===9&&(i=parseInt(e.charAt(7)+e.charAt(8),16)/255);else if(cv.test(e)){var o=e.match(uv);o&&(t=+o[1],n=+o[2],r=+o[3],o[4]&&(i=+o[4]))}return{r:t,g:n,b:r,a:i}}var On={};for(br in Fa)On[br]=Fn(Fa[br]),On[Fa[br]]=On[br];var br;function Ju(e,t,n,r,i){return $a[0]=r<<24|n<<16|t<<8|e,i&&($a[0]=$a[0]&4278190079),lv[0]}function Fn(e){if(e=e.toLowerCase(),typeof On[e]<"u")return On[e];var t=dv(e),n=t.r,r=t.g,i=t.b,o=t.a;o=o*255|0;var a=Ju(n,r,i,o,!0);return On[e]=a,a}var za={};function Ha(e){if(typeof za[e]<"u")return za[e];var t=(e&16711680)>>>16,n=(e&65280)>>>8,r=e&255,i=255,o=Ju(t,n,r,i,!0);return za[e]=o,o}function Ua(e,t,n,r){return n+(t<<8)+(e<<16)}function Ba(e,t,n,r,i,o){var a=Math.floor(n/o*i),s=Math.floor(e.drawingBufferHeight/o-r/o*i),l=new Uint8Array(4);e.bindFramebuffer(e.FRAMEBUFFER,t),e.readPixels(a,s,1,1,e.RGBA,e.UNSIGNED_BYTE,l);var c=Ut(l,4),u=c[0],h=c[1],d=c[2],p=c[3];return[u,h,d,p]}function R(e,t,n){return(t=hn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ed(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ed(Object(n),!0).forEach(function(r){R(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ed(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function hv(e,t){for(;!{}.hasOwnProperty.call(e,t)&&(e=dn(e))!==null;);return e}function ja(){return ja=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=hv(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},ja.apply(null,arguments)}function sd(e,t,n,r){var i=ja(dn(1&r?e.prototype:e),t,n);return 2&r&&typeof i=="function"?function(o){return i.apply(n,o)}:i}function pv(e){return e.normalized?1:e.size}function Ka(e){var t=0;return e.forEach(function(n){return t+=pv(n)}),t}function ld(e,t,n){var r=e==="VERTEX"?t.VERTEX_SHADER:t.FRAGMENT_SHADER,i=t.createShader(r);if(i===null)throw new Error("loadShader: error while creating the shader");t.shaderSource(i,n),t.compileShader(i);var o=t.getShaderParameter(i,t.COMPILE_STATUS);if(!o){var a=t.getShaderInfoLog(i);throw t.deleteShader(i),new Error(`loadShader: error while compiling the shader:
23
- `.concat(a,`
24
- `).concat(n))}return i}function fv(e,t){return ld("VERTEX",e,t)}function gv(e,t){return ld("FRAGMENT",e,t)}function mv(e,t){var n=e.createProgram();if(n===null)throw new Error("loadProgram: error while creating the program.");var r,i;for(r=0,i=t.length;r<i;r++)e.attachShader(n,t[r]);e.linkProgram(n);var o=e.getProgramParameter(n,e.LINK_STATUS);if(!o){var a=e.getProgramInfoLog(n);throw e.deleteProgram(n),new Error("loadProgram: error while linking the program: ".concat(a))}return n}function td(e){var t=e.gl,n=e.buffer,r=e.program,i=e.vertexShader,o=e.fragmentShader;t.deleteShader(i),t.deleteShader(o),t.deleteProgram(r),t.deleteBuffer(n)}var nd=`#define PICKING_MODE
25
- `,vv=R(R(R(R(R(R(R(R({},WebGL2RenderingContext.BOOL,1),WebGL2RenderingContext.BYTE,1),WebGL2RenderingContext.UNSIGNED_BYTE,1),WebGL2RenderingContext.SHORT,2),WebGL2RenderingContext.UNSIGNED_SHORT,2),WebGL2RenderingContext.INT,4),WebGL2RenderingContext.UNSIGNED_INT,4),WebGL2RenderingContext.FLOAT,4);var cd=(function(){function e(t,n,r){xe(this,e),R(this,"array",new Float32Array),R(this,"constantArray",new Float32Array),R(this,"capacity",0),R(this,"verticesCount",0);var i=this.getDefinition();if(this.VERTICES=i.VERTICES,this.VERTEX_SHADER_SOURCE=i.VERTEX_SHADER_SOURCE,this.FRAGMENT_SHADER_SOURCE=i.FRAGMENT_SHADER_SOURCE,this.UNIFORMS=i.UNIFORMS,this.ATTRIBUTES=i.ATTRIBUTES,this.METHOD=i.METHOD,this.CONSTANT_ATTRIBUTES="CONSTANT_ATTRIBUTES"in i?i.CONSTANT_ATTRIBUTES:[],this.CONSTANT_DATA="CONSTANT_DATA"in i?i.CONSTANT_DATA:[],this.isInstanced="CONSTANT_ATTRIBUTES"in i,this.ATTRIBUTES_ITEMS_COUNT=Ka(this.ATTRIBUTES),this.STRIDE=this.VERTICES*this.ATTRIBUTES_ITEMS_COUNT,this.renderer=r,this.normalProgram=this.getProgramInfo("normal",t,i.VERTEX_SHADER_SOURCE,i.FRAGMENT_SHADER_SOURCE,null),this.pickProgram=n?this.getProgramInfo("pick",t,nd+i.VERTEX_SHADER_SOURCE,nd+i.FRAGMENT_SHADER_SOURCE,n):null,this.isInstanced){var o=Ka(this.CONSTANT_ATTRIBUTES);if(this.CONSTANT_DATA.length!==this.VERTICES)throw new Error("Program: error while getting constant data (expected ".concat(this.VERTICES," items, received ").concat(this.CONSTANT_DATA.length," instead)"));this.constantArray=new Float32Array(this.CONSTANT_DATA.length*o);for(var a=0;a<this.CONSTANT_DATA.length;a++){var s=this.CONSTANT_DATA[a];if(s.length!==o)throw new Error("Program: error while getting constant data (one vector has ".concat(s.length," items instead of ").concat(o,")"));for(var l=0;l<s.length;l++)this.constantArray[a*o+l]=s[l]}this.STRIDE=this.ATTRIBUTES_ITEMS_COUNT}}return ke(e,[{key:"kill",value:function(){td(this.normalProgram),this.pickProgram&&(td(this.pickProgram),this.pickProgram=null)}},{key:"getProgramInfo",value:function(n,r,i,o,a){var s=this.getDefinition(),l=r.createBuffer();if(l===null)throw new Error("Program: error while creating the WebGL buffer.");var c=fv(r,i),u=gv(r,o),h=mv(r,[c,u]),d={};s.UNIFORMS.forEach(function(w){var v=r.getUniformLocation(h,w);v&&(d[w]=v)});var p={};s.ATTRIBUTES.forEach(function(w){p[w.name]=r.getAttribLocation(h,w.name)});var m;if("CONSTANT_ATTRIBUTES"in s&&(s.CONSTANT_ATTRIBUTES.forEach(function(w){p[w.name]=r.getAttribLocation(h,w.name)}),m=r.createBuffer(),m===null))throw new Error("Program: error while creating the WebGL constant buffer.");return{name:n,program:h,gl:r,frameBuffer:a,buffer:l,constantBuffer:m||{},uniformLocations:d,attributeLocations:p,isPicking:n==="pick",vertexShader:c,fragmentShader:u}}},{key:"bindProgram",value:function(n){var r=this,i=0,o=n.gl,a=n.buffer;this.isInstanced?(o.bindBuffer(o.ARRAY_BUFFER,n.constantBuffer),i=0,this.CONSTANT_ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i,!1)}),o.bufferData(o.ARRAY_BUFFER,this.constantArray,o.STATIC_DRAW),o.bindBuffer(o.ARRAY_BUFFER,n.buffer),i=0,this.ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i,!0)}),o.bufferData(o.ARRAY_BUFFER,this.array,o.DYNAMIC_DRAW)):(o.bindBuffer(o.ARRAY_BUFFER,a),i=0,this.ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i)}),o.bufferData(o.ARRAY_BUFFER,this.array,o.DYNAMIC_DRAW)),o.bindBuffer(o.ARRAY_BUFFER,null)}},{key:"unbindProgram",value:function(n){var r=this;this.isInstanced?(this.CONSTANT_ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!1)}),this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!0)})):this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n)})}},{key:"bindAttribute",value:function(n,r,i,o){var a=vv[n.type];if(typeof a!="number")throw new Error('Program.bind: yet unsupported attribute type "'.concat(n.type,'"'));var s=r.attributeLocations[n.name],l=r.gl;if(s!==-1){l.enableVertexAttribArray(s);var c=this.isInstanced?(o?this.ATTRIBUTES_ITEMS_COUNT:Ka(this.CONSTANT_ATTRIBUTES))*Float32Array.BYTES_PER_ELEMENT:this.ATTRIBUTES_ITEMS_COUNT*Float32Array.BYTES_PER_ELEMENT;if(l.vertexAttribPointer(s,n.size,n.type,n.normalized||!1,c,i),this.isInstanced&&o)if(l instanceof WebGL2RenderingContext)l.vertexAttribDivisor(s,1);else{var u=l.getExtension("ANGLE_instanced_arrays");u&&u.vertexAttribDivisorANGLE(s,1)}}return n.size*a}},{key:"unbindAttribute",value:function(n,r,i){var o=r.attributeLocations[n.name],a=r.gl;if(o!==-1&&(a.disableVertexAttribArray(o),this.isInstanced&&i))if(a instanceof WebGL2RenderingContext)a.vertexAttribDivisor(o,0);else{var s=a.getExtension("ANGLE_instanced_arrays");s&&s.vertexAttribDivisorANGLE(o,0)}}},{key:"reallocate",value:function(n){n!==this.capacity&&(this.capacity=n,this.verticesCount=this.VERTICES*n,this.array=new Float32Array(this.isInstanced?this.capacity*this.ATTRIBUTES_ITEMS_COUNT:this.verticesCount*this.ATTRIBUTES_ITEMS_COUNT))}},{key:"hasNothingToRender",value:function(){return this.verticesCount===0}},{key:"renderProgram",value:function(n,r){var i=r.gl,o=r.program;i.enable(i.BLEND),i.useProgram(o),this.setUniforms(n,r),this.drawWebGL(this.METHOD,r)}},{key:"render",value:function(n){this.hasNothingToRender()||(this.pickProgram&&(this.pickProgram.gl.viewport(0,0,n.width*n.pixelRatio/n.downSizingRatio,n.height*n.pixelRatio/n.downSizingRatio),this.bindProgram(this.pickProgram),this.renderProgram(z(z({},n),{},{pixelRatio:n.pixelRatio/n.downSizingRatio}),this.pickProgram),this.unbindProgram(this.pickProgram)),this.normalProgram.gl.viewport(0,0,n.width*n.pixelRatio,n.height*n.pixelRatio),this.bindProgram(this.normalProgram),this.renderProgram(n,this.normalProgram),this.unbindProgram(this.normalProgram))}},{key:"drawWebGL",value:function(n,r){var i=r.gl,o=r.frameBuffer;if(i.bindFramebuffer(i.FRAMEBUFFER,o),!this.isInstanced)i.drawArrays(n,0,this.verticesCount);else if(i instanceof WebGL2RenderingContext)i.drawArraysInstanced(n,0,this.VERTICES,this.capacity);else{var a=i.getExtension("ANGLE_instanced_arrays");a&&a.drawArraysInstancedANGLE(n,0,this.VERTICES,this.capacity)}}}])})();var wv=(function(e){function t(){return xe(this,t),ze(this,t,arguments)}return We(t,e),ke(t,[{key:"kill",value:function(){sd(t,"kill",this,3)([])}},{key:"process",value:function(r,i,o){var a=i*this.STRIDE;if(o.hidden){for(var s=a+this.STRIDE;a<s;a++)this.array[a]=0;return}return this.processVisibleItem(Ha(r),a,o)}}])})(cd);var qa=(function(e){function t(){var n;xe(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=ze(this,t,[].concat(i)),R(n,"drawLabel",void 0),n}return We(t,e),ke(t,[{key:"kill",value:function(){sd(t,"kill",this,3)([])}},{key:"process",value:function(r,i,o,a,s){var l=i*this.STRIDE;if(s.hidden||o.hidden||a.hidden){for(var c=l+this.STRIDE;l<c;l++)this.array[l]=0;return}return this.processVisibleItem(Ha(r),l,o,a,s)}}])})(cd);function yv(e,t){return(function(){function n(r,i,o){xe(this,n),R(this,"drawLabel",t),this.programs=e.map(function(a){return new a(r,i,o)})}return ke(n,[{key:"reallocate",value:function(i){this.programs.forEach(function(o){return o.reallocate(i)})}},{key:"process",value:function(i,o,a,s,l){this.programs.forEach(function(c){return c.process(i,o,a,s,l)})}},{key:"render",value:function(i){this.programs.forEach(function(o){return o.render(i)})}},{key:"kill",value:function(){this.programs.forEach(function(i){return i.kill()})}}])})()}function ud(e,t,n,r,i){var o=i.edgeLabelSize,a=i.edgeLabelFont,s=i.edgeLabelWeight,l=i.edgeLabelColor.attribute?t[i.edgeLabelColor.attribute]||i.edgeLabelColor.color||"#000":i.edgeLabelColor.color,c=t.label;if(c){e.fillStyle=l,e.font="".concat(s," ").concat(o,"px ").concat(a);var u=n.size,h=r.size,d=n.x,p=n.y,m=r.x,w=r.y,v=(d+m)/2,y=(p+w)/2,b=m-d,k=w-p,E=Math.sqrt(b*b+k*k);if(!(E<u+h)){d+=b*u/E,p+=k*u/E,m-=b*h/E,w-=k*h/E,v=(d+m)/2,y=(p+w)/2,b=m-d,k=w-p,E=Math.sqrt(b*b+k*k);var I=e.measureText(c).width;if(I>E){var A="…";for(c=c+A,I=e.measureText(c).width;I>E&&c.length>1;)c=c.slice(0,-2)+A,I=e.measureText(c).width;if(c.length<4)return}var D;b>0?k>0?D=Math.acos(b/E):D=Math.asin(k/E):k>0?D=Math.acos(b/E)+Math.PI:D=Math.asin(b/E)+Math.PI/2,e.save(),e.translate(v,y),e.rotate(D),e.fillText(c,-I/2,t.size/2+o),e.restore()}}}function Ya(e,t,n){if(t.label){var r=n.labelSize,i=n.labelFont,o=n.labelWeight,a=n.labelColor.attribute?t[n.labelColor.attribute]||n.labelColor.color||"#000":n.labelColor.color;e.fillStyle=a,e.font="".concat(o," ").concat(r,"px ").concat(i),e.fillText(t.label,t.x+t.size+3,t.y+r/3)}}function dd(e,t,n){var r=n.labelSize,i=n.labelFont,o=n.labelWeight;e.font="".concat(o," ").concat(r,"px ").concat(i),e.fillStyle="#FFF",e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=8,e.shadowColor="#000";var a=2;if(typeof t.label=="string"){var s=e.measureText(t.label).width,l=Math.round(s+5),c=Math.round(r+2*a),u=Math.max(t.size,r/2)+a,h=Math.asin(c/2/u),d=Math.sqrt(Math.abs(Math.pow(u,2)-Math.pow(c/2,2)));e.beginPath(),e.moveTo(t.x+d,t.y+c/2),e.lineTo(t.x+u+l,t.y+c/2),e.lineTo(t.x+u+l,t.y-c/2),e.lineTo(t.x+d,t.y-c/2),e.arc(t.x,t.y,u,h,-h),e.closePath(),e.fill()}else e.beginPath(),e.arc(t.x,t.y,t.size+a,0,Math.PI*2),e.closePath(),e.fill();e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=0,Ya(e,t,n)}var bv=`
21
+ "use strict";(()=>{var Um=Object.create;var Yl=Object.defineProperty;var Bm=Object.getOwnPropertyDescriptor;var Km=Object.getOwnPropertyNames;var Vm=Object.getPrototypeOf,jm=Object.prototype.hasOwnProperty;var Xl=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}};var qm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Km(t))!jm.call(e,i)&&i!==n&&Yl(e,i,{get:()=>t[i],enumerable:!(r=Bm(t,i))||r.enumerable});return e};var Nr=(e,t,n)=>(n=e!=null?Um(Vm(e)):{},qm(t||!e||!e.__esModule?Yl(n,"default",{value:e,enumerable:!0}):n,e));var Sa=Xl((rR,tl)=>{"use strict";var ur=typeof Reflect=="object"?Reflect:null,Kp=ur&&typeof ur.apply=="function"?ur.apply:function(t,n,r){return Function.prototype.apply.call(t,n,r)},_a;ur&&typeof ur.ownKeys=="function"?_a=ur.ownKeys:Object.getOwnPropertySymbols?_a=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:_a=function(t){return Object.getOwnPropertyNames(t)};function Kx(e){console&&console.warn&&console.warn(e)}var jp=Number.isNaN||function(t){return t!==t};function ue(){ue.init.call(this)}tl.exports=ue;tl.exports.once=Yx;ue.EventEmitter=ue;ue.prototype._events=void 0;ue.prototype._eventsCount=0;ue.prototype._maxListeners=void 0;var Vp=10;function Ta(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(ue,"defaultMaxListeners",{enumerable:!0,get:function(){return Vp},set:function(e){if(typeof e!="number"||e<0||jp(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Vp=e}});ue.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};ue.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||jp(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function qp(e){return e._maxListeners===void 0?ue.defaultMaxListeners:e._maxListeners}ue.prototype.getMaxListeners=function(){return qp(this)};ue.prototype.emit=function(t){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[t];if(l===void 0)return!1;if(typeof l=="function")Kp(l,this,n);else for(var c=l.length,u=Jp(l,c),r=0;r<c;++r)Kp(u[r],this,n);return!0};function Yp(e,t,n,r){var i,a,o;if(Ta(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),o===void 0)o=a[t]=n,++e._eventsCount;else if(typeof o=="function"?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=qp(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,Kx(s)}return e}ue.prototype.addListener=function(t,n){return Yp(this,t,n,!1)};ue.prototype.on=ue.prototype.addListener;ue.prototype.prependListener=function(t,n){return Yp(this,t,n,!0)};function Vx(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Xp(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=Vx.bind(r);return i.listener=n,r.wrapFn=i,i}ue.prototype.once=function(t,n){return Ta(n),this.on(t,Xp(this,t,n)),this};ue.prototype.prependOnceListener=function(t,n){return Ta(n),this.prependListener(t,Xp(this,t,n)),this};ue.prototype.removeListener=function(t,n){var r,i,a,o,s;if(Ta(n),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||n));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){s=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():jx(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||n)}return this};ue.prototype.off=ue.prototype.removeListener;ue.prototype.removeAllListeners=function(t){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(t,n[i]);return this};function Zp(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?qx(i):Jp(i,i.length)}ue.prototype.listeners=function(t){return Zp(this,t,!0)};ue.prototype.rawListeners=function(t){return Zp(this,t,!1)};ue.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Qp.call(e,t)};ue.prototype.listenerCount=Qp;function Qp(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}ue.prototype.eventNames=function(){return this._eventsCount>0?_a(this._events):[]};function Jp(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function jx(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function qx(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function Yx(e,t){return new Promise(function(n,r){function i(o){e.removeListener(t,a),r(o)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",i),n([].slice.call(arguments))}ef(e,t,a,{once:!0}),t!=="error"&&Xx(e,i,{once:!0})})}function Xx(e,t,n){typeof e.on=="function"&&ef(e,"error",t,n)}function ef(e,t,n,r){if(typeof e.on=="function")r.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(a){r.once&&e.removeEventListener(t,i),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var nl=Xl((oR,nf)=>{"use strict";nf.exports=function(t){return t!==null&&typeof t=="object"&&typeof t.addUndirectedEdgeWithKey=="function"&&typeof t.dropNode=="function"&&typeof t.multi=="boolean"}});var Gi,le,tc,Ym,rn,Zl,nc,rc,lo,Li,Pr,ic,ho,co,uo,Xm,Di={},Ii=[],Zm=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Oi=Array.isArray;function Ht(e,t){for(var n in t)e[n]=t[n];return e}function po(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function Qm(e,t,n){var r,i,a,o={};for(a in t)a=="key"?r=t[a]:a=="ref"?i=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Gi.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return Ni(e,o,r,i,null)}function Ni(e,t,n,r,i){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:i??++tc,__i:-1,__u:0};return i==null&&le.vnode!=null&&le.vnode(a),a}function we(e){return e.children}function Pi(e,t){this.props=e,this.context=t}function vn(e,t){if(t==null)return e.__?vn(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?vn(e):null}function Jm(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],i=[],a=Ht({},t);a.__v=t.__v+1,le.vnode&&le.vnode(a),fo(e.__P,a,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,n??vn(t),!!(32&t.__u),i),a.__v=t.__v,a.__.__k[a.__i]=a,cc(r,a,i),t.__e=t.__=null,a.__e!=n&&ac(a)}}function ac(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),ac(e)}function Ql(e){(!e.__d&&(e.__d=!0)&&rn.push(e)&&!Mi.__r++||Zl!=le.debounceRendering)&&((Zl=le.debounceRendering)||nc)(Mi)}function Mi(){try{for(var e,t=1;rn.length;)rn.length>t&&rn.sort(rc),e=rn.shift(),t=rn.length,Jm(e)}finally{rn.length=Mi.__r=0}}function oc(e,t,n,r,i,a,o,s,l,c,u){var d,h,f,g,y,v,w=r&&r.__k||Ii,b=t.length;for(l=ev(n,t,w,l,b),d=0;d<b;d++)(f=n.__k[d])!=null&&(h=f.__i!=-1&&w[f.__i]||Di,f.__i=d,v=fo(e,f,h,i,a,o,s,l,c,u),g=f.__e,f.ref&&h.ref!=f.ref&&(h.ref&&go(h.ref,null,f),u.push(f.ref,f.__c||g,f)),y==null&&g!=null&&(y=g),4&f.__u?(l=sc(f,l,e),h.__e&&(h.__e=null)):typeof f.type=="function"&&v!==void 0?l=v:g&&(l=g.nextSibling),f.__u&=-7);return n.__e=y,l}function ev(e,t,n,r,i){var a,o,s,l,c,u=n.length,d=u,h=0;for(e.__k=new Array(i),a=0;a<i;a++)(o=t[a])!=null&&typeof o!="boolean"&&typeof o!="function"?(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?o=e.__k[a]=Ni(null,o,null,null,null):Oi(o)?o=e.__k[a]=Ni(we,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=Ni(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,l=a+h,o.__=e,o.__b=e.__b+1,s=null,(c=o.__i=tv(o,n,l,d))!=-1&&(d--,(s=n[c])&&(s.__u|=2)),s==null||s.__v==null?(c==-1&&(i>u?h--:i<u&&h++),typeof o.type!="function"&&(o.__u|=4)):c!=l&&(c==l-1?h--:c==l+1?h++:(c>l?h--:h++,o.__u|=4))):e.__k[a]=null;if(d)for(a=0;a<u;a++)(s=n[a])!=null&&(2&s.__u)==0&&(s.__e==r&&(r=vn(s)),dc(s,s));return r}function sc(e,t,n){var r,i;if(typeof e.type=="function"){for(r=e.__k,i=0;r&&i<r.length;i++)r[i]&&(r[i].__=e,t=sc(r[i],t,n));return t}e.__e!=t&&(t&&e.type&&!t.parentNode&&(t=vn(e)),t=n.insertBefore(e.__e,t||null));do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function tv(e,t,n,r){var i,a,o,s=e.key,l=e.type,c=t[n],u=c!=null&&(2&c.__u)==0;if(c===null&&s==null||u&&s==c.key&&l==c.type)return n;if(r>(u?1:0)){for(i=n-1,a=n+1;i>=0||a<t.length;)if((c=t[o=i>=0?i--:a++])!=null&&(2&c.__u)==0&&s==c.key&&l==c.type)return o}return-1}function Jl(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||Zm.test(t)?n:n+"px"}function Ci(e,t,n,r,i){var a,o;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof r=="string"&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||Jl(e.style,t,"");if(n)for(t in n)r&&n[t]==r[t]||Jl(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")a=t!=(t=t.replace(ic,"$1")),o=t.toLowerCase(),t=o in e||t=="onFocusOut"||t=="onFocusIn"?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?r?n[Pr]=r[Pr]:(n[Pr]=ho,e.addEventListener(t,a?uo:co,a)):e.removeEventListener(t,a?uo:co,a);else{if(i=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function ec(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[Li]==null)t[Li]=ho++;else if(t[Li]<n[Pr])return;return n(le.event?le.event(t):t)}}}function fo(e,t,n,r,i,a,o,s,l,c){var u,d,h,f,g,y,v,w,b,k,x,S,O,z,L,G,I=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),a=[s=t.__e=n.__e]),(u=le.__b)&&u(t);e:if(typeof I=="function"){d=o.length;try{if(b=t.props,k=I.prototype&&I.prototype.render,x=(u=I.contextType)&&r[u.__c],S=u?x?x.props.value:u.__:r,n.__c?w=(h=t.__c=n.__c).__=h.__E:(k?t.__c=h=new I(b,S):(t.__c=h=new Pi(b,S),h.constructor=I,h.render=rv),x&&x.sub(h),h.state||(h.state={}),h.__n=r,f=h.__d=!0,h.__h=[],h._sb=[]),k&&h.__s==null&&(h.__s=h.state),k&&I.getDerivedStateFromProps!=null&&(h.__s==h.state&&(h.__s=Ht({},h.__s)),Ht(h.__s,I.getDerivedStateFromProps(b,h.__s))),g=h.props,y=h.state,h.__v=t,f)k&&I.getDerivedStateFromProps==null&&h.componentWillMount!=null&&h.componentWillMount(),k&&h.componentDidMount!=null&&h.__h.push(h.componentDidMount);else{if(k&&I.getDerivedStateFromProps==null&&b!==g&&h.componentWillReceiveProps!=null&&h.componentWillReceiveProps(b,S),t.__v==n.__v||!h.__e&&h.shouldComponentUpdate!=null&&h.shouldComponentUpdate(b,h.__s,S)===!1){t.__v!=n.__v&&(h.props=b,h.state=h.__s,h.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(M){M&&(M.__=t)}),Ii.push.apply(h.__h,h._sb),h._sb=[],h.__h.length&&o.push(h),s=vn(n);break e}h.componentWillUpdate!=null&&h.componentWillUpdate(b,h.__s,S),k&&h.componentDidUpdate!=null&&h.__h.push(function(){h.componentDidUpdate(g,y,v)})}if(h.context=S,h.props=b,h.__P=e,h.__e=!1,O=le.__r,z=0,k)h.state=h.__s,h.__d=!1,O&&O(t),u=h.render(h.props,h.state,h.context),Ii.push.apply(h.__h,h._sb),h._sb=[];else do h.__d=!1,O&&O(t),u=h.render(h.props,h.state,h.context),h.state=h.__s;while(h.__d&&++z<25);h.state=h.__s,h.getChildContext!=null&&(r=Ht(Ht({},r),h.getChildContext())),k&&!f&&h.getSnapshotBeforeUpdate!=null&&(v=h.getSnapshotBeforeUpdate(g,y)),L=u!=null&&u.type===we&&u.key==null?uc(u.props.children):u,s=oc(e,Oi(L)?L:[L],t,n,r,i,a,o,s,l,c),h.base=t.__e,t.__u&=-161,h.__h.length&&o.push(h),w&&(h.__E=h.__=null)}catch(M){if(o.length=d,t.__v=null,l||a!=null){if(M.then){for(t.__u|=l?160:128;s&&s.nodeType==8&&s.nextSibling;)s=s.nextSibling;a!=null&&(a[a.indexOf(s)]=null),t.__e=s}else if(a!=null)for(G=a.length;G--;)po(a[G])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),M.then||lc(t),le.__e(M,t,n)}}else a==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):s=t.__e=nv(n.__e,t,n,r,i,a,o,l,c);return(u=le.diffed)&&u(t),128&t.__u?void 0:s}function lc(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(lc))}function cc(e,t,n){for(var r=0;r<n.length;r++)go(n[r],n[++r],n[++r]);le.__c&&le.__c(t,e),e.some(function(i){try{e=i.__h,i.__h=[],e.some(function(a){a.call(i)})}catch(a){le.__e(a,i.__v)}})}function uc(e){return typeof e!="object"||e==null||e.__b>0?e:Oi(e)?e.map(uc):e.constructor!==void 0?null:Ht({},e)}function nv(e,t,n,r,i,a,o,s,l){var c,u,d,h,f,g,y,v=n.props||Di,w=t.props,b=t.type;if(b=="svg"?i="http://www.w3.org/2000/svg":b=="math"?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),a!=null){for(c=0;c<a.length;c++)if((f=a[c])&&"setAttribute"in f==!!b&&(b?f.localName==b:f.nodeType==3)){e=f,a[c]=null;break}}if(e==null){if(b==null)return document.createTextNode(w);e=document.createElementNS(i,b,w.is&&w),s&&(le.__m&&le.__m(t,a),s=!1),a=null}if(b==null)v===w||s&&e.data==w||(e.data=w);else{if(a=b=="textarea"&&w.defaultValue!=null?null:a&&Gi.call(e.childNodes),!s&&a!=null)for(v={},c=0;c<e.attributes.length;c++)v[(f=e.attributes[c]).name]=f.value;for(c in v)f=v[c],c=="dangerouslySetInnerHTML"?d=f:c=="children"||c in w||c=="value"&&"defaultValue"in w||c=="checked"&&"defaultChecked"in w||Ci(e,c,null,f,i);for(c in w)f=w[c],c=="children"?h=f:c=="dangerouslySetInnerHTML"?u=f:c=="value"?g=f:c=="checked"?y=f:s&&typeof f!="function"||v[c]===f||Ci(e,c,f,v[c],i);if(u)s||d&&(u.__html==d.__html||u.__html==e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(d&&(e.innerHTML=""),oc(t.type=="template"?e.content:e,Oi(h)?h:[h],t,n,r,b=="foreignObject"?"http://www.w3.org/1999/xhtml":i,a,o,a?a[0]:n.__k&&vn(n,0),s,l),a!=null)for(c=a.length;c--;)po(a[c]);s&&b!="textarea"||(c="value",b=="progress"&&g==null?e.removeAttribute("value"):g!=null&&(g!==e[c]||b=="progress"&&!g||b=="option"&&g!=v[c])&&Ci(e,c,g,v[c],i),c="checked",y!=null&&y!=e[c]&&Ci(e,c,y,v[c],i))}return e}function go(e,t,n){try{if(typeof e=="function"){var r=typeof e.__u=="function";r&&e.__u(),r&&t==null||(e.__u=e(t))}else e.current=t}catch(i){le.__e(i,n)}}function dc(e,t,n){var r,i;if(le.unmount&&le.unmount(e),(r=e.ref)&&(r.current&&r.current!=e.__e||go(r,null,t)),(r=e.__c)!=null){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(a){le.__e(a,t)}r.base=r.__P=r.__n=null}if(r=e.__k)for(i=0;i<r.length;i++)r[i]&&dc(r[i],t,n||typeof e.type!="function");n||po(e.__e),e.__c=e.__=e.__e=void 0}function rv(e,t,n){return this.constructor(e,n)}function hc(e,t,n){var r,i,a,o;t==document&&(t=document.documentElement),le.__&&le.__(e,t),i=(r=typeof n=="function")?null:n&&n.__k||t.__k,a=[],o=[],fo(t,e=(!r&&n||t).__k=Qm(we,null,[e]),i||Di,Di,t.namespaceURI,!r&&n?[n]:i?null:t.firstChild?Gi.call(t.childNodes):null,a,!r&&n?n:i?i.__e:t.firstChild,r,o),cc(a,e,o),e.props.children=null}Gi=Ii.slice,le={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!i.__)try{if((a=i.constructor)&&a.getDerivedStateFromError!=null&&(i.setState(a.getDerivedStateFromError(e)),o=i.__d),i.componentDidCatch!=null&&(i.componentDidCatch(e,r||{}),o=i.__d),o)return i.__E=i}catch(s){e=s}throw e}},tc=0,Ym=function(e){return e!=null&&e.constructor===void 0},Pi.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Ht({},this.state),typeof e=="function"&&(e=e(Ht({},n),this.props)),e&&Ht(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ql(this))},Pi.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ql(this))},Pi.prototype.render=we,rn=[],nc=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,rc=function(e,t){return e.__v.__b-t.__v.__b},Mi.__r=0,lo=Math.random().toString(8),Li="__d"+lo,Pr="__a"+lo,ic=/(PointerCapture)$|Capture$/i,ho=0,co=ec(!1),uo=ec(!0),Xm=0;var pc="weave-bootstrap";var mo={cwd:""};function iv(e){return typeof e!="object"||e===null?!1:typeof e.cwd=="string"}function fc(e){if(e===null||e.trim()==="")return mo;let t;try{t=JSON.parse(e)}catch{return mo}return iv(t)?t:mo}var wn,_e,vo,gc,Dr=0,_c=[],Re=le,mc=Re.__b,vc=Re.__r,wc=Re.diffed,yc=Re.__c,bc=Re.unmount,xc=Re.__;function Ir(e,t){Re.__h&&Re.__h(_e,e,Dr||t),Dr=0;var n=_e.__H||(_e.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function B(e){return Dr=1,av(Ec,e)}function av(e,t,n){var r=Ir(wn++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Ec(void 0,t),function(s){var l=r.__N?r.__N[0]:r.__[0],c=r.t(l,s);l!==c&&(r.__N=[c,r.__[1]],r.__c.setState({}))}],r.__c=_e,!_e.__f)){var i=function(s,l,c){if(!r.__c.__H)return!0;var u=!1,d=r.__c.props!==s;if(r.__c.__H.__.some(function(f){if(f.__N){u=!0;var g=f.__[0];f.__=f.__N,f.__N=void 0,g!==f.__[0]&&(d=!0)}}),a){var h=a.call(this,s,l,c);return u?h||d:h}return!u||d};_e.__f=!0;var a=_e.shouldComponentUpdate,o=_e.componentWillUpdate;_e.componentWillUpdate=function(s,l,c){if(this.__e){var u=a;a=void 0,i(s,l,c),a=u}o&&o.call(this,s,l,c)},_e.shouldComponentUpdate=i}return r.__N||r.__}function re(e,t){var n=Ir(wn++,3);!Re.__s&&yo(n.__H,t)&&(n.__=e,n.u=t,_e.__H.__h.push(n))}function Fe(e,t){var n=Ir(wn++,4);!Re.__s&&yo(n.__H,t)&&(n.__=e,n.u=t,_e.__h.push(n))}function V(e){return Dr=5,$e(function(){return{current:e}},[])}function $e(e,t){var n=Ir(wn++,7);return yo(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Tc(e,t){return Dr=8,$e(function(){return e},t)}function Sc(){var e=Ir(wn++,11);if(!e.__){for(var t=_e.__v;t!==null&&!t.__m&&t.__!==null;)t=t.__;var n=t.__m||(t.__m=[0,0]);e.__="P"+n[0]+"-"+n[1]++}return e.__}function ov(){for(var e;e=_c.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Fi),t.__h.some(wo),t.__h=[]}catch(n){t.__h=[],Re.__e(n,e.__v)}}}Re.__b=function(e){_e=null,mc&&mc(e)},Re.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),xc&&xc(e,t)},Re.__r=function(e){vc&&vc(e),wn=0;var t=(_e=e.__c).__H;t&&(vo===_e?(t.__h=[],_e.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.some(Fi),t.__h.some(wo),t.__h=[],wn=0)),vo=_e},Re.diffed=function(e){wc&&wc(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(_c.push(t)!==1&&gc===Re.requestAnimationFrame||((gc=Re.requestAnimationFrame)||sv)(ov)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),vo=_e=null},Re.__c=function(e,t){t.some(function(n){try{n.__h.some(Fi),n.__h=n.__h.filter(function(r){return!r.__||wo(r)})}catch(r){t.some(function(i){i.__h&&(i.__h=[])}),t=[],Re.__e(r,n.__v)}}),yc&&yc(e,t)},Re.unmount=function(e){bc&&bc(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(r){try{Fi(r)}catch(i){t=i}}),n.__H=void 0,t&&Re.__e(t,n.__v))};var kc=typeof requestAnimationFrame=="function";function sv(e){var t,n=function(){clearTimeout(r),kc&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);kc&&(t=requestAnimationFrame(n))}function Fi(e){var t=_e,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),_e=t}function wo(e){var t=_e;e.__c=e.__(),_e=t}function yo(e,t){return!e||e.length!==t.length||t.some(function(n,r){return n!==e[r]})}function Ec(e,t){return typeof t=="function"?t(e):t}var Rc={bg:"#eff1f5",panel:"#e6e9ef",page:"#ffffff",raise:"#ccd0da",fg:"#4c4f69",dim:"#56586a",faint:"#606274",line:"#ccd0da","line-strong":"#bcc0cc",accent:"#7113ec",ok:"#28641b",warn:"#7c4f10",bad:"#b20d30"},Ac={bg:"#24273a",panel:"#1e2030",page:"#181926",raise:"#363a4f",fg:"#cad3f5",dim:"#a5adcb",faint:"#939ab7",line:"#363a4f","line-strong":"#494d64",accent:"#c6a0f6",ok:"#a6da95",warn:"#eed49f",bad:"#ed8796"},ve={light:{name:"Catppuccin Latte · Mauve",scheme:"light",colors:Rc},"latte-blue":{name:"Catppuccin Latte · Blue",scheme:"light",colors:{...Rc,accent:"#1750bf"}},"frappe-teal":{name:"Catppuccin Frappé · Teal",scheme:"dark",colors:{bg:"#303446",panel:"#292c3c",page:"#232634",raise:"#414559",fg:"#c6d0f5",dim:"#b5bfe2",faint:"#a5adce",line:"#414559","line-strong":"#51576d",accent:"#81c8be",ok:"#a6d189",warn:"#e5c890",bad:"#f4a4a6"}},dark:{name:"Catppuccin Macchiato · Mauve",scheme:"dark",colors:Ac},"macchiato-peach":{name:"Catppuccin Macchiato · Peach",scheme:"dark",colors:{...Ac,accent:"#f5a97f"}},"mocha-lavender":{name:"Catppuccin Mocha · Lavender",scheme:"dark",colors:{bg:"#1e1e2e",panel:"#181825",page:"#11111b",raise:"#313244",fg:"#cdd6f4",dim:"#a6adc8",faint:"#9399b2",line:"#313244","line-strong":"#45475a",accent:"#b4befe",ok:"#a6e3a1",warn:"#f9e2af",bad:"#f38ba8"}},"paper-blue":{name:"Paper · Blue",scheme:"light",colors:{bg:"#f4f6f8",panel:"#e9edf2",page:"#ffffff",raise:"#dce3eb",fg:"#182334",dim:"#42536a",faint:"#526176",line:"#dce3eb","line-strong":"#bac6d4",accent:"#174ea6",ok:"#21623b",warn:"#805300",bad:"#a3223c"}},"ink-blue":{name:"Ink · Blue",scheme:"dark",colors:{bg:"#1b2430",panel:"#141c27",page:"#101720",raise:"#2b3748",fg:"#edf2f8",dim:"#becadc",faint:"#a5b5cb",line:"#2b3748","line-strong":"#46566d",accent:"#8bbcff",ok:"#91d5a5",warn:"#edc47b",bad:"#ff9fae"}},"sand-amber":{name:"Sand · Amber",scheme:"light",colors:{bg:"#f7f3ec",panel:"#ede6da",page:"#fffdf8",raise:"#e2d8c8",fg:"#30291f",dim:"#5b4e3f",faint:"#675847",line:"#e2d8c8","line-strong":"#c7b8a2",accent:"#814500",ok:"#365c2a",warn:"#795000",bad:"#a12c32"}},"ember-amber":{name:"Ember · Amber",scheme:"dark",colors:{bg:"#29231f",panel:"#211c19",page:"#191512",raise:"#3c322b",fg:"#f3e9dc",dim:"#d0bfab",faint:"#bfa991",line:"#3c322b","line-strong":"#5c4d40",accent:"#edb96b",ok:"#b5cf8a",warn:"#efc57a",bad:"#f69a91"}},"mist-teal":{name:"Mist · Teal",scheme:"light",colors:{bg:"#eff5f3",panel:"#e1ece8",page:"#fafffd",raise:"#d2e2dc",fg:"#18342e",dim:"#3c5b52",faint:"#48655b",line:"#d2e2dc","line-strong":"#acc5bc",accent:"#006457",ok:"#2a5e35",warn:"#795300",bad:"#a52a43"}},"forest-teal":{name:"Forest · Teal",scheme:"dark",colors:{bg:"#1c2b27",panel:"#16221e",page:"#101b17",raise:"#2b4038",fg:"#e6f2ec",dim:"#b8d0c4",faint:"#a2bfb0",line:"#2b4038","line-strong":"#456255",accent:"#7cd8bb",ok:"#a5d6a0",warn:"#e6c582",bad:"#f5a2ac"}}},Cc=["system",...Object.keys(ve)];function Xn(e){return typeof e=="string"&&Cc.includes(e)}var yn={mauve:{name:"Mauve",light:"#7113ec",dark:"#cba9f8"},blue:{name:"Blue",light:"#1750bf",dark:"#8bbcff"},teal:{name:"Teal",light:"#006457",dark:"#7cd8bb"},peach:{name:"Peach",light:"#814500",dark:"#f5a97f"},rose:{name:"Rose",light:"#a52a43",dark:"#f4a4a6"},green:{name:"Green",light:"#28641b",dark:"#a6da95"},amber:{name:"Amber",light:"#775000",dark:"#edb96b"},lavender:{name:"Lavender",light:"#445198",dark:"#b4befe"}};function $i(e){return typeof e=="string"?e:e.theme}function Lc(e,t){return t==="theme"?ve[e].colors.accent:yn[t][ve[e].scheme]}var rt={containsRest:55,containsStrength:.12,relationDistance:50,relationStrength:.07,charge:-200,chargeMax:800,center:.05},an={...rt};function bo(e){Object.assign(rt,e)}var Zn=[{key:"containsStrength",label:"Group cohesion",hint:"how hard a parent holds its children — group cohesion",min:0,max:1,step:.01},{key:"containsRest",label:"Group radius",hint:"how far children sit from their parent — rosette radius",min:10,max:300,step:5},{key:"relationStrength",label:"Link strength",hint:"pull of links-to / mentions across groups",min:0,max:1,step:.01},{key:"relationDistance",label:"Link distance",hint:"how long those cross-group springs are",min:20,max:600,step:10},{key:"charge",label:"Repulsion",hint:"node-to-node repulsion — more negative pushes harder",min:-1200,max:0,step:10},{key:"chargeMax",label:"Repulsion range",hint:"distance past which repulsion stops — caps overall spread",min:100,max:4e3,step:50},{key:"center",label:"Center gravity",hint:"pull toward the origin — too much makes one blob",min:0,max:.3,step:.005}],on={lightTheme:"light",darkTheme:"dark",accent:"theme",fontSize:14,readable:!0,spellcheck:!0,defaultEdit:!1,startup:"restore",focusNewTabs:!0,groupColors:!0,forces:{...an}};function Nc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pc(e){if(!Nc(e))return null;let n=!Object.hasOwn(e,"lightTheme")&&!Object.hasOwn(e,"darkTheme")?{...e,lightTheme:"light",darkTheme:"dark"}:e;if(Object.keys(n).length!==Object.keys(on).length)return null;for(let i of["light","dark"]){let a=n[`${i}Theme`];if(!Xn(a)||a==="system"||ve[a].scheme!==i)return null}if(n.accent!=="theme"&&(typeof n.accent!="string"||!Object.hasOwn(yn,n.accent))||typeof n.fontSize!="number"||!Number.isInteger(n.fontSize)||n.fontSize<12||n.fontSize>22)return null;for(let i of["readable","spellcheck","defaultEdit","focusNewTabs","groupColors"])if(typeof n[i]!="boolean")return null;if(n.startup!=="restore"&&n.startup!=="empty")return null;let r=n.forces;if(!Nc(r)||Object.keys(r).length!==Zn.length)return null;for(let{key:i,min:a,max:o}of Zn){let s=r[i];if(typeof s!="number"||!Number.isFinite(s)||s<a||s>o)return null}return n}var To=40,Dc=100,lv=1e9,Mr=e=>({id:e,kind:"document",history:[null],cursor:0,scroll:0});function So(){return{version:1,panes:[{id:"pane-1",tabs:[Mr("tab-1")],activeTab:"tab-1"}],activePane:"pane-1",split:"right",ratio:.5,treeVisible:!0,contextVisible:!0,contextPinned:!1,treeWidth:240,contextWidth:240,contextGraphHeight:260,contextTagsHeight:180,theme:"system",preferences:on}}function bn(e){return e.panes.find(t=>t.id===e.activePane)}function xn(e){let t=bn(e);return t.tabs.find(n=>n.id===t.activeTab)}function Gt(e){return e.kind==="document"?e.history[e.cursor]??null:null}function Jn(e,t){let n=new Set(e.panes.flatMap(i=>[i.id,...i.tabs.map(a=>a.id)])),r=1;for(;n.has(`${t}-${r}`);)r++;return`${t}-${r}`}function kn(e,t,n){return{...e,activePane:t.id,panes:e.panes.map(r=>r.id===t.id?Hi({...t,activeTab:n.id,tabs:t.tabs.map(i=>i.id===n.id?n:i)}):r)}}function Eo(e){return e.tabs.find(t=>t.id===e.lastDocumentTab&&t.kind==="document")??[...e.tabs].reverse().find(t=>t.kind==="document")}function Hi(e){let{lastDocumentTab:t,...n}=e,r=e.tabs.find(i=>i.id===e.activeTab&&i.kind==="document")??Eo(e);return r?{...n,lastDocumentTab:r.id}:n}function Wi(e){if(xn(e).kind==="document")return e;let t=bn(e),n=Eo(t);return n?kn(e,t,n):sn(e,null,{newTab:!0})}function Ui(e,t,n){let r=e.panes.find(a=>a.id===t),i=r?.tabs.find(a=>a.id===n);return r&&i?{pane:r,tab:i}:null}function _o(e,t,n){return e.panes.reduce((r,i)=>r+i.tabs.length,0)>=To?e:kn(e,{...t,tabs:[...t.tabs,n]},n)}function xo(e,t){let n=e.history.slice(0,e.cursor+1);return n.at(-1)===t?e:(n.push(t),n.length>Dc&&n.shift(),{...e,history:n,cursor:n.length-1,scroll:0})}function sn(e,t,n={}){let r=e.panes.find(s=>s.id===(n.paneId??e.activePane));if(!r)return e;let i=r.activeTab,a=r.tabs.find(s=>s.id===i);if(a?.kind==="graph"&&(a=Eo(r),a?r={...r,activeTab:a.id}:n.newTab||(n={...n,newTab:!0})),n.newTab||!a)return _o(e,r,xo(Mr(Jn(e,"tab")),t));let o=xo(a,t);return o===a&&r.id===e.activePane&&i===a.id?e:kn(e,r,o)}function Ro(e){let t=e.panes.flatMap(r=>r.tabs.filter(i=>i.kind==="graph").map(i=>({pane:r,tab:i})))[0];if(t)return t.pane.id===e.activePane&&t.pane.activeTab===t.tab.id?e:kn(e,t.pane,t.tab);let n=bn(e);return _o(e,n,{id:Jn(e,"tab"),kind:"graph",history:[null],cursor:0,scroll:0})}function Ao(e,t,n){let r=Ui(e,t,n);return!r||e.activePane===t&&r.pane.activeTab===n?e:kn(e,r.pane,r.tab)}function Co(e,t,n){let r=Ui(e,t,n);if(!r)return e;let{pane:i}=r;if(i.tabs.length===1){let c=e.panes.find(d=>d.id!==t);if(c)return{...e,panes:[c],activePane:c.id};let u=Mr(Jn(e,"tab"));return kn(e,{...i,tabs:[u]},u)}let a=i.tabs.filter(c=>c.id!==n),o=i.activeTab===n,s=a[Math.max(0,i.tabs.findIndex(c=>c.id===n)-1)],l=Hi({...i,tabs:a,activeTab:o?s.id:i.activeTab});return{...e,activePane:o?t:e.activePane,panes:e.panes.map(c=>c.id===t?l:c)}}function Lo(e,t,n){let r=e.panes.find(o=>o.id===t),i=r?.tabs.find(o=>o.id===r.activeTab);if(!r||!i||i.kind!=="document")return e;let a=i.cursor+n;return a<0||a>=i.history.length?e:kn(e,r,{...i,cursor:a,scroll:0})}function No(e,t){if(e.panes.length===2)return e.split===t?e:{...e,split:t};let n=er(e,e.activePane,xn(e).id);return n===e?e:{...n,split:t}}function Ic(e,t){if(e.panes.length!==2||!e.panes.some(i=>i.id===t))return e;let n=e.panes.find(i=>i.id===t),r=e.panes.find(i=>i.id!==t);return{...e,panes:[{...r,tabs:[...r.tabs,...n.tabs]}],activePane:r.id}}function Po(e,t,n,r){let i=Ui(e,t,n);if(!i||r===n||r!==null&&!i.pane.tabs.some(o=>o.id===r))return e;let a=i.pane.tabs.filter(o=>o.id!==n);return a.splice(r===null?a.length:a.findIndex(o=>o.id===r),0,i.tab),a.every((o,s)=>o===i.pane.tabs[s])?e:{...e,panes:e.panes.map(o=>o.id===t?{...o,tabs:a}:o)}}function Bi(e,t,n){return e.panes.some(r=>r.id===t)?e.panes.find(r=>r.id!==t&&r.tabs.some(i=>i.id===n))?.id??null:null}function er(e,t,n){let r=Ui(e,t,n);if(!r)return e;let i=e.panes.find(u=>u.id!==t)??{id:Jn(e,"pane"),tabs:[],activeTab:""},a=r.pane.tabs.filter(u=>u.id!==n),o=Hi({...i,tabs:[...i.tabs,r.tab],activeTab:r.tab.id});if(!a.length&&e.panes.length===2)return{...e,panes:[o],activePane:i.id};if(!a.length&&e.panes.reduce((u,d)=>u+d.tabs.length,0)>=To)return e;let s=a.length?null:Mr(Jn(e,"tab")),l=a.length?a:[s],c=Hi({...r.pane,tabs:l,activeTab:r.pane.activeTab===n?l[Math.max(0,r.pane.tabs.findIndex(u=>u.id===n)-1)].id:r.pane.activeTab});return{...e,activePane:i.id,panes:e.panes.length===1?[c,o]:e.panes.map(u=>u.id===c.id?c:o)}}function ko(e,t){return Object.keys(e).length===t.length&&t.every(n=>Object.hasOwn(e,n))}function zi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qn(e,t){return typeof e=="string"&&e.length<=2048&&(t===void 0?e.length>0&&!/[\u0000-\u001f\u007f]/.test(e):new RegExp(`^${t}-[1-9][0-9]{0,8}$`).test(e))}function Mc(e){if(!zi(e)||!ko(e,["version","panes","activePane","split","ratio","treeVisible","contextVisible","treeWidth","contextWidth","theme",...["preferences","contextGraphHeight","contextTagsHeight","contextPinned"].filter(u=>Object.hasOwn(e,u))])||e.version!==1||!Array.isArray(e.panes)||e.panes.length<1||e.panes.length>2||!Qn(e.activePane,"pane")||e.split!=="right"&&e.split!=="down"||typeof e.ratio!="number"||!Number.isFinite(e.ratio)||e.ratio<.1||e.ratio>.9||typeof e.treeVisible!="boolean"||typeof e.contextVisible!="boolean")return null;let t=Object.hasOwn(e,"contextPinned")?e.contextPinned:!1;if(typeof t!="boolean"||typeof e.treeWidth!="number"||!Number.isFinite(e.treeWidth)||e.treeWidth<120||e.treeWidth>800||typeof e.contextWidth!="number"||!Number.isFinite(e.contextWidth)||e.contextWidth<120||e.contextWidth>800)return null;let n=Object.hasOwn(e,"contextGraphHeight")?e.contextGraphHeight:260,r=Object.hasOwn(e,"contextTagsHeight")?e.contextTagsHeight:180;if(typeof n!="number"||!Number.isFinite(n)||n<120||n>800||typeof r!="number"||!Number.isFinite(r)||r<60||r>600||!Xn(e.theme))return null;let i=Object.hasOwn(e,"preferences")?Pc(e.preferences):on;if(i===null)return null;let a=e.preferences;e.theme!=="system"&&(!zi(a)||!Object.hasOwn(a,"lightTheme"))&&(i={...i,[`${ve[e.theme].scheme}Theme`]:e.theme});let o=new Set,s=0,l=0,c=[];for(let u of e.panes){if(!zi(u)||!ko(u,Object.hasOwn(u,"lastDocumentTab")?["id","tabs","activeTab","lastDocumentTab"]:["id","tabs","activeTab"])||!Qn(u.id,"pane")||!Array.isArray(u.tabs)||u.tabs.length<1||!Qn(u.activeTab,"tab")||o.has(u.id))return null;o.add(u.id);let d=[],h=!1;for(let g of u.tabs){if(!zi(g)||!ko(g,["id","kind","history","cursor","scroll"])||!Qn(g.id,"tab")||o.has(g.id)||(o.add(g.id),g.kind!=="document"&&g.kind!=="graph"))return null;let y=g.kind;if(!Array.isArray(g.history)||g.history.length<1||g.history.length>Dc||!Number.isInteger(g.cursor)||g.cursor<0||g.cursor>=g.history.length||g.history.some(v=>v!==null&&!Qn(v))||typeof g.scroll!="number"||!Number.isFinite(g.scroll)||g.scroll<0||g.scroll>lv)return null;y==="graph"&&l++,s++,g.id===u.activeTab&&(h=!0),d.push({id:g.id,kind:y,history:g.history,cursor:g.cursor,scroll:g.scroll})}if(!h)return null;let f=u.lastDocumentTab;if(Object.hasOwn(u,"lastDocumentTab")&&(!Qn(f,"tab")||!d.some(g=>g.id===f&&g.kind==="document")))return null;c.push({id:u.id,tabs:d,activeTab:u.activeTab,...typeof f=="string"?{lastDocumentTab:f}:{}})}return s>To||l>1||!c.some(u=>u.id===e.activePane)?null:{version:1,panes:c,activePane:e.activePane,split:e.split,ratio:e.ratio,treeVisible:e.treeVisible,contextVisible:e.contextVisible,contextPinned:t,treeWidth:e.treeWidth,contextWidth:e.contextWidth,contextGraphHeight:n,contextTagsHeight:r,theme:e.theme,preferences:i}}function Gc(e){if(e.preferences.startup==="restore")return e;let t=So();return{...e,panes:t.panes,activePane:t.activePane}}function Oc(e,t,n={}){let r=sn(e,t,n);return!n.newTab||e.preferences.focusNewTabs?r:{...r,activePane:e.activePane,panes:r.panes.map(i=>{let a=e.panes.find(l=>l.id===i.id),{lastDocumentTab:o,...s}=i;return{...s,activeTab:a.activeTab,...a.lastDocumentTab?{lastDocumentTab:a.lastDocumentTab}:{}}})}}var Se=(e,t)=>fetch(e,{...t?.method===void 0?{}:{method:t.method},...t?.headers===void 0?{}:{headers:t.headers},...t?.body===void 0?{}:{body:t.body},...t?.signal===void 0?{}:{signal:t.signal},credentials:"same-origin"});function Ki(e,t=!1){return{ok:!0,data:e,cached:t}}function Ot(e,t,n){return{ok:!1,kind:e,status:t,message:n}}function Fc(e){return e===403?"auth":e===404?"missing":"server"}function $c(e){return e===403?"not authorised — this workspace session has ended":e===404?"not found":`server error (${e})`}async function _n(e,t,n,r){let i;try{i=await e(t,r)}catch(o){return Ot("network",0,o instanceof Error?o.message:"network request failed")}if(!i.ok)return Ot(Fc(i.status),i.status,$c(i.status));let a;try{a=await i.json()}catch{return Ot("malformed",i.status,"response was not valid JSON")}return n(a)?Ki(a):Ot("malformed",i.status,"response did not match the expected shape")}function it(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zc(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function cv(e){if(!it(e)||typeof e.stamp!="string")return!1;let t=e.model;return!it(t)||!Array.isArray(t.nodes)||!Array.isArray(t.edges)?!1:it(e.tags)&&it(e.dangling)}function uv(e){if(!it(e)||typeof e.stamp!="string"||typeof e.turn!="number")return!1;let t=e.events;return Array.isArray(t)&&t.every(n=>it(n)&&typeof n.seq=="number"&&typeof n.turn=="number"&&typeof n.at=="string"&&(n.kind==="searched"||n.kind==="read"||n.kind==="wrote")&&typeof n.action=="string"&&zc(n.slugs)&&(n.query===void 0||typeof n.query=="string"))}function dv(e){if(!it(e))return!1;for(let t of["slug","title","body","created","updated","source"])if(typeof e[t]!="string")return!1;return zc(e.tags)}function Hc(e){return it(e)&&dv(e.note)}function hv(e){return it(e)&&typeof e.query=="string"&&Array.isArray(e.hits)}function pv(e){return it(e)&&typeof e.opened=="boolean"}var fv=new Set(["human","agent","outside","system"]),gv=e=>Number.isInteger(e)&&e>=0;function mv(e){if(!it(e)||typeof e.slug!="string"||typeof e.enabled!="boolean"||typeof e.trimmed!="boolean")return!1;let t=e.revisions;return Array.isArray(t)&&t.every(n=>{if(!it(n)||typeof n.at!="string"||!fv.has(n.by)||typeof n.op!="string")return!1;if(typeof n.full=="string")return!0;let r=n.keep;return Array.isArray(r)&&r.length===2&&r.every(gv)&&typeof n.text=="string"})}function vv(e){let t=[],n=null;for(let{at:r,by:i,op:a,full:o,keep:s,text:l}of e.revisions){if(o!==void 0)n=o;else{let[c,u]=s;if(n===null||c+u>n.length)return null;n=n.slice(0,c)+l+n.slice(n.length-u)}t.push({at:r,by:i,op:a,body:n})}return{slug:e.slug,enabled:e.enabled,trimmed:e.trimmed,revisions:t}}function wv(e){return it(e)&&typeof e.enabled=="boolean"}function yv(e){return it(e)&&e.ok===!0&&(e.id===void 0||typeof e.id=="string")}function Vi(e,t=null){return Uc(e,"/api/graph",t,cv)}function Wc(e,t=null){return Uc(e,"/api/trail",t,uv)}async function Uc(e,t,n,r){let i=n===null?void 0:{"if-none-match":`"${n.stamp}"`},a;try{a=await e(t,i===void 0?{}:{headers:i})}catch(s){return Ot("network",0,s instanceof Error?s.message:"network request failed")}if(a.status===304)return n===null?Ot("malformed",304,"server sent 304 for an unconditional request"):Ki(n,!0);if(!a.ok)return Ot(Fc(a.status),a.status,$c(a.status));let o;try{o=await a.json()}catch{return Ot("malformed",a.status,"response was not valid JSON")}return r(o)?Ki(o):Ot("malformed",a.status,"response did not match the expected shape")}function Do(e,t){return _n(e,`/api/note/${encodeURIComponent(t)}`,Hc)}function Bc(e,t,n){return _n(e,`/api/search?q=${encodeURIComponent(t)}`,hv,n===void 0?void 0:{signal:n})}function Kc(e,t){return _n(e,"/api/open",pv,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({slug:t})})}function Vc(e,t){return _n(e,"/api/notes",Hc,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({title:t})})}function Tn(e,t,n,r){return _n(e,t,yv,{method:n,...r===void 0?{}:{headers:{"content-type":"application/json"},body:JSON.stringify(r)}})}var ji=(e,t="")=>`/api/note/${encodeURIComponent(e)}${t}`,Io=(e,t="")=>`/api/folder/${e.split("/").map(encodeURIComponent).join("/")}${t}`,jc=(e,t,n,r=!1)=>Tn(e,ji(t),"POST",r?{body:n,raw:!0}:{body:n}),qc=(e,t,n)=>Tn(e,ji(t,"/rename"),"POST",{name:n}),Yc=(e,t,n)=>Tn(e,ji(t,"/move"),"POST",{folder:n}),Xc=(e,t)=>Tn(e,ji(t),"DELETE"),Zc=(e,t)=>Tn(e,Io(t),"POST"),Qc=(e,t,n)=>Tn(e,Io(t,"/rename"),"POST",{name:n}),Jc=(e,t)=>Tn(e,Io(t),"DELETE");async function eu(e,t){let n=await _n(e,`/api/history/${encodeURIComponent(t)}`,mv);if(!n.ok)return n;let r=vv(n.data);return r===null?Ot("malformed",200,"history did not fit together"):Ki(r,n.cached)}function Mo(e,t){return _n(e,"/api/history-settings",wv,t===void 0?void 0:{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({enabled:t})})}function ft(e){if(e.kind==="external"&&e.detail.url){let t=e.detail.url.replace(/^[a-z]+:\/\//,"").replace(/^[^@\/]+@/,"").replace(/\.git$/,"").replace(/\/+$/,"");if(t)return t}return e.kind==="package"&&e.detail.manifest?`${e.label} (${e.detail.manifest})`:e.label}function bv(e){let t=new Map;for(let l of e.nodes)t.set(l.id,l);let n=new Map,r=new Map,i=new Set;for(let l of e.edges){if(l.kind==="contains"){let c=n.get(l.source);c?c.push(l.target):n.set(l.source,[l.target])}if(l.kind==="contains"||l.kind==="anchored-at"){let c=r.get(l.source);c?c.push(l.target):r.set(l.source,[l.target]),i.add(l.target)}}let a=l=>{if(!l.detail.path)return null;let c=l.detail.path,u=null,d=0,h=n.get("repository")??[];for(let f of h){let g=t.get(f);if(g&&g.kind==="module"&&g.detail.path){let y=g.detail.path;c.startsWith(y+"/")&&y.length>d&&(u=f,d=y.length)}}return u},o=new Map;for(let l of e.nodes){if(l.kind!=="entryPoint")continue;let c=a(l);if(c){let u=o.get(c);u?u.push(l.id):o.set(c,[l.id])}}let s=e.nodes.filter(l=>!i.has(l.id)).map(l=>l.id);return{byId:t,contains:n,tree:r,incoming:i,moduleEntries:o,roots:s}}function ru(e){let t=new Set;for(let n of e.edges)(n.kind==="contains"||n.kind==="anchored-at")&&t.add(n.target);return e.nodes.filter(n=>!t.has(n.id)).map(n=>n.id)}function xv(e){return e==="gitState"||e==="external"||e==="package"||e==="entryPoint"}function tu(e){return e?e.kind==="module"||e.id.startsWith("vfolder:"):!1}function kv(e,t){return e.slice().sort((n,r)=>{let i=t.get(n),a=t.get(r),o=tu(i),s=tu(a);if(o!==s)return o?-1:1;let l=ft(i),c=ft(a);return l.localeCompare(c)})}function nu(e,t,n){let r=Number(e);return Number.isFinite(r)?{kind:"count",n:r,unit:t,phrasing:n}:{kind:"text",text:n==="attribute"?`${t}=${e}`:`${e} ${t}`}}function _v(e){switch(e.kind){case"note":return e.detail.updated?{kind:"relTime",iso:e.detail.updated}:null;case"module":return e.detail.files?nu(e.detail.files,"files","attribute"):null;case"gitState":return e.detail.commit?{kind:"commit",sha:e.detail.commit}:null;case"repository":return e.detail.files?nu(e.detail.files,"files","prose"):null;case"package":return e.detail.kind?{kind:"text",text:e.detail.kind}:null;case"entryPoint":return e.detail.summary?{kind:"text",text:"summary"}:null;default:return null}}function Go(e,t){let n=bv(e),{byId:r,tree:i,moduleEntries:a,roots:o}=n,s=g=>{let w=(i.get(g)??[]).filter(b=>{let k=r.get(b);if(!k||k.kind!=="entryPoint")return!0;for(let[,x]of a)if(x.includes(b))return!1;return!0}).concat(a.get(g)??[]);return w=w.filter(b=>r.has(b)),t.showInternals||(w=w.filter(b=>{let k=r.get(b);return!(k&&xv(k.kind))})),kv(w,r)},l=t.provFilter!==null||t.query.length>0,c=g=>!(t.provFilter!==null&&g.provenance!==t.provFilter||t.query.length>0&&!ft(g).toLowerCase().includes(t.query.toLowerCase())),u=new Set,d=g=>{let y=r.get(g),v=!1;for(let b of s(g))d(b)&&(v=!0);let w=c(y)||v;return w&&u.add(g),w};for(let g of o)d(g);let h=[],f=(g,y)=>{if(!u.has(g))return;let v=r.get(g),w=s(g),b=w.filter(x=>u.has(x)),k=l?b.length>0:t.expanded.has(g);if(h.push({id:g,depth:y,hasKids:w.length>0,expanded:k,label:ft(v),kind:v.kind,provenance:v.provenance,meta:_v(v)}),k)for(let x of b)f(x,y+1)};for(let g of o)f(g,0);return h}function Oo(e){if(!e.nodes.find(i=>i.kind==="vault"))return null;let n=e.nodes.some(i=>i.kind==="note"),r=e.nodes.some(i=>i.kind==="repository");return!n&&!r?"no notes yet — add one with the weave_note tool":null}function Wt(e,t){if(!e)return"";let n=Date.parse(e);if(Number.isNaN(n))return"";let r=Math.max(0,Math.floor((t-n)/1e3));if(r<60)return"just now";let i=Math.floor(r/60);if(i<60)return`${i}m ago`;let a=Math.floor(i/60);if(a<24)return`${a}h ago`;let o=Math.floor(a/24);if(o<30)return`${o}d ago`;let s=Math.floor(o/30);return s<12?`${s}mo ago`:`${Math.floor(s/12)}y ago`}var Tv=7;function Fo(e,t){if(e===null)return"";switch(e.kind){case"relTime":return Wt(e.iso,t);case"count":return e.phrasing==="attribute"?`${e.unit}=${e.n}`:`${e.n} ${e.unit}`;case"commit":return e.sha.slice(0,Tv);case"text":return e.text}}var Sv="## Raw",Ev=/^[ \t]*(`{3,}|~{3,})(.*)$/gm,Rv=new RegExp(`^${Sv}[ \\t]*\\r?$`,"m");function iu(e){let t=[],n=null;for(let r of e.matchAll(Ev)){let i=r[1],a=r[2];n===null?n={at:r.index,marker:i[0],length:i.length}:i[0]===n.marker&&i.length>=n.length&&a.trim()===""&&(t.push([n.at,r.index+r[0].length]),n=null)}return n!==null&&t.push([n.at,e.length]),t}function au(e,t){let n=0;for(;;){let r=e.slice(n),i=Rv.exec(r);if(i===null)return e.length;let a=n+i.index,o=t.find(([s,l])=>a>=s&&a<l);if(o===void 0)return a;n=o[1]}}var Av=/(?:^|\n)-{3,}[ \t]*\r?\n\s*$/;function Cv(e){let t=au(e,iu(e));if(t===e.length)return t;let n=Av.exec(e.slice(0,t));return n===null?t:n.index===0&&!e.startsWith(`
22
+ `)?0:n.index+1}function tr(e){let t=Cv(e);return{head:e.slice(0,t).trimEnd(),tail:e.slice(t).trimEnd()}}function $o(e,t){return t===""?e:e===""?t:`${e}
23
+
24
+ ${t}`}var Lv=/^<!--(?! appended\b).*-->[ \t]*\r?$/;function Gr(e){let t=au(e,iu(e));if(t===e.length)return{opening:e,entries:""};let n=e.indexOf(`
25
+ `,t);if(n!==-1){let r=e.indexOf(`
26
+ `,n+1),i=e.slice(n+1,r===-1?e.length:r);Lv.test(i)&&(n=r)}return n===-1?{opening:e.trimEnd(),entries:""}:{opening:e.slice(0,n).trimEnd(),entries:e.slice(n).replace(/^\s*\n/,"").trimEnd()}}function zo(e,t){return t.trim()===""?"":`${e}
27
+
28
+ ${t.replace(/^\s*\n/,"").trimEnd()}`}var Nv=["title","description","path","size","slug","source","updated","created","tags","files","languages","branch","commit","uncommitted changes","captured","manifest","kind","url","summarized files","summarized by","summarized at","summary","dangling links","link references","warning","stale","preview","root","notes","state"];function Ho(e,t){let n=new Map;for(let s of e.nodes)n.set(s.id,s);let r=n.get(t);if(!r)return null;let i=[];for(let s of Nv){let l=r.detail[s];l===void 0||l===""||i.push({id:`meta:${s}`,label:s,value:l})}let a=[];for(let s of e.edges){if(s.source!==t)continue;let l=n.get(s.target);l&&a.push({id:`link:${s.kind}:${s.target}`,target:s.target,label:`${s.kind} → ${ft(l)}`,kind:l.kind,provenance:l.provenance,direction:"link"})}let o=[];for(let s of e.edges){if(s.kind!=="links-to"||s.target!==t)continue;let l=n.get(s.source);l&&o.push({id:`backlink:${s.source}`,target:s.source,label:`← ${ft(l)}`,kind:l.kind,provenance:l.provenance,direction:"backlink"})}return{id:t,label:ft(r),kind:r.kind,provenance:r.provenance,meta:i,links:a,backlinks:o}}function qi(e,t){let n=new Set([e]);for(let r of t)r.source===e&&n.add(r.target),r.target===e&&n.add(r.source);return n}var Pv=["contains","anchored-at"];function Dv(e){return Pv.includes(e)}function Yi(e,t){let n=new Map;for(let h of e.nodes)n.set(h.id,h);let r=Iv(e,n),i=ru(e),a=new Set,o=h=>{if(!a.has(h)&&(a.add(h),!!t.has(h)))for(let f of r.get(h)??[])o(f)};for(let h of i)o(h);let s=new Map;for(let h of r.keys())s.set(h,Mv(h,r));let l=new Map;for(let h of e.nodes)if(!(!a.has(h.id)||t.has(h.id)))for(let f of s.get(h.id)??[])!a.has(f)&&!l.has(f)&&l.set(f,h.id);for(let h of e.nodes)!a.has(h.id)&&!l.has(h.id)&&a.add(h.id);let c=new Map;for(let[h,f]of r){let g=s.get(h);c.set(h,{children:f,descendants:g,members:g.filter(y=>l.get(y)===h),provenance:Gv(g,n),expanded:t.has(h)})}let u=new Set,d=[];for(let h of e.nodes)a.has(h.id)?d.push(h):u.add(h.id);return{nodes:d,edges:Ov(e.edges,a,l),clusters:c,hidden:u,representative:l,roots:i}}function Iv(e,t){let n=new Map;for(let r of e.edges){if(!Dv(r.kind)||!t.has(r.source)||!t.has(r.target))continue;let i=n.get(r.source);i===void 0?n.set(r.source,[r.target]):i.includes(r.target)||i.push(r.target)}return n}function Mv(e,t){let n=[],r=new Set([e]),i=a=>{for(let o of t.get(a)??[])r.has(o)||(r.add(o),n.push(o),i(o))};return i(e),n}function Gv(e,t){let n={human:0,agent:0,generated:0,none:0};for(let r of e){let i=t.get(r)?.provenance??null;i===null?n.none++:n[i]++}return n}function Ov(e,t,n){let r=o=>t.has(o)?o:n.get(o),i=[],a=new Set;for(let o of e){let s=r(o.source),l=r(o.target);if(s===void 0||l===void 0||s===l)continue;let c=`${s}\0${l}\0${o.kind}`;a.has(c)||(a.add(c),i.push({source:s,target:l,kind:o.kind}))}return i}function Wo(e){let t=new Map;for(let n of e){if(n.kind!=="links-to")continue;let r=t.get(n.target);r?r.push(n.source):t.set(n.target,[n.source])}return t}var nr=[null,"human","agent","generated"];function ou(e=["vault","repository"]){return{expanded:new Set(e),showInternals:!1,provFilter:null,query:""}}function Ko(e,t){let n=new Set(e.expanded).add("vault"),r="";for(let i of t?t.split("/"):[])r=r?`${r}/${i}`:i,n.add(`vfolder:${r}`);return{...e,expanded:n,query:"",provFilter:null}}function Sn(e){return{...e.model,danglingLinks:e.dangling}}function su(e,t){return e===null?[]:Go(Sn(e),t)}var rr="vfolder:\0draft";function lu(e){return e.type==="vault"?"":e.type==="folder"?e.path:e.path.split("/").slice(0,-1).join("/")}function cu(e,t){let n=t.trim();return n===""?null:e===""?n:`${e}/${n}`}function uu(e,t){if(t===null)return[...e];let n={id:rr,depth:t===""?1:t.split("/").length+1,hasKids:!1,expanded:!1,label:"",kind:"module",provenance:null,meta:null};if(t==="")return[...e,n];let r=e.findIndex(a=>a.id===`vfolder:${t}`);if(r===-1)return[...e,n];let i=r+1;for(;i<e.length&&e[i].depth>e[r].depth;)i++;return[...e.slice(0,i),n,...e.slice(i)]}function Vo(e,t){let n=new Set(e.expanded);return n.delete(t)||n.add(t),{...e,expanded:n}}function Fv(e,t){if(e.expanded.has(t))return e;let n=new Set(e.expanded);return n.add(t),{...e,expanded:n}}function $v(e,t){if(!e.expanded.has(t))return e;let n=new Set(e.expanded);return n.delete(t),{...e,expanded:n}}function jo(e){return e==="vault"?null:e.startsWith("vfolder:")?e.slice(8):void 0}function En(e){return e==="vault"?{type:"vault",path:""}:e.startsWith("note:")?{type:"note",path:e.slice(5)}:e.startsWith("vfolder:")?{type:"folder",path:e.slice(8)}:null}function Zi(e,t){if(t.type==="note")return[t.path];if(t.type!=="folder"||e===null)return[];let n=`note:${t.path}/`;return e.model.nodes.filter(r=>r.kind==="note"&&r.id.startsWith(n)).map(r=>r.id.slice(5))}function du(e,t){return e===null?!1:t.type==="note"?e===`note:${t.path}`:t.type==="folder"?e===`vfolder:${t.path}`||e.startsWith(`vfolder:${t.path}/`)||e.startsWith(`note:${t.path}/`):!1}function qo(e){return e.type==="folder"}function hu(e,t,n){return qo(e)?n?`Delete “${t}” and everything in it`:"Delete…":"Delete"}function pu(e,t){return e.query===t?e:{...e,query:t}}function fu(e){let t=nr.indexOf(e.provFilter),n=nr[(t+1)%nr.length]??null;return{...e,provFilter:n}}function gu(e){return{...e,showInternals:!e.showInternals}}function Qi(e,t){return t===null?-1:e.findIndex(n=>n.id===t)}function Bo(e,t){return e[t]?.id??null}function Uo(e,t,n){if(e.length===0)return null;let r=Qi(e,t),i=r===-1?n>0?-1:e.length:r;return Bo(e,Math.min(e.length-1,Math.max(0,i+n)))}function zv(e,t){let n=Qi(e,t),r=n<=0?void 0:e[n];if(r===void 0)return null;for(let i of e.slice(0,n).reverse())if(i.depth<r.depth)return i.id;return null}var Hv={j:"ArrowDown",k:"ArrowUp"};function Wv(e){return Hv[e]??e}function mu(e,t,n,r,i=!1){let a={state:t,selectedId:n,handled:!1};if(i)return a;let o=d=>({state:t,selectedId:d,handled:!0}),s=Wv(r);if(s==="ArrowDown")return o(Uo(e,n,1));if(s==="ArrowUp")return o(Uo(e,n,-1));if(s==="Home")return o(Bo(e,0));if(s==="End")return o(Bo(e,e.length-1));if(s!=="ArrowRight"&&s!=="ArrowLeft")return a;let l=Qi(e,n),c=l===-1?void 0:e[l];if(c===void 0||n===null)return a;if(s==="ArrowRight")return c.hasKids?c.expanded?o(Uo(e,n,1)):{state:Fv(t,n),selectedId:n,handled:!0}:a;if(c.hasKids&&c.expanded)return{state:$v(t,n),selectedId:n,handled:!0};let u=zv(e,n);return u===null?a:o(u)}var Uv={vault:"vault",note:"note",repository:"repository",module:"module",package:"package",entryPoint:"entryPoint",gitState:"gitState",external:"external",file:"file"};function Rn(e){return Uv[e]}var Bv={human:"●",agent:"◐",generated:"○"};function Ut(e){return e===null?"":Bv[e]}function ln(e){return e===null?"":`${e}-authored`}function vu(e){return`weave-row-${e.replace(/[^A-Za-z0-9_-]/g,"-")}`}function Kv(e){let t=e.map(()=>({posinset:1,setsize:1})),n=[],r=i=>{for(let a of n.splice(i+1))for(let[o,s]of a.entries())t[s]={posinset:o+1,setsize:a.length}};for(let[i,a]of e.entries()){r(a.depth);let o=n[a.depth];if(o===void 0){for(o=[];n.length<a.depth;)n.push([]);n.push(o)}o.push(i)}return r(-1),t}function Vv(e,t,n,r={posinset:1,setsize:1}){let i=e.hasKids?e.expanded?"open":"closed":"leaf";return{id:e.id,domId:vu(e.id),posinset:r.posinset,setsize:r.setsize,depth:e.depth,label:e.label,kind:e.kind,kindIcon:Rn(e.kind),provenance:e.provenance,provenanceGlyph:Ut(e.provenance),provenanceTitle:ln(e.provenance),twisty:i,hasKids:e.hasKids,expanded:e.expanded,selected:e.id===t,meta:Fo(e.meta,n),level:e.depth+1}}function wu(e,t,n){let r=Kv(e);return e.map((i,a)=>Vv(i,t,n,r[a]))}function yu(e,t){return Qi(e,t)===-1?null:vu(t)}function bu(e){return{"--weave-depth":String(Math.max(0,e))}}function Xi(e){return e===null?"all":e}function xu(e){let t=nr.indexOf(e),n=nr[(t+1)%nr.length]??null;return`provenance filter: ${Xi(e)} — click for ${Xi(n)}`}function ku(e){return e?"internals":"knowledge"}function _u(e){return e?"showing git state, packages, externals and entry points — click to hide":"hiding git state, packages, externals and entry points — click to show"}var Tu="filter…",Su="Vault and repository",Eu="Filter the tree",Ru="Filter the tree (/)";function Au(e,t,n){if(e===null)return"loading…";let r=Oo(Sn(e));return r!==null?r:t.length>0?null:n.query.length>0||n.provFilter!==null?"nothing matches this filter — clear it to see the whole vault":"nothing to show"}function Cu(e){return e.length===1?"1 row":`${e.length} rows`}function Lu(e){let t=+this._x.call(null,e),n=+this._y.call(null,e);return Nu(this.cover(t,n),t,n,e)}function Nu(e,t,n,r){if(isNaN(t)||isNaN(n))return e;var i,a=e._root,o={data:r},s=e._x0,l=e._y0,c=e._x1,u=e._y1,d,h,f,g,y,v,w,b;if(!a)return e._root=o,e;for(;a.length;)if((y=t>=(d=(s+c)/2))?s=d:c=d,(v=n>=(h=(l+u)/2))?l=h:u=h,i=a,!(a=a[w=v<<1|y]))return i[w]=o,e;if(f=+e._x.call(null,a.data),g=+e._y.call(null,a.data),t===f&&n===g)return o.next=a,i?i[w]=o:e._root=o,e;do i=i?i[w]=new Array(4):e._root=new Array(4),(y=t>=(d=(s+c)/2))?s=d:c=d,(v=n>=(h=(l+u)/2))?l=h:u=h;while((w=v<<1|y)===(b=(g>=h)<<1|f>=d));return i[b]=a,i[w]=o,e}function Pu(e){var t,n,r=e.length,i,a,o=new Array(r),s=new Array(r),l=1/0,c=1/0,u=-1/0,d=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,t=e[n]))||isNaN(a=+this._y.call(null,t))||(o[n]=i,s[n]=a,i<l&&(l=i),i>u&&(u=i),a<c&&(c=a),a>d&&(d=a));if(l>u||c>d)return this;for(this.cover(l,c).cover(u,d),n=0;n<r;++n)Nu(this,o[n],s[n],e[n]);return this}function Du(e,t){if(isNaN(e=+e)||isNaN(t=+t))return this;var n=this._x0,r=this._y0,i=this._x1,a=this._y1;if(isNaN(n))i=(n=Math.floor(e))+1,a=(r=Math.floor(t))+1;else{for(var o=i-n||1,s=this._root,l,c;n>e||e>=i||r>t||t>=a;)switch(c=(t<r)<<1|e<n,l=new Array(4),l[c]=s,s=l,o*=2,c){case 0:i=n+o,a=r+o;break;case 1:n=i-o,a=r+o;break;case 2:i=n+o,r=a-o;break;case 3:n=i-o,r=a-o;break}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=a,this}function Iu(){var e=[];return this.visit(function(t){if(!t.length)do e.push(t.data);while(t=t.next)}),e}function Mu(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function ze(e,t,n,r,i){this.node=e,this.x0=t,this.y0=n,this.x1=r,this.y1=i}function Gu(e,t,n){var r,i=this._x0,a=this._y0,o,s,l,c,u=this._x1,d=this._y1,h=[],f=this._root,g,y;for(f&&h.push(new ze(f,i,a,u,d)),n==null?n=1/0:(i=e-n,a=t-n,u=e+n,d=t+n,n*=n);g=h.pop();)if(!(!(f=g.node)||(o=g.x0)>u||(s=g.y0)>d||(l=g.x1)<i||(c=g.y1)<a))if(f.length){var v=(o+l)/2,w=(s+c)/2;h.push(new ze(f[3],v,w,l,c),new ze(f[2],o,w,v,c),new ze(f[1],v,s,l,w),new ze(f[0],o,s,v,w)),(y=(t>=w)<<1|e>=v)&&(g=h[h.length-1],h[h.length-1]=h[h.length-1-y],h[h.length-1-y]=g)}else{var b=e-+this._x.call(null,f.data),k=t-+this._y.call(null,f.data),x=b*b+k*k;if(x<n){var S=Math.sqrt(n=x);i=e-S,a=t-S,u=e+S,d=t+S,r=f.data}}return r}function Ou(e){if(isNaN(u=+this._x.call(null,e))||isNaN(d=+this._y.call(null,e)))return this;var t,n=this._root,r,i,a,o=this._x0,s=this._y0,l=this._x1,c=this._y1,u,d,h,f,g,y,v,w;if(!n)return this;if(n.length)for(;;){if((g=u>=(h=(o+l)/2))?o=h:l=h,(y=d>=(f=(s+c)/2))?s=f:c=f,t=n,!(n=n[v=y<<1|g]))return this;if(!n.length)break;(t[v+1&3]||t[v+2&3]||t[v+3&3])&&(r=t,w=v)}for(;n.data!==e;)if(i=n,!(n=n.next))return this;return(a=n.next)&&delete n.next,i?(a?i.next=a:delete i.next,this):t?(a?t[v]=a:delete t[v],(n=t[0]||t[1]||t[2]||t[3])&&n===(t[3]||t[2]||t[1]||t[0])&&!n.length&&(r?r[w]=n:this._root=n),this):(this._root=a,this)}function Fu(e){for(var t=0,n=e.length;t<n;++t)this.remove(e[t]);return this}function $u(){return this._root}function zu(){var e=0;return this.visit(function(t){if(!t.length)do++e;while(t=t.next)}),e}function Hu(e){var t=[],n,r=this._root,i,a,o,s,l;for(r&&t.push(new ze(r,this._x0,this._y0,this._x1,this._y1));n=t.pop();)if(!e(r=n.node,a=n.x0,o=n.y0,s=n.x1,l=n.y1)&&r.length){var c=(a+s)/2,u=(o+l)/2;(i=r[3])&&t.push(new ze(i,c,u,s,l)),(i=r[2])&&t.push(new ze(i,a,u,c,l)),(i=r[1])&&t.push(new ze(i,c,o,s,u)),(i=r[0])&&t.push(new ze(i,a,o,c,u))}return this}function Wu(e){var t=[],n=[],r;for(this._root&&t.push(new ze(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var i=r.node;if(i.length){var a,o=r.x0,s=r.y0,l=r.x1,c=r.y1,u=(o+l)/2,d=(s+c)/2;(a=i[0])&&t.push(new ze(a,o,s,u,d)),(a=i[1])&&t.push(new ze(a,u,s,l,d)),(a=i[2])&&t.push(new ze(a,o,d,u,c)),(a=i[3])&&t.push(new ze(a,u,d,l,c))}n.push(r)}for(;r=n.pop();)e(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Uu(e){return e[0]}function Bu(e){return arguments.length?(this._x=e,this):this._x}function Ku(e){return e[1]}function Vu(e){return arguments.length?(this._y=e,this):this._y}function An(e,t,n){var r=new Yo(t??Uu,n??Ku,NaN,NaN,NaN,NaN);return e==null?r:r.addAll(e)}function Yo(e,t,n,r,i,a){this._x=e,this._y=t,this._x0=n,this._y0=r,this._x1=i,this._y1=a,this._root=void 0}function ju(e){for(var t={data:e.data},n=t;e=e.next;)n=n.next={data:e.data};return t}var Ze=An.prototype=Yo.prototype;Ze.copy=function(){var e=new Yo(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,n,r;if(!t)return e;if(!t.length)return e._root=ju(t),e;for(n=[{source:t,target:e._root=new Array(4)}];t=n.pop();)for(var i=0;i<4;++i)(r=t.source[i])&&(r.length?n.push({source:r,target:t.target[i]=new Array(4)}):t.target[i]=ju(r));return e};Ze.add=Lu;Ze.addAll=Pu;Ze.cover=Du;Ze.data=Iu;Ze.extent=Mu;Ze.find=Gu;Ze.remove=Ou;Ze.removeAll=Fu;Ze.root=$u;Ze.size=zu;Ze.visit=Hu;Ze.visitAfter=Wu;Ze.x=Bu;Ze.y=Vu;function Ae(e){return function(){return e}}function Lt(e){return(e()-.5)*1e-6}function jv(e){return e.x+e.vx}function qv(e){return e.y+e.vy}function Xo(e){var t,n,r,i=1,a=1;typeof e!="function"&&(e=Ae(e==null?1:+e));function o(){for(var c,u=t.length,d,h,f,g,y,v,w=0;w<a;++w)for(d=An(t,jv,qv).visitAfter(s),c=0;c<u;++c)h=t[c],y=n[h.index],v=y*y,f=h.x+h.vx,g=h.y+h.vy,d.visit(b);function b(k,x,S,O,z){var L=k.data,G=k.r,I=y+G;if(L){if(L.index>h.index){var M=f-L.x-L.vx,q=g-L.y-L.vy,Y=M*M+q*q;Y<I*I&&(M===0&&(M=Lt(r),Y+=M*M),q===0&&(q=Lt(r),Y+=q*q),Y=(I-(Y=Math.sqrt(Y)))/Y*i,h.vx+=(M*=Y)*(I=(G*=G)/(v+G)),h.vy+=(q*=Y)*I,L.vx-=M*(I=1-I),L.vy-=q*I)}return}return x>f+I||O<f-I||S>g+I||z<g-I}}function s(c){if(c.data)return c.r=n[c.data.index];for(var u=c.r=0;u<4;++u)c[u]&&c[u].r>c.r&&(c.r=c[u].r)}function l(){if(t){var c,u=t.length,d;for(n=new Array(u),c=0;c<u;++c)d=t[c],n[d.index]=+e(d,c,t)}}return o.initialize=function(c,u){t=c,r=u,l()},o.iterations=function(c){return arguments.length?(a=+c,o):a},o.strength=function(c){return arguments.length?(i=+c,o):i},o.radius=function(c){return arguments.length?(e=typeof c=="function"?c:Ae(+c),l(),o):e},o}function Yv(e){return e.index}function qu(e,t){var n=e.get(t);if(!n)throw new Error("node not found: "+t);return n}function Zo(e){var t=Yv,n=d,r,i=Ae(30),a,o,s,l,c,u=1;e==null&&(e=[]);function d(v){return 1/Math.min(s[v.source.index],s[v.target.index])}function h(v){for(var w=0,b=e.length;w<u;++w)for(var k=0,x,S,O,z,L,G,I;k<b;++k)x=e[k],S=x.source,O=x.target,z=O.x+O.vx-S.x-S.vx||Lt(c),L=O.y+O.vy-S.y-S.vy||Lt(c),G=Math.sqrt(z*z+L*L),G=(G-a[k])/G*v*r[k],z*=G,L*=G,O.vx-=z*(I=l[k]),O.vy-=L*I,S.vx+=z*(I=1-I),S.vy+=L*I}function f(){if(o){var v,w=o.length,b=e.length,k=new Map(o.map((S,O)=>[t(S,O,o),S])),x;for(v=0,s=new Array(w);v<b;++v)x=e[v],x.index=v,typeof x.source!="object"&&(x.source=qu(k,x.source)),typeof x.target!="object"&&(x.target=qu(k,x.target)),s[x.source.index]=(s[x.source.index]||0)+1,s[x.target.index]=(s[x.target.index]||0)+1;for(v=0,l=new Array(b);v<b;++v)x=e[v],l[v]=s[x.source.index]/(s[x.source.index]+s[x.target.index]);r=new Array(b),g(),a=new Array(b),y()}}function g(){if(o)for(var v=0,w=e.length;v<w;++v)r[v]=+n(e[v],v,e)}function y(){if(o)for(var v=0,w=e.length;v<w;++v)a[v]=+i(e[v],v,e)}return h.initialize=function(v,w){o=v,c=w,f()},h.links=function(v){return arguments.length?(e=v,f(),h):e},h.id=function(v){return arguments.length?(t=v,h):t},h.iterations=function(v){return arguments.length?(u=+v,h):u},h.strength=function(v){return arguments.length?(n=typeof v=="function"?v:Ae(+v),g(),h):n},h.distance=function(v){return arguments.length?(i=typeof v=="function"?v:Ae(+v),y(),h):i},h}var Xv={value:()=>{}};function Xu(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Ji(n)}function Ji(e){this._=e}function Zv(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Ji.prototype=Xu.prototype={constructor:Ji,on:function(e,t){var n=this._,r=Zv(e+"",n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=Qv(n[i],e.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=Yu(n[i],e.name,t);else if(t==null)for(i in n)n[i]=Yu(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Ji(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function Qv(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function Yu(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=Xv,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Qo=Xu;var ir=0,Fr=0,Or=0,Qu=1e3,ea,$r,ta=0,Cn=0,na=0,zr=typeof performance=="object"&&performance.now?performance:Date,Ju=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function ts(){return Cn||(Ju(Jv),Cn=zr.now()+na)}function Jv(){Cn=0}function Jo(){this._call=this._time=this._next=null}Jo.prototype=ra.prototype={constructor:Jo,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?ts():+n)+(t==null?0:+t),!this._next&&$r!==this&&($r?$r._next=this:ea=this,$r=this),this._call=e,this._time=n,es()},stop:function(){this._call&&(this._call=null,this._time=1/0,es())}};function ra(e,t,n){var r=new Jo;return r.restart(e,t,n),r}function ed(){ts(),++ir;for(var e=ea,t;e;)(t=Cn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ir}function Zu(){Cn=(ta=zr.now())+na,ir=Fr=0;try{ed()}finally{ir=0,tw(),Cn=0}}function ew(){var e=zr.now(),t=e-ta;t>Qu&&(na-=t,ta=e)}function tw(){for(var e,t=ea,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:ea=n);$r=e,es(r)}function es(e){if(!ir){Fr&&(Fr=clearTimeout(Fr));var t=e-Cn;t>24?(e<1/0&&(Fr=setTimeout(Zu,e-zr.now()-na)),Or&&(Or=clearInterval(Or))):(Or||(ta=zr.now(),Or=setInterval(ew,Qu)),ir=1,Ju(Zu))}}function td(){let e=1;return()=>(e=(1664525*e+1013904223)%4294967296)/4294967296}function nd(e){return e.x}function rd(e){return e.y}var nw=10,rw=Math.PI*(3-Math.sqrt(5));function ns(e){var t,n=1,r=.001,i=1-Math.pow(r,1/300),a=0,o=.6,s=new Map,l=ra(d),c=Qo("tick","end"),u=td();e==null&&(e=[]);function d(){h(),c.call("tick",t),n<r&&(l.stop(),c.call("end",t))}function h(y){var v,w=e.length,b;y===void 0&&(y=1);for(var k=0;k<y;++k)for(n+=(a-n)*i,s.forEach(function(x){x(n)}),v=0;v<w;++v)b=e[v],b.fx==null?b.x+=b.vx*=o:(b.x=b.fx,b.vx=0),b.fy==null?b.y+=b.vy*=o:(b.y=b.fy,b.vy=0);return t}function f(){for(var y=0,v=e.length,w;y<v;++y){if(w=e[y],w.index=y,w.fx!=null&&(w.x=w.fx),w.fy!=null&&(w.y=w.fy),isNaN(w.x)||isNaN(w.y)){var b=nw*Math.sqrt(.5+y),k=y*rw;w.x=b*Math.cos(k),w.y=b*Math.sin(k)}(isNaN(w.vx)||isNaN(w.vy))&&(w.vx=w.vy=0)}}function g(y){return y.initialize&&y.initialize(e,u),y}return f(),t={tick:h,restart:function(){return l.restart(d),t},stop:function(){return l.stop(),t},nodes:function(y){return arguments.length?(e=y,f(),s.forEach(g),t):e},alpha:function(y){return arguments.length?(n=+y,t):n},alphaMin:function(y){return arguments.length?(r=+y,t):r},alphaDecay:function(y){return arguments.length?(i=+y,t):+i},alphaTarget:function(y){return arguments.length?(a=+y,t):a},velocityDecay:function(y){return arguments.length?(o=1-y,t):1-o},randomSource:function(y){return arguments.length?(u=y,s.forEach(g),t):u},force:function(y,v){return arguments.length>1?(v==null?s.delete(y):s.set(y,g(v)),t):s.get(y)},find:function(y,v,w){var b=0,k=e.length,x,S,O,z,L;for(w==null?w=1/0:w*=w,b=0;b<k;++b)z=e[b],x=y-z.x,S=v-z.y,O=x*x+S*S,O<w&&(L=z,w=O);return L},on:function(y,v){return arguments.length>1?(c.on(y,v),t):c.on(y)}}}function rs(){var e,t,n,r,i=Ae(-30),a,o=1,s=1/0,l=.81;function c(f){var g,y=e.length,v=An(e,nd,rd).visitAfter(d);for(r=f,g=0;g<y;++g)t=e[g],v.visit(h)}function u(){if(e){var f,g=e.length,y;for(a=new Array(g),f=0;f<g;++f)y=e[f],a[y.index]=+i(y,f,e)}}function d(f){var g=0,y,v,w=0,b,k,x;if(f.length){for(b=k=x=0;x<4;++x)(y=f[x])&&(v=Math.abs(y.value))&&(g+=y.value,w+=v,b+=v*y.x,k+=v*y.y);f.x=b/w,f.y=k/w}else{y=f,y.x=y.data.x,y.y=y.data.y;do g+=a[y.data.index];while(y=y.next)}f.value=g}function h(f,g,y,v){if(!f.value)return!0;var w=f.x-t.x,b=f.y-t.y,k=v-g,x=w*w+b*b;if(k*k/l<x)return x<s&&(w===0&&(w=Lt(n),x+=w*w),b===0&&(b=Lt(n),x+=b*b),x<o&&(x=Math.sqrt(o*x)),t.vx+=w*f.value*r/x,t.vy+=b*f.value*r/x),!0;if(f.length||x>=s)return;(f.data!==t||f.next)&&(w===0&&(w=Lt(n),x+=w*w),b===0&&(b=Lt(n),x+=b*b),x<o&&(x=Math.sqrt(o*x)));do f.data!==t&&(k=a[f.data.index]*r/x,t.vx+=w*k,t.vy+=b*k);while(f=f.next)}return c.initialize=function(f,g){e=f,n=g,u()},c.strength=function(f){return arguments.length?(i=typeof f=="function"?f:Ae(+f),u(),c):i},c.distanceMin=function(f){return arguments.length?(o=f*f,c):Math.sqrt(o)},c.distanceMax=function(f){return arguments.length?(s=f*f,c):Math.sqrt(s)},c.theta=function(f){return arguments.length?(l=f*f,c):Math.sqrt(l)},c}function is(e){var t=Ae(.1),n,r,i;typeof e!="function"&&(e=Ae(e==null?0:+e));function a(s){for(var l=0,c=n.length,u;l<c;++l)u=n[l],u.vx+=(i[l]-u.x)*r[l]*s}function o(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+e(n[s],s,n))?0:+t(n[s],s,n)}}return a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(t=typeof s=="function"?s:Ae(+s),o(),a):t},a.x=function(s){return arguments.length?(e=typeof s=="function"?s:Ae(+s),o(),a):e},a}function as(e){var t=Ae(.1),n,r,i;typeof e!="function"&&(e=Ae(e==null?0:+e));function a(s){for(var l=0,c=n.length,u;l<c;++l)u=n[l],u.vy+=(i[l]-u.y)*r[l]*s}function o(){if(n){var s,l=n.length;for(r=new Array(l),i=new Array(l),s=0;s<l;++s)r[s]=isNaN(i[s]=+e(n[s],s,n))?0:+t(n[s],s,n)}}return a.initialize=function(s){n=s,o()},a.strength=function(s){return arguments.length?(t=typeof s=="function"?s:Ae(+s),o(),a):t},a.y=function(s){return arguments.length?(e=typeof s=="function"?s:Ae(+s),o(),a):e},a}var iw=9,ia=6,Hr=18,aw=32,od=9,Wr=iw+od;function os(e){let t=Number.isFinite(e)&&e>0?e:0,n=Math.min(1,Math.log2(1+t)/Math.log2(1+aw));return ia+(Hr-ia)*n}function ss(e){return e+od}var ow=300,sd=1,id=.001;function ad(e){return e==="contains"||e==="anchored-at"}function sw(e){let t=Math.trunc(e)>>>0;return()=>(t=(1664525*t+1013904223)%4294967296)/4294967296}function lw(e){let t=[],n=new Set;for(let a of e.nodes)n.has(a.id)||(n.add(a.id),t.push(a.id));let r=[],i=new Set;for(let a of e.edges){if(a.source===a.target||!n.has(a.source)||!n.has(a.target))continue;let o=`${a.source}\0${a.target}\0${a.kind}`;i.has(o)||(i.add(o),r.push(a))}return{ids:t,edges:r}}function ls(e){let t=Zo(e.links).id(n=>n.id).distance(n=>ad(n.kind)?rt.containsRest:rt.relationDistance).strength(n=>ad(n.kind)?rt.containsStrength:rt.relationStrength).iterations(2);return ns(e.nodes).randomSource(sw(e.seed??sd)).force("charge",rs().strength(rt.charge).distanceMax(rt.chargeMax)).force("link",t).force("collide",Xo(n=>n.r??Wr).strength(1)).force("x",is(0).strength(rt.center)).force("y",as(0).strength(rt.center)).stop()}function cw(e,t,n){let r=ls({nodes:e,links:t.map(({source:i,target:a,kind:o})=>({source:i,target:a,kind:o})),seed:n.seed}).alpha(n.warm?.3:1).alphaMin(id).alphaDecay(n.ticks>0?1-Math.pow(id,1/n.ticks):0);for(let i=0;i<n.ticks;i++)r.tick()}function ld(e,t={}){let n=Math.max(0,Math.trunc(t.ticks??ow)),{ids:r,edges:i}=lw(e),a=r.map(l=>{let c=t.initial?.get(l),u={id:l,vx:0,vy:0};return c!==void 0&&Number.isFinite(c.x)&&Number.isFinite(c.y)&&(u.x=c.x,u.y=c.y,t.pinWarm===!0&&(u.fx=c.x,u.fy=c.y)),u}),o=new Map;for(let l of i)o.set(l.source,(o.get(l.source)??0)+1),o.set(l.target,(o.get(l.target)??0)+1);for(let l of a)l.r=ss(os(o.get(l.id)??0));a.length>1&&cw(a,i,{ticks:n,seed:t.seed??sd,warm:t.initial!==void 0});let s=new Map;for(let l of a)s.set(l.id,{x:Number.isFinite(l.x)?l.x:0,y:Number.isFinite(l.y)?l.y:0});return s}var uw=Object.fromEntries(Object.entries(ve).map(([e,{colors:t}])=>[e,{accent:t.accent,success:t.ok,warning:t.warn,dim:t.dim,text:t.fg,muted:t.faint,line:t["line-strong"],ground:t.bg}]));function Ft(e){let t=uw[$i(e)];return typeof e=="string"?t:{...t,accent:Lc(e.theme,e.accent)}}var dw={vault:"accent",note:"text",repository:"accent",module:"dim",package:"dim",entryPoint:"dim",gitState:"dim",external:"dim",file:"dim"},hw={contains:"dim","anchored-at":"dim","links-to":"accent",mentions:"accent"};function pw(e,t){return Ft(t)[dw[e]]}function cd(e,t){return Ft(t)[hw[e]]}function fw(e,t){return gw(e)?Ur(cd(e,t),t,mw):cd(e,t)}function gw(e){return e==="contains"||e==="anchored-at"}var us=.85,mw=.3;function Ln(e,t,n){let r=l=>/^#[0-9a-f]{6}$/.test(l)?[Number.parseInt(l.slice(1,3),16),Number.parseInt(l.slice(3,5),16),Number.parseInt(l.slice(5,7),16)]:null,i=r(e),a=r(t);if(i===null||a===null)return e;let o=Math.min(1,Math.max(0,Number.isFinite(n)?n:0)),s=(l,c)=>Math.round(l+(c-l)*o).toString(16).padStart(2,"0");return`#${s(i[0],a[0])}${s(i[1],a[1])}${s(i[2],a[2])}`}function Ur(e,t,n=us){return Ln(e,Ft(t).ground,n)}var vw={contains:1,"anchored-at":1,"links-to":1.4,mentions:1},cs=1.6,ud=32,ww=ud/2;function yw(e,t=ud){if(t<=0)return e.length>0?"…":e;if(e.length<=t)return e;let n=t-1,i=e.slice(0,n).lastIndexOf(" "),a=i>=ww?i:n;return`${e.slice(0,a).trimEnd()}…`}function bw(e){let t=Ut(e.provenance),n=ft(e);return yw(t===""?n:`${t} ${n}`)}var xw=6,kw=6;function _w(e){return(t,n,r)=>{if(n.label===null||n.label===""||n.forceLabel===!0)return;let i=Ft(e);t.save(),t.font=`${r.labelSize}px ${r.labelFont}`,t.textAlign="center",t.shadowColor=i.ground,t.shadowBlur=kw,t.fillStyle=i.text,t.fillText(n.label,n.x,n.y+n.size+r.labelSize+xw),t.restore()}}function dd(e){let t=1/0,n=1/0,r=-1/0,i=-1/0,a=0;for(let s of e)!Number.isFinite(s.x)||!Number.isFinite(s.y)||(a++,s.x<t&&(t=s.x),s.x>r&&(r=s.x),s.y<n&&(n=s.y),s.y>i&&(i=s.y));if(a===0)return null;let o=Math.max(Hr,(Wr*4-Math.max(r-t,i-n))/2);return{x:[t-o,r+o],y:[n-o,i+o]}}var hd={nodes:[],edges:[]};function pd(e){return`${e.source}\0${e.target}\0${e.kind}`}function Tw(e,t){let n=new Map,r=new Set;for(let i of e){if(i.source===i.target||!t.has(i.source)||!t.has(i.target))continue;let a=pd(i);r.has(a)||(r.add(a),n.set(i.source,(n.get(i.source)??0)+1),n.set(i.target,(n.get(i.target)??0)+1))}return n}function fd(e,t,n,r,i){let a=new Map;for(let d of e){if(a.has(d.id))continue;let h=n.get(d.id);h===void 0||!Number.isFinite(h.x)||!Number.isFinite(h.y)||a.set(d.id,d)}let o=new Set(a.keys()),s=Tw(t,o),l=[];for(let[d,h]of a){let f=n.get(d),g=os(s.get(d)??0);l.push({id:d,x:f.x,y:f.y,size:g,label:bw(h),color:i?.get(d)??pw(h.kind,r),kind:h.kind,provenance:h.provenance,zIndex:Math.round(g),type:"circle"})}let c=[],u=new Set;for(let d of t){if(d.source===d.target||!o.has(d.source)||!o.has(d.target))continue;let h=pd(d);u.has(h)||(u.add(h),c.push({key:h,source:d.source,target:d.target,size:vw[d.kind],color:fw(d.kind,r),kind:d.kind,zIndex:0,type:"line"}))}return{nodes:l,edges:c}}function gd(e,t,n=1,r="neighbourhood"){return(i,a,o)=>e===null||n<=0?{}:r==="spotlight"?Lw(e,t??null,n,i,a,o):i===t&&e.has(i)?{zIndex:a.zIndex+Br*2,size:a.size*Bt(Dw,n)}:e.has(i)?{zIndex:a.zIndex+Br,size:a.size*Bt(Iw,n)}:{color:Ur(a.color,o,us*n),label:n>=wd?null:a.label,zIndex:0}}var md=.92,Sw=1.4,Ew=1.7,Rw=.75,Aw=40,Cw="warning";function Lw(e,t,n,r,i,a){let o=n>=wd;return r===t?{zIndex:i.zIndex+Br*2,size:i.size*Bt(Ew,n),forceLabel:o}:e.has(r)?{zIndex:i.zIndex+Br,size:i.size*Bt(Sw,n),forceLabel:o&&e.size<=Aw}:{color:Ur(i.color,a,md*n),label:o?null:i.label,size:i.size*Bt(Rw,n),zIndex:0}}var Nw=60,Pw=.004;function vd(e,t,n){let r=Number.isFinite(n)&&n>0?n:0,i=t+(e-t)*Math.exp(-r/Nw);return Math.abs(t-i)<Pw?t:i}function Bt(e,t){return 1+(e-1)*t}var wd=.5,Dw=1.45,Iw=1.15,Br=Hr+1;function yd(e,t,n=1,r="neighbourhood"){return(i,a,o)=>e===null||n<=0?{}:r==="spotlight"?!e.has(a.source)||!e.has(a.target)?{color:Ur(a.color,o,md*n)}:{zIndex:2,size:a.size*Bt(cs*1.35,n),color:Ln(a.color,Ft(o)[Cw],n)}:!e.has(a.source)||!e.has(a.target)?{color:Ur(a.color,o,us*n)}:t!=null&&(a.source===t||a.target===t)?{zIndex:2,size:a.size*Bt(cs*1.35,n),color:Ln(a.color,Ft(o).accent,n)}:{zIndex:1,size:a.size*Bt(cs,n)}}var Mw={searched:{slot:"warning",blend:.35,growth:1.08},read:{slot:"success",blend:.85,growth:1.3},wrote:{slot:"accent",blend:1,growth:1.5}};function bd(e,t,n,r){if(e===void 0||!(e.strength>0))return{};let i=Mw[e.kind],a=Math.min(1,e.strength);return{color:Ln(t.color,Ft(n)[i.slot],i.blend*a),size:t.size*Bt(i.growth,a),zIndex:t.zIndex+Br*3,label:r}}var xd=(ia+Hr)/2,Gw=30;function ds(e){return e<Gw?0:xd}var Ow=Wr*4,Fw=1;function kd(e){let t=Ft(e);return{hideEdgesOnMove:!0,enableCameraPanning:!0,renderEdgeLabels:!1,labelDensity:Fw,labelGridCellSize:Ow,labelRenderedSizeThreshold:xd,labelFont:"inherit",labelSize:11,labelColor:{color:t.text},defaultNodeColor:t.dim,defaultEdgeColor:t.line,defaultNodeType:"circle",defaultEdgeType:"line",minEdgeThickness:.6,zIndex:!0,itemSizesReference:"positions",zoomToSizeRatioFunction:n=>n,stagePadding:Wr,defaultDrawNodeHover:_w(e),allowInvalidContainer:!0}}function _d(e){return e==="contains"||e==="anchored-at"}function $w(e,t){let n=new Set(e.map(i=>i.id)),r=new Map;for(let i of t)_d(i.kind)&&i.source!==i.target&&(!n.has(i.source)||!n.has(i.target)||r.has(i.target)||r.set(i.target,i.source));return r}function zw(e,t){let n=$w(e,t),r=new Map;for(let i of e){let a=i.id,o=i.id,s=0,l=new Set([a]);for(;;){let c=n.get(a);if(c===void 0||l.has(c))break;l.add(c),o=a,a=c,s++}r.set(i.id,{key:o,depth:Math.max(0,s-1)})}return r}function Hw(e){let t=new Map;for(let n of e.values())t.set(n,(t.get(n)??0)+1);return t}var Ww={dark:["#f5bde6","#c6a0f6","#ed8796","#f5a97f","#eed49f","#a6da95","#8bd5ca","#7dc4e4","#8aadf4","#b7bdf8"],light:["#824171","#7832d4","#d20f39","#9f3e07","#7b4e10","#28641b","#106368","#14616e","#1853c8","#445198"]},Uw=3;function Bw(e,t){let n=Ww[ve[$i(t)].scheme],i=[...Hw(e).entries()].sort((o,s)=>s[1]-o[1]||(o[0]<s[0]?-1:o[0]>s[0]?1:0)),a=new Map;return i.forEach(([o],s)=>a.set(o,n[s*Uw%n.length])),a}var Kw=.11,Vw=.34;function jw(e,t,n){let r=Number.isFinite(t)&&t>0?t:0;return Ln(e,Ft(n).ground,Math.min(Vw,r*Kw))}var qw=.26,Yw=.55;function Xw(e,t,n){if(t.length===0)return e;let r=e,i=0;for(let a of t){let o=Math.min(qw,Yw-i);if(o<=0)break;i+=o,r=Ln(r,a,o)}return r}function Td(e,t,n){let r=zw(e,t),i=new Map;for(let[u,d]of r)i.set(u,d.key);let a=Bw(i,n),o=new Set(e.map(u=>u.id)),s=new Map,l=(u,d)=>{let h=r.get(u)?.key,f=r.get(d)?.key;if(h===void 0||f===void 0||h===f)return;let g=s.get(u);g===void 0?s.set(u,new Set([f])):g.add(f)};for(let u of t)_d(u.kind)||u.source!==u.target&&(!o.has(u.source)||!o.has(u.target)||(l(u.source,u.target),l(u.target,u.source)));let c=new Map;for(let u of e){let d=r.get(u.id);if(d===void 0)continue;let h=a.get(d.key);if(h===void 0)continue;let f=jw(h,d.depth,n),g=[...s.get(u.id)??[]].sort().map(y=>a.get(y)).filter(y=>y!==void 0);c.set(u.id,Xw(f,g,n))}return c}function hs(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t^=t>>>16,t=Math.imul(t,2246822507),t^=t>>>13,t=Math.imul(t,3266489909),t^=t>>>16,t>>>0}var Zw=300,Qw=1;function Jw(e,t,n){let r=new Map(n??[]);if(r.size>0)for(let a of t){if(a.kind!=="contains"&&a.kind!=="anchored-at"||r.has(a.target))continue;let o=r.get(a.source);o!==void 0&&r.set(a.target,{x:o.x,y:o.y})}let i={ticks:Zw,seed:Qw,pinWarm:!0};return r.size>0&&(i.initial=r),ld({generatedAt:"",staleness:null,nodes:[...e],edges:[...t],contentDigest:""},i)}function ey(e,t){let n=0,r=0;for(let a of e){let o=hs(a.id);n^=o,r=r+o>>>0}for(let a of t){let o=hs(`${a.source}\0${a.target}\0${a.kind}`);n^=o,r=r+o>>>0}return[...[e.length,t.length,n>>>0,r].map(a=>a.toString(16)),hs(JSON.stringify(rt)).toString(16)].join("-")}var Ed="pi-weave.graph.positions.v4";function Sd(e){return Math.round(e*10)/10}function ty(e,t){let n={};for(let[r,i]of t)n[r]=[Sd(i.x),Sd(i.y)];return JSON.stringify({v:4,key:e,at:n})}function ny(e,t){if(e===null)return null;let n;try{n=JSON.parse(e)}catch{return null}if(typeof n!="object"||n===null||Array.isArray(n))return null;let r=n;if(r.v!==4||r.key!==t)return null;let i=r.at;if(typeof i!="object"||i===null||Array.isArray(i))return null;let a=new Map;for(let[o,s]of Object.entries(i)){if(!Array.isArray(s)||s.length!==2)return null;let[l,c]=s;if(typeof l!="number"||typeof c!="number"||!Number.isFinite(l)||!Number.isFinite(c))return null;a.set(o,{x:l,y:c})}return a.size===0?null:a}function ry(e,t){let n;try{n=e.getItem(Ed)}catch{return null}return ny(n,t)}function iy(e,t,n){try{return e.setItem(Ed,ty(t,n)),!0}catch{return!1}}function Rd(e,t,n){let r=ey(t,n),i=ry(e,r);if(i!==null&&t.every(o=>i.has(o.id)))return{key:r,positions:i,cached:!0};let a=Jw(t,n);return iy(e,r,a),{key:r,positions:a,cached:!1}}function aa(e,t){if(e===null||t===null)return null;let n=e.model.nodes.find(i=>i.id===t);if(n===void 0)return null;let r=t.startsWith("artifact:")?"HTML artifact":t.startsWith("vfolder:")?"Folder":n.kind;return{id:t,title:n.label,kind:r,icon:Rn(n.kind)}}function ay(e){return{expanded:new Set(Yi(e,new Set).clusters.keys())}}function Cd(e,t){return t!==null?t:e===null?{expanded:new Set}:ay(Sn(e))}function oy(e,t){let n=new Set(e.expanded);return n.delete(t)||n.add(t),{...e,expanded:n}}function sy(e,t){return t===null?null:qi(t,e)}function ly(e,t,n){return t===null?n:qi(t,e)}function Ld(e,t,n){return n===null?{highlight:e,selectedId:t,style:"neighbourhood"}:{highlight:n,selectedId:t,style:"spotlight"}}function Nd(e,t,n){return n.style==="spotlight"?t===null?n:{...n,selectedId:t}:{highlight:ly(e,t,n.highlight),selectedId:t??n.selectedId,style:"neighbourhood"}}var Pd="fit",Dd="frame the whole graph",oa={selected:"selected",neighborhood:"neighborhood",dimmed:"not related"};function Id(e,t){let n=t===1?"node":"nodes";return e===t?`${t} ${n}`:`${e} of ${t} ${n}`}function cy(e,t){return e===null?"Loading…":e.model.nodes.length===0?"Nothing here yet — add a note to get started.":t===0?"Nothing to draw at this expansion.":null}var uy="The workspace did not load — ⟳ retries now, and the next change to the vault retries on its own.",Ad={graph:hd,highlight:null,key:"",cached:!1,clusters:new Map,representative:new Map,visible:0,total:0,empty:"Loading…"};function Md(e,t,n,r,i,a=!1,o=!0){if(e===null)return a?{...Ad,empty:uy}:Ad;let s=Sn(e),l=Yi(s,n.expanded),u=n.expanded.has("vault")?l.edges.filter(g=>g.source!=="vault"&&g.target!=="vault"):l.edges,d=Rd(r,l.nodes,u),h=o?Td(l.nodes,u,i):void 0;return{graph:fd(l.nodes,u,d.positions,i,h),highlight:sy(u,t),key:d.key,cached:d.cached,clusters:l.clusters,representative:l.representative,visible:l.nodes.length,total:s.nodes.length,empty:cy(e,l.nodes.length)}}function Gd(e,t,n){return n===null?{state:e,selectedId:null}:t.get(n)===void 0||e.expanded.has(n)?{state:e,selectedId:n}:{state:oy(e,n),selectedId:n}}function ms(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Dn=ms();function Bd(e){Dn=e}var Nn={exec:()=>null};function ar(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function ee(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,a)=>{let o=typeof a=="string"?a:a.source;return o=o.replace(je.caret,"$1"),n=n.replace(i,o),r},getRegex:()=>new RegExp(n,t)};return r}var dy=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),je={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:ar(e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:ar(e=>new RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:ar(e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:ar(e=>new RegExp(`^ {0,${e}}#`)),htmlBeginRegex:ar(e=>new RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:ar(e=>new RegExp(`^ {0,${e}}>`))},hy=/^(?:[ \t]*(?:\n|$))+/,py=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,fy=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,jr=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,gy=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,vs=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Kd=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Vd=ee(Kd).replace(/bull/g,vs).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),my=ee(Kd).replace(/bull/g,vs).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ws=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,vy=/^[^\n]+/,ys=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,wy=ee(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ys).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),yy=ee(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,vs).getRegex(),da="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",bs=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,by=ee("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",bs).replace("tag",da).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),jd=e=>ee(ws).replace("hr",jr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",da).getRegex(),xy=jd(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),ky=jd(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),_y=ee(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ky).getRegex(),xs={blockquote:_y,code:py,def:wy,fences:fy,heading:gy,hr:jr,html:by,lheading:Vd,list:yy,newline:hy,paragraph:xy,table:Nn,text:vy},Od=ee("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",jr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",da).getRegex(),Ty={...xs,lheading:my,table:Od,paragraph:ee(ws).replace("hr",jr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Od).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",da).getRegex()},Sy={...xs,html:ee(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",bs).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Nn,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:ee(ws).replace("hr",jr).replace("heading",` *#{1,6} *[^
29
+ ]`).replace("lheading",Vd).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Ey=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Ry=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,qd=/^( {2,}|\\)\n(?!\s*$)/,Ay=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Kt=/[\p{P}\p{S}]/u,or=/[\s\p{P}\p{S}]/u,qr=/[^\s\p{P}\p{S}]/u,Cy=ee(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,or).getRegex(),Ly=/[\p{Pi}\p{Ps}"']/u,Yd=/(?!~)[\p{P}\p{S}]/u,Ny=/(?!~)[\s\p{P}\p{S}]/u,Py=/(?:[^\s\p{P}\p{S}]|~)/u,Dy=ee(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",dy?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Xd=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Iy=ee(Xd,"u").replace(/punct/g,Kt).getRegex(),My=ee(Xd,"u").replace(/punct/g,Yd).getRegex(),Gy=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,Oy=ee(Gy,"u").replace(/openQuote/g,Ly).replace(/punct/g,Kt).getRegex(),Zd="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Fy=ee(Zd,"gu").replace(/notPunctSpace/g,qr).replace(/punctSpace/g,or).replace(/punct/g,Kt).getRegex(),$y=ee(Zd,"gu").replace(/notPunctSpace/g,Py).replace(/punctSpace/g,Ny).replace(/punct/g,Yd).getRegex(),zy="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",Hy=ee(zy,"gu").replace(/notPunctSpace/g,qr).replace(/punctSpace/g,or).replace(/punct/g,Kt).getRegex(),Wy=ee("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,qr).replace(/punctSpace/g,or).replace(/punct/g,Kt).getRegex(),Uy="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",By=ee(Uy,"gu").replace(/notPunctSpace/g,qr).replace(/punctSpace/g,or).replace(/punct/g,Kt).getRegex(),Ky=ee(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,Kt).getRegex(),Vy="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",jy=ee(Vy,"gu").replace(/notPunctSpace/g,qr).replace(/punctSpace/g,or).replace(/punct/g,Kt).getRegex(),qy=ee(/\\(punct)/,"gu").replace(/punct/g,Kt).getRegex(),Yy=ee(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Xy=ee(bs).replace("(?:-->|$)","-->").getRegex(),Zy=ee("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Xy).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),la=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Qy=ee(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",la).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Qd=ee(/^!?\[(label)\]\[(ref)\]/).replace("label",la).replace("ref",ys).getRegex(),Jd=ee(/^!?\[(ref)\](?:\[\])?/).replace("ref",ys).getRegex(),Jy=ee("reflink|nolink(?!\\()","g").replace("reflink",Qd).replace("nolink",Jd).getRegex(),Fd=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,ks={_backpedal:Nn,anyPunctuation:qy,autolink:Yy,blockSkip:Dy,br:qd,code:Ry,del:Nn,delLDelim:Nn,delRDelim:Nn,emStrongLDelim:Iy,emStrongRDelimAst:Fy,emStrongRDelimUnd:Wy,escape:Ey,link:Qy,nolink:Jd,punctuation:Cy,reflink:Qd,reflinkSearch:Jy,tag:Zy,text:Ay,url:Nn},eb={...ks,emStrongLDelim:Oy,emStrongRDelimAst:Hy,emStrongRDelimUnd:By,link:ee(/^!?\[(label)\]\((.*?)\)/).replace("label",la).getRegex(),reflink:ee(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",la).getRegex()},ps={...ks,emStrongRDelimAst:$y,emStrongLDelim:My,delLDelim:Ky,delRDelim:jy,url:ee(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Fd).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:ee(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Fd).getRegex()},tb={...ps,br:ee(qd).replace("{2,}","*").getRegex(),text:ee(ps.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},sa={normal:xs,gfm:Ty,pedantic:Sy},Kr={normal:ks,gfm:ps,breaks:tb,pedantic:eb},nb={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},$d=e=>nb[e];function $t(e,t){if(t){if(je.escapeTest.test(e))return e.replace(je.escapeReplace,$d)}else if(je.escapeTestNoEncode.test(e))return e.replace(je.escapeReplaceNoEncode,$d);return e}function zd(e){try{e=encodeURI(e).replace(je.percentDecode,"%")}catch{return null}return e}function Hd(e,t){let n=e.replace(je.findPipe,(a,o,s)=>{let l=!1,c=o;for(;--c>=0&&s[c]==="\\";)l=!l;return l?"|":" |"}),r=n.split(je.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(je.slashPipe,"|");return r}function cn(e,t,n){let r=e.length;if(r===0)return"";let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function Wd(e){let t=e.split(`
30
+ `),n=t.length-1;for(;n>=0&&je.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
31
+ `)}function rb(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function ib(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let a=4-n%4;r+=" ".repeat(a),n+=a}else r+=i,n++;return r}function Ud(e,t,n,r,i){let a=t.href,o=t.title||null,s=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:a,title:o,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,l}function ab(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
32
+ `).map(a=>{let o=a.match(n.other.beginningSpace);if(o===null)return a;let[s]=o;return s.length>=i.length?a.slice(i.length):a}).join(`
33
+ `)}var ca=class{options;rules;lexer;constructor(e){this.options=e||Dn}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Wd(t[0]),r=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=ab(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=cn(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:cn(t[0],`
34
+ `),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:cn(t[0],`
35
+ `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=cn(t[0],`
36
+ `).split(`
37
+ `),r="",i="",a=[];for(;n.length>0;){let o=!1,s=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))s.push(n[l]),o=!0;else if(!o)s.push(n[l]);else break;n=n.slice(l);let c=s.join(`
38
+ `),u=c.replace(this.rules.other.blockquoteSetextReplace,`
39
+ $1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
40
+ ${c}`:c,i=i?`${i}
41
+ ${u}`:u;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,a,!0),this.lexer.state.top=d,n.length===0)break;let h=a.at(-1);if(h?.type==="code")break;if(h?.type==="blockquote"){let f=h,g=n.join(`
42
+ `),y=f.raw+`
43
+ `+g.replace(this.rules.other.blockquoteSetextReplace2,""),v=this.blockquote(y);a[a.length-1]=v,r=`${r}
44
+ ${g}`,i=i.substring(0,i.length-f.text.length)+v.text;break}else if(h?.type==="list"){let f=h,g=f.raw+`
45
+ `+n.join(`
46
+ `),y=this.list(g);a[a.length-1]=y,r=r.substring(0,r.length-h.raw.length)+y.raw,i=i.substring(0,i.length-f.raw.length)+y.raw,n=g.substring(a.at(-1).raw.length).split(`
47
+ `);continue}}return{type:"blockquote",raw:r,tokens:a,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let a=this.rules.other.listItemRegex(n),o=!1;for(;e;){let l=!1,c="",u="";if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let d=ib(t[2].split(`
48
+ `,1)[0],t[1].length),h=e.split(`
49
+ `,1)[0],f=!d.trim(),g=0;if(this.options.pedantic?(g=2,u=d.trimStart()):f?g=t[1].length+1:(g=d.search(this.rules.other.nonSpaceChar),g=g>4?1:g,u=d.slice(g),g+=t[1].length),f&&this.rules.other.blankLine.test(h)&&(c+=h+`
50
+ `,e=e.substring(h.length+1),l=!0),!l){let y=this.rules.other.nextBulletRegex(g),v=this.rules.other.hrRegex(g),w=this.rules.other.fencesBeginRegex(g),b=this.rules.other.headingBeginRegex(g),k=this.rules.other.htmlBeginRegex(g),x=this.rules.other.blockquoteBeginRegex(g);for(;e;){let S=e.split(`
51
+ `,1)[0],O;if(h=S,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting," "),O=h):O=h.replace(this.rules.other.tabCharGlobal," "),w.test(h)||b.test(h)||k.test(h)||x.test(h)||y.test(h)||v.test(h))break;if(O.search(this.rules.other.nonSpaceChar)>=g||!h.trim())u+=`
52
+ `+O.slice(g);else{if(f||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||w.test(d)||b.test(d)||v.test(d))break;u+=`
53
+ `+h}f=!h.trim(),c+=S+`
54
+ `,e=e.substring(S.length+1),d=O.slice(g)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(o=!0)),i.items.push({type:"list_item",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(u),loose:!1,text:u,tokens:[]}),i.raw+=c}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items)if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),!i.loose){let c=l.tokens.filter(d=>d.type==="space"),u=c.length>0&&c.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=u}for(let l of i.items){let c=l.tokens[0];if(l.task&&(c?.type==="text"||c?.type==="paragraph")){l.text=l.text.replace(this.rules.other.listReplaceTask,""),c.raw=c.raw.replace(this.rules.other.listReplaceTask,""),c.text=c.text.replace(this.rules.other.listReplaceTask,"");for(let d=this.lexer.inlineQueue.length-1;d>=0;d--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[d].src)){this.lexer.inlineQueue[d].src=this.lexer.inlineQueue[d].src.replace(this.rules.other.listReplaceTask,"");break}let u=this.rules.other.listTaskCheckbox.exec(l.raw);if(u){let d={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};l.checked=d.checked,i.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=d.raw+l.tokens[0].raw,l.tokens[0].text=d.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(d)):l.tokens.unshift({type:"paragraph",raw:d.raw,text:d.raw,tokens:[d]}):l.tokens.unshift(d)}}else l.task&&(l.task=!1)}if(i.loose)for(let l of i.items){l.loose=!0;for(let c of l.tokens)c.type==="text"&&(c.type="paragraph")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Wd(t[0]);return{type:"html",block:!0,raw:n,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:cn(t[0],`
55
+ `),href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=Hd(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
56
+ `):[],a={type:"table",raw:cn(t[0],`
57
+ `),header:[],align:[],rows:[]};if(n.length===r.length){for(let o of r)this.rules.other.tableAlignRight.test(o)?a.align.push("right"):this.rules.other.tableAlignCenter.test(o)?a.align.push("center"):this.rules.other.tableAlignLeft.test(o)?a.align.push("left"):a.align.push(null);for(let o=0;o<n.length;o++)a.header.push({text:n[o],tokens:this.lexer.inline(n[o]),header:!0,align:a.align[o]});for(let o of i)a.rows.push(Hd(o,a.header.length).map((s,l)=>({text:s,tokens:this.lexer.inline(s),header:!1,align:a.align[l]})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:cn(t[0],`
58
+ `),depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`
59
+ `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let a=cn(n.slice(0,-1),"\\");if((n.length-a.length)%2===0)return}else{let a=rb(t[2],"()");if(a===-2)return;if(a>-1){let o=(t[0].indexOf("!")===0?5:4)+t[1].length+a;t[2]=t[2].substring(0,a),t[0]=t[0].substring(0,o).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let a=this.rules.other.pedanticHrefTitle.exec(r);a&&(r=a[1],i=a[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),Ud(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let a=n[0].charAt(0);return{type:"text",raw:a,text:a}}return Ud(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,l=0,c=r[0][0],u=n===c,d=c==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(d.lastIndex=0,t=t.slice(-1*e.length+i);(r=d.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){s+=o;continue}else if(r[5]||r[6]){if(i%3&&!((i+o)%3)){l+=o;continue}if(u)break}if(s-=o,s>0)continue;o=Math.min(o,o+s+l);let h=[...r[0]][0].length,f=e.slice(0,i+r.index+h+o);if(Math.min(i,o)%2){let y=f.slice(1,-1);return{type:"em",raw:f,text:y,tokens:this.lexer.inlineTokens(y)}}let g=f.slice(2,-2);return{type:"strong",raw:f,text:g,tokens:this.lexer.inlineTokens(g)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,a,o,s=i,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+i);(r=l.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a||(o=[...a].length,o!==i))continue;if(r[3]||r[4]){s+=o;continue}if(s-=o,s>0)continue;o=Math.min(o,o+s);let c=[...r[0]][0].length,u=e.slice(0,i+r.index+c+o),d=u.slice(i,-i);return{type:"del",raw:u,text:d,tokens:this.lexer.inlineTokens(d)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},at=class fs{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||Dn,this.options.tokenizer=this.options.tokenizer||new ca,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:je,block:sa.normal,inline:Kr.normal};this.options.pedantic?(n.block=sa.pedantic,n.inline=Kr.pedantic):this.options.gfm&&(n.block=sa.gfm,this.options.breaks?n.inline=Kr.breaks:n.inline=Kr.gfm),this.tokenizer.rules=n}static get rules(){return{block:sa,inline:Kr}}static lex(t,n){return new fs(n).lex(t)}static lexInline(t,n){return new fs(n).inlineTokens(t)}lex(t){t=t.replace(je.carriageReturn,`
60
+ `),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(je.tabCharGlobal," ").replace(je.spaceLine,""));let i=1/0;for(;t;){if(t.length<i)i=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let a;if(this.options.extensions?.block?.some(s=>(a=s.call({lexer:this},t,n))?(t=t.substring(a.raw.length),n.push(a),!0):!1))continue;if(a=this.tokenizer.space(t)){t=t.substring(a.raw.length);let s=n.at(-1);a.raw.length===1&&s!==void 0?s.raw+=`
61
+ `:n.push(a);continue}if(a=this.tokenizer.code(t)){t=t.substring(a.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
62
+ `)?"":`
63
+ `)+a.raw,s.text+=`
64
+ `+a.text,this.inlineQueue.at(-1).src=s.text):n.push(a);continue}if(a=this.tokenizer.fences(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.heading(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.hr(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.blockquote(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.list(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.html(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.def(t)){t=t.substring(a.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
65
+ `)?"":`
66
+ `)+a.raw,s.text+=`
67
+ `+a.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[a.tag]||(this.tokens.links[a.tag]={href:a.href,title:a.title},n.push(a));continue}if(a=this.tokenizer.table(t)){t=t.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.lheading(t)){t=t.substring(a.raw.length),n.push(a);continue}let o=t;if(this.options.extensions?.startBlock){let s=1/0,l=t.slice(1),c;this.options.extensions.startBlock.forEach(u=>{c=u.call({lexer:this},l),typeof c=="number"&&c>=0&&(s=Math.min(s,c))}),s<1/0&&s>=0&&(o=t.substring(0,s+1))}if(this.state.top&&(a=this.tokenizer.paragraph(o))){let s=n.at(-1);r&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(`
68
+ `)?"":`
69
+ `)+a.raw,s.text+=`
70
+ `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(a),r=o.length!==t.length,t=t.substring(a.raw.length);continue}if(a=this.tokenizer.text(t)){t=t.substring(a.raw.length);let s=n.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(`
71
+ `)?"":`
72
+ `)+a.raw,s.text+=`
73
+ `+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(a);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t;if(this.tokens.links){let s=Object.keys(this.tokens.links);s.length>0&&(r=r.replace(this.tokenizer.rules.inline.reflinkSearch,l=>s.includes(l.slice(l.lastIndexOf("[")+1,-1))?"["+"a".repeat(l.length-2)+"]":l))}r=r.replace(this.tokenizer.rules.inline.anyPunctuation,s=>"+".repeat(s.length)),r=r.replace(this.tokenizer.rules.inline.blockSkip,(s,l,c)=>{let u=c?c.length:0;return s.slice(0,u)+"["+"a".repeat(s.length-u-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let i=!1,a="",o=1/0;for(;t;){if(t.length<o)o=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}i||(a=""),i=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},t,n))?(t=t.substring(s.raw.length),n.push(s),!0):!1))continue;if(s=this.tokenizer.escape(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.tag(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.link(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(s.raw.length);let c=n.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):n.push(s);continue}if(s=this.tokenizer.emStrong(t,r,a)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.codespan(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.br(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.del(t,r,a)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.autolink(t)){t=t.substring(s.raw.length),n.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(t))){t=t.substring(s.raw.length),n.push(s);continue}let l=t;if(this.options.extensions?.startInline){let c=1/0,u=t.slice(1),d;this.options.extensions.startInline.forEach(h=>{d=h.call({lexer:this},u),typeof d=="number"&&d>=0&&(c=Math.min(c,d))}),c<1/0&&c>=0&&(l=t.substring(0,c+1))}if(s=this.tokenizer.inlineText(l)){t=t.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(a=s.raw.slice(-1)),i=!0;let c=n.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):n.push(s);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return n}infiniteLoopError(t){let n="Infinite loop on byte: "+t;if(this.options.silent)console.error(n);else throw new Error(n)}},ua=class{options;parser;constructor(e){this.options=e||Dn}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(je.notSpaceStart)?.[0],i=e.replace(je.endingNewline,"")+`
74
+ `;return r?'<pre><code class="language-'+$t(r)+'">'+(n?i:$t(i,!0))+`</code></pre>
75
+ `:"<pre><code>"+(n?i:$t(i,!0))+`</code></pre>
76
+ `}blockquote({tokens:e}){return`<blockquote>
77
+ ${this.parser.parse(e)}</blockquote>
78
+ `}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
79
+ `}hr(e){return`<hr>
80
+ `}list(e){let t=e.ordered,n=e.start,r="";for(let o=0;o<e.items.length;o++){let s=e.items[o];r+=this.listitem(s)}let i=t?"ol":"ul",a=t&&n!==1?' start="'+n+'"':"";return"<"+i+a+`>
81
+ `+r+"</"+i+`>
82
+ `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
83
+ `}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
84
+ `}table(e){let t="",n="";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r="";for(let i=0;i<e.rows.length;i++){let a=e.rows[i];n="";for(let o=0;o<a.length;o++)n+=this.tablecell(a[o]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
85
+ <thead>
86
+ `+t+`</thead>
87
+ `+r+`</table>
88
+ `}tablerow({text:e}){return`<tr>
89
+ ${e}</tr>
90
+ `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
91
+ `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${$t(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=zd(e);if(i===null)return r;e=i;let a='<a href="'+e+'"';return t&&(a+=' title="'+$t(t)+'"'),a+=">"+r+"</a>",a}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=zd(e);if(i===null)return $t(n);e=i;let a=`<img src="${e}" alt="${$t(n)}"`;return t&&(a+=` title="${$t(t)}"`),a+=">",a}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:$t(e.text)}},_s=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},Nt=class gs{options;renderer;textRenderer;constructor(t){this.options=t||Dn,this.options.renderer=this.options.renderer||new ua,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _s}static parse(t,n){return new gs(n).parse(t)}static parseInline(t,n){return new gs(n).parseInline(t)}parse(t){this.renderer.parser=this;let n="";for(let r=0;r<t.length;r++){let i=t[r];if(this.options.extensions?.renderers?.[i.type]){let o=i,s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(o.type)){n+=s||"";continue}}let a=i;switch(a.type){case"space":{n+=this.renderer.space(a);break}case"hr":{n+=this.renderer.hr(a);break}case"heading":{n+=this.renderer.heading(a);break}case"code":{n+=this.renderer.code(a);break}case"table":{n+=this.renderer.table(a);break}case"blockquote":{n+=this.renderer.blockquote(a);break}case"list":{n+=this.renderer.list(a);break}case"checkbox":{n+=this.renderer.checkbox(a);break}case"html":{n+=this.renderer.html(a);break}case"def":{n+=this.renderer.def(a);break}case"paragraph":{n+=this.renderer.paragraph(a);break}case"text":{n+=this.renderer.text(a);break}default:{let o='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(o),"";throw new Error(o)}}}return n}parseInline(t,n=this.renderer){this.renderer.parser=this;let r="";for(let i=0;i<t.length;i++){let a=t[i];if(this.options.extensions?.renderers?.[a.type]){let s=this.options.extensions.renderers[a.type].call({parser:this},a);if(s!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(a.type)){r+=s||"";continue}}let o=a;switch(o.type){case"escape":{r+=n.text(o);break}case"html":{r+=n.html(o);break}case"link":{r+=n.link(o);break}case"image":{r+=n.image(o);break}case"checkbox":{r+=n.checkbox(o);break}case"strong":{r+=n.strong(o);break}case"em":{r+=n.em(o);break}case"codespan":{r+=n.codespan(o);break}case"br":{r+=n.br(o);break}case"del":{r+=n.del(o);break}case"text":{r+=n.text(o);break}default:{let s='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return r}},Vr=class{options;block;constructor(e){this.options=e||Dn}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?at.lex:at.lexInline}provideParser(e=this.block){return e?Nt.parse:Nt.parseInline}},ha=class{defaults=ms();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Nt;Renderer=ua;TextRenderer=_s;Lexer=at;Tokenizer=ca;Hooks=Vr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let i=r;for(let a of i.header)n=n.concat(this.walkTokens(a.tokens,t));for(let a of i.rows)for(let o of a)n=n.concat(this.walkTokens(o.tokens,t));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(a=>{let o=i[a].flat(1/0);n=n.concat(this.walkTokens(o,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let a=t.renderers[i.name];a?t.renderers[i.name]=function(...o){let s=i.renderer.apply(this,o);return s===!1&&(s=a.apply(this,o)),s}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let a=t[i.level];a?a.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new ua(this.defaults);for(let a in n.renderer){if(!(a in i))throw new Error(`renderer '${a}' does not exist`);if(["options","parser"].includes(a))continue;let o=a,s=n.renderer[o],l=i[o];i[o]=(...c)=>{let u=s.apply(i,c);return u===!1&&(u=l.apply(i,c)),u||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new ca(this.defaults);for(let a in n.tokenizer){if(!(a in i))throw new Error(`tokenizer '${a}' does not exist`);if(["options","rules","lexer"].includes(a))continue;let o=a,s=n.tokenizer[o],l=i[o];i[o]=(...c)=>{let u=s.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new Vr;for(let a in n.hooks){if(!(a in i))throw new Error(`hook '${a}' does not exist`);if(["options","block"].includes(a))continue;let o=a,s=n.hooks[o],l=i[o];Vr.passThroughHooks.has(a)?i[o]=c=>{if(this.defaults.async&&Vr.passThroughHooksRespectAsync.has(a))return(async()=>{let d=await s.call(i,c);return l.call(i,d)})();let u=s.call(i,c);return l.call(i,u)}:i[o]=(...c)=>{if(this.defaults.async)return(async()=>{let d=await s.apply(i,c);return d===!1&&(d=await l.apply(i,c)),d})();let u=s.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,a=n.walkTokens;r.walkTokens=function(o){let s=[];return s.push(a.call(this,o)),i&&(s=s.concat(i.call(this,o))),s}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return at.lex(e,t??this.defaults)}parser(e,t){return Nt.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},a=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return a(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return a(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return a(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let o=i.hooks?await i.hooks.preprocess(t):t,s=await(i.hooks?await i.hooks.provideLexer(e):e?at.lex:at.lexInline)(o,i),l=i.hooks?await i.hooks.processAllTokens(s):s;i.walkTokens&&await Promise.all(this.walkTokens(l,i.walkTokens));let c=await(i.hooks?await i.hooks.provideParser(e):e?Nt.parse:Nt.parseInline)(l,i);return i.hooks?await i.hooks.postprocess(c):c})().catch(a);try{i.hooks&&(t=i.hooks.preprocess(t));let o=(i.hooks?i.hooks.provideLexer(e):e?at.lex:at.lexInline)(t,i);i.hooks&&(o=i.hooks.processAllTokens(o)),i.walkTokens&&this.walkTokens(o,i.walkTokens);let s=(i.hooks?i.hooks.provideParser(e):e?Nt.parse:Nt.parseInline)(o,i);return i.hooks&&(s=i.hooks.postprocess(s)),s}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`
92
+ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+$t(n.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},Pn=new ha;function fe(e,t){return Pn.parse(e,t)}fe.options=fe.setOptions=function(e){return Pn.setOptions(e),fe.defaults=Pn.defaults,Bd(fe.defaults),fe};fe.getDefaults=ms;fe.defaults=Dn;function ob(...e){return Pn.use(...e),fe.defaults=Pn.defaults,Bd(fe.defaults),fe}fe.use=ob;fe.walkTokens=function(e,t){return Pn.walkTokens(e,t)};fe.parseInline=Pn.parseInline;fe.Parser=Nt;fe.parser=Nt.parse;fe.Renderer=ua;fe.TextRenderer=_s;fe.Lexer=at;fe.lexer=at.lex;fe.Tokenizer=ca;fe.Hooks=Vr;fe.parse=fe;var QE=fe.options,JE=fe.setOptions,e1=fe.walkTokens,t1=fe.parseInline;var n1=Nt.parse,r1=at.lex;var th={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},sb=new RegExp(`[${Object.keys(th).join("")}]`,"g");function gt(e){return e.replace(sb,t=>th[t])}var lb=["http:","https:","mailto:"],nh=/^[a-z][a-z0-9+.-]*:/i,rh=/[\u0000-\u0020\u00a0\u1680\u180e\u2000-\u2029\u205f\u3000]/g;function eh(e){let t=e.replace(rh,""),n=nh.exec(t);return n===null?t===""?null:e:lb.includes(n[0].toLowerCase())?e:null}var Vt="data-weave-target",In="data-weave-task";function ma(e){return e?"Mark task incomplete":"Mark task complete"}var fa="note:",cb={bySpelling:new Map,hasGhosts:!1,currentSlug:null};function ub(e){if(e.kind!=="note"||!e.id.startsWith(fa))return null;let t=e.id.slice(fa.length);return t===""?null:t}function ih(e){if(e.kind!=="file"||!e.id.startsWith("artifact:"))return null;let t=e.detail.path;return t!==void 0&&/\.html?$/i.test(t)?t:null}function ah(e){let t=ih(e);return t===null?null:`${t}:${e.detail.updated??""}`}function oh(e,t){if(e===null||t===null)return null;let n=e.model.nodes.find(r=>r.id===t);return n===void 0?null:ih(n)}function sh(e,t){if(e===null)return cb;let n=new Map;for(let i of e.model.nodes){let a=ub(i);if(a!==null)for(let o of[a,i.label])n.set(o,a),n.set(o.toLowerCase(),a)}let r=t!==null&&(e.dangling[t]?.length??0)>0;return{bySpelling:n,hasGhosts:r,currentSlug:t}}function lh(e,t){let n=t.trim();return e.bySpelling.get(n)??e.bySpelling.get(n.toLowerCase())??null}function db(e,t){if(e.currentSlug===null||nh.test(t.replace(rh,"")))return null;try{let n=new URL(t,`https://weave.invalid/${e.currentSlug}.md`);return n.origin!=="https://weave.invalid"||!n.pathname.toLowerCase().endsWith(".md")?null:lh(e,decodeURIComponent(n.pathname.slice(1,-3)))}catch{return null}}function hb(e){return e.hasGhosts}var pb=/^\[\[([^\][|]+)(?:\|([^\]]*))?\]\]/;function fb(e){let t=e.indexOf("[[");return t===-1?void 0:t}function gb(e){return{name:"wikilink",level:"inline",start:fb,tokenizer(t){return vb(t)},renderer(t){return mb(e,t)}}}function mb(e,t){let n=typeof t.target=="string"?t.target:"",r=typeof t.alias=="string"?t.alias:"";return wb(e,n,r)}function vb(e){let t=pb.exec(e);if(t!==null)return{type:"wikilink",raw:t[0],target:t[1],alias:t[2]??""}}function wb(e,t,n){let r=gt((n===""?t:n).trim());if(r==="")return"";let i=lh(e,t);return i!==null?`<a class="weave-wiki" ${Vt}="${gt(i)}" role="link" tabindex="0" title="${gt(t.trim())}">${r}</a>`:hb(e)?`<span class="weave-wiki weave-wiki-ghost" title="no note named ${gt(t.trim())}">${r}</span>`:r}function yb(e){let t=0;return new ha({gfm:!0,async:!1,extensions:[gb(e)],renderer:{checkbox({checked:n}){return`<input type="checkbox"${n?' checked=""':""} ${In}="${t++}" aria-label="${ma(n)}"> `},html({text:n}){return/^\s*<!--[\s\S]*?-->\s*$/.test(n)?"":gt(n)},link({href:n,title:r,tokens:i}){let a=eh(n),o=this.parser.parseInline(i),s=a===null?null:db(e,a);if(s!==null){let c=r==null||r===""?"":` title="${gt(r)}"`;return`<a class="weave-wiki" ${Vt}="${gt(s)}" role="link" tabindex="0"${c}>${o}</a>`}return`<a${[a===null?"":` href="${gt(a)}"`,r==null||r===""?"":` title="${gt(r)}"`,a===null?"":' rel="noreferrer noopener" target="_blank"'].join("")}>${o}</a>`},image({href:n,title:r,text:i}){let a=eh(n);if(a===null)return gt(i);let o=r==null||r===""?"":` title="${gt(r)}"`;return`<img src="${gt(a)}" alt="${gt(i)}"${o}>`}}})}function bb(e,t){return yb(t).parse(e,{async:!1})}function pa(e){return Object.freeze(e)}var xb=pa({ALLOWED_TAGS:pa(["p","br","hr","h1","h2","h3","h4","h5","h6","em","strong","del","code","pre","blockquote","ul","ol","li","a","span","img","table","thead","tbody","tr","th","td","input"]),ALLOWED_ATTR:pa(["href","src","alt","title","class","role","tabindex","colspan","rowspan","align","type","checked","aria-label","start",Vt,In]),ADD_URI_SAFE_ATTR:pa([Vt,In]),ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1});function Ss(e,t,n){return _b(e.sanitize(bb(t,n),xb))}var kb=/^(\s*<h1>[\s\S]*?<\/h1>)?\s*<p><strong>TL;?DR[ \t]*:?<\/strong>[ \t]*:?[ \t\n]*/i,Ts=/<(\/?)(?:ul|ol)\b[^>]*>/g;function _b(e){let t=kb.exec(e);if(t===null)return e;let n=e.indexOf("</p>",t[0].length);if(n===-1)return e;let r=t[1]??"",i=e.slice(t[0].length,n),a=n+4;if(/^\s*<(?:ul|ol)\b/.exec(e.slice(a))!==null){Ts.lastIndex=a;let l=0;for(let c=Ts.exec(e);c!==null;c=Ts.exec(e))if(l+=c[1]==="/"?-1:1,l===0){a=c.index+c[0].length;break}if(l!==0)return e}let s=e.slice(n+4,a);return`${r}
93
+ <div class="weave-tldr"><p><span class="weave-tldr-label">TLDR</span>${i}</p>${s}
94
+ </div>${e.slice(a)}`}var Tb=/^((?: {0,3}>[ \t]?)*[ \t]*(?:[*+-]|\d{1,9}[.)])[ \t]+\[)([ xX])(\] +\S)/;function Sb(e){let t=[],n=e.replace(/\r\n?/g,`
95
+ `),r=0;for(let l of at.lex(n,{gfm:!0})){let c=n.indexOf(l.raw,r);if(c===-1||(r=c+l.raw.length,l.type!=="list"&&l.type!=="blockquote"))continue;let u=0;for(;u<l.raw.length;){let d=l.raw.indexOf(`
96
+ `,u),h=d===-1?l.raw.length:d,f=l.raw.slice(u,h).replace(/\r$/,""),g=Tb.exec(f);g!==null&&t.push(c+u+g[1].length),u=d===-1?l.raw.length:d+1}}let i=new ha,a=l=>{let c=[];return i.walkTokens(at.lex(l,{gfm:!0}),u=>{u.type==="checkbox"&&c.push(u.checked)}),c},o=a(n),s=o.map(()=>null);for(let l of t){let c=`${n.slice(0,l)}${n[l]===" "?"x":" "}${n.slice(l+1)}`,u=a(c);if(u.length!==o.length)continue;let d=-1;for(let h=0;h<o.length;h+=1)if(u[h]!==o[h]){if(d!==-1){d=-1;break}d=h}d!==-1&&(s[d]=l)}return s.map(l=>{if(l===null)return null;let c=0,u=0;for(;u<l;)c+=e[c]==="\r"&&e[c+1]===`
97
+ `?2:1,u+=1;return c})}function ch(e,t){if(!Number.isSafeInteger(t)||t<0)return null;let n=Sb(e)[t];return n==null?null:`${e.slice(0,n)}${e[n]===" "?"x":" "}${e.slice(n+1)}`}function uh(e){let t=e?.getAttribute(In);return t==null||!/^(?:0|[1-9]\d*)$/.test(t)?null:Number(t)}var dh=32;function Es(e){let t=e;for(let n=0;t!==null&&n<dh;n++){let r=t.getAttribute(Vt);if(r!==null&&r!=="")return`${fa}${r}`;t=t.parentElement}return null}function hh(e){if(!e||e.isCollapsed===!0)return!1;let t=e.toString;return(typeof t=="function"&&t!==Object.prototype.toString?t.call(e):"").length>0}var ph="edited",fh="created",gh="Edit",mh="Done";var vh="Note body",wh="Start writing…",yh="Raw notes",bh="Raw notes text",xh="Raw";function kh(e,t){if(t)return"Your words as captured. Edits here are saved with the note.";let n=e.match(/^<!-- appended\b/gm)?.length??0;if(n>0)return`${n} ${n===1?"entry":"entries"} captured`;let r=e===""?0:e.split(`
98
+ `).length;return`${r} ${r===1?"line":"lines"}`}var va="Discard unsaved changes to this note?";function Eb(e){return e==="human"?"You wrote this":e==="agent"?"Agent wrote this":"Generated by pi-weave"}var Rb="Vault";function Ab(e){return[Rb,...e.split("/").slice(0,-1)].join(" / ")}function _h(e,t){return{title:e.title,slug:e.slug,provenance:e.source,provenanceGlyph:Ut(e.source),provenanceTitle:ln(e.source),updated:Wt(e.updated,t),updatedIso:e.updated,created:Wt(e.created,t),createdIso:e.created,tags:e.tags,byline:Eb(e.source),folder:Ab(e.slug)}}function Th(e){return`#${e}`}var Cb=200,Lb=8,Nb="no note";function Rs(e){let t=e;for(let n=0;t!==null&&n<dh;n++){let r=t.getAttribute(Vt);if(r!==null&&r!=="")return{slug:r,text:(t.textContent??"").trim()};if((t.className??"").split(/\s+/).includes("weave-wiki-ghost"))return{slug:null,text:(t.textContent??"").trim()};t=t.parentElement}return null}function As(e){return e.replace(/```[\s\S]*?(?:```|$)/g," ").replace(/~~~[\s\S]*?(?:~~~|$)/g," ").replace(/`([^`]*)`/g,"$1").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[\[([^\]|]*)(?:\|([^\]]*))?\]\]/g,(t,n,r)=>r??n).replace(/<[^>]*>/g," ").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}([-*_][ \t]?){3,}$/gm," ").replace(/^\s{0,3}[-*+]\s+/gm,"").replace(/^\s{0,3}\d+[.)]\s+/gm,"").replace(/[*_~]{1,3}([^*_~]*)[*_~]{1,3}/g,"$1").replace(/\s+/g," ").trim()}function Yr(e,t=Cb){let n=As(e);if(n.length<=t)return n;let r=n.lastIndexOf(" ",t);return`${r>0?n.slice(0,r):n.slice(0,t)}…`}function Sh(e,t){if(t.slug===null){let i=t.text===""?"this link":t.text;return{ghost:!0,title:i,kind:Nb,text:`no note named “${i}” yet`}}let n=e?.model.nodes.find(i=>i.id===`note:${t.slug}`&&i.kind==="note");if(n===void 0)return null;let r=n.provenance===null?n.kind:`${n.kind} · ${ln(n.provenance)}`;return{ghost:!1,title:n.label,kind:r,text:Yr(n.detail.preview??"")}}function Eh(e,t,n,r,i,a,o=Lb){let s=e+o,l=t+o;return s+n>i-o&&(s=e-o-n),l+r>a-o&&(l=t-o-r),s=Math.min(Math.max(s,o),Math.max(o,i-o-n)),l=Math.min(Math.max(l,o),Math.max(o,a-o-r)),{x:s,y:l}}var ga={anchor:null,pointerX:0,pointerY:0};function Rh(e,t){switch(t.type){case"show":return t.anchor.slug===null&&t.anchor.text===""?e:{anchor:t.anchor,pointerX:t.x,pointerY:t.y};case"hide":return e.anchor===null?e:ga;case"dismiss":return ga}}function Ah(e,t,n=!1){return t!==null?null:e===null?"Nothing open — search with ⌘K, or walk the tree with j and k.":n?"Couldn’t load this note — retrying…":e.startsWith(fa)?"Loading…":"This node has no note body — see the context rail for what it connects to."}var Lh="Light up notes, tags or code",Nh="Light up in graph",Ph="Esc",Ps="Clear the spotlight (Esc)",Ds={lit:"lit",dimmed:"not lit"},Pb="search match";function Dh(e){return e===0?"no matches":`${e} lit`}function Db(e){let t=[];for(let n of e.toLowerCase().split(/\s+/)){let r=n.startsWith("#"),i=r?n.replace(/^#+/,""):n;i!==""&&t.push({text:i,tagOnly:r})}return t}function Ib(e){let t=e.detail.path??e.detail.slug;if(typeof t=="string"&&t!=="")return t;let n=e.id.indexOf(":");return n===-1?"":e.id.slice(n+1)}function Mb(e){let t=new Map;for(let[n,r]of Object.entries(e.tags))for(let i of r){let a=`note:${i}`,o=t.get(a);o===void 0?t.set(a,[n]):o.includes(n)||o.push(n)}return t}function Gb(e,t,n){let r=e.label.toLowerCase(),i=Ib(e).toLowerCase(),a=!1,o=!1,s=[];for(let c of n){let u=!c.tagOnly&&r.includes(c.text),d=t.filter(f=>f.toLowerCase().includes(c.text)),h=!c.tagOnly&&!u&&d.length===0&&i.includes(c.text);if(!u&&d.length===0&&!h)return null;a||=u,o||=h;for(let f of d)s.includes(f)||s.push(f)}let l=t.filter(c=>s.includes(c));return[...a?["title"]:[],...l.map(c=>`tag #${c}`),...o?["path"]:[]]}function Ih(e,t,n=[]){let r=Db(t);if(r.length===0)return null;let i=new Set,a=new Map;if(e!==null){let o=Mb(e);for(let l of e.model.nodes){if(i.has(l.id))continue;let c=Gb(l,o.get(l.id)??[],r);c!==null&&(i.add(l.id),a.set(l.id,c))}let s=new Set(n);for(let l of e.model.nodes)i.has(l.id)||!s.has(l.id)||(i.add(l.id),a.set(l.id,[Pb]))}return{terms:r,lit:i,reasons:a,count:i.size}}function Mh(e,t){if(e===null)return null;let n=new Set;for(let r of e.lit)n.add(t.get(r)??r);return n}function Ob(e,t){let n=e?.reasons.get(t);return n===void 0||n.length===0?null:n.join(", ")}function Gh(e,t,n){return e!==""&&(t||!n)}function Cs(e,t){let n=[...new Set(t.map(s=>s.text))].sort((s,l)=>l.length-s.length),r=e.toLowerCase(),i=[],a=0,o="";for(;a<e.length;){let s=n.find(l=>r.startsWith(l,a));if(s===void 0){o+=e[a],a+=1;continue}o!==""&&i.push({text:o,hit:!1}),o="",i.push({text:e.slice(a,a+s.length),hit:!0}),a+=s.length}return o!==""&&i.push({text:o,hit:!1}),i}var Fb=6,Is="Connected";function Oh(e,t){return t>e?`+${t-e} more`:null}var Fh="Graph node details",Ms="Close details",$h="Open",zh="Open in split",Hh="Lit because:",$b={human:"You",agent:"Agent",generated:"Generated"},Ns=new Set(["contains","anchored-at"]);function zb(e){let t=new Map;for(let n of e)Ns.has(n.kind)&&!t.has(n.target)&&n.source!==n.target&&t.set(n.target,n.source);return t}var Ch=3;function Hb(e,t){let n=zb(e.model.edges),r=new Map(e.model.nodes.map(c=>[c.id,c.label])),i=[],a=new Set([t]),o=n.get(t);for(;o!==void 0&&!a.has(o);)a.add(o),i.unshift(r.get(o)??o),o=n.get(o);let s=i.length>1?i.slice(1):i;return(s.length>Ch?["…",...s.slice(-Ch)]:s).join(" / ")}function Wb(e){let t=/\*\*TL;?DR:?\*\*:?|(?:^|\s)TL;?DR:/i.exec(e);if(t===null)return null;let n=e.slice(t.index+t[0].length),r=n.search(/(?:^|\s)#{1,6}\s|\*\*[^*]+:\*\*/);r>=0&&(n=n.slice(0,r));let i=As(n.replace(/(?:^|\s)[-*+]\s+\[[xX]\]\s*/g," ☑ ").replace(/(?:^|\s)[-*+]\s+\[ \]\s*/g," ☐ ").replace(/(?:^|\s)[-*+]\s+/g," · ")).replace(/\s+/g," ").replace(/^\s*·\s*/,"").trim();return i===""?null:i}var Ls=200;function Ub(e,t){let n=e.detail.preview??"",r=Wb(n);if(r!==null)return{heading:"TLDR",parts:Cs(Yr(r,Ls),t)};let i=e.detail.summary??e.detail.description??"";if(i.trim()!=="")return{heading:"Summary",parts:Cs(Yr(i,Ls),t)};let a=Yr(n,Ls);return a===""?null:{heading:"Preview",parts:Cs(a,t)}}function Bb(e,t,n){let r=new Map(e.model.nodes.map(l=>[l.id,l])),i=l=>{let c=[];for(let u of e.model.edges){let d=l(u);d!==null&&d!==t&&r.has(d)&&!c.includes(d)&&c.push(d)}return c},a=i(l=>Ns.has(l.kind)?null:l.source===t?l.target:l.target===t?l.source:null);return(a.length>0?a:i(l=>Ns.has(l.kind)&&l.source===t?l.target:null)).map(l=>{let c=r.get(l),u=n?.lit.has(l)??!1;return{id:l,label:c.label,lit:u,ariaLabel:u?`${c.label} (lit)`:c.label}}).sort((l,c)=>Number(c.lit)-Number(l.lit)||l.label.localeCompare(c.label)||l.id.localeCompare(c.id))}function Wh(e,t,n,r){let i=aa(e,t);if(i===null||e===null)return null;let a=e.model.nodes.find(s=>s.id===i.id),o=Bb(e,i.id,n);return{id:i.id,title:i.title,kind:i.kind,icon:i.icon,crumb:Hb(e,i.id),who:a.provenance===null?null:{provenance:a.provenance,glyph:Ut(a.provenance),word:$b[a.provenance],title:ln(a.provenance)},when:Wt(a.detail.updated,r),text:Ub(a,n?.terms??[]),litBecause:Ob(n,i.id),connected:o.slice(0,Fb),connectedTotal:o.length}}var Uh="(prefers-color-scheme: light)";function Xr(e){return e==null||typeof e.matchMedia!="function"?"dark":e.matchMedia(Uh).matches?"light":"dark"}function Bh(e,t){if(typeof e.matchMedia!="function")return()=>{};let n=e.matchMedia(Uh);if(typeof n.addEventListener!="function")return()=>{};let r=()=>t(n.matches?"light":"dark");return n.addEventListener("change",r),()=>n.removeEventListener("change",r)}var Kb=.06,Vb=.2,Gs=.001,Kh=.5;function Vh(e,t){if(e.nodes.length===0)return null;let n=e.nodes.map(s=>{let l=t?.get(s.id);return{id:s.id,x:l!==void 0&&Number.isFinite(l.x)?l.x:s.x,y:l!==void 0&&Number.isFinite(l.y)?l.y:s.y,vx:0,vy:0,r:ss(s.size)}}),r=new Map(n.map(s=>[s.id,s])),i=new Set,a=[];for(let s of e.edges){if(s.source===s.target||!r.has(s.source)||!r.has(s.target))continue;let l=`${s.source}\0${s.target}\0${s.kind}`;i.has(l)||(i.add(l),a.push({source:s.source,target:s.target,kind:s.kind}))}let o=ls({nodes:n,links:a,seed:1}).alpha(Kb).alphaMin(Gs);return{tick(){o.tick()},awake(){return o.alphaTarget()>Gs||o.alpha()>Gs},positions(){return new Map(n.map(s=>[s.id,{x:s.x??0,y:s.y??0}]))},pin(s,l){let c=r.get(s);if(!c)return;let u=c.fx!=null&&c.fy!=null&&Math.abs(c.fx-l.x)<Kh&&Math.abs(c.fy-l.y)<Kh;c.fx=l.x,c.fy=l.y,o.alphaTarget(u?0:Vb)},release(s){let l=r.get(s);l&&(l.fx=null,l.fy=null,o.alphaTarget(0))}}}var jh={searched:0,read:1,wrote:2},qh=new Map;function Xh(e,t){return t===null?e.events.map(n=>({event:n,at:Date.parse(n.at)})):e.events.filter(n=>n.turn===t.turn).map((n,r)=>({event:n,at:t.startedAt+r*700}))}function Zh(e,t,n=null){if(e===null)return qh;let r=new Map,i=new Map;for(let{event:a,at:o}of Xh(e,n)){let s=t-o;if(n!==null&&s<0)continue;let l=Math.min(1,1-s/6e4);if(l>0)for(let c of a.slugs){let u=`note:${c}`,d=i.get(u)===a.turn?r.get(u):void 0,h=d===void 0||jh[a.kind]>jh[d.kind]?a.kind:d.kind;r.set(u,{kind:h,strength:Math.max(l,d?.strength??0)}),i.set(u,a.turn)}}return r.size===0?qh:r}function Qh(e,t,n=null){return e===null?!1:Xh(e,n).some(({at:r})=>t-r<6e4)}var jb={add:"created",append:"appended",finalize:"finalized",links:"fixed links in"};function qb(e,t){let n=e.slugs.map(r=>({id:`note:${r}`,label:t.get(`note:${r}`)??r}));if(e.kind==="searched"){let r=e.slugs.length;return{key:`${e.seq}:s`,kind:"searched",verb:e.query===void 0?"searched":`searched "${e.query}"`,notes:[],detail:r===0?"no hits":`${r} hit${r===1?"":"s"}`}}return{key:`${e.seq}:${e.kind}`,kind:e.kind,verb:e.kind==="read"?"read":jb[e.action]??"wrote",notes:n,detail:null}}function Yh(e,t=!1){let n=new Date(e);return Number.isNaN(n.getTime())?"":[n.getHours(),n.getMinutes(),...t?[n.getSeconds()]:[]].map(i=>String(i).padStart(2,"0")).join(":")}function Jh(e,t){if(e===null||e.events.length===0)return[];let n=new Map((t?.model.nodes??[]).map(s=>[s.id,s.label])),r=new Map;for(let s of e.events){let l=r.get(s.turn);l===void 0?r.set(s.turn,[s]):l.push(s)}let i=[...r.entries()].sort(([s],[l])=>l-s),a=i.map(([,s])=>Yh(s[0].at)),o=i.map(([s,l],c)=>{let u=new Set(l.filter(h=>h.kind!=="searched").flatMap(h=>h.slugs)),d=a.filter(h=>h===a[c]).length>1;return{turn:s,time:Yh(l[0].at,d),steps:l.map(h=>qb(h,n)),used:u.size}});return e.turn>o[0].turn&&o.unshift({turn:e.turn,time:"",steps:[],used:0}),o.slice(0,5)}var ep="Nothing recalled yet.";function Os(e,t){return t?"This turn":e.time===""?`Turn ${e.turn}`:e.time}function tp(e){if(e===void 0)return"";let t=e.strength>.66?3:e.strength>.33?2:1;return` weave-row-trail weave-row-trail-${e.kind} weave-row-trail-${t}`}var Zr="application/x-weave-note";function np(e,t){return t.startsWith("note:")&&e?.model.nodes.some(n=>n.id===t&&n.kind==="note")?t:null}function Fs(e,t){return t===null?e:[t,...e.filter(n=>n!==t)].slice(0,100)}function rp(e,t){return t!==null&&t===e}function ip(e,t,n){let r=e.panes.find(s=>s.id===n)??bn(e),i=e.panes.find(s=>s.id!==r.id),a=sn(e,t,{newTab:!0,paneId:i?.id??r.id});if(a===e)return e;let o=a;if(i===void 0){let{lastDocumentTab:s,...l}=a.panes[0],c=l.tabs.at(-1),u={...a,panes:[{...l,activeTab:r.activeTab,...r.lastDocumentTab===void 0?{}:{lastDocumentTab:r.lastDocumentTab}}]};o=er(u,r.id,c.id)}return e.preferences.focusNewTabs?o:{...o,activePane:r.id}}function ap(e,t,n){return e.map(r=>{let i=t?.model.nodes.find(o=>o.id===r),a=i?.kind??(r.startsWith("vfolder:")?"module":r.startsWith("artifact:")?"file":"note");return{id:r,label:i?.label??r.replace(/^[^:]+:/,""),icon:Rn(a),selected:r===n}})}var op={title:"Context"},Yb="—";function sp(e,t,n=""){return{cwd:e===""?Yb:e,selection:Xb(t),hint:n===""?"":`${n} search`}}function Xb(e){return e===null?"nothing selected":e.startsWith("note:")&&e.length>5?`${e.slice(5)}.md`:e}var lp=6e4;function Qr(e){return e?"⌘K":"Ctrl K"}function cp(e){return`Search notes and repository (${e})`}function Jr(e){return/mac|iphone|ipad/i.test(e)}var Zb={k:{type:"openSearch"},",":{type:"openSettings"}},up={1:"tree",2:"note",3:"graph"};function Qb(e){return e.ctrl!==e.meta&&!e.alt&&!e.shift}function Jb(e){return!e.ctrl&&!e.meta&&!e.alt}var ex={"/":{type:"filterTree"},g:{type:"fitGraph"},"?":{type:"openHelp"},t:{type:"toggleTheme"},"]":{type:"toggleContext"}};function dp(e,t){if(t.overlay!==null)return e.key==="Escape"?{type:"closeOverlay"}:null;if(e.alt&&!e.meta&&!e.ctrl&&!e.shift&&e.key.toLowerCase()==="w")return{type:"closeTab"};if(Qb(e)){let n=Zb[e.key.toLowerCase()];if(n!==void 0)return n;let r=up[e.key];return r===void 0?null:{type:"focusColumn",column:r}}return e.key==="Escape"?t.hasSelection&&e.navigating?{type:"clearSelection"}:null:!Jb(e)||e.typing?null:ex[e.key]??null}var tx=["INPUT","TEXTAREA","SELECT"];function $s(e,t){return t?!0:e!==null&&tx.includes(e.toUpperCase())}var nx=".weave-sidebar-notes, .weave-graph-host";function hp(e){return{key:e.altKey&&e.code==="KeyW"?"w":e.key,ctrl:e.ctrlKey,meta:e.metaKey,shift:e.shiftKey,alt:e.altKey,typing:$s(e.target?.tagName??null,e.target?.isContentEditable===!0),navigating:(e.target?.closest?.(nx)??null)!==null}}var sr={tree:".weave-sidebar-notes .weave-rows",note:".weave-pane-active .weave-note-body",graph:".weave-graph-host .weave-graph-canvas"},zs=".weave-sidebar-notes .weave-filter";function rx(e){let t=e;return typeof t?.focus=="function"?t:null}function wa(e,t){let n=rx(e.querySelector(t));return n===null?!1:(n.focus(),!0)}function pp(e,t){switch(e.type){case"openSearch":return t.setOverlay("search");case"openSettings":return t.setOverlay("settings");case"openHelp":return t.setOverlay("help");case"closeOverlay":return t.setOverlay(null);case"focusColumn":return void t.focusSelector(sr[e.column]);case"filterTree":return void t.focusSelector(zs);case"fitGraph":return t.fitGraph();case"clearSelection":return t.clearSelection();case"closeTab":return t.closeTab();case"toggleTheme":return t.toggleTheme();case"toggleContext":return t.toggleContext()}}function ya(e){return[{title:"Global",entries:[{combo:"⌥W / Alt W",what:"Close the active tab"},{combo:`${e},`,what:"Open settings"},{combo:`${e}K`,what:"Search notes and the repository"},...Object.entries(up).map(([t,n])=>({combo:`${e}${t}`,what:n==="tree"?"Open and focus the notes sidebar":n==="graph"?"Open and focus Graph view":"Focus the note"})),{combo:"?",what:"This help"},{combo:"t",what:"Switch between selected light and dark themes"},{combo:"]",what:"Fold or unfold Context"},{combo:"Esc",what:"Clear the selection from the tree or graph, or close an overlay"}]},{title:"Tree",entries:[{combo:"/",what:"Filter the tree"},{combo:"j / ↓",what:"Next row"},{combo:"k / ↑",what:"Previous row"},{combo:"→",what:"Expand, or step into"},{combo:"←",what:"Collapse, or step out"},{combo:"Home / End",what:"First / last row"}]},{title:"Tabs and panes",entries:[{combo:"Alt ← / →",what:"Reorder the focused tab"},{combo:"← / → / Home / End",what:"Select a tab when the tab strip is focused"},{combo:`${e}click`,what:"Open a note or search result in a new tab"},{combo:"Pane options (···)",what:"Split right or down, move a tab, or close a pane"}]},{title:"Graph",entries:[{combo:"g",what:"Fit the whole graph"}]},{title:"Search",entries:[{combo:"↑ / ↓",what:"Move through results"},{combo:"↵",what:"Open the highlighted result"},{combo:`${e}↵`,what:"Open the highlighted result in a new tab"},{combo:"Tab / ⇧Tab",what:"Switch between All, Notes, Code and Tags"},{combo:"⇧↵",what:"Light up the matches in the graph"},{combo:"Esc",what:"Close the palette"}]}]}var Hs="Keyboard shortcuts",fp="esc close";var ba={chevron:{d:["M5.75 4.25 9.5 8l-3.75 3.75"],filled:!1},vault:{d:["M8 2.6 13.4 8 8 13.4 2.6 8Z"],filled:!0},note:{d:["M4.5 2.75h4.75l2.25 2.25v8.25h-7Z","M9.25 2.75V5h2.25"],filled:!1},repository:{d:["M2.75 4.25h10.5v7.5H2.75Z","M2.75 6.75h10.5"],filled:!1},module:{d:["M2.75 4.25h4l1.5 1.75h5v5.75h-10.5Z"],filled:!1},package:{d:["M8 2.5 13.25 5v6L8 13.5 2.75 11V5Z","M2.75 5 8 7.5 13.25 5","M8 7.5v6"],filled:!1},entryPoint:{d:["M5.75 3.75v8.5L12.75 8Z"],filled:!0},gitState:{d:["M8 2.85 13.15 8 8 13.15 2.85 8Z"],filled:!1},external:{d:["M4.5 11.5l7-7","M6.75 4.5h4.75v4.75"],filled:!1},file:{d:["M4.5 2.75h7v10.5h-7Z"],filled:!1},sidebar:{d:["M2.75 3.25h10.5v9.5H2.75Z","M6.25 3.25v9.5"],filled:!1},graph:{d:["M5.5 4a1.5 1.5 0 1 1-3 0a1.5 1.5 0 1 1 3 0Z","M13.5 5a1.5 1.5 0 1 1-3 0a1.5 1.5 0 1 1 3 0Z","M8.5 12a1.5 1.5 0 1 1-3 0a1.5 1.5 0 1 1 3 0Z","M5.5 4.3 10.5 4.8M4.6 5.4l1.9 5.2M11.3 6.3 8.3 10.8"],filled:!1},noteGraph:{d:["M3.25 2.75h9.5v10.5h-9.5Z","M10.5 8a2.5 2.5 0 1 1-5 0a2.5 2.5 0 1 1 5 0Z"],filled:!1},search:{d:["M11 7a4 4 0 1 1-8 0a4 4 0 1 1 8 0Z","m10 10 3.5 3.5"],filled:!1},context:{d:["M2.75 3.25h10.5v9.5H2.75Z","M9.75 3.25v9.5"],filled:!1},refresh:{d:["M13 8a5 5 0 1 1-1.5-3.55","M13 2.75V5.5h-2.75"],filled:!1},settings:{d:["M10 8a2 2 0 1 1-4 0a2 2 0 1 1 4 0Z","M8 1.75v1.5M8 12.75v1.5M1.75 8h1.5M12.75 8h1.5M3.6 3.6l1.05 1.05M11.35 11.35l1.05 1.05M3.6 12.4l1.05-1.05M11.35 4.65l1.05-1.05"],filled:!1},sun:{d:["M10.5 8a2.5 2.5 0 1 1-5 0a2.5 2.5 0 1 1 5 0Z","M8 1.75V3M8 13v1.25M1.75 8H3M13 8h1.25M3.6 3.6l.9.9M11.5 11.5l.9.9M3.6 12.4l.9-.9M11.5 4.5l.9-.9"],filled:!1},moon:{d:["M13 9.75A5.25 5.25 0 0 1 6.25 3a5.25 5.25 0 1 0 6.75 6.75Z"],filled:!1},system:{d:["M13.25 8a5.25 5.25 0 1 1-10.5 0a5.25 5.25 0 1 1 10.5 0Z","M8 2.75v10.5"],filled:!1},history:{d:["M13.25 8a5.25 5.25 0 1 1-10.5 0a5.25 5.25 0 1 1 10.5 0Z","M8 5v3l2 1.5"],filled:!1},edit:{d:["M10.75 2.75 13.25 5.25 6 12.5H3.5V10Z","M9.25 4.25l2.5 2.5"],filled:!1},check:{d:["m3.25 8.5 3 3 6.5-6.75"],filled:!1},heading:{d:["M4 3v10M12 3v10M4 8h8"],filled:!1},bold:{d:["M4.5 3h4a2.5 2.5 0 0 1 0 5h-4Z","M4.5 8h4.75a2.5 2.5 0 0 1 0 5H4.5Z"],filled:!1},italic:{d:["M7 3h5M4 13h5M10 3 6 13"],filled:!1},link:{d:["M6.75 9.25l2.5-2.5","M7.25 4.75 8.5 3.5a2.5 2.5 0 0 1 3.5 3.5l-1.25 1.25","M8.75 11.25 7.5 12.5a2.5 2.5 0 0 1-3.5-3.5l1.25-1.25"],filled:!1},wikilink:{d:["M5.5 3H3.5v10h2","M10.5 3h2v10h-2"],filled:!1},task:{d:["M3 3h10v10H3Z","m5.5 8 1.75 1.75L10.75 6.25"],filled:!1},pin:{d:["M6 2.75h4l-.5 4 2 2v1h-7v-1l2-2Z","M8 9.75v3.5"],filled:!1},close:{d:["m4.25 4.25 7.5 7.5M11.75 4.25l-7.5 7.5"],filled:!1},folder:{d:["M2.75 4.25h3.5l1.25 1.5h5.75v6.5H2.75Z"],filled:!1}};var ix=0;function p(e,t,n,r,i,a){t||(t={});var o,s,l=t;if("ref"in l)for(s in l={},t)s=="ref"?o=t[s]:l[s]=t[s];var c={type:e,props:l,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ix,__i:-1,__u:0,__source:i,__self:a};if(typeof e=="function"&&(o=e.defaultProps))for(s in o)l[s]===void 0&&(l[s]=o[s]);return le.vnode&&le.vnode(c),c}function ce({name:e,class:t}){let n=ba[e];return p("svg",{class:t,width:16,height:16,viewBox:`0 0 ${16} ${16}`,fill:n.filled?"currentColor":"none",stroke:n.filled?void 0:"currentColor","stroke-width":n.filled?void 0:n.width??1.5,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:n.d.map(r=>p("path",{d:r}))})}function ax({view:e,recentIds:t,trail:n,edit:r,onEdit:i,onRename:a,onSelect:o,onToggle:s,onMenu:l,onDrop:c}){let u=jo(e.id);return p("li",{id:e.domId,"data-row-id":e.id,class:`weave-row weave-row-${e.kind}${e.selected?" weave-row-on":""}${t.has(e.id)?" weave-row-new":""}${tp(n)}`,role:"treeitem","aria-level":e.level,"aria-posinset":e.posinset,"aria-setsize":e.setsize,"aria-selected":e.selected,"aria-expanded":e.hasKids?e.expanded:void 0,style:bu(e.depth),onClick:d=>o(d.metaKey||d.ctrlKey),draggable:e.id.startsWith("note:"),"aria-label":e.id===rr?"New folder":void 0,onDragStart:d=>{d.dataTransfer?.setData("text/plain",e.id),d.dataTransfer?.setData(Zr,e.id),d.dataTransfer&&(d.dataTransfer.effectAllowed="copyMove")},onDragOver:u===void 0?void 0:d=>d.preventDefault(),onDrop:u===void 0?void 0:d=>{d.preventDefault(),c(d.dataTransfer?.getData("text/plain")??"")},onContextMenu:d=>{d.preventDefault(),d.stopPropagation(),l(d.clientX,d.clientY)},children:[p("span",{class:"weave-twisty","aria-hidden":"true",onClick:d=>{d.stopPropagation(),s()},children:e.hasKids?p(ce,{name:"chevron",class:e.expanded?"weave-icon weave-icon-open":"weave-icon"}):null}),p("span",{class:"weave-kind","aria-hidden":"true",children:p(ce,{name:e.kindIcon,class:"weave-icon"})}),p("span",{class:`weave-prov weave-prov-${e.provenance??"none"}`,title:e.provenanceTitle,children:e.provenanceGlyph}),r===null?p("span",{class:"weave-label",children:e.label}):p(ox,{value:r,draft:e.id===rr,onEdit:i,onCommit:a}),p("span",{class:"weave-meta",children:e.meta})]})}function ox({value:e,draft:t,onEdit:n,onCommit:r}){let i=V(null);return Fe(()=>{let a=i.current;a!==null&&(a.focus(),a.select())},[]),p("input",{ref:i,class:"weave-tree-rename",value:e,placeholder:t?"New folder name…":void 0,onClick:a=>a.stopPropagation(),onInput:a=>n(a.currentTarget.value),onBlur:a=>r(a.currentTarget.value),onKeyDown:a=>{a.stopPropagation(),a.key==="Enter"?a.currentTarget.blur():a.key==="Escape"&&r(null)}})}function mp(e){let[t,n]=B(ou),[r,i]=B(null),a=V(null);Fe(()=>{r!==null&&a.current?.querySelector(".weave-menu button")?.focus()},[r?.id]);let o=()=>{i(null),a.current?.querySelector(".weave-tree-actions")?.focus()},[s,l]=B(null),[c,u]=B(null),d=uu(su(e.graph,t),c),h=Au(e.graph,d,t),f=async(w,b)=>{let k=await w;if(!k.ok)window.alert(k.message);else{let x=k.data.id??b;x!==void 0&&e.onSelect(x),e.onRefresh()}},g=async w=>{if(r===null)return;let b=En(r.id);if(i(null),b!==null){if(w==="newFolder"){let k=lu(b);n(x=>Ko(x,k)),u(k),l({id:rr,label:"",value:""})}else if(w==="rename")n(k=>Ko(k,b.path.split("/").slice(0,-1).join("/"))),l({id:r.id,label:r.label,value:r.label});else if(b.type!=="vault"){if(!e.onMutate(Zi(e.graph,b)))return;await f(b.type==="note"?Xc(Se,b.path):Jc(Se,b.path),du(e.selectedId,b)?"vault":void 0)}}},y=w=>{if(r!==null){if(qo(w)&&r.armed!==!0){i({...r,armed:!0});return}g("delete")}},v=w=>{let b=s,k=c;if(l(null),u(null),b===null)return;let x=w?.trim();if(b.id===rr){let O=k===null||!x?null:cu(k,x);O!==null&&f(Zc(Se,O));return}let S=En(b.id);if(S!==null&&x&&x!==b.label){if(!e.onMutate(Zi(e.graph,S)))return;f(S.type==="note"?qc(Se,S.path,x):Qc(Se,S.path,x))}};return p("div",{class:"weave-tree",ref:a,onKeyDown:w=>{if(r!==null&&w.key==="Escape"){w.preventDefault(),w.stopPropagation(),o();return}let b=w.target,k=mu(d,t,e.selectedId,w.key,$s(b?.tagName??null,b?.isContentEditable===!0));k.handled&&(w.preventDefault(),n(k.state),k.selectedId!==null&&e.onSelect(k.selectedId,!1,!0))},children:[p("div",{class:"weave-tree-controls",children:[p("input",{type:"search",class:"weave-filter",value:t.query,placeholder:Tu,"aria-label":Eu,title:Ru,onInput:w=>n(pu(t,w.currentTarget.value))}),p("button",{type:"button",class:"weave-chip",title:xu(t.provFilter),onClick:()=>n(fu(t)),children:["◧ ",Xi(t.provFilter)]}),p("button",{type:"button",class:"weave-chip",title:_u(t.showInternals),onClick:()=>n(gu(t)),children:["◧ ",ku(t.showInternals)]}),p("button",{type:"button",class:"weave-chip weave-tree-actions","aria-label":"File actions",title:"File actions for the selected item",onClick:w=>{let b=e.selectedId!==null&&En(e.selectedId)!==null?e.selectedId:"vault",k=w.currentTarget.getBoundingClientRect();i({id:b,label:e.graph?.model.nodes.find(x=>x.id===b)?.label??"Vault",x:k.left,y:k.bottom})},children:"···"})]}),h===null?p("ul",{class:"weave-rows",role:"tree",tabIndex:0,"aria-label":Su,"aria-activedescendant":yu(d,e.selectedId)??void 0,onContextMenu:w=>{w.preventDefault(),i({id:"vault",label:"Vault",x:w.clientX,y:w.clientY})},children:wu(d,e.selectedId,e.now).map(w=>p(ax,{view:w,recentIds:e.recentIds,trail:e.trail?.get(w.id),edit:s?.id===w.id?s.value:null,onEdit:b=>l(k=>k===null?null:{...k,value:b}),onRename:v,onSelect:b=>{e.onSelect(w.id,b),w.hasKids&&n(k=>Vo(k,w.id))},onToggle:()=>n(Vo(t,w.id)),onMenu:(b,k)=>i({id:w.id,label:w.label,x:b,y:k}),onDrop:b=>{let k=jo(w.id);if(b.startsWith("note:")&&k!==void 0){let x=En(b);if(x!==null&&!e.onMutate(Zi(e.graph,x)))return;f(Yc(Se,b.slice(5),k))}}},w.id))}):p("p",{class:"weave-tree-empty",children:h}),p("p",{class:"weave-tree-count",children:Cu(d)}),r!==null&&En(r.id)!==null?(()=>{let w=En(r.id);return p(we,{children:[p("button",{type:"button",class:"weave-menu-backdrop","aria-label":"Close context menu",onClick:o}),p("div",{class:"weave-menu",role:"menu",style:{left:`${r.x}px`,top:`${r.y}px`},onKeyDown:b=>{if(b.key==="Escape")b.preventDefault(),o();else if(["ArrowDown","ArrowUp","Home","End"].includes(b.key)){b.preventDefault();let k=[...b.currentTarget.querySelectorAll("button")],x=k.indexOf(document.activeElement),S=b.key==="Home"?0:b.key==="End"?k.length-1:(x+(b.key==="ArrowDown"?1:-1)+k.length)%k.length;k[S]?.focus()}b.stopPropagation()},children:[p("button",{type:"button",role:"menuitem",onClick:()=>{g("newFolder")},children:"New folder…"}),w.type!=="vault"?p(we,{children:[p("button",{type:"button",role:"menuitem",onClick:()=>{g("rename")},children:"Rename…"}),p("button",{type:"button",role:"menuitem",class:"weave-menu-danger",onClick:()=>y(w),children:hu(w,r.label,r.armed===!0)})]}):null]})]})})():null]})}var vp=new Map;function wp(e){let t=V(null),n=V(null),r=V(null),i=V(null),a=V(!1),o=Tc(()=>{if(i.current!==null)return;let M=()=>{i.current=null;let q=r.current;if(q!==null){if(q.tick(),!q.awake()){a.current||(a.current=!0,n.current?.fit());return}n.current?.setPositions(q.positions()),i.current=requestAnimationFrame(M)}};i.current=requestAnimationFrame(M)},[]),[s,l]=B(null),c=$e(()=>(bo(e.forces),JSON.stringify(e.forces)),[e.forces]),u=e.groupColors,d=e.scheme??Xr(e.host),h=Cd(e.graph,s),f=$e(()=>Md(e.graph,e.selectedId,h,e.storage,d,e.bootFailed,u),[e.graph,e.selectedId,h,e.storage,d,e.bootFailed,c,u]),g=e.onQuery!==void 0,y=g?e.query??"":"",v=$e(()=>Ih(e.graph,y,e.found),[e.graph,y,e.found]),w=$e(()=>Mh(v,f.representative),[v,f.representative]),b=$e(()=>Ld(f.highlight,e.selectedId,w),[f.highlight,e.selectedId,w]),k=g?null:aa(e.graph,e.previewId),x=e.now??Date.now(),S=$e(()=>g?Wh(e.graph,e.previewId,v,x):null,[g,e.graph,e.previewId,v,x]),O=V(null),z=V(vp);z.current=e.trail??vp;let L=V({view:h,model:f,picture:b,onSelect:e.onSelect,selectedId:e.selectedId});L.current={view:h,model:f,picture:b,onSelect:e.onSelect,selectedId:e.selectedId},re(()=>{let M=e.renderer(d);M.onSelect(Y=>{let ie=Gd(L.current.view,L.current.model.clusters,Y);l(ie.state),L.current.onSelect(ie.selectedId)}),M.onHover(Y=>{let{model:ie,picture:oe}=L.current,ye=Nd(ie.graph.edges,Y,oe);M.setHighlight(ye.highlight,ye.selectedId,ye.style)}),M.onDragStart(Y=>{let ie=n.current?.positions().get(Y);ie&&(r.current?.pin(Y,ie),o())}),M.onDragMove((Y,ie)=>{r.current?.pin(Y,ie)}),M.onDragEnd(Y=>{r.current?.release(Y)}),M.mount(t.current??{clientWidth:0,clientHeight:0}),n.current=M,M.setGraph(L.current.model.graph);let q=L.current.picture;return M.setHighlight(q.highlight,q.selectedId,q.style),M.setTrail(z.current),e.fit.current=()=>M.fit(),()=>{M.destroy(),n.current=null,e.fit.current=null}},[e.renderer,d]),re(()=>{n.current?.setGraph(f.graph)},[f.key,c,u]),re(()=>{let M=Vh(f.graph,n.current?.positions());return r.current=M,M!==null&&o(),()=>{r.current=null}},[f.key,o,c]),re(()=>()=>{i.current!==null&&(cancelAnimationFrame(i.current),i.current=null)},[]),re(()=>{n.current?.setHighlight(b.highlight,b.selectedId,b.style)},[b]),re(()=>{n.current?.setTrail(z.current)},[e.trail]);let G=M=>{M.key!=="Escape"||!Gh(y,M.target===O.current,S!==null)||(M.preventDefault(),e.onQuery?.(""))},I=S===null?null:Oh(S.connected.length,S.connectedTotal);return p("div",{class:"weave-graph",onKeyDown:G,children:[f.empty===null?null:p("p",{class:"weave-graph-empty",children:f.empty}),p("div",{class:"weave-graph-canvas",ref:t,role:"img","aria-label":"Knowledge graph",tabIndex:-1}),g?p("div",{class:`weave-spotlight${v===null?"":" weave-spotlight-on"}`,role:"search",children:[p("svg",{class:"weave-spotlight-icon",viewBox:"0 0 20 20",width:14,height:14,fill:"none",stroke:"currentColor","stroke-width":1.8,"aria-hidden":"true",children:[p("circle",{cx:"8.5",cy:"8.5",r:"5.5"}),p("path",{d:"m13 13 4 4"})]}),p("input",{ref:O,class:"weave-spotlight-input",type:"search",value:y,placeholder:Lh,"aria-label":Nh,spellcheck:!1,autoComplete:"off",onInput:M=>e.onQuery?.(M.currentTarget.value)}),v===null?null:p(we,{children:[p("span",{class:`weave-spotlight-count${v.count===0?" weave-spotlight-none":""}`,role:"status",children:Dh(v.count)}),p("button",{type:"button",class:"weave-spotlight-clear",title:Ps,"aria-label":Ps,onClick:()=>{e.onQuery?.(""),O.current?.focus()},children:Ph})]})]}):null,S===null?null:p("aside",{class:"weave-sheet","aria-label":Fh,children:[p("button",{type:"button",class:"weave-sheet-close","aria-label":Ms,title:Ms,onClick:()=>e.onSelect(null),children:"×"}),p("p",{class:"weave-sheet-crumb",children:[p(ce,{name:S.crumb===""?S.icon:"module",class:"weave-icon"}),p("span",{children:S.crumb===""?S.kind:S.crumb})]}),p("h2",{class:"weave-sheet-title",children:S.title}),p("p",{class:"weave-sheet-meta",children:[S.who===null?null:p("span",{class:`weave-prov weave-prov-${S.who.provenance}`,title:S.who.title,"aria-hidden":"true",children:S.who.glyph}),p("span",{children:S.who===null?S.kind:S.who.word}),S.when===""?null:p("span",{class:"weave-sheet-when",children:["· ",S.when]})]}),S.text===null?null:p("div",{class:"weave-sheet-text",children:[p("span",{class:"weave-sheet-text-head",children:S.text.heading}),S.text.parts.map(M=>M.hit?p("mark",{class:"weave-sheet-mark",children:M.text}):M.text)]}),S.litBecause===null?null:p("p",{class:"weave-sheet-why",children:[p("span",{"aria-hidden":"true",children:"✳"}),Hh," ",S.litBecause]}),S.connectedTotal===0?null:p("section",{class:"weave-sheet-section","aria-label":Is,children:[p("h3",{class:"weave-sheet-heading",children:[Is,p("span",{class:"weave-sheet-count",children:S.connectedTotal})]}),p("ul",{class:"weave-sheet-rows",children:S.connected.map(M=>p("li",{children:p("button",{type:"button",class:"weave-sheet-row",title:M.label,"aria-label":M.ariaLabel,onClick:()=>e.onSelect(M.id),children:[p("span",{class:`weave-sheet-dot${M.lit?" weave-sheet-dot-lit":""}`,"aria-hidden":"true"}),p("span",{class:"weave-sheet-row-label",children:M.label})]})},M.id))}),I===null?null:p("p",{class:"weave-sheet-more",children:I})]}),p("div",{class:"weave-sheet-actions",children:[p("button",{type:"button",class:"weave-sheet-open",onClick:()=>e.onOpen(S.id),children:$h}),e.onOpenSplit===void 0?null:p("button",{type:"button",class:"weave-sheet-split",onClick:()=>e.onOpenSplit?.(S.id),children:zh})]})]}),k===null?null:p("aside",{class:"weave-graph-preview","aria-label":"Selected graph node",children:[p("div",{class:"weave-graph-preview-info",children:[p("span",{class:"weave-kind","aria-hidden":"true",children:p(ce,{name:k.icon,class:"weave-icon"})}),p("div",{class:"weave-graph-preview-copy",children:[p("span",{class:"weave-graph-preview-kind",children:k.kind}),p("strong",{class:"weave-graph-preview-title",title:k.title,children:k.title})]})]}),p("button",{type:"button",class:"weave-graph-preview-close","aria-label":"Clear graph selection",onClick:()=>e.onSelect(null),children:"×"}),p("button",{type:"button",class:"weave-chip",onClick:()=>e.onOpen(k.id),children:"Open in new tab"})]}),p("div",{class:"weave-graph-controls",children:[p("button",{type:"button",class:"weave-chip",title:Dd,onClick:()=>n.current?.fit(),children:Pd}),p("span",{class:"weave-graph-legend",children:[p("span",{class:"weave-legend-on",children:["◉ ",oa.selected]}),v===null?p("span",{class:"weave-legend-near",children:["● ",oa.neighborhood]}):p("span",{class:"weave-legend-lit",children:["● ",Ds.lit]}),p("span",{class:"weave-legend-dim",children:["· ",v===null?oa.dimmed:Ds.dimmed]})]})]}),p("p",{class:"weave-graph-count",children:Id(f.visible,f.total)})]})}function sx(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Gn(e){var t=sx(e,"string");return typeof t=="symbol"?t:t+""}function De(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yp(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Gn(r.key),r)}}function Ie(e,t,n){return t&&yp(e.prototype,t),n&&yp(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Mn(e){return Mn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Mn(e)}function bp(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(bp=function(){return!!e})()}function lx(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function cx(e,t){if(t&&(typeof t=="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return lx(e)}function Qe(e,t,n){return t=Mn(t),cx(e,bp()?Reflect.construct(t,n||[],Mn(e).constructor):t.apply(e,n))}function Ws(e,t){return Ws=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Ws(e,t)}function Je(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ws(e,t)}function ux(e){if(Array.isArray(e))return e}function dx(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,i=u}finally{try{if(!l&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}function xa(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Vs(e,t){if(e){if(typeof e=="string")return xa(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?xa(e,t):void 0}}function hx(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
99
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dn(e,t){return ux(e)||dx(e,t)||Vs(e,t)||hx()}var Us={black:"#000000",silver:"#C0C0C0",gray:"#808080",grey:"#808080",white:"#FFFFFF",maroon:"#800000",red:"#FF0000",purple:"#800080",fuchsia:"#FF00FF",green:"#008000",lime:"#00FF00",olive:"#808000",yellow:"#FFFF00",navy:"#000080",blue:"#0000FF",teal:"#008080",aqua:"#00FFFF",darkblue:"#00008B",mediumblue:"#0000CD",darkgreen:"#006400",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",springgreen:"#00FF7F",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",rebeccapurple:"#663399",mediumaquamarine:"#66CDAA",dimgray:"#696969",dimgrey:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",slategrey:"#708090",lightslategray:"#778899",lightslategrey:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370DB",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",palevioletred:"#DB7093",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",lightyellow:"#FFFFE0",ivory:"#FFFFF0"};var xp=new Int8Array(4),Bs=new Int32Array(xp.buffer,0,1),px=new Float32Array(xp.buffer,0,1),fx=/^\s*rgba?\s*\(/,gx=/^\s*rgba?\s*\(\s*([0-9]*)\s*,\s*([0-9]*)\s*,\s*([0-9]*)(?:\s*,\s*(.*)?)?\)\s*$/;function mx(e){var t=0,n=0,r=0,i=1;if(e[0]==="#")e.length===4?(t=parseInt(e.charAt(1)+e.charAt(1),16),n=parseInt(e.charAt(2)+e.charAt(2),16),r=parseInt(e.charAt(3)+e.charAt(3),16)):(t=parseInt(e.charAt(1)+e.charAt(2),16),n=parseInt(e.charAt(3)+e.charAt(4),16),r=parseInt(e.charAt(5)+e.charAt(6),16)),e.length===9&&(i=parseInt(e.charAt(7)+e.charAt(8),16)/255);else if(fx.test(e)){var a=e.match(gx);a&&(t=+a[1],n=+a[2],r=+a[3],a[4]&&(i=+a[4]))}return{r:t,g:n,b:r,a:i}}var lr={};for(ei in Us)lr[ei]=cr(Us[ei]),lr[Us[ei]]=lr[ei];var ei;function kp(e,t,n,r,i){return Bs[0]=r<<24|n<<16|t<<8|e,i&&(Bs[0]=Bs[0]&4278190079),px[0]}function cr(e){if(e=e.toLowerCase(),typeof lr[e]<"u")return lr[e];var t=mx(e),n=t.r,r=t.g,i=t.b,a=t.a;a=a*255|0;var o=kp(n,r,i,a,!0);return lr[e]=o,o}var Ks={};function js(e){if(typeof Ks[e]<"u")return Ks[e];var t=(e&16711680)>>>16,n=(e&65280)>>>8,r=e&255,i=255,a=kp(t,n,r,i,!0);return Ks[e]=a,a}function qs(e,t,n,r){return n+(t<<8)+(e<<16)}function Ys(e,t,n,r,i,a){var o=Math.floor(n/a*i),s=Math.floor(e.drawingBufferHeight/a-r/a*i),l=new Uint8Array(4);e.bindFramebuffer(e.FRAMEBUFFER,t),e.readPixels(o,s,1,1,e.RGBA,e.UNSIGNED_BYTE,l);var c=dn(l,4),u=c[0],d=c[1],h=c[2],f=c[3];return[u,d,h,f]}function A(e,t,n){return(t=Gn(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_p(Object(n),!0).forEach(function(r){A(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_p(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function vx(e,t){for(;!{}.hasOwnProperty.call(e,t)&&(e=Mn(e))!==null;);return e}function Qs(){return Qs=typeof Reflect<"u"&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=vx(e,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?e:n):i.value}},Qs.apply(null,arguments)}function Lp(e,t,n,r){var i=Qs(Mn(1&r?e.prototype:e),t,n);return 2&r&&typeof i=="function"?function(a){return i.apply(n,a)}:i}function wx(e){return e.normalized?1:e.size}function Xs(e){var t=0;return e.forEach(function(n){return t+=wx(n)}),t}function Np(e,t,n){var r=e==="VERTEX"?t.VERTEX_SHADER:t.FRAGMENT_SHADER,i=t.createShader(r);if(i===null)throw new Error("loadShader: error while creating the shader");t.shaderSource(i,n),t.compileShader(i);var a=t.getShaderParameter(i,t.COMPILE_STATUS);if(!a){var o=t.getShaderInfoLog(i);throw t.deleteShader(i),new Error(`loadShader: error while compiling the shader:
100
+ `.concat(o,`
101
+ `).concat(n))}return i}function yx(e,t){return Np("VERTEX",e,t)}function bx(e,t){return Np("FRAGMENT",e,t)}function xx(e,t){var n=e.createProgram();if(n===null)throw new Error("loadProgram: error while creating the program.");var r,i;for(r=0,i=t.length;r<i;r++)e.attachShader(n,t[r]);e.linkProgram(n);var a=e.getProgramParameter(n,e.LINK_STATUS);if(!a){var o=e.getProgramInfoLog(n);throw e.deleteProgram(n),new Error("loadProgram: error while linking the program: ".concat(o))}return n}function Tp(e){var t=e.gl,n=e.buffer,r=e.program,i=e.vertexShader,a=e.fragmentShader;t.deleteShader(i),t.deleteShader(a),t.deleteProgram(r),t.deleteBuffer(n)}var Sp=`#define PICKING_MODE
102
+ `,kx=A(A(A(A(A(A(A(A({},WebGL2RenderingContext.BOOL,1),WebGL2RenderingContext.BYTE,1),WebGL2RenderingContext.UNSIGNED_BYTE,1),WebGL2RenderingContext.SHORT,2),WebGL2RenderingContext.UNSIGNED_SHORT,2),WebGL2RenderingContext.INT,4),WebGL2RenderingContext.UNSIGNED_INT,4),WebGL2RenderingContext.FLOAT,4);var Pp=(function(){function e(t,n,r){De(this,e),A(this,"array",new Float32Array),A(this,"constantArray",new Float32Array),A(this,"capacity",0),A(this,"verticesCount",0);var i=this.getDefinition();if(this.VERTICES=i.VERTICES,this.VERTEX_SHADER_SOURCE=i.VERTEX_SHADER_SOURCE,this.FRAGMENT_SHADER_SOURCE=i.FRAGMENT_SHADER_SOURCE,this.UNIFORMS=i.UNIFORMS,this.ATTRIBUTES=i.ATTRIBUTES,this.METHOD=i.METHOD,this.CONSTANT_ATTRIBUTES="CONSTANT_ATTRIBUTES"in i?i.CONSTANT_ATTRIBUTES:[],this.CONSTANT_DATA="CONSTANT_DATA"in i?i.CONSTANT_DATA:[],this.isInstanced="CONSTANT_ATTRIBUTES"in i,this.ATTRIBUTES_ITEMS_COUNT=Xs(this.ATTRIBUTES),this.STRIDE=this.VERTICES*this.ATTRIBUTES_ITEMS_COUNT,this.renderer=r,this.normalProgram=this.getProgramInfo("normal",t,i.VERTEX_SHADER_SOURCE,i.FRAGMENT_SHADER_SOURCE,null),this.pickProgram=n?this.getProgramInfo("pick",t,Sp+i.VERTEX_SHADER_SOURCE,Sp+i.FRAGMENT_SHADER_SOURCE,n):null,this.isInstanced){var a=Xs(this.CONSTANT_ATTRIBUTES);if(this.CONSTANT_DATA.length!==this.VERTICES)throw new Error("Program: error while getting constant data (expected ".concat(this.VERTICES," items, received ").concat(this.CONSTANT_DATA.length," instead)"));this.constantArray=new Float32Array(this.CONSTANT_DATA.length*a);for(var o=0;o<this.CONSTANT_DATA.length;o++){var s=this.CONSTANT_DATA[o];if(s.length!==a)throw new Error("Program: error while getting constant data (one vector has ".concat(s.length," items instead of ").concat(a,")"));for(var l=0;l<s.length;l++)this.constantArray[o*a+l]=s[l]}this.STRIDE=this.ATTRIBUTES_ITEMS_COUNT}}return Ie(e,[{key:"kill",value:function(){Tp(this.normalProgram),this.pickProgram&&(Tp(this.pickProgram),this.pickProgram=null)}},{key:"getProgramInfo",value:function(n,r,i,a,o){var s=this.getDefinition(),l=r.createBuffer();if(l===null)throw new Error("Program: error while creating the WebGL buffer.");var c=yx(r,i),u=bx(r,a),d=xx(r,[c,u]),h={};s.UNIFORMS.forEach(function(y){var v=r.getUniformLocation(d,y);v&&(h[y]=v)});var f={};s.ATTRIBUTES.forEach(function(y){f[y.name]=r.getAttribLocation(d,y.name)});var g;if("CONSTANT_ATTRIBUTES"in s&&(s.CONSTANT_ATTRIBUTES.forEach(function(y){f[y.name]=r.getAttribLocation(d,y.name)}),g=r.createBuffer(),g===null))throw new Error("Program: error while creating the WebGL constant buffer.");return{name:n,program:d,gl:r,frameBuffer:o,buffer:l,constantBuffer:g||{},uniformLocations:h,attributeLocations:f,isPicking:n==="pick",vertexShader:c,fragmentShader:u}}},{key:"bindProgram",value:function(n){var r=this,i=0,a=n.gl,o=n.buffer;this.isInstanced?(a.bindBuffer(a.ARRAY_BUFFER,n.constantBuffer),i=0,this.CONSTANT_ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i,!1)}),a.bufferData(a.ARRAY_BUFFER,this.constantArray,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,n.buffer),i=0,this.ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i,!0)}),a.bufferData(a.ARRAY_BUFFER,this.array,a.DYNAMIC_DRAW)):(a.bindBuffer(a.ARRAY_BUFFER,o),i=0,this.ATTRIBUTES.forEach(function(s){return i+=r.bindAttribute(s,n,i)}),a.bufferData(a.ARRAY_BUFFER,this.array,a.DYNAMIC_DRAW)),a.bindBuffer(a.ARRAY_BUFFER,null)}},{key:"unbindProgram",value:function(n){var r=this;this.isInstanced?(this.CONSTANT_ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!1)}),this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n,!0)})):this.ATTRIBUTES.forEach(function(i){return r.unbindAttribute(i,n)})}},{key:"bindAttribute",value:function(n,r,i,a){var o=kx[n.type];if(typeof o!="number")throw new Error('Program.bind: yet unsupported attribute type "'.concat(n.type,'"'));var s=r.attributeLocations[n.name],l=r.gl;if(s!==-1){l.enableVertexAttribArray(s);var c=this.isInstanced?(a?this.ATTRIBUTES_ITEMS_COUNT:Xs(this.CONSTANT_ATTRIBUTES))*Float32Array.BYTES_PER_ELEMENT:this.ATTRIBUTES_ITEMS_COUNT*Float32Array.BYTES_PER_ELEMENT;if(l.vertexAttribPointer(s,n.size,n.type,n.normalized||!1,c,i),this.isInstanced&&a)if(l instanceof WebGL2RenderingContext)l.vertexAttribDivisor(s,1);else{var u=l.getExtension("ANGLE_instanced_arrays");u&&u.vertexAttribDivisorANGLE(s,1)}}return n.size*o}},{key:"unbindAttribute",value:function(n,r,i){var a=r.attributeLocations[n.name],o=r.gl;if(a!==-1&&(o.disableVertexAttribArray(a),this.isInstanced&&i))if(o instanceof WebGL2RenderingContext)o.vertexAttribDivisor(a,0);else{var s=o.getExtension("ANGLE_instanced_arrays");s&&s.vertexAttribDivisorANGLE(a,0)}}},{key:"reallocate",value:function(n){n!==this.capacity&&(this.capacity=n,this.verticesCount=this.VERTICES*n,this.array=new Float32Array(this.isInstanced?this.capacity*this.ATTRIBUTES_ITEMS_COUNT:this.verticesCount*this.ATTRIBUTES_ITEMS_COUNT))}},{key:"hasNothingToRender",value:function(){return this.verticesCount===0}},{key:"renderProgram",value:function(n,r){var i=r.gl,a=r.program;i.enable(i.BLEND),i.useProgram(a),this.setUniforms(n,r),this.drawWebGL(this.METHOD,r)}},{key:"render",value:function(n){this.hasNothingToRender()||(this.pickProgram&&(this.pickProgram.gl.viewport(0,0,n.width*n.pixelRatio/n.downSizingRatio,n.height*n.pixelRatio/n.downSizingRatio),this.bindProgram(this.pickProgram),this.renderProgram(H(H({},n),{},{pixelRatio:n.pixelRatio/n.downSizingRatio}),this.pickProgram),this.unbindProgram(this.pickProgram)),this.normalProgram.gl.viewport(0,0,n.width*n.pixelRatio,n.height*n.pixelRatio),this.bindProgram(this.normalProgram),this.renderProgram(n,this.normalProgram),this.unbindProgram(this.normalProgram))}},{key:"drawWebGL",value:function(n,r){var i=r.gl,a=r.frameBuffer;if(i.bindFramebuffer(i.FRAMEBUFFER,a),!this.isInstanced)i.drawArrays(n,0,this.verticesCount);else if(i instanceof WebGL2RenderingContext)i.drawArraysInstanced(n,0,this.VERTICES,this.capacity);else{var o=i.getExtension("ANGLE_instanced_arrays");o&&o.drawArraysInstancedANGLE(n,0,this.VERTICES,this.capacity)}}}])})();var _x=(function(e){function t(){return De(this,t),Qe(this,t,arguments)}return Je(t,e),Ie(t,[{key:"kill",value:function(){Lp(t,"kill",this,3)([])}},{key:"process",value:function(r,i,a){var o=i*this.STRIDE;if(a.hidden){for(var s=o+this.STRIDE;o<s;o++)this.array[o]=0;return}return this.processVisibleItem(js(r),o,a)}}])})(Pp);var Js=(function(e){function t(){var n;De(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=Qe(this,t,[].concat(i)),A(n,"drawLabel",void 0),n}return Je(t,e),Ie(t,[{key:"kill",value:function(){Lp(t,"kill",this,3)([])}},{key:"process",value:function(r,i,a,o,s){var l=i*this.STRIDE;if(s.hidden||a.hidden||o.hidden){for(var c=l+this.STRIDE;l<c;l++)this.array[l]=0;return}return this.processVisibleItem(js(r),l,a,o,s)}}])})(Pp);function Tx(e,t){return(function(){function n(r,i,a){De(this,n),A(this,"drawLabel",t),this.programs=e.map(function(o){return new o(r,i,a)})}return Ie(n,[{key:"reallocate",value:function(i){this.programs.forEach(function(a){return a.reallocate(i)})}},{key:"process",value:function(i,a,o,s,l){this.programs.forEach(function(c){return c.process(i,a,o,s,l)})}},{key:"render",value:function(i){this.programs.forEach(function(a){return a.render(i)})}},{key:"kill",value:function(){this.programs.forEach(function(i){return i.kill()})}}])})()}function Dp(e,t,n,r,i){var a=i.edgeLabelSize,o=i.edgeLabelFont,s=i.edgeLabelWeight,l=i.edgeLabelColor.attribute?t[i.edgeLabelColor.attribute]||i.edgeLabelColor.color||"#000":i.edgeLabelColor.color,c=t.label;if(c){e.fillStyle=l,e.font="".concat(s," ").concat(a,"px ").concat(o);var u=n.size,d=r.size,h=n.x,f=n.y,g=r.x,y=r.y,v=(h+g)/2,w=(f+y)/2,b=g-h,k=y-f,x=Math.sqrt(b*b+k*k);if(!(x<u+d)){h+=b*u/x,f+=k*u/x,g-=b*d/x,y-=k*d/x,v=(h+g)/2,w=(f+y)/2,b=g-h,k=y-f,x=Math.sqrt(b*b+k*k);var S=e.measureText(c).width;if(S>x){var O="…";for(c=c+O,S=e.measureText(c).width;S>x&&c.length>1;)c=c.slice(0,-2)+O,S=e.measureText(c).width;if(c.length<4)return}var z;b>0?k>0?z=Math.acos(b/x):z=Math.asin(k/x):k>0?z=Math.acos(b/x)+Math.PI:z=Math.asin(b/x)+Math.PI/2,e.save(),e.translate(v,w),e.rotate(z),e.fillText(c,-S/2,t.size/2+a),e.restore()}}}function el(e,t,n){if(t.label){var r=n.labelSize,i=n.labelFont,a=n.labelWeight,o=n.labelColor.attribute?t[n.labelColor.attribute]||n.labelColor.color||"#000":n.labelColor.color;e.fillStyle=o,e.font="".concat(a," ").concat(r,"px ").concat(i),e.fillText(t.label,t.x+t.size+3,t.y+r/3)}}function Ip(e,t,n){var r=n.labelSize,i=n.labelFont,a=n.labelWeight;e.font="".concat(a," ").concat(r,"px ").concat(i),e.fillStyle="#FFF",e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=8,e.shadowColor="#000";var o=2;if(typeof t.label=="string"){var s=e.measureText(t.label).width,l=Math.round(s+5),c=Math.round(r+2*o),u=Math.max(t.size,r/2)+o,d=Math.asin(c/2/u),h=Math.sqrt(Math.abs(Math.pow(u,2)-Math.pow(c/2,2)));e.beginPath(),e.moveTo(t.x+h,t.y+c/2),e.lineTo(t.x+u+l,t.y+c/2),e.lineTo(t.x+u+l,t.y-c/2),e.lineTo(t.x+h,t.y-c/2),e.arc(t.x,t.y,u,d,-d),e.closePath(),e.fill()}else e.beginPath(),e.arc(t.x,t.y,t.size+o,0,Math.PI*2),e.closePath(),e.fill();e.shadowOffsetX=0,e.shadowOffsetY=0,e.shadowBlur=0,el(e,t,n)}var Sx=`
26
103
  precision highp float;
27
104
 
28
105
  varying vec4 v_color;
@@ -54,7 +131,7 @@ void main(void) {
54
131
  gl_FragColor = mix(v_color, transparent, t);
55
132
  #endif
56
133
  }
57
- `,xv=bv,kv=`
134
+ `,Ex=Sx,Rx=`
58
135
  attribute vec4 a_id;
59
136
  attribute vec4 a_color;
60
137
  attribute vec2 a_position;
@@ -95,7 +172,7 @@ void main() {
95
172
 
96
173
  v_color.a *= bias;
97
174
  }
98
- `,_v=kv,hd=WebGLRenderingContext,rd=hd.UNSIGNED_BYTE,Va=hd.FLOAT,Ev=["u_sizeRatio","u_correctionRatio","u_matrix"],kr=(function(e){function t(){return xe(this,t),ze(this,t,arguments)}return We(t,e),ke(t,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:_v,FRAGMENT_SHADER_SOURCE:xv,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Ev,ATTRIBUTES:[{name:"a_position",size:2,type:Va},{name:"a_size",size:1,type:Va},{name:"a_color",size:4,type:rd,normalized:!0},{name:"a_id",size:4,type:rd,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:Va}],CONSTANT_DATA:[[t.ANGLE_1],[t.ANGLE_2],[t.ANGLE_3]]}}},{key:"processVisibleItem",value:function(r,i,o){var a=this.array,s=Fn(o.color);a[i++]=o.x,a[i++]=o.y,a[i++]=o.size,a[i++]=s,a[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,a=i.uniformLocations,s=a.u_sizeRatio,l=a.u_correctionRatio,c=a.u_matrix;o.uniform1f(l,r.correctionRatio),o.uniform1f(s,r.sizeRatio),o.uniformMatrix3fv(c,!1,r.matrix)}}])})(wv);R(kr,"ANGLE_1",0);R(kr,"ANGLE_2",2*Math.PI/3);R(kr,"ANGLE_3",4*Math.PI/3);var Tv=`
175
+ `,Ax=Rx,Mp=WebGLRenderingContext,Ep=Mp.UNSIGNED_BYTE,Zs=Mp.FLOAT,Cx=["u_sizeRatio","u_correctionRatio","u_matrix"],ni=(function(e){function t(){return De(this,t),Qe(this,t,arguments)}return Je(t,e),Ie(t,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:Ax,FRAGMENT_SHADER_SOURCE:Ex,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Cx,ATTRIBUTES:[{name:"a_position",size:2,type:Zs},{name:"a_size",size:1,type:Zs},{name:"a_color",size:4,type:Ep,normalized:!0},{name:"a_id",size:4,type:Ep,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_angle",size:1,type:Zs}],CONSTANT_DATA:[[t.ANGLE_1],[t.ANGLE_2],[t.ANGLE_3]]}}},{key:"processVisibleItem",value:function(r,i,a){var o=this.array,s=cr(a.color);o[i++]=a.x,o[i++]=a.y,o[i++]=a.size,o[i++]=s,o[i++]=r}},{key:"setUniforms",value:function(r,i){var a=i.gl,o=i.uniformLocations,s=o.u_sizeRatio,l=o.u_correctionRatio,c=o.u_matrix;a.uniform1f(l,r.correctionRatio),a.uniform1f(s,r.sizeRatio),a.uniformMatrix3fv(c,!1,r.matrix)}}])})(_x);A(ni,"ANGLE_1",0);A(ni,"ANGLE_2",2*Math.PI/3);A(ni,"ANGLE_3",4*Math.PI/3);var Lx=`
99
176
  precision mediump float;
100
177
 
101
178
  varying vec4 v_color;
@@ -103,7 +180,7 @@ varying vec4 v_color;
103
180
  void main(void) {
104
181
  gl_FragColor = v_color;
105
182
  }
106
- `,Sv=Tv,Rv=`
183
+ `,Nx=Lx,Px=`
107
184
  attribute vec2 a_position;
108
185
  attribute vec2 a_normal;
109
186
  attribute float a_radius;
@@ -169,7 +246,7 @@ void main() {
169
246
 
170
247
  v_color.a *= bias;
171
248
  }
172
- `,Av=Rv,pd=WebGLRenderingContext,id=pd.UNSIGNED_BYTE,Oi=pd.FLOAT,Cv=["u_matrix","u_sizeRatio","u_correctionRatio","u_minEdgeThickness","u_lengthToThicknessRatio","u_widenessToThicknessRatio"],fd={extremity:"target",lengthToThicknessRatio:2.5,widenessToThicknessRatio:2};function gd(e){var t=z(z({},fd),e||{});return(function(n){function r(){return xe(this,r),ze(this,r,arguments)}return We(r,n),ke(r,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:Av,FRAGMENT_SHADER_SOURCE:Sv,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Cv,ATTRIBUTES:[{name:"a_position",size:2,type:Oi},{name:"a_normal",size:2,type:Oi},{name:"a_radius",size:1,type:Oi},{name:"a_color",size:4,type:id,normalized:!0},{name:"a_id",size:4,type:id,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_barycentric",size:3,type:Oi}],CONSTANT_DATA:[[1,0,0],[0,1,0],[0,0,1]]}}},{key:"processVisibleItem",value:function(o,a,s,l,c){if(t.extremity==="source"){var u=[l,s];s=u[0],l=u[1]}var h=c.size||1,d=l.size||1,p=s.x,m=s.y,w=l.x,v=l.y,y=Fn(c.color),b=w-p,k=v-m,E=b*b+k*k,I=0,A=0;E&&(E=1/Math.sqrt(E),I=-k*E*h,A=b*E*h);var D=this.array;D[a++]=w,D[a++]=v,D[a++]=-I,D[a++]=-A,D[a++]=d,D[a++]=y,D[a++]=o}},{key:"setUniforms",value:function(o,a){var s=a.gl,l=a.uniformLocations,c=l.u_matrix,u=l.u_sizeRatio,h=l.u_correctionRatio,d=l.u_minEdgeThickness,p=l.u_lengthToThicknessRatio,m=l.u_widenessToThicknessRatio;s.uniformMatrix3fv(c,!1,o.matrix),s.uniform1f(u,o.sizeRatio),s.uniform1f(h,o.correctionRatio),s.uniform1f(d,o.minEdgeThickness),s.uniform1f(p,t.lengthToThicknessRatio),s.uniform1f(m,t.widenessToThicknessRatio)}}])})(qa)}var Y0=gd();var Lv=`
249
+ `,Dx=Px,Gp=WebGLRenderingContext,Rp=Gp.UNSIGNED_BYTE,ka=Gp.FLOAT,Ix=["u_matrix","u_sizeRatio","u_correctionRatio","u_minEdgeThickness","u_lengthToThicknessRatio","u_widenessToThicknessRatio"],Op={extremity:"target",lengthToThicknessRatio:2.5,widenessToThicknessRatio:2};function Fp(e){var t=H(H({},Op),e||{});return(function(n){function r(){return De(this,r),Qe(this,r,arguments)}return Je(r,n),Ie(r,[{key:"getDefinition",value:function(){return{VERTICES:3,VERTEX_SHADER_SOURCE:Dx,FRAGMENT_SHADER_SOURCE:Nx,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Ix,ATTRIBUTES:[{name:"a_position",size:2,type:ka},{name:"a_normal",size:2,type:ka},{name:"a_radius",size:1,type:ka},{name:"a_color",size:4,type:Rp,normalized:!0},{name:"a_id",size:4,type:Rp,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_barycentric",size:3,type:ka}],CONSTANT_DATA:[[1,0,0],[0,1,0],[0,0,1]]}}},{key:"processVisibleItem",value:function(a,o,s,l,c){if(t.extremity==="source"){var u=[l,s];s=u[0],l=u[1]}var d=c.size||1,h=l.size||1,f=s.x,g=s.y,y=l.x,v=l.y,w=cr(c.color),b=y-f,k=v-g,x=b*b+k*k,S=0,O=0;x&&(x=1/Math.sqrt(x),S=-k*x*d,O=b*x*d);var z=this.array;z[o++]=y,z[o++]=v,z[o++]=-S,z[o++]=-O,z[o++]=h,z[o++]=w,z[o++]=a}},{key:"setUniforms",value:function(a,o){var s=o.gl,l=o.uniformLocations,c=l.u_matrix,u=l.u_sizeRatio,d=l.u_correctionRatio,h=l.u_minEdgeThickness,f=l.u_lengthToThicknessRatio,g=l.u_widenessToThicknessRatio;s.uniformMatrix3fv(c,!1,a.matrix),s.uniform1f(u,a.sizeRatio),s.uniform1f(d,a.correctionRatio),s.uniform1f(h,a.minEdgeThickness),s.uniform1f(f,t.lengthToThicknessRatio),s.uniform1f(g,t.widenessToThicknessRatio)}}])})(Js)}var eR=Fp();var Mx=`
173
250
  precision mediump float;
174
251
 
175
252
  varying vec4 v_color;
@@ -195,7 +272,7 @@ void main(void) {
195
272
  gl_FragColor = mix(v_color, transparent, t);
196
273
  #endif
197
274
  }
198
- `,md=Lv,Nv=`
275
+ `,$p=Mx,Gx=`
199
276
  attribute vec4 a_id;
200
277
  attribute vec4 a_color;
201
278
  attribute vec2 a_normal;
@@ -263,7 +340,7 @@ void main() {
263
340
 
264
341
  v_color.a *= bias;
265
342
  }
266
- `,Pv=Nv,vd=WebGLRenderingContext,od=vd.UNSIGNED_BYTE,pn=vd.FLOAT,Dv=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness","u_lengthToThicknessRatio"],Iv={lengthToThicknessRatio:fd.lengthToThicknessRatio};function wd(e){var t=z(z({},Iv),e||{});return(function(n){function r(){return xe(this,r),ze(this,r,arguments)}return We(r,n),ke(r,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Pv,FRAGMENT_SHADER_SOURCE:md,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Dv,ATTRIBUTES:[{name:"a_positionStart",size:2,type:pn},{name:"a_positionEnd",size:2,type:pn},{name:"a_normal",size:2,type:pn},{name:"a_color",size:4,type:od,normalized:!0},{name:"a_id",size:4,type:od,normalized:!0},{name:"a_radius",size:1,type:pn}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:pn},{name:"a_normalCoef",size:1,type:pn},{name:"a_radiusCoef",size:1,type:pn}],CONSTANT_DATA:[[0,1,0],[0,-1,0],[1,1,1],[1,1,1],[0,-1,0],[1,-1,-1]]}}},{key:"processVisibleItem",value:function(o,a,s,l,c){var u=c.size||1,h=s.x,d=s.y,p=l.x,m=l.y,w=Fn(c.color),v=p-h,y=m-d,b=l.size||1,k=v*v+y*y,E=0,I=0;k&&(k=1/Math.sqrt(k),E=-y*k*u,I=v*k*u);var A=this.array;A[a++]=h,A[a++]=d,A[a++]=p,A[a++]=m,A[a++]=E,A[a++]=I,A[a++]=w,A[a++]=o,A[a++]=b}},{key:"setUniforms",value:function(o,a){var s=a.gl,l=a.uniformLocations,c=l.u_matrix,u=l.u_zoomRatio,h=l.u_feather,d=l.u_pixelRatio,p=l.u_correctionRatio,m=l.u_sizeRatio,w=l.u_minEdgeThickness,v=l.u_lengthToThicknessRatio;s.uniformMatrix3fv(c,!1,o.matrix),s.uniform1f(u,o.zoomRatio),s.uniform1f(m,o.sizeRatio),s.uniform1f(p,o.correctionRatio),s.uniform1f(d,o.pixelRatio),s.uniform1f(h,o.antiAliasingFeather),s.uniform1f(w,o.minEdgeThickness),s.uniform1f(v,t.lengthToThicknessRatio)}}])})(qa)}var X0=wd();function Gv(e){return yv([wd(e),gd(e)])}var Mv=Gv(),yd=Mv,Ov=`
343
+ `,Ox=Gx,zp=WebGLRenderingContext,Ap=zp.UNSIGNED_BYTE,On=zp.FLOAT,Fx=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness","u_lengthToThicknessRatio"],$x={lengthToThicknessRatio:Op.lengthToThicknessRatio};function Hp(e){var t=H(H({},$x),e||{});return(function(n){function r(){return De(this,r),Qe(this,r,arguments)}return Je(r,n),Ie(r,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Ox,FRAGMENT_SHADER_SOURCE:$p,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Fx,ATTRIBUTES:[{name:"a_positionStart",size:2,type:On},{name:"a_positionEnd",size:2,type:On},{name:"a_normal",size:2,type:On},{name:"a_color",size:4,type:Ap,normalized:!0},{name:"a_id",size:4,type:Ap,normalized:!0},{name:"a_radius",size:1,type:On}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:On},{name:"a_normalCoef",size:1,type:On},{name:"a_radiusCoef",size:1,type:On}],CONSTANT_DATA:[[0,1,0],[0,-1,0],[1,1,1],[1,1,1],[0,-1,0],[1,-1,-1]]}}},{key:"processVisibleItem",value:function(a,o,s,l,c){var u=c.size||1,d=s.x,h=s.y,f=l.x,g=l.y,y=cr(c.color),v=f-d,w=g-h,b=l.size||1,k=v*v+w*w,x=0,S=0;k&&(k=1/Math.sqrt(k),x=-w*k*u,S=v*k*u);var O=this.array;O[o++]=d,O[o++]=h,O[o++]=f,O[o++]=g,O[o++]=x,O[o++]=S,O[o++]=y,O[o++]=a,O[o++]=b}},{key:"setUniforms",value:function(a,o){var s=o.gl,l=o.uniformLocations,c=l.u_matrix,u=l.u_zoomRatio,d=l.u_feather,h=l.u_pixelRatio,f=l.u_correctionRatio,g=l.u_sizeRatio,y=l.u_minEdgeThickness,v=l.u_lengthToThicknessRatio;s.uniformMatrix3fv(c,!1,a.matrix),s.uniform1f(u,a.zoomRatio),s.uniform1f(g,a.sizeRatio),s.uniform1f(f,a.correctionRatio),s.uniform1f(h,a.pixelRatio),s.uniform1f(d,a.antiAliasingFeather),s.uniform1f(y,a.minEdgeThickness),s.uniform1f(v,t.lengthToThicknessRatio)}}])})(Js)}var tR=Hp();function zx(e){return Tx([Hp(e),Fp(e)])}var Hx=zx(),Wp=Hx,Wx=`
267
344
  attribute vec4 a_id;
268
345
  attribute vec4 a_color;
269
346
  attribute vec2 a_normal;
@@ -328,83 +405,23 @@ void main() {
328
405
 
329
406
  v_color.a *= bias;
330
407
  }
331
- `,Fv=Ov,bd=WebGLRenderingContext,ad=bd.UNSIGNED_BYTE,xr=bd.FLOAT,$v=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness"],xd=(function(e){function t(){return xe(this,t),ze(this,t,arguments)}return We(t,e),ke(t,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Fv,FRAGMENT_SHADER_SOURCE:md,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:$v,ATTRIBUTES:[{name:"a_positionStart",size:2,type:xr},{name:"a_positionEnd",size:2,type:xr},{name:"a_normal",size:2,type:xr},{name:"a_color",size:4,type:ad,normalized:!0},{name:"a_id",size:4,type:ad,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:xr},{name:"a_normalCoef",size:1,type:xr}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[1,1],[0,-1],[1,-1]]}}},{key:"processVisibleItem",value:function(r,i,o,a,s){var l=s.size||1,c=o.x,u=o.y,h=a.x,d=a.y,p=Fn(s.color),m=h-c,w=d-u,v=m*m+w*w,y=0,b=0;v&&(v=1/Math.sqrt(v),y=-w*v*l,b=m*v*l);var k=this.array;k[i++]=c,k[i++]=u,k[i++]=h,k[i++]=d,k[i++]=y,k[i++]=b,k[i++]=p,k[i++]=r}},{key:"setUniforms",value:function(r,i){var o=i.gl,a=i.uniformLocations,s=a.u_matrix,l=a.u_zoomRatio,c=a.u_feather,u=a.u_pixelRatio,h=a.u_correctionRatio,d=a.u_sizeRatio,p=a.u_minEdgeThickness;o.uniformMatrix3fv(s,!1,r.matrix),o.uniform1f(l,r.zoomRatio),o.uniform1f(d,r.sizeRatio),o.uniform1f(h,r.correctionRatio),o.uniform1f(u,r.pixelRatio),o.uniform1f(c,r.antiAliasingFeather),o.uniform1f(p,r.minEdgeThickness)}}])})(qa);var Pd=ir(zi()),Wi=(function(e){function t(){var n;return xe(this,t),n=ze(this,t),n.rawEmitter=n,n}return We(t,e),ke(t)})(Pd.EventEmitter);var Md=ir(Za());var Vv=function(t){return t},jv=function(t){return t*t},qv=function(t){return t*(2-t)},Yv=function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},Xv=function(t){return t*t*t},Zv=function(t){return--t*t*t+1},Qv=function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},Od={linear:Vv,quadraticIn:jv,quadraticOut:qv,quadraticInOut:Yv,cubicIn:Xv,cubicOut:Zv,cubicInOut:Qv},Fd={easing:"quadraticInOut",duration:150};function ot(){return Float32Array.of(1,0,0,0,1,0,0,0,1)}function Hi(e,t,n){return e[0]=t,e[4]=typeof n=="number"?n:t,e}function Id(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[3]=-n,e[4]=r,e}function Gd(e,t,n){return e[6]=t,e[7]=n,e}function Bt(e,t){var n=e[0],r=e[1],i=e[2],o=e[3],a=e[4],s=e[5],l=e[6],c=e[7],u=e[8],h=t[0],d=t[1],p=t[2],m=t[3],w=t[4],v=t[5],y=t[6],b=t[7],k=t[8];return e[0]=h*n+d*o+p*l,e[1]=h*r+d*a+p*c,e[2]=h*i+d*s+p*u,e[3]=m*n+w*o+v*l,e[4]=m*r+w*a+v*c,e[5]=m*i+w*s+v*u,e[6]=y*n+b*o+k*l,e[7]=y*r+b*a+k*c,e[8]=y*i+b*s+k*u,e}function Ui(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=e[0],i=e[1],o=e[3],a=e[4],s=e[6],l=e[7],c=t.x,u=t.y;return{x:c*r+u*o+s*n,y:c*i+u*a+l*n}}function Jv(e,t){var n=e.height/e.width,r=t.height/t.width;return n<1&&r>1||n>1&&r<1?1:Math.min(Math.max(r,1/r),Math.max(1/n,n))}function zn(e,t,n,r,i){var o=e.angle,a=e.ratio,s=e.x,l=e.y,c=t.width,u=t.height,h=ot(),d=Math.min(c,u)-2*r,p=Jv(t,n);return i?(Bt(h,Gd(ot(),s,l)),Bt(h,Hi(ot(),a)),Bt(h,Id(ot(),o)),Bt(h,Hi(ot(),c/d/2/p,u/d/2/p))):(Bt(h,Hi(ot(),2*(d/c)*p,2*(d/u)*p)),Bt(h,Id(ot(),-o)),Bt(h,Hi(ot(),1/a)),Bt(h,Gd(ot(),-s,-l))),h}function $d(e,t,n){var r=Ui(e,{x:Math.cos(t.angle),y:Math.sin(t.angle)},0),i=r.x,o=r.y;return 1/Math.sqrt(Math.pow(i,2)+Math.pow(o,2))/n.width}function zd(e){if(!e.order)return{x:[0,1],y:[0,1]};var t=1/0,n=-1/0,r=1/0,i=-1/0;return e.forEachNode(function(o,a){var s=a.x,l=a.y;s<t&&(t=s),s>n&&(n=s),l<r&&(r=l),l>i&&(i=l)}),{x:[t,n],y:[r,i]}}function Wd(e){if(!(0,Md.default)(e))throw new Error("Sigma: invalid graph instance.");e.forEachNode(function(t,n){if(!Number.isFinite(n.x)||!Number.isFinite(n.y))throw new Error("Sigma: Coordinates of node ".concat(t," are invalid. A node must have a numeric 'x' and 'y' attribute."))})}function Hd(e,t,n){var r=document.createElement(e);if(t)for(var i in t)r.style[i]=t[i];if(n)for(var o in n)r.setAttribute(o,n[o]);return r}function Qa(){return typeof window.devicePixelRatio<"u"?window.devicePixelRatio:1}function Ja(e,t,n){return n.sort(function(r,i){var o=t(r)||0,a=t(i)||0;return o<a?-1:o>a?1:0})}function es(e){var t=Ut(e.x,2),n=t[0],r=t[1],i=Ut(e.y,2),o=i[0],a=i[1],s=Math.max(r-n,a-o),l=(r+n)/2,c=(a+o)/2;(s===0||Math.abs(s)===1/0||isNaN(s))&&(s=1),isNaN(l)&&(l=0),isNaN(c)&&(c=0);var u=function(d){return{x:.5+(d.x-l)/s,y:.5+(d.y-c)/s}};return u.applyTo=function(h){h.x=.5+(h.x-l)/s,h.y=.5+(h.y-c)/s},u.inverse=function(h){return{x:l+s*(h.x-.5),y:c+s*(h.y-.5)}},u.ratio=s,u}function Bi(e){"@babel/helpers - typeof";return Bi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bi(e)}function ts(e,t){var n=t.size;if(n!==0){var r=e.length;e.length+=n;var i=0;t.forEach(function(o){e[r+i]=o,i++})}}function Ki(e){e=e||{};for(var t=0,n=arguments.length<=1?0:arguments.length-1;t<n;t++){var r=t+1<1||arguments.length<=t+1?void 0:arguments[t+1];r&&Object.assign(e,r)}return e}var Vi={hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderLabels:!0,renderEdgeLabels:!1,enableEdgeEvents:!1,defaultNodeColor:"#999",defaultNodeType:"circle",defaultEdgeColor:"#ccc",defaultEdgeType:"line",labelFont:"Arial",labelSize:14,labelWeight:"normal",labelColor:{color:"#000"},edgeLabelFont:"Arial",edgeLabelSize:14,edgeLabelWeight:"normal",edgeLabelColor:{attribute:"color"},stagePadding:30,defaultDrawEdgeLabel:ud,defaultDrawNodeLabel:Ya,defaultDrawNodeHover:dd,minEdgeThickness:1.7,antiAliasingFeather:1,dragTimeout:100,draggedEventsTolerance:3,inertiaDuration:200,inertiaRatio:3,zoomDuration:250,zoomingRatio:1.7,doubleClickTimeout:300,doubleClickZoomingRatio:2.2,doubleClickZoomingDuration:200,tapMoveTolerance:10,zoomToSizeRatioFunction:Math.sqrt,itemSizesReference:"screen",autoRescale:!0,autoCenter:!0,labelDensity:1,labelGridCellSize:100,labelRenderedSizeThreshold:6,nodeReducer:null,edgeReducer:null,zIndex:!1,minCameraRatio:null,maxCameraRatio:null,enableCameraZooming:!0,enableCameraPanning:!0,enableCameraRotation:!0,cameraPanBoundaries:null,allowInvalidContainer:!1,nodeProgramClasses:{},nodeHoverProgramClasses:{},edgeProgramClasses:{}},ew={circle:kr},tw={arrow:yd,line:xd};function ji(e){if(typeof e.labelDensity!="number"||e.labelDensity<0)throw new Error("Settings: invalid `labelDensity`. Expecting a positive number.");var t=e.minCameraRatio,n=e.maxCameraRatio;if(typeof t=="number"&&typeof n=="number"&&n<t)throw new Error("Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.")}function Ud(e){var t=Ki({},Vi,e);return t.nodeProgramClasses=Ki({},ew,t.nodeProgramClasses),t.edgeProgramClasses=Ki({},tw,t.edgeProgramClasses),t}var gE=ir(zi()),mE=ir(Za()),qi=1.5,Bd=(function(e){function t(){var n;return xe(this,t),n=ze(this,t),R(n,"x",.5),R(n,"y",.5),R(n,"angle",0),R(n,"ratio",1),R(n,"minRatio",null),R(n,"maxRatio",null),R(n,"enabledZooming",!0),R(n,"enabledPanning",!0),R(n,"enabledRotation",!0),R(n,"clean",null),R(n,"nextFrame",null),R(n,"previousState",null),R(n,"enabled",!0),n.previousState=n.getState(),n}return We(t,e),ke(t,[{key:"enable",value:function(){return this.enabled=!0,this}},{key:"disable",value:function(){return this.enabled=!1,this}},{key:"getState",value:function(){return{x:this.x,y:this.y,angle:this.angle,ratio:this.ratio}}},{key:"hasState",value:function(r){return this.x===r.x&&this.y===r.y&&this.ratio===r.ratio&&this.angle===r.angle}},{key:"getPreviousState",value:function(){var r=this.previousState;return r?{x:r.x,y:r.y,angle:r.angle,ratio:r.ratio}:null}},{key:"getBoundedRatio",value:function(r){var i=r;return typeof this.minRatio=="number"&&(i=Math.max(i,this.minRatio)),typeof this.maxRatio=="number"&&(i=Math.min(i,this.maxRatio)),i}},{key:"validateState",value:function(r){var i={};return this.enabledPanning&&typeof r.x=="number"&&(i.x=r.x),this.enabledPanning&&typeof r.y=="number"&&(i.y=r.y),this.enabledZooming&&typeof r.ratio=="number"&&(i.ratio=this.getBoundedRatio(r.ratio)),this.enabledRotation&&typeof r.angle=="number"&&(i.angle=r.angle),this.clean?this.clean(z(z({},this.getState()),i)):i}},{key:"isAnimated",value:function(){return!!this.nextFrame}},{key:"setState",value:function(r){if(!this.enabled)return this;this.previousState=this.getState();var i=this.validateState(r);return typeof i.x=="number"&&(this.x=i.x),typeof i.y=="number"&&(this.y=i.y),typeof i.ratio=="number"&&(this.ratio=i.ratio),typeof i.angle=="number"&&(this.angle=i.angle),this.hasState(this.previousState)||this.emit("updated",this.getState()),this}},{key:"updateState",value:function(r){return this.setState(r(this.getState())),this}},{key:"animate",value:function(r){var i=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;if(!a)return new Promise(function(p){return i.animate(r,o,p)});if(this.enabled){var s=z(z({},Fd),o),l=this.validateState(r),c=typeof s.easing=="function"?s.easing:Od[s.easing],u=Date.now(),h=this.getState(),d=function(){var m=(Date.now()-u)/s.duration;if(m>=1){i.nextFrame=null,i.setState(l),i.animationCallback&&(i.animationCallback.call(null),i.animationCallback=void 0);return}var w=c(m),v={};typeof l.x=="number"&&(v.x=h.x+(l.x-h.x)*w),typeof l.y=="number"&&(v.y=h.y+(l.y-h.y)*w),i.enabledRotation&&typeof l.angle=="number"&&(v.angle=h.angle+(l.angle-h.angle)*w),typeof l.ratio=="number"&&(v.ratio=h.ratio+(l.ratio-h.ratio)*w),i.setState(v),i.nextFrame=requestAnimationFrame(d)};this.nextFrame?(cancelAnimationFrame(this.nextFrame),this.animationCallback&&this.animationCallback.call(null),this.nextFrame=requestAnimationFrame(d)):d(),this.animationCallback=a}}},{key:"animatedZoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio/r}):this.animate({ratio:this.ratio/(r.factor||qi)},r):this.animate({ratio:this.ratio/qi})}},{key:"animatedUnzoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio*r}):this.animate({ratio:this.ratio*(r.factor||qi)},r):this.animate({ratio:this.ratio*qi})}},{key:"animatedReset",value:function(r){return this.animate({x:.5,y:.5,ratio:1,angle:0},r)}},{key:"copy",value:function(){return t.from(this.getState())}}],[{key:"from",value:function(r){var i=new t;return i.setState(r)}}])})(Wi);function dt(e,t){var n=t.getBoundingClientRect();return{x:e.clientX-n.left,y:e.clientY-n.top}}function Lt(e,t){var n=z(z({},dt(e,t)),{},{sigmaDefaultPrevented:!1,preventSigmaDefault:function(){n.sigmaDefaultPrevented=!0},original:e});return n}function _r(e){var t="x"in e?e:z(z({},e.touches[0]||e.previousTouches[0]),{},{original:e.original,sigmaDefaultPrevented:e.sigmaDefaultPrevented,preventSigmaDefault:function(){e.sigmaDefaultPrevented=!0,t.sigmaDefaultPrevented=!0}});return t}function nw(e,t){return z(z({},Lt(e,t)),{},{delta:Xd(e)})}var rw=2;function Yi(e){for(var t=[],n=0,r=Math.min(e.length,rw);n<r;n++)t.push(e[n]);return t}function Er(e,t,n){var r={touches:Yi(e.touches).map(function(i){return dt(i,n)}),previousTouches:t.map(function(i){return dt(i,n)}),sigmaDefaultPrevented:!1,preventSigmaDefault:function(){r.sigmaDefaultPrevented=!0},original:e};return r}function Xd(e){if(typeof e.deltaY<"u")return e.deltaY*-3/360;if(typeof e.detail<"u")return e.detail/-9;throw new Error("Captor: could not extract delta from event.")}var Zd=(function(e){function t(n,r){var i;return xe(this,t),i=ze(this,t),i.container=n,i.renderer=r,i}return We(t,e),ke(t)})(Wi),iw=["doubleClickTimeout","doubleClickZoomingDuration","doubleClickZoomingRatio","dragTimeout","draggedEventsTolerance","inertiaDuration","inertiaRatio","zoomDuration","zoomingRatio"],ow=iw.reduce(function(e,t){return z(z({},e),{},R({},t,Vi[t]))},{}),aw=(function(e){function t(n,r){var i;return xe(this,t),i=ze(this,t,[n,r]),R(i,"enabled",!0),R(i,"draggedEvents",0),R(i,"downStartTime",null),R(i,"lastMouseX",null),R(i,"lastMouseY",null),R(i,"isMouseDown",!1),R(i,"isMoving",!1),R(i,"movingTimeout",null),R(i,"startCameraState",null),R(i,"clicks",0),R(i,"doubleClickTimeout",null),R(i,"currentWheelDirection",0),R(i,"settings",ow),i.handleClick=i.handleClick.bind(i),i.handleRightClick=i.handleRightClick.bind(i),i.handleDown=i.handleDown.bind(i),i.handleUp=i.handleUp.bind(i),i.handleMove=i.handleMove.bind(i),i.handleWheel=i.handleWheel.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleEnter=i.handleEnter.bind(i),n.addEventListener("click",i.handleClick,{capture:!1}),n.addEventListener("contextmenu",i.handleRightClick,{capture:!1}),n.addEventListener("mousedown",i.handleDown,{capture:!1}),n.addEventListener("wheel",i.handleWheel,{capture:!1}),n.addEventListener("mouseleave",i.handleLeave,{capture:!1}),n.addEventListener("mouseenter",i.handleEnter,{capture:!1}),document.addEventListener("mousemove",i.handleMove,{capture:!1}),document.addEventListener("mouseup",i.handleUp,{capture:!1}),i}return We(t,e),ke(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("click",this.handleClick),r.removeEventListener("contextmenu",this.handleRightClick),r.removeEventListener("mousedown",this.handleDown),r.removeEventListener("wheel",this.handleWheel),r.removeEventListener("mouseleave",this.handleLeave),r.removeEventListener("mouseenter",this.handleEnter),document.removeEventListener("mousemove",this.handleMove),document.removeEventListener("mouseup",this.handleUp)}},{key:"handleClick",value:function(r){var i=this;if(this.enabled){if(this.clicks++,this.clicks===2)return this.clicks=0,typeof this.doubleClickTimeout=="number"&&(clearTimeout(this.doubleClickTimeout),this.doubleClickTimeout=null),this.handleDoubleClick(r);setTimeout(function(){i.clicks=0,i.doubleClickTimeout=null},this.settings.doubleClickTimeout),this.draggedEvents<this.settings.draggedEventsTolerance&&this.emit("click",Lt(r,this.container))}}},{key:"handleRightClick",value:function(r){this.enabled&&this.emit("rightClick",Lt(r,this.container))}},{key:"handleDoubleClick",value:function(r){if(this.enabled){r.preventDefault(),r.stopPropagation();var i=Lt(r,this.container);if(this.emit("doubleClick",i),!i.sigmaDefaultPrevented){var o=this.renderer.getCamera(),a=o.getBoundedRatio(o.getState().ratio/this.settings.doubleClickZoomingRatio);o.animate(this.renderer.getViewportZoomedState(dt(r,this.container),a),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}}},{key:"handleDown",value:function(r){if(this.enabled){if(r.button===0){this.startCameraState=this.renderer.getCamera().getState();var i=dt(r,this.container),o=i.x,a=i.y;this.lastMouseX=o,this.lastMouseY=a,this.draggedEvents=0,this.downStartTime=Date.now(),this.isMouseDown=!0}this.emit("mousedown",Lt(r,this.container))}}},{key:"handleUp",value:function(r){var i=this;if(!(!this.enabled||!this.isMouseDown)){var o=this.renderer.getCamera();this.isMouseDown=!1,typeof this.movingTimeout=="number"&&(clearTimeout(this.movingTimeout),this.movingTimeout=null);var a=dt(r,this.container),s=a.x,l=a.y,c=o.getState(),u=o.getPreviousState()||{x:0,y:0};this.isMoving?o.animate({x:c.x+this.settings.inertiaRatio*(c.x-u.x),y:c.y+this.settings.inertiaRatio*(c.y-u.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"}):(this.lastMouseX!==s||this.lastMouseY!==l)&&o.setState({x:c.x,y:c.y}),this.isMoving=!1,setTimeout(function(){var h=i.draggedEvents>0;i.draggedEvents=0,h&&i.renderer.getSetting("hideEdgesOnMove")&&i.renderer.refresh()},0),this.emit("mouseup",Lt(r,this.container))}}},{key:"handleMove",value:function(r){var i=this;if(this.enabled){var o=Lt(r,this.container);if(this.emit("mousemovebody",o),(r.target===this.container||r.composedPath()[0]===this.container)&&this.emit("mousemove",o),!o.sigmaDefaultPrevented&&this.isMouseDown){this.isMoving=!0,this.draggedEvents++,typeof this.movingTimeout=="number"&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.movingTimeout=null,i.isMoving=!1},this.settings.dragTimeout);var a=this.renderer.getCamera(),s=dt(r,this.container),l=s.x,c=s.y,u=this.renderer.viewportToFramedGraph({x:this.lastMouseX,y:this.lastMouseY}),h=this.renderer.viewportToFramedGraph({x:l,y:c}),d=u.x-h.x,p=u.y-h.y,m=a.getState(),w=m.x+d,v=m.y+p;a.setState({x:w,y:v}),this.lastMouseX=l,this.lastMouseY=c,r.preventDefault(),r.stopPropagation()}}}},{key:"handleLeave",value:function(r){this.emit("mouseleave",Lt(r,this.container))}},{key:"handleEnter",value:function(r){this.emit("mouseenter",Lt(r,this.container))}},{key:"handleWheel",value:function(r){var i=this,o=this.renderer.getCamera();if(!(!this.enabled||!o.enabledZooming)){var a=Xd(r);if(a){var s=nw(r,this.container);if(this.emit("wheel",s),s.sigmaDefaultPrevented){r.preventDefault(),r.stopPropagation();return}var l=o.getState().ratio,c=a>0?1/this.settings.zoomingRatio:this.settings.zoomingRatio,u=o.getBoundedRatio(l*c),h=a>0?1:-1,d=Date.now();l!==u&&(r.preventDefault(),r.stopPropagation(),!(this.currentWheelDirection===h&&this.lastWheelTriggerTime&&d-this.lastWheelTriggerTime<this.settings.zoomDuration/5)&&(o.animate(this.renderer.getViewportZoomedState(dt(r,this.container),u),{easing:"quadraticOut",duration:this.settings.zoomDuration},function(){i.currentWheelDirection=0}),this.currentWheelDirection=h,this.lastWheelTriggerTime=d))}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(Zd),sw=["dragTimeout","inertiaDuration","inertiaRatio","doubleClickTimeout","doubleClickZoomingRatio","doubleClickZoomingDuration","tapMoveTolerance"],lw=sw.reduce(function(e,t){return z(z({},e),{},R({},t,Vi[t]))},{}),cw=(function(e){function t(n,r){var i;return xe(this,t),i=ze(this,t,[n,r]),R(i,"enabled",!0),R(i,"isMoving",!1),R(i,"hasMoved",!1),R(i,"touchMode",0),R(i,"startTouchesPositions",[]),R(i,"lastTouches",[]),R(i,"lastTap",null),R(i,"settings",lw),i.handleStart=i.handleStart.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleMove=i.handleMove.bind(i),n.addEventListener("touchstart",i.handleStart,{capture:!1}),n.addEventListener("touchcancel",i.handleLeave,{capture:!1}),document.addEventListener("touchend",i.handleLeave,{capture:!1,passive:!1}),document.addEventListener("touchmove",i.handleMove,{capture:!1,passive:!1}),i}return We(t,e),ke(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("touchstart",this.handleStart),r.removeEventListener("touchcancel",this.handleLeave),document.removeEventListener("touchend",this.handleLeave),document.removeEventListener("touchmove",this.handleMove)}},{key:"getDimensions",value:function(){return{width:this.container.offsetWidth,height:this.container.offsetHeight}}},{key:"handleStart",value:function(r){var i=this;if(this.enabled){r.preventDefault();var o=Yi(r.touches);if(this.touchMode=o.length,this.startCameraState=this.renderer.getCamera().getState(),this.startTouchesPositions=o.map(function(p){return dt(p,i.container)}),this.touchMode===2){var a=Ut(this.startTouchesPositions,2),s=a[0],l=s.x,c=s.y,u=a[1],h=u.x,d=u.y;this.startTouchesAngle=Math.atan2(d-c,h-l),this.startTouchesDistance=Math.sqrt(Math.pow(h-l,2)+Math.pow(d-c,2))}this.emit("touchdown",Er(r,this.lastTouches,this.container)),this.lastTouches=o,this.lastTouchesPositions=this.startTouchesPositions}}},{key:"handleLeave",value:function(r){if(!(!this.enabled||!this.startTouchesPositions.length)){switch(r.cancelable&&r.preventDefault(),this.movingTimeout&&(this.isMoving=!1,clearTimeout(this.movingTimeout)),this.touchMode){case 2:if(r.touches.length===1){this.handleStart(r),r.preventDefault();break}case 1:if(this.isMoving){var i=this.renderer.getCamera(),o=i.getState(),a=i.getPreviousState()||{x:0,y:0};i.animate({x:o.x+this.settings.inertiaRatio*(o.x-a.x),y:o.y+this.settings.inertiaRatio*(o.y-a.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"})}this.hasMoved=!1,this.isMoving=!1,this.touchMode=0;break}if(this.emit("touchup",Er(r,this.lastTouches,this.container)),!r.touches.length){var s=dt(this.lastTouches[0],this.container),l=this.startTouchesPositions[0],c=Math.pow(s.x-l.x,2)+Math.pow(s.y-l.y,2);if(!r.touches.length&&c<Math.pow(this.settings.tapMoveTolerance,2))if(this.lastTap&&Date.now()-this.lastTap.time<this.settings.doubleClickTimeout){var u=Er(r,this.lastTouches,this.container);if(this.emit("doubletap",u),this.lastTap=null,!u.sigmaDefaultPrevented){var h=this.renderer.getCamera(),d=h.getBoundedRatio(h.getState().ratio/this.settings.doubleClickZoomingRatio);h.animate(this.renderer.getViewportZoomedState(s,d),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}else{var p=Er(r,this.lastTouches,this.container);this.emit("tap",p),this.lastTap={time:Date.now(),position:p.touches[0]||p.previousTouches[0]}}}this.lastTouches=Yi(r.touches),this.startTouchesPositions=[]}}},{key:"handleMove",value:function(r){var i=this;if(!(!this.enabled||!this.startTouchesPositions.length)){r.preventDefault();var o=Yi(r.touches),a=o.map(function(Xe){return dt(Xe,i.container)}),s=this.lastTouches;this.lastTouches=o,this.lastTouchesPositions=a;var l=Er(r,s,this.container);if(this.emit("touchmove",l),!l.sigmaDefaultPrevented&&(this.hasMoved||(this.hasMoved=a.some(function(Xe,Mt){var Te=i.startTouchesPositions[Mt];return Te&&(Xe.x!==Te.x||Xe.y!==Te.y)})),!!this.hasMoved)){this.isMoving=!0,this.movingTimeout&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.isMoving=!1},this.settings.dragTimeout);var c=this.renderer.getCamera(),u=this.startCameraState,h=this.renderer.getSetting("stagePadding");switch(this.touchMode){case 1:{var d=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0]),p=d.x,m=d.y,w=this.renderer.viewportToFramedGraph(a[0]),v=w.x,y=w.y;c.setState({x:u.x+p-v,y:u.y+m-y});break}case 2:{var b={x:.5,y:.5,angle:0,ratio:1},k=a[0],E=k.x,I=k.y,A=a[1],D=A.x,O=A.y,W=Math.atan2(O-I,D-E)-this.startTouchesAngle,T=Math.hypot(O-I,D-E)/this.startTouchesDistance,F=c.getBoundedRatio(u.ratio/T);b.ratio=F,b.angle=u.angle+W;var V=this.getDimensions(),j=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0],{cameraState:u}),Q=Math.min(V.width,V.height)-2*h,te=Q/V.width,rt=Q/V.height,Ie=F/Q,Ge=E-Q/2/te,He=I-Q/2/rt,Ye=[Ge*Math.cos(-b.angle)-He*Math.sin(-b.angle),He*Math.cos(-b.angle)+Ge*Math.sin(-b.angle)];Ge=Ye[0],He=Ye[1],b.x=j.x-Ge*Ie,b.y=j.y+He*Ie,c.setState(b);break}}}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(Zd);function uw(e){if(Array.isArray(e))return Mi(e)}function dw(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function hw(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
332
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Kd(e){return uw(e)||dw(e)||Wa(e)||hw()}function pw(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ns(e,t){if(e==null)return{};var n,r,i=pw(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var Vd=(function(){function e(t,n){xe(this,e),this.key=t,this.size=n}return ke(e,null,[{key:"compare",value:function(n,r){return n.size>r.size?-1:n.size<r.size||n.key>r.key?1:-1}}])})(),jd=(function(){function e(){xe(this,e),R(this,"width",0),R(this,"height",0),R(this,"cellSize",0),R(this,"columns",0),R(this,"rows",0),R(this,"cells",{})}return ke(e,[{key:"resizeAndClear",value:function(n,r){this.width=n.width,this.height=n.height,this.cellSize=r,this.columns=Math.ceil(n.width/r),this.rows=Math.ceil(n.height/r),this.cells={}}},{key:"getIndex",value:function(n){var r=Math.floor(n.x/this.cellSize),i=Math.floor(n.y/this.cellSize);return i*this.columns+r}},{key:"add",value:function(n,r,i){var o=new Vd(n,r),a=this.getIndex(i),s=this.cells[a];s||(s=[],this.cells[a]=s),s.push(o)}},{key:"organize",value:function(){for(var n in this.cells){var r=this.cells[n];r.sort(Vd.compare)}}},{key:"getLabelsToDisplay",value:function(n,r){var i=this.cellSize*this.cellSize,o=i/n/n,a=o*r/i,s=Math.ceil(a),l=[];for(var c in this.cells)for(var u=this.cells[c],h=0;h<Math.min(s,u.length);h++)l.push(u[h].key);return l}}])})();function fw(e){var t=e.graph,n=e.hoveredNode,r=e.highlightedNodes,i=e.displayedNodeLabels,o=[];return t.forEachEdge(function(a,s,l,c){(l===n||c===n||r.has(l)||r.has(c)||i.has(l)&&i.has(c))&&o.push(a)}),o}var qd=150,Yd=50,Nt=Object.prototype.hasOwnProperty;function gw(e,t,n){if(!Nt.call(n,"x")||!Nt.call(n,"y"))throw new Error('Sigma: could not find a valid position (x, y) for node "'.concat(t,'". All your nodes must have a number "x" and "y". Maybe your forgot to apply a layout or your "nodeReducer" is not returning the correct data?'));return n.color||(n.color=e.defaultNodeColor),!n.label&&n.label!==""&&(n.label=null),n.label!==void 0&&n.label!==null?n.label=""+n.label:n.label=null,n.size||(n.size=2),Nt.call(n,"hidden")||(n.hidden=!1),Nt.call(n,"highlighted")||(n.highlighted=!1),Nt.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultNodeType),n.zIndex||(n.zIndex=0),n}function mw(e,t,n){return n.color||(n.color=e.defaultEdgeColor),n.label||(n.label=""),n.size||(n.size=.5),Nt.call(n,"hidden")||(n.hidden=!1),Nt.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultEdgeType),n.zIndex||(n.zIndex=0),n}var vw=(function(e){function t(n,r){var i,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(xe(this,t),i=ze(this,t),R(i,"elements",{}),R(i,"canvasContexts",{}),R(i,"webGLContexts",{}),R(i,"pickingLayers",new Set),R(i,"textures",{}),R(i,"frameBuffers",{}),R(i,"activeListeners",{}),R(i,"labelGrid",new jd),R(i,"nodeDataCache",{}),R(i,"edgeDataCache",{}),R(i,"nodeProgramIndex",{}),R(i,"edgeProgramIndex",{}),R(i,"nodesWithForcedLabels",new Set),R(i,"edgesWithForcedLabels",new Set),R(i,"nodeExtent",{x:[0,1],y:[0,1]}),R(i,"nodeZExtent",[1/0,-1/0]),R(i,"edgeZExtent",[1/0,-1/0]),R(i,"matrix",ot()),R(i,"invMatrix",ot()),R(i,"correctionRatio",1),R(i,"customBBox",null),R(i,"normalizationFunction",es({x:[0,1],y:[0,1]})),R(i,"graphToViewportRatio",1),R(i,"itemIDsIndex",{}),R(i,"nodeIndices",{}),R(i,"edgeIndices",{}),R(i,"width",0),R(i,"height",0),R(i,"pixelRatio",Qa()),R(i,"pickingDownSizingRatio",2*i.pixelRatio),R(i,"displayedNodeLabels",new Set),R(i,"displayedEdgeLabels",new Set),R(i,"highlightedNodes",new Set),R(i,"hoveredNode",null),R(i,"hoveredEdge",null),R(i,"renderFrame",null),R(i,"renderHighlightedNodesFrame",null),R(i,"needToProcess",!1),R(i,"checkEdgesEventsFrame",null),R(i,"nodePrograms",{}),R(i,"nodeHoverPrograms",{}),R(i,"edgePrograms",{}),i.settings=Ud(o),ji(i.settings),Wd(n),!(r instanceof HTMLElement))throw new Error("Sigma: container should be an html element.");i.graph=n,i.container=r,i.createWebGLContext("edges",{picking:o.enableEdgeEvents}),i.createCanvasContext("edgeLabels"),i.createWebGLContext("nodes",{picking:!0}),i.createCanvasContext("labels"),i.createCanvasContext("hovers"),i.createWebGLContext("hoverNodes"),i.createCanvasContext("mouse",{style:{touchAction:"none",userSelect:"none"}}),i.resize();for(var a in i.settings.nodeProgramClasses)i.registerNodeProgram(a,i.settings.nodeProgramClasses[a],i.settings.nodeHoverProgramClasses[a]);for(var s in i.settings.edgeProgramClasses)i.registerEdgeProgram(s,i.settings.edgeProgramClasses[s]);return i.camera=new Bd,i.bindCameraHandlers(),i.mouseCaptor=new aw(i.elements.mouse,i),i.mouseCaptor.setSettings(i.settings),i.touchCaptor=new cw(i.elements.mouse,i),i.touchCaptor.setSettings(i.settings),i.bindEventHandlers(),i.bindGraphHandlers(),i.handleSettingsUpdate(),i.refresh(),i}return We(t,e),ke(t,[{key:"registerNodeProgram",value:function(r,i,o){return this.nodePrograms[r]&&this.nodePrograms[r].kill(),this.nodeHoverPrograms[r]&&this.nodeHoverPrograms[r].kill(),this.nodePrograms[r]=new i(this.webGLContexts.nodes,this.frameBuffers.nodes,this),this.nodeHoverPrograms[r]=new(o||i)(this.webGLContexts.hoverNodes,null,this),this}},{key:"registerEdgeProgram",value:function(r,i){return this.edgePrograms[r]&&this.edgePrograms[r].kill(),this.edgePrograms[r]=new i(this.webGLContexts.edges,this.frameBuffers.edges,this),this}},{key:"unregisterNodeProgram",value:function(r){if(this.nodePrograms[r]){var i=this.nodePrograms,o=i[r],a=ns(i,[r].map(hn));o.kill(),this.nodePrograms=a}if(this.nodeHoverPrograms[r]){var s=this.nodeHoverPrograms,l=s[r],c=ns(s,[r].map(hn));l.kill(),this.nodePrograms=c}return this}},{key:"unregisterEdgeProgram",value:function(r){if(this.edgePrograms[r]){var i=this.edgePrograms,o=i[r],a=ns(i,[r].map(hn));o.kill(),this.edgePrograms=a}return this}},{key:"resetWebGLTexture",value:function(r){var i=this.webGLContexts[r],o=this.frameBuffers[r],a=this.textures[r];a&&i.deleteTexture(a);var s=i.createTexture();return i.bindFramebuffer(i.FRAMEBUFFER,o),i.bindTexture(i.TEXTURE_2D,s),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,s,0),this.textures[r]=s,this}},{key:"bindCameraHandlers",value:function(){var r=this;return this.activeListeners.camera=function(){r.scheduleRender()},this.camera.on("updated",this.activeListeners.camera),this}},{key:"unbindCameraHandlers",value:function(){return this.camera.removeListener("updated",this.activeListeners.camera),this}},{key:"getNodeAtPosition",value:function(r){var i=r.x,o=r.y,a=Ba(this.webGLContexts.nodes,this.frameBuffers.nodes,i,o,this.pixelRatio,this.pickingDownSizingRatio),s=Ua.apply(void 0,Kd(a)),l=this.itemIDsIndex[s];return l&&l.type==="node"?l.id:null}},{key:"bindEventHandlers",value:function(){var r=this;this.activeListeners.handleResize=function(){r.scheduleRefresh()},window.addEventListener("resize",this.activeListeners.handleResize),this.activeListeners.handleMove=function(o){var a=_r(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}},l=r.getNodeAtPosition(a);if(l&&r.hoveredNode!==l&&!r.nodeDataCache[l].hidden){r.hoveredNode&&r.emit("leaveNode",z(z({},s),{},{node:r.hoveredNode})),r.hoveredNode=l,r.emit("enterNode",z(z({},s),{},{node:l})),r.scheduleHighlightedNodesRender();return}if(r.hoveredNode&&r.getNodeAtPosition(a)!==r.hoveredNode){var c=r.hoveredNode;r.hoveredNode=null,r.emit("leaveNode",z(z({},s),{},{node:c})),r.scheduleHighlightedNodesRender();return}if(r.settings.enableEdgeEvents){var u=r.hoveredNode?null:r.getEdgeAtPoint(s.event.x,s.event.y);u!==r.hoveredEdge&&(r.hoveredEdge&&r.emit("leaveEdge",z(z({},s),{},{edge:r.hoveredEdge})),u&&r.emit("enterEdge",z(z({},s),{},{edge:u})),r.hoveredEdge=u)}},this.activeListeners.handleMoveBody=function(o){var a=_r(o);r.emit("moveBody",{event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}})},this.activeListeners.handleLeave=function(o){var a=_r(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}};r.hoveredNode&&(r.emit("leaveNode",z(z({},s),{},{node:r.hoveredNode})),r.scheduleHighlightedNodesRender()),r.settings.enableEdgeEvents&&r.hoveredEdge&&(r.emit("leaveEdge",z(z({},s),{},{edge:r.hoveredEdge})),r.scheduleHighlightedNodesRender()),r.emit("leaveStage",z({},s))},this.activeListeners.handleEnter=function(o){var a=_r(o),s={event:a,preventSigmaDefault:function(){a.preventSigmaDefault()}};r.emit("enterStage",z({},s))};var i=function(a){return function(s){var l=_r(s),c={event:l,preventSigmaDefault:function(){l.preventSigmaDefault()}},u=r.getNodeAtPosition(l);if(u)return r.emit("".concat(a,"Node"),z(z({},c),{},{node:u}));if(r.settings.enableEdgeEvents){var h=r.getEdgeAtPoint(l.x,l.y);if(h)return r.emit("".concat(a,"Edge"),z(z({},c),{},{edge:h}))}return r.emit("".concat(a,"Stage"),c)}};return this.activeListeners.handleClick=i("click"),this.activeListeners.handleRightClick=i("rightClick"),this.activeListeners.handleDoubleClick=i("doubleClick"),this.activeListeners.handleWheel=i("wheel"),this.activeListeners.handleDown=i("down"),this.activeListeners.handleUp=i("up"),this.mouseCaptor.on("mousemove",this.activeListeners.handleMove),this.mouseCaptor.on("mousemovebody",this.activeListeners.handleMoveBody),this.mouseCaptor.on("click",this.activeListeners.handleClick),this.mouseCaptor.on("rightClick",this.activeListeners.handleRightClick),this.mouseCaptor.on("doubleClick",this.activeListeners.handleDoubleClick),this.mouseCaptor.on("wheel",this.activeListeners.handleWheel),this.mouseCaptor.on("mousedown",this.activeListeners.handleDown),this.mouseCaptor.on("mouseup",this.activeListeners.handleUp),this.mouseCaptor.on("mouseleave",this.activeListeners.handleLeave),this.mouseCaptor.on("mouseenter",this.activeListeners.handleEnter),this.touchCaptor.on("touchdown",this.activeListeners.handleDown),this.touchCaptor.on("touchdown",this.activeListeners.handleMove),this.touchCaptor.on("touchup",this.activeListeners.handleUp),this.touchCaptor.on("touchmove",this.activeListeners.handleMove),this.touchCaptor.on("tap",this.activeListeners.handleClick),this.touchCaptor.on("doubletap",this.activeListeners.handleDoubleClick),this.touchCaptor.on("touchmove",this.activeListeners.handleMoveBody),this}},{key:"bindGraphHandlers",value:function(){var r=this,i=this.graph,o=new Set(["x","y","zIndex","type"]);return this.activeListeners.eachNodeAttributesUpdatedGraphUpdate=function(a){var s,l=(s=a.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachNode(function(u){return r.updateNode(u)});var c=!l||l.some(function(u){return o.has(u)});r.refresh({partialGraph:{nodes:i.nodes()},skipIndexation:!c,schedule:!0})},this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate=function(a){var s,l=(s=a.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachEdge(function(u){return r.updateEdge(u)});var c=l&&["zIndex","type"].some(function(u){return l?.includes(u)});r.refresh({partialGraph:{edges:i.edges()},skipIndexation:!c,schedule:!0})},this.activeListeners.addNodeGraphUpdate=function(a){var s=a.key;r.addNode(s),r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.updateNodeGraphUpdate=function(a){var s=a.key;r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropNodeGraphUpdate=function(a){var s=a.key;r.removeNode(s),r.refresh({schedule:!0})},this.activeListeners.addEdgeGraphUpdate=function(a){var s=a.key;r.addEdge(s),r.refresh({partialGraph:{edges:[s]},schedule:!0})},this.activeListeners.updateEdgeGraphUpdate=function(a){var s=a.key;r.refresh({partialGraph:{edges:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropEdgeGraphUpdate=function(a){var s=a.key;r.removeEdge(s),r.refresh({schedule:!0})},this.activeListeners.clearEdgesGraphUpdate=function(){r.clearEdgeState(),r.clearEdgeIndices(),r.refresh({schedule:!0})},this.activeListeners.clearGraphUpdate=function(){r.clearEdgeState(),r.clearNodeState(),r.clearEdgeIndices(),r.clearNodeIndices(),r.refresh({schedule:!0})},i.on("nodeAdded",this.activeListeners.addNodeGraphUpdate),i.on("nodeDropped",this.activeListeners.dropNodeGraphUpdate),i.on("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),i.on("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),i.on("edgeAdded",this.activeListeners.addEdgeGraphUpdate),i.on("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),i.on("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),i.on("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),i.on("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),i.on("cleared",this.activeListeners.clearGraphUpdate),this}},{key:"unbindGraphHandlers",value:function(){var r=this.graph;r.removeListener("nodeAdded",this.activeListeners.addNodeGraphUpdate),r.removeListener("nodeDropped",this.activeListeners.dropNodeGraphUpdate),r.removeListener("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),r.removeListener("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),r.removeListener("edgeAdded",this.activeListeners.addEdgeGraphUpdate),r.removeListener("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),r.removeListener("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),r.removeListener("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),r.removeListener("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),r.removeListener("cleared",this.activeListeners.clearGraphUpdate)}},{key:"getEdgeAtPoint",value:function(r,i){var o=Ba(this.webGLContexts.edges,this.frameBuffers.edges,r,i,this.pixelRatio,this.pickingDownSizingRatio),a=Ua.apply(void 0,Kd(o)),s=this.itemIDsIndex[a];return s&&s.type==="edge"?s.id:null}},{key:"process",value:function(){var r=this;this.emit("beforeProcess");var i=this.graph,o=this.settings,a=this.getDimensions();if(this.nodeExtent=zd(this.graph),!this.settings.autoRescale){var s=a.width,l=a.height,c=this.nodeExtent,u=c.x,h=c.y;this.nodeExtent={x:[(u[0]+u[1])/2-s/2,(u[0]+u[1])/2+s/2],y:[(h[0]+h[1])/2-l/2,(h[0]+h[1])/2+l/2]}}this.normalizationFunction=es(this.customBBox||this.nodeExtent);var d=new Bd,p=zn(d.getState(),a,this.getGraphDimensions(),this.getStagePadding());this.labelGrid.resizeAndClear(a,o.labelGridCellSize);for(var m={},w={},v={},y={},b=1,k=i.nodes(),E=0,I=k.length;E<I;E++){var A=k[E],D=this.nodeDataCache[A],O=i.getNodeAttributes(A);D.x=O.x,D.y=O.y,this.normalizationFunction.applyTo(D),typeof D.label=="string"&&!D.hidden&&this.labelGrid.add(A,D.size,this.framedGraphToViewport(D,{matrix:p})),m[D.type]=(m[D.type]||0)+1}this.labelGrid.organize();for(var W in this.nodePrograms){if(!Nt.call(this.nodePrograms,W))throw new Error('Sigma: could not find a suitable program for node type "'.concat(W,'"!'));this.nodePrograms[W].reallocate(m[W]||0),m[W]=0}this.settings.zIndex&&this.nodeZExtent[0]!==this.nodeZExtent[1]&&(k=Ja(this.nodeZExtent,function(Ze){return r.nodeDataCache[Ze].zIndex},k));for(var T=0,F=k.length;T<F;T++){var V=k[T];w[V]=b,y[w[V]]={type:"node",id:V},b++;var j=this.nodeDataCache[V];this.addNodeToProgram(V,w[V],m[j.type]++)}for(var Q={},te=i.edges(),rt=0,Ie=te.length;rt<Ie;rt++){var Ge=te[rt],He=this.edgeDataCache[Ge];Q[He.type]=(Q[He.type]||0)+1}this.settings.zIndex&&this.edgeZExtent[0]!==this.edgeZExtent[1]&&(te=Ja(this.edgeZExtent,function(Ze){return r.edgeDataCache[Ze].zIndex},te));for(var Ye in this.edgePrograms){if(!Nt.call(this.edgePrograms,Ye))throw new Error('Sigma: could not find a suitable program for edge type "'.concat(Ye,'"!'));this.edgePrograms[Ye].reallocate(Q[Ye]||0),Q[Ye]=0}for(var Xe=0,Mt=te.length;Xe<Mt;Xe++){var Te=te[Xe];v[Te]=b,y[v[Te]]={type:"edge",id:Te},b++;var X=this.edgeDataCache[Te];this.addEdgeToProgram(Te,v[Te],Q[X.type]++)}return this.itemIDsIndex=y,this.nodeIndices=w,this.edgeIndices=v,this.emit("afterProcess"),this}},{key:"handleSettingsUpdate",value:function(r){var i=this,o=this.settings;if(this.camera.minRatio=o.minCameraRatio,this.camera.maxRatio=o.maxCameraRatio,this.camera.enabledZooming=o.enableCameraZooming,this.camera.enabledPanning=o.enableCameraPanning,this.camera.enabledRotation=o.enableCameraRotation,o.cameraPanBoundaries?this.camera.clean=function(u){return i.cleanCameraState(u,o.cameraPanBoundaries&&Bi(o.cameraPanBoundaries)==="object"?o.cameraPanBoundaries:{})}:this.camera.clean=null,this.camera.setState(this.camera.validateState(this.camera.getState())),r){if(r.edgeProgramClasses!==o.edgeProgramClasses){for(var a in o.edgeProgramClasses)o.edgeProgramClasses[a]!==r.edgeProgramClasses[a]&&this.registerEdgeProgram(a,o.edgeProgramClasses[a]);for(var s in r.edgeProgramClasses)o.edgeProgramClasses[s]||this.unregisterEdgeProgram(s)}if(r.nodeProgramClasses!==o.nodeProgramClasses||r.nodeHoverProgramClasses!==o.nodeHoverProgramClasses){for(var l in o.nodeProgramClasses)(o.nodeProgramClasses[l]!==r.nodeProgramClasses[l]||o.nodeHoverProgramClasses[l]!==r.nodeHoverProgramClasses[l])&&this.registerNodeProgram(l,o.nodeProgramClasses[l],o.nodeHoverProgramClasses[l]);for(var c in r.nodeProgramClasses)o.nodeProgramClasses[c]||this.unregisterNodeProgram(c)}}return this.mouseCaptor.setSettings(this.settings),this.touchCaptor.setSettings(this.settings),this}},{key:"cleanCameraState",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i.tolerance,a=o===void 0?0:o,s=i.boundaries,l=z({},r),c=s||this.nodeExtent,u=Ut(c.x,2),h=u[0],d=u[1],p=Ut(c.y,2),m=p[0],w=p[1],v=[this.graphToViewport({x:h,y:m},{cameraState:r}),this.graphToViewport({x:d,y:m},{cameraState:r}),this.graphToViewport({x:h,y:w},{cameraState:r}),this.graphToViewport({x:d,y:w},{cameraState:r})],y=1/0,b=-1/0,k=1/0,E=-1/0;v.forEach(function(Q){var te=Q.x,rt=Q.y;y=Math.min(y,te),b=Math.max(b,te),k=Math.min(k,rt),E=Math.max(E,rt)});var I=b-y,A=E-k,D=this.getDimensions(),O=D.width,W=D.height,T=0,F=0;if(I>=O?b<O-a?T=b-(O-a):y>a&&(T=y-a):b>O+a?T=b-(O+a):y<-a&&(T=y+a),A>=W?E<W-a?F=E-(W-a):k>a&&(F=k-a):E>W+a?F=E-(W+a):k<-a&&(F=k+a),T||F){var V=this.viewportToFramedGraph({x:0,y:0},{cameraState:r}),j=this.viewportToFramedGraph({x:T,y:F},{cameraState:r});T=j.x-V.x,F=j.y-V.y,l.x+=T,l.y+=F}return l}},{key:"renderLabels",value:function(){if(!this.settings.renderLabels)return this;var r=this.camera.getState(),i=this.labelGrid.getLabelsToDisplay(r.ratio,this.settings.labelDensity);ts(i,this.nodesWithForcedLabels),this.displayedNodeLabels=new Set;for(var o=this.canvasContexts.labels,a=0,s=i.length;a<s;a++){var l=i[a],c=this.nodeDataCache[l];if(!this.displayedNodeLabels.has(l)&&!c.hidden){var u=this.framedGraphToViewport(c),h=u.x,d=u.y,p=this.scaleSize(c.size);if(!(!c.forceLabel&&p<this.settings.labelRenderedSizeThreshold)&&!(h<-qd||h>this.width+qd||d<-Yd||d>this.height+Yd)){this.displayedNodeLabels.add(l);var m=this.settings.defaultDrawNodeLabel,w=this.nodePrograms[c.type],v=w?.drawLabel||m;v(o,z(z({key:l},c),{},{size:p,x:h,y:d}),this.settings)}}}return this}},{key:"renderEdgeLabels",value:function(){if(!this.settings.renderEdgeLabels)return this;var r=this.canvasContexts.edgeLabels;r.clearRect(0,0,this.width,this.height);var i=fw({graph:this.graph,hoveredNode:this.hoveredNode,displayedNodeLabels:this.displayedNodeLabels,highlightedNodes:this.highlightedNodes});ts(i,this.edgesWithForcedLabels);for(var o=new Set,a=0,s=i.length;a<s;a++){var l=i[a],c=this.graph.extremities(l),u=this.nodeDataCache[c[0]],h=this.nodeDataCache[c[1]],d=this.edgeDataCache[l];if(!o.has(l)&&!(d.hidden||u.hidden||h.hidden)){var p=this.settings.defaultDrawEdgeLabel,m=this.edgePrograms[d.type],w=m?.drawLabel||p;w(r,z(z({key:l},d),{},{size:this.scaleSize(d.size)}),z(z(z({key:c[0]},u),this.framedGraphToViewport(u)),{},{size:this.scaleSize(u.size)}),z(z(z({key:c[1]},h),this.framedGraphToViewport(h)),{},{size:this.scaleSize(h.size)}),this.settings),o.add(l)}}return this.displayedEdgeLabels=o,this}},{key:"renderHighlightedNodes",value:function(){var r=this,i=this.canvasContexts.hovers;i.clearRect(0,0,this.width,this.height);var o=function(p){var m=r.nodeDataCache[p],w=r.framedGraphToViewport(m),v=w.x,y=w.y,b=r.scaleSize(m.size),k=r.settings.defaultDrawNodeHover,E=r.nodePrograms[m.type],I=E?.drawHover||k;I(i,z(z({key:p},m),{},{size:b,x:v,y}),r.settings)},a=[];this.hoveredNode&&!this.nodeDataCache[this.hoveredNode].hidden&&a.push(this.hoveredNode),this.highlightedNodes.forEach(function(d){d!==r.hoveredNode&&a.push(d)}),a.forEach(function(d){return o(d)});var s={};a.forEach(function(d){var p=r.nodeDataCache[d].type;s[p]=(s[p]||0)+1});for(var l in this.nodeHoverPrograms)this.nodeHoverPrograms[l].reallocate(s[l]||0),s[l]=0;a.forEach(function(d){var p=r.nodeDataCache[d];r.nodeHoverPrograms[p.type].process(0,s[p.type]++,p)}),this.webGLContexts.hoverNodes.clear(this.webGLContexts.hoverNodes.COLOR_BUFFER_BIT);var c=this.getRenderParams();for(var u in this.nodeHoverPrograms){var h=this.nodeHoverPrograms[u];h.render(c)}}},{key:"scheduleHighlightedNodesRender",value:function(){var r=this;this.renderHighlightedNodesFrame||this.renderFrame||(this.renderHighlightedNodesFrame=requestAnimationFrame(function(){r.renderHighlightedNodesFrame=null,r.renderHighlightedNodes(),r.renderEdgeLabels()}))}},{key:"render",value:function(){var r=this;this.emit("beforeRender");var i=function(){return r.emit("afterRender"),r};if(this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.resize(),this.needToProcess&&this.process(),this.needToProcess=!1,this.clear(),this.pickingLayers.forEach(function(v){return r.resetWebGLTexture(v)}),!this.graph.order)return i();var o=this.mouseCaptor,a=this.camera.isAnimated()||o.isMoving||o.draggedEvents||o.currentWheelDirection,s=this.camera.getState(),l=this.getDimensions(),c=this.getGraphDimensions(),u=this.getStagePadding();this.matrix=zn(s,l,c,u),this.invMatrix=zn(s,l,c,u,!0),this.correctionRatio=$d(this.matrix,s,l),this.graphToViewportRatio=this.getGraphToViewportRatio();var h=this.getRenderParams();for(var d in this.nodePrograms){var p=this.nodePrograms[d];p.render(h)}if(!this.settings.hideEdgesOnMove||!a)for(var m in this.edgePrograms){var w=this.edgePrograms[m];w.render(h)}return this.settings.hideLabelsOnMove&&a||(this.renderLabels(),this.renderEdgeLabels(),this.renderHighlightedNodes()),i()}},{key:"addNode",value:function(r){var i=Object.assign({},this.graph.getNodeAttributes(r));this.settings.nodeReducer&&(i=this.settings.nodeReducer(r,i));var o=gw(this.settings,r,i);this.nodeDataCache[r]=o,this.nodesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.nodesWithForcedLabels.add(r),this.highlightedNodes.delete(r),o.highlighted&&!o.hidden&&this.highlightedNodes.add(r),this.settings.zIndex&&(o.zIndex<this.nodeZExtent[0]&&(this.nodeZExtent[0]=o.zIndex),o.zIndex>this.nodeZExtent[1]&&(this.nodeZExtent[1]=o.zIndex))}},{key:"updateNode",value:function(r){this.addNode(r);var i=this.nodeDataCache[r];this.normalizationFunction.applyTo(i)}},{key:"removeNode",value:function(r){delete this.nodeDataCache[r],delete this.nodeProgramIndex[r],this.highlightedNodes.delete(r),this.hoveredNode===r&&(this.hoveredNode=null),this.nodesWithForcedLabels.delete(r)}},{key:"addEdge",value:function(r){var i=Object.assign({},this.graph.getEdgeAttributes(r));this.settings.edgeReducer&&(i=this.settings.edgeReducer(r,i));var o=mw(this.settings,r,i);this.edgeDataCache[r]=o,this.edgesWithForcedLabels.delete(r),o.forceLabel&&!o.hidden&&this.edgesWithForcedLabels.add(r),this.settings.zIndex&&(o.zIndex<this.edgeZExtent[0]&&(this.edgeZExtent[0]=o.zIndex),o.zIndex>this.edgeZExtent[1]&&(this.edgeZExtent[1]=o.zIndex))}},{key:"updateEdge",value:function(r){this.addEdge(r)}},{key:"removeEdge",value:function(r){delete this.edgeDataCache[r],delete this.edgeProgramIndex[r],this.hoveredEdge===r&&(this.hoveredEdge=null),this.edgesWithForcedLabels.delete(r)}},{key:"clearNodeIndices",value:function(){this.labelGrid=new jd,this.nodeExtent={x:[0,1],y:[0,1]},this.nodeDataCache={},this.edgeProgramIndex={},this.nodesWithForcedLabels=new Set,this.nodeZExtent=[1/0,-1/0],this.highlightedNodes=new Set}},{key:"clearEdgeIndices",value:function(){this.edgeDataCache={},this.edgeProgramIndex={},this.edgesWithForcedLabels=new Set,this.edgeZExtent=[1/0,-1/0]}},{key:"clearIndices",value:function(){this.clearEdgeIndices(),this.clearNodeIndices()}},{key:"clearNodeState",value:function(){this.displayedNodeLabels=new Set,this.highlightedNodes=new Set,this.hoveredNode=null}},{key:"clearEdgeState",value:function(){this.displayedEdgeLabels=new Set,this.highlightedNodes=new Set,this.hoveredEdge=null}},{key:"clearState",value:function(){this.clearEdgeState(),this.clearNodeState()}},{key:"addNodeToProgram",value:function(r,i,o){var a=this.nodeDataCache[r],s=this.nodePrograms[a.type];if(!s)throw new Error('Sigma: could not find a suitable program for node type "'.concat(a.type,'"!'));s.process(i,o,a),this.nodeProgramIndex[r]=o}},{key:"addEdgeToProgram",value:function(r,i,o){var a=this.edgeDataCache[r],s=this.edgePrograms[a.type];if(!s)throw new Error('Sigma: could not find a suitable program for edge type "'.concat(a.type,'"!'));var l=this.graph.extremities(r),c=this.nodeDataCache[l[0]],u=this.nodeDataCache[l[1]];s.process(i,o,c,u,a),this.edgeProgramIndex[r]=o}},{key:"getRenderParams",value:function(){return{matrix:this.matrix,invMatrix:this.invMatrix,width:this.width,height:this.height,pixelRatio:this.pixelRatio,zoomRatio:this.camera.ratio,cameraAngle:this.camera.angle,sizeRatio:1/this.scaleSize(),correctionRatio:this.correctionRatio,downSizingRatio:this.pickingDownSizingRatio,minEdgeThickness:this.settings.minEdgeThickness,antiAliasingFeather:this.settings.antiAliasingFeather}}},{key:"getStagePadding",value:function(){var r=this.settings,i=r.stagePadding,o=r.autoRescale;return o&&i||0}},{key:"createLayer",value:function(r,i){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.elements[r])throw new Error('Sigma: a layer named "'.concat(r,'" already exists'));var a=Hd(i,{position:"absolute"},{class:"sigma-".concat(r)});return o.style&&Object.assign(a.style,o.style),this.elements[r]=a,"beforeLayer"in o&&o.beforeLayer?this.elements[o.beforeLayer].before(a):"afterLayer"in o&&o.afterLayer?this.elements[o.afterLayer].after(a):this.container.appendChild(a),a}},{key:"createCanvas",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.createLayer(r,"canvas",i)}},{key:"createCanvasContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.createCanvas(r,i),a={preserveDrawingBuffer:!1,antialias:!1};return this.canvasContexts[r]=o.getContext("2d",a),this}},{key:"createWebGLContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=i?.canvas||this.createCanvas(r,i);i.hidden&&o.remove();var a=z({preserveDrawingBuffer:!1,antialias:!1},i),s;s=o.getContext("webgl2",a),s||(s=o.getContext("webgl",a)),s||(s=o.getContext("experimental-webgl",a));var l=s;if(this.webGLContexts[r]=l,l.blendFunc(l.ONE,l.ONE_MINUS_SRC_ALPHA),i.picking){this.pickingLayers.add(r);var c=l.createFramebuffer();if(!c)throw new Error("Sigma: cannot create a new frame buffer for layer ".concat(r));this.frameBuffers[r]=c}return l}},{key:"killLayer",value:function(r){var i=this.elements[r];if(!i)throw new Error("Sigma: cannot kill layer ".concat(r,", which does not exist"));if(this.webGLContexts[r]){var o,a=this.webGLContexts[r];(o=a.getExtension("WEBGL_lose_context"))===null||o===void 0||o.loseContext(),delete this.webGLContexts[r]}else this.canvasContexts[r]&&delete this.canvasContexts[r];return i.remove(),delete this.elements[r],this}},{key:"getCamera",value:function(){return this.camera}},{key:"setCamera",value:function(r){this.unbindCameraHandlers(),this.camera=r,this.bindCameraHandlers()}},{key:"getContainer",value:function(){return this.container}},{key:"getGraph",value:function(){return this.graph}},{key:"setGraph",value:function(r){r!==this.graph&&(this.hoveredNode&&!r.hasNode(this.hoveredNode)&&(this.hoveredNode=null),this.hoveredEdge&&!r.hasEdge(this.hoveredEdge)&&(this.hoveredEdge=null),this.unbindGraphHandlers(),this.checkEdgesEventsFrame!==null&&(cancelAnimationFrame(this.checkEdgesEventsFrame),this.checkEdgesEventsFrame=null),this.graph=r,this.bindGraphHandlers(),this.refresh())}},{key:"getMouseCaptor",value:function(){return this.mouseCaptor}},{key:"getTouchCaptor",value:function(){return this.touchCaptor}},{key:"getDimensions",value:function(){return{width:this.width,height:this.height}}},{key:"getGraphDimensions",value:function(){var r=this.customBBox||this.nodeExtent;return{width:r.x[1]-r.x[0]||1,height:r.y[1]-r.y[0]||1}}},{key:"getNodeDisplayData",value:function(r){var i=this.nodeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getEdgeDisplayData",value:function(r){var i=this.edgeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getNodeDisplayedLabels",value:function(){return new Set(this.displayedNodeLabels)}},{key:"getEdgeDisplayedLabels",value:function(){return new Set(this.displayedEdgeLabels)}},{key:"getSettings",value:function(){return z({},this.settings)}},{key:"getSetting",value:function(r){return this.settings[r]}},{key:"setSetting",value:function(r,i){var o=z({},this.settings);return this.settings[r]=i,ji(this.settings),this.handleSettingsUpdate(o),this.scheduleRefresh(),this}},{key:"updateSetting",value:function(r,i){return this.setSetting(r,i(this.settings[r])),this}},{key:"setSettings",value:function(r){var i=z({},this.settings);return this.settings=z(z({},this.settings),r),ji(this.settings),this.handleSettingsUpdate(i),this.scheduleRefresh(),this}},{key:"resize",value:function(r){var i=this.width,o=this.height;if(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,this.pixelRatio=Qa(),this.width===0)if(this.settings.allowInvalidContainer)this.width=1;else throw new Error("Sigma: Container has no width. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(this.height===0)if(this.settings.allowInvalidContainer)this.height=1;else throw new Error("Sigma: Container has no height. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(!r&&i===this.width&&o===this.height)return this;for(var a in this.elements){var s=this.elements[a];s.style.width=this.width+"px",s.style.height=this.height+"px"}for(var l in this.canvasContexts)this.elements[l].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[l].setAttribute("height",this.height*this.pixelRatio+"px"),this.pixelRatio!==1&&this.canvasContexts[l].scale(this.pixelRatio,this.pixelRatio);for(var c in this.webGLContexts){this.elements[c].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[c].setAttribute("height",this.height*this.pixelRatio+"px");var u=this.webGLContexts[c];if(u.viewport(0,0,this.width*this.pixelRatio,this.height*this.pixelRatio),this.pickingLayers.has(c)){var h=this.textures[c];h&&u.deleteTexture(h)}}return this.emit("resize"),this}},{key:"clear",value:function(){return this.emit("beforeClear"),this.webGLContexts.nodes.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.nodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.edges.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.edges.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.hoverNodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.canvasContexts.labels.clearRect(0,0,this.width,this.height),this.canvasContexts.hovers.clearRect(0,0,this.width,this.height),this.canvasContexts.edgeLabels.clearRect(0,0,this.width,this.height),this.emit("afterClear"),this}},{key:"refresh",value:function(r){var i=this,o=r?.skipIndexation!==void 0?r?.skipIndexation:!1,a=r?.schedule!==void 0?r.schedule:!1,s=!r||!r.partialGraph;if(s)this.clearEdgeIndices(),this.clearNodeIndices(),this.graph.forEachNode(function(E){return i.addNode(E)}),this.graph.forEachEdge(function(E){return i.addEdge(E)});else{for(var l,c,u=((l=r.partialGraph)===null||l===void 0?void 0:l.nodes)||[],h=0,d=u?.length||0;h<d;h++){var p=u[h];if(this.updateNode(p),o){var m=this.nodeProgramIndex[p];if(m===void 0)throw new Error('Sigma: node "'.concat(p,`" can't be repaint`));this.addNodeToProgram(p,this.nodeIndices[p],m)}}for(var w=(r==null||(c=r.partialGraph)===null||c===void 0?void 0:c.edges)||[],v=0,y=w.length;v<y;v++){var b=w[v];if(this.updateEdge(b),o){var k=this.edgeProgramIndex[b];if(k===void 0)throw new Error('Sigma: edge "'.concat(b,`" can't be repaint`));this.addEdgeToProgram(b,this.edgeIndices[b],k)}}}return(s||!o)&&(this.needToProcess=!0),a?this.scheduleRender():this.render(),this}},{key:"scheduleRender",value:function(){var r=this;return this.renderFrame||(this.renderFrame=requestAnimationFrame(function(){r.render()})),this}},{key:"scheduleRefresh",value:function(r){return this.refresh(z(z({},r),{},{schedule:!0}))}},{key:"getViewportZoomedState",value:function(r,i){var o=this.camera.getState(),a=o.ratio,s=o.angle,l=o.x,c=o.y,u=this.settings,h=u.minCameraRatio,d=u.maxCameraRatio;typeof d=="number"&&(i=Math.min(i,d)),typeof h=="number"&&(i=Math.max(i,h));var p=i/a,m={x:this.width/2,y:this.height/2},w=this.viewportToFramedGraph(r),v=this.viewportToFramedGraph(m);return{angle:s,x:(w.x-v.x)*(1-p)+l,y:(w.y-v.y)*(1-p)+c,ratio:i}}},{key:"viewRectangle",value:function(){var r=this.viewportToFramedGraph({x:0,y:0}),i=this.viewportToFramedGraph({x:this.width,y:0}),o=this.viewportToFramedGraph({x:0,y:this.height});return{x1:r.x,y1:r.y,x2:i.x,y2:i.y,height:i.y-o.y}}},{key:"framedGraphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!!i.graphDimensions,a=i.matrix?i.matrix:o?zn(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding()):this.matrix,s=Ui(a,r);return{x:(1+s.x)*this.width/2,y:(1-s.y)*this.height/2}}},{key:"viewportToFramedGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=!!i.cameraState||!!i.viewportDimensions||!i.graphDimensions,a=i.matrix?i.matrix:o?zn(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding(),!0):this.invMatrix,s=Ui(a,{x:r.x/this.width*2-1,y:1-r.y/this.height*2});return isNaN(s.x)&&(s.x=0),isNaN(s.y)&&(s.y=0),s}},{key:"viewportToGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.normalizationFunction.inverse(this.viewportToFramedGraph(r,i))}},{key:"graphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.framedGraphToViewport(this.normalizationFunction(r),i)}},{key:"getGraphToViewportRatio",value:function(){var r={x:0,y:0},i={x:1,y:1},o=Math.sqrt(Math.pow(r.x-i.x,2)+Math.pow(r.y-i.y,2)),a=this.graphToViewport(r),s=this.graphToViewport(i),l=Math.sqrt(Math.pow(a.x-s.x,2)+Math.pow(a.y-s.y,2));return l/o}},{key:"getBBox",value:function(){return this.nodeExtent}},{key:"getCustomBBox",value:function(){return this.customBBox}},{key:"setCustomBBox",value:function(r){return this.customBBox=r,this.scheduleRender(),this}},{key:"kill",value:function(){this.emit("kill"),this.removeAllListeners(),this.unbindCameraHandlers(),window.removeEventListener("resize",this.activeListeners.handleResize),this.mouseCaptor.kill(),this.touchCaptor.kill(),this.unbindGraphHandlers(),this.clearIndices(),this.clearState(),this.nodeDataCache={},this.edgeDataCache={},this.highlightedNodes.clear(),this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.renderHighlightedNodesFrame&&(cancelAnimationFrame(this.renderHighlightedNodesFrame),this.renderHighlightedNodesFrame=null);for(var r=this.container;r.firstChild;)r.removeChild(r.firstChild);for(var i in this.nodePrograms)this.nodePrograms[i].kill();for(var o in this.nodeHoverPrograms)this.nodeHoverPrograms[o].kill();for(var a in this.edgePrograms)this.edgePrograms[a].kill();this.nodePrograms={},this.nodeHoverPrograms={},this.edgePrograms={};for(var s in this.elements)this.killLayer(s);this.canvasContexts={},this.webGLContexts={},this.elements={}}},{key:"scaleSize",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.camera.ratio;return r/this.settings.zoomToSizeRatioFunction(i)*(this.getSetting("itemSizesReference")==="positions"?i*this.graphToViewportRatio:1)}},{key:"getCanvases",value:function(){var r={};for(var i in this.elements)this.elements[i]instanceof HTMLCanvasElement&&(r[i]=this.elements[i]);return r}}])})(Wi),Qd=vw;var nh=ir(zi(),1);function ww(){let e=arguments[0];for(let t=1,n=arguments.length;t<n;t++)if(arguments[t])for(let r in arguments[t])e[r]=arguments[t][r];return e}var _e=ww;typeof Object.assign=="function"&&(_e=Object.assign);function st(e,t,n,r){let i=e._nodes.get(t),o=null;return i&&(r==="mixed"?o=i.out&&i.out[n]||i.undirected&&i.undirected[n]:r==="directed"?o=i.out&&i.out[n]:o=i.undirected&&i.undirected[n]),o}function Ce(e){return typeof e=="object"&&e!==null}function rh(e){let t;for(t in e)return!1;return!0}function at(e,t,n){Object.defineProperty(e,t,{enumerable:!1,configurable:!1,writable:!0,value:n})}function ht(e,t,n){let r={enumerable:!0,configurable:!0};typeof n=="function"?r.get=n:(r.value=n,r.writable=!1),Object.defineProperty(e,t,r)}function Jd(e){return!(!Ce(e)||e.attributes&&!Array.isArray(e.attributes))}function yw(){let e=Math.floor(Math.random()*256)&255;return()=>e++}function Pt(){let e=arguments,t=null,n=-1;return{[Symbol.iterator](){return this},next(){let r=null;do{if(t===null){if(n++,n>=e.length)return{done:!0};t=e[n][Symbol.iterator]()}if(r=t.next(),r.done){t=null;continue}break}while(!0);return r}}}function Hn(){return{[Symbol.iterator](){return this},next(){return{done:!0}}}}var Rr=class extends Error{constructor(t){super(),this.name="GraphError",this.message=t}},M=class e extends Rr{constructor(t){super(t),this.name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}},P=class e extends Rr{constructor(t){super(t),this.name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}},B=class e extends Rr{constructor(t){super(t),this.name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}};function ih(e,t){this.key=e,this.attributes=t,this.clear()}ih.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}};function oh(e,t){this.key=e,this.attributes=t,this.clear()}oh.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}};function ah(e,t){this.key=e,this.attributes=t,this.clear()}ah.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}};function Un(e,t,n,r,i){this.key=t,this.attributes=i,this.undirected=e,this.source=n,this.target=r}Un.prototype.attach=function(){let e="out",t="in";this.undirected&&(e=t="undirected");let n=this.source.key,r=this.target.key;this.source[e][r]=this,!(this.undirected&&n===r)&&(this.target[t][n]=this)};Un.prototype.attachMulti=function(){let e="out",t="in",n=this.source.key,r=this.target.key;this.undirected&&(e=t="undirected");let i=this.source[e],o=i[r];if(typeof o>"u"){i[r]=this,this.undirected&&n===r||(this.target[t][n]=this);return}o.previous=this,this.next=o,i[r]=this,this.target[t][n]=this};Un.prototype.detach=function(){let e=this.source.key,t=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][t],delete this.target[r][e]};Un.prototype.detachMulti=function(){let e=this.source.key,t=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[n][t],delete this.target[r][e]):(this.next.previous=void 0,this.source[n][t]=this.next,this.target[r][e]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};var sh=0,lh=1,bw=2,ch=3;function Dt(e,t,n,r,i,o,a){let s,l,c,u;if(r=""+r,n===sh){if(s=e._nodes.get(r),!s)throw new P(`Graph.${t}: could not find the "${r}" node in the graph.`);c=i,u=o}else if(n===ch){if(i=""+i,l=e._edges.get(i),!l)throw new P(`Graph.${t}: could not find the "${i}" edge in the graph.`);let h=l.source.key,d=l.target.key;if(r===h)s=l.target;else if(r===d)s=l.source;else throw new P(`Graph.${t}: the "${r}" node is not attached to the "${i}" edge (${h}, ${d}).`);c=o,u=a}else{if(l=e._edges.get(r),!l)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`);n===lh?s=l.source:s=l.target,c=i,u=o}return[s,c,u]}function xw(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=Dt(this,t,n,r,i,o);return a.attributes[s]}}function kw(e,t,n){e.prototype[t]=function(r,i){let[o]=Dt(this,t,n,r,i);return o.attributes}}function _w(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=Dt(this,t,n,r,i,o);return a.attributes.hasOwnProperty(s)}}function Ew(e,t,n){e.prototype[t]=function(r,i,o,a){let[s,l,c]=Dt(this,t,n,r,i,o,a);return s.attributes[l]=c,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function Tw(e,t,n){e.prototype[t]=function(r,i,o,a){let[s,l,c]=Dt(this,t,n,r,i,o,a);if(typeof c!="function")throw new M(`Graph.${t}: updater should be a function.`);let u=s.attributes,h=c(u[l]);return u[l]=h,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function Sw(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=Dt(this,t,n,r,i,o);return delete a.attributes[s],this.emit("nodeAttributesUpdated",{key:a.key,type:"remove",attributes:a.attributes,name:s}),this}}function Rw(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=Dt(this,t,n,r,i,o);if(!Ce(s))throw new M(`Graph.${t}: provided attributes are not a plain object.`);return a.attributes=s,this.emit("nodeAttributesUpdated",{key:a.key,type:"replace",attributes:a.attributes}),this}}function Aw(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=Dt(this,t,n,r,i,o);if(!Ce(s))throw new M(`Graph.${t}: provided attributes are not a plain object.`);return _e(a.attributes,s),this.emit("nodeAttributesUpdated",{key:a.key,type:"merge",attributes:a.attributes,data:s}),this}}function Cw(e,t,n){e.prototype[t]=function(r,i,o){let[a,s]=Dt(this,t,n,r,i,o);if(typeof s!="function")throw new M(`Graph.${t}: provided updater is not a function.`);return a.attributes=s(a.attributes),this.emit("nodeAttributesUpdated",{key:a.key,type:"update",attributes:a.attributes}),this}}var Lw=[{name:e=>`get${e}Attribute`,attacher:xw},{name:e=>`get${e}Attributes`,attacher:kw},{name:e=>`has${e}Attribute`,attacher:_w},{name:e=>`set${e}Attribute`,attacher:Ew},{name:e=>`update${e}Attribute`,attacher:Tw},{name:e=>`remove${e}Attribute`,attacher:Sw},{name:e=>`replace${e}Attributes`,attacher:Rw},{name:e=>`merge${e}Attributes`,attacher:Aw},{name:e=>`update${e}Attributes`,attacher:Cw}];function Nw(e){Lw.forEach(function({name:t,attacher:n}){n(e,t("Node"),sh),n(e,t("Source"),lh),n(e,t("Target"),bw),n(e,t("Opposite"),ch)})}function Pw(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=st(this,a,s,n),!o)throw new P(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes[i]}}function Dw(e,t,n){e.prototype[t]=function(r){let i;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>1){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,a=""+arguments[1];if(i=st(this,o,a,n),!i)throw new P(`Graph.${t}: could not find an edge for the given path ("${o}" - "${a}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,i=this._edges.get(r),!i)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return i.attributes}}function Iw(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=st(this,a,s,n),!o)throw new P(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes.hasOwnProperty(i)}}function Gw(e,t,n){e.prototype[t]=function(r,i,o){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],o=arguments[3],a=st(this,s,l,n),!a)throw new P(`Graph.${t}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return a.attributes[i]=o,this.emit("edgeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:i}),this}}function Mw(e,t,n){e.prototype[t]=function(r,i,o){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],o=arguments[3],a=st(this,s,l,n),!a)throw new P(`Graph.${t}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof o!="function")throw new M(`Graph.${t}: updater should be a function.`);return a.attributes[i]=o(a.attributes[i]),this.emit("edgeAttributesUpdated",{key:a.key,type:"set",attributes:a.attributes,name:i}),this}}function Ow(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=st(this,a,s,n),!o)throw new P(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return delete o.attributes[i],this.emit("edgeAttributesUpdated",{key:o.key,type:"remove",attributes:o.attributes,name:i}),this}}function Fw(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=st(this,a,s,n),!o)throw new P(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Ce(i))throw new M(`Graph.${t}: provided attributes are not a plain object.`);return o.attributes=i,this.emit("edgeAttributesUpdated",{key:o.key,type:"replace",attributes:o.attributes}),this}}function $w(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=st(this,a,s,n),!o)throw new P(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Ce(i))throw new M(`Graph.${t}: provided attributes are not a plain object.`);return _e(o.attributes,i),this.emit("edgeAttributesUpdated",{key:o.key,type:"merge",attributes:o.attributes,data:i}),this}}function zw(e,t,n){e.prototype[t]=function(r,i){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new B(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new B(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,s=""+i;if(i=arguments[2],o=st(this,a,s,n),!o)throw new P(`Graph.${t}: could not find an edge for the given path ("${a}" - "${s}").`)}else{if(n!=="mixed")throw new B(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new P(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof i!="function")throw new M(`Graph.${t}: provided updater is not a function.`);return o.attributes=i(o.attributes),this.emit("edgeAttributesUpdated",{key:o.key,type:"update",attributes:o.attributes}),this}}var Ww=[{name:e=>`get${e}Attribute`,attacher:Pw},{name:e=>`get${e}Attributes`,attacher:Dw},{name:e=>`has${e}Attribute`,attacher:Iw},{name:e=>`set${e}Attribute`,attacher:Gw},{name:e=>`update${e}Attribute`,attacher:Mw},{name:e=>`remove${e}Attribute`,attacher:Ow},{name:e=>`replace${e}Attributes`,attacher:Fw},{name:e=>`merge${e}Attributes`,attacher:$w},{name:e=>`update${e}Attributes`,attacher:zw}];function Hw(e){Ww.forEach(function({name:t,attacher:n}){n(e,t("Edge"),"mixed"),n(e,t("DirectedEdge"),"directed"),n(e,t("UndirectedEdge"),"undirected")})}var Uw=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function Bw(e,t,n,r){let i=!1;for(let o in t){if(o===r)continue;let a=t[o];if(i=n(a.key,a.attributes,a.source.key,a.target.key,a.source.attributes,a.target.attributes,a.undirected),e&&i)return a.key}}function Kw(e,t,n,r){let i,o,a,s=!1;for(let l in t)if(l!==r){i=t[l];do{if(o=i.source,a=i.target,s=n(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected),e&&s)return i.key;i=i.next}while(i!==void 0)}}function rs(e,t){let n=Object.keys(e),r=n.length,i,o=0;return{[Symbol.iterator](){return this},next(){do if(i)i=i.next;else{if(o>=r)return{done:!0};let a=n[o++];if(a===t){i=void 0;continue}i=e[a]}while(!i);return{done:!1,value:{edge:i.key,attributes:i.attributes,source:i.source.key,target:i.target.key,sourceAttributes:i.source.attributes,targetAttributes:i.target.attributes,undirected:i.undirected}}}}}function Vw(e,t,n,r){let i=t[n];if(!i)return;let o=i.source,a=i.target;if(r(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected)&&e)return i.key}function jw(e,t,n,r){let i=t[n];if(!i)return;let o=!1;do{if(o=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),e&&o)return i.key;i=i.next}while(i!==void 0)}function is(e,t){let n=e[t];if(n.next!==void 0)return{[Symbol.iterator](){return this},next(){if(!n)return{done:!0};let i={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:i}}};let r=!1;return{[Symbol.iterator](){return this},next(){return r===!0?{done:!0}:(r=!0,{done:!1,value:{edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected}})}}}function qw(e,t){if(e.size===0)return[];if(t==="mixed"||t===e.type)return Array.from(e._edges.keys());let n=t==="undirected"?e.undirectedSize:e.directedSize,r=new Array(n),i=t==="undirected",o=e._edges.values(),a=0,s,l;for(;s=o.next(),s.done!==!0;)l=s.value,l.undirected===i&&(r[a++]=l.key);return r}function uh(e,t,n,r){if(t.size===0)return;let i=n!=="mixed"&&n!==t.type,o=n==="undirected",a,s,l=!1,c=t._edges.values();for(;a=c.next(),a.done!==!0;){if(s=a.value,i&&s.undirected!==o)continue;let{key:u,attributes:h,source:d,target:p}=s;if(l=r(u,h,d.key,p.key,d.attributes,p.attributes,s.undirected),e&&l)return u}}function Yw(e,t){if(e.size===0)return Hn();let n=t!=="mixed"&&t!==e.type,r=t==="undirected",i=e._edges.values();return{[Symbol.iterator](){return this},next(){let o,a;for(;;){if(o=i.next(),o.done)return o;if(a=o.value,!(n&&a.undirected!==r))break}return{value:{edge:a.key,attributes:a.attributes,source:a.source.key,target:a.target.key,sourceAttributes:a.source.attributes,targetAttributes:a.target.attributes,undirected:a.undirected},done:!1}}}}function os(e,t,n,r,i,o){let a=t?Kw:Bw,s;if(n!=="undirected"&&(r!=="out"&&(s=a(e,i.in,o),e&&s)||r!=="in"&&(s=a(e,i.out,o,r?void 0:i.key),e&&s))||n!=="directed"&&(s=a(e,i.undirected,o),e&&s))return s}function Xw(e,t,n,r){let i=[];return os(!1,e,t,n,r,function(o){i.push(o)}),i}function Zw(e,t,n){let r=Hn();return e!=="undirected"&&(t!=="out"&&typeof n.in<"u"&&(r=Pt(r,rs(n.in))),t!=="in"&&typeof n.out<"u"&&(r=Pt(r,rs(n.out,t?void 0:n.key)))),e!=="directed"&&typeof n.undirected<"u"&&(r=Pt(r,rs(n.undirected))),r}function as(e,t,n,r,i,o,a){let s=n?jw:Vw,l;if(t!=="undirected"&&(typeof i.in<"u"&&r!=="out"&&(l=s(e,i.in,o,a),e&&l)||typeof i.out<"u"&&r!=="in"&&(r||i.key!==o)&&(l=s(e,i.out,o,a),e&&l))||t!=="directed"&&typeof i.undirected<"u"&&(l=s(e,i.undirected,o,a),e&&l))return l}function Qw(e,t,n,r,i){let o=[];return as(!1,e,t,n,r,i,function(a){o.push(a)}),o}function Jw(e,t,n,r){let i=Hn();return e!=="undirected"&&(typeof n.in<"u"&&t!=="out"&&r in n.in&&(i=Pt(i,is(n.in,r))),typeof n.out<"u"&&t!=="in"&&r in n.out&&(t||n.key!==r)&&(i=Pt(i,is(n.out,r)))),e!=="directed"&&typeof n.undirected<"u"&&r in n.undirected&&(i=Pt(i,is(n.undirected,r))),i}function ey(e,t){let{name:n,type:r,direction:i}=t;e.prototype[n]=function(o,a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];if(!arguments.length)return qw(this,r);if(arguments.length===1){o=""+o;let s=this._nodes.get(o);if(typeof s>"u")throw new P(`Graph.${n}: could not find the "${o}" node in the graph.`);return Xw(this.multi,r==="mixed"?this.type:r,i,s)}if(arguments.length===2){o=""+o,a=""+a;let s=this._nodes.get(o);if(!s)throw new P(`Graph.${n}: could not find the "${o}" source node in the graph.`);if(!this._nodes.has(a))throw new P(`Graph.${n}: could not find the "${a}" target node in the graph.`);return Qw(r,this.multi,i,s,a)}throw new M(`Graph.${n}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function ty(e,t){let{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(c,u,h){if(!(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)){if(arguments.length===1)return h=c,uh(!1,this,r,h);if(arguments.length===2){c=""+c,h=u;let d=this._nodes.get(c);if(typeof d>"u")throw new P(`Graph.${o}: could not find the "${c}" node in the graph.`);return os(!1,this.multi,r==="mixed"?this.type:r,i,d,h)}if(arguments.length===3){c=""+c,u=""+u;let d=this._nodes.get(c);if(!d)throw new P(`Graph.${o}: could not find the "${c}" source node in the graph.`);if(!this._nodes.has(u))throw new P(`Graph.${o}: could not find the "${u}" target node in the graph.`);return as(!1,r,this.multi,i,d,u,h)}throw new M(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)}};let a="map"+n[0].toUpperCase()+n.slice(1);e.prototype[a]=function(){let c=Array.prototype.slice.call(arguments),u=c.pop(),h;if(c.length===0){let d=0;r!=="directed"&&(d+=this.undirectedSize),r!=="undirected"&&(d+=this.directedSize),h=new Array(d);let p=0;c.push((m,w,v,y,b,k,E)=>{h[p++]=u(m,w,v,y,b,k,E)})}else h=[],c.push((d,p,m,w,v,y,b)=>{h.push(u(d,p,m,w,v,y,b))});return this[o].apply(this,c),h};let s="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(){let c=Array.prototype.slice.call(arguments),u=c.pop(),h=[];return c.push((d,p,m,w,v,y,b)=>{u(d,p,m,w,v,y,b)&&h.push(d)}),this[o].apply(this,c),h};let l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(){let c=Array.prototype.slice.call(arguments);if(c.length<2||c.length>4)throw new M(`Graph.${l}: invalid number of arguments (expecting 2, 3 or 4 and got ${c.length}).`);if(typeof c[c.length-1]=="function"&&typeof c[c.length-2]!="function")throw new M(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let u,h;c.length===2?(u=c[0],h=c[1],c=[]):c.length===3?(u=c[1],h=c[2],c=[c[0]]):c.length===4&&(u=c[2],h=c[3],c=[c[0],c[1]]);let d=h;return c.push((p,m,w,v,y,b,k)=>{d=u(d,p,m,w,v,y,b,k)}),this[o].apply(this,c),d}}function ny(e,t){let{name:n,type:r,direction:i}=t,o="find"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(l,c,u){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return!1;if(arguments.length===1)return u=l,uh(!0,this,r,u);if(arguments.length===2){l=""+l,u=c;let h=this._nodes.get(l);if(typeof h>"u")throw new P(`Graph.${o}: could not find the "${l}" node in the graph.`);return os(!0,this.multi,r==="mixed"?this.type:r,i,h,u)}if(arguments.length===3){l=""+l,c=""+c;let h=this._nodes.get(l);if(!h)throw new P(`Graph.${o}: could not find the "${l}" source node in the graph.`);if(!this._nodes.has(c))throw new P(`Graph.${o}: could not find the "${c}" target node in the graph.`);return as(!0,r,this.multi,i,h,c,u)}throw new M(`Graph.${o}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)};let a="some"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[a]=function(){let l=Array.prototype.slice.call(arguments),c=l.pop();return l.push((h,d,p,m,w,v,y)=>c(h,d,p,m,w,v,y)),!!this[o].apply(this,l)};let s="every"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[s]=function(){let l=Array.prototype.slice.call(arguments),c=l.pop();return l.push((h,d,p,m,w,v,y)=>!c(h,d,p,m,w,v,y)),!this[o].apply(this,l)}}function ry(e,t){let{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(a,s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return Hn();if(!arguments.length)return Yw(this,r);if(arguments.length===1){a=""+a;let l=this._nodes.get(a);if(!l)throw new P(`Graph.${o}: could not find the "${a}" node in the graph.`);return Zw(r,i,l)}if(arguments.length===2){a=""+a,s=""+s;let l=this._nodes.get(a);if(!l)throw new P(`Graph.${o}: could not find the "${a}" source node in the graph.`);if(!this._nodes.has(s))throw new P(`Graph.${o}: could not find the "${s}" target node in the graph.`);return Jw(r,i,l,s)}throw new M(`Graph.${o}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function iy(e){Uw.forEach(t=>{ey(e,t),ty(e,t),ny(e,t),ry(e,t)})}var oy=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function no(){this.A=null,this.B=null}no.prototype.wrap=function(e){this.A===null?this.A=e:this.B===null&&(this.B=e)};no.prototype.has=function(e){return this.A!==null&&e in this.A||this.B!==null&&e in this.B};function Tr(e,t,n,r,i){for(let o in r){let a=r[o],s=a.source,l=a.target,c=s===n?l:s;if(t&&t.has(c.key))continue;let u=i(c.key,c.attributes);if(e&&u)return c.key}}function ss(e,t,n,r,i){if(t!=="mixed"){if(t==="undirected")return Tr(e,null,r,r.undirected,i);if(typeof n=="string")return Tr(e,null,r,r[n],i)}let o=new no,a;if(t!=="undirected"){if(n!=="out"){if(a=Tr(e,null,r,r.in,i),e&&a)return a;o.wrap(r.in)}if(n!=="in"){if(a=Tr(e,o,r,r.out,i),e&&a)return a;o.wrap(r.out)}}if(t!=="directed"&&(a=Tr(e,o,r,r.undirected,i),e&&a))return a}function ay(e,t,n){if(e!=="mixed"){if(e==="undirected")return Object.keys(n.undirected);if(typeof t=="string")return Object.keys(n[t])}let r=[];return ss(!1,e,t,n,function(i){r.push(i)}),r}function Sr(e,t,n){let r=Object.keys(n),i=r.length,o=0;return{[Symbol.iterator](){return this},next(){let a=null;do{if(o>=i)return e&&e.wrap(n),{done:!0};let s=n[r[o++]],l=s.source,c=s.target;if(a=l===t?c:l,e&&e.has(a.key)){a=null;continue}}while(a===null);return{done:!1,value:{neighbor:a.key,attributes:a.attributes}}}}}function sy(e,t,n){if(e!=="mixed"){if(e==="undirected")return Sr(null,n,n.undirected);if(typeof t=="string")return Sr(null,n,n[t])}let r=Hn(),i=new no;return e!=="undirected"&&(t!=="out"&&(r=Pt(r,Sr(i,n,n.in))),t!=="in"&&(r=Pt(r,Sr(i,n,n.out)))),e!=="directed"&&(r=Pt(r,Sr(i,n,n.undirected))),r}function ly(e,t){let{name:n,type:r,direction:i}=t;e.prototype[n]=function(o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];o=""+o;let a=this._nodes.get(o);if(typeof a>"u")throw new P(`Graph.${n}: could not find the "${o}" node in the graph.`);return ay(r==="mixed"?this.type:r,i,a)}}function cy(e,t){let{name:n,type:r,direction:i}=t,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(c,u){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;c=""+c;let h=this._nodes.get(c);if(typeof h>"u")throw new P(`Graph.${o}: could not find the "${c}" node in the graph.`);ss(!1,r==="mixed"?this.type:r,i,h,u)};let a="map"+n[0].toUpperCase()+n.slice(1);e.prototype[a]=function(c,u){let h=[];return this[o](c,(d,p)=>{h.push(u(d,p))}),h};let s="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(c,u){let h=[];return this[o](c,(d,p)=>{u(d,p)&&h.push(d)}),h};let l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(c,u,h){if(arguments.length<3)throw new M(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let d=h;return this[o](c,(p,m)=>{d=u(d,p,m)}),d}}function uy(e,t){let{name:n,type:r,direction:i}=t,o=n[0].toUpperCase()+n.slice(1,-1),a="find"+o;e.prototype[a]=function(c,u){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;c=""+c;let h=this._nodes.get(c);if(typeof h>"u")throw new P(`Graph.${a}: could not find the "${c}" node in the graph.`);return ss(!0,r==="mixed"?this.type:r,i,h,u)};let s="some"+o;e.prototype[s]=function(c,u){return!!this[a](c,u)};let l="every"+o;e.prototype[l]=function(c,u){return!this[a](c,(d,p)=>!u(d,p))}}function dy(e,t){let{name:n,type:r,direction:i}=t,o=n.slice(0,-1)+"Entries";e.prototype[o]=function(a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return Hn();a=""+a;let s=this._nodes.get(a);if(typeof s>"u")throw new P(`Graph.${o}: could not find the "${a}" node in the graph.`);return sy(r==="mixed"?this.type:r,i,s)}}function hy(e){oy.forEach(t=>{ly(e,t),cy(e,t),uy(e,t),dy(e,t)})}function Xi(e,t,n,r,i){let o=r._nodes.values(),a=r.type,s,l,c,u,h,d,p;for(;s=o.next(),s.done!==!0;){let m=!1;if(l=s.value,a!=="undirected"){u=l.out;for(c in u){h=u[c];do{if(d=h.target,m=!0,p=i(l.key,d.key,l.attributes,d.attributes,h.key,h.attributes,h.undirected),e&&p)return h;h=h.next}while(h)}}if(a!=="directed"){u=l.undirected;for(c in u)if(!(t&&l.key>c)){h=u[c];do{if(d=h.target,d.key!==c&&(d=h.source),m=!0,p=i(l.key,d.key,l.attributes,d.attributes,h.key,h.attributes,h.undirected),e&&p)return h;h=h.next}while(h)}}if(n&&!m&&(p=i(l.key,null,l.attributes,null,null,null,null),e&&p))return null}}function py(e,t){let n={key:e};return rh(t.attributes)||(n.attributes=_e({},t.attributes)),n}function fy(e,t,n){let r={key:t,source:n.source.key,target:n.target.key};return rh(n.attributes)||(r.attributes=_e({},n.attributes)),e==="mixed"&&n.undirected&&(r.undirected=!0),r}function gy(e){if(!Ce(e))throw new M('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in e))throw new M("Graph.import: serialized node is missing its key.");if("attributes"in e&&(!Ce(e.attributes)||e.attributes===null))throw new M("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function my(e){if(!Ce(e))throw new M('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in e))throw new M("Graph.import: serialized edge is missing its source.");if(!("target"in e))throw new M("Graph.import: serialized edge is missing its target.");if("attributes"in e&&(!Ce(e.attributes)||e.attributes===null))throw new M("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in e&&typeof e.undirected!="boolean")throw new M("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}var vy=yw(),wy=new Set(["directed","undirected","mixed"]),eh=new Set(["domain","_events","_eventsCount","_maxListeners"]),yy=[{name:e=>`${e}Edge`,generateKey:!0},{name:e=>`${e}DirectedEdge`,generateKey:!0,type:"directed"},{name:e=>`${e}UndirectedEdge`,generateKey:!0,type:"undirected"},{name:e=>`${e}EdgeWithKey`},{name:e=>`${e}DirectedEdgeWithKey`,type:"directed"},{name:e=>`${e}UndirectedEdgeWithKey`,type:"undirected"}],by={allowSelfLoops:!0,multi:!1,type:"mixed"};function xy(e,t,n){if(n&&!Ce(n))throw new M(`Graph.addNode: invalid attributes. Expecting an object but got "${n}"`);if(t=""+t,n=n||{},e._nodes.has(t))throw new B(`Graph.addNode: the "${t}" node already exist in the graph.`);let r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function th(e,t,n){let r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function dh(e,t,n,r,i,o,a,s){if(!r&&e.type==="undirected")throw new B(`Graph.${t}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new B(`Graph.${t}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`);if(s&&!Ce(s))throw new M(`Graph.${t}: invalid attributes. Expecting an object but got "${s}"`);if(o=""+o,a=""+a,s=s||{},!e.allowSelfLoops&&o===a)throw new B(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let l=e._nodes.get(o),c=e._nodes.get(a);if(!l)throw new P(`Graph.${t}: source node "${o}" not found.`);if(!c)throw new P(`Graph.${t}: target node "${a}" not found.`);let u={key:null,undirected:r,source:o,target:a,attributes:s};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new B(`Graph.${t}: the "${i}" edge already exists in the graph.`);if(!e.multi&&(r?typeof l.undirected[a]<"u":typeof l.out[a]<"u"))throw new B(`Graph.${t}: an edge linking "${o}" to "${a}" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`);let h=new Un(r,i,l,c,s);e._edges.set(i,h);let d=o===a;return r?(l.undirectedDegree++,c.undirectedDegree++,d&&(l.undirectedLoops++,e._undirectedSelfLoopCount++)):(l.outDegree++,c.inDegree++,d&&(l.directedLoops++,e._directedSelfLoopCount++)),e.multi?h.attachMulti():h.attach(),r?e._undirectedSize++:e._directedSize++,u.key=i,e.emit("edgeAdded",u),i}function ky(e,t,n,r,i,o,a,s,l){if(!r&&e.type==="undirected")throw new B(`Graph.${t}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new B(`Graph.${t}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`);if(s){if(l){if(typeof s!="function")throw new M(`Graph.${t}: invalid updater function. Expecting a function but got "${s}"`)}else if(!Ce(s))throw new M(`Graph.${t}: invalid attributes. Expecting an object but got "${s}"`)}o=""+o,a=""+a;let c;if(l&&(c=s,s=void 0),!e.allowSelfLoops&&o===a)throw new B(`Graph.${t}: source & target are the same ("${o}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let u=e._nodes.get(o),h=e._nodes.get(a),d,p;if(!n&&(d=e._edges.get(i),d)){if((d.source.key!==o||d.target.key!==a)&&(!r||d.source.key!==a||d.target.key!==o))throw new B(`Graph.${t}: inconsistency detected when attempting to merge the "${i}" edge with "${o}" source & "${a}" target vs. ("${d.source.key}", "${d.target.key}").`);p=d}if(!p&&!e.multi&&u&&(p=r?u.undirected[a]:u.out[a]),p){let b=[p.key,!1,!1,!1];if(l?!c:!s)return b;if(l){let k=p.attributes;p.attributes=c(k),e.emit("edgeAttributesUpdated",{type:"replace",key:p.key,attributes:p.attributes})}else _e(p.attributes,s),e.emit("edgeAttributesUpdated",{type:"merge",key:p.key,attributes:p.attributes,data:s});return b}s=s||{},l&&c&&(s=c(s));let m={key:null,undirected:r,source:o,target:a,attributes:s};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new B(`Graph.${t}: the "${i}" edge already exists in the graph.`);let w=!1,v=!1;u||(u=th(e,o,{}),w=!0,o===a&&(h=u,v=!0)),h||(h=th(e,a,{}),v=!0),d=new Un(r,i,u,h,s),e._edges.set(i,d);let y=o===a;return r?(u.undirectedDegree++,h.undirectedDegree++,y&&(u.undirectedLoops++,e._undirectedSelfLoopCount++)):(u.outDegree++,h.inDegree++,y&&(u.directedLoops++,e._directedSelfLoopCount++)),e.multi?d.attachMulti():d.attach(),r?e._undirectedSize++:e._directedSize++,m.key=i,e.emit("edgeAdded",m),[i,!0,w,v]}function Wn(e,t){e._edges.delete(t.key);let{source:n,target:r,attributes:i}=t,o=t.undirected,a=n===r;o?(n.undirectedDegree--,r.undirectedDegree--,a&&(n.undirectedLoops--,e._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,a&&(n.directedLoops--,e._directedSelfLoopCount--)),e.multi?t.detachMulti():t.detach(),o?e._undirectedSize--:e._directedSize--,e.emit("edgeDropped",{key:t.key,attributes:i,source:n.key,target:r.key,undirected:o})}var ie=class e extends nh.EventEmitter{constructor(t){if(super(),t=_e({},by,t),typeof t.multi!="boolean")throw new M(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "${t.multi}".`);if(!wy.has(t.type))throw new M(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "${t.type}".`);if(typeof t.allowSelfLoops!="boolean")throw new M(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "${t.allowSelfLoops}".`);let n=t.type==="mixed"?ih:t.type==="directed"?oh:ah;at(this,"NodeDataClass",n);let r="geid_"+vy()+"_",i=0,o=()=>{let a;do a=r+i++;while(this._edges.has(a));return a};at(this,"_attributes",{}),at(this,"_nodes",new Map),at(this,"_edges",new Map),at(this,"_directedSize",0),at(this,"_undirectedSize",0),at(this,"_directedSelfLoopCount",0),at(this,"_undirectedSelfLoopCount",0),at(this,"_edgeKeyGenerator",o),at(this,"_options",t),eh.forEach(a=>at(this,a,this[a])),ht(this,"order",()=>this._nodes.size),ht(this,"size",()=>this._edges.size),ht(this,"directedSize",()=>this._directedSize),ht(this,"undirectedSize",()=>this._undirectedSize),ht(this,"selfLoopCount",()=>this._directedSelfLoopCount+this._undirectedSelfLoopCount),ht(this,"directedSelfLoopCount",()=>this._directedSelfLoopCount),ht(this,"undirectedSelfLoopCount",()=>this._undirectedSelfLoopCount),ht(this,"multi",this._options.multi),ht(this,"type",this._options.type),ht(this,"allowSelfLoops",this._options.allowSelfLoops),ht(this,"implementation",()=>"graphology")}_resetInstanceCounters(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0}hasNode(t){return this._nodes.has(""+t)}hasDirectedEdge(t,n){if(this.type==="undirected")return!1;if(arguments.length===1){let r=""+t,i=this._edges.get(r);return!!i&&!i.undirected}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?r.out.hasOwnProperty(n):!1}throw new M(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasUndirectedEdge(t,n){if(this.type==="directed")return!1;if(arguments.length===1){let r=""+t,i=this._edges.get(r);return!!i&&i.undirected}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?r.undirected.hasOwnProperty(n):!1}throw new M(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasEdge(t,n){if(arguments.length===1){let r=""+t;return this._edges.has(r)}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?typeof r.out<"u"&&r.out.hasOwnProperty(n)||typeof r.undirected<"u"&&r.undirected.hasOwnProperty(n):!1}throw new M(`Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}directedEdge(t,n){if(this.type==="undirected")return;if(t=""+t,n=""+n,this.multi)throw new B("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");let r=this._nodes.get(t);if(!r)throw new P(`Graph.directedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new P(`Graph.directedEdge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||void 0;if(i)return i.key}undirectedEdge(t,n){if(this.type==="directed")return;if(t=""+t,n=""+n,this.multi)throw new B("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");let r=this._nodes.get(t);if(!r)throw new P(`Graph.undirectedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new P(`Graph.undirectedEdge: could not find the "${n}" target node in the graph.`);let i=r.undirected&&r.undirected[n]||void 0;if(i)return i.key}edge(t,n){if(this.multi)throw new B("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.edge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new P(`Graph.edge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||r.undirected&&r.undirected[n]||void 0;if(i)return i.key}areDirectedNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areDirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in||n in r.out}areOutNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areOutNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.out}areInNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areInNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in}areUndirectedNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areUndirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="directed"?!1:n in r.undirected}areNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&(n in r.in||n in r.out)||this.type!=="directed"&&n in r.undirected}areInboundNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areInboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.in||this.type!=="directed"&&n in r.undirected}areOutboundNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new P(`Graph.areOutboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.out||this.type!=="directed"&&n in r.undirected}inDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.inDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree}outDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.outDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree}directedDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.directedDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree}undirectedDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.undirectedDegree: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree}inboundDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.inboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree),r}outboundDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.outboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.outDegree),r}degree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.degree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree),r}inDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.inDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree-n.directedLoops}outDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.outDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree-n.directedLoops}directedDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.directedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree-n.directedLoops*2}undirectedDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.undirectedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree-n.undirectedLoops*2}inboundDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.inboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree,i+=n.directedLoops),r-i}outboundDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.outboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.outDegree,i+=n.directedLoops),r-i}degreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.degreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree,i+=n.directedLoops*2),r-i}source(t){t=""+t;let n=this._edges.get(t);if(!n)throw new P(`Graph.source: could not find the "${t}" edge in the graph.`);return n.source.key}target(t){t=""+t;let n=this._edges.get(t);if(!n)throw new P(`Graph.target: could not find the "${t}" edge in the graph.`);return n.target.key}extremities(t){t=""+t;let n=this._edges.get(t);if(!n)throw new P(`Graph.extremities: could not find the "${t}" edge in the graph.`);return[n.source.key,n.target.key]}opposite(t,n){t=""+t,n=""+n;let r=this._edges.get(n);if(!r)throw new P(`Graph.opposite: could not find the "${n}" edge in the graph.`);let i=r.source.key,o=r.target.key;if(t===i)return o;if(t===o)return i;throw new P(`Graph.opposite: the "${t}" node is not attached to the "${n}" edge (${i}, ${o}).`)}hasExtremity(t,n){t=""+t,n=""+n;let r=this._edges.get(t);if(!r)throw new P(`Graph.hasExtremity: could not find the "${t}" edge in the graph.`);return r.source.key===n||r.target.key===n}isUndirected(t){t=""+t;let n=this._edges.get(t);if(!n)throw new P(`Graph.isUndirected: could not find the "${t}" edge in the graph.`);return n.undirected}isDirected(t){t=""+t;let n=this._edges.get(t);if(!n)throw new P(`Graph.isDirected: could not find the "${t}" edge in the graph.`);return!n.undirected}isSelfLoop(t){t=""+t;let n=this._edges.get(t);if(!n)throw new P(`Graph.isSelfLoop: could not find the "${t}" edge in the graph.`);return n.source===n.target}addNode(t,n){return xy(this,t,n).key}mergeNode(t,n){if(n&&!Ce(n))throw new M(`Graph.mergeNode: invalid attributes. Expecting an object but got "${n}"`);t=""+t,n=n||{};let r=this._nodes.get(t);return r?(n&&(_e(r.attributes,n),this.emit("nodeAttributesUpdated",{type:"merge",key:t,attributes:r.attributes,data:n})),[t,!1]):(r=new this.NodeDataClass(t,n),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:n}),[t,!0])}updateNode(t,n){if(n&&typeof n!="function")throw new M(`Graph.updateNode: invalid updater function. Expecting a function but got "${n}"`);t=""+t;let r=this._nodes.get(t);if(r){if(n){let o=r.attributes;r.attributes=n(o),this.emit("nodeAttributesUpdated",{type:"replace",key:t,attributes:r.attributes})}return[t,!1]}let i=n?n({}):{};return r=new this.NodeDataClass(t,i),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:i}),[t,!0]}dropNode(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new P(`Graph.dropNode: could not find the "${t}" node in the graph.`);let r;if(this.type!=="undirected"){for(let i in n.out){r=n.out[i];do Wn(this,r),r=r.next;while(r)}for(let i in n.in){r=n.in[i];do Wn(this,r),r=r.next;while(r)}}if(this.type!=="directed")for(let i in n.undirected){r=n.undirected[i];do Wn(this,r),r=r.next;while(r)}this._nodes.delete(t),this.emit("nodeDropped",{key:t,attributes:n.attributes})}dropEdge(t){let n;if(arguments.length>1){let r=""+arguments[0],i=""+arguments[1];if(n=st(this,r,i,this.type),!n)throw new P(`Graph.dropEdge: could not find the "${r}" -> "${i}" edge in the graph.`)}else if(t=""+t,n=this._edges.get(t),!n)throw new P(`Graph.dropEdge: could not find the "${t}" edge in the graph.`);return Wn(this,n),this}dropDirectedEdge(t,n){if(arguments.length<2)throw new B("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new B("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");t=""+t,n=""+n;let r=st(this,t,n,"directed");if(!r)throw new P(`Graph.dropDirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Wn(this,r),this}dropUndirectedEdge(t,n){if(arguments.length<2)throw new B("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new B("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");let r=st(this,t,n,"undirected");if(!r)throw new P(`Graph.dropUndirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return Wn(this,r),this}clear(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")}clearEdges(){let t=this._nodes.values(),n;for(;n=t.next(),n.done!==!0;)n.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")}getAttribute(t){return this._attributes[t]}getAttributes(){return this._attributes}hasAttribute(t){return this._attributes.hasOwnProperty(t)}setAttribute(t,n){return this._attributes[t]=n,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}updateAttribute(t,n){if(typeof n!="function")throw new M("Graph.updateAttribute: updater should be a function.");let r=this._attributes[t];return this._attributes[t]=n(r),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}removeAttribute(t){return delete this._attributes[t],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:t}),this}replaceAttributes(t){if(!Ce(t))throw new M("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=t,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this}mergeAttributes(t){if(!Ce(t))throw new M("Graph.mergeAttributes: provided attributes are not a plain object.");return _e(this._attributes,t),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:t}),this}updateAttributes(t){if(typeof t!="function")throw new M("Graph.updateAttributes: provided updater is not a function.");return this._attributes=t(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this}updateEachNodeAttributes(t,n){if(typeof t!="function")throw new M("Graph.updateEachNodeAttributes: expecting an updater function.");if(n&&!Jd(n))throw new M("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._nodes.values(),i,o;for(;i=r.next(),i.done!==!0;)o=i.value,o.attributes=t(o.key,o.attributes);this.emit("eachNodeAttributesUpdated",{hints:n||null})}updateEachEdgeAttributes(t,n){if(typeof t!="function")throw new M("Graph.updateEachEdgeAttributes: expecting an updater function.");if(n&&!Jd(n))throw new M("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._edges.values(),i,o,a,s;for(;i=r.next(),i.done!==!0;)o=i.value,a=o.source,s=o.target,o.attributes=t(o.key,o.attributes,a.key,s.key,a.attributes,s.attributes,o.undirected);this.emit("eachEdgeAttributesUpdated",{hints:n||null})}forEachAdjacencyEntry(t){if(typeof t!="function")throw new M("Graph.forEachAdjacencyEntry: expecting a callback.");Xi(!1,!1,!1,this,t)}forEachAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new M("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");Xi(!1,!1,!0,this,t)}forEachAssymetricAdjacencyEntry(t){if(typeof t!="function")throw new M("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");Xi(!1,!0,!1,this,t)}forEachAssymetricAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new M("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");Xi(!1,!0,!0,this,t)}nodes(){return Array.from(this._nodes.keys())}forEachNode(t){if(typeof t!="function")throw new M("Graph.forEachNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)}findNode(t){if(typeof t!="function")throw new M("Graph.findNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return i.key}mapNodes(t){if(typeof t!="function")throw new M("Graph.mapNode: expecting a callback.");let n=this._nodes.values(),r,i,o=new Array(this.order),a=0;for(;r=n.next(),r.done!==!0;)i=r.value,o[a++]=t(i.key,i.attributes);return o}someNode(t){if(typeof t!="function")throw new M("Graph.someNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return!0;return!1}everyNode(t){if(typeof t!="function")throw new M("Graph.everyNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,!t(i.key,i.attributes))return!1;return!0}filterNodes(t){if(typeof t!="function")throw new M("Graph.filterNodes: expecting a callback.");let n=this._nodes.values(),r,i,o=[];for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)&&o.push(i.key);return o}reduceNodes(t,n){if(typeof t!="function")throw new M("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new M("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");let r=n,i=this._nodes.values(),o,a;for(;o=i.next(),o.done!==!0;)a=o.value,r=t(r,a.key,a.attributes);return r}nodeEntries(){let t=this._nodes.values();return{[Symbol.iterator](){return this},next(){let n=t.next();if(n.done)return n;let r=n.value;return{value:{node:r.key,attributes:r.attributes},done:!1}}}}export(){let t=new Array(this._nodes.size),n=0;this._nodes.forEach((i,o)=>{t[n++]=py(o,i)});let r=new Array(this._edges.size);return n=0,this._edges.forEach((i,o)=>{r[n++]=fy(this.type,o,i)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:t,edges:r}}import(t,n=!1){if(t instanceof e)return t.forEachNode((l,c)=>{n?this.mergeNode(l,c):this.addNode(l,c)}),t.forEachEdge((l,c,u,h,d,p,m)=>{n?m?this.mergeUndirectedEdgeWithKey(l,u,h,c):this.mergeDirectedEdgeWithKey(l,u,h,c):m?this.addUndirectedEdgeWithKey(l,u,h,c):this.addDirectedEdgeWithKey(l,u,h,c)}),this;if(!Ce(t))throw new M("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(t.attributes){if(!Ce(t.attributes))throw new M("Graph.import: invalid attributes. Expecting a plain object.");n?this.mergeAttributes(t.attributes):this.replaceAttributes(t.attributes)}let r,i,o,a,s;if(t.nodes){if(o=t.nodes,!Array.isArray(o))throw new M("Graph.import: invalid nodes. Expecting an array.");for(r=0,i=o.length;r<i;r++){a=o[r],gy(a);let{key:l,attributes:c}=a;n?this.mergeNode(l,c):this.addNode(l,c)}}if(t.edges){let l=!1;if(this.type==="undirected"&&(l=!0),o=t.edges,!Array.isArray(o))throw new M("Graph.import: invalid edges. Expecting an array.");for(r=0,i=o.length;r<i;r++){s=o[r],my(s);let{source:c,target:u,attributes:h,undirected:d=l}=s,p;"key"in s?(p=n?d?this.mergeUndirectedEdgeWithKey:this.mergeDirectedEdgeWithKey:d?this.addUndirectedEdgeWithKey:this.addDirectedEdgeWithKey,p.call(this,s.key,c,u,h)):(p=n?d?this.mergeUndirectedEdge:this.mergeDirectedEdge:d?this.addUndirectedEdge:this.addDirectedEdge,p.call(this,c,u,h))}}return this}nullCopy(t){let n=new e(_e({},this._options,t));return n.replaceAttributes(_e({},this.getAttributes())),n}emptyCopy(t){let n=this.nullCopy(t);return this._nodes.forEach((r,i)=>{let o=_e({},r.attributes);r=new n.NodeDataClass(i,o),n._nodes.set(i,r)}),n}copy(t){if(t=t||{},typeof t.type=="string"&&t.type!==this.type&&t.type!=="mixed")throw new B(`Graph.copy: cannot create an incompatible copy from "${this.type}" type to "${t.type}" because this would mean losing information about the current graph.`);if(typeof t.multi=="boolean"&&t.multi!==this.multi&&t.multi!==!0)throw new B("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if(typeof t.allowSelfLoops=="boolean"&&t.allowSelfLoops!==this.allowSelfLoops&&t.allowSelfLoops!==!0)throw new B("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");let n=this.emptyCopy(t),r=this._edges.values(),i,o;for(;i=r.next(),i.done!==!0;)o=i.value,dh(n,"copy",!1,o.undirected,o.key,o.source.key,o.target.key,_e({},o.attributes));return n}toJSON(){return this.export()}toString(){return"[object Graph]"}inspect(){let t={};this._nodes.forEach((o,a)=>{t[a]=o.attributes});let n={},r={};this._edges.forEach((o,a)=>{let s=o.undirected?"--":"->",l="",c=o.source.key,u=o.target.key,h;o.undirected&&c>u&&(h=c,c=u,u=h);let d=`(${c})${s}(${u})`;a.startsWith("geid_")?this.multi&&(typeof r[d]>"u"?r[d]=0:r[d]++,l+=`${r[d]}. `):l+=`[${a}]: `,l+=d,n[l]=o.attributes});let i={};for(let o in this)this.hasOwnProperty(o)&&!eh.has(o)&&typeof this[o]!="function"&&typeof o!="symbol"&&(i[o]=this[o]);return i.attributes=this._attributes,i.nodes=t,i.edges=n,at(i,"constructor",this.constructor),i}};typeof Symbol<"u"&&(ie.prototype[Symbol.for("nodejs.util.inspect.custom")]=ie.prototype.inspect);yy.forEach(e=>{["add","merge","update"].forEach(t=>{let n=e.name(t),r=t==="add"?dh:ky;e.generateKey?ie.prototype[n]=function(i,o,a){return r(this,n,!0,(e.type||this.type)==="undirected",null,i,o,a,t==="update")}:ie.prototype[n]=function(i,o,a,s){return r(this,n,!1,(e.type||this.type)==="undirected",i,o,a,s,t==="update")}})});Nw(ie);Hw(ie);iy(ie);hy(ie);var Zi=class extends ie{constructor(t){let n=_e({type:"directed"},t);if("multi"in n&&n.multi!==!1)throw new M("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="directed")throw new M('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},Qi=class extends ie{constructor(t){let n=_e({type:"undirected"},t);if("multi"in n&&n.multi!==!1)throw new M("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="undirected")throw new M('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},Ji=class extends ie{constructor(t){let n=_e({multi:!0},t);if("multi"in n&&n.multi!==!0)throw new M("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");super(n)}},eo=class extends ie{constructor(t){let n=_e({type:"directed",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new M("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="directed")throw new M('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},to=class extends ie{constructor(t){let n=_e({type:"undirected",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new M("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="undirected")throw new M('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}};function Bn(e){e.from=function(t,n){let r=_e({},t.options,n),i=new e(r);return i.import(t),i}}Bn(ie);Bn(Zi);Bn(Qi);Bn(Ji);Bn(eo);Bn(to);ie.Graph=ie;ie.DirectedGraph=Zi;ie.UndirectedGraph=Qi;ie.MultiGraph=Ji;ie.MultiDirectedGraph=eo;ie.MultiUndirectedGraph=to;ie.InvalidArgumentsGraphError=M;ie.NotFoundGraphError=P;ie.UsageGraphError=B;function _y(){return new ie({multi:!0,type:"directed"})}function ls(e){let t=_y();for(let n of e.nodes){let{id:r,...i}=n;t.addNode(r,i)}for(let n of e.edges){let{key:r,source:i,target:o,...a}=n;t.addDirectedEdgeWithKey(r,i,o,{source:i,target:o,...a})}return t}function hh(e,t){let n=0;for(let[r,i]of t)e.hasNode(r)&&(!Number.isFinite(i.x)||!Number.isFinite(i.y)||(e.mergeNodeAttributes(r,{x:i.x,y:i.y}),n++));return n}function cs(e){let t=new Map;return e.forEachNode((n,r)=>{t.set(n,{x:r.x,y:r.y})}),t}var ph=e=>({now:()=>e.performance.now(),request:t=>e.requestAnimationFrame(()=>t()),cancel:t=>e.cancelAnimationFrame(t)});function fh(e,t,n){let r=null,i=ls({nodes:[],edges:[]}),o=null,a=null,s=0,l=0,c=null,u=0,h=()=>{},d=()=>{},p=()=>{},m=()=>{},w=()=>{},v=null,y=!1,b=A=>{if(v===null)return;let D=v;v=null,r?.setSetting("enableCameraPanning",!0),(A===null||A===D)&&w(D)},k=()=>cu([...cs(i).values()]),E=A=>{let D=pu(o,a,s),O=gu(o,a,s);A.setSetting("nodeReducer",(W,T)=>({...T,...D(W,T,t)})),A.setSetting("edgeReducer",(W,T)=>({...T,...O(W,T,t)}))},I=()=>{if(n===void 0||c!==null)return;u=n.now();let A=()=>{c=null;let D=n.now();if(s=fu(s,l,D-u),u=D,r!==null&&E(r),s===l){s===0&&(o=null);return}c=n.request(A)};c=n.request(A)};return{mount(A){if(r!==null)return;let D=e(i,A,mu(t));D.on("clickNode",({node:O})=>{y||h(O)}),D.on("doubleClickNode",({node:O,preventSigmaDefault:W})=>{W(),y||h(O)}),D.on("clickStage",()=>h(null)),D.on("downNode",({node:O})=>{v=O,y=!1,r?.setSetting("enableCameraPanning",!1),p(O)}),D.on("moveBody",O=>{v!==null&&(y=!0,O.preventSigmaDefault(),m(v,D.viewportToGraph({x:O.event.x,y:O.event.y})))}),D.on("enterNode",({node:O})=>d(O)),D.on("leaveNode",()=>d(null)),D.on("upNode",()=>b(v)),D.on("upStage",()=>b(null)),E(D),D.setCustomBBox(k()),r=D},setGraph(A){i=ls(A),r?.setGraph(i),r?.setCustomBBox(k())},setPositions(A){hh(i,A),r?.refresh()},setHighlight(A,D=null){if(n===void 0){o=A,a=D,s=A===null?0:1,l=s,r!==null&&E(r);return}if(A===null){if(l=0,o===null)return}else o=A,a=D,l=1;r!==null&&E(r),s!==l&&I()},onSelect(A){h=A},onHover(A){d=A},onDragStart(A){p=A},onDragMove(A){m=A},onDragEnd(A){w=A},fit(){r?.setCustomBBox(k()),r?.getCamera().animatedReset()},positions(){return cs(i)},destroy(){c!==null&&(n?.cancel(c),c=null),r?.kill(),r=null}}}var gh=e=>fh((t,n,r)=>new Qd(t,n,r),e,ph(window));function mh(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ey(e){if(Array.isArray(e))return e}function Ty(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,a,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,i=u}finally{try{if(!l&&n.return!=null&&(a=n.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}function Sy(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
333
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ry(e,t){return Ey(e)||Ty(e,t)||Ay(e,t)||Sy()}function Ay(e,t){if(e){if(typeof e=="string")return mh(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?mh(e,t):void 0}}var Nh=Object.entries,vh=Object.setPrototypeOf,Cy=Object.isFrozen,Ly=Object.getPrototypeOf,Ny=Object.getOwnPropertyDescriptor,Ee=Object.freeze,Re=Object.seal,Kn=Object.create,Ph=typeof Reflect<"u"&&Reflect,ms=Ph.apply,vs=Ph.construct;Ee||(Ee=function(t){return t});Re||(Re=function(t){return t});ms||(ms=function(t,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return t.apply(n,i)});vs||(vs=function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return new t(...r)});var gn=we(Array.prototype.forEach),Py=we(Array.prototype.lastIndexOf),wh=we(Array.prototype.pop),Ar=we(Array.prototype.push),Dy=we(Array.prototype.splice),Vn=Array.isArray,Nr=we(String.prototype.toLowerCase),us=we(String.prototype.toString),yh=we(String.prototype.match),Cr=we(String.prototype.replace),bh=we(String.prototype.indexOf),Iy=we(String.prototype.trim),Gy=we(Number.prototype.toString),My=we(Boolean.prototype.toString),xh=typeof BigInt>"u"?null:we(BigInt.prototype.toString),kh=typeof Symbol>"u"?null:we(Symbol.prototype.toString),je=we(Object.prototype.hasOwnProperty),Lr=we(Object.prototype.toString),Pe=we(RegExp.prototype.test),fn=Oy(TypeError);function we(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return ms(e,t,r)}}function Oy(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return vs(e,n)}}function J(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Nr;if(vh&&vh(e,null),!Vn(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i=="string"){let o=n(i);o!==i&&(Cy(t)||(t[r]=o),i=o)}e[i]=!0}return e}function Fy(e){for(let t=0;t<e.length;t++)je(e,t)||(e[t]=null);return e}function tt(e){let t=Kn(null);for(let r of Nh(e)){var n=Ry(r,2);let i=n[0],o=n[1];je(e,i)&&(Vn(o)?t[i]=Fy(o):o&&typeof o=="object"&&o.constructor===Object?t[i]=tt(o):t[i]=o)}return t}function $y(e){switch(typeof e){case"string":return e;case"number":return Gy(e);case"boolean":return My(e);case"bigint":return xh?xh(e):"0";case"symbol":return kh?kh(e):"Symbol()";case"undefined":return Lr(e);case"function":case"object":{if(e===null)return Lr(e);let t=e,n=pt(t,"toString");if(typeof n=="function"){let r=n(t);return typeof r=="string"?r:Lr(r)}return Lr(e)}default:return Lr(e)}}function pt(e,t){for(;e!==null;){let r=Ny(e,t);if(r){if(r.get)return we(r.get);if(typeof r.value=="function")return we(r.value)}e=Ly(e)}function n(){return null}return n}function zy(e){try{return Pe(e,""),!0}catch{return!1}}var _h=Ee(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),ds=Ee(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),hs=Ee(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Wy=Ee(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),ps=Ee(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Hy=Ee(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Eh=Ee(["#text"]),Th=Ee(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),fs=Ee(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Sh=Ee(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),ro=Ee(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Uy=Re(/{{[\w\W]*|^[\w\W]*}}/g),By=Re(/<%[\w\W]*|^[\w\W]*%>/g),Ky=Re(/\${[\w\W]*/g),Vy=Re(/^data-[\-\w.\u00B7-\uFFFF]+$/),jy=Re(/^aria-[\-\w]+$/),Rh=Re(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),qy=Re(/^(?:\w+script|data):/i),Yy=Re(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Xy=Re(/^html$/i),Zy=Re(/^[a-z][.\w]*(-[.\w]+)+$/i),Ah=Re(/<[/\w!]/g),Ch=Re(/<[/\w]/g),Qy=Re(/<\/no(script|embed|frames)/i),Jy=Re(/\/>/i),et={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Dh=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],eb=Ee(J({},Dh)),tb=(function(){let e={};return gn(Dh,t=>{e[t]=Re(new RegExp("</"+t+"(?=[\\t\\n\\f\\r />])","i"))}),Ee(e)})(),nb=function(){return typeof window>"u"?null:window},rb=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));let o="dompurify"+(r?"#"+r:"");try{return t.createPolicy(o,{createHTML(a){return a},createScriptURL(a){return a}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},Lh=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Kt=function(t,n,r,i){return je(t,n)&&Vn(t[n])?J(i.base?tt(i.base):{},t[n],i.transform):r},gs=function(t,n,r){let i=je(t,n)?t[n]:void 0;return i&&typeof i=="object"?tt(i):r()};function Ih(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nb(),t=N=>Ih(N);if(t.version="3.4.14",t.removed=[],!e||!e.document||e.document.nodeType!==et.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let o=e.HTMLTemplateElement,a=e.Node,s=e.Element,l=e.NodeFilter,c=e.NamedNodeMap;c===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let u=e.DOMParser,h=e.trustedTypes,d=s.prototype,p=pt(d,"cloneNode"),m=pt(d,"remove"),w=pt(d,"nextSibling"),v=pt(d,"childNodes"),y=pt(d,"parentNode"),b=pt(d,"shadowRoot"),k=pt(d,"attributes"),E=a&&a.prototype?pt(a.prototype,"nodeType"):null,I=a&&a.prototype?pt(a.prototype,"nodeName"):null,A=a&&a.prototype?pt(a.prototype,"ownerDocument"):null,D=function(g){return E?E(g):g.nodeType},O=function(g){return I?I(g):g.nodeName};if(typeof o=="function"){let N=n.createElement("template");N.content&&N.content.ownerDocument&&(n=N.content.ownerDocument)}let W,T="",F,V=!1,j=0,Q=function(){if(j>0)throw fn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},te=function(g){Q(),j++;try{return W.createHTML(g)}finally{j--}},rt=function(g){Q(),j++;try{return W.createScriptURL(g)}finally{j--}},Ie=function(){return V||(F=rb(h,i),V=!0),F},Ge=n,He=Ge.implementation,Ye=Ge.createNodeIterator,Xe=Ge.createDocumentFragment,Mt=Ge.getElementsByTagName,Te=r.importNode,X=Lh();t.isSupported=typeof Nh=="function"&&typeof y=="function"&&He&&He.createHTMLDocument!==void 0;let Ze=Uy,jt=By,Eo=Ky,Or=Vy,bt=jy,Fr=qy,xn=Yy,$r=Zy,Xn=Rh,se=null,Zn=J({},[..._h,...ds,...hs,...ps,...Eh]),ee=null,qt=J({},[...Th,...fs,...Sh,...ro]),Le=Object.seal(Kn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Yt=null,ct=null,me=Object.seal(Kn(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Me=!0,kn=!0,ye=!1,gt=!0,Ne=!1,xt=!0,be=!1,Ot=!1,it=null,Oe=null,Qn=!1,kt=!1,Xt=!1,_n=!1,zr=!0,Wr=!1,Hr="user-content-",En=!0,Jn=!1,_t={},Et=null,er=J({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),tr=null,Ur=J({},["audio","video","img","source","image","track"]),_=null,C=J({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),U="http://www.w3.org/1998/Math/MathML",L="http://www.w3.org/2000/svg",$="http://www.w3.org/1999/xhtml",ce=$,Ue=!1,Tt=null,Br=J({},[U,L,$],us),Kr=Ee(["mi","mo","mn","ms","mtext"]),To=J({},Kr),Os=Ee(["annotation-xml"]),So=J({},Os),Ef=J({},["title","style","font","a","script"]),nr=null,Tf=["application/xhtml+xml","text/html"],Sf="text/html",fe=null,Tn=null,Rf=n.createElement("form"),Fs=function(g){return g instanceof RegExp||g instanceof Function},Ro=function(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Tn&&Tn===g)return;(!g||typeof g!="object")&&(g={}),g=tt(g),nr=Tf.indexOf(g.PARSER_MEDIA_TYPE)===-1?Sf:g.PARSER_MEDIA_TYPE,fe=nr==="application/xhtml+xml"?us:Nr,se=Kt(g,"ALLOWED_TAGS",Zn,{transform:fe}),ee=Kt(g,"ALLOWED_ATTR",qt,{transform:fe}),Tt=Kt(g,"ALLOWED_NAMESPACES",Br,{transform:us}),_=Kt(g,"ADD_URI_SAFE_ATTR",C,{transform:fe,base:C}),tr=Kt(g,"ADD_DATA_URI_TAGS",Ur,{transform:fe,base:Ur}),Et=Kt(g,"FORBID_CONTENTS",er,{transform:fe}),Yt=Kt(g,"FORBID_TAGS",tt({}),{transform:fe}),ct=Kt(g,"FORBID_ATTR",tt({}),{transform:fe}),_t=je(g,"USE_PROFILES")?g.USE_PROFILES&&typeof g.USE_PROFILES=="object"?tt(g.USE_PROFILES):g.USE_PROFILES:!1,Me=g.ALLOW_ARIA_ATTR!==!1,kn=g.ALLOW_DATA_ATTR!==!1,ye=g.ALLOW_UNKNOWN_PROTOCOLS||!1,gt=g.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ne=g.SAFE_FOR_TEMPLATES||!1,xt=g.SAFE_FOR_XML!==!1,be=g.WHOLE_DOCUMENT||!1,kt=g.RETURN_DOM||!1,Xt=g.RETURN_DOM_FRAGMENT||!1,_n=g.RETURN_TRUSTED_TYPE||!1,Qn=g.FORCE_BODY||!1,zr=g.SANITIZE_DOM!==!1,Wr=g.SANITIZE_NAMED_PROPS||!1,En=g.KEEP_CONTENT!==!1,Jn=g.IN_PLACE||!1,Xn=zy(g.ALLOWED_URI_REGEXP)?g.ALLOWED_URI_REGEXP:Rh,ce=typeof g.NAMESPACE=="string"?g.NAMESPACE:$,To=gs(g,"MATHML_TEXT_INTEGRATION_POINTS",()=>J({},Kr)),So=gs(g,"HTML_INTEGRATION_POINTS",()=>J({},Os));let x=gs(g,"CUSTOM_ELEMENT_HANDLING",()=>Kn(null));if(Le=Kn(null),je(x,"tagNameCheck")&&Fs(x.tagNameCheck)&&(Le.tagNameCheck=x.tagNameCheck),je(x,"attributeNameCheck")&&Fs(x.attributeNameCheck)&&(Le.attributeNameCheck=x.attributeNameCheck),je(x,"allowCustomizedBuiltInElements")&&typeof x.allowCustomizedBuiltInElements=="boolean"&&(Le.allowCustomizedBuiltInElements=x.allowCustomizedBuiltInElements),Re(Le),Ne&&(kn=!1),Xt&&(kt=!0),_t&&(se=J({},Eh),ee=Kn(null),_t.html===!0&&(J(se,_h),J(ee,Th)),_t.svg===!0&&(J(se,ds),J(ee,fs),J(ee,ro)),_t.svgFilters===!0&&(J(se,hs),J(ee,fs),J(ee,ro)),_t.mathMl===!0&&(J(se,ps),J(ee,Sh),J(ee,ro))),me.tagCheck=null,me.attributeCheck=null,je(g,"ADD_TAGS")&&(typeof g.ADD_TAGS=="function"?me.tagCheck=g.ADD_TAGS:Vn(g.ADD_TAGS)&&(se===Zn&&(se=tt(se)),J(se,g.ADD_TAGS,fe))),je(g,"ADD_ATTR")&&(typeof g.ADD_ATTR=="function"?me.attributeCheck=g.ADD_ATTR:Vn(g.ADD_ATTR)&&(ee===qt&&(ee=tt(ee)),J(ee,g.ADD_ATTR,fe))),je(g,"ADD_FORBID_CONTENTS")&&Vn(g.ADD_FORBID_CONTENTS)&&(Et===er&&(Et=tt(Et)),J(Et,g.ADD_FORBID_CONTENTS,fe)),En&&(se["#text"]=!0),be&&J(se,["html","head","body"]),se.table&&(J(se,["tbody"]),delete Yt.tbody),g.TRUSTED_TYPES_POLICY){if(typeof g.TRUSTED_TYPES_POLICY.createHTML!="function")throw fn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof g.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw fn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let S=W;W=g.TRUSTED_TYPES_POLICY;try{T=te("")}catch(G){throw W=S,G}}else g.TRUSTED_TYPES_POLICY===null?(W=void 0,T=""):(W===void 0&&(W=Ie()),W&&typeof T=="string"&&(T=te("")));Ee&&Ee(g),Tn=g},$s=J({},[...ds,...hs,...Wy]),zs=J({},[...ps,...Hy]),Af=function(g,x,S){return x.namespaceURI===$?g==="svg":x.namespaceURI===U?g==="svg"&&(S==="annotation-xml"||To[S]):!!$s[g]},Cf=function(g,x,S){return x.namespaceURI===$?g==="math":x.namespaceURI===L?g==="math"&&So[S]:!!zs[g]},Lf=function(g,x,S){return x.namespaceURI===L&&!So[S]||x.namespaceURI===U&&!To[S]?!1:!zs[g]&&(Ef[g]||!$s[g])},Nf=function(g){let x=y(g);(!x||!x.tagName)&&(x={namespaceURI:ce,tagName:"template"});let S=Nr(g.tagName),G=Nr(x.tagName);return Tt[g.namespaceURI]?g.namespaceURI===L?Af(S,x,G):g.namespaceURI===U?Cf(S,x,G):g.namespaceURI===$?Lf(S,x,G):!!(nr==="application/xhtml+xml"&&Tt[g.namespaceURI]):!1},Ft=function(g){Ar(t.removed,{element:g});try{y(g).removeChild(g)}catch{if(m(g),!y(g))throw fn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Ws=function(g,x,S){try{g.removeAttributeNode(x)}catch{try{g.removeAttribute(S)}catch{}}},Vr=function(g){jr(g);let x=v(g);if(x){let G=[];gn(x,H=>{Ar(G,H)}),gn(G,H=>{try{m(H)}catch{}})}let S=k(g);if(S)for(let G=S.length-1;G>=0;--G){let H=S[G],K=H&&H.name;typeof K=="string"&&Ws(g,H,K)}},Zt=function(g,x,S){if(!S)try{S=x.getAttributeNode(g)}catch{S=null}Ar(t.removed,{attribute:S||null,from:x});try{S?x.removeAttributeNode(S):x.removeAttribute(g)}catch{try{x.removeAttribute(g)}catch{}}if(g==="is")if(kt||Xt)try{Ft(x)}catch{}else try{x.setAttribute(g,"")}catch{}},Pf=function(g){let x=k(g);if(x)for(let S=x.length-1;S>=0;--S){let G=x[S],H=G&&G.name;typeof H!="string"||ee[fe(H)]||Ws(g,G,H)}},jr=function(g){let x=[g];for(;x.length>0;){let S=x.pop();D(S)===et.element&&Pf(S);let H=v(S);if(H)for(let K=H.length-1;K>=0;--K)x.push(H[K])}},Hs=function(g,x){return xt?g==="patchsrc"?!0:g==="for"&&x!=="label"&&x!=="output":!1},Df=function(g){if(!xt)return;let x=[g];for(;x.length>0;){let S=x.pop(),G=D(S);if(G===et.processingInstruction||G===et.comment&&Pe(Ch,S.data)){try{m(S)}catch{}continue}if(G===et.element){let K=S,le=fe(O(S));try{K.hasAttribute&&K.hasAttribute("patchsrc")&&K.removeAttribute("patchsrc"),K.hasAttribute&&K.hasAttribute("for")&&Hs("for",le)&&K.removeAttribute("for")}catch{}}let H=v(S);if(H)for(let K=H.length-1;K>=0;--K)x.push(H[K])}},Us=function(g){let x=null,S=null;if(Qn)g="<remove></remove>"+g;else{let K=yh(g,/^[\r\n\t ]+/);S=K&&K[0]}nr==="application/xhtml+xml"&&ce===$&&(g='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+g+"</body></html>");let G=W?te(g):g;if(ce===$)try{x=new u().parseFromString(G,nr)}catch{}if(!x||!x.documentElement){x=He.createDocument(ce,"template",null);try{x.documentElement.innerHTML=Ue?T:G}catch{}}let H=x.body||x.documentElement;return g&&S&&H.insertBefore(n.createTextNode(S),H.childNodes[0]||null),ce===$?Mt.call(x,be?"html":"body")[0]:be?x.documentElement:H},Bs=function(g){let x=A?A(g):g.ownerDocument;return Ye.call(x||g,g,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},qr=function(g){return g=Cr(g,Ze," "),g=Cr(g,jt," "),g=Cr(g,Eo," "),g},Ao=function(g){var x;g.normalize();let S=A?A(g):g.ownerDocument,G=Ye.call(S||g,g,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),H=G.nextNode();for(;H;)H.data=qr(H.data),H=G.nextNode();let K=(x=g.querySelectorAll)===null||x===void 0?void 0:x.call(g,"template");K&&gn(K,le=>{Sn(le.content)&&Ao(le.content)})},Yr=function(g){let x=I?I(g):null;return typeof x!="string"||fe(x)!=="form"?!1:typeof g.nodeName!="string"||typeof g.textContent!="string"||typeof g.removeChild!="function"||g.attributes!==k(g)||typeof g.removeAttribute!="function"||typeof g.setAttribute!="function"||typeof g.namespaceURI!="string"||typeof g.insertBefore!="function"||typeof g.hasChildNodes!="function"||g.nodeType!==E(g)||g.childNodes!==v(g)},Sn=function(g){if(!E||typeof g!="object"||g===null)return!1;try{return E(g)===et.documentFragment}catch{return!1}},rr=function(g){if(!E||typeof g!="object"||g===null)return!1;try{return typeof E(g)=="number"}catch{return!1}};function mt(N,g,x){N.length!==0&&gn(N,S=>{S.call(t,g,x,Tn)})}let If=function(g,x){return!!(xt&&g.hasChildNodes()&&!rr(g.firstElementChild)&&Pe(Ah,g.textContent)&&Pe(Ah,g.innerHTML)||xt&&g.namespaceURI===$&&eb[x]&&(rr(g.firstElementChild)||typeof g.textContent=="string"&&Pe(tb[x],g.textContent))||g.nodeType===et.processingInstruction||xt&&g.nodeType===et.comment&&Pe(Ch,g.data))},Xr=function(g,x){if(g instanceof RegExp)return Pe(g,x);if(g instanceof Function){for(var S=arguments.length,G=new Array(S>2?S-2:0),H=2;H<S;H++)G[H-2]=arguments[H];return!!g(x,...G)}return!1},Gf=function(g,x,S){if(!Yt[x]&&Ys(x)&&Xr(Le.tagNameCheck,x))return!1;if(En&&!Et[x]){let G=y(g),H=v(g);if(H&&G){let K=H.length;for(let le=K-1;le>=0;--le){let de=g===S?p(H[le],!0):H[le];G.insertBefore(de,w(g))}}}return Ft(g),!0},Ks=function(g,x,S,G){return g.length===0?x:x===S||x===G?tt(x):x},Vs=function(g,x){return g===x||y(g)!==null?!1:(Jn&&jr(g),!0)},js=function(g,x){if(mt(X.beforeSanitizeElements,g,null),Vs(g,x))return!0;if(Yr(g))return Ft(g),!0;let S=fe(O(g));if(se=Ks(X.uponSanitizeElement,se,Zn,it),mt(X.uponSanitizeElement,g,{tagName:S,allowedTags:se}),Vs(g,x))return!0;if(If(g,S))return Ft(g),!0;if(Yt[S]||!(me.tagCheck instanceof Function&&me.tagCheck(S))&&!se[S]){let H=Gf(g,S,x);return H===!1&&mt(X.afterSanitizeElements,g,null),H}if(D(g)===et.element&&!Nf(g)||(S==="noscript"||S==="noembed"||S==="noframes")&&Pe(Qy,g.innerHTML))return Ft(g),!0;if(Ne&&g.nodeType===et.text){let H=qr(g.textContent);g.textContent!==H&&(Ar(t.removed,{element:g.cloneNode()}),g.textContent=H)}return mt(X.afterSanitizeElements,g,null),!1},qs=function(g,x,S){if(ct[x]||Hs(x,g)||zr&&(x==="id"||x==="name")&&(S in n||S in Rf))return!1;let G=ee[x]||me.attributeCheck instanceof Function&&me.attributeCheck(x,g);return kn&&Pe(Or,x)||Me&&Pe(bt,x)?!0:G?_[x]||Pe(Xn,Cr(S,xn,""))||(x==="src"||x==="xlink:href"||x==="href")&&g!=="script"&&bh(S,"data:")===0&&tr[g]||ye&&!Pe(Fr,Cr(S,xn,""))?!0:!S:Ys(g)&&Xr(Le.tagNameCheck,g)&&Xr(Le.attributeNameCheck,x,g)||x==="is"&&Le.allowCustomizedBuiltInElements&&Xr(Le.tagNameCheck,S)},Mf=J({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),Ys=function(g){return!Mf[Nr(g)]&&Pe($r,g)},Of=function(g,x,S,G){if(W&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!S)switch(h.getAttributeType(g,x)){case"TrustedHTML":return te(G);case"TrustedScriptURL":return rt(G)}return G},Ff=function(g,x,S,G){try{S?g.setAttributeNS(S,x,G):g.setAttribute(x,G),Yr(g)?Ft(g):wh(t.removed)}catch{Zt(x,g)}},Xs=function(g){mt(X.beforeSanitizeAttributes,g,null);let x=g.attributes;if(!x||Yr(g))return;ee=Ks(X.uponSanitizeAttribute,ee,qt,Oe);let S={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ee,forceKeepAttr:void 0},G=x.length,H=fe(g.nodeName);for(;G--;){let K=x[G],le=K.name,de=K.namespaceURI,Be=K.value,Ke=fe(le),Lo=Be,Fe=le==="value"?Lo:Iy(Lo);if(S.attrName=Ke,S.attrValue=Fe,S.keepAttr=!0,S.forceKeepAttr=void 0,mt(X.uponSanitizeAttribute,g,S),Fe=S.attrValue,Wr&&(Ke==="id"||Ke==="name")&&bh(Fe,Hr)!==0&&(Zt(le,g,K),Fe=Hr+Fe),xt&&Pe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Fe)){Zt(le,g,K);continue}if(Ke==="attributename"&&yh(Fe,"href")){Zt(le,g,K);continue}if(!S.forceKeepAttr){if(!S.keepAttr){Zt(le,g,K);continue}if(!gt&&Pe(Jy,Fe)){Zt(le,g,K);continue}if(Ne&&(Fe=qr(Fe)),!qs(H,Ke,Fe)){Zt(le,g,K);continue}Fe=Of(H,Ke,de,Fe),Fe!==Lo&&Ff(g,le,de,Fe)}}mt(X.afterSanitizeAttributes,g,null)},Zr=function(g){let x=null,S=Bs(g);for(mt(X.beforeSanitizeShadowDOM,g,null);x=S.nextNode();)if(mt(X.uponSanitizeShadowNode,x,null),js(x,g),Xs(x),Sn(x.content)&&Zr(x.content),D(x)===et.element){let G=b(x);Sn(G)&&(Co(G),Zr(G))}mt(X.afterSanitizeShadowDOM,g,null)},Co=function(g){let x=[{node:g,shadow:null}];for(;x.length>0;){let S=x.pop();if(S.shadow){Zr(S.shadow);continue}let G=S.node,K=D(G)===et.element,le=v(G);if(le)for(let de=le.length-1;de>=0;--de)x.push({node:le[de],shadow:null});if(K){let de=I?I(G):null;if(typeof de=="string"&&fe(de)==="template"){let Be=G.content;Sn(Be)&&x.push({node:Be,shadow:null})}}if(K){let de=b(G);Sn(de)&&x.push({node:null,shadow:de},{node:de,shadow:null})}}};return t.sanitize=function(N){let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},x=null,S=null,G=null,H=null;if(Ue=!N,Ue&&(N="<!-->"),typeof N!="string"&&!rr(N)&&(N=$y(N),typeof N!="string"))throw fn("dirty is not a string, aborting");if(!t.isSupported)return N;Ot?(se=it,ee=Oe):Ro(g),(X.uponSanitizeElement.length>0||X.uponSanitizeAttribute.length>0)&&(se=tt(se)),X.uponSanitizeAttribute.length>0&&(ee=tt(ee)),t.removed=[];let K=Jn&&typeof N!="string"&&rr(N);if(K){Df(N);let Be=O(N);if(typeof Be=="string"){let Ke=fe(Be);if(!se[Ke]||Yt[Ke])throw Vr(N),fn("root node is forbidden and cannot be sanitized in-place")}if(Yr(N))throw Vr(N),fn("root node is clobbered and cannot be sanitized in-place");try{Co(N)}catch(Ke){throw Vr(N),Ke}}else if(rr(N))x=Us("<!---->"),S=x.ownerDocument.importNode(N,!0),S.nodeType===et.element&&S.nodeName==="BODY"||S.nodeName==="HTML"?x=S:x.appendChild(S),Co(S);else{if(!kt&&!Ne&&!be&&N.indexOf("<")===-1)return W&&_n?te(N):N;if(x=Us(N),!x)return kt?null:_n?T:""}x&&Qn&&Ft(x.firstChild);let le=K?N:x;try{let Be=Bs(le);for(;G=Be.nextNode();)js(G,le),Xs(G),Sn(G.content)&&Zr(G.content)}catch(Be){throw K&&(Vr(N),gn(t.removed,Ke=>{Ke.element&&jr(Ke.element)})),Be}if(K)return gn(t.removed,Be=>{Be.element&&jr(Be.element)}),Ne&&Ao(N),N;if(kt){if(Ne&&Ao(x),Xt)for(H=Xe.call(x.ownerDocument);x.firstChild;)H.appendChild(x.firstChild);else H=x;return(ee.shadowroot||ee.shadowrootmode)&&(H=Te.call(r,H,!0)),H}let de=be?x.outerHTML:x.innerHTML;return be&&se["!doctype"]&&x.ownerDocument&&x.ownerDocument.doctype&&x.ownerDocument.doctype.name&&Pe(Xy,x.ownerDocument.doctype.name)&&(de="<!DOCTYPE "+x.ownerDocument.doctype.name+`>
334
- `+de),Ne&&(de=qr(de)),W&&_n?te(de):de},t.setConfig=function(){let N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ro(N),Ot=!0,it=se,Oe=ee},t.clearConfig=function(){Tn=null,Ot=!1,it=null,Oe=null,W=F,T=""},t.isValidAttribute=function(N,g,x){Tn||Ro({});let S=fe(N),G=fe(g);return qs(S,G,x)},t.addHook=function(N,g){typeof g=="function"&&je(X,N)&&Ar(X[N],g)},t.removeHook=function(N,g){if(je(X,N)){if(g!==void 0){let x=Py(X[N],g);return x===-1?void 0:Dy(X[N],x,1)[0]}return wh(X[N])}},t.removeHooks=function(N){je(X,N)&&(X[N]=[])},t.removeAllHooks=function(){X=Lh()},t}var Gh=Ih();function xs(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var wn=xs();function Uh(e){wn=e}var mn={exec:()=>null};function jn(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function Z(e,t=""){let n=typeof e=="string"?e:e.source,r={replace:(i,o)=>{let a=typeof o=="string"?o:o.source;return a=a.replace(De.caret,"$1"),n=n.replace(i,a),r},getRegex:()=>new RegExp(n,t)};return r}var ib=((e="")=>{try{return!!new RegExp("(?<=1)(?<!1)"+e)}catch{return!1}})(),De={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:jn(e=>new RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:jn(e=>new RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:jn(e=>new RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:jn(e=>new RegExp(`^ {0,${e}}#`)),htmlBeginRegex:jn(e=>new RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,"i")),blockquoteBeginRegex:jn(e=>new RegExp(`^ {0,${e}}>`))},ob=/^(?:[ \t]*(?:\n|$))+/,ab=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,sb=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,Ir=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,lb=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,ks=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Bh=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Kh=Z(Bh).replace(/bull/g,ks).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),cb=Z(Bh).replace(/bull/g,ks).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),_s=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,ub=/^[^\n]+/,Es=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,db=Z(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Es).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),hb=Z(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,ks).getRegex(),lo="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Ts=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,pb=Z("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",Ts).replace("tag",lo).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Vh=e=>Z(_s).replace("hr",Ir).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list",e).replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",lo).getRegex(),fb=Vh(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),gb=Vh(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),mb=Z(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",gb).getRegex(),Ss={blockquote:mb,code:ab,def:db,fences:sb,heading:lb,hr:Ir,html:pb,lheading:Kh,list:hb,newline:ob,paragraph:fb,table:mn,text:ub},Mh=Z("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",Ir).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",lo).getRegex(),vb={...Ss,lheading:cb,table:Mh,paragraph:Z(_s).replace("hr",Ir).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Mh).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",lo).getRegex()},wb={...Ss,html:Z(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Ts).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:mn,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:Z(_s).replace("hr",Ir).replace("heading",` *#{1,6} *[^
335
- ]`).replace("lheading",Kh).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},yb=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,bb=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,jh=/^( {2,}|\\)\n(?!\s*$)/,xb=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,It=/[\p{P}\p{S}]/u,qn=/[\s\p{P}\p{S}]/u,Gr=/[^\s\p{P}\p{S}]/u,kb=Z(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,qn).getRegex(),_b=/[\p{Pi}\p{Ps}"']/u,qh=/(?!~)[\p{P}\p{S}]/u,Eb=/(?!~)[\s\p{P}\p{S}]/u,Tb=/(?:[^\s\p{P}\p{S}]|~)/u,Sb=Z(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",ib?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),Yh=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Rb=Z(Yh,"u").replace(/punct/g,It).getRegex(),Ab=Z(Yh,"u").replace(/punct/g,qh).getRegex(),Cb=/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,Lb=Z(Cb,"u").replace(/openQuote/g,_b).replace(/punct/g,It).getRegex(),Xh="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Nb=Z(Xh,"gu").replace(/notPunctSpace/g,Gr).replace(/punctSpace/g,qn).replace(/punct/g,It).getRegex(),Pb=Z(Xh,"gu").replace(/notPunctSpace/g,Tb).replace(/punctSpace/g,Eb).replace(/punct/g,qh).getRegex(),Db="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)",Ib=Z(Db,"gu").replace(/notPunctSpace/g,Gr).replace(/punctSpace/g,qn).replace(/punct/g,It).getRegex(),Gb=Z("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Gr).replace(/punctSpace/g,qn).replace(/punct/g,It).getRegex(),Mb="^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)",Ob=Z(Mb,"gu").replace(/notPunctSpace/g,Gr).replace(/punctSpace/g,qn).replace(/punct/g,It).getRegex(),Fb=Z(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,It).getRegex(),$b="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",zb=Z($b,"gu").replace(/notPunctSpace/g,Gr).replace(/punctSpace/g,qn).replace(/punct/g,It).getRegex(),Wb=Z(/\\(punct)/,"gu").replace(/punct/g,It).getRegex(),Hb=Z(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Ub=Z(Ts).replace("(?:-->|$)","-->").getRegex(),Bb=Z("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",Ub).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),oo=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,Kb=Z(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace("label",oo).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Zh=Z(/^!?\[(label)\]\[(ref)\]/).replace("label",oo).replace("ref",Es).getRegex(),Qh=Z(/^!?\[(ref)\](?:\[\])?/).replace("ref",Es).getRegex(),Vb=Z("reflink|nolink(?!\\()","g").replace("reflink",Zh).replace("nolink",Qh).getRegex(),Oh=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,Rs={_backpedal:mn,anyPunctuation:Wb,autolink:Hb,blockSkip:Sb,br:jh,code:bb,del:mn,delLDelim:mn,delRDelim:mn,emStrongLDelim:Rb,emStrongRDelimAst:Nb,emStrongRDelimUnd:Gb,escape:yb,link:Kb,nolink:Qh,punctuation:kb,reflink:Zh,reflinkSearch:Vb,tag:Bb,text:xb,url:mn},jb={...Rs,emStrongLDelim:Lb,emStrongRDelimAst:Ib,emStrongRDelimUnd:Ob,link:Z(/^!?\[(label)\]\((.*?)\)/).replace("label",oo).getRegex(),reflink:Z(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",oo).getRegex()},ws={...Rs,emStrongRDelimAst:Pb,emStrongLDelim:Ab,delLDelim:Fb,delRDelim:zb,url:Z(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Oh).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:Z(/^(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Oh).getRegex()},qb={...ws,br:Z(jh).replace("{2,}","*").getRegex(),text:Z(ws.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},io={normal:Ss,gfm:vb,pedantic:wb},Pr={normal:Rs,gfm:ws,breaks:qb,pedantic:jb},Yb={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Fh=e=>Yb[e];function yt(e,t){if(t){if(De.escapeTest.test(e))return e.replace(De.escapeReplace,Fh)}else if(De.escapeTestNoEncode.test(e))return e.replace(De.escapeReplaceNoEncode,Fh);return e}function $h(e){try{e=encodeURI(e).replace(De.percentDecode,"%")}catch{return null}return e}function zh(e,t){let n=e.replace(De.findPipe,(o,a,s)=>{let l=!1,c=a;for(;--c>=0&&s[c]==="\\";)l=!l;return l?"|":" |"}),r=n.split(De.splitPipe),i=0;if(r[0].trim()||r.shift(),r.length>0&&!r.at(-1)?.trim()&&r.pop(),t)if(r.length>t)r.splice(t);else for(;r.length<t;)r.push("");for(;i<r.length;i++)r[i]=r[i].trim().replace(De.slashPipe,"|");return r}function Vt(e,t,n){let r=e.length;if(r===0)return"";let i=0;for(;i<r;){let o=e.charAt(r-i-1);if(o===t&&!n)i++;else if(o!==t&&n)i++;else break}return e.slice(0,r-i)}function Wh(e){let t=e.split(`
336
- `),n=t.length-1;for(;n>=0&&De.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
337
- `)}function Xb(e,t){if(e.indexOf(t[1])===-1)return-1;let n=0;for(let r=0;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]===t[0])n++;else if(e[r]===t[1]&&(n--,n<0))return r;return n>0?-2:-1}function Zb(e,t=0){let n=t,r="";for(let i of e)if(i===" "){let o=4-n%4;r+=" ".repeat(o),n+=o}else r+=i,n++;return r}function Hh(e,t,n,r,i){let o=t.href,a=t.title||null,s=e[1].replace(i.other.outputLinkReplace,"$1");r.state.inLink=!0;let l={type:e[0].charAt(0)==="!"?"image":"link",raw:n,href:o,title:a,text:s,tokens:r.inlineTokens(s)};return r.state.inLink=!1,l}function Qb(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(r===null)return t;let i=r[1];return t.split(`
338
- `).map(o=>{let a=o.match(n.other.beginningSpace);if(a===null)return o;let[s]=a;return s.length>=i.length?o.slice(i.length):o}).join(`
339
- `)}var ao=class{options;rules;lexer;constructor(e){this.options=e||wn}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=this.options.pedantic?t[0]:Wh(t[0]),r=n.replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:n,codeBlockStyle:"indented",text:r}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Qb(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=Vt(n,"#");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:"heading",raw:Vt(t[0],`
340
- `),depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:Vt(t[0],`
341
- `)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=Vt(t[0],`
342
- `).split(`
343
- `),r="",i="",o=[];for(;n.length>0;){let a=!1,s=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))s.push(n[l]),a=!0;else if(!a)s.push(n[l]);else break;n=n.slice(l);let c=s.join(`
344
- `),u=c.replace(this.rules.other.blockquoteSetextReplace,`
345
- $1`).replace(this.rules.other.blockquoteSetextReplace2,"");r=r?`${r}
346
- ${c}`:c,i=i?`${i}
347
- ${u}`:u;let h=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(u,o,!0),this.lexer.state.top=h,n.length===0)break;let d=o.at(-1);if(d?.type==="code")break;if(d?.type==="blockquote"){let p=d,m=n.join(`
348
- `),w=p.raw+`
349
- `+m.replace(this.rules.other.blockquoteSetextReplace2,""),v=this.blockquote(w);o[o.length-1]=v,r=`${r}
350
- ${m}`,i=i.substring(0,i.length-p.text.length)+v.text;break}else if(d?.type==="list"){let p=d,m=p.raw+`
351
- `+n.join(`
352
- `),w=this.list(m);o[o.length-1]=w,r=r.substring(0,r.length-d.raw.length)+w.raw,i=i.substring(0,i.length-p.raw.length)+w.raw,n=m.substring(o.at(-1).raw.length).split(`
353
- `);continue}}return{type:"blockquote",raw:r,tokens:o,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:"list",raw:"",ordered:r,start:r?+n.slice(0,-1):"",loose:!1,items:[]};n=r?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=r?n:"[*+-]");let o=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,c="",u="";if(!(t=o.exec(e))||this.rules.block.hr.test(e))break;c=t[0],e=e.substring(c.length);let h=Zb(t[2].split(`
354
- `,1)[0],t[1].length),d=e.split(`
355
- `,1)[0],p=!h.trim(),m=0;if(this.options.pedantic?(m=2,u=h.trimStart()):p?m=t[1].length+1:(m=h.search(this.rules.other.nonSpaceChar),m=m>4?1:m,u=h.slice(m),m+=t[1].length),p&&this.rules.other.blankLine.test(d)&&(c+=d+`
356
- `,e=e.substring(d.length+1),l=!0),!l){let w=this.rules.other.nextBulletRegex(m),v=this.rules.other.hrRegex(m),y=this.rules.other.fencesBeginRegex(m),b=this.rules.other.headingBeginRegex(m),k=this.rules.other.htmlBeginRegex(m),E=this.rules.other.blockquoteBeginRegex(m);for(;e;){let I=e.split(`
357
- `,1)[0],A;if(d=I,this.options.pedantic?(d=d.replace(this.rules.other.listReplaceNesting," "),A=d):A=d.replace(this.rules.other.tabCharGlobal," "),y.test(d)||b.test(d)||k.test(d)||E.test(d)||w.test(d)||v.test(d))break;if(A.search(this.rules.other.nonSpaceChar)>=m||!d.trim())u+=`
358
- `+A.slice(m);else{if(p||h.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||y.test(h)||b.test(h)||v.test(h))break;u+=`
359
- `+d}p=!d.trim(),c+=I+`
360
- `,e=e.substring(I.length+1),h=A.slice(m)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(a=!0)),i.items.push({type:"list_item",raw:c,task:!!this.options.gfm&&this.rules.other.listIsTask.test(u),loose:!1,text:u,tokens:[]}),i.raw+=c}let s=i.items.at(-1);if(s)s.raw=s.raw.trimEnd(),s.text=s.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items)if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),!i.loose){let c=l.tokens.filter(h=>h.type==="space"),u=c.length>0&&c.some(h=>this.rules.other.anyLine.test(h.raw));i.loose=u}for(let l of i.items){let c=l.tokens[0];if(l.task&&(c?.type==="text"||c?.type==="paragraph")){l.text=l.text.replace(this.rules.other.listReplaceTask,""),c.raw=c.raw.replace(this.rules.other.listReplaceTask,""),c.text=c.text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}let u=this.rules.other.listTaskCheckbox.exec(l.raw);if(u){let h={type:"checkbox",raw:u[0]+" ",checked:u[0]!=="[ ]"};l.checked=h.checked,i.loose?l.tokens[0]&&["paragraph","text"].includes(l.tokens[0].type)&&"tokens"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=h.raw+l.tokens[0].raw,l.tokens[0].text=h.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(h)):l.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):l.tokens.unshift(h)}}else l.task&&(l.task=!1)}if(i.loose)for(let l of i.items){l.loose=!0;for(let c of l.tokens)c.type==="text"&&(c.type="paragraph")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t){let n=Wh(t[0]);return{type:"html",block:!0,raw:n,pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:n}}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:n,raw:Vt(t[0],`
361
- `),href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=zh(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,"").split("|"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,"").split(`
362
- `):[],o={type:"table",raw:Vt(t[0],`
363
- `),header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?o.align.push("right"):this.rules.other.tableAlignCenter.test(a)?o.align.push("center"):this.rules.other.tableAlignLeft.test(a)?o.align.push("left"):o.align.push(null);for(let a=0;a<n.length;a++)o.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:o.align[a]});for(let a of i)o.rows.push(zh(a,o.header.length).map((s,l)=>({text:s,tokens:this.lexer.inline(s),header:!1,align:o.align[l]})));return o}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:"heading",raw:Vt(t[0],`
364
- `),depth:t[2].charAt(0)==="="?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`
365
- `?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let o=Vt(n.slice(0,-1),"\\");if((n.length-o.length)%2===0)return}else{let o=Xb(t[2],"()");if(o===-2)return;if(o>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+o;t[2]=t[2].substring(0,o),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let r=t[2],i="";if(this.options.pedantic){let o=this.rules.other.pedanticHrefTitle.exec(r);o&&(r=o[1],i=o[3])}else i=t[3]?t[3].slice(1,-1):"";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),Hh(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[r.toLowerCase()];if(!i){let o=n[0].charAt(0);return{type:"text",raw:o,text:o}}return Hh(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let r=this.rules.inline.emStrongLDelim.exec(e);if(!(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(r[1]||r[3])||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,s=i,l=0,c=r[0][0],u=n===c,h=c==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(h.lastIndex=0,t=t.slice(-1*e.length+i);(r=h.exec(t))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o)continue;if(a=[...o].length,r[3]||r[4]){s+=a;continue}else if(r[5]||r[6]){if(i%3&&!((i+a)%3)){l+=a;continue}if(u)break}if(s-=a,s>0)continue;a=Math.min(a,a+s+l);let d=[...r[0]][0].length,p=e.slice(0,i+r.index+d+a);if(Math.min(i,a)%2){let w=p.slice(1,-1);return{type:"em",raw:p,text:w,tokens:this.lexer.inlineTokens(w)}}let m=p.slice(2,-2);return{type:"strong",raw:p,text:m,tokens:this.lexer.inlineTokens(m)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e,t,n=""){let r=this.rules.inline.delLDelim.exec(e);if(r&&(!r[1]||!n||this.rules.inline.punctuation.exec(n))){let i=[...r[0]].length-1,o,a,s=i,l=this.rules.inline.delRDelim;for(l.lastIndex=0,t=t.slice(-1*e.length+i);(r=l.exec(t))!==null;){if(o=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!o||(a=[...o].length,a!==i))continue;if(r[3]||r[4]){s+=a;continue}if(s-=a,s>0)continue;a=Math.min(a,a+s);let c=[...r[0]][0].length,u=e.slice(0,i+r.index+c+a),h=u.slice(i,-i);return{type:"del",raw:u,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]==="@"?(n=t[1],r="mailto:"+n):(n=t[1],r=n),{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]==="@")n=t[0],r="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?r="http://"+t[0]:r=t[0]}return{type:"link",raw:t[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}},qe=class ys{tokens;options;state;inlineQueue;tokenizer;constructor(t){this.tokens=[],this.tokens.links=Object.create(null),this.options=t||wn,this.options.tokenizer=this.options.tokenizer||new ao,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:De,block:io.normal,inline:Pr.normal};this.options.pedantic?(n.block=io.pedantic,n.inline=Pr.pedantic):this.options.gfm&&(n.block=io.gfm,this.options.breaks?n.inline=Pr.breaks:n.inline=Pr.gfm),this.tokenizer.rules=n}static get rules(){return{block:io,inline:Pr}}static lex(t,n){return new ys(n).lex(t)}static lexInline(t,n){return new ys(n).inlineTokens(t)}lex(t){t=t.replace(De.carriageReturn,`
366
- `),this.blockTokens(t,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let r=this.inlineQueue[n];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(t,n=[],r=!1){this.tokenizer.lexer=this,this.options.pedantic&&(t=t.replace(De.tabCharGlobal," ").replace(De.spaceLine,""));let i=1/0;for(;t;){if(t.length<i)i=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}let o;if(this.options.extensions?.block?.some(s=>(o=s.call({lexer:this},t,n))?(t=t.substring(o.raw.length),n.push(o),!0):!1))continue;if(o=this.tokenizer.space(t)){t=t.substring(o.raw.length);let s=n.at(-1);o.raw.length===1&&s!==void 0?s.raw+=`
367
- `:n.push(o);continue}if(o=this.tokenizer.code(t)){t=t.substring(o.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
368
- `)?"":`
369
- `)+o.raw,s.text+=`
370
- `+o.text,this.inlineQueue.at(-1).src=s.text):n.push(o);continue}if(o=this.tokenizer.fences(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.heading(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.hr(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.blockquote(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.list(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.html(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.def(t)){t=t.substring(o.raw.length);let s=n.at(-1);s?.type==="paragraph"||s?.type==="text"?(s.raw+=(s.raw.endsWith(`
371
- `)?"":`
372
- `)+o.raw,s.text+=`
373
- `+o.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},n.push(o));continue}if(o=this.tokenizer.table(t)){t=t.substring(o.raw.length),n.push(o);continue}if(o=this.tokenizer.lheading(t)){t=t.substring(o.raw.length),n.push(o);continue}let a=t;if(this.options.extensions?.startBlock){let s=1/0,l=t.slice(1),c;this.options.extensions.startBlock.forEach(u=>{c=u.call({lexer:this},l),typeof c=="number"&&c>=0&&(s=Math.min(s,c))}),s<1/0&&s>=0&&(a=t.substring(0,s+1))}if(this.state.top&&(o=this.tokenizer.paragraph(a))){let s=n.at(-1);r&&s?.type==="paragraph"?(s.raw+=(s.raw.endsWith(`
374
- `)?"":`
375
- `)+o.raw,s.text+=`
376
- `+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(o),r=a.length!==t.length,t=t.substring(o.raw.length);continue}if(o=this.tokenizer.text(t)){t=t.substring(o.raw.length);let s=n.at(-1);s?.type==="text"?(s.raw+=(s.raw.endsWith(`
377
- `)?"":`
378
- `)+o.raw,s.text+=`
379
- `+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):n.push(o);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return this.state.top=!0,n}inline(t,n=[]){return this.inlineQueue.push({src:t,tokens:n}),n}inlineTokens(t,n=[]){this.tokenizer.lexer=this;let r=t;if(this.tokens.links){let s=Object.keys(this.tokens.links);s.length>0&&(r=r.replace(this.tokenizer.rules.inline.reflinkSearch,l=>s.includes(l.slice(l.lastIndexOf("[")+1,-1))?"["+"a".repeat(l.length-2)+"]":l))}r=r.replace(this.tokenizer.rules.inline.anyPunctuation,s=>"+".repeat(s.length)),r=r.replace(this.tokenizer.rules.inline.blockSkip,(s,l,c)=>{let u=c?c.length:0;return s.slice(0,u)+"["+"a".repeat(s.length-u-2)+"]"}),r=this.options.hooks?.emStrongMask?.call({lexer:this},r)??r;let i=!1,o="",a=1/0;for(;t;){if(t.length<a)a=t.length;else{this.infiniteLoopError(t.charCodeAt(0));break}i||(o=""),i=!1;let s;if(this.options.extensions?.inline?.some(c=>(s=c.call({lexer:this},t,n))?(t=t.substring(s.raw.length),n.push(s),!0):!1))continue;if(s=this.tokenizer.escape(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.tag(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.link(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(s.raw.length);let c=n.at(-1);s.type==="text"&&c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):n.push(s);continue}if(s=this.tokenizer.emStrong(t,r,o)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.codespan(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.br(t)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.del(t,r,o)){t=t.substring(s.raw.length),n.push(s);continue}if(s=this.tokenizer.autolink(t)){t=t.substring(s.raw.length),n.push(s);continue}if(!this.state.inLink&&(s=this.tokenizer.url(t))){t=t.substring(s.raw.length),n.push(s);continue}let l=t;if(this.options.extensions?.startInline){let c=1/0,u=t.slice(1),h;this.options.extensions.startInline.forEach(d=>{h=d.call({lexer:this},u),typeof h=="number"&&h>=0&&(c=Math.min(c,h))}),c<1/0&&c>=0&&(l=t.substring(0,c+1))}if(s=this.tokenizer.inlineText(l)){t=t.substring(s.raw.length),s.raw.slice(-1)!=="_"&&(o=s.raw.slice(-1)),i=!0;let c=n.at(-1);c?.type==="text"?(c.raw+=s.raw,c.text+=s.text):n.push(s);continue}if(t){this.infiniteLoopError(t.charCodeAt(0));break}}return n}infiniteLoopError(t){let n="Infinite loop on byte: "+t;if(this.options.silent)console.error(n);else throw new Error(n)}},so=class{options;parser;constructor(e){this.options=e||wn}space(e){return""}code({text:e,lang:t,escaped:n}){let r=(t||"").match(De.notSpaceStart)?.[0],i=e.replace(De.endingNewline,"")+`
380
- `;return r?'<pre><code class="language-'+yt(r)+'">'+(n?i:yt(i,!0))+`</code></pre>
381
- `:"<pre><code>"+(n?i:yt(i,!0))+`</code></pre>
382
- `}blockquote({tokens:e}){return`<blockquote>
383
- ${this.parser.parse(e)}</blockquote>
384
- `}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>
385
- `}hr(e){return`<hr>
386
- `}list(e){let t=e.ordered,n=e.start,r="";for(let a=0;a<e.items.length;a++){let s=e.items[a];r+=this.listitem(s)}let i=t?"ol":"ul",o=t&&n!==1?' start="'+n+'"':"";return"<"+i+o+`>
387
- `+r+"</"+i+`>
388
- `}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>
389
- `}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>
390
- `}table(e){let t="",n="";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r="";for(let i=0;i<e.rows.length;i++){let o=e.rows[i];n="";for(let a=0;a<o.length;a++)n+=this.tablecell(o[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>
391
- <thead>
392
- `+t+`</thead>
393
- `+r+`</table>
394
- `}tablerow({text:e}){return`<tr>
395
- ${e}</tr>
396
- `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+`</${n}>
397
- `}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${yt(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=$h(e);if(i===null)return r;e=i;let o='<a href="'+e+'"';return t&&(o+=' title="'+yt(t)+'"'),o+=">"+r+"</a>",o}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=$h(e);if(i===null)return yt(n);e=i;let o=`<img src="${e}" alt="${yt(n)}"`;return t&&(o+=` title="${yt(t)}"`),o+=">",o}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:yt(e.text)}},As=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}checkbox({raw:e}){return e}},ft=class bs{options;renderer;textRenderer;constructor(t){this.options=t||wn,this.options.renderer=this.options.renderer||new so,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new As}static parse(t,n){return new bs(n).parse(t)}static parseInline(t,n){return new bs(n).parseInline(t)}parse(t){this.renderer.parser=this;let n="";for(let r=0;r<t.length;r++){let i=t[r];if(this.options.extensions?.renderers?.[i.type]){let a=i,s=this.options.extensions.renderers[a.type].call({parser:this},a);if(s!==!1||!["space","hr","heading","code","table","blockquote","list","checkbox","html","def","paragraph","text"].includes(a.type)){n+=s||"";continue}}let o=i;switch(o.type){case"space":{n+=this.renderer.space(o);break}case"hr":{n+=this.renderer.hr(o);break}case"heading":{n+=this.renderer.heading(o);break}case"code":{n+=this.renderer.code(o);break}case"table":{n+=this.renderer.table(o);break}case"blockquote":{n+=this.renderer.blockquote(o);break}case"list":{n+=this.renderer.list(o);break}case"checkbox":{n+=this.renderer.checkbox(o);break}case"html":{n+=this.renderer.html(o);break}case"def":{n+=this.renderer.def(o);break}case"paragraph":{n+=this.renderer.paragraph(o);break}case"text":{n+=this.renderer.text(o);break}default:{let a='Token with "'+o.type+'" type was not found.';if(this.options.silent)return console.error(a),"";throw new Error(a)}}}return n}parseInline(t,n=this.renderer){this.renderer.parser=this;let r="";for(let i=0;i<t.length;i++){let o=t[i];if(this.options.extensions?.renderers?.[o.type]){let s=this.options.extensions.renderers[o.type].call({parser:this},o);if(s!==!1||!["escape","html","link","image","checkbox","strong","em","codespan","br","del","text"].includes(o.type)){r+=s||"";continue}}let a=o;switch(a.type){case"escape":{r+=n.text(a);break}case"html":{r+=n.html(a);break}case"link":{r+=n.link(a);break}case"image":{r+=n.image(a);break}case"checkbox":{r+=n.checkbox(a);break}case"strong":{r+=n.strong(a);break}case"em":{r+=n.em(a);break}case"codespan":{r+=n.codespan(a);break}case"br":{r+=n.br(a);break}case"del":{r+=n.del(a);break}case"text":{r+=n.text(a);break}default:{let s='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(s),"";throw new Error(s)}}}return r}},Dr=class{options;block;constructor(e){this.options=e||wn}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?qe.lex:qe.lexInline}provideParser(e=this.block){return e?ft.parse:ft.parseInline}},co=class{defaults=xs();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=ft;Renderer=so;TextRenderer=As;Lexer=qe;Tokenizer=ao;Hooks=Dr;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case"table":{let i=r;for(let o of i.header)n=n.concat(this.walkTokens(o.tokens,t));for(let o of i.rows)for(let a of o)n=n.concat(this.walkTokens(a.tokens,t));break}case"list":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(o=>{let a=i[o].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let o=t.renderers[i.name];o?t.renderers[i.name]=function(...a){let s=i.renderer.apply(this,a);return s===!1&&(s=o.apply(this,a)),s}:t.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let o=t[i.level];o?o.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level==="block"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level==="inline"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new so(this.defaults);for(let o in n.renderer){if(!(o in i))throw new Error(`renderer '${o}' does not exist`);if(["options","parser"].includes(o))continue;let a=o,s=n.renderer[a],l=i[a];i[a]=(...c)=>{let u=s.apply(i,c);return u===!1&&(u=l.apply(i,c)),u||""}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new ao(this.defaults);for(let o in n.tokenizer){if(!(o in i))throw new Error(`tokenizer '${o}' does not exist`);if(["options","rules","lexer"].includes(o))continue;let a=o,s=n.tokenizer[a],l=i[a];i[a]=(...c)=>{let u=s.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new Dr;for(let o in n.hooks){if(!(o in i))throw new Error(`hook '${o}' does not exist`);if(["options","block"].includes(o))continue;let a=o,s=n.hooks[a],l=i[a];Dr.passThroughHooks.has(o)?i[a]=c=>{if(this.defaults.async&&Dr.passThroughHooksRespectAsync.has(o))return(async()=>{let h=await s.call(i,c);return l.call(i,h)})();let u=s.call(i,c);return l.call(i,u)}:i[a]=(...c)=>{if(this.defaults.async)return(async()=>{let h=await s.apply(i,c);return h===!1&&(h=await l.apply(i,c)),h})();let u=s.apply(i,c);return u===!1&&(u=l.apply(i,c)),u}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,o=n.walkTokens;r.walkTokens=function(a){let s=[];return s.push(o.call(this,a)),i&&(s=s.concat(i.call(this,a))),s}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return qe.lex(e,t??this.defaults)}parser(e,t){return ft.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},o=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&r.async===!1)return o(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||t===null)return o(new Error("marked(): input parameter is undefined or null"));if(typeof t!="string")return o(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));if(i.hooks&&(i.hooks.options=i,i.hooks.block=e),i.async)return(async()=>{let a=i.hooks?await i.hooks.preprocess(t):t,s=await(i.hooks?await i.hooks.provideLexer(e):e?qe.lex:qe.lexInline)(a,i),l=i.hooks?await i.hooks.processAllTokens(s):s;i.walkTokens&&await Promise.all(this.walkTokens(l,i.walkTokens));let c=await(i.hooks?await i.hooks.provideParser(e):e?ft.parse:ft.parseInline)(l,i);return i.hooks?await i.hooks.postprocess(c):c})().catch(o);try{i.hooks&&(t=i.hooks.preprocess(t));let a=(i.hooks?i.hooks.provideLexer(e):e?qe.lex:qe.lexInline)(t,i);i.hooks&&(a=i.hooks.processAllTokens(a)),i.walkTokens&&this.walkTokens(a,i.walkTokens);let s=(i.hooks?i.hooks.provideParser(e):e?ft.parse:ft.parseInline)(a,i);return i.hooks&&(s=i.hooks.postprocess(s)),s}catch(a){return o(a)}}}onError(e,t){return n=>{if(n.message+=`
398
- Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error occurred:</p><pre>"+yt(n.message+"",!0)+"</pre>";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}},vn=new co;function ae(e,t){return vn.parse(e,t)}ae.options=ae.setOptions=function(e){return vn.setOptions(e),ae.defaults=vn.defaults,Uh(ae.defaults),ae};ae.getDefaults=xs;ae.defaults=wn;function Jb(...e){return vn.use(...e),ae.defaults=vn.defaults,Uh(ae.defaults),ae}ae.use=Jb;ae.walkTokens=function(e,t){return vn.walkTokens(e,t)};ae.parseInline=vn.parseInline;ae.Parser=ft;ae.parser=ft.parse;ae.Renderer=so;ae.TextRenderer=As;ae.Lexer=qe;ae.lexer=qe.lex;ae.Tokenizer=ao;ae.Hooks=Dr;ae.parse=ae;var AE=ae.options,CE=ae.setOptions,LE=ae.walkTokens,NE=ae.parseInline;var PE=ft.parse,DE=qe.lex;var ep={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},ex=new RegExp(`[${Object.keys(ep).join("")}]`,"g");function nt(e){return e.replace(ex,t=>ep[t])}var tx=["http:","https:","mailto:"],tp=/^[a-z][a-z0-9+.-]*:/i,np=/[\u0000-\u0020\u00a0\u1680\u180e\u2000-\u2029\u205f\u3000]/g;function Jh(e){let t=e.replace(np,""),n=tp.exec(t);return n===null?t===""?null:e:tx.includes(n[0].toLowerCase())?e:null}var Gt="data-weave-target",yn="data-weave-task";function fo(e){return e?"Mark task incomplete":"Mark task complete"}var ho="note:",nx={bySpelling:new Map,hasGhosts:!1,currentSlug:null};function rx(e){if(e.kind!=="note"||!e.id.startsWith(ho))return null;let t=e.id.slice(ho.length);return t===""?null:t}function rp(e){if(e.kind!=="file"||!e.id.startsWith("artifact:"))return null;let t=e.detail.path;return t!==void 0&&/\.html?$/i.test(t)?t:null}function ip(e){let t=rp(e);return t===null?null:`${t}:${e.detail.updated??""}`}function op(e,t){if(e===null||t===null)return null;let n=e.model.nodes.find(r=>r.id===t);return n===void 0?null:rp(n)}function ap(e,t){if(e===null)return nx;let n=new Map;for(let i of e.model.nodes){let o=rx(i);if(o!==null)for(let a of[o,i.label])n.set(a,o),n.set(a.toLowerCase(),o)}let r=t!==null&&(e.dangling[t]?.length??0)>0;return{bySpelling:n,hasGhosts:r,currentSlug:t}}function sp(e,t){let n=t.trim();return e.bySpelling.get(n)??e.bySpelling.get(n.toLowerCase())??null}function ix(e,t){if(e.currentSlug===null||tp.test(t.replace(np,"")))return null;try{let n=new URL(t,`https://weave.invalid/${e.currentSlug}.md`);return n.origin!=="https://weave.invalid"||!n.pathname.toLowerCase().endsWith(".md")?null:sp(e,decodeURIComponent(n.pathname.slice(1,-3)))}catch{return null}}function ox(e){return e.hasGhosts}var ax=/^\[\[([^\][|]+)(?:\|([^\]]*))?\]\]/;function sx(e){let t=e.indexOf("[[");return t===-1?void 0:t}function lx(e){return{name:"wikilink",level:"inline",start:sx,tokenizer(t){return ux(t)},renderer(t){return cx(e,t)}}}function cx(e,t){let n=typeof t.target=="string"?t.target:"",r=typeof t.alias=="string"?t.alias:"";return dx(e,n,r)}function ux(e){let t=ax.exec(e);if(t!==null)return{type:"wikilink",raw:t[0],target:t[1],alias:t[2]??""}}function dx(e,t,n){let r=nt((n===""?t:n).trim());if(r==="")return"";let i=sp(e,t);return i!==null?`<a class="weave-wiki" ${Gt}="${nt(i)}" role="link" tabindex="0" title="${nt(t.trim())}">${r}</a>`:ox(e)?`<span class="weave-wiki weave-wiki-ghost" title="no note named ${nt(t.trim())}">${r}</span>`:r}function hx(e){let t=0;return new co({gfm:!0,async:!1,extensions:[lx(e)],renderer:{checkbox({checked:n}){return`<input type="checkbox"${n?' checked=""':""} ${yn}="${t++}" aria-label="${fo(n)}"> `},html({text:n}){return/^\s*<!--[\s\S]*?-->\s*$/.test(n)?"":nt(n)},link({href:n,title:r,tokens:i}){let o=Jh(n),a=this.parser.parseInline(i),s=o===null?null:ix(e,o);if(s!==null){let c=r==null||r===""?"":` title="${nt(r)}"`;return`<a class="weave-wiki" ${Gt}="${nt(s)}" role="link" tabindex="0"${c}>${a}</a>`}return`<a${[o===null?"":` href="${nt(o)}"`,r==null||r===""?"":` title="${nt(r)}"`,o===null?"":' rel="noreferrer noopener" target="_blank"'].join("")}>${a}</a>`},image({href:n,title:r,text:i}){let o=Jh(n);if(o===null)return nt(i);let a=r==null||r===""?"":` title="${nt(r)}"`;return`<img src="${nt(o)}" alt="${nt(i)}"${a}>`}}})}function px(e,t){return hx(t).parse(e,{async:!1})}function uo(e){return Object.freeze(e)}var fx=uo({ALLOWED_TAGS:uo(["p","br","hr","h1","h2","h3","h4","h5","h6","em","strong","del","code","pre","blockquote","ul","ol","li","a","span","img","table","thead","tbody","tr","th","td","input"]),ALLOWED_ATTR:uo(["href","src","alt","title","class","role","tabindex","colspan","rowspan","align","type","checked","aria-label","start",Gt,yn]),ADD_URI_SAFE_ATTR:uo([Gt,yn]),ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1});function lp(e,t,n){return e.sanitize(px(t,n),fx)}var gx=/^((?: {0,3}>[ \t]?)*[ \t]*(?:[*+-]|\d{1,9}[.)])[ \t]+\[)([ xX])(\] +\S)/;function mx(e){let t=[],n=e.replace(/\r\n?/g,`
399
- `),r=0;for(let l of qe.lex(n,{gfm:!0})){let c=n.indexOf(l.raw,r);if(c===-1||(r=c+l.raw.length,l.type!=="list"&&l.type!=="blockquote"))continue;let u=0;for(;u<l.raw.length;){let h=l.raw.indexOf(`
400
- `,u),d=h===-1?l.raw.length:h,p=l.raw.slice(u,d).replace(/\r$/,""),m=gx.exec(p);m!==null&&t.push(c+u+m[1].length),u=h===-1?l.raw.length:h+1}}let i=new co,o=l=>{let c=[];return i.walkTokens(qe.lex(l,{gfm:!0}),u=>{u.type==="checkbox"&&c.push(u.checked)}),c},a=o(n),s=a.map(()=>null);for(let l of t){let c=`${n.slice(0,l)}${n[l]===" "?"x":" "}${n.slice(l+1)}`,u=o(c);if(u.length!==a.length)continue;let h=-1;for(let d=0;d<a.length;d+=1)if(u[d]!==a[d]){if(h!==-1){h=-1;break}h=d}h!==-1&&(s[h]=l)}return s.map(l=>{if(l===null)return null;let c=0,u=0;for(;u<l;)c+=e[c]==="\r"&&e[c+1]===`
401
- `?2:1,u+=1;return c})}function cp(e,t){if(!Number.isSafeInteger(t)||t<0)return null;let n=mx(e)[t];return n==null?null:`${e.slice(0,n)}${e[n]===" "?"x":" "}${e.slice(n+1)}`}function up(e){let t=e?.getAttribute(yn);return t==null||!/^(?:0|[1-9]\d*)$/.test(t)?null:Number(t)}var dp=32;function Cs(e){let t=e;for(let n=0;t!==null&&n<dp;n++){let r=t.getAttribute(Gt);if(r!==null&&r!=="")return`${ho}${r}`;t=t.parentElement}return null}function hp(e){if(!e||e.isCollapsed===!0)return!1;let t=e.toString;return(typeof t=="function"&&t!==Object.prototype.toString?t.call(e):"").length>0}var pp="edited",fp="created",gp="Edit",mp="Done",vp="Save",wp="Saving…",yp="Note body",go="Discard unsaved changes to this note?";function bp(e,t){return{title:e.title,slug:e.slug,provenance:e.source,provenanceGlyph:ln(e.source),provenanceTitle:In(e.source),updated:dr(e.updated,t),updatedIso:e.updated,created:dr(e.created,t),createdIso:e.created,tags:e.tags}}function xp(e){return`#${e}`}var vx=200,wx=8,yx="no note";function Ls(e){let t=e;for(let n=0;t!==null&&n<dp;n++){let r=t.getAttribute(Gt);if(r!==null&&r!=="")return{slug:r,text:(t.textContent??"").trim()};if((t.className??"").split(/\s+/).includes("weave-wiki-ghost"))return{slug:null,text:(t.textContent??"").trim()};t=t.parentElement}return null}function bx(e){return e.replace(/```[\s\S]*?(?:```|$)/g," ").replace(/~~~[\s\S]*?(?:~~~|$)/g," ").replace(/`([^`]*)`/g,"$1").replace(/!\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/\[\[([^\]|]*)(?:\|([^\]]*))?\]\]/g,(t,n,r)=>r??n).replace(/<[^>]*>/g," ").replace(/^\s{0,3}#{1,6}\s+/gm,"").replace(/^\s{0,3}>\s?/gm,"").replace(/^\s{0,3}([-*_][ \t]?){3,}$/gm," ").replace(/^\s{0,3}[-*+]\s+/gm,"").replace(/^\s{0,3}\d+[.)]\s+/gm,"").replace(/[*_~]{1,3}([^*_~]*)[*_~]{1,3}/g,"$1").replace(/\s+/g," ").trim()}function xx(e,t=vx){let n=bx(e);if(n.length<=t)return n;let r=n.lastIndexOf(" ",t);return`${r>0?n.slice(0,r):n.slice(0,t)}…`}function kp(e,t){if(t.slug===null){let i=t.text===""?"this link":t.text;return{ghost:!0,title:i,kind:yx,text:`no note named “${i}” yet`}}let n=e?.model.nodes.find(i=>i.id===`note:${t.slug}`&&i.kind==="note");if(n===void 0)return null;let r=n.provenance===null?n.kind:`${n.kind} · ${In(n.provenance)}`;return{ghost:!1,title:n.label,kind:r,text:xx(n.detail.preview??"")}}function _p(e,t,n,r,i,o,a=wx){let s=e+a,l=t+a;return s+n>i-a&&(s=e-a-n),l+r>o-a&&(l=t-a-r),s=Math.min(Math.max(s,a),Math.max(a,i-a-n)),l=Math.min(Math.max(l,a),Math.max(a,o-a-r)),{x:s,y:l}}var po={anchor:null,pointerX:0,pointerY:0};function Ep(e,t){switch(t.type){case"show":return t.anchor.slug===null&&t.anchor.text===""?e:{anchor:t.anchor,pointerX:t.x,pointerY:t.y};case"hide":return e.anchor===null?e:po;case"dismiss":return po}}function Tp(e,t,n=!1){return t!==null?null:e===null?"Nothing open — search with ⌘K, or walk the tree with j and k.":n?"Couldn’t load this note — retrying…":e.startsWith(ho)?"Loading…":"This node has no note body — see the context rail for what it connects to."}function mo(){let e=new Map,t=new Map,n=new Set,r=0,i=()=>n.forEach(o=>o());return{get:o=>e.get(o)??null,subscribe(o){return n.add(o),()=>n.delete(o)},open(o,a){e.has(o)||(e.set(o,{body:a,baseline:a,saving:!1}),i())},edit(o,a){let s=e.get(o);s===void 0||s.body===a||(s.body=a,i())},discard(o){e.delete(o)&&i()},isDirty(o){let a=e.get(o);return a!==void 0&&a.body!==a.baseline},dirtySlugs(){return[...e].filter(([,o])=>o.body!==o.baseline).map(([o])=>o)},async save(o,a){let s=e.get(o);if(s===void 0||s.saving||t.get(o)?.saving)return;let l=s.body;s.saving=!0,i();let c=!1;try{c=await a(o,l)}finally{if(e.get(o)===s){let u=t.get(o);c&&u!==void 0&&(u.body=l,u.version=++r,delete u.pending),c&&s.body===l?e.delete(o):(c&&(s.baseline=l),s.saving=!1),i()}}},nextLoadVersion(){return++r},getTaskBody(o,a){return t.get(o)?.body??a},taskBody(o,a,s){let l=t.get(o),c=!1;return l===void 0?(l={body:a,version:s,saving:!1},t.set(o,l)):s>l.version&&(l.saving?(l.pending===void 0||s>l.pending.version)&&(l.pending={body:a,version:s}):(c=l.body!==a,l.body=a,l.version=s)),c&&i(),l.body},isTaskSaving:o=>t.get(o)?.saving??!1,async saveTask(o,a,s){let l=t.get(o);if(l===void 0||l.saving||e.get(o)?.saving)return!1;l.saving=!0,i();let c=!1;try{return c=await s(o,a),c}finally{t.get(o)===l&&(c?(l.body=a,l.version=++r):l.pending!==void 0&&l.pending.version>l.version&&(l.body=l.pending.body,l.version=l.pending.version),delete l.pending,l.saving=!1,i())}},clearTaskSources(o){let a=!1;for(let s of o)a=t.delete(s)||a;a&&i()}}}function Sp(e,t,n,r){let i=new Set(t.panes.flatMap(s=>s.tabs.map(wt))),o=new Set(n.panes.flatMap(s=>s.tabs.map(wt))),a=[...i].filter(s=>s!==null&&s.startsWith("note:")&&!o.has(s)).map(s=>s.slice(5));return a.some(s=>e.isDirty(s))&&!r()?!1:(a.forEach(s=>e.discard(s)),e.clearTaskSources(a),!0)}function Rp(e,t,n){let r=new Set(t);return e.dirtySlugs().filter(o=>r.has(o)).length>0&&!n()?!1:(r.forEach(o=>e.discard(o)),e.clearTaskSources([...r]),!0)}var kx="weave-preview-x",_x="weave-preview-y";function Ex({view:e,open:t,editing:n,saving:r,taskSaving:i,onToggle:o,onSave:a}){return f("header",{class:"weave-note-head",children:[f("h3",{class:"weave-note-title",children:e.title}),f("p",{class:"weave-note-meta",children:[n?f(pe,{children:[f("button",{type:"button",class:"weave-note-save",disabled:r||i,onClick:a,children:r?wp:vp}),f("button",{type:"button",class:"weave-note-edit",disabled:i,onClick:o,children:mp})]}):f("button",{type:"button",class:"weave-note-edit",disabled:i,onClick:o,children:gp}),f("button",{type:"button",class:"weave-note-open",title:"Open in $EDITOR","aria-label":"Open in $EDITOR",onClick:t,children:f("span",{class:"weave-note-open-mark","aria-hidden":"true",children:"↗"})}),f("span",{class:`weave-prov weave-prov-${e.provenance}`,title:e.provenanceTitle,children:[e.provenanceGlyph," ",e.provenance]}),f("span",{class:"weave-note-time",title:e.updatedIso,children:[pp," ",e.updated]}),f("span",{class:"weave-note-time",title:e.createdIso,children:[fp," ",e.created]})]}),f("p",{class:"weave-note-tags",children:e.tags.map(s=>f("span",{class:"weave-tag",children:xp(s)},s))})]})}function Ap(e){let t=Y(mo()),n=e.drafts??t.current,r=Rl(),i=`${e.idPrefix??r}-weave-preview`,[o,a]=q(0);oe(()=>n.subscribe(()=>a(T=>T+1)),[n]);let s=e.note?.note??null,l=s===null?"":n.getTaskBody(s.slug,s.body),c=op(e.graph,e.selectedId),u=Tp(e.selectedId,s,e.loadFailed),h=vt(()=>s===null?null:ap(e.graph,s.slug),[s,e.graph]),d=vt(()=>s===null||h===null?"":lp(Gh,l,h),[s,l,h]),[p,m]=q(po),w=T=>{m(F=>Ep(F,T))},v=Y(null),y=Y(null),b=s===null?null:n.get(s.slug),k=s!==null&&n.isTaskSaving(s.slug),E=async()=>{s!==null&&!n.isTaskSaving(s.slug)&&await n.save(s.slug,e.onSave)},I=async(T,F)=>{let V=()=>{T.checked=!T.checked,T.setAttribute("aria-label",fo(T.checked))};if(s===null||n.isTaskSaving(s.slug)){V();return}let j=cp(n.getTaskBody(s.slug,s.body),F);if(j===null){V();return}let Q=[...v.current?.querySelectorAll(`input[${yn}]`)??[]];T.setAttribute("aria-label",fo(T.checked));for(let te of Q)te.disabled=!0;try{await n.saveTask(s.slug,j,e.onSave)||V()}catch(te){throw V(),te}finally{for(let te of Q)te.disabled=n.isTaskSaving(s.slug)}},A=Y(null);oe(()=>{s!==null&&A.current!==s.slug&&(A.current=s.slug,e.defaultEdit&&n.get(s.slug)===null&&n.open(s.slug,l))},[s?.slug,e.defaultEdit]);let D=()=>{s===null||n.isTaskSaving(s.slug)||(n.get(s.slug)===null?n.open(s.slug,l):(!n.isDirty(s.slug)||window.confirm(go))&&n.discard(s.slug))},O=p.anchor===null?null:kp(e.graph,p.anchor);if(Qe(()=>{s!==null&&n.taskBody(s.slug,s.body,e.loadVersion)},[n,s===null?null:s.slug,s?.body,e.loadVersion]),Qe(()=>{w({type:"hide"})},[s===null?null:s.slug]),Qe(()=>{if(s===null)return;let T=n.isTaskSaving(s.slug);for(let F of v.current?.querySelectorAll(`input[${yn}]`)??[])F.disabled=T},[s===null?null:s.slug,o,d]),Qe(()=>{let T=v.current;if(T!==null){let j=p.anchor?.slug??null;for(let Q of T.querySelectorAll(`a[${Gt}]`))j!==null&&Q.getAttribute(Gt)===j?Q.setAttribute("aria-describedby",i):Q.removeAttribute("aria-describedby")}let F=y.current;if(F===null||O===null)return;let V=_p(p.pointerX,p.pointerY,F.offsetWidth,F.offsetHeight,window.innerWidth,window.innerHeight);F.style.setProperty(`--${kx}`,`${V.x}px`),F.style.setProperty(`--${_x}`,`${V.y}px`)},[p,O,i]),c!==null){let T=e.graph?.model.nodes.find(j=>j.id===e.selectedId),F=T?.label??c,V=T===void 0?c:ip(T)??c;return f("article",{class:"weave-note weave-note-artifact",children:[f("header",{class:"weave-note-head",children:[f("h3",{class:"weave-note-title",children:F}),f("p",{class:"weave-note-meta",children:f("span",{class:"weave-note-time",children:c})})]}),f("iframe",{class:"weave-artifact-frame",title:F,sandbox:"allow-scripts",src:`/api/artifact/${encodeURIComponent(c)}`},V)]},V)}if(s===null||h===null)return f("p",{class:"weave-note-empty",children:u});let W=bp(s,e.now);return f("article",{class:`weave-note weave-note-${W.provenance}`,children:[f(Ex,{view:W,open:()=>e.onOpen(s.slug),editing:b!==null,saving:b?.saving??!1,taskSaving:k,onToggle:D,onSave:()=>{E()}}),b!==null?f("textarea",{class:"weave-note-editor","aria-label":yp,spellcheck:e.spellcheck??!0,value:b.body,onInput:T=>n.edit(s.slug,T.target.value),onKeyDown:T=>{if(T.key==="Escape"){T.stopPropagation(),D();return}T.key.toLowerCase()!=="s"||!(T.metaKey||T.ctrlKey)||(T.preventDefault(),E())}}):f("div",{ref:v,class:"weave-note-body",tabIndex:-1,onMouseOver:T=>{let F=Ls(T.target);w(F!==null?{type:"show",anchor:F,x:T.clientX,y:T.clientY}:{type:"hide"})},onMouseLeave:()=>w({type:"hide"}),onFocus:T=>{let F=Ls(T.target);if(F===null)return;let V=T.target.getBoundingClientRect?.();w({type:"show",anchor:F,x:V?.left??0,y:V?.bottom??0})},onBlur:()=>w({type:"hide"}),onClick:T=>{let F=T.target,V=up(F);if(V!==null){I(F,V);return}let j=typeof window<"u"&&typeof window.getSelection=="function"?window.getSelection():null;if(hp(j))return;let Q=Cs(T.target);Q!==null&&e.onSelect(Q,T.metaKey||T.ctrlKey||T.shiftKey)},onKeyDown:T=>{if(T.key==="Escape"&&p.anchor!==null){T.stopPropagation(),w({type:"dismiss"});return}if(T.key!=="Enter"&&T.key!==" ")return;let F=Cs(T.target);F!==null&&(T.preventDefault(),e.onSelect(F,T.metaKey||T.ctrlKey||T.shiftKey))},dangerouslySetInnerHTML:{__html:d}}),O===null?null:f("div",{ref:y,id:i,role:"tooltip",class:`weave-preview${O.ghost?" weave-preview-ghost":""}`,children:[f("span",{class:"weave-preview-kind",children:O.kind}),f("span",{class:"weave-preview-title",children:O.title}),O.text===""?null:f("p",{class:"weave-preview-text",children:O.text})]})]},s.slug)}var Cp=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Lp(e,t,n){return e===0?null:e===1?0:t<0?n?e-1:0:n?t===0?e-1:t-1:t===e-1?0:t+1}function Np(e,t,n,r){return e==="Tab"&&!t&&!n&&!r}function Pp(e){return e===null?!1:(e.focus(),!0)}function Yn(){let e=Y(null);return oe(()=>{let t=document.activeElement;return e.current?.focus(),()=>{Pp(t instanceof HTMLElement?t:null)}},[]),{ref:e,onKeyDown(t){if(!Np(t.key,t.ctrlKey,t.metaKey,t.altKey))return!1;let n=[...e.current?.querySelectorAll(Cp)??[]],r=Lp(n.length,n.indexOf(document.activeElement),t.shiftKey);return r===null?!1:(t.preventDefault(),n[r]?.focus(),!0)}}}function Gp(e,t){let n=t.trim().toLowerCase();if(!n)return 0;let r=e.toLowerCase(),i=r.indexOf(n);return i<0?0:r===n?100:i===0?70:/[a-z0-9]/.test(r.charAt(i-1))?30:50}function Tx(e){return Math.min(Math.max(e,0),10)*2}function Sx(e){return`note:${e}`}function Rx(e,t){return Gp(e.summary.title,t)+Tx(e.score)}function Ax(e,t){return Gp(e.label,t)}var Cx=["path","manifest","url","slug"];function Lx(e){for(let t of Cx){let n=e.detail[t];if(typeof n=="string"&&n)return n}return""}function Nx(e,t){return e.score!==t.score?t.score-e.score:e.kind!==t.kind?e.kind==="note"?-1:1:e.label.localeCompare(t.label)||e.id.localeCompare(t.id)}function Px(e,t,n,r){let i=new Map;for(let o of e){let a=Sx(o.summary.slug);i.set(a,{id:a,kind:"note",label:o.summary.title,detail:o.snippet,badge:"note",score:Rx(o,t)})}for(let o of n){if(i.has(o.id))continue;let a=Ax(o,r);a&&i.set(o.id,{id:o.id,kind:"node",label:o.label,detail:Lx(o),badge:o.kind,score:a})}return[...i.values()].sort(Nx).slice(0,20)}function Mp(){return{query:"",answered:"",hits:[],cursor:0,loading:!1,failed:!1}}function Ns(e,t){return t<=0?0:Math.min(Math.max(e,0),t-1)}function Dp(e,t,n){return n<=0?0:((e+t)%n+n)%n}function Op(e,t){return t===null?null:e[t]?.id??null}function Fp(e,t,n){let r={cursor:e,activate:null,dismiss:!1,handled:!1},i=Ns(e,n);return t==="ArrowDown"?{...r,cursor:Dp(i,1,n),handled:!0}:t==="ArrowUp"?{...r,cursor:Dp(i,-1,n),handled:!0}:t==="Home"?{...r,cursor:0,handled:!0}:t==="End"?{...r,cursor:Ns(n-1,n),handled:!0}:t==="Escape"?{...r,dismiss:!0,handled:!0}:t!=="Enter"||n===0?r:{...r,cursor:i,activate:i,dismiss:!0,handled:!0}}var vo="Search the workspace",$p="Search notes and repository…",zp="↑↓ move · ↵ open · esc close";function Dx(e,t){return e.query.trim()?t>0?null:e.failed?"search failed — the workspace server may be gone":e.loading?"searching…":`no matches for “${e.query.trim()}”`:"Type to search notes, modules, files and entry points."}function Ix(e){return e===1?"1 result":`${e} results`}function Ip(e){return`weave-search-row-${e}`}function Wp(e,t){let n=Px(e.hits,e.answered,t?.model.nodes??[],e.query),r=Ns(e.cursor,n.length);return{rows:n.map((o,a)=>({...o,active:a===r,domId:Ip(a)})),status:Dx(e,n.length),count:n.length,countLabel:Ix(n.length),cursor:r,activeDomId:n.length?Ip(r):null}}function Mx({row:e,onPick:t,onHover:n}){return f("li",{id:e.domId,role:"option","aria-selected":e.active,class:`weave-hit weave-hit-${e.kind}${e.active?" weave-hit-on":""}`,onMouseMove:n,onClick:r=>t(r.metaKey||r.ctrlKey),children:[f("span",{class:"weave-hit-badge",children:e.badge}),f("span",{class:"weave-hit-label",children:e.label}),f("span",{class:"weave-hit-detail",children:e.detail})]})}function Hp(e){let[t,n]=q(Mp),r=Y(0),i=Y(null),o=Yn(),a=Y(null);oe(()=>{a.current?.focus()},[]),oe(()=>{let c=t.query.trim(),u=!0;if(!c)return i.current?.abort(),n(d=>({...d,hits:[],answered:"",loading:!1,failed:!1})),()=>{u=!1};let h=window.setTimeout(async()=>{let d=++r.current;i.current?.abort();let p=new AbortController;i.current=p,n(w=>({...w,loading:!0,failed:!1}));let m=await Ul(e.ports.fetch,c,p.signal);!u||p.signal.aborted||d!==r.current||n(w=>m.ok?{...w,hits:m.data.hits,answered:c,loading:!1,failed:!1,cursor:0}:{...w,loading:!1,failed:!0})},140);return()=>{u=!1,window.clearTimeout(h),i.current?.abort()}},[t.query,e.ports.fetch]);let s=Wp(t,e.graph),l=(c,u=!1)=>{let h=Op(s.rows,c);h!==null&&e.onSelect(h,u),e.onClose()};return f("div",{class:"weave-scrim",onClick:()=>l(null),children:f("div",{class:"weave-palette",role:"dialog","aria-modal":"true","aria-label":vo,tabIndex:-1,ref:o.ref,onClick:c=>c.stopPropagation(),onKeyDown:c=>{if(o.onKeyDown(c))return;let u=Fp(t.cursor,c.key,s.count);u.handled&&(c.preventDefault(),n(h=>({...h,cursor:u.cursor})),u.dismiss&&l(u.activate,c.metaKey||c.ctrlKey))},children:[f("input",{type:"search",class:"weave-palette-input",ref:a,value:t.query,placeholder:$p,"aria-label":vo,"aria-controls":"weave-search-results","aria-activedescendant":s.activeDomId??void 0,onInput:c=>n(u=>({...u,query:c.currentTarget.value,cursor:0}))}),s.status===null?f("ul",{id:"weave-search-results",class:"weave-hits",role:"listbox","aria-label":vo,children:s.rows.map((c,u)=>f(Mx,{row:c,onPick:h=>l(u,h),onHover:()=>n(h=>({...h,cursor:u}))},c.id))}):f("p",{class:"weave-palette-status",role:"status",children:s.status}),f("p",{class:"weave-palette-foot",children:[f("span",{children:s.countLabel}),f("button",{type:"button",class:"weave-chip",disabled:s.count===0,onClick:()=>l(t.cursor,!0),children:"Open in new tab"}),f("span",{class:"weave-palette-hint",children:[zp," · ⌘/Ctrl ↵ new tab"]})]})]})})}function Ps(){return{graph:null,graphFailed:!1,note:null,noteFailed:!1,recentIds:new Set,selectedId:null}}var Bp=2e3,Ox=3e3,Kp=new Set;function Fx(e,t){if(e===null)return Kp;let n=new Set(e.model.nodes.map(r=>r.id));return new Set(t.model.nodes.filter(r=>!n.has(r.id)).map(r=>r.id))}function Up(e){if(e===null||!e.startsWith("note:"))return null;let t=e.slice(5);return t===""?null:t}function Vp(e){let t=e.state,n=!1,r=!1,i=null,o=d=>{Object.entries(d).every(([p,m])=>t[p]===m)||(t={...t,...d},e.setState(t))},a=e.defer??((d,p)=>{let m=setTimeout(d,p);return()=>clearTimeout(m)}),s=async()=>{let d=Up(t.selectedId);if(d===null){o({note:null,noteFailed:!1});return}let p=await na(e.fetch,d);p.ok?o({note:p.data,noteFailed:!1}):o({note:null,noteFailed:!0})},l=async()=>{let d=t.graph,p=await gi(e.fetch,t.graph);if(!p.ok)return t.graph===null&&o({graphFailed:!0}),p;if(!p.cached){let m=Fx(d,p.data);o({graph:p.data,graphFailed:!1,recentIds:m}),i?.(),i=null,m.size>0&&(i=a(()=>{i=null,o({recentIds:Kp})},Ox))}return p},c=async()=>{if(!(n||r)){r=!0;try{let d=await l();Up(t.selectedId)!==null&&(t.note===null||d.ok&&!d.cached)&&await s()}finally{r=!1}}},h=(e.repeat??((d,p)=>{let m=setInterval(d,p);return()=>clearInterval(m)}))(()=>{c()},Bp);return c(),{refresh:()=>{c()},select:async d=>{o({selectedId:d}),await s()},syncNote:s,stop:()=>{n||(n=!0,h(),i?.(),i=null)}}}function jp(e,t,n,r=(i,o)=>{let a=setTimeout(i,o);return()=>clearTimeout(a)}){let i=!1,o=null,a=async()=>{if(i)return;let s=await na(e,t);i||(n(s),s.ok||(o=r(()=>{a()},Bp)))};return a(),()=>{i=!0,o?.()}}var Mr={links:"LINKS",backlinks:"BACKLINKS",tags:"TAGS",mentions:"MENTIONS"};function yo(e,t,n){return{id:e,target:t.id,label:Je(t),kind:t.kind,kindIcon:sn(t.kind),provenance:t.provenance,provenanceGlyph:ln(t.provenance),provenanceTitle:In(t.provenance),selected:t.id===n}}function $x(e,t,n){let r=e.target;if(r===void 0)return null;let i=t.get(r);return i===void 0?null:yo(e.id,i,n)}function zx(e){let t=new Map;for(let n of e.nodes)t.set(n.id,n);return t}var Wx=["link:links-to:"];function Hx(e){return Wx.some(t=>e.id.startsWith(t))}function Ux(e){return e.id.startsWith("link:mentions:")}function Bx(e,t,n,r){let i=[];for(let[o,a]of Object.entries(e.tags)){if(!a.includes(t))continue;let s=[];for(let l of a){if(l===t)continue;let c=n.get(`note:${l}`);c!==void 0&&s.push(yo(`tag:${o}:${l}`,c,r))}i.push({tag:o,count:a.length,siblings:s})}return i}function Kx(e,t,n,r){let i=[];for(let o of e.edges){if(o.kind!=="mentions"||o.target!==t)continue;let a=n.get(o.source);a!==void 0&&i.push(yo(`mentioned-by:${o.source}`,a,r))}return i}function Vx(e){if(!e.startsWith("note:"))return null;let t=e.slice(5);return t===""?null:t}var wo={loading:"Loading…",noSelection:"Select anything to see what it connects to.",unknown:"This node is not in the current graph.",isolated:"Nothing links to or from this yet."};function Ds(e){return{subject:null,groups:[],tags:[],tagsCount:0,empty:e}}function qp(e,t){if(e===null)return Ds(wo.loading);if(t===null)return Ds(wo.noSelection);let n=on(e),r=sa(n,t);if(r===null)return Ds(wo.unknown);let i=zx(n),o=[],a=(h,d)=>{d.length>0&&o.push({heading:h,count:d.length,rows:d})},s=h=>h.map(d=>$x(d,i,t)).filter(d=>d!==null);a(Mr.links,s(r.links.filter(Hx)));let l=la(n.edges).get(t)??[];a(Mr.backlinks,l.map(h=>i.get(h)).filter(h=>h!==void 0).map(h=>yo(`backlink:${h.id}`,h,t))),a(Mr.mentions,[...s(r.links.filter(Ux)),...Kx(n,t,i,t)]);let c=Vx(t),u=c===null?[]:Bx(e,c,i,t);return o.length===0&&u.length===0?{subject:r.label,groups:[],tags:[],tagsCount:0,empty:wo.isolated}:{subject:r.label,groups:o,tags:u,tagsCount:u.length,empty:null}}function Yp(){return{open:new Set,closed:new Set}}var jx=8;function Xp(e,t,n,r){return r?!1:e.closed.has(t)?!0:e.open.has(t)?!1:n>jx}function qx(e){return e.some(t=>t.selected)}function Zp(e,t){let n=Xp(t,e.heading,e.count,qx(e.rows));return{heading:e.heading,count:e.count,collapsed:n,rows:n?[]:e.rows}}function Qp(e,t){let n=Xp(t,Mr.tags,e.length,e.some(r=>r.siblings.some(i=>i.selected)));return{heading:Mr.tags,count:e.length,collapsed:n,rows:[]}}function Jp(e,t,n){let r=new Set(e.open),i=new Set(e.closed);return n?(r.add(t),i.delete(t)):(i.add(t),r.delete(t)),{open:r,closed:i}}function bo(e){return`weave-ctx-panel-${e.toLowerCase()}`}function bn(e){let t=Y(null);return f("div",{class:"weave-workspace-divider",role:"separator",tabIndex:0,"aria-label":e.label,"aria-orientation":e.horizontal?"horizontal":"vertical","aria-valuenow":Math.round(e.value),"aria-valuemin":e.min,"aria-valuemax":e.max,onPointerDown:n=>{t.current=e.horizontal?n.clientY:n.clientX,n.currentTarget.setPointerCapture(n.pointerId)},onPointerMove:n=>{if(t.current===null)return;let r=e.horizontal?n.clientY:n.clientX;e.onChange(r-t.current),t.current=r},onPointerUp:n=>{t.current=null,n.currentTarget.releasePointerCapture(n.pointerId)},onPointerCancel:()=>{t.current=null},onKeyDown:n=>{["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(n.key)&&(n.preventDefault(),e.onChange(n.key==="ArrowLeft"||n.key==="ArrowUp"?-20:20))}})}function ef({row:e,onSelect:t}){return f("li",{class:`weave-ctx-row${e.selected?" weave-row-on":""}`,children:f("button",{type:"button",class:"weave-ctx-link",onClick:n=>t(n.metaKey||n.ctrlKey),children:[f("span",{class:"weave-kind","aria-hidden":"true",children:f(Ct,{name:e.kindIcon,class:"weave-icon"})}),f("span",{class:`weave-prov weave-prov-${e.provenance??"none"}`,title:e.provenanceTitle,children:e.provenanceGlyph}),f("span",{class:"weave-label",children:e.label})]})})}function tf({view:e,onToggle:t}){return f("h4",{class:"weave-ctx-head",children:f("button",{type:"button",class:"weave-ctx-heading","aria-expanded":!e.collapsed,"aria-controls":bo(e.heading),onClick:t,children:[f("span",{class:"weave-ctx-chevron","aria-hidden":"true",children:f(Ct,{name:"chevron",class:e.collapsed?"weave-icon":"weave-icon weave-icon-open"})}),e.heading,f("span",{class:"weave-ctx-count",children:e.count})]})})}function Yx({view:e,onSelect:t,onToggle:n}){return f("section",{class:"weave-ctx-group",children:[f(tf,{view:e,onToggle:n}),f("ul",{class:"weave-ctx-rows",id:bo(e.heading),hidden:e.collapsed,children:e.rows.map(r=>f(ef,{row:r,onSelect:i=>t(r.target,i)},r.id))})]})}function Xx({tag:e,onSelect:t}){return f("li",{class:"weave-ctx-tag",children:[f("span",{class:"weave-tag",children:["#",e.tag]}),f("ul",{class:"weave-ctx-rows",children:e.siblings.map(n=>f(ef,{row:n,onSelect:r=>t(n.target,r)},n.id))})]})}function nf(e){let t=Y(null),n=qp(e.graph,e.selectedId),[r,i]=q(Yp),o=s=>()=>i(Jp(r,s.heading,s.collapsed)),a=Qp(n.tags,r);return f("div",{class:"weave-rail","aria-label":Fu.title,children:[n.empty===null?null:f("p",{class:"weave-ctx-empty",children:n.empty}),n.groups.map(s=>{let l=Zp(s,r);return f(Yx,{view:l,onSelect:e.onSelect,onToggle:o(l)},s.heading)}),n.tags.length===0?null:f("section",{class:"weave-ctx-group",children:[f(tf,{view:a,onToggle:o(a)}),f("ul",{class:"weave-ctx-tags weave-context-tags",ref:t,style:{height:e.tagHeight},id:bo(a.heading),hidden:a.collapsed,children:n.tags.map(s=>f(Xx,{tag:s,onSelect:e.onSelect},s.tag))}),a.collapsed?null:f(bn,{label:"Resize tags section",horizontal:!0,min:60,max:600,value:e.tagHeight,onChange:s=>e.onTagResize(Math.max(60,Math.min(600,(t.current?.clientHeight??e.tagHeight)+s)))})]})]})}function Zx(e){if(e===""||e==="#")return null;let t=e.slice(1),n=/^note[/:](.+)$/.exec(t);return n===null?null:`note:${n[1]}`}function rf(e,t){let n=Zx(e);return n===null||t===null?null:t.model.nodes.some(r=>r.id===n)?n:null}function of(e){let t=e===null?null:e.startsWith("note:")?e.slice(5):null;return t===null||t===""?"":`#note/${t}`}function af(e,t){let n=e[t.key];return Number.isFinite(n)?Math.min(t.max,Math.max(t.min,n)):t.max}function sf(e,t){let n=Number.parseFloat(t);return Number.isFinite(n)?Math.min(e.max,Math.max(e.min,n)):zt[e.key]}function lf(e){return Number.isFinite(e)?Number.isInteger(e)?String(e):e.toFixed(3).replace(/0+$/,"").replace(/\.$/,""):"∞"}function cf(e){return An.every(t=>Object.is(e[t.key],zt[t.key]))}function uf(e){return f("div",{class:"weave-settings-forces",children:[An.map(t=>f("label",{class:"weave-setting-row",children:[f("span",{children:[f("strong",{children:t.label}),f("small",{children:t.hint})]}),f("span",{class:"weave-setting-range",children:[f("input",{"aria-label":t.label,type:"range",min:t.min,max:t.max,step:t.step,value:af(e.forces,t),onInput:n=>e.onChange({...e.forces,[t.key]:sf(t,n.currentTarget.value)})}),f("output",{children:lf(e.forces[t.key])})]})]},t.key)),f("button",{type:"button",disabled:cf(e.forces),onClick:()=>e.onChange({...zt}),children:"Reset graph layout"})]})}var df=["General","Appearance","Interface","Editor","Files","Backup"];function lt(e){return f("label",{class:"weave-setting-row",children:[f("span",{children:[f("strong",{children:e.name}),f("small",{children:e.hint})]}),e.children]})}function hf(e){let[t,n]=q("General"),[r,i]=q(0),o=Yn(),a=e.layout.preferences,s=l=>e.onChange({...e.layout,preferences:{...a,...l}});return f("div",{class:"weave-scrim weave-settings-scrim",onClick:e.onClose,children:f("div",{class:"weave-settings",role:"dialog","aria-modal":"true","aria-label":"Settings",tabIndex:-1,ref:o.ref,onClick:l=>l.stopPropagation(),onKeyDown:l=>{o.onKeyDown(l)},children:[f("header",{children:[f("h2",{children:"Settings"}),f("button",{type:"button","aria-label":"Close settings",onClick:e.onClose,children:"×"})]}),f("nav",{"aria-label":"Settings categories",children:e.compact?f("select",{class:"weave-settings-category","aria-label":"Settings category",value:t,onChange:l=>n(l.currentTarget.value),children:df.map(l=>f("option",{value:l,children:l},l))}):df.map(l=>f("button",{type:"button","aria-current":t===l?"page":void 0,onClick:()=>n(l),children:l},l))}),f("section",{"aria-label":`${t} settings`,children:[f("h3",{children:t}),t==="General"?f(pe,{children:[f("p",{children:["Pi Weave ",e.info.version]}),f("dl",{class:"weave-settings-locations",children:[f("dt",{children:"Vault"}),f("dd",{children:f("code",{children:e.info.vaultRoot||"Loading…"})}),f("dt",{children:"Repository"}),f("dd",{children:f("code",{children:e.cwd})})]}),f("div",{class:"weave-settings-actions",children:[f("button",{type:"button",onClick:()=>{i(l=>l+1),e.onRefresh()},children:[f("span",{class:r?"weave-refresh-spin":"","aria-hidden":"true",children:"↻"},r)," Refresh workspace"]}),f("a",{href:"https://github.com/EranYonai/pi-weave#readme",target:"_blank",rel:"noreferrer",children:"Documentation ↗"})]}),f("details",{children:[f("summary",{tabIndex:0,children:"Keyboard shortcuts"}),Ii(e.shortcut.slice(0,-1)).map(l=>f("div",{children:[f("h4",{children:l.title}),l.entries.map(c=>f("div",{class:"weave-key-row",children:[f("kbd",{children:c.combo}),f("span",{children:c.what})]},c.combo))]},l.title))]})]}):null,t==="Appearance"?f(pe,{children:[f(lt,{name:"Color scheme",hint:"System follows your device and uses your chosen light and dark themes.",children:f("select",{"aria-label":"Color scheme",value:e.layout.theme==="system"?"system":ue[e.layout.theme].scheme,onChange:l=>e.onChange({...e.layout,theme:l.currentTarget.value==="system"?"system":l.currentTarget.value==="light"?a.lightTheme:a.darkTheme}),children:[f("option",{value:"system",children:"System"}),f("option",{value:"light",children:"Light"}),f("option",{value:"dark",children:"Dark"})]})}),["light","dark"].map(l=>f(lt,{name:`${l==="light"?"Light":"Dark"} theme`,hint:`Used in ${l} mode and by the ribbon theme button.`,children:f("select",{"aria-label":`${l==="light"?"Light":"Dark"} theme`,value:a[`${l}Theme`],onChange:c=>{let u=c.currentTarget.value;e.onChange({...e.layout,preferences:{...a,[`${l}Theme`]:u},theme:e.layout.theme!=="system"&&ue[e.layout.theme].scheme===l?u:e.layout.theme})},children:Object.entries(ue).filter(([,c])=>c.scheme===l).map(([c,u])=>f("option",{value:c,children:u.name},c))})},l)),f(lt,{name:"Accent color",hint:"Choose independently of the theme. Shades adapt to light and dark backgrounds.",children:f("select",{"aria-label":"Accent color",value:a.accent,onChange:l=>s({accent:l.currentTarget.value}),children:[f("option",{value:"theme",children:"Theme default"}),Object.entries(en).map(([l,c])=>f("option",{value:l,children:c.name},l))]})}),f(lt,{name:"Note font size",hint:"Applies to reading and editing notes.",children:f("span",{class:"weave-setting-range",children:[f("input",{"aria-label":"Note font size",type:"range",min:12,max:22,step:1,value:a.fontSize,onInput:l=>s({fontSize:Number(l.currentTarget.value)})}),f("output",{children:[a.fontSize,"px"]})]})})]}):null,t==="Interface"?f(pe,{children:[f(lt,{name:"Notes sidebar",hint:"Show files and recent notes.",children:f("input",{type:"checkbox",checked:e.layout.treeVisible,onChange:l=>e.onChange({...e.layout,treeVisible:l.currentTarget.checked})})}),f(lt,{name:"Context sidebar",hint:"Show links, backlinks, and related items.",children:f("input",{type:"checkbox",checked:e.layout.contextVisible,onChange:l=>e.onChange({...e.layout,contextVisible:l.currentTarget.checked})})}),f(lt,{name:"Color graph by group",hint:"Give each containment group its own color.",children:f("input",{type:"checkbox",checked:a.groupColors,onChange:l=>s({groupColors:l.currentTarget.checked})})}),f("h4",{children:"Graph layout"}),f("p",{class:"weave-settings-hint",children:"Adjust the graph live. Your choices are saved for this workspace."}),f(uf,{forces:a.forces,onChange:l=>s({forces:l})})]}):null,t==="Editor"?f(pe,{children:[f(lt,{name:"Spellcheck",hint:"Use your browser or device’s spellchecker while editing.",children:f("input",{type:"checkbox",checked:a.spellcheck,onChange:l=>s({spellcheck:l.currentTarget.checked})})}),f(lt,{name:"Readable line length",hint:"Keep note text in a comfortable reading column.",children:f("input",{type:"checkbox",checked:a.readable,onChange:l=>s({readable:l.currentTarget.checked})})}),f(lt,{name:"Open notes in editing mode",hint:"Newly opened notes start in the editor. Existing drafts are preserved.",children:f("input",{type:"checkbox",checked:a.defaultEdit,onChange:l=>s({defaultEdit:l.currentTarget.checked})})})]}):null,t==="Files"?f(pe,{children:[f(lt,{name:"On startup",hint:"Choose which tabs appear when you reopen this workspace.",children:f("select",{"aria-label":"On startup",value:a.startup,onChange:l=>s({startup:l.currentTarget.value}),children:[f("option",{value:"restore",children:"Restore open tabs"}),f("option",{value:"empty",children:"Start with an empty tab"})]})}),f(lt,{name:"Focus new tabs",hint:"Switch to notes opened in a new tab, including from the graph.",children:f("input",{type:"checkbox",checked:a.focusNewTabs,onChange:l=>s({focusNewTabs:l.currentTarget.checked})})}),f("h4",{children:"Deleting files"}),f("p",{children:"Deleting a note or folder removes it from the vault after confirmation. Download a backup before deleting anything you may need again."})]}):null,t==="Backup"?f(pe,{children:[f("h4",{children:"Download your vault"}),f("p",{children:"Save a ZIP containing the vault’s files and folders, including notes, metadata, and attachments. Linked files and folders are included as files."}),f("p",{children:"Save any unsaved edits first. The download contains files saved on disk. Backups are manual; store the ZIP somewhere safe."}),f("a",{class:"weave-settings-download",href:"/api/backup",download:!0,children:"Download vault ZIP"})]}):null]})]})})}function Qx({group:e}){return f("div",{children:[f("p",{class:"weave-key-group",children:e.title}),e.entries.map(t=>f("div",{class:"weave-key-row",children:[f("kbd",{class:"weave-key-combo",children:t.combo}),f("span",{class:"weave-key-what",children:t.what})]},t.combo))]})}function pf(e){let t=Yn(),n=e.shortcut.slice(0,-1);return f("div",{class:"weave-scrim",onClick:e.onClose,children:f("div",{class:"weave-help",role:"dialog","aria-modal":"true","aria-label":Ma,tabIndex:-1,ref:t.ref,onClick:r=>r.stopPropagation(),onKeyDown:r=>{t.onKeyDown(r)},children:[f("h2",{class:"weave-help-title",children:Ma}),f("div",{class:"weave-keys",children:Ii(n).map(r=>f(Qx,{group:r},r.title))}),f("p",{class:"weave-help-foot",children:[f("button",{type:"button",class:"weave-chip",onClick:e.onClose,children:"close"}),f("span",{class:"weave-help-hint",children:Vu})]})]})})}function ff(e,t){let n=r=>{if(r.defaultPrevented)return;let i=Uu(Bu(r),t.context());i!==null&&(r.preventDefault(),t.run(i))};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)}function gf({model:e}){return f("footer",{class:"weave-status",children:[f("span",{class:"weave-status-cwd",title:e.cwd,children:e.cwd}),f("span",{class:"weave-status-sel",title:"Current item",children:e.selection})]})}var mf="pi-weave.theme.v1";function xo(e){try{let t=e.getItem(mf);return Rn(t)?t:null}catch{return null}}function vf(e,t){try{return e.setItem(mf,t),!0}catch{return!1}}function ko(e,t,n=Wt){return ue[Gs(e,t,n)].scheme==="light"?n.darkTheme:n.lightTheme}function Gs(e,t,n=Wt){return e==="system"?t==="light"?n.lightTheme:n.darkTheme:e}function wf(e){return e==="system"?null:e}function Is(e){return e==="system"?"System":ue[e].name}function yf(e,t="dark",n=Wt){return{glyph:e==="system"?"◐":ue[e].scheme==="light"?"○":"●",label:Is(e),hint:`Colour theme: ${Is(e)} — click for ${Is(ko(e,t,n))}`}}function _o(e,t){if(e.kind==="graph")return"Graph view";let n=wt(e);return n===null?"New tab":t?.model.nodes.find(r=>r.id===n)?.label??n.replace(/^[^:]+:/,"")}function Jx(e){let[t]=q(e.visits);return f("div",{class:"weave-recents",children:Ou(t,e.graph,e.selectedId).map(n=>f("button",{type:"button","aria-current":n.selected?"page":void 0,title:n.label,onClick:r=>e.onSelect(n.id,r.metaKey||r.ctrlKey),children:[f("span",{class:"weave-kind",children:f(Ct,{name:n.icon,class:"weave-icon"})}),f("span",{class:"weave-recent-label",children:n.label})]},n.id))})}function ek(e){let t=wt(e.tab),n=t?.startsWith("note:")?t.slice(5):null,[r,i]=q(null),o=Y(null),a=Y(e.tab.scroll),[s,l]=q(!1),[c,u]=q(""),[h,d]=q(!1),p=Y(null);Qe(()=>{s&&p.current?.focus()},[s]),oe(()=>{if(n===null)return;let v=e.drafts.nextLoadVersion();return jp(Ae,n,y=>{i({slug:n,note:y.ok?y.data:null,failed:!y.ok,version:v})})},[n,e.graph?.stamp,e.revision]);let m=r?.slug===n?r:null;if(Qe(()=>{let v=o.current?.querySelector(".weave-note");v!=null&&(v.scrollTop=a.current),n!==null&&e.drafts.get(n)!==null&&o.current?.querySelector(".weave-note-editor")?.focus()},[t,m?.note?.note.slug]),t===null)return f("div",{class:"weave-welcome",children:[f("span",{class:"weave-welcome-mark","aria-hidden":"true",children:"✳"}),f("h1",{children:"Your knowledge, connected."}),f("p",{children:"Ask your agent to write, organize, and connect your notes. Browse that knowledge here, or start a note yourself."}),f("div",{children:[f("button",{type:"button",onClick:e.onSearch,children:["Search workspace ",f("kbd",{children:"⌘K"})]}),f("button",{type:"button",onClick:e.onGraph,children:"Explore graph"}),f("button",{type:"button",onClick:()=>l(!0),children:"New note"})]}),s?f("form",{class:"weave-new-note",onSubmit:v=>{v.preventDefault(),!(h||!c.trim())&&(d(!0),e.onCreate(c.trim()).finally(()=>d(!1)))},onKeyDown:v=>{v.key==="Escape"&&(v.stopPropagation(),h||l(!1))},children:[f("label",{for:`new-note-${e.tab.id}`,children:"Note title"}),f("input",{id:`new-note-${e.tab.id}`,ref:p,required:!0,value:c,disabled:h,onInput:v=>u(v.currentTarget.value)}),f("div",{children:[f("button",{type:"submit",disabled:h||!c.trim(),children:h?"Creating…":"Create note"}),f("button",{type:"button",disabled:h,onClick:()=>l(!1),children:"Cancel"})]})]}):null]});let w=e.graph!==null&&!e.graph.model.nodes.some(v=>v.id===t);if(w||m?.failed&&e.drafts.isDirty(n??"")){let v=n===null?null:e.drafts.get(n);return v!==null&&n!==null&&e.drafts.isDirty(n)?f("div",{class:"weave-welcome",children:[f("h2",{children:w?"This item is no longer here":"This note could not be loaded"}),f("p",{children:["Your unsaved draft is preserved below. Select and copy it before closing this workspace. ",w?"Saving cannot restore or recreate the missing note.":"Reopen this tab to retry loading the note."]}),f("label",{class:"weave-note-meta",for:`missing-draft-${e.tab.id}`,children:"Unsaved draft (read-only)"}),f("textarea",{id:`missing-draft-${e.tab.id}`,class:"weave-note-editor","aria-label":"Unsaved draft for missing note",rows:16,readOnly:!0,value:v.body}),f("button",{type:"button",onClick:e.onSearch,children:"Find another note"})]}):f("div",{class:"weave-welcome",children:[f("h2",{children:"This item is no longer here"}),f("p",{children:"It may have been moved or deleted. Your other tabs are still available."}),f("button",{type:"button",onClick:e.onSearch,children:"Find another note"})]})}return f("div",{class:"weave-document",ref:o,onScrollCapture:v=>{let y=v.target;y.classList.contains("weave-note")&&(a.current=y.scrollTop,e.onScroll(y.scrollTop))},children:f(Ap,{spellcheck:e.preferences.spellcheck,defaultEdit:e.preferences.defaultEdit,note:m?.note??null,loadFailed:m?.failed??!1,loadVersion:m?.version??0,graph:e.graph,selectedId:t,onSelect:e.onSelect,onOpen:v=>{Bl(Ae,v).then(y=>{y.ok?y.data.opened||window.alert("Could not open the note in an editor."):window.alert(y.message)})},onSave:e.onSave,drafts:e.drafts,idPrefix:e.tab.id,now:e.now})})}function bf(e){let[t,n]=q(Ps),[r,i]=q(()=>({...jo(),theme:xo(localStorage)??"system"})),[o,a]=q(null),[s,l]=q(!1),[c,u]=q(Date.now),[h,d]=q(e.initialWidth),[p,m]=q(()=>wr(window)),[w,v]=q(!1),[y,b]=q({version:"",vaultRoot:""}),[k,E]=q(!1),[I,A]=q(0),[,D]=q(0),[O,W]=q(null),T=Y(null),[F,V]=q(null),j=Y(null),[Q,te]=q(null),[rt,Ie]=q(null),[Ge,He]=q(!1),[Ye,Xe]=q([]),[Mt,Te]=q(!1),[X]=q(mo),Ze=Y(null),jt=Y(null),Eo=Y(location.hash),Or=Y(!1),bt=Y(null),Fr=Y(null),xn=Y(null),$r=Y(null),[Xn,se]=q({left:0,top:0,width:600,height:500}),Zn=cr(r),ee=tn(r),qt=yf(r.theme,p,r.preferences),Le=Gs(r.theme,p,r.preferences),Yt=vt(()=>({theme:Le,accent:r.preferences.accent}),[Le,r.preferences.accent]),ct=wt(ee),me=ee.kind==="graph"?O:ct,Me=r.panes.find(_=>_.tabs.some(C=>C.id===_.activeTab&&C.kind==="graph")),kn=Me!==void 0&&(h>=850||Me.id===r.activePane),ye=s&&ee.kind==="document"&&!kn,gt=h<1050?Mt:r.contextVisible,Ne=kn||ye&&gt&&ct!==null,xt=r.panes.some(_=>_.tabs.some(C=>C.kind==="graph")),be=Y({layout:r,overlay:o,selectedId:me,graphPreviewId:F,select:_=>{}}),Ot=_=>{be.current.graphPreviewId=_,V(_)};oe(()=>{Ot(null)},[Ne,ye,ct]),oe(()=>{ct!==null?(T.current=ct,W(ct)):ee.kind==="graph"&&W(T.current)},[ee.id,ee.kind,ct]);let it=_=>{Sp(X,be.current.layout,_,()=>window.confirm(go))&&i(_)},Oe=(_,C=!1,U=r.activePane,L=!1)=>{let $=(_===null?Nn:$l)(r,_,{newTab:C,paneId:U});it(h<850&&!L?{...$,treeVisible:!1}:$),s||Te(!1)},Qn=()=>{let _=!(ye&&gt);l(_),_&&(i(C=>({...di(C),contextVisible:!0})),Te(!0))},kt=()=>i(_=>({...Yo(_),...h<850?{treeVisible:!1}:{}})),Xt=_=>{if(Ot(null),ye){Oe(_,!0);return}let C=r.panes.find(U=>U.id!==Me?.id);Oe(_,!0,C?.id??Me?.id??r.activePane)},_n=_=>{ye||W(_),Mu(be.current.graphPreviewId,_)?Xt(_):Ot(_)};be.current={layout:r,overlay:o,selectedId:me,graphPreviewId:F,select:Oe};let zr=_=>Rp(X,_,()=>window.confirm("Discard unsaved changes to the affected notes before changing files?")),Wr=async(_,C)=>{let U=await Vl(Ae,_,C);return U.ok?(A(L=>L+1),Ze.current?.refresh(),!0):(window.alert(U.message),!1)},Hr=async(_,C)=>{let U=await Kl(Ae,_);if(!U.ok)return window.alert(U.message),!1;let L=await gi(Ae);return n($=>({...$,graph:L.ok?L.data:null,graphFailed:!L.ok})),X.open(U.data.note.slug,U.data.note.body),it(Nn(be.current.layout,`note:${U.data.note.slug}`,{paneId:C})),Ze.current?.refresh(),!0};oe(()=>X.subscribe(()=>D(_=>_+1)),[X]),oe(()=>(Ze.current=Vp({fetch:Ae,state:Ps(),setState:n}),()=>Ze.current?.stop()),[]),oe(()=>{let _=!0;return(async()=>{try{let C=await Ae("/api/workspace-state"),U=await C.json();if(!_)return;if(C.ok&&typeof U.viewId=="string"){jt.current=U.viewId,U.info&&b(U.info);let L=Ol(U.layout);if(L){let $=Fl(L);i($),T.current=wt(tn(di($))),W(T.current),Xe(L.panes.flatMap(ce=>ce.tabs.flatMap(Ue=>Ue.history)).reduce(Da,[]))}}else E(!0)}catch{_&&E(!0)}finally{_&&v(!0)}})(),()=>{_=!1}},[]),oe(()=>{if(!w||t.graph===null||Or.current)return;Or.current=!0;let _=rf(Eo.current,t.graph);_!==null&&i(C=>Nn(C,_))},[w,t.graph]),oe(()=>{w&&Xe(_=>Da(_,me))},[w,me]),oe(()=>{w&&(history.replaceState(null,"",of(me)),document.documentElement.dataset.weaveTheme=Le,document.documentElement.dataset.weaveScheme=ue[Le].scheme,document.documentElement.dataset.weaveAccent=r.preferences.accent,vf(localStorage,r.theme))},[w,me,r.theme,Le,r.preferences.accent]);let En=Y(Promise.resolve());oe(()=>{if(!w||!jt.current)return;let _=jt.current,C=window.setTimeout(()=>{En.current=En.current.then(async()=>{try{let U=await Ae("/api/workspace-state",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewId:_,layout:r})});E(!U.ok)}catch{E(!0)}})},350);return()=>window.clearTimeout(C)},[r,w]),oe(()=>{let _=window.setInterval(()=>u(Date.now()),zu),C=()=>d(window.innerWidth);window.addEventListener("resize",C);let U=Pu(window,m),L=Ue=>{for(let Tt of document.querySelectorAll(".weave-pane-menu[open]"))Tt.contains(Ue.target)||(Tt.open=!1)};document.addEventListener("pointerdown",L);let $=Ue=>{X.dirtySlugs().length&&(Ue.preventDefault(),Ue.returnValue="")},ce=()=>{jt.current&&fetch("/api/workspace-state",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewId:jt.current,layout:be.current.layout}),credentials:"same-origin",keepalive:!0}).catch(()=>{})};return window.addEventListener("pagehide",ce),window.addEventListener("beforeunload",$),()=>{window.clearInterval(_),window.removeEventListener("resize",C),window.removeEventListener("beforeunload",$),window.removeEventListener("pagehide",ce),document.removeEventListener("pointerdown",L),U()}},[]),oe(()=>ff(document,{context:()=>({overlay:be.current.overlay,hasSelection:be.current.selectedId!==null}),run:_=>Ku(_,{setOverlay:a,fitGraph:()=>$r.current?.(),clearSelection:()=>{tn(be.current.layout).kind==="graph"?(W(null),Ot(null)):be.current.select(null)},closeTab:()=>{let C=be.current.layout;it(Zo(C,C.activePane,tn(C).id))},toggleTheme:()=>i(C=>({...C,theme:ko(C.theme,wr(window),C.preferences)})),focusSelector:C=>(C===Mn.graph?i(U=>({...Yo(U),...window.innerWidth<850?{treeVisible:!1}:{}})):C===Mn.tree||C===Ga?i(U=>({...U,treeVisible:!0})):i(di),requestAnimationFrame(()=>{C===Mn.note&&Di(document,".weave-pane-active .weave-note-editor")||!Di(document,C)&&C===Mn.note&&Di(document,".weave-pane-active .weave-pane-content")}),!0)})}),[]),Qe(()=>{for(let _ of r.panes)document.getElementById(`tab-${_.activeTab}`)?.scrollIntoView({block:"nearest",inline:"nearest"})},[r.panes.map(_=>_.activeTab).join(","),r.activePane,h,w,t.graph?.stamp,r.treeVisible,r.treeWidth,r.contextVisible,r.contextWidth,r.ratio,r.split]),Qe(()=>{let _=ye?xn.current:Fr.current,C=bt.current;if(!Ne||!_||!C)return;let U=()=>{let $=_.getBoundingClientRect(),ce=C.getBoundingClientRect();se({left:$.left-ce.left,top:$.top-ce.top,width:$.width,height:$.height})};U();let L=new ResizeObserver(U);return L.observe(_),L.observe(C),()=>L.disconnect()},[ye,Ne,r,h]);let Jn=(_,C)=>i(U=>({...U,panes:U.panes.map(L=>({...L,tabs:L.tabs.map($=>$.id===_?{...$,scroll:C}:$)}))})),_t=(_,C)=>{pi(r,_,j.current)===null&&!C.dataTransfer?.types.includes(yr)||(C.preventDefault(),C.dataTransfer&&(C.dataTransfer.dropEffect=j.current===null?"copy":"move"),te(null),Ie(_))},Et=(_,C)=>{let U=Gu(t.graph,C.dataTransfer?.getData(yr)??"");if(U!==null){C.preventDefault(),Oe(U,!0,_),Ie(null);return}let L=j.current;pi(r,_,L)!==null&&(C.preventDefault(),i($=>{let ce=pi($,_,L);return ce===null?$:fi($,ce,L)}),j.current=null,Ie(null),te(null))},er=(_,C,U)=>{_.tabs.some(L=>L.id===j.current)&&(U.preventDefault(),U.stopPropagation(),U.dataTransfer.dropEffect="move",Ie(null),te({paneId:_.id,before:C}))},tr=(_,C)=>{let U=j.current;U===null||!_.tabs.some(L=>L.id===U)||(C.preventDefault(),C.stopPropagation(),i(L=>ea(L,_.id,U,Q?.paneId===_.id?Q.before:null)),j.current=null,te(null),Ie(null))},Ur=_=>{let C=_.tabs.find(L=>L.id===_.activeTab),U=_.id===r.activePane;return f("section",{class:`weave-pane${U?" weave-pane-active":""}${rt===_.id?" weave-pane-drop":""}`,"data-drop-label":j.current===null?"Open note here":"Move tab here","aria-label":`Workspace pane ${r.panes.indexOf(_)+1}`,onDragOver:L=>_t(_.id,L),onDrop:L=>Et(_.id,L),onDragLeave:L=>{L.currentTarget.contains(L.relatedTarget)||Ie(null)},hidden:h<850&&!U,onFocusCapture:()=>{U||i(L=>({...L,activePane:_.id}))},onPointerDown:()=>{U||i(L=>({...L,activePane:_.id}))},children:[f("div",{class:"weave-tabs",role:"tablist","aria-label":"Open documents",onDragOver:L=>er(_,null,L),onDrop:L=>tr(_,L),children:[_.tabs.map(L=>f("div",{class:`weave-tab${L.id===C.id?" weave-tab-active":""}${Q?.paneId===_.id&&Q.before===L.id?" weave-tab-drop-before":""}${Q?.paneId===_.id&&Q.before===null&&L===_.tabs.at(-1)?" weave-tab-drop-after":""}`,onDragOver:$=>{let ce=$.currentTarget.getBoundingClientRect(),Ue=$.clientX<ce.left+ce.width/2?L.id:_.tabs[_.tabs.indexOf(L)+1]?.id??null;er(_,Ue,$)},onDrop:$=>tr(_,$),children:[f("button",{type:"button",role:"tab",title:_o(L,t.graph),id:`tab-${L.id}`,"aria-selected":L.id===C.id,"aria-controls":`panel-${_.id}`,tabIndex:L.id===C.id?0:-1,draggable:!0,onDragStart:$=>{j.current=L.id,$.dataTransfer.effectAllowed="move",$.dataTransfer.setData("application/x-weave-tab",L.id)},onClick:()=>i(Xo(r,_.id,L.id)),onKeyDown:$=>{let ce=$.key==="ArrowRight"?1:$.key==="ArrowLeft"?-1:0;if(ce&&$.altKey&&!$.ctrlKey&&!$.metaKey){$.preventDefault(),$.stopPropagation();let Br=_.tabs.indexOf(L),Kr=ce<0?_.tabs[Math.max(0,Br-1)].id:_.tabs[Br+2]?.id??null;i(ea(r,_.id,L.id,Kr)),requestAnimationFrame(()=>document.getElementById(`tab-${L.id}`)?.focus());return}if(!ce&&$.key!=="Home"&&$.key!=="End")return;$.preventDefault();let Ue=$.key==="Home"?0:$.key==="End"?_.tabs.length-1:(_.tabs.indexOf(L)+ce+_.tabs.length)%_.tabs.length,Tt=_.tabs[Ue];i(Xo(r,_.id,Tt.id)),requestAnimationFrame(()=>document.getElementById(`tab-${Tt.id}`)?.focus())},children:[f("span",{"aria-hidden":"true",children:L.kind==="graph"?"◌":"▤"}),f("span",{children:_o(L,t.graph)}),X.isDirty((wt(L)??"").slice(5))?f("span",{class:"weave-dirty","aria-label":"Unsaved changes",children:"●"}):null]}),f("button",{type:"button",class:"weave-tab-close","aria-label":`Close ${_o(L,t.graph)}`,onClick:()=>it(Zo(r,_.id,L.id)),children:"×"})]},L.id)),f("button",{type:"button",class:"weave-new-tab","aria-label":"New tab",onClick:()=>Oe(null,!0,_.id),children:"+"})]}),f("div",{class:"weave-pane-toolbar",children:[f("button",{type:"button","aria-label":"Navigate back",disabled:C.kind==="graph"||C.cursor===0,onClick:()=>it(Qo({...r,activePane:_.id},_.id,-1)),children:"←"}),f("button",{type:"button","aria-label":"Navigate forward",disabled:C.kind==="graph"||C.cursor>=C.history.length-1,onClick:()=>it(Qo({...r,activePane:_.id},_.id,1)),children:"→"}),f("span",{class:"weave-breadcrumb",children:_o(C,t.graph)}),f("details",{class:"weave-pane-menu",onKeyDown:L=>{L.key==="Escape"&&(L.preventDefault(),L.stopPropagation(),L.currentTarget.open=!1,L.currentTarget.querySelector("summary")?.focus())},children:[f("summary",{"aria-label":"Pane options",title:"Pane options",children:"···"}),f("div",{onClick:L=>{let $=L.currentTarget.closest("details");$&&($.open=!1)},children:[f("button",{type:"button",onClick:()=>i(Jo({...r,activePane:_.id},"right")),children:r.panes.length>1?"Arrange side by side":"Split right"}),f("button",{type:"button",onClick:()=>i(Jo({...r,activePane:_.id},"down")),children:r.panes.length>1?"Stack panes":"Split down"}),r.panes.length>1?f(pe,{children:[f("button",{type:"button",onClick:()=>i(fi(r,_.id,C.id)),children:"Move tab to other pane"}),f("button",{type:"button",title:"Move all tabs to the other pane and close this pane",onClick:()=>i(Ml(r,_.id)),children:"Close pane"})]}):null]})]})]}),f("div",{class:"weave-pane-content",role:"tabpanel",tabIndex:-1,id:`panel-${_.id}`,"aria-labelledby":`tab-${C.id}`,...C.kind==="graph"?{ref:Fr}:{},children:C.kind==="document"?f(ek,{preferences:r.preferences,tab:C,graph:t.graph,drafts:X,revision:I,now:c,onSelect:(L,$)=>Oe(L,$,_.id),onSave:Wr,onScroll:L=>Jn(C.id,L),onSearch:()=>a("search"),onGraph:kt,onCreate:L=>Hr(L,_.id)},`${C.id}:${C.cursor}:${wt(C)}`):null})]},_.id)};return f(pe,{children:[f("div",{class:"weave-workbench",style:{"--weave-note-size":`${r.preferences.fontSize}px`,"--weave-reading-width":r.preferences.readable?"760px":"100%"},ref:bt,onDragEnd:()=>{j.current=null,Ie(null),te(null)},children:[f("nav",{class:"weave-ribbon","aria-label":"Workspace tools",children:[f("button",{type:"button","aria-label":"Toggle notes sidebar","aria-pressed":r.treeVisible,title:"Notes",onClick:()=>i({...r,treeVisible:!r.treeVisible}),children:"▤"}),f("button",{type:"button","aria-label":"Open graph view",title:"Graph view",onClick:kt,children:"◌"}),f("button",{type:"button","aria-label":"Toggle note graph",title:"Note graph","aria-pressed":ye&&gt,onClick:Qn,children:f("svg",{viewBox:"0 0 20 20",width:18,height:18,fill:"none",stroke:"currentColor","stroke-width":1.5,"aria-hidden":"true",children:[f("rect",{x:"2",y:"2",width:"16",height:"16",rx:"3"}),f("circle",{cx:"10",cy:"10",r:"4"})]})}),f("button",{type:"button","aria-label":"Search notes and repository",title:Wu(Ni(Pi(e.platform))),onClick:()=>a("search"),children:f("svg",{viewBox:"0 0 20 20",width:16,height:16,fill:"none",stroke:"currentColor","stroke-width":1.7,"aria-hidden":"true",children:[f("circle",{cx:"8.5",cy:"8.5",r:"5.5"}),f("path",{d:"m13 13 4 4"})]})}),f("span",{class:"weave-ribbon-space"}),f("button",{type:"button","aria-label":"Toggle context sidebar","aria-pressed":gt,title:"Context",onClick:()=>h<1050?Te(!Mt):i({...r,contextVisible:!r.contextVisible}),children:"☷"}),f("button",{type:"button","aria-label":"Refresh workspace",title:"Refresh workspace",onClick:()=>{Ze.current?.refresh(),A(_=>_+1)},children:"↻"}),f("button",{type:"button","aria-label":qt.hint,title:qt.hint,onClick:()=>i({...r,theme:ko(r.theme,p,r.preferences)}),children:qt.glyph}),f("button",{type:"button","aria-label":"Settings",title:"Settings",onClick:()=>a("settings"),children:"⚙"})]}),f("div",{class:"weave-sidebar-dock weave-notes-dock","data-open":r.treeVisible,inert:!r.treeVisible,"aria-hidden":!r.treeVisible,style:{"--weave-sidebar-width":`${Math.min(r.treeWidth,h-90)}px`},children:[f("aside",{class:"weave-sidebar weave-sidebar-notes","aria-label":"Notes sidebar",children:[f("div",{class:"weave-sidebar-heading",children:[f("button",{type:"button","aria-pressed":!Ge,onClick:()=>He(!1),children:"Files"}),f("button",{type:"button","aria-pressed":Ge,onClick:()=>He(!0),children:"Recent"}),f("button",{type:"button","aria-label":"Hide notes sidebar",onClick:()=>{bt.current?.querySelector('[aria-label="Toggle notes sidebar"]')?.focus(),i({...r,treeVisible:!1})},children:"«"})]}),Ge?f(Jx,{visits:Ye,graph:t.graph,selectedId:me,onSelect:Oe}):f(qu,{graph:t.graph,selectedId:me,recentIds:t.recentIds,onSelect:(_,C,U)=>Oe(_,C,r.activePane,U),onMutate:zr,onRefresh:()=>Ze.current?.refresh(),now:c}),f("div",{class:"weave-vault-label",children:[f("span",{children:"Workspace"}),f("strong",{title:e.cwd,children:e.cwd.split(/[\\/]/).filter(Boolean).pop()??"Weave"})]})]}),f(bn,{label:"Resize notes sidebar",min:180,max:420,value:r.treeWidth,onChange:_=>i(C=>({...C,treeWidth:Math.max(180,Math.min(420,C.treeWidth+_))}))})]}),f("main",{class:`weave-panes weave-split-${r.split}`,style:r.panes.length===2&&h>=850?{[r.split==="right"?"gridTemplateColumns":"gridTemplateRows"]:`minmax(0, ${r.ratio}fr) 4px minmax(0, ${1-r.ratio}fr)`}:{},children:w?r.panes.map((_,C)=>f(pe,{children:[C>0&&h>=850?f(bn,{label:"Resize split panes",min:20,max:80,horizontal:r.split==="down",value:r.ratio*100,onChange:U=>{let L=r.split==="right"?bt.current?.querySelector("main")?.clientWidth:bt.current?.querySelector("main")?.clientHeight;i($=>({...$,ratio:Math.max(.2,Math.min(.8,$.ratio+U/(L??800)))}))}}):null,Ur(_)]})):f("div",{class:"weave-welcome",role:"status",children:"Opening workspace…"})}),f("div",{class:"weave-sidebar-dock weave-context-dock","data-open":gt,inert:!gt,"aria-hidden":!gt,style:{"--weave-sidebar-width":`${r.contextWidth}px`},children:[f(bn,{label:"Resize context sidebar",min:180,max:400,value:r.contextWidth,onChange:_=>i(C=>({...C,contextWidth:Math.max(180,Math.min(400,C.contextWidth-_))}))}),f("aside",{class:"weave-sidebar weave-sidebar-context","aria-label":"Context sidebar",children:[f("div",{class:"weave-sidebar-heading",children:[f("strong",{children:"Context"}),f("button",{type:"button","aria-label":"Hide context sidebar",onClick:()=>{bt.current?.querySelector('[aria-label="Toggle context sidebar"]')?.focus(),Te(!1),i({...r,contextVisible:!1})},children:"»"})]}),ye?f("section",{class:"weave-context-graph-section","aria-label":"Note connections",children:[f("div",{class:"weave-context-graph-heading",children:[f("strong",{children:"Note graph"}),f("button",{type:"button","aria-label":"Hide note graph",onClick:()=>{bt.current?.querySelector('[aria-label="Toggle note graph"]')?.focus(),l(!1)},children:"×"})]}),f("div",{class:"weave-context-graph-slot",ref:xn,style:{height:r.contextGraphHeight},children:ct===null?f("p",{children:"Select a note to see its connections."}):null}),f(bn,{label:"Resize note graph",horizontal:!0,min:120,max:800,value:Xn.height,onChange:_=>i(C=>({...C,contextGraphHeight:Math.max(120,Math.min(800,(xn.current?.clientHeight??C.contextGraphHeight)+_))}))})]}):null,f(nf,{graph:t.graph,selectedId:me,onSelect:Oe,tagHeight:r.contextTagsHeight,onTagResize:_=>i(C=>({...C,contextTagsHeight:_}))})]})]}),xt||s?f("div",{class:`weave-graph-host${ye?" weave-context-graph-host":""}`,onDragOver:_=>{!ye&&Me&&_t(Me.id,_)},onDrop:_=>{!ye&&Me&&Et(Me.id,_)},onDragLeave:_=>{_.currentTarget.contains(_.relatedTarget)||Ie(null)},onPointerDown:()=>{!ye&&Me&&i(_=>({..._,activePane:Me.id}))},onFocusCapture:()=>{!ye&&Me&&i(_=>({..._,activePane:Me.id}))},"aria-hidden":!Ne,inert:!Ne,role:ye?"region":void 0,"aria-label":ye?"Note graph":void 0,style:{...Xn,visibility:Ne?"visible":"hidden",pointerEvents:Ne?"auto":"none"},children:f(Yu,{graph:t.graph,selectedId:me,previewId:F,onSelect:_n,onOpen:Xt,renderer:gh,storage:localStorage,host:window,scheme:Yt,forces:r.preferences.forces,groupColors:r.preferences.groupColors,bootFailed:t.graphFailed,fit:$r})}):null]}),f("div",{class:"weave-footer",children:[f(gf,{model:$u(e.cwd,me)}),k?f("span",{role:"status",children:"Workspace restoration unavailable"}):null,X.dirtySlugs().length?f("span",{children:[X.dirtySlugs().length," unsaved"]}):null,h<850&&r.panes.length>1?f("button",{type:"button",onClick:()=>i({...r,activePane:r.panes.find(_=>_.id!==Zn.id).id}),children:"Switch pane"}):null]}),o==="search"?f(Hp,{graph:t.graph,onSelect:Oe,onClose:()=>a(null),ports:{fetch:Ae}}):null,o==="settings"?f(hf,{compact:h<=650,layout:r,info:y,cwd:e.cwd,shortcut:Ni(Pi(e.platform)),onChange:_=>{it(_),Te(_.contextVisible)},onRefresh:()=>{Ze.current?.refresh(),A(_=>_+1)},onClose:()=>a(null)}):null,o==="help"?f(pf,{shortcut:Ni(Pi(e.platform)),onClose:()=>a(null)}):null]})}var xf=`
408
+ `,Ux=Wx,Up=WebGLRenderingContext,Cp=Up.UNSIGNED_BYTE,ti=Up.FLOAT,Bx=["u_matrix","u_zoomRatio","u_sizeRatio","u_correctionRatio","u_pixelRatio","u_feather","u_minEdgeThickness"],Bp=(function(e){function t(){return De(this,t),Qe(this,t,arguments)}return Je(t,e),Ie(t,[{key:"getDefinition",value:function(){return{VERTICES:6,VERTEX_SHADER_SOURCE:Ux,FRAGMENT_SHADER_SOURCE:$p,METHOD:WebGLRenderingContext.TRIANGLES,UNIFORMS:Bx,ATTRIBUTES:[{name:"a_positionStart",size:2,type:ti},{name:"a_positionEnd",size:2,type:ti},{name:"a_normal",size:2,type:ti},{name:"a_color",size:4,type:Cp,normalized:!0},{name:"a_id",size:4,type:Cp,normalized:!0}],CONSTANT_ATTRIBUTES:[{name:"a_positionCoef",size:1,type:ti},{name:"a_normalCoef",size:1,type:ti}],CONSTANT_DATA:[[0,1],[0,-1],[1,1],[1,1],[0,-1],[1,-1]]}}},{key:"processVisibleItem",value:function(r,i,a,o,s){var l=s.size||1,c=a.x,u=a.y,d=o.x,h=o.y,f=cr(s.color),g=d-c,y=h-u,v=g*g+y*y,w=0,b=0;v&&(v=1/Math.sqrt(v),w=-y*v*l,b=g*v*l);var k=this.array;k[i++]=c,k[i++]=u,k[i++]=d,k[i++]=h,k[i++]=w,k[i++]=b,k[i++]=f,k[i++]=r}},{key:"setUniforms",value:function(r,i){var a=i.gl,o=i.uniformLocations,s=o.u_matrix,l=o.u_zoomRatio,c=o.u_feather,u=o.u_pixelRatio,d=o.u_correctionRatio,h=o.u_sizeRatio,f=o.u_minEdgeThickness;a.uniformMatrix3fv(s,!1,r.matrix),a.uniform1f(l,r.zoomRatio),a.uniform1f(h,r.sizeRatio),a.uniform1f(d,r.correctionRatio),a.uniform1f(u,r.pixelRatio),a.uniform1f(c,r.antiAliasingFeather),a.uniform1f(f,r.minEdgeThickness)}}])})(Js);var tf=Nr(Sa()),Ea=(function(e){function t(){var n;return De(this,t),n=Qe(this,t),n.rawEmitter=n,n}return Je(t,e),Ie(t)})(tf.EventEmitter);var of=Nr(nl());var Zx=function(t){return t},Qx=function(t){return t*t},Jx=function(t){return t*(2-t)},ek=function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},tk=function(t){return t*t*t},nk=function(t){return--t*t*t+1},rk=function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},sf={linear:Zx,quadraticIn:Qx,quadraticOut:Jx,quadraticInOut:ek,cubicIn:tk,cubicOut:nk,cubicInOut:rk},lf={easing:"quadraticInOut",duration:150};function kt(){return Float32Array.of(1,0,0,0,1,0,0,0,1)}function Ra(e,t,n){return e[0]=t,e[4]=typeof n=="number"?n:t,e}function rf(e,t){var n=Math.sin(t),r=Math.cos(t);return e[0]=r,e[1]=n,e[3]=-n,e[4]=r,e}function af(e,t,n){return e[6]=t,e[7]=n,e}function hn(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],l=e[6],c=e[7],u=e[8],d=t[0],h=t[1],f=t[2],g=t[3],y=t[4],v=t[5],w=t[6],b=t[7],k=t[8];return e[0]=d*n+h*a+f*l,e[1]=d*r+h*o+f*c,e[2]=d*i+h*s+f*u,e[3]=g*n+y*a+v*l,e[4]=g*r+y*o+v*c,e[5]=g*i+y*s+v*u,e[6]=w*n+b*a+k*l,e[7]=w*r+b*o+k*c,e[8]=w*i+b*s+k*u,e}function Aa(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,r=e[0],i=e[1],a=e[3],o=e[4],s=e[6],l=e[7],c=t.x,u=t.y;return{x:c*r+u*a+s*n,y:c*i+u*o+l*n}}function ik(e,t){var n=e.height/e.width,r=t.height/t.width;return n<1&&r>1||n>1&&r<1?1:Math.min(Math.max(r,1/r),Math.max(1/n,n))}function dr(e,t,n,r,i){var a=e.angle,o=e.ratio,s=e.x,l=e.y,c=t.width,u=t.height,d=kt(),h=Math.min(c,u)-2*r,f=ik(t,n);return i?(hn(d,af(kt(),s,l)),hn(d,Ra(kt(),o)),hn(d,rf(kt(),a)),hn(d,Ra(kt(),c/h/2/f,u/h/2/f))):(hn(d,Ra(kt(),2*(h/c)*f,2*(h/u)*f)),hn(d,rf(kt(),-a)),hn(d,Ra(kt(),1/o)),hn(d,af(kt(),-s,-l))),d}function cf(e,t,n){var r=Aa(e,{x:Math.cos(t.angle),y:Math.sin(t.angle)},0),i=r.x,a=r.y;return 1/Math.sqrt(Math.pow(i,2)+Math.pow(a,2))/n.width}function uf(e){if(!e.order)return{x:[0,1],y:[0,1]};var t=1/0,n=-1/0,r=1/0,i=-1/0;return e.forEachNode(function(a,o){var s=o.x,l=o.y;s<t&&(t=s),s>n&&(n=s),l<r&&(r=l),l>i&&(i=l)}),{x:[t,n],y:[r,i]}}function df(e){if(!(0,of.default)(e))throw new Error("Sigma: invalid graph instance.");e.forEachNode(function(t,n){if(!Number.isFinite(n.x)||!Number.isFinite(n.y))throw new Error("Sigma: Coordinates of node ".concat(t," are invalid. A node must have a numeric 'x' and 'y' attribute."))})}function hf(e,t,n){var r=document.createElement(e);if(t)for(var i in t)r.style[i]=t[i];if(n)for(var a in n)r.setAttribute(a,n[a]);return r}function rl(){return typeof window.devicePixelRatio<"u"?window.devicePixelRatio:1}function il(e,t,n){return n.sort(function(r,i){var a=t(r)||0,o=t(i)||0;return a<o?-1:a>o?1:0})}function al(e){var t=dn(e.x,2),n=t[0],r=t[1],i=dn(e.y,2),a=i[0],o=i[1],s=Math.max(r-n,o-a),l=(r+n)/2,c=(o+a)/2;(s===0||Math.abs(s)===1/0||isNaN(s))&&(s=1),isNaN(l)&&(l=0),isNaN(c)&&(c=0);var u=function(h){return{x:.5+(h.x-l)/s,y:.5+(h.y-c)/s}};return u.applyTo=function(d){d.x=.5+(d.x-l)/s,d.y=.5+(d.y-c)/s},u.inverse=function(d){return{x:l+s*(d.x-.5),y:c+s*(d.y-.5)}},u.ratio=s,u}function Ca(e){"@babel/helpers - typeof";return Ca=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ca(e)}function ol(e,t){var n=t.size;if(n!==0){var r=e.length;e.length+=n;var i=0;t.forEach(function(a){e[r+i]=a,i++})}}function La(e){e=e||{};for(var t=0,n=arguments.length<=1?0:arguments.length-1;t<n;t++){var r=t+1<1||arguments.length<=t+1?void 0:arguments[t+1];r&&Object.assign(e,r)}return e}var Na={hideEdgesOnMove:!1,hideLabelsOnMove:!1,renderLabels:!0,renderEdgeLabels:!1,enableEdgeEvents:!1,defaultNodeColor:"#999",defaultNodeType:"circle",defaultEdgeColor:"#ccc",defaultEdgeType:"line",labelFont:"Arial",labelSize:14,labelWeight:"normal",labelColor:{color:"#000"},edgeLabelFont:"Arial",edgeLabelSize:14,edgeLabelWeight:"normal",edgeLabelColor:{attribute:"color"},stagePadding:30,defaultDrawEdgeLabel:Dp,defaultDrawNodeLabel:el,defaultDrawNodeHover:Ip,minEdgeThickness:1.7,antiAliasingFeather:1,dragTimeout:100,draggedEventsTolerance:3,inertiaDuration:200,inertiaRatio:3,zoomDuration:250,zoomingRatio:1.7,doubleClickTimeout:300,doubleClickZoomingRatio:2.2,doubleClickZoomingDuration:200,tapMoveTolerance:10,zoomToSizeRatioFunction:Math.sqrt,itemSizesReference:"screen",autoRescale:!0,autoCenter:!0,labelDensity:1,labelGridCellSize:100,labelRenderedSizeThreshold:6,nodeReducer:null,edgeReducer:null,zIndex:!1,minCameraRatio:null,maxCameraRatio:null,enableCameraZooming:!0,enableCameraPanning:!0,enableCameraRotation:!0,cameraPanBoundaries:null,allowInvalidContainer:!1,nodeProgramClasses:{},nodeHoverProgramClasses:{},edgeProgramClasses:{}},ak={circle:ni},ok={arrow:Wp,line:Bp};function Pa(e){if(typeof e.labelDensity!="number"||e.labelDensity<0)throw new Error("Settings: invalid `labelDensity`. Expecting a positive number.");var t=e.minCameraRatio,n=e.maxCameraRatio;if(typeof t=="number"&&typeof n=="number"&&n<t)throw new Error("Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.")}function pf(e){var t=La({},Na,e);return t.nodeProgramClasses=La({},ak,t.nodeProgramClasses),t.edgeProgramClasses=La({},ok,t.edgeProgramClasses),t}var bR=Nr(Sa()),xR=Nr(nl()),Da=1.5,ff=(function(e){function t(){var n;return De(this,t),n=Qe(this,t),A(n,"x",.5),A(n,"y",.5),A(n,"angle",0),A(n,"ratio",1),A(n,"minRatio",null),A(n,"maxRatio",null),A(n,"enabledZooming",!0),A(n,"enabledPanning",!0),A(n,"enabledRotation",!0),A(n,"clean",null),A(n,"nextFrame",null),A(n,"previousState",null),A(n,"enabled",!0),n.previousState=n.getState(),n}return Je(t,e),Ie(t,[{key:"enable",value:function(){return this.enabled=!0,this}},{key:"disable",value:function(){return this.enabled=!1,this}},{key:"getState",value:function(){return{x:this.x,y:this.y,angle:this.angle,ratio:this.ratio}}},{key:"hasState",value:function(r){return this.x===r.x&&this.y===r.y&&this.ratio===r.ratio&&this.angle===r.angle}},{key:"getPreviousState",value:function(){var r=this.previousState;return r?{x:r.x,y:r.y,angle:r.angle,ratio:r.ratio}:null}},{key:"getBoundedRatio",value:function(r){var i=r;return typeof this.minRatio=="number"&&(i=Math.max(i,this.minRatio)),typeof this.maxRatio=="number"&&(i=Math.min(i,this.maxRatio)),i}},{key:"validateState",value:function(r){var i={};return this.enabledPanning&&typeof r.x=="number"&&(i.x=r.x),this.enabledPanning&&typeof r.y=="number"&&(i.y=r.y),this.enabledZooming&&typeof r.ratio=="number"&&(i.ratio=this.getBoundedRatio(r.ratio)),this.enabledRotation&&typeof r.angle=="number"&&(i.angle=r.angle),this.clean?this.clean(H(H({},this.getState()),i)):i}},{key:"isAnimated",value:function(){return!!this.nextFrame}},{key:"setState",value:function(r){if(!this.enabled)return this;this.previousState=this.getState();var i=this.validateState(r);return typeof i.x=="number"&&(this.x=i.x),typeof i.y=="number"&&(this.y=i.y),typeof i.ratio=="number"&&(this.ratio=i.ratio),typeof i.angle=="number"&&(this.angle=i.angle),this.hasState(this.previousState)||this.emit("updated",this.getState()),this}},{key:"updateState",value:function(r){return this.setState(r(this.getState())),this}},{key:"animate",value:function(r){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if(!o)return new Promise(function(f){return i.animate(r,a,f)});if(this.enabled){var s=H(H({},lf),a),l=this.validateState(r),c=typeof s.easing=="function"?s.easing:sf[s.easing],u=Date.now(),d=this.getState(),h=function(){var g=(Date.now()-u)/s.duration;if(g>=1){i.nextFrame=null,i.setState(l),i.animationCallback&&(i.animationCallback.call(null),i.animationCallback=void 0);return}var y=c(g),v={};typeof l.x=="number"&&(v.x=d.x+(l.x-d.x)*y),typeof l.y=="number"&&(v.y=d.y+(l.y-d.y)*y),i.enabledRotation&&typeof l.angle=="number"&&(v.angle=d.angle+(l.angle-d.angle)*y),typeof l.ratio=="number"&&(v.ratio=d.ratio+(l.ratio-d.ratio)*y),i.setState(v),i.nextFrame=requestAnimationFrame(h)};this.nextFrame?(cancelAnimationFrame(this.nextFrame),this.animationCallback&&this.animationCallback.call(null),this.nextFrame=requestAnimationFrame(h)):h(),this.animationCallback=o}}},{key:"animatedZoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio/r}):this.animate({ratio:this.ratio/(r.factor||Da)},r):this.animate({ratio:this.ratio/Da})}},{key:"animatedUnzoom",value:function(r){return r?typeof r=="number"?this.animate({ratio:this.ratio*r}):this.animate({ratio:this.ratio*(r.factor||Da)},r):this.animate({ratio:this.ratio*Da})}},{key:"animatedReset",value:function(r){return this.animate({x:.5,y:.5,ratio:1,angle:0},r)}},{key:"copy",value:function(){return t.from(this.getState())}}],[{key:"from",value:function(r){var i=new t;return i.setState(r)}}])})(Ea);function Pt(e,t){var n=t.getBoundingClientRect();return{x:e.clientX-n.left,y:e.clientY-n.top}}function jt(e,t){var n=H(H({},Pt(e,t)),{},{sigmaDefaultPrevented:!1,preventSigmaDefault:function(){n.sigmaDefaultPrevented=!0},original:e});return n}function ri(e){var t="x"in e?e:H(H({},e.touches[0]||e.previousTouches[0]),{},{original:e.original,sigmaDefaultPrevented:e.sigmaDefaultPrevented,preventSigmaDefault:function(){e.sigmaDefaultPrevented=!0,t.sigmaDefaultPrevented=!0}});return t}function sk(e,t){return H(H({},jt(e,t)),{},{delta:bf(e)})}var lk=2;function Ia(e){for(var t=[],n=0,r=Math.min(e.length,lk);n<r;n++)t.push(e[n]);return t}function ii(e,t,n){var r={touches:Ia(e.touches).map(function(i){return Pt(i,n)}),previousTouches:t.map(function(i){return Pt(i,n)}),sigmaDefaultPrevented:!1,preventSigmaDefault:function(){r.sigmaDefaultPrevented=!0},original:e};return r}function bf(e){if(typeof e.deltaY<"u")return e.deltaY*-3/360;if(typeof e.detail<"u")return e.detail/-9;throw new Error("Captor: could not extract delta from event.")}var xf=(function(e){function t(n,r){var i;return De(this,t),i=Qe(this,t),i.container=n,i.renderer=r,i}return Je(t,e),Ie(t)})(Ea),ck=["doubleClickTimeout","doubleClickZoomingDuration","doubleClickZoomingRatio","dragTimeout","draggedEventsTolerance","inertiaDuration","inertiaRatio","zoomDuration","zoomingRatio"],uk=ck.reduce(function(e,t){return H(H({},e),{},A({},t,Na[t]))},{}),dk=(function(e){function t(n,r){var i;return De(this,t),i=Qe(this,t,[n,r]),A(i,"enabled",!0),A(i,"draggedEvents",0),A(i,"downStartTime",null),A(i,"lastMouseX",null),A(i,"lastMouseY",null),A(i,"isMouseDown",!1),A(i,"isMoving",!1),A(i,"movingTimeout",null),A(i,"startCameraState",null),A(i,"clicks",0),A(i,"doubleClickTimeout",null),A(i,"currentWheelDirection",0),A(i,"settings",uk),i.handleClick=i.handleClick.bind(i),i.handleRightClick=i.handleRightClick.bind(i),i.handleDown=i.handleDown.bind(i),i.handleUp=i.handleUp.bind(i),i.handleMove=i.handleMove.bind(i),i.handleWheel=i.handleWheel.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleEnter=i.handleEnter.bind(i),n.addEventListener("click",i.handleClick,{capture:!1}),n.addEventListener("contextmenu",i.handleRightClick,{capture:!1}),n.addEventListener("mousedown",i.handleDown,{capture:!1}),n.addEventListener("wheel",i.handleWheel,{capture:!1}),n.addEventListener("mouseleave",i.handleLeave,{capture:!1}),n.addEventListener("mouseenter",i.handleEnter,{capture:!1}),document.addEventListener("mousemove",i.handleMove,{capture:!1}),document.addEventListener("mouseup",i.handleUp,{capture:!1}),i}return Je(t,e),Ie(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("click",this.handleClick),r.removeEventListener("contextmenu",this.handleRightClick),r.removeEventListener("mousedown",this.handleDown),r.removeEventListener("wheel",this.handleWheel),r.removeEventListener("mouseleave",this.handleLeave),r.removeEventListener("mouseenter",this.handleEnter),document.removeEventListener("mousemove",this.handleMove),document.removeEventListener("mouseup",this.handleUp)}},{key:"handleClick",value:function(r){var i=this;if(this.enabled){if(this.clicks++,this.clicks===2)return this.clicks=0,typeof this.doubleClickTimeout=="number"&&(clearTimeout(this.doubleClickTimeout),this.doubleClickTimeout=null),this.handleDoubleClick(r);setTimeout(function(){i.clicks=0,i.doubleClickTimeout=null},this.settings.doubleClickTimeout),this.draggedEvents<this.settings.draggedEventsTolerance&&this.emit("click",jt(r,this.container))}}},{key:"handleRightClick",value:function(r){this.enabled&&this.emit("rightClick",jt(r,this.container))}},{key:"handleDoubleClick",value:function(r){if(this.enabled){r.preventDefault(),r.stopPropagation();var i=jt(r,this.container);if(this.emit("doubleClick",i),!i.sigmaDefaultPrevented){var a=this.renderer.getCamera(),o=a.getBoundedRatio(a.getState().ratio/this.settings.doubleClickZoomingRatio);a.animate(this.renderer.getViewportZoomedState(Pt(r,this.container),o),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}}},{key:"handleDown",value:function(r){if(this.enabled){if(r.button===0){this.startCameraState=this.renderer.getCamera().getState();var i=Pt(r,this.container),a=i.x,o=i.y;this.lastMouseX=a,this.lastMouseY=o,this.draggedEvents=0,this.downStartTime=Date.now(),this.isMouseDown=!0}this.emit("mousedown",jt(r,this.container))}}},{key:"handleUp",value:function(r){var i=this;if(!(!this.enabled||!this.isMouseDown)){var a=this.renderer.getCamera();this.isMouseDown=!1,typeof this.movingTimeout=="number"&&(clearTimeout(this.movingTimeout),this.movingTimeout=null);var o=Pt(r,this.container),s=o.x,l=o.y,c=a.getState(),u=a.getPreviousState()||{x:0,y:0};this.isMoving?a.animate({x:c.x+this.settings.inertiaRatio*(c.x-u.x),y:c.y+this.settings.inertiaRatio*(c.y-u.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"}):(this.lastMouseX!==s||this.lastMouseY!==l)&&a.setState({x:c.x,y:c.y}),this.isMoving=!1,setTimeout(function(){var d=i.draggedEvents>0;i.draggedEvents=0,d&&i.renderer.getSetting("hideEdgesOnMove")&&i.renderer.refresh()},0),this.emit("mouseup",jt(r,this.container))}}},{key:"handleMove",value:function(r){var i=this;if(this.enabled){var a=jt(r,this.container);if(this.emit("mousemovebody",a),(r.target===this.container||r.composedPath()[0]===this.container)&&this.emit("mousemove",a),!a.sigmaDefaultPrevented&&this.isMouseDown){this.isMoving=!0,this.draggedEvents++,typeof this.movingTimeout=="number"&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.movingTimeout=null,i.isMoving=!1},this.settings.dragTimeout);var o=this.renderer.getCamera(),s=Pt(r,this.container),l=s.x,c=s.y,u=this.renderer.viewportToFramedGraph({x:this.lastMouseX,y:this.lastMouseY}),d=this.renderer.viewportToFramedGraph({x:l,y:c}),h=u.x-d.x,f=u.y-d.y,g=o.getState(),y=g.x+h,v=g.y+f;o.setState({x:y,y:v}),this.lastMouseX=l,this.lastMouseY=c,r.preventDefault(),r.stopPropagation()}}}},{key:"handleLeave",value:function(r){this.emit("mouseleave",jt(r,this.container))}},{key:"handleEnter",value:function(r){this.emit("mouseenter",jt(r,this.container))}},{key:"handleWheel",value:function(r){var i=this,a=this.renderer.getCamera();if(!(!this.enabled||!a.enabledZooming)){var o=bf(r);if(o){var s=sk(r,this.container);if(this.emit("wheel",s),s.sigmaDefaultPrevented){r.preventDefault(),r.stopPropagation();return}var l=a.getState().ratio,c=o>0?1/this.settings.zoomingRatio:this.settings.zoomingRatio,u=a.getBoundedRatio(l*c),d=o>0?1:-1,h=Date.now();l!==u&&(r.preventDefault(),r.stopPropagation(),!(this.currentWheelDirection===d&&this.lastWheelTriggerTime&&h-this.lastWheelTriggerTime<this.settings.zoomDuration/5)&&(a.animate(this.renderer.getViewportZoomedState(Pt(r,this.container),u),{easing:"quadraticOut",duration:this.settings.zoomDuration},function(){i.currentWheelDirection=0}),this.currentWheelDirection=d,this.lastWheelTriggerTime=h))}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(xf),hk=["dragTimeout","inertiaDuration","inertiaRatio","doubleClickTimeout","doubleClickZoomingRatio","doubleClickZoomingDuration","tapMoveTolerance"],pk=hk.reduce(function(e,t){return H(H({},e),{},A({},t,Na[t]))},{}),fk=(function(e){function t(n,r){var i;return De(this,t),i=Qe(this,t,[n,r]),A(i,"enabled",!0),A(i,"isMoving",!1),A(i,"hasMoved",!1),A(i,"touchMode",0),A(i,"startTouchesPositions",[]),A(i,"lastTouches",[]),A(i,"lastTap",null),A(i,"settings",pk),i.handleStart=i.handleStart.bind(i),i.handleLeave=i.handleLeave.bind(i),i.handleMove=i.handleMove.bind(i),n.addEventListener("touchstart",i.handleStart,{capture:!1}),n.addEventListener("touchcancel",i.handleLeave,{capture:!1}),document.addEventListener("touchend",i.handleLeave,{capture:!1,passive:!1}),document.addEventListener("touchmove",i.handleMove,{capture:!1,passive:!1}),i}return Je(t,e),Ie(t,[{key:"kill",value:function(){var r=this.container;r.removeEventListener("touchstart",this.handleStart),r.removeEventListener("touchcancel",this.handleLeave),document.removeEventListener("touchend",this.handleLeave),document.removeEventListener("touchmove",this.handleMove)}},{key:"getDimensions",value:function(){return{width:this.container.offsetWidth,height:this.container.offsetHeight}}},{key:"handleStart",value:function(r){var i=this;if(this.enabled){r.preventDefault();var a=Ia(r.touches);if(this.touchMode=a.length,this.startCameraState=this.renderer.getCamera().getState(),this.startTouchesPositions=a.map(function(f){return Pt(f,i.container)}),this.touchMode===2){var o=dn(this.startTouchesPositions,2),s=o[0],l=s.x,c=s.y,u=o[1],d=u.x,h=u.y;this.startTouchesAngle=Math.atan2(h-c,d-l),this.startTouchesDistance=Math.sqrt(Math.pow(d-l,2)+Math.pow(h-c,2))}this.emit("touchdown",ii(r,this.lastTouches,this.container)),this.lastTouches=a,this.lastTouchesPositions=this.startTouchesPositions}}},{key:"handleLeave",value:function(r){if(!(!this.enabled||!this.startTouchesPositions.length)){switch(r.cancelable&&r.preventDefault(),this.movingTimeout&&(this.isMoving=!1,clearTimeout(this.movingTimeout)),this.touchMode){case 2:if(r.touches.length===1){this.handleStart(r),r.preventDefault();break}case 1:if(this.isMoving){var i=this.renderer.getCamera(),a=i.getState(),o=i.getPreviousState()||{x:0,y:0};i.animate({x:a.x+this.settings.inertiaRatio*(a.x-o.x),y:a.y+this.settings.inertiaRatio*(a.y-o.y)},{duration:this.settings.inertiaDuration,easing:"quadraticOut"})}this.hasMoved=!1,this.isMoving=!1,this.touchMode=0;break}if(this.emit("touchup",ii(r,this.lastTouches,this.container)),!r.touches.length){var s=Pt(this.lastTouches[0],this.container),l=this.startTouchesPositions[0],c=Math.pow(s.x-l.x,2)+Math.pow(s.y-l.y,2);if(!r.touches.length&&c<Math.pow(this.settings.tapMoveTolerance,2))if(this.lastTap&&Date.now()-this.lastTap.time<this.settings.doubleClickTimeout){var u=ii(r,this.lastTouches,this.container);if(this.emit("doubletap",u),this.lastTap=null,!u.sigmaDefaultPrevented){var d=this.renderer.getCamera(),h=d.getBoundedRatio(d.getState().ratio/this.settings.doubleClickZoomingRatio);d.animate(this.renderer.getViewportZoomedState(s,h),{easing:"quadraticInOut",duration:this.settings.doubleClickZoomingDuration})}}else{var f=ii(r,this.lastTouches,this.container);this.emit("tap",f),this.lastTap={time:Date.now(),position:f.touches[0]||f.previousTouches[0]}}}this.lastTouches=Ia(r.touches),this.startTouchesPositions=[]}}},{key:"handleMove",value:function(r){var i=this;if(!(!this.enabled||!this.startTouchesPositions.length)){r.preventDefault();var a=Ia(r.touches),o=a.map(function(Ee){return Pt(Ee,i.container)}),s=this.lastTouches;this.lastTouches=a,this.lastTouchesPositions=o;var l=ii(r,s,this.container);if(this.emit("touchmove",l),!l.sigmaDefaultPrevented&&(this.hasMoved||(this.hasMoved=o.some(function(Ee,yt){var pe=i.startTouchesPositions[yt];return pe&&(Ee.x!==pe.x||Ee.y!==pe.y)})),!!this.hasMoved)){this.isMoving=!0,this.movingTimeout&&clearTimeout(this.movingTimeout),this.movingTimeout=window.setTimeout(function(){i.isMoving=!1},this.settings.dragTimeout);var c=this.renderer.getCamera(),u=this.startCameraState,d=this.renderer.getSetting("stagePadding");switch(this.touchMode){case 1:{var h=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0]),f=h.x,g=h.y,y=this.renderer.viewportToFramedGraph(o[0]),v=y.x,w=y.y;c.setState({x:u.x+f-v,y:u.y+g-w});break}case 2:{var b={x:.5,y:.5,angle:0,ratio:1},k=o[0],x=k.x,S=k.y,O=o[1],z=O.x,L=O.y,G=Math.atan2(L-S,z-x)-this.startTouchesAngle,I=Math.hypot(L-S,z-x)/this.startTouchesDistance,M=c.getBoundedRatio(u.ratio/I);b.ratio=M,b.angle=u.angle+G;var q=this.getDimensions(),Y=this.renderer.viewportToFramedGraph((this.startTouchesPositions||[])[0],{cameraState:u}),ie=Math.min(q.width,q.height)-2*d,oe=ie/q.width,ye=ie/q.height,st=M/ie,Ke=x-ie/2/oe,be=S-ie/2/ye,he=[Ke*Math.cos(-b.angle)-be*Math.sin(-b.angle),be*Math.cos(-b.angle)+Ke*Math.sin(-b.angle)];Ke=he[0],be=he[1],b.x=Y.x-Ke*st,b.y=Y.y+be*st,c.setState(b);break}}}}}},{key:"setSettings",value:function(r){this.settings=r}}])})(xf);function gk(e){if(Array.isArray(e))return xa(e)}function mk(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vk(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
409
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gf(e){return gk(e)||mk(e)||Vs(e)||vk()}function wk(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function sl(e,t){if(e==null)return{};var n,r,i=wk(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var mf=(function(){function e(t,n){De(this,e),this.key=t,this.size=n}return Ie(e,null,[{key:"compare",value:function(n,r){return n.size>r.size?-1:n.size<r.size||n.key>r.key?1:-1}}])})(),vf=(function(){function e(){De(this,e),A(this,"width",0),A(this,"height",0),A(this,"cellSize",0),A(this,"columns",0),A(this,"rows",0),A(this,"cells",{})}return Ie(e,[{key:"resizeAndClear",value:function(n,r){this.width=n.width,this.height=n.height,this.cellSize=r,this.columns=Math.ceil(n.width/r),this.rows=Math.ceil(n.height/r),this.cells={}}},{key:"getIndex",value:function(n){var r=Math.floor(n.x/this.cellSize),i=Math.floor(n.y/this.cellSize);return i*this.columns+r}},{key:"add",value:function(n,r,i){var a=new mf(n,r),o=this.getIndex(i),s=this.cells[o];s||(s=[],this.cells[o]=s),s.push(a)}},{key:"organize",value:function(){for(var n in this.cells){var r=this.cells[n];r.sort(mf.compare)}}},{key:"getLabelsToDisplay",value:function(n,r){var i=this.cellSize*this.cellSize,a=i/n/n,o=a*r/i,s=Math.ceil(o),l=[];for(var c in this.cells)for(var u=this.cells[c],d=0;d<Math.min(s,u.length);d++)l.push(u[d].key);return l}}])})();function yk(e){var t=e.graph,n=e.hoveredNode,r=e.highlightedNodes,i=e.displayedNodeLabels,a=[];return t.forEachEdge(function(o,s,l,c){(l===n||c===n||r.has(l)||r.has(c)||i.has(l)&&i.has(c))&&a.push(o)}),a}var wf=150,yf=50,qt=Object.prototype.hasOwnProperty;function bk(e,t,n){if(!qt.call(n,"x")||!qt.call(n,"y"))throw new Error('Sigma: could not find a valid position (x, y) for node "'.concat(t,'". All your nodes must have a number "x" and "y". Maybe your forgot to apply a layout or your "nodeReducer" is not returning the correct data?'));return n.color||(n.color=e.defaultNodeColor),!n.label&&n.label!==""&&(n.label=null),n.label!==void 0&&n.label!==null?n.label=""+n.label:n.label=null,n.size||(n.size=2),qt.call(n,"hidden")||(n.hidden=!1),qt.call(n,"highlighted")||(n.highlighted=!1),qt.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultNodeType),n.zIndex||(n.zIndex=0),n}function xk(e,t,n){return n.color||(n.color=e.defaultEdgeColor),n.label||(n.label=""),n.size||(n.size=.5),qt.call(n,"hidden")||(n.hidden=!1),qt.call(n,"forceLabel")||(n.forceLabel=!1),(!n.type||n.type==="")&&(n.type=e.defaultEdgeType),n.zIndex||(n.zIndex=0),n}var kk=(function(e){function t(n,r){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(De(this,t),i=Qe(this,t),A(i,"elements",{}),A(i,"canvasContexts",{}),A(i,"webGLContexts",{}),A(i,"pickingLayers",new Set),A(i,"textures",{}),A(i,"frameBuffers",{}),A(i,"activeListeners",{}),A(i,"labelGrid",new vf),A(i,"nodeDataCache",{}),A(i,"edgeDataCache",{}),A(i,"nodeProgramIndex",{}),A(i,"edgeProgramIndex",{}),A(i,"nodesWithForcedLabels",new Set),A(i,"edgesWithForcedLabels",new Set),A(i,"nodeExtent",{x:[0,1],y:[0,1]}),A(i,"nodeZExtent",[1/0,-1/0]),A(i,"edgeZExtent",[1/0,-1/0]),A(i,"matrix",kt()),A(i,"invMatrix",kt()),A(i,"correctionRatio",1),A(i,"customBBox",null),A(i,"normalizationFunction",al({x:[0,1],y:[0,1]})),A(i,"graphToViewportRatio",1),A(i,"itemIDsIndex",{}),A(i,"nodeIndices",{}),A(i,"edgeIndices",{}),A(i,"width",0),A(i,"height",0),A(i,"pixelRatio",rl()),A(i,"pickingDownSizingRatio",2*i.pixelRatio),A(i,"displayedNodeLabels",new Set),A(i,"displayedEdgeLabels",new Set),A(i,"highlightedNodes",new Set),A(i,"hoveredNode",null),A(i,"hoveredEdge",null),A(i,"renderFrame",null),A(i,"renderHighlightedNodesFrame",null),A(i,"needToProcess",!1),A(i,"checkEdgesEventsFrame",null),A(i,"nodePrograms",{}),A(i,"nodeHoverPrograms",{}),A(i,"edgePrograms",{}),i.settings=pf(a),Pa(i.settings),df(n),!(r instanceof HTMLElement))throw new Error("Sigma: container should be an html element.");i.graph=n,i.container=r,i.createWebGLContext("edges",{picking:a.enableEdgeEvents}),i.createCanvasContext("edgeLabels"),i.createWebGLContext("nodes",{picking:!0}),i.createCanvasContext("labels"),i.createCanvasContext("hovers"),i.createWebGLContext("hoverNodes"),i.createCanvasContext("mouse",{style:{touchAction:"none",userSelect:"none"}}),i.resize();for(var o in i.settings.nodeProgramClasses)i.registerNodeProgram(o,i.settings.nodeProgramClasses[o],i.settings.nodeHoverProgramClasses[o]);for(var s in i.settings.edgeProgramClasses)i.registerEdgeProgram(s,i.settings.edgeProgramClasses[s]);return i.camera=new ff,i.bindCameraHandlers(),i.mouseCaptor=new dk(i.elements.mouse,i),i.mouseCaptor.setSettings(i.settings),i.touchCaptor=new fk(i.elements.mouse,i),i.touchCaptor.setSettings(i.settings),i.bindEventHandlers(),i.bindGraphHandlers(),i.handleSettingsUpdate(),i.refresh(),i}return Je(t,e),Ie(t,[{key:"registerNodeProgram",value:function(r,i,a){return this.nodePrograms[r]&&this.nodePrograms[r].kill(),this.nodeHoverPrograms[r]&&this.nodeHoverPrograms[r].kill(),this.nodePrograms[r]=new i(this.webGLContexts.nodes,this.frameBuffers.nodes,this),this.nodeHoverPrograms[r]=new(a||i)(this.webGLContexts.hoverNodes,null,this),this}},{key:"registerEdgeProgram",value:function(r,i){return this.edgePrograms[r]&&this.edgePrograms[r].kill(),this.edgePrograms[r]=new i(this.webGLContexts.edges,this.frameBuffers.edges,this),this}},{key:"unregisterNodeProgram",value:function(r){if(this.nodePrograms[r]){var i=this.nodePrograms,a=i[r],o=sl(i,[r].map(Gn));a.kill(),this.nodePrograms=o}if(this.nodeHoverPrograms[r]){var s=this.nodeHoverPrograms,l=s[r],c=sl(s,[r].map(Gn));l.kill(),this.nodePrograms=c}return this}},{key:"unregisterEdgeProgram",value:function(r){if(this.edgePrograms[r]){var i=this.edgePrograms,a=i[r],o=sl(i,[r].map(Gn));a.kill(),this.edgePrograms=o}return this}},{key:"resetWebGLTexture",value:function(r){var i=this.webGLContexts[r],a=this.frameBuffers[r],o=this.textures[r];o&&i.deleteTexture(o);var s=i.createTexture();return i.bindFramebuffer(i.FRAMEBUFFER,a),i.bindTexture(i.TEXTURE_2D,s),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,this.width,this.height,0,i.RGBA,i.UNSIGNED_BYTE,null),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,s,0),this.textures[r]=s,this}},{key:"bindCameraHandlers",value:function(){var r=this;return this.activeListeners.camera=function(){r.scheduleRender()},this.camera.on("updated",this.activeListeners.camera),this}},{key:"unbindCameraHandlers",value:function(){return this.camera.removeListener("updated",this.activeListeners.camera),this}},{key:"getNodeAtPosition",value:function(r){var i=r.x,a=r.y,o=Ys(this.webGLContexts.nodes,this.frameBuffers.nodes,i,a,this.pixelRatio,this.pickingDownSizingRatio),s=qs.apply(void 0,gf(o)),l=this.itemIDsIndex[s];return l&&l.type==="node"?l.id:null}},{key:"bindEventHandlers",value:function(){var r=this;this.activeListeners.handleResize=function(){r.scheduleRefresh()},window.addEventListener("resize",this.activeListeners.handleResize),this.activeListeners.handleMove=function(a){var o=ri(a),s={event:o,preventSigmaDefault:function(){o.preventSigmaDefault()}},l=r.getNodeAtPosition(o);if(l&&r.hoveredNode!==l&&!r.nodeDataCache[l].hidden){r.hoveredNode&&r.emit("leaveNode",H(H({},s),{},{node:r.hoveredNode})),r.hoveredNode=l,r.emit("enterNode",H(H({},s),{},{node:l})),r.scheduleHighlightedNodesRender();return}if(r.hoveredNode&&r.getNodeAtPosition(o)!==r.hoveredNode){var c=r.hoveredNode;r.hoveredNode=null,r.emit("leaveNode",H(H({},s),{},{node:c})),r.scheduleHighlightedNodesRender();return}if(r.settings.enableEdgeEvents){var u=r.hoveredNode?null:r.getEdgeAtPoint(s.event.x,s.event.y);u!==r.hoveredEdge&&(r.hoveredEdge&&r.emit("leaveEdge",H(H({},s),{},{edge:r.hoveredEdge})),u&&r.emit("enterEdge",H(H({},s),{},{edge:u})),r.hoveredEdge=u)}},this.activeListeners.handleMoveBody=function(a){var o=ri(a);r.emit("moveBody",{event:o,preventSigmaDefault:function(){o.preventSigmaDefault()}})},this.activeListeners.handleLeave=function(a){var o=ri(a),s={event:o,preventSigmaDefault:function(){o.preventSigmaDefault()}};r.hoveredNode&&(r.emit("leaveNode",H(H({},s),{},{node:r.hoveredNode})),r.scheduleHighlightedNodesRender()),r.settings.enableEdgeEvents&&r.hoveredEdge&&(r.emit("leaveEdge",H(H({},s),{},{edge:r.hoveredEdge})),r.scheduleHighlightedNodesRender()),r.emit("leaveStage",H({},s))},this.activeListeners.handleEnter=function(a){var o=ri(a),s={event:o,preventSigmaDefault:function(){o.preventSigmaDefault()}};r.emit("enterStage",H({},s))};var i=function(o){return function(s){var l=ri(s),c={event:l,preventSigmaDefault:function(){l.preventSigmaDefault()}},u=r.getNodeAtPosition(l);if(u)return r.emit("".concat(o,"Node"),H(H({},c),{},{node:u}));if(r.settings.enableEdgeEvents){var d=r.getEdgeAtPoint(l.x,l.y);if(d)return r.emit("".concat(o,"Edge"),H(H({},c),{},{edge:d}))}return r.emit("".concat(o,"Stage"),c)}};return this.activeListeners.handleClick=i("click"),this.activeListeners.handleRightClick=i("rightClick"),this.activeListeners.handleDoubleClick=i("doubleClick"),this.activeListeners.handleWheel=i("wheel"),this.activeListeners.handleDown=i("down"),this.activeListeners.handleUp=i("up"),this.mouseCaptor.on("mousemove",this.activeListeners.handleMove),this.mouseCaptor.on("mousemovebody",this.activeListeners.handleMoveBody),this.mouseCaptor.on("click",this.activeListeners.handleClick),this.mouseCaptor.on("rightClick",this.activeListeners.handleRightClick),this.mouseCaptor.on("doubleClick",this.activeListeners.handleDoubleClick),this.mouseCaptor.on("wheel",this.activeListeners.handleWheel),this.mouseCaptor.on("mousedown",this.activeListeners.handleDown),this.mouseCaptor.on("mouseup",this.activeListeners.handleUp),this.mouseCaptor.on("mouseleave",this.activeListeners.handleLeave),this.mouseCaptor.on("mouseenter",this.activeListeners.handleEnter),this.touchCaptor.on("touchdown",this.activeListeners.handleDown),this.touchCaptor.on("touchdown",this.activeListeners.handleMove),this.touchCaptor.on("touchup",this.activeListeners.handleUp),this.touchCaptor.on("touchmove",this.activeListeners.handleMove),this.touchCaptor.on("tap",this.activeListeners.handleClick),this.touchCaptor.on("doubletap",this.activeListeners.handleDoubleClick),this.touchCaptor.on("touchmove",this.activeListeners.handleMoveBody),this}},{key:"bindGraphHandlers",value:function(){var r=this,i=this.graph,a=new Set(["x","y","zIndex","type"]);return this.activeListeners.eachNodeAttributesUpdatedGraphUpdate=function(o){var s,l=(s=o.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachNode(function(u){return r.updateNode(u)});var c=!l||l.some(function(u){return a.has(u)});r.refresh({partialGraph:{nodes:i.nodes()},skipIndexation:!c,schedule:!0})},this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate=function(o){var s,l=(s=o.hints)===null||s===void 0?void 0:s.attributes;r.graph.forEachEdge(function(u){return r.updateEdge(u)});var c=l&&["zIndex","type"].some(function(u){return l?.includes(u)});r.refresh({partialGraph:{edges:i.edges()},skipIndexation:!c,schedule:!0})},this.activeListeners.addNodeGraphUpdate=function(o){var s=o.key;r.addNode(s),r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.updateNodeGraphUpdate=function(o){var s=o.key;r.refresh({partialGraph:{nodes:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropNodeGraphUpdate=function(o){var s=o.key;r.removeNode(s),r.refresh({schedule:!0})},this.activeListeners.addEdgeGraphUpdate=function(o){var s=o.key;r.addEdge(s),r.refresh({partialGraph:{edges:[s]},schedule:!0})},this.activeListeners.updateEdgeGraphUpdate=function(o){var s=o.key;r.refresh({partialGraph:{edges:[s]},skipIndexation:!1,schedule:!0})},this.activeListeners.dropEdgeGraphUpdate=function(o){var s=o.key;r.removeEdge(s),r.refresh({schedule:!0})},this.activeListeners.clearEdgesGraphUpdate=function(){r.clearEdgeState(),r.clearEdgeIndices(),r.refresh({schedule:!0})},this.activeListeners.clearGraphUpdate=function(){r.clearEdgeState(),r.clearNodeState(),r.clearEdgeIndices(),r.clearNodeIndices(),r.refresh({schedule:!0})},i.on("nodeAdded",this.activeListeners.addNodeGraphUpdate),i.on("nodeDropped",this.activeListeners.dropNodeGraphUpdate),i.on("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),i.on("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),i.on("edgeAdded",this.activeListeners.addEdgeGraphUpdate),i.on("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),i.on("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),i.on("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),i.on("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),i.on("cleared",this.activeListeners.clearGraphUpdate),this}},{key:"unbindGraphHandlers",value:function(){var r=this.graph;r.removeListener("nodeAdded",this.activeListeners.addNodeGraphUpdate),r.removeListener("nodeDropped",this.activeListeners.dropNodeGraphUpdate),r.removeListener("nodeAttributesUpdated",this.activeListeners.updateNodeGraphUpdate),r.removeListener("eachNodeAttributesUpdated",this.activeListeners.eachNodeAttributesUpdatedGraphUpdate),r.removeListener("edgeAdded",this.activeListeners.addEdgeGraphUpdate),r.removeListener("edgeDropped",this.activeListeners.dropEdgeGraphUpdate),r.removeListener("edgeAttributesUpdated",this.activeListeners.updateEdgeGraphUpdate),r.removeListener("eachEdgeAttributesUpdated",this.activeListeners.eachEdgeAttributesUpdatedGraphUpdate),r.removeListener("edgesCleared",this.activeListeners.clearEdgesGraphUpdate),r.removeListener("cleared",this.activeListeners.clearGraphUpdate)}},{key:"getEdgeAtPoint",value:function(r,i){var a=Ys(this.webGLContexts.edges,this.frameBuffers.edges,r,i,this.pixelRatio,this.pickingDownSizingRatio),o=qs.apply(void 0,gf(a)),s=this.itemIDsIndex[o];return s&&s.type==="edge"?s.id:null}},{key:"process",value:function(){var r=this;this.emit("beforeProcess");var i=this.graph,a=this.settings,o=this.getDimensions();if(this.nodeExtent=uf(this.graph),!this.settings.autoRescale){var s=o.width,l=o.height,c=this.nodeExtent,u=c.x,d=c.y;this.nodeExtent={x:[(u[0]+u[1])/2-s/2,(u[0]+u[1])/2+s/2],y:[(d[0]+d[1])/2-l/2,(d[0]+d[1])/2+l/2]}}this.normalizationFunction=al(this.customBBox||this.nodeExtent);var h=new ff,f=dr(h.getState(),o,this.getGraphDimensions(),this.getStagePadding());this.labelGrid.resizeAndClear(o,a.labelGridCellSize);for(var g={},y={},v={},w={},b=1,k=i.nodes(),x=0,S=k.length;x<S;x++){var O=k[x],z=this.nodeDataCache[O],L=i.getNodeAttributes(O);z.x=L.x,z.y=L.y,this.normalizationFunction.applyTo(z),typeof z.label=="string"&&!z.hidden&&this.labelGrid.add(O,z.size,this.framedGraphToViewport(z,{matrix:f})),g[z.type]=(g[z.type]||0)+1}this.labelGrid.organize();for(var G in this.nodePrograms){if(!qt.call(this.nodePrograms,G))throw new Error('Sigma: could not find a suitable program for node type "'.concat(G,'"!'));this.nodePrograms[G].reallocate(g[G]||0),g[G]=0}this.settings.zIndex&&this.nodeZExtent[0]!==this.nodeZExtent[1]&&(k=il(this.nodeZExtent,function(Ve){return r.nodeDataCache[Ve].zIndex},k));for(var I=0,M=k.length;I<M;I++){var q=k[I];y[q]=b,w[y[q]]={type:"node",id:q},b++;var Y=this.nodeDataCache[q];this.addNodeToProgram(q,y[q],g[Y.type]++)}for(var ie={},oe=i.edges(),ye=0,st=oe.length;ye<st;ye++){var Ke=oe[ye],be=this.edgeDataCache[Ke];ie[be.type]=(ie[be.type]||0)+1}this.settings.zIndex&&this.edgeZExtent[0]!==this.edgeZExtent[1]&&(oe=il(this.edgeZExtent,function(Ve){return r.edgeDataCache[Ve].zIndex},oe));for(var he in this.edgePrograms){if(!qt.call(this.edgePrograms,he))throw new Error('Sigma: could not find a suitable program for edge type "'.concat(he,'"!'));this.edgePrograms[he].reallocate(ie[he]||0),ie[he]=0}for(var Ee=0,yt=oe.length;Ee<yt;Ee++){var pe=oe[Ee];v[pe]=b,w[v[pe]]={type:"edge",id:pe},b++;var te=this.edgeDataCache[pe];this.addEdgeToProgram(pe,v[pe],ie[te.type]++)}return this.itemIDsIndex=w,this.nodeIndices=y,this.edgeIndices=v,this.emit("afterProcess"),this}},{key:"handleSettingsUpdate",value:function(r){var i=this,a=this.settings;if(this.camera.minRatio=a.minCameraRatio,this.camera.maxRatio=a.maxCameraRatio,this.camera.enabledZooming=a.enableCameraZooming,this.camera.enabledPanning=a.enableCameraPanning,this.camera.enabledRotation=a.enableCameraRotation,a.cameraPanBoundaries?this.camera.clean=function(u){return i.cleanCameraState(u,a.cameraPanBoundaries&&Ca(a.cameraPanBoundaries)==="object"?a.cameraPanBoundaries:{})}:this.camera.clean=null,this.camera.setState(this.camera.validateState(this.camera.getState())),r){if(r.edgeProgramClasses!==a.edgeProgramClasses){for(var o in a.edgeProgramClasses)a.edgeProgramClasses[o]!==r.edgeProgramClasses[o]&&this.registerEdgeProgram(o,a.edgeProgramClasses[o]);for(var s in r.edgeProgramClasses)a.edgeProgramClasses[s]||this.unregisterEdgeProgram(s)}if(r.nodeProgramClasses!==a.nodeProgramClasses||r.nodeHoverProgramClasses!==a.nodeHoverProgramClasses){for(var l in a.nodeProgramClasses)(a.nodeProgramClasses[l]!==r.nodeProgramClasses[l]||a.nodeHoverProgramClasses[l]!==r.nodeHoverProgramClasses[l])&&this.registerNodeProgram(l,a.nodeProgramClasses[l],a.nodeHoverProgramClasses[l]);for(var c in r.nodeProgramClasses)a.nodeProgramClasses[c]||this.unregisterNodeProgram(c)}}return this.mouseCaptor.setSettings(this.settings),this.touchCaptor.setSettings(this.settings),this}},{key:"cleanCameraState",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=i.tolerance,o=a===void 0?0:a,s=i.boundaries,l=H({},r),c=s||this.nodeExtent,u=dn(c.x,2),d=u[0],h=u[1],f=dn(c.y,2),g=f[0],y=f[1],v=[this.graphToViewport({x:d,y:g},{cameraState:r}),this.graphToViewport({x:h,y:g},{cameraState:r}),this.graphToViewport({x:d,y},{cameraState:r}),this.graphToViewport({x:h,y},{cameraState:r})],w=1/0,b=-1/0,k=1/0,x=-1/0;v.forEach(function(ie){var oe=ie.x,ye=ie.y;w=Math.min(w,oe),b=Math.max(b,oe),k=Math.min(k,ye),x=Math.max(x,ye)});var S=b-w,O=x-k,z=this.getDimensions(),L=z.width,G=z.height,I=0,M=0;if(S>=L?b<L-o?I=b-(L-o):w>o&&(I=w-o):b>L+o?I=b-(L+o):w<-o&&(I=w+o),O>=G?x<G-o?M=x-(G-o):k>o&&(M=k-o):x>G+o?M=x-(G+o):k<-o&&(M=k+o),I||M){var q=this.viewportToFramedGraph({x:0,y:0},{cameraState:r}),Y=this.viewportToFramedGraph({x:I,y:M},{cameraState:r});I=Y.x-q.x,M=Y.y-q.y,l.x+=I,l.y+=M}return l}},{key:"renderLabels",value:function(){if(!this.settings.renderLabels)return this;var r=this.camera.getState(),i=this.labelGrid.getLabelsToDisplay(r.ratio,this.settings.labelDensity);ol(i,this.nodesWithForcedLabels),this.displayedNodeLabels=new Set;for(var a=this.canvasContexts.labels,o=0,s=i.length;o<s;o++){var l=i[o],c=this.nodeDataCache[l];if(!this.displayedNodeLabels.has(l)&&!c.hidden){var u=this.framedGraphToViewport(c),d=u.x,h=u.y,f=this.scaleSize(c.size);if(!(!c.forceLabel&&f<this.settings.labelRenderedSizeThreshold)&&!(d<-wf||d>this.width+wf||h<-yf||h>this.height+yf)){this.displayedNodeLabels.add(l);var g=this.settings.defaultDrawNodeLabel,y=this.nodePrograms[c.type],v=y?.drawLabel||g;v(a,H(H({key:l},c),{},{size:f,x:d,y:h}),this.settings)}}}return this}},{key:"renderEdgeLabels",value:function(){if(!this.settings.renderEdgeLabels)return this;var r=this.canvasContexts.edgeLabels;r.clearRect(0,0,this.width,this.height);var i=yk({graph:this.graph,hoveredNode:this.hoveredNode,displayedNodeLabels:this.displayedNodeLabels,highlightedNodes:this.highlightedNodes});ol(i,this.edgesWithForcedLabels);for(var a=new Set,o=0,s=i.length;o<s;o++){var l=i[o],c=this.graph.extremities(l),u=this.nodeDataCache[c[0]],d=this.nodeDataCache[c[1]],h=this.edgeDataCache[l];if(!a.has(l)&&!(h.hidden||u.hidden||d.hidden)){var f=this.settings.defaultDrawEdgeLabel,g=this.edgePrograms[h.type],y=g?.drawLabel||f;y(r,H(H({key:l},h),{},{size:this.scaleSize(h.size)}),H(H(H({key:c[0]},u),this.framedGraphToViewport(u)),{},{size:this.scaleSize(u.size)}),H(H(H({key:c[1]},d),this.framedGraphToViewport(d)),{},{size:this.scaleSize(d.size)}),this.settings),a.add(l)}}return this.displayedEdgeLabels=a,this}},{key:"renderHighlightedNodes",value:function(){var r=this,i=this.canvasContexts.hovers;i.clearRect(0,0,this.width,this.height);var a=function(f){var g=r.nodeDataCache[f],y=r.framedGraphToViewport(g),v=y.x,w=y.y,b=r.scaleSize(g.size),k=r.settings.defaultDrawNodeHover,x=r.nodePrograms[g.type],S=x?.drawHover||k;S(i,H(H({key:f},g),{},{size:b,x:v,y:w}),r.settings)},o=[];this.hoveredNode&&!this.nodeDataCache[this.hoveredNode].hidden&&o.push(this.hoveredNode),this.highlightedNodes.forEach(function(h){h!==r.hoveredNode&&o.push(h)}),o.forEach(function(h){return a(h)});var s={};o.forEach(function(h){var f=r.nodeDataCache[h].type;s[f]=(s[f]||0)+1});for(var l in this.nodeHoverPrograms)this.nodeHoverPrograms[l].reallocate(s[l]||0),s[l]=0;o.forEach(function(h){var f=r.nodeDataCache[h];r.nodeHoverPrograms[f.type].process(0,s[f.type]++,f)}),this.webGLContexts.hoverNodes.clear(this.webGLContexts.hoverNodes.COLOR_BUFFER_BIT);var c=this.getRenderParams();for(var u in this.nodeHoverPrograms){var d=this.nodeHoverPrograms[u];d.render(c)}}},{key:"scheduleHighlightedNodesRender",value:function(){var r=this;this.renderHighlightedNodesFrame||this.renderFrame||(this.renderHighlightedNodesFrame=requestAnimationFrame(function(){r.renderHighlightedNodesFrame=null,r.renderHighlightedNodes(),r.renderEdgeLabels()}))}},{key:"render",value:function(){var r=this;this.emit("beforeRender");var i=function(){return r.emit("afterRender"),r};if(this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.resize(),this.needToProcess&&this.process(),this.needToProcess=!1,this.clear(),this.pickingLayers.forEach(function(v){return r.resetWebGLTexture(v)}),!this.graph.order)return i();var a=this.mouseCaptor,o=this.camera.isAnimated()||a.isMoving||a.draggedEvents||a.currentWheelDirection,s=this.camera.getState(),l=this.getDimensions(),c=this.getGraphDimensions(),u=this.getStagePadding();this.matrix=dr(s,l,c,u),this.invMatrix=dr(s,l,c,u,!0),this.correctionRatio=cf(this.matrix,s,l),this.graphToViewportRatio=this.getGraphToViewportRatio();var d=this.getRenderParams();for(var h in this.nodePrograms){var f=this.nodePrograms[h];f.render(d)}if(!this.settings.hideEdgesOnMove||!o)for(var g in this.edgePrograms){var y=this.edgePrograms[g];y.render(d)}return this.settings.hideLabelsOnMove&&o||(this.renderLabels(),this.renderEdgeLabels(),this.renderHighlightedNodes()),i()}},{key:"addNode",value:function(r){var i=Object.assign({},this.graph.getNodeAttributes(r));this.settings.nodeReducer&&(i=this.settings.nodeReducer(r,i));var a=bk(this.settings,r,i);this.nodeDataCache[r]=a,this.nodesWithForcedLabels.delete(r),a.forceLabel&&!a.hidden&&this.nodesWithForcedLabels.add(r),this.highlightedNodes.delete(r),a.highlighted&&!a.hidden&&this.highlightedNodes.add(r),this.settings.zIndex&&(a.zIndex<this.nodeZExtent[0]&&(this.nodeZExtent[0]=a.zIndex),a.zIndex>this.nodeZExtent[1]&&(this.nodeZExtent[1]=a.zIndex))}},{key:"updateNode",value:function(r){this.addNode(r);var i=this.nodeDataCache[r];this.normalizationFunction.applyTo(i)}},{key:"removeNode",value:function(r){delete this.nodeDataCache[r],delete this.nodeProgramIndex[r],this.highlightedNodes.delete(r),this.hoveredNode===r&&(this.hoveredNode=null),this.nodesWithForcedLabels.delete(r)}},{key:"addEdge",value:function(r){var i=Object.assign({},this.graph.getEdgeAttributes(r));this.settings.edgeReducer&&(i=this.settings.edgeReducer(r,i));var a=xk(this.settings,r,i);this.edgeDataCache[r]=a,this.edgesWithForcedLabels.delete(r),a.forceLabel&&!a.hidden&&this.edgesWithForcedLabels.add(r),this.settings.zIndex&&(a.zIndex<this.edgeZExtent[0]&&(this.edgeZExtent[0]=a.zIndex),a.zIndex>this.edgeZExtent[1]&&(this.edgeZExtent[1]=a.zIndex))}},{key:"updateEdge",value:function(r){this.addEdge(r)}},{key:"removeEdge",value:function(r){delete this.edgeDataCache[r],delete this.edgeProgramIndex[r],this.hoveredEdge===r&&(this.hoveredEdge=null),this.edgesWithForcedLabels.delete(r)}},{key:"clearNodeIndices",value:function(){this.labelGrid=new vf,this.nodeExtent={x:[0,1],y:[0,1]},this.nodeDataCache={},this.edgeProgramIndex={},this.nodesWithForcedLabels=new Set,this.nodeZExtent=[1/0,-1/0],this.highlightedNodes=new Set}},{key:"clearEdgeIndices",value:function(){this.edgeDataCache={},this.edgeProgramIndex={},this.edgesWithForcedLabels=new Set,this.edgeZExtent=[1/0,-1/0]}},{key:"clearIndices",value:function(){this.clearEdgeIndices(),this.clearNodeIndices()}},{key:"clearNodeState",value:function(){this.displayedNodeLabels=new Set,this.highlightedNodes=new Set,this.hoveredNode=null}},{key:"clearEdgeState",value:function(){this.displayedEdgeLabels=new Set,this.highlightedNodes=new Set,this.hoveredEdge=null}},{key:"clearState",value:function(){this.clearEdgeState(),this.clearNodeState()}},{key:"addNodeToProgram",value:function(r,i,a){var o=this.nodeDataCache[r],s=this.nodePrograms[o.type];if(!s)throw new Error('Sigma: could not find a suitable program for node type "'.concat(o.type,'"!'));s.process(i,a,o),this.nodeProgramIndex[r]=a}},{key:"addEdgeToProgram",value:function(r,i,a){var o=this.edgeDataCache[r],s=this.edgePrograms[o.type];if(!s)throw new Error('Sigma: could not find a suitable program for edge type "'.concat(o.type,'"!'));var l=this.graph.extremities(r),c=this.nodeDataCache[l[0]],u=this.nodeDataCache[l[1]];s.process(i,a,c,u,o),this.edgeProgramIndex[r]=a}},{key:"getRenderParams",value:function(){return{matrix:this.matrix,invMatrix:this.invMatrix,width:this.width,height:this.height,pixelRatio:this.pixelRatio,zoomRatio:this.camera.ratio,cameraAngle:this.camera.angle,sizeRatio:1/this.scaleSize(),correctionRatio:this.correctionRatio,downSizingRatio:this.pickingDownSizingRatio,minEdgeThickness:this.settings.minEdgeThickness,antiAliasingFeather:this.settings.antiAliasingFeather}}},{key:"getStagePadding",value:function(){var r=this.settings,i=r.stagePadding,a=r.autoRescale;return a&&i||0}},{key:"createLayer",value:function(r,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.elements[r])throw new Error('Sigma: a layer named "'.concat(r,'" already exists'));var o=hf(i,{position:"absolute"},{class:"sigma-".concat(r)});return a.style&&Object.assign(o.style,a.style),this.elements[r]=o,"beforeLayer"in a&&a.beforeLayer?this.elements[a.beforeLayer].before(o):"afterLayer"in a&&a.afterLayer?this.elements[a.afterLayer].after(o):this.container.appendChild(o),o}},{key:"createCanvas",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.createLayer(r,"canvas",i)}},{key:"createCanvasContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=this.createCanvas(r,i),o={preserveDrawingBuffer:!1,antialias:!1};return this.canvasContexts[r]=a.getContext("2d",o),this}},{key:"createWebGLContext",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=i?.canvas||this.createCanvas(r,i);i.hidden&&a.remove();var o=H({preserveDrawingBuffer:!1,antialias:!1},i),s;s=a.getContext("webgl2",o),s||(s=a.getContext("webgl",o)),s||(s=a.getContext("experimental-webgl",o));var l=s;if(this.webGLContexts[r]=l,l.blendFunc(l.ONE,l.ONE_MINUS_SRC_ALPHA),i.picking){this.pickingLayers.add(r);var c=l.createFramebuffer();if(!c)throw new Error("Sigma: cannot create a new frame buffer for layer ".concat(r));this.frameBuffers[r]=c}return l}},{key:"killLayer",value:function(r){var i=this.elements[r];if(!i)throw new Error("Sigma: cannot kill layer ".concat(r,", which does not exist"));if(this.webGLContexts[r]){var a,o=this.webGLContexts[r];(a=o.getExtension("WEBGL_lose_context"))===null||a===void 0||a.loseContext(),delete this.webGLContexts[r]}else this.canvasContexts[r]&&delete this.canvasContexts[r];return i.remove(),delete this.elements[r],this}},{key:"getCamera",value:function(){return this.camera}},{key:"setCamera",value:function(r){this.unbindCameraHandlers(),this.camera=r,this.bindCameraHandlers()}},{key:"getContainer",value:function(){return this.container}},{key:"getGraph",value:function(){return this.graph}},{key:"setGraph",value:function(r){r!==this.graph&&(this.hoveredNode&&!r.hasNode(this.hoveredNode)&&(this.hoveredNode=null),this.hoveredEdge&&!r.hasEdge(this.hoveredEdge)&&(this.hoveredEdge=null),this.unbindGraphHandlers(),this.checkEdgesEventsFrame!==null&&(cancelAnimationFrame(this.checkEdgesEventsFrame),this.checkEdgesEventsFrame=null),this.graph=r,this.bindGraphHandlers(),this.refresh())}},{key:"getMouseCaptor",value:function(){return this.mouseCaptor}},{key:"getTouchCaptor",value:function(){return this.touchCaptor}},{key:"getDimensions",value:function(){return{width:this.width,height:this.height}}},{key:"getGraphDimensions",value:function(){var r=this.customBBox||this.nodeExtent;return{width:r.x[1]-r.x[0]||1,height:r.y[1]-r.y[0]||1}}},{key:"getNodeDisplayData",value:function(r){var i=this.nodeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getEdgeDisplayData",value:function(r){var i=this.edgeDataCache[r];return i?Object.assign({},i):void 0}},{key:"getNodeDisplayedLabels",value:function(){return new Set(this.displayedNodeLabels)}},{key:"getEdgeDisplayedLabels",value:function(){return new Set(this.displayedEdgeLabels)}},{key:"getSettings",value:function(){return H({},this.settings)}},{key:"getSetting",value:function(r){return this.settings[r]}},{key:"setSetting",value:function(r,i){var a=H({},this.settings);return this.settings[r]=i,Pa(this.settings),this.handleSettingsUpdate(a),this.scheduleRefresh(),this}},{key:"updateSetting",value:function(r,i){return this.setSetting(r,i(this.settings[r])),this}},{key:"setSettings",value:function(r){var i=H({},this.settings);return this.settings=H(H({},this.settings),r),Pa(this.settings),this.handleSettingsUpdate(i),this.scheduleRefresh(),this}},{key:"resize",value:function(r){var i=this.width,a=this.height;if(this.width=this.container.offsetWidth,this.height=this.container.offsetHeight,this.pixelRatio=rl(),this.width===0)if(this.settings.allowInvalidContainer)this.width=1;else throw new Error("Sigma: Container has no width. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(this.height===0)if(this.settings.allowInvalidContainer)this.height=1;else throw new Error("Sigma: Container has no height. You can set the allowInvalidContainer setting to true to stop seeing this error.");if(!r&&i===this.width&&a===this.height)return this;for(var o in this.elements){var s=this.elements[o];s.style.width=this.width+"px",s.style.height=this.height+"px"}for(var l in this.canvasContexts)this.elements[l].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[l].setAttribute("height",this.height*this.pixelRatio+"px"),this.pixelRatio!==1&&this.canvasContexts[l].scale(this.pixelRatio,this.pixelRatio);for(var c in this.webGLContexts){this.elements[c].setAttribute("width",this.width*this.pixelRatio+"px"),this.elements[c].setAttribute("height",this.height*this.pixelRatio+"px");var u=this.webGLContexts[c];if(u.viewport(0,0,this.width*this.pixelRatio,this.height*this.pixelRatio),this.pickingLayers.has(c)){var d=this.textures[c];d&&u.deleteTexture(d)}}return this.emit("resize"),this}},{key:"clear",value:function(){return this.emit("beforeClear"),this.webGLContexts.nodes.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.nodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.edges.bindFramebuffer(WebGLRenderingContext.FRAMEBUFFER,null),this.webGLContexts.edges.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.webGLContexts.hoverNodes.clear(WebGLRenderingContext.COLOR_BUFFER_BIT),this.canvasContexts.labels.clearRect(0,0,this.width,this.height),this.canvasContexts.hovers.clearRect(0,0,this.width,this.height),this.canvasContexts.edgeLabels.clearRect(0,0,this.width,this.height),this.emit("afterClear"),this}},{key:"refresh",value:function(r){var i=this,a=r?.skipIndexation!==void 0?r?.skipIndexation:!1,o=r?.schedule!==void 0?r.schedule:!1,s=!r||!r.partialGraph;if(s)this.clearEdgeIndices(),this.clearNodeIndices(),this.graph.forEachNode(function(x){return i.addNode(x)}),this.graph.forEachEdge(function(x){return i.addEdge(x)});else{for(var l,c,u=((l=r.partialGraph)===null||l===void 0?void 0:l.nodes)||[],d=0,h=u?.length||0;d<h;d++){var f=u[d];if(this.updateNode(f),a){var g=this.nodeProgramIndex[f];if(g===void 0)throw new Error('Sigma: node "'.concat(f,`" can't be repaint`));this.addNodeToProgram(f,this.nodeIndices[f],g)}}for(var y=(r==null||(c=r.partialGraph)===null||c===void 0?void 0:c.edges)||[],v=0,w=y.length;v<w;v++){var b=y[v];if(this.updateEdge(b),a){var k=this.edgeProgramIndex[b];if(k===void 0)throw new Error('Sigma: edge "'.concat(b,`" can't be repaint`));this.addEdgeToProgram(b,this.edgeIndices[b],k)}}}return(s||!a)&&(this.needToProcess=!0),o?this.scheduleRender():this.render(),this}},{key:"scheduleRender",value:function(){var r=this;return this.renderFrame||(this.renderFrame=requestAnimationFrame(function(){r.render()})),this}},{key:"scheduleRefresh",value:function(r){return this.refresh(H(H({},r),{},{schedule:!0}))}},{key:"getViewportZoomedState",value:function(r,i){var a=this.camera.getState(),o=a.ratio,s=a.angle,l=a.x,c=a.y,u=this.settings,d=u.minCameraRatio,h=u.maxCameraRatio;typeof h=="number"&&(i=Math.min(i,h)),typeof d=="number"&&(i=Math.max(i,d));var f=i/o,g={x:this.width/2,y:this.height/2},y=this.viewportToFramedGraph(r),v=this.viewportToFramedGraph(g);return{angle:s,x:(y.x-v.x)*(1-f)+l,y:(y.y-v.y)*(1-f)+c,ratio:i}}},{key:"viewRectangle",value:function(){var r=this.viewportToFramedGraph({x:0,y:0}),i=this.viewportToFramedGraph({x:this.width,y:0}),a=this.viewportToFramedGraph({x:0,y:this.height});return{x1:r.x,y1:r.y,x2:i.x,y2:i.y,height:i.y-a.y}}},{key:"framedGraphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=!!i.cameraState||!!i.viewportDimensions||!!i.graphDimensions,o=i.matrix?i.matrix:a?dr(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding()):this.matrix,s=Aa(o,r);return{x:(1+s.x)*this.width/2,y:(1-s.y)*this.height/2}}},{key:"viewportToFramedGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=!!i.cameraState||!!i.viewportDimensions||!i.graphDimensions,o=i.matrix?i.matrix:a?dr(i.cameraState||this.camera.getState(),i.viewportDimensions||this.getDimensions(),i.graphDimensions||this.getGraphDimensions(),i.padding||this.getStagePadding(),!0):this.invMatrix,s=Aa(o,{x:r.x/this.width*2-1,y:1-r.y/this.height*2});return isNaN(s.x)&&(s.x=0),isNaN(s.y)&&(s.y=0),s}},{key:"viewportToGraph",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.normalizationFunction.inverse(this.viewportToFramedGraph(r,i))}},{key:"graphToViewport",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return this.framedGraphToViewport(this.normalizationFunction(r),i)}},{key:"getGraphToViewportRatio",value:function(){var r={x:0,y:0},i={x:1,y:1},a=Math.sqrt(Math.pow(r.x-i.x,2)+Math.pow(r.y-i.y,2)),o=this.graphToViewport(r),s=this.graphToViewport(i),l=Math.sqrt(Math.pow(o.x-s.x,2)+Math.pow(o.y-s.y,2));return l/a}},{key:"getBBox",value:function(){return this.nodeExtent}},{key:"getCustomBBox",value:function(){return this.customBBox}},{key:"setCustomBBox",value:function(r){return this.customBBox=r,this.scheduleRender(),this}},{key:"kill",value:function(){this.emit("kill"),this.removeAllListeners(),this.unbindCameraHandlers(),window.removeEventListener("resize",this.activeListeners.handleResize),this.mouseCaptor.kill(),this.touchCaptor.kill(),this.unbindGraphHandlers(),this.clearIndices(),this.clearState(),this.nodeDataCache={},this.edgeDataCache={},this.highlightedNodes.clear(),this.renderFrame&&(cancelAnimationFrame(this.renderFrame),this.renderFrame=null),this.renderHighlightedNodesFrame&&(cancelAnimationFrame(this.renderHighlightedNodesFrame),this.renderHighlightedNodesFrame=null);for(var r=this.container;r.firstChild;)r.removeChild(r.firstChild);for(var i in this.nodePrograms)this.nodePrograms[i].kill();for(var a in this.nodeHoverPrograms)this.nodeHoverPrograms[a].kill();for(var o in this.edgePrograms)this.edgePrograms[o].kill();this.nodePrograms={},this.nodeHoverPrograms={},this.edgePrograms={};for(var s in this.elements)this.killLayer(s);this.canvasContexts={},this.webGLContexts={},this.elements={}}},{key:"scaleSize",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.camera.ratio;return r/this.settings.zoomToSizeRatioFunction(i)*(this.getSetting("itemSizesReference")==="positions"?i*this.graphToViewportRatio:1)}},{key:"getCanvases",value:function(){var r={};for(var i in this.elements)this.elements[i]instanceof HTMLCanvasElement&&(r[i]=this.elements[i]);return r}}])})(Ea),kf=kk;var Ef=Nr(Sa(),1);function _k(){let e=arguments[0];for(let t=1,n=arguments.length;t<n;t++)if(arguments[t])for(let r in arguments[t])e[r]=arguments[t][r];return e}var Me=_k;typeof Object.assign=="function"&&(Me=Object.assign);function Tt(e,t,n,r){let i=e._nodes.get(t),a=null;return i&&(r==="mixed"?a=i.out&&i.out[n]||i.undirected&&i.undirected[n]:r==="directed"?a=i.out&&i.out[n]:a=i.undirected&&i.undirected[n]),a}function Be(e){return typeof e=="object"&&e!==null}function Rf(e){let t;for(t in e)return!1;return!0}function _t(e,t,n){Object.defineProperty(e,t,{enumerable:!1,configurable:!1,writable:!0,value:n})}function Dt(e,t,n){let r={enumerable:!0,configurable:!0};typeof n=="function"?r.get=n:(r.value=n,r.writable=!1),Object.defineProperty(e,t,r)}function _f(e){return!(!Be(e)||e.attributes&&!Array.isArray(e.attributes))}function Tk(){let e=Math.floor(Math.random()*256)&255;return()=>e++}function Yt(){let e=arguments,t=null,n=-1;return{[Symbol.iterator](){return this},next(){let r=null;do{if(t===null){if(n++,n>=e.length)return{done:!0};t=e[n][Symbol.iterator]()}if(r=t.next(),r.done){t=null;continue}break}while(!0);return r}}}function pr(){return{[Symbol.iterator](){return this},next(){return{done:!0}}}}var si=class extends Error{constructor(t){super(),this.name="GraphError",this.message=t}},$=class e extends si{constructor(t){super(t),this.name="InvalidArgumentsGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}},D=class e extends si{constructor(t){super(t),this.name="NotFoundGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}},j=class e extends si{constructor(t){super(t),this.name="UsageGraphError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,e.prototype.constructor)}};function Af(e,t){this.key=e,this.attributes=t,this.clear()}Af.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}};function Cf(e,t){this.key=e,this.attributes=t,this.clear()}Cf.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}};function Lf(e,t){this.key=e,this.attributes=t,this.clear()}Lf.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}};function fr(e,t,n,r,i){this.key=t,this.attributes=i,this.undirected=e,this.source=n,this.target=r}fr.prototype.attach=function(){let e="out",t="in";this.undirected&&(e=t="undirected");let n=this.source.key,r=this.target.key;this.source[e][r]=this,!(this.undirected&&n===r)&&(this.target[t][n]=this)};fr.prototype.attachMulti=function(){let e="out",t="in",n=this.source.key,r=this.target.key;this.undirected&&(e=t="undirected");let i=this.source[e],a=i[r];if(typeof a>"u"){i[r]=this,this.undirected&&n===r||(this.target[t][n]=this);return}a.previous=this,this.next=a,i[r]=this,this.target[t][n]=this};fr.prototype.detach=function(){let e=this.source.key,t=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][t],delete this.target[r][e]};fr.prototype.detachMulti=function(){let e=this.source.key,t=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),this.previous===void 0?this.next===void 0?(delete this.source[n][t],delete this.target[r][e]):(this.next.previous=void 0,this.source[n][t]=this.next,this.target[r][e]=this.next):(this.previous.next=this.next,this.next!==void 0&&(this.next.previous=this.previous))};var Nf=0,Pf=1,Sk=2,Df=3;function Xt(e,t,n,r,i,a,o){let s,l,c,u;if(r=""+r,n===Nf){if(s=e._nodes.get(r),!s)throw new D(`Graph.${t}: could not find the "${r}" node in the graph.`);c=i,u=a}else if(n===Df){if(i=""+i,l=e._edges.get(i),!l)throw new D(`Graph.${t}: could not find the "${i}" edge in the graph.`);let d=l.source.key,h=l.target.key;if(r===d)s=l.target;else if(r===h)s=l.source;else throw new D(`Graph.${t}: the "${r}" node is not attached to the "${i}" edge (${d}, ${h}).`);c=a,u=o}else{if(l=e._edges.get(r),!l)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`);n===Pf?s=l.source:s=l.target,c=i,u=a}return[s,c,u]}function Ek(e,t,n){e.prototype[t]=function(r,i,a){let[o,s]=Xt(this,t,n,r,i,a);return o.attributes[s]}}function Rk(e,t,n){e.prototype[t]=function(r,i){let[a]=Xt(this,t,n,r,i);return a.attributes}}function Ak(e,t,n){e.prototype[t]=function(r,i,a){let[o,s]=Xt(this,t,n,r,i,a);return o.attributes.hasOwnProperty(s)}}function Ck(e,t,n){e.prototype[t]=function(r,i,a,o){let[s,l,c]=Xt(this,t,n,r,i,a,o);return s.attributes[l]=c,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function Lk(e,t,n){e.prototype[t]=function(r,i,a,o){let[s,l,c]=Xt(this,t,n,r,i,a,o);if(typeof c!="function")throw new $(`Graph.${t}: updater should be a function.`);let u=s.attributes,d=c(u[l]);return u[l]=d,this.emit("nodeAttributesUpdated",{key:s.key,type:"set",attributes:s.attributes,name:l}),this}}function Nk(e,t,n){e.prototype[t]=function(r,i,a){let[o,s]=Xt(this,t,n,r,i,a);return delete o.attributes[s],this.emit("nodeAttributesUpdated",{key:o.key,type:"remove",attributes:o.attributes,name:s}),this}}function Pk(e,t,n){e.prototype[t]=function(r,i,a){let[o,s]=Xt(this,t,n,r,i,a);if(!Be(s))throw new $(`Graph.${t}: provided attributes are not a plain object.`);return o.attributes=s,this.emit("nodeAttributesUpdated",{key:o.key,type:"replace",attributes:o.attributes}),this}}function Dk(e,t,n){e.prototype[t]=function(r,i,a){let[o,s]=Xt(this,t,n,r,i,a);if(!Be(s))throw new $(`Graph.${t}: provided attributes are not a plain object.`);return Me(o.attributes,s),this.emit("nodeAttributesUpdated",{key:o.key,type:"merge",attributes:o.attributes,data:s}),this}}function Ik(e,t,n){e.prototype[t]=function(r,i,a){let[o,s]=Xt(this,t,n,r,i,a);if(typeof s!="function")throw new $(`Graph.${t}: provided updater is not a function.`);return o.attributes=s(o.attributes),this.emit("nodeAttributesUpdated",{key:o.key,type:"update",attributes:o.attributes}),this}}var Mk=[{name:e=>`get${e}Attribute`,attacher:Ek},{name:e=>`get${e}Attributes`,attacher:Rk},{name:e=>`has${e}Attribute`,attacher:Ak},{name:e=>`set${e}Attribute`,attacher:Ck},{name:e=>`update${e}Attribute`,attacher:Lk},{name:e=>`remove${e}Attribute`,attacher:Nk},{name:e=>`replace${e}Attributes`,attacher:Pk},{name:e=>`merge${e}Attributes`,attacher:Dk},{name:e=>`update${e}Attributes`,attacher:Ik}];function Gk(e){Mk.forEach(function({name:t,attacher:n}){n(e,t("Node"),Nf),n(e,t("Source"),Pf),n(e,t("Target"),Sk),n(e,t("Opposite"),Df)})}function Ok(e,t,n){e.prototype[t]=function(r,i){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,s=""+i;if(i=arguments[2],a=Tt(this,o,s,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return a.attributes[i]}}function Fk(e,t,n){e.prototype[t]=function(r){let i;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>1){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let a=""+r,o=""+arguments[1];if(i=Tt(this,a,o,n),!i)throw new D(`Graph.${t}: could not find an edge for the given path ("${a}" - "${o}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,i=this._edges.get(r),!i)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return i.attributes}}function $k(e,t,n){e.prototype[t]=function(r,i){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,s=""+i;if(i=arguments[2],a=Tt(this,o,s,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return a.attributes.hasOwnProperty(i)}}function zk(e,t,n){e.prototype[t]=function(r,i,a){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],a=arguments[3],o=Tt(this,s,l,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return o.attributes[i]=a,this.emit("edgeAttributesUpdated",{key:o.key,type:"set",attributes:o.attributes,name:i}),this}}function Hk(e,t,n){e.prototype[t]=function(r,i,a){let o;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>3){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let s=""+r,l=""+i;if(i=arguments[2],a=arguments[3],o=Tt(this,s,l,n),!o)throw new D(`Graph.${t}: could not find an edge for the given path ("${s}" - "${l}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,o=this._edges.get(r),!o)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof a!="function")throw new $(`Graph.${t}: updater should be a function.`);return o.attributes[i]=a(o.attributes[i]),this.emit("edgeAttributesUpdated",{key:o.key,type:"set",attributes:o.attributes,name:i}),this}}function Wk(e,t,n){e.prototype[t]=function(r,i){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,s=""+i;if(i=arguments[2],a=Tt(this,o,s,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}return delete a.attributes[i],this.emit("edgeAttributesUpdated",{key:a.key,type:"remove",attributes:a.attributes,name:i}),this}}function Uk(e,t,n){e.prototype[t]=function(r,i){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,s=""+i;if(i=arguments[2],a=Tt(this,o,s,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Be(i))throw new $(`Graph.${t}: provided attributes are not a plain object.`);return a.attributes=i,this.emit("edgeAttributesUpdated",{key:a.key,type:"replace",attributes:a.attributes}),this}}function Bk(e,t,n){e.prototype[t]=function(r,i){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,s=""+i;if(i=arguments[2],a=Tt(this,o,s,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(!Be(i))throw new $(`Graph.${t}: provided attributes are not a plain object.`);return Me(a.attributes,i),this.emit("edgeAttributesUpdated",{key:a.key,type:"merge",attributes:a.attributes,data:i}),this}}function Kk(e,t,n){e.prototype[t]=function(r,i){let a;if(this.type!=="mixed"&&n!=="mixed"&&n!==this.type)throw new j(`Graph.${t}: cannot find this type of edges in your ${this.type} graph.`);if(arguments.length>2){if(this.multi)throw new j(`Graph.${t}: cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about.`);let o=""+r,s=""+i;if(i=arguments[2],a=Tt(this,o,s,n),!a)throw new D(`Graph.${t}: could not find an edge for the given path ("${o}" - "${s}").`)}else{if(n!=="mixed")throw new j(`Graph.${t}: calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type.`);if(r=""+r,a=this._edges.get(r),!a)throw new D(`Graph.${t}: could not find the "${r}" edge in the graph.`)}if(typeof i!="function")throw new $(`Graph.${t}: provided updater is not a function.`);return a.attributes=i(a.attributes),this.emit("edgeAttributesUpdated",{key:a.key,type:"update",attributes:a.attributes}),this}}var Vk=[{name:e=>`get${e}Attribute`,attacher:Ok},{name:e=>`get${e}Attributes`,attacher:Fk},{name:e=>`has${e}Attribute`,attacher:$k},{name:e=>`set${e}Attribute`,attacher:zk},{name:e=>`update${e}Attribute`,attacher:Hk},{name:e=>`remove${e}Attribute`,attacher:Wk},{name:e=>`replace${e}Attributes`,attacher:Uk},{name:e=>`merge${e}Attributes`,attacher:Bk},{name:e=>`update${e}Attributes`,attacher:Kk}];function jk(e){Vk.forEach(function({name:t,attacher:n}){n(e,t("Edge"),"mixed"),n(e,t("DirectedEdge"),"directed"),n(e,t("UndirectedEdge"),"undirected")})}var qk=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function Yk(e,t,n,r){let i=!1;for(let a in t){if(a===r)continue;let o=t[a];if(i=n(o.key,o.attributes,o.source.key,o.target.key,o.source.attributes,o.target.attributes,o.undirected),e&&i)return o.key}}function Xk(e,t,n,r){let i,a,o,s=!1;for(let l in t)if(l!==r){i=t[l];do{if(a=i.source,o=i.target,s=n(i.key,i.attributes,a.key,o.key,a.attributes,o.attributes,i.undirected),e&&s)return i.key;i=i.next}while(i!==void 0)}}function ll(e,t){let n=Object.keys(e),r=n.length,i,a=0;return{[Symbol.iterator](){return this},next(){do if(i)i=i.next;else{if(a>=r)return{done:!0};let o=n[a++];if(o===t){i=void 0;continue}i=e[o]}while(!i);return{done:!1,value:{edge:i.key,attributes:i.attributes,source:i.source.key,target:i.target.key,sourceAttributes:i.source.attributes,targetAttributes:i.target.attributes,undirected:i.undirected}}}}}function Zk(e,t,n,r){let i=t[n];if(!i)return;let a=i.source,o=i.target;if(r(i.key,i.attributes,a.key,o.key,a.attributes,o.attributes,i.undirected)&&e)return i.key}function Qk(e,t,n,r){let i=t[n];if(!i)return;let a=!1;do{if(a=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),e&&a)return i.key;i=i.next}while(i!==void 0)}function cl(e,t){let n=e[t];if(n.next!==void 0)return{[Symbol.iterator](){return this},next(){if(!n)return{done:!0};let i={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:i}}};let r=!1;return{[Symbol.iterator](){return this},next(){return r===!0?{done:!0}:(r=!0,{done:!1,value:{edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected}})}}}function Jk(e,t){if(e.size===0)return[];if(t==="mixed"||t===e.type)return Array.from(e._edges.keys());let n=t==="undirected"?e.undirectedSize:e.directedSize,r=new Array(n),i=t==="undirected",a=e._edges.values(),o=0,s,l;for(;s=a.next(),s.done!==!0;)l=s.value,l.undirected===i&&(r[o++]=l.key);return r}function If(e,t,n,r){if(t.size===0)return;let i=n!=="mixed"&&n!==t.type,a=n==="undirected",o,s,l=!1,c=t._edges.values();for(;o=c.next(),o.done!==!0;){if(s=o.value,i&&s.undirected!==a)continue;let{key:u,attributes:d,source:h,target:f}=s;if(l=r(u,d,h.key,f.key,h.attributes,f.attributes,s.undirected),e&&l)return u}}function e0(e,t){if(e.size===0)return pr();let n=t!=="mixed"&&t!==e.type,r=t==="undirected",i=e._edges.values();return{[Symbol.iterator](){return this},next(){let a,o;for(;;){if(a=i.next(),a.done)return a;if(o=a.value,!(n&&o.undirected!==r))break}return{value:{edge:o.key,attributes:o.attributes,source:o.source.key,target:o.target.key,sourceAttributes:o.source.attributes,targetAttributes:o.target.attributes,undirected:o.undirected},done:!1}}}}function ul(e,t,n,r,i,a){let o=t?Xk:Yk,s;if(n!=="undirected"&&(r!=="out"&&(s=o(e,i.in,a),e&&s)||r!=="in"&&(s=o(e,i.out,a,r?void 0:i.key),e&&s))||n!=="directed"&&(s=o(e,i.undirected,a),e&&s))return s}function t0(e,t,n,r){let i=[];return ul(!1,e,t,n,r,function(a){i.push(a)}),i}function n0(e,t,n){let r=pr();return e!=="undirected"&&(t!=="out"&&typeof n.in<"u"&&(r=Yt(r,ll(n.in))),t!=="in"&&typeof n.out<"u"&&(r=Yt(r,ll(n.out,t?void 0:n.key)))),e!=="directed"&&typeof n.undirected<"u"&&(r=Yt(r,ll(n.undirected))),r}function dl(e,t,n,r,i,a,o){let s=n?Qk:Zk,l;if(t!=="undirected"&&(typeof i.in<"u"&&r!=="out"&&(l=s(e,i.in,a,o),e&&l)||typeof i.out<"u"&&r!=="in"&&(r||i.key!==a)&&(l=s(e,i.out,a,o),e&&l))||t!=="directed"&&typeof i.undirected<"u"&&(l=s(e,i.undirected,a,o),e&&l))return l}function r0(e,t,n,r,i){let a=[];return dl(!1,e,t,n,r,i,function(o){a.push(o)}),a}function i0(e,t,n,r){let i=pr();return e!=="undirected"&&(typeof n.in<"u"&&t!=="out"&&r in n.in&&(i=Yt(i,cl(n.in,r))),typeof n.out<"u"&&t!=="in"&&r in n.out&&(t||n.key!==r)&&(i=Yt(i,cl(n.out,r)))),e!=="directed"&&typeof n.undirected<"u"&&r in n.undirected&&(i=Yt(i,cl(n.undirected,r))),i}function a0(e,t){let{name:n,type:r,direction:i}=t;e.prototype[n]=function(a,o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];if(!arguments.length)return Jk(this,r);if(arguments.length===1){a=""+a;let s=this._nodes.get(a);if(typeof s>"u")throw new D(`Graph.${n}: could not find the "${a}" node in the graph.`);return t0(this.multi,r==="mixed"?this.type:r,i,s)}if(arguments.length===2){a=""+a,o=""+o;let s=this._nodes.get(a);if(!s)throw new D(`Graph.${n}: could not find the "${a}" source node in the graph.`);if(!this._nodes.has(o))throw new D(`Graph.${n}: could not find the "${o}" target node in the graph.`);return r0(r,this.multi,i,s,o)}throw new $(`Graph.${n}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function o0(e,t){let{name:n,type:r,direction:i}=t,a="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[a]=function(c,u,d){if(!(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)){if(arguments.length===1)return d=c,If(!1,this,r,d);if(arguments.length===2){c=""+c,d=u;let h=this._nodes.get(c);if(typeof h>"u")throw new D(`Graph.${a}: could not find the "${c}" node in the graph.`);return ul(!1,this.multi,r==="mixed"?this.type:r,i,h,d)}if(arguments.length===3){c=""+c,u=""+u;let h=this._nodes.get(c);if(!h)throw new D(`Graph.${a}: could not find the "${c}" source node in the graph.`);if(!this._nodes.has(u))throw new D(`Graph.${a}: could not find the "${u}" target node in the graph.`);return dl(!1,r,this.multi,i,h,u,d)}throw new $(`Graph.${a}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)}};let o="map"+n[0].toUpperCase()+n.slice(1);e.prototype[o]=function(){let c=Array.prototype.slice.call(arguments),u=c.pop(),d;if(c.length===0){let h=0;r!=="directed"&&(h+=this.undirectedSize),r!=="undirected"&&(h+=this.directedSize),d=new Array(h);let f=0;c.push((g,y,v,w,b,k,x)=>{d[f++]=u(g,y,v,w,b,k,x)})}else d=[],c.push((h,f,g,y,v,w,b)=>{d.push(u(h,f,g,y,v,w,b))});return this[a].apply(this,c),d};let s="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(){let c=Array.prototype.slice.call(arguments),u=c.pop(),d=[];return c.push((h,f,g,y,v,w,b)=>{u(h,f,g,y,v,w,b)&&d.push(h)}),this[a].apply(this,c),d};let l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(){let c=Array.prototype.slice.call(arguments);if(c.length<2||c.length>4)throw new $(`Graph.${l}: invalid number of arguments (expecting 2, 3 or 4 and got ${c.length}).`);if(typeof c[c.length-1]=="function"&&typeof c[c.length-2]!="function")throw new $(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let u,d;c.length===2?(u=c[0],d=c[1],c=[]):c.length===3?(u=c[1],d=c[2],c=[c[0]]):c.length===4&&(u=c[2],d=c[3],c=[c[0],c[1]]);let h=d;return c.push((f,g,y,v,w,b,k)=>{h=u(h,f,g,y,v,w,b,k)}),this[a].apply(this,c),h}}function s0(e,t){let{name:n,type:r,direction:i}=t,a="find"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[a]=function(l,c,u){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return!1;if(arguments.length===1)return u=l,If(!0,this,r,u);if(arguments.length===2){l=""+l,u=c;let d=this._nodes.get(l);if(typeof d>"u")throw new D(`Graph.${a}: could not find the "${l}" node in the graph.`);return ul(!0,this.multi,r==="mixed"?this.type:r,i,d,u)}if(arguments.length===3){l=""+l,c=""+c;let d=this._nodes.get(l);if(!d)throw new D(`Graph.${a}: could not find the "${l}" source node in the graph.`);if(!this._nodes.has(c))throw new D(`Graph.${a}: could not find the "${c}" target node in the graph.`);return dl(!0,r,this.multi,i,d,c,u)}throw new $(`Graph.${a}: too many arguments (expecting 1, 2 or 3 and got ${arguments.length}).`)};let o="some"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[o]=function(){let l=Array.prototype.slice.call(arguments),c=l.pop();return l.push((d,h,f,g,y,v,w)=>c(d,h,f,g,y,v,w)),!!this[a].apply(this,l)};let s="every"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[s]=function(){let l=Array.prototype.slice.call(arguments),c=l.pop();return l.push((d,h,f,g,y,v,w)=>!c(d,h,f,g,y,v,w)),!this[a].apply(this,l)}}function l0(e,t){let{name:n,type:r,direction:i}=t,a=n.slice(0,-1)+"Entries";e.prototype[a]=function(o,s){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return pr();if(!arguments.length)return e0(this,r);if(arguments.length===1){o=""+o;let l=this._nodes.get(o);if(!l)throw new D(`Graph.${a}: could not find the "${o}" node in the graph.`);return n0(r,i,l)}if(arguments.length===2){o=""+o,s=""+s;let l=this._nodes.get(o);if(!l)throw new D(`Graph.${a}: could not find the "${o}" source node in the graph.`);if(!this._nodes.has(s))throw new D(`Graph.${a}: could not find the "${s}" target node in the graph.`);return i0(r,i,l,s)}throw new $(`Graph.${a}: too many arguments (expecting 0, 1 or 2 and got ${arguments.length}).`)}}function c0(e){qk.forEach(t=>{a0(e,t),o0(e,t),s0(e,t),l0(e,t)})}var u0=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function Ha(){this.A=null,this.B=null}Ha.prototype.wrap=function(e){this.A===null?this.A=e:this.B===null&&(this.B=e)};Ha.prototype.has=function(e){return this.A!==null&&e in this.A||this.B!==null&&e in this.B};function ai(e,t,n,r,i){for(let a in r){let o=r[a],s=o.source,l=o.target,c=s===n?l:s;if(t&&t.has(c.key))continue;let u=i(c.key,c.attributes);if(e&&u)return c.key}}function hl(e,t,n,r,i){if(t!=="mixed"){if(t==="undirected")return ai(e,null,r,r.undirected,i);if(typeof n=="string")return ai(e,null,r,r[n],i)}let a=new Ha,o;if(t!=="undirected"){if(n!=="out"){if(o=ai(e,null,r,r.in,i),e&&o)return o;a.wrap(r.in)}if(n!=="in"){if(o=ai(e,a,r,r.out,i),e&&o)return o;a.wrap(r.out)}}if(t!=="directed"&&(o=ai(e,a,r,r.undirected,i),e&&o))return o}function d0(e,t,n){if(e!=="mixed"){if(e==="undirected")return Object.keys(n.undirected);if(typeof t=="string")return Object.keys(n[t])}let r=[];return hl(!1,e,t,n,function(i){r.push(i)}),r}function oi(e,t,n){let r=Object.keys(n),i=r.length,a=0;return{[Symbol.iterator](){return this},next(){let o=null;do{if(a>=i)return e&&e.wrap(n),{done:!0};let s=n[r[a++]],l=s.source,c=s.target;if(o=l===t?c:l,e&&e.has(o.key)){o=null;continue}}while(o===null);return{done:!1,value:{neighbor:o.key,attributes:o.attributes}}}}}function h0(e,t,n){if(e!=="mixed"){if(e==="undirected")return oi(null,n,n.undirected);if(typeof t=="string")return oi(null,n,n[t])}let r=pr(),i=new Ha;return e!=="undirected"&&(t!=="out"&&(r=Yt(r,oi(i,n,n.in))),t!=="in"&&(r=Yt(r,oi(i,n,n.out)))),e!=="directed"&&(r=Yt(r,oi(i,n,n.undirected))),r}function p0(e,t){let{name:n,type:r,direction:i}=t;e.prototype[n]=function(a){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return[];a=""+a;let o=this._nodes.get(a);if(typeof o>"u")throw new D(`Graph.${n}: could not find the "${a}" node in the graph.`);return d0(r==="mixed"?this.type:r,i,o)}}function f0(e,t){let{name:n,type:r,direction:i}=t,a="forEach"+n[0].toUpperCase()+n.slice(1,-1);e.prototype[a]=function(c,u){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;c=""+c;let d=this._nodes.get(c);if(typeof d>"u")throw new D(`Graph.${a}: could not find the "${c}" node in the graph.`);hl(!1,r==="mixed"?this.type:r,i,d,u)};let o="map"+n[0].toUpperCase()+n.slice(1);e.prototype[o]=function(c,u){let d=[];return this[a](c,(h,f)=>{d.push(u(h,f))}),d};let s="filter"+n[0].toUpperCase()+n.slice(1);e.prototype[s]=function(c,u){let d=[];return this[a](c,(h,f)=>{u(h,f)&&d.push(h)}),d};let l="reduce"+n[0].toUpperCase()+n.slice(1);e.prototype[l]=function(c,u,d){if(arguments.length<3)throw new $(`Graph.${l}: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.`);let h=d;return this[a](c,(f,g)=>{h=u(h,f,g)}),h}}function g0(e,t){let{name:n,type:r,direction:i}=t,a=n[0].toUpperCase()+n.slice(1,-1),o="find"+a;e.prototype[o]=function(c,u){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return;c=""+c;let d=this._nodes.get(c);if(typeof d>"u")throw new D(`Graph.${o}: could not find the "${c}" node in the graph.`);return hl(!0,r==="mixed"?this.type:r,i,d,u)};let s="some"+a;e.prototype[s]=function(c,u){return!!this[o](c,u)};let l="every"+a;e.prototype[l]=function(c,u){return!this[o](c,(h,f)=>!u(h,f))}}function m0(e,t){let{name:n,type:r,direction:i}=t,a=n.slice(0,-1)+"Entries";e.prototype[a]=function(o){if(r!=="mixed"&&this.type!=="mixed"&&r!==this.type)return pr();o=""+o;let s=this._nodes.get(o);if(typeof s>"u")throw new D(`Graph.${a}: could not find the "${o}" node in the graph.`);return h0(r==="mixed"?this.type:r,i,s)}}function v0(e){u0.forEach(t=>{p0(e,t),f0(e,t),g0(e,t),m0(e,t)})}function Ma(e,t,n,r,i){let a=r._nodes.values(),o=r.type,s,l,c,u,d,h,f;for(;s=a.next(),s.done!==!0;){let g=!1;if(l=s.value,o!=="undirected"){u=l.out;for(c in u){d=u[c];do{if(h=d.target,g=!0,f=i(l.key,h.key,l.attributes,h.attributes,d.key,d.attributes,d.undirected),e&&f)return d;d=d.next}while(d)}}if(o!=="directed"){u=l.undirected;for(c in u)if(!(t&&l.key>c)){d=u[c];do{if(h=d.target,h.key!==c&&(h=d.source),g=!0,f=i(l.key,h.key,l.attributes,h.attributes,d.key,d.attributes,d.undirected),e&&f)return d;d=d.next}while(d)}}if(n&&!g&&(f=i(l.key,null,l.attributes,null,null,null,null),e&&f))return null}}function w0(e,t){let n={key:e};return Rf(t.attributes)||(n.attributes=Me({},t.attributes)),n}function y0(e,t,n){let r={key:t,source:n.source.key,target:n.target.key};return Rf(n.attributes)||(r.attributes=Me({},n.attributes)),e==="mixed"&&n.undirected&&(r.undirected=!0),r}function b0(e){if(!Be(e))throw new $('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in e))throw new $("Graph.import: serialized node is missing its key.");if("attributes"in e&&(!Be(e.attributes)||e.attributes===null))throw new $("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function x0(e){if(!Be(e))throw new $('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in e))throw new $("Graph.import: serialized edge is missing its source.");if(!("target"in e))throw new $("Graph.import: serialized edge is missing its target.");if("attributes"in e&&(!Be(e.attributes)||e.attributes===null))throw new $("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in e&&typeof e.undirected!="boolean")throw new $("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}var k0=Tk(),_0=new Set(["directed","undirected","mixed"]),Tf=new Set(["domain","_events","_eventsCount","_maxListeners"]),T0=[{name:e=>`${e}Edge`,generateKey:!0},{name:e=>`${e}DirectedEdge`,generateKey:!0,type:"directed"},{name:e=>`${e}UndirectedEdge`,generateKey:!0,type:"undirected"},{name:e=>`${e}EdgeWithKey`},{name:e=>`${e}DirectedEdgeWithKey`,type:"directed"},{name:e=>`${e}UndirectedEdgeWithKey`,type:"undirected"}],S0={allowSelfLoops:!0,multi:!1,type:"mixed"};function E0(e,t,n){if(n&&!Be(n))throw new $(`Graph.addNode: invalid attributes. Expecting an object but got "${n}"`);if(t=""+t,n=n||{},e._nodes.has(t))throw new j(`Graph.addNode: the "${t}" node already exist in the graph.`);let r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function Sf(e,t,n){let r=new e.NodeDataClass(t,n);return e._nodes.set(t,r),e.emit("nodeAdded",{key:t,attributes:n}),r}function Mf(e,t,n,r,i,a,o,s){if(!r&&e.type==="undirected")throw new j(`Graph.${t}: you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new j(`Graph.${t}: you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead.`);if(s&&!Be(s))throw new $(`Graph.${t}: invalid attributes. Expecting an object but got "${s}"`);if(a=""+a,o=""+o,s=s||{},!e.allowSelfLoops&&a===o)throw new j(`Graph.${t}: source & target are the same ("${a}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let l=e._nodes.get(a),c=e._nodes.get(o);if(!l)throw new D(`Graph.${t}: source node "${a}" not found.`);if(!c)throw new D(`Graph.${t}: target node "${o}" not found.`);let u={key:null,undirected:r,source:a,target:o,attributes:s};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new j(`Graph.${t}: the "${i}" edge already exists in the graph.`);if(!e.multi&&(r?typeof l.undirected[o]<"u":typeof l.out[o]<"u"))throw new j(`Graph.${t}: an edge linking "${a}" to "${o}" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option.`);let d=new fr(r,i,l,c,s);e._edges.set(i,d);let h=a===o;return r?(l.undirectedDegree++,c.undirectedDegree++,h&&(l.undirectedLoops++,e._undirectedSelfLoopCount++)):(l.outDegree++,c.inDegree++,h&&(l.directedLoops++,e._directedSelfLoopCount++)),e.multi?d.attachMulti():d.attach(),r?e._undirectedSize++:e._directedSize++,u.key=i,e.emit("edgeAdded",u),i}function R0(e,t,n,r,i,a,o,s,l){if(!r&&e.type==="undirected")throw new j(`Graph.${t}: you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead.`);if(r&&e.type==="directed")throw new j(`Graph.${t}: you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead.`);if(s){if(l){if(typeof s!="function")throw new $(`Graph.${t}: invalid updater function. Expecting a function but got "${s}"`)}else if(!Be(s))throw new $(`Graph.${t}: invalid attributes. Expecting an object but got "${s}"`)}a=""+a,o=""+o;let c;if(l&&(c=s,s=void 0),!e.allowSelfLoops&&a===o)throw new j(`Graph.${t}: source & target are the same ("${a}"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false.`);let u=e._nodes.get(a),d=e._nodes.get(o),h,f;if(!n&&(h=e._edges.get(i),h)){if((h.source.key!==a||h.target.key!==o)&&(!r||h.source.key!==o||h.target.key!==a))throw new j(`Graph.${t}: inconsistency detected when attempting to merge the "${i}" edge with "${a}" source & "${o}" target vs. ("${h.source.key}", "${h.target.key}").`);f=h}if(!f&&!e.multi&&u&&(f=r?u.undirected[o]:u.out[o]),f){let b=[f.key,!1,!1,!1];if(l?!c:!s)return b;if(l){let k=f.attributes;f.attributes=c(k),e.emit("edgeAttributesUpdated",{type:"replace",key:f.key,attributes:f.attributes})}else Me(f.attributes,s),e.emit("edgeAttributesUpdated",{type:"merge",key:f.key,attributes:f.attributes,data:s});return b}s=s||{},l&&c&&(s=c(s));let g={key:null,undirected:r,source:a,target:o,attributes:s};if(n)i=e._edgeKeyGenerator();else if(i=""+i,e._edges.has(i))throw new j(`Graph.${t}: the "${i}" edge already exists in the graph.`);let y=!1,v=!1;u||(u=Sf(e,a,{}),y=!0,a===o&&(d=u,v=!0)),d||(d=Sf(e,o,{}),v=!0),h=new fr(r,i,u,d,s),e._edges.set(i,h);let w=a===o;return r?(u.undirectedDegree++,d.undirectedDegree++,w&&(u.undirectedLoops++,e._undirectedSelfLoopCount++)):(u.outDegree++,d.inDegree++,w&&(u.directedLoops++,e._directedSelfLoopCount++)),e.multi?h.attachMulti():h.attach(),r?e._undirectedSize++:e._directedSize++,g.key=i,e.emit("edgeAdded",g),[i,!0,y,v]}function hr(e,t){e._edges.delete(t.key);let{source:n,target:r,attributes:i}=t,a=t.undirected,o=n===r;a?(n.undirectedDegree--,r.undirectedDegree--,o&&(n.undirectedLoops--,e._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,o&&(n.directedLoops--,e._directedSelfLoopCount--)),e.multi?t.detachMulti():t.detach(),a?e._undirectedSize--:e._directedSize--,e.emit("edgeDropped",{key:t.key,attributes:i,source:n.key,target:r.key,undirected:a})}var de=class e extends Ef.EventEmitter{constructor(t){if(super(),t=Me({},S0,t),typeof t.multi!="boolean")throw new $(`Graph.constructor: invalid 'multi' option. Expecting a boolean but got "${t.multi}".`);if(!_0.has(t.type))throw new $(`Graph.constructor: invalid 'type' option. Should be one of "mixed", "directed" or "undirected" but got "${t.type}".`);if(typeof t.allowSelfLoops!="boolean")throw new $(`Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got "${t.allowSelfLoops}".`);let n=t.type==="mixed"?Af:t.type==="directed"?Cf:Lf;_t(this,"NodeDataClass",n);let r="geid_"+k0()+"_",i=0,a=()=>{let o;do o=r+i++;while(this._edges.has(o));return o};_t(this,"_attributes",{}),_t(this,"_nodes",new Map),_t(this,"_edges",new Map),_t(this,"_directedSize",0),_t(this,"_undirectedSize",0),_t(this,"_directedSelfLoopCount",0),_t(this,"_undirectedSelfLoopCount",0),_t(this,"_edgeKeyGenerator",a),_t(this,"_options",t),Tf.forEach(o=>_t(this,o,this[o])),Dt(this,"order",()=>this._nodes.size),Dt(this,"size",()=>this._edges.size),Dt(this,"directedSize",()=>this._directedSize),Dt(this,"undirectedSize",()=>this._undirectedSize),Dt(this,"selfLoopCount",()=>this._directedSelfLoopCount+this._undirectedSelfLoopCount),Dt(this,"directedSelfLoopCount",()=>this._directedSelfLoopCount),Dt(this,"undirectedSelfLoopCount",()=>this._undirectedSelfLoopCount),Dt(this,"multi",this._options.multi),Dt(this,"type",this._options.type),Dt(this,"allowSelfLoops",this._options.allowSelfLoops),Dt(this,"implementation",()=>"graphology")}_resetInstanceCounters(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0}hasNode(t){return this._nodes.has(""+t)}hasDirectedEdge(t,n){if(this.type==="undirected")return!1;if(arguments.length===1){let r=""+t,i=this._edges.get(r);return!!i&&!i.undirected}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?r.out.hasOwnProperty(n):!1}throw new $(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasUndirectedEdge(t,n){if(this.type==="directed")return!1;if(arguments.length===1){let r=""+t,i=this._edges.get(r);return!!i&&i.undirected}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?r.undirected.hasOwnProperty(n):!1}throw new $(`Graph.hasDirectedEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}hasEdge(t,n){if(arguments.length===1){let r=""+t;return this._edges.has(r)}else if(arguments.length===2){t=""+t,n=""+n;let r=this._nodes.get(t);return r?typeof r.out<"u"&&r.out.hasOwnProperty(n)||typeof r.undirected<"u"&&r.undirected.hasOwnProperty(n):!1}throw new $(`Graph.hasEdge: invalid arity (${arguments.length}, instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target.`)}directedEdge(t,n){if(this.type==="undirected")return;if(t=""+t,n=""+n,this.multi)throw new j("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");let r=this._nodes.get(t);if(!r)throw new D(`Graph.directedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new D(`Graph.directedEdge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||void 0;if(i)return i.key}undirectedEdge(t,n){if(this.type==="directed")return;if(t=""+t,n=""+n,this.multi)throw new j("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");let r=this._nodes.get(t);if(!r)throw new D(`Graph.undirectedEdge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new D(`Graph.undirectedEdge: could not find the "${n}" target node in the graph.`);let i=r.undirected&&r.undirected[n]||void 0;if(i)return i.key}edge(t,n){if(this.multi)throw new j("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.edge: could not find the "${t}" source node in the graph.`);if(!this._nodes.has(n))throw new D(`Graph.edge: could not find the "${n}" target node in the graph.`);let i=r.out&&r.out[n]||r.undirected&&r.undirected[n]||void 0;if(i)return i.key}areDirectedNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areDirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in||n in r.out}areOutNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areOutNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.out}areInNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areInNeighbors: could not find the "${t}" node in the graph.`);return this.type==="undirected"?!1:n in r.in}areUndirectedNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areUndirectedNeighbors: could not find the "${t}" node in the graph.`);return this.type==="directed"?!1:n in r.undirected}areNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&(n in r.in||n in r.out)||this.type!=="directed"&&n in r.undirected}areInboundNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areInboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.in||this.type!=="directed"&&n in r.undirected}areOutboundNeighbors(t,n){t=""+t,n=""+n;let r=this._nodes.get(t);if(!r)throw new D(`Graph.areOutboundNeighbors: could not find the "${t}" node in the graph.`);return this.type!=="undirected"&&n in r.out||this.type!=="directed"&&n in r.undirected}inDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree}outDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree}directedDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.directedDegree: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree}undirectedDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.undirectedDegree: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree}inboundDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree),r}outboundDegree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outboundDegree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.outDegree),r}degree(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.degree: could not find the "${t}" node in the graph.`);let r=0;return this.type!=="directed"&&(r+=n.undirectedDegree),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree),r}inDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree-n.directedLoops}outDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.outDegree-n.directedLoops}directedDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.directedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="undirected"?0:n.inDegree+n.outDegree-n.directedLoops*2}undirectedDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.undirectedDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);return this.type==="directed"?0:n.undirectedDegree-n.undirectedLoops*2}inboundDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.inboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree,i+=n.directedLoops),r-i}outboundDegreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.outboundDegreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.outDegree,i+=n.directedLoops),r-i}degreeWithoutSelfLoops(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.degreeWithoutSelfLoops: could not find the "${t}" node in the graph.`);let r=0,i=0;return this.type!=="directed"&&(r+=n.undirectedDegree,i+=n.undirectedLoops*2),this.type!=="undirected"&&(r+=n.inDegree+n.outDegree,i+=n.directedLoops*2),r-i}source(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.source: could not find the "${t}" edge in the graph.`);return n.source.key}target(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.target: could not find the "${t}" edge in the graph.`);return n.target.key}extremities(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.extremities: could not find the "${t}" edge in the graph.`);return[n.source.key,n.target.key]}opposite(t,n){t=""+t,n=""+n;let r=this._edges.get(n);if(!r)throw new D(`Graph.opposite: could not find the "${n}" edge in the graph.`);let i=r.source.key,a=r.target.key;if(t===i)return a;if(t===a)return i;throw new D(`Graph.opposite: the "${t}" node is not attached to the "${n}" edge (${i}, ${a}).`)}hasExtremity(t,n){t=""+t,n=""+n;let r=this._edges.get(t);if(!r)throw new D(`Graph.hasExtremity: could not find the "${t}" edge in the graph.`);return r.source.key===n||r.target.key===n}isUndirected(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.isUndirected: could not find the "${t}" edge in the graph.`);return n.undirected}isDirected(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.isDirected: could not find the "${t}" edge in the graph.`);return!n.undirected}isSelfLoop(t){t=""+t;let n=this._edges.get(t);if(!n)throw new D(`Graph.isSelfLoop: could not find the "${t}" edge in the graph.`);return n.source===n.target}addNode(t,n){return E0(this,t,n).key}mergeNode(t,n){if(n&&!Be(n))throw new $(`Graph.mergeNode: invalid attributes. Expecting an object but got "${n}"`);t=""+t,n=n||{};let r=this._nodes.get(t);return r?(n&&(Me(r.attributes,n),this.emit("nodeAttributesUpdated",{type:"merge",key:t,attributes:r.attributes,data:n})),[t,!1]):(r=new this.NodeDataClass(t,n),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:n}),[t,!0])}updateNode(t,n){if(n&&typeof n!="function")throw new $(`Graph.updateNode: invalid updater function. Expecting a function but got "${n}"`);t=""+t;let r=this._nodes.get(t);if(r){if(n){let a=r.attributes;r.attributes=n(a),this.emit("nodeAttributesUpdated",{type:"replace",key:t,attributes:r.attributes})}return[t,!1]}let i=n?n({}):{};return r=new this.NodeDataClass(t,i),this._nodes.set(t,r),this.emit("nodeAdded",{key:t,attributes:i}),[t,!0]}dropNode(t){t=""+t;let n=this._nodes.get(t);if(!n)throw new D(`Graph.dropNode: could not find the "${t}" node in the graph.`);let r;if(this.type!=="undirected"){for(let i in n.out){r=n.out[i];do hr(this,r),r=r.next;while(r)}for(let i in n.in){r=n.in[i];do hr(this,r),r=r.next;while(r)}}if(this.type!=="directed")for(let i in n.undirected){r=n.undirected[i];do hr(this,r),r=r.next;while(r)}this._nodes.delete(t),this.emit("nodeDropped",{key:t,attributes:n.attributes})}dropEdge(t){let n;if(arguments.length>1){let r=""+arguments[0],i=""+arguments[1];if(n=Tt(this,r,i,this.type),!n)throw new D(`Graph.dropEdge: could not find the "${r}" -> "${i}" edge in the graph.`)}else if(t=""+t,n=this._edges.get(t),!n)throw new D(`Graph.dropEdge: could not find the "${t}" edge in the graph.`);return hr(this,n),this}dropDirectedEdge(t,n){if(arguments.length<2)throw new j("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new j("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");t=""+t,n=""+n;let r=Tt(this,t,n,"directed");if(!r)throw new D(`Graph.dropDirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return hr(this,r),this}dropUndirectedEdge(t,n){if(arguments.length<2)throw new j("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new j("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");let r=Tt(this,t,n,"undirected");if(!r)throw new D(`Graph.dropUndirectedEdge: could not find a "${t}" -> "${n}" edge in the graph.`);return hr(this,r),this}clear(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")}clearEdges(){let t=this._nodes.values(),n;for(;n=t.next(),n.done!==!0;)n.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")}getAttribute(t){return this._attributes[t]}getAttributes(){return this._attributes}hasAttribute(t){return this._attributes.hasOwnProperty(t)}setAttribute(t,n){return this._attributes[t]=n,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}updateAttribute(t,n){if(typeof n!="function")throw new $("Graph.updateAttribute: updater should be a function.");let r=this._attributes[t];return this._attributes[t]=n(r),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this}removeAttribute(t){return delete this._attributes[t],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:t}),this}replaceAttributes(t){if(!Be(t))throw new $("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=t,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this}mergeAttributes(t){if(!Be(t))throw new $("Graph.mergeAttributes: provided attributes are not a plain object.");return Me(this._attributes,t),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:t}),this}updateAttributes(t){if(typeof t!="function")throw new $("Graph.updateAttributes: provided updater is not a function.");return this._attributes=t(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this}updateEachNodeAttributes(t,n){if(typeof t!="function")throw new $("Graph.updateEachNodeAttributes: expecting an updater function.");if(n&&!_f(n))throw new $("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._nodes.values(),i,a;for(;i=r.next(),i.done!==!0;)a=i.value,a.attributes=t(a.key,a.attributes);this.emit("eachNodeAttributesUpdated",{hints:n||null})}updateEachEdgeAttributes(t,n){if(typeof t!="function")throw new $("Graph.updateEachEdgeAttributes: expecting an updater function.");if(n&&!_f(n))throw new $("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");let r=this._edges.values(),i,a,o,s;for(;i=r.next(),i.done!==!0;)a=i.value,o=a.source,s=a.target,a.attributes=t(a.key,a.attributes,o.key,s.key,o.attributes,s.attributes,a.undirected);this.emit("eachEdgeAttributesUpdated",{hints:n||null})}forEachAdjacencyEntry(t){if(typeof t!="function")throw new $("Graph.forEachAdjacencyEntry: expecting a callback.");Ma(!1,!1,!1,this,t)}forEachAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new $("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");Ma(!1,!1,!0,this,t)}forEachAssymetricAdjacencyEntry(t){if(typeof t!="function")throw new $("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");Ma(!1,!0,!1,this,t)}forEachAssymetricAdjacencyEntryWithOrphans(t){if(typeof t!="function")throw new $("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");Ma(!1,!0,!0,this,t)}nodes(){return Array.from(this._nodes.keys())}forEachNode(t){if(typeof t!="function")throw new $("Graph.forEachNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)}findNode(t){if(typeof t!="function")throw new $("Graph.findNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return i.key}mapNodes(t){if(typeof t!="function")throw new $("Graph.mapNode: expecting a callback.");let n=this._nodes.values(),r,i,a=new Array(this.order),o=0;for(;r=n.next(),r.done!==!0;)i=r.value,a[o++]=t(i.key,i.attributes);return a}someNode(t){if(typeof t!="function")throw new $("Graph.someNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,t(i.key,i.attributes))return!0;return!1}everyNode(t){if(typeof t!="function")throw new $("Graph.everyNode: expecting a callback.");let n=this._nodes.values(),r,i;for(;r=n.next(),r.done!==!0;)if(i=r.value,!t(i.key,i.attributes))return!1;return!0}filterNodes(t){if(typeof t!="function")throw new $("Graph.filterNodes: expecting a callback.");let n=this._nodes.values(),r,i,a=[];for(;r=n.next(),r.done!==!0;)i=r.value,t(i.key,i.attributes)&&a.push(i.key);return a}reduceNodes(t,n){if(typeof t!="function")throw new $("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new $("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");let r=n,i=this._nodes.values(),a,o;for(;a=i.next(),a.done!==!0;)o=a.value,r=t(r,o.key,o.attributes);return r}nodeEntries(){let t=this._nodes.values();return{[Symbol.iterator](){return this},next(){let n=t.next();if(n.done)return n;let r=n.value;return{value:{node:r.key,attributes:r.attributes},done:!1}}}}export(){let t=new Array(this._nodes.size),n=0;this._nodes.forEach((i,a)=>{t[n++]=w0(a,i)});let r=new Array(this._edges.size);return n=0,this._edges.forEach((i,a)=>{r[n++]=y0(this.type,a,i)}),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:t,edges:r}}import(t,n=!1){if(t instanceof e)return t.forEachNode((l,c)=>{n?this.mergeNode(l,c):this.addNode(l,c)}),t.forEachEdge((l,c,u,d,h,f,g)=>{n?g?this.mergeUndirectedEdgeWithKey(l,u,d,c):this.mergeDirectedEdgeWithKey(l,u,d,c):g?this.addUndirectedEdgeWithKey(l,u,d,c):this.addDirectedEdgeWithKey(l,u,d,c)}),this;if(!Be(t))throw new $("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(t.attributes){if(!Be(t.attributes))throw new $("Graph.import: invalid attributes. Expecting a plain object.");n?this.mergeAttributes(t.attributes):this.replaceAttributes(t.attributes)}let r,i,a,o,s;if(t.nodes){if(a=t.nodes,!Array.isArray(a))throw new $("Graph.import: invalid nodes. Expecting an array.");for(r=0,i=a.length;r<i;r++){o=a[r],b0(o);let{key:l,attributes:c}=o;n?this.mergeNode(l,c):this.addNode(l,c)}}if(t.edges){let l=!1;if(this.type==="undirected"&&(l=!0),a=t.edges,!Array.isArray(a))throw new $("Graph.import: invalid edges. Expecting an array.");for(r=0,i=a.length;r<i;r++){s=a[r],x0(s);let{source:c,target:u,attributes:d,undirected:h=l}=s,f;"key"in s?(f=n?h?this.mergeUndirectedEdgeWithKey:this.mergeDirectedEdgeWithKey:h?this.addUndirectedEdgeWithKey:this.addDirectedEdgeWithKey,f.call(this,s.key,c,u,d)):(f=n?h?this.mergeUndirectedEdge:this.mergeDirectedEdge:h?this.addUndirectedEdge:this.addDirectedEdge,f.call(this,c,u,d))}}return this}nullCopy(t){let n=new e(Me({},this._options,t));return n.replaceAttributes(Me({},this.getAttributes())),n}emptyCopy(t){let n=this.nullCopy(t);return this._nodes.forEach((r,i)=>{let a=Me({},r.attributes);r=new n.NodeDataClass(i,a),n._nodes.set(i,r)}),n}copy(t){if(t=t||{},typeof t.type=="string"&&t.type!==this.type&&t.type!=="mixed")throw new j(`Graph.copy: cannot create an incompatible copy from "${this.type}" type to "${t.type}" because this would mean losing information about the current graph.`);if(typeof t.multi=="boolean"&&t.multi!==this.multi&&t.multi!==!0)throw new j("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if(typeof t.allowSelfLoops=="boolean"&&t.allowSelfLoops!==this.allowSelfLoops&&t.allowSelfLoops!==!0)throw new j("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");let n=this.emptyCopy(t),r=this._edges.values(),i,a;for(;i=r.next(),i.done!==!0;)a=i.value,Mf(n,"copy",!1,a.undirected,a.key,a.source.key,a.target.key,Me({},a.attributes));return n}toJSON(){return this.export()}toString(){return"[object Graph]"}inspect(){let t={};this._nodes.forEach((a,o)=>{t[o]=a.attributes});let n={},r={};this._edges.forEach((a,o)=>{let s=a.undirected?"--":"->",l="",c=a.source.key,u=a.target.key,d;a.undirected&&c>u&&(d=c,c=u,u=d);let h=`(${c})${s}(${u})`;o.startsWith("geid_")?this.multi&&(typeof r[h]>"u"?r[h]=0:r[h]++,l+=`${r[h]}. `):l+=`[${o}]: `,l+=h,n[l]=a.attributes});let i={};for(let a in this)this.hasOwnProperty(a)&&!Tf.has(a)&&typeof this[a]!="function"&&typeof a!="symbol"&&(i[a]=this[a]);return i.attributes=this._attributes,i.nodes=t,i.edges=n,_t(i,"constructor",this.constructor),i}};typeof Symbol<"u"&&(de.prototype[Symbol.for("nodejs.util.inspect.custom")]=de.prototype.inspect);T0.forEach(e=>{["add","merge","update"].forEach(t=>{let n=e.name(t),r=t==="add"?Mf:R0;e.generateKey?de.prototype[n]=function(i,a,o){return r(this,n,!0,(e.type||this.type)==="undirected",null,i,a,o,t==="update")}:de.prototype[n]=function(i,a,o,s){return r(this,n,!1,(e.type||this.type)==="undirected",i,a,o,s,t==="update")}})});Gk(de);jk(de);c0(de);v0(de);var Ga=class extends de{constructor(t){let n=Me({type:"directed"},t);if("multi"in n&&n.multi!==!1)throw new $("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="directed")throw new $('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},Oa=class extends de{constructor(t){let n=Me({type:"undirected"},t);if("multi"in n&&n.multi!==!1)throw new $("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if(n.type!=="undirected")throw new $('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},Fa=class extends de{constructor(t){let n=Me({multi:!0},t);if("multi"in n&&n.multi!==!0)throw new $("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");super(n)}},$a=class extends de{constructor(t){let n=Me({type:"directed",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new $("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="directed")throw new $('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}},za=class extends de{constructor(t){let n=Me({type:"undirected",multi:!0},t);if("multi"in n&&n.multi!==!0)throw new $("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if(n.type!=="undirected")throw new $('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');super(n)}};function gr(e){e.from=function(t,n){let r=Me({},t.options,n),i=new e(r);return i.import(t),i}}gr(de);gr(Ga);gr(Oa);gr(Fa);gr($a);gr(za);de.Graph=de;de.DirectedGraph=Ga;de.UndirectedGraph=Oa;de.MultiGraph=Fa;de.MultiDirectedGraph=$a;de.MultiUndirectedGraph=za;de.InvalidArgumentsGraphError=$;de.NotFoundGraphError=D;de.UsageGraphError=j;function A0(){return new de({multi:!0,type:"directed"})}function pl(e){let t=A0();for(let n of e.nodes){let{id:r,...i}=n;t.addNode(r,i)}for(let n of e.edges){let{key:r,source:i,target:a,...o}=n;t.addDirectedEdgeWithKey(r,i,a,{source:i,target:a,...o})}return t}function Gf(e,t){let n=0;for(let[r,i]of t)e.hasNode(r)&&(!Number.isFinite(i.x)||!Number.isFinite(i.y)||(e.mergeNodeAttributes(r,{x:i.x,y:i.y}),n++));return n}function fl(e){let t=new Map;return e.forEachNode((n,r)=>{t.set(n,{x:r.x,y:r.y})}),t}var Of=e=>({now:()=>e.performance.now(),request:t=>e.requestAnimationFrame(()=>t()),cancel:t=>e.cancelAnimationFrame(t)});function Ff(e,t,n){let r=null,i=pl({nodes:[],edges:[]}),a=null,o=null,s="neighbourhood",l=new Map,c=0,u=0,d=null,h=0,f=()=>{},g=()=>{},y=()=>{},v=()=>{},w=()=>{},b=null,k=!1,x=L=>{if(b===null)return;let G=b;b=null,r?.setSetting("enableCameraPanning",!0),(L===null||L===G)&&w(G)},S=()=>dd([...fl(i).values()]),O=L=>{let G=gd(a,o,c,s),I=yd(a,o,c,s),M=l;L.setSetting("nodeReducer",(q,Y)=>{let ie={...Y,...G(q,Y,t)};return{...ie,...bd(M.get(q),ie,t,Y.label)}}),L.setSetting("edgeReducer",(q,Y)=>({...Y,...I(q,Y,t)}))},z=()=>{if(n===void 0||d!==null)return;h=n.now();let L=()=>{d=null;let G=n.now();if(c=vd(c,u,G-h),h=G,r!==null&&O(r),c===u){c===0&&(a=null);return}d=n.request(L)};d=n.request(L)};return{mount(L){if(r!==null)return;let G=e(i,L,kd(t));G.on("clickNode",({node:I})=>{k||f(I)}),G.on("doubleClickNode",({node:I,preventSigmaDefault:M})=>{M(),k||f(I)}),G.on("clickStage",()=>f(null)),G.on("downNode",({node:I})=>{b=I,k=!1,r?.setSetting("enableCameraPanning",!1),y(I)}),G.on("moveBody",I=>{b!==null&&(k=!0,I.preventSigmaDefault(),v(b,G.viewportToGraph({x:I.event.x,y:I.event.y})))}),G.on("enterNode",({node:I})=>g(I)),G.on("leaveNode",()=>g(null)),G.on("upNode",()=>x(b)),G.on("upStage",()=>x(null)),O(G),G.setSetting("labelRenderedSizeThreshold",ds(i.order)),G.setCustomBBox(S()),r=G},setGraph(L){i=pl(L),r?.setGraph(i),r?.setSetting("labelRenderedSizeThreshold",ds(i.order)),r?.setCustomBBox(S())},setPositions(L){Gf(i,L),r?.refresh()},setHighlight(L,G=null,I="neighbourhood"){if(n===void 0){a=L,o=G,s=I,c=L===null?0:1,u=c,r!==null&&O(r);return}if(L===null){if(u=0,a===null)return}else a=L,o=G,s=I,u=1;r!==null&&O(r),c!==u&&z()},setTrail(L){l=L,r!==null&&O(r)},onSelect(L){f=L},onHover(L){g=L},onDragStart(L){y=L},onDragMove(L){v=L},onDragEnd(L){w=L},fit(){let L=r;L!==null&&(L.setCustomBBox(S()),L.getCamera().animatedReset().then(()=>{r===L&&L.refresh()},()=>{}))},positions(){return fl(i)},destroy(){d!==null&&(n?.cancel(d),d=null),r?.kill(),r=null}}}var $f=e=>Ff((t,n,r)=>new kf(t,n,r),e,Of(window));function zf(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function C0(e){if(Array.isArray(e))return e}function L0(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(u){c=!0,i=u}finally{try{if(!l&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw i}}return s}}function N0(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
410
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function P0(e,t){return C0(e)||L0(e,t)||D0(e,t)||N0()}function D0(e,t){if(e){if(typeof e=="string")return zf(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zf(e,t):void 0}}var tg=Object.entries,Hf=Object.setPrototypeOf,I0=Object.isFrozen,M0=Object.getPrototypeOf,G0=Object.getOwnPropertyDescriptor,Ge=Object.freeze,He=Object.seal,mr=Object.create,ng=typeof Reflect<"u"&&Reflect,xl=ng.apply,kl=ng.construct;Ge||(Ge=function(t){return t});He||(He=function(t){return t});xl||(xl=function(t,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),a=2;a<r;a++)i[a-2]=arguments[a];return t.apply(n,i)});kl||(kl=function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return new t(...r)});var $n=Ce(Array.prototype.forEach),O0=Ce(Array.prototype.lastIndexOf),Wf=Ce(Array.prototype.pop),li=Ce(Array.prototype.push),F0=Ce(Array.prototype.splice),vr=Array.isArray,di=Ce(String.prototype.toLowerCase),gl=Ce(String.prototype.toString),Uf=Ce(String.prototype.match),ci=Ce(String.prototype.replace),Bf=Ce(String.prototype.indexOf),$0=Ce(String.prototype.trim),z0=Ce(Number.prototype.toString),H0=Ce(Boolean.prototype.toString),Kf=typeof BigInt>"u"?null:Ce(BigInt.prototype.toString),Vf=typeof Symbol>"u"?null:Ce(Symbol.prototype.toString),ot=Ce(Object.prototype.hasOwnProperty),ui=Ce(Object.prototype.toString),qe=Ce(RegExp.prototype.test),Fn=W0(TypeError);function Ce(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return xl(e,t,r)}}function W0(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return kl(e,n)}}function ae(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:di;if(Hf&&Hf(e,null),!vr(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i=="string"){let a=n(i);a!==i&&(I0(t)||(t[r]=a),i=a)}e[i]=!0}return e}function U0(e){for(let t=0;t<e.length;t++)ot(e,t)||(e[t]=null);return e}function vt(e){let t=mr(null);for(let r of tg(e)){var n=P0(r,2);let i=n[0],a=n[1];ot(e,i)&&(vr(a)?t[i]=U0(a):a&&typeof a=="object"&&a.constructor===Object?t[i]=vt(a):t[i]=a)}return t}function B0(e){switch(typeof e){case"string":return e;case"number":return z0(e);case"boolean":return H0(e);case"bigint":return Kf?Kf(e):"0";case"symbol":return Vf?Vf(e):"Symbol()";case"undefined":return ui(e);case"function":case"object":{if(e===null)return ui(e);let t=e,n=It(t,"toString");if(typeof n=="function"){let r=n(t);return typeof r=="string"?r:ui(r)}return ui(e)}default:return ui(e)}}function It(e,t){for(;e!==null;){let r=G0(e,t);if(r){if(r.get)return Ce(r.get);if(typeof r.value=="function")return Ce(r.value)}e=M0(e)}function n(){return null}return n}function K0(e){try{return qe(e,""),!0}catch{return!1}}var jf=Ge(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),ml=Ge(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),vl=Ge(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),V0=Ge(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),wl=Ge(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),j0=Ge(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),qf=Ge(["#text"]),Yf=Ge(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),yl=Ge(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Xf=Ge(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Wa=Ge(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),q0=He(/{{[\w\W]*|^[\w\W]*}}/g),Y0=He(/<%[\w\W]*|^[\w\W]*%>/g),X0=He(/\${[\w\W]*/g),Z0=He(/^data-[\-\w.\u00B7-\uFFFF]+$/),Q0=He(/^aria-[\-\w]+$/),Zf=He(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),J0=He(/^(?:\w+script|data):/i),e_=He(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),t_=He(/^html$/i),n_=He(/^[a-z][.\w]*(-[.\w]+)+$/i),Qf=He(/<[/\w!]/g),Jf=He(/<[/\w]/g),r_=He(/<\/no(script|embed|frames)/i),i_=He(/\/>/i),mt={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},rg=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],a_=Ge(ae({},rg)),o_=(function(){let e={};return $n(rg,t=>{e[t]=He(new RegExp("</"+t+"(?=[\\t\\n\\f\\r />])","i"))}),Ge(e)})(),s_=function(){return typeof window>"u"?null:window},l_=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));let a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}},eg=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},pn=function(t,n,r,i){return ot(t,n)&&vr(t[n])?ae(i.base?vt(i.base):{},t[n],i.transform):r},bl=function(t,n,r){let i=ot(t,n)?t[n]:void 0;return i&&typeof i=="object"?vt(i):r()};function ig(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s_(),t=P=>ig(P);if(t.version="3.4.14",t.removed=[],!e||!e.document||e.document.nodeType!==mt.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,l=e.NodeFilter,c=e.NamedNodeMap;c===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let u=e.DOMParser,d=e.trustedTypes,h=s.prototype,f=It(h,"cloneNode"),g=It(h,"remove"),y=It(h,"nextSibling"),v=It(h,"childNodes"),w=It(h,"parentNode"),b=It(h,"shadowRoot"),k=It(h,"attributes"),x=o&&o.prototype?It(o.prototype,"nodeType"):null,S=o&&o.prototype?It(o.prototype,"nodeName"):null,O=o&&o.prototype?It(o.prototype,"ownerDocument"):null,z=function(m){return x?x(m):m.nodeType},L=function(m){return S?S(m):m.nodeName};if(typeof a=="function"){let P=n.createElement("template");P.content&&P.content.ownerDocument&&(n=P.content.ownerDocument)}let G,I="",M,q=!1,Y=0,ie=function(){if(Y>0)throw Fn('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},oe=function(m){ie(),Y++;try{return G.createHTML(m)}finally{Y--}},ye=function(m){ie(),Y++;try{return G.createScriptURL(m)}finally{Y--}},st=function(){return q||(M=l_(d,i),q=!0),M},Ke=n,be=Ke.implementation,he=Ke.createNodeIterator,Ee=Ke.createDocumentFragment,yt=Ke.getElementsByTagName,pe=r.importNode,te=eg();t.isSupported=typeof tg=="function"&&typeof w=="function"&&be&&be.createHTMLDocument!==void 0;let Ve=q0,Zt=Y0,lt=X0,C=Z0,K=Q0,Q=J0,ge=e_,Le=n_,We=Zf,ne=null,St=ae({},[...jf,...ml,...vl,...wl,...qf]),se=null,yr=ae({},[...Yf,...yl,...Xf,...Wa]),ct=Object.seal(mr(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ut=null,br=null,bt=Object.seal(mr(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),xr=!0,Hn=!0,gi=!1,mi=!0,Ye=!1,Et=!0,dt=!1,kr=!1,ht=null,Ne=null,Ue=!1,zt=!1,Te=!1,Rt=!1,Qt=!0,Wn=!1,vi="user-content-",_r=!0,At=!1,Jt={},Oe=null,en=ae({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),Ct=null,pt=ae({},["audio","video","img","source","image","track"]),wi=null,Un=ae({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),fn="http://www.w3.org/1998/Math/MathML",Bn="http://www.w3.org/2000/svg",xt="http://www.w3.org/1999/xhtml",tn=xt,Tr=!1,Sr=null,io=ae({},[fn,Bn,xt],gl),Er=Ge(["mi","mo","mn","ms","mtext"]),Kn=ae({},Er),Rr=Ge(["annotation-xml"]),Vn=ae({},Rr),yi=ae({},["title","style","font","a","script"]),gn=null,bi=["application/xhtml+xml","text/html"],jn="text/html",xe=null,nn=null,xi=n.createElement("form"),Ar=function(m){return m instanceof RegExp||m instanceof Function},qn=function(){let m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(nn&&nn===m)return;(!m||typeof m!="object")&&(m={}),m=vt(m),gn=bi.indexOf(m.PARSER_MEDIA_TYPE)===-1?jn:m.PARSER_MEDIA_TYPE,xe=gn==="application/xhtml+xml"?gl:di,ne=pn(m,"ALLOWED_TAGS",St,{transform:xe}),se=pn(m,"ALLOWED_ATTR",yr,{transform:xe}),Sr=pn(m,"ALLOWED_NAMESPACES",io,{transform:gl}),wi=pn(m,"ADD_URI_SAFE_ATTR",Un,{transform:xe,base:Un}),Ct=pn(m,"ADD_DATA_URI_TAGS",pt,{transform:xe,base:pt}),Oe=pn(m,"FORBID_CONTENTS",en,{transform:xe}),ut=pn(m,"FORBID_TAGS",vt({}),{transform:xe}),br=pn(m,"FORBID_ATTR",vt({}),{transform:xe}),Jt=ot(m,"USE_PROFILES")?m.USE_PROFILES&&typeof m.USE_PROFILES=="object"?vt(m.USE_PROFILES):m.USE_PROFILES:!1,xr=m.ALLOW_ARIA_ATTR!==!1,Hn=m.ALLOW_DATA_ATTR!==!1,gi=m.ALLOW_UNKNOWN_PROTOCOLS||!1,mi=m.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Ye=m.SAFE_FOR_TEMPLATES||!1,Et=m.SAFE_FOR_XML!==!1,dt=m.WHOLE_DOCUMENT||!1,zt=m.RETURN_DOM||!1,Te=m.RETURN_DOM_FRAGMENT||!1,Rt=m.RETURN_TRUSTED_TYPE||!1,Ue=m.FORCE_BODY||!1,Qt=m.SANITIZE_DOM!==!1,Wn=m.SANITIZE_NAMED_PROPS||!1,_r=m.KEEP_CONTENT!==!1,At=m.IN_PLACE||!1,We=K0(m.ALLOWED_URI_REGEXP)?m.ALLOWED_URI_REGEXP:Zf,tn=typeof m.NAMESPACE=="string"?m.NAMESPACE:xt,Kn=bl(m,"MATHML_TEXT_INTEGRATION_POINTS",()=>ae({},Er)),Vn=bl(m,"HTML_INTEGRATION_POINTS",()=>ae({},Rr));let T=bl(m,"CUSTOM_ELEMENT_HANDLING",()=>mr(null));if(ct=mr(null),ot(T,"tagNameCheck")&&Ar(T.tagNameCheck)&&(ct.tagNameCheck=T.tagNameCheck),ot(T,"attributeNameCheck")&&Ar(T.attributeNameCheck)&&(ct.attributeNameCheck=T.attributeNameCheck),ot(T,"allowCustomizedBuiltInElements")&&typeof T.allowCustomizedBuiltInElements=="boolean"&&(ct.allowCustomizedBuiltInElements=T.allowCustomizedBuiltInElements),He(ct),Ye&&(Hn=!1),Te&&(zt=!0),Jt&&(ne=ae({},qf),se=mr(null),Jt.html===!0&&(ae(ne,jf),ae(se,Yf)),Jt.svg===!0&&(ae(ne,ml),ae(se,yl),ae(se,Wa)),Jt.svgFilters===!0&&(ae(ne,vl),ae(se,yl),ae(se,Wa)),Jt.mathMl===!0&&(ae(ne,wl),ae(se,Xf),ae(se,Wa))),bt.tagCheck=null,bt.attributeCheck=null,ot(m,"ADD_TAGS")&&(typeof m.ADD_TAGS=="function"?bt.tagCheck=m.ADD_TAGS:vr(m.ADD_TAGS)&&(ne===St&&(ne=vt(ne)),ae(ne,m.ADD_TAGS,xe))),ot(m,"ADD_ATTR")&&(typeof m.ADD_ATTR=="function"?bt.attributeCheck=m.ADD_ATTR:vr(m.ADD_ATTR)&&(se===yr&&(se=vt(se)),ae(se,m.ADD_ATTR,xe))),ot(m,"ADD_FORBID_CONTENTS")&&vr(m.ADD_FORBID_CONTENTS)&&(Oe===en&&(Oe=vt(Oe)),ae(Oe,m.ADD_FORBID_CONTENTS,xe)),_r&&(ne["#text"]=!0),dt&&ae(ne,["html","head","body"]),ne.table&&(ae(ne,["tbody"]),delete ut.tbody),m.TRUSTED_TYPES_POLICY){if(typeof m.TRUSTED_TYPES_POLICY.createHTML!="function")throw Fn('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof m.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Fn('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let E=G;G=m.TRUSTED_TYPES_POLICY;try{I=oe("")}catch(F){throw G=E,F}}else m.TRUSTED_TYPES_POLICY===null?(G=void 0,I=""):(G===void 0&&(G=st()),G&&typeof I=="string"&&(I=oe("")));Ge&&Ge(m),nn=m},Cr=ae({},[...ml,...vl,...V0]),ki=ae({},[...wl,...j0]),_=function(m,T,E){return T.namespaceURI===xt?m==="svg":T.namespaceURI===fn?m==="svg"&&(E==="annotation-xml"||Kn[E]):!!Cr[m]},R=function(m,T,E){return T.namespaceURI===xt?m==="math":T.namespaceURI===Bn?m==="math"&&Vn[E]:!!ki[m]},U=function(m,T,E){return T.namespaceURI===Bn&&!Vn[E]||T.namespaceURI===fn&&!Kn[E]?!1:!ki[m]&&(yi[m]||!Cr[m])},J=function(m){let T=w(m);(!T||!T.tagName)&&(T={namespaceURI:tn,tagName:"template"});let E=di(m.tagName),F=di(T.tagName);return Sr[m.namespaceURI]?m.namespaceURI===Bn?_(E,T,F):m.namespaceURI===fn?R(E,T,F):m.namespaceURI===xt?U(E,T,F):!!(gn==="application/xhtml+xml"&&Sr[m.namespaceURI]):!1},N=function(m){li(t.removed,{element:m});try{w(m).removeChild(m)}catch{if(g(m),!w(m))throw Fn("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Z=function(m,T,E){try{m.removeAttributeNode(T)}catch{try{m.removeAttribute(E)}catch{}}},Pe=function(m){mn(m);let T=v(m);if(T){let F=[];$n(T,W=>{li(F,W)}),$n(F,W=>{try{g(W)}catch{}})}let E=k(m);if(E)for(let F=E.length-1;F>=0;--F){let W=E[F],X=W&&W.name;typeof X=="string"&&Z(m,W,X)}},et=function(m,T,E){if(!E)try{E=T.getAttributeNode(m)}catch{E=null}li(t.removed,{attribute:E||null,from:T});try{E?T.removeAttributeNode(E):T.removeAttribute(m)}catch{try{T.removeAttribute(m)}catch{}}if(m==="is")if(zt||Te)try{N(T)}catch{}else try{T.setAttribute(m,"")}catch{}},_i=function(m){let T=k(m);if(T)for(let E=T.length-1;E>=0;--E){let F=T[E],W=F&&F.name;typeof W!="string"||se[xe(W)]||Z(m,F,W)}},mn=function(m){let T=[m];for(;T.length>0;){let E=T.pop();z(E)===mt.element&&_i(E);let W=v(E);if(W)for(let X=W.length-1;X>=0;--X)T.push(W[X])}},Ti=function(m,T){return Et?m==="patchsrc"?!0:m==="for"&&T!=="label"&&T!=="output":!1},Om=function(m){if(!Et)return;let T=[m];for(;T.length>0;){let E=T.pop(),F=z(E);if(F===mt.processingInstruction||F===mt.comment&&qe(Jf,E.data)){try{g(E)}catch{}continue}if(F===mt.element){let X=E,me=xe(L(E));try{X.hasAttribute&&X.hasAttribute("patchsrc")&&X.removeAttribute("patchsrc"),X.hasAttribute&&X.hasAttribute("for")&&Ti("for",me)&&X.removeAttribute("for")}catch{}}let W=v(E);if(W)for(let X=W.length-1;X>=0;--X)T.push(W[X])}},Hl=function(m){let T=null,E=null;if(Ue)m="<remove></remove>"+m;else{let X=Uf(m,/^[\r\n\t ]+/);E=X&&X[0]}gn==="application/xhtml+xml"&&tn===xt&&(m='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+m+"</body></html>");let F=G?oe(m):m;if(tn===xt)try{T=new u().parseFromString(F,gn)}catch{}if(!T||!T.documentElement){T=be.createDocument(tn,"template",null);try{T.documentElement.innerHTML=Tr?I:F}catch{}}let W=T.body||T.documentElement;return m&&E&&W.insertBefore(n.createTextNode(E),W.childNodes[0]||null),tn===xt?yt.call(T,dt?"html":"body")[0]:dt?T.documentElement:W},Wl=function(m){let T=O?O(m):m.ownerDocument;return he.call(T||m,m,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT|l.SHOW_PROCESSING_INSTRUCTION|l.SHOW_CDATA_SECTION,null)},Si=function(m){return m=ci(m,Ve," "),m=ci(m,Zt," "),m=ci(m,lt," "),m},ao=function(m){var T;m.normalize();let E=O?O(m):m.ownerDocument,F=he.call(E||m,m,l.SHOW_TEXT|l.SHOW_COMMENT|l.SHOW_CDATA_SECTION|l.SHOW_PROCESSING_INSTRUCTION,null),W=F.nextNode();for(;W;)W.data=Si(W.data),W=F.nextNode();let X=(T=m.querySelectorAll)===null||T===void 0?void 0:T.call(m,"template");X&&$n(X,me=>{Yn(me.content)&&ao(me.content)})},Ei=function(m){let T=S?S(m):null;return typeof T!="string"||xe(T)!=="form"?!1:typeof m.nodeName!="string"||typeof m.textContent!="string"||typeof m.removeChild!="function"||m.attributes!==k(m)||typeof m.removeAttribute!="function"||typeof m.setAttribute!="function"||typeof m.namespaceURI!="string"||typeof m.insertBefore!="function"||typeof m.hasChildNodes!="function"||m.nodeType!==x(m)||m.childNodes!==v(m)},Yn=function(m){if(!x||typeof m!="object"||m===null)return!1;try{return x(m)===mt.documentFragment}catch{return!1}},Lr=function(m){if(!x||typeof m!="object"||m===null)return!1;try{return typeof x(m)=="number"}catch{return!1}};function Mt(P,m,T){P.length!==0&&$n(P,E=>{E.call(t,m,T,nn)})}let Fm=function(m,T){return!!(Et&&m.hasChildNodes()&&!Lr(m.firstElementChild)&&qe(Qf,m.textContent)&&qe(Qf,m.innerHTML)||Et&&m.namespaceURI===xt&&a_[T]&&(Lr(m.firstElementChild)||typeof m.textContent=="string"&&qe(o_[T],m.textContent))||m.nodeType===mt.processingInstruction||Et&&m.nodeType===mt.comment&&qe(Jf,m.data))},Ri=function(m,T){if(m instanceof RegExp)return qe(m,T);if(m instanceof Function){for(var E=arguments.length,F=new Array(E>2?E-2:0),W=2;W<E;W++)F[W-2]=arguments[W];return!!m(T,...F)}return!1},$m=function(m,T,E){if(!ut[T]&&jl(T)&&Ri(ct.tagNameCheck,T))return!1;if(_r&&!Oe[T]){let F=w(m),W=v(m);if(W&&F){let X=W.length;for(let me=X-1;me>=0;--me){let ke=m===E?f(W[me],!0):W[me];F.insertBefore(ke,y(m))}}}return N(m),!0},Ul=function(m,T,E,F){return m.length===0?T:T===E||T===F?vt(T):T},Bl=function(m,T){return m===T||w(m)!==null?!1:(At&&mn(m),!0)},Kl=function(m,T){if(Mt(te.beforeSanitizeElements,m,null),Bl(m,T))return!0;if(Ei(m))return N(m),!0;let E=xe(L(m));if(ne=Ul(te.uponSanitizeElement,ne,St,ht),Mt(te.uponSanitizeElement,m,{tagName:E,allowedTags:ne}),Bl(m,T))return!0;if(Fm(m,E))return N(m),!0;if(ut[E]||!(bt.tagCheck instanceof Function&&bt.tagCheck(E))&&!ne[E]){let W=$m(m,E,T);return W===!1&&Mt(te.afterSanitizeElements,m,null),W}if(z(m)===mt.element&&!J(m)||(E==="noscript"||E==="noembed"||E==="noframes")&&qe(r_,m.innerHTML))return N(m),!0;if(Ye&&m.nodeType===mt.text){let W=Si(m.textContent);m.textContent!==W&&(li(t.removed,{element:m.cloneNode()}),m.textContent=W)}return Mt(te.afterSanitizeElements,m,null),!1},Vl=function(m,T,E){if(br[T]||Ti(T,m)||Qt&&(T==="id"||T==="name")&&(E in n||E in xi))return!1;let F=se[T]||bt.attributeCheck instanceof Function&&bt.attributeCheck(T,m);return Hn&&qe(C,T)||xr&&qe(K,T)?!0:F?wi[T]||qe(We,ci(E,ge,""))||(T==="src"||T==="xlink:href"||T==="href")&&m!=="script"&&Bf(E,"data:")===0&&Ct[m]||gi&&!qe(Q,ci(E,ge,""))?!0:!E:jl(m)&&Ri(ct.tagNameCheck,m)&&Ri(ct.attributeNameCheck,T,m)||T==="is"&&ct.allowCustomizedBuiltInElements&&Ri(ct.tagNameCheck,E)},zm=ae({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),jl=function(m){return!zm[di(m)]&&qe(Le,m)},Hm=function(m,T,E,F){if(G&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!E)switch(d.getAttributeType(m,T)){case"TrustedHTML":return oe(F);case"TrustedScriptURL":return ye(F)}return F},Wm=function(m,T,E,F){try{E?m.setAttributeNS(E,T,F):m.setAttribute(T,F),Ei(m)?N(m):Wf(t.removed)}catch{et(T,m)}},ql=function(m){Mt(te.beforeSanitizeAttributes,m,null);let T=m.attributes;if(!T||Ei(m))return;se=Ul(te.uponSanitizeAttribute,se,yr,Ne);let E={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:se,forceKeepAttr:void 0},F=T.length,W=xe(m.nodeName);for(;F--;){let X=T[F],me=X.name,ke=X.namespaceURI,tt=X.value,nt=xe(me),so=tt,Xe=me==="value"?so:$0(so);if(E.attrName=nt,E.attrValue=Xe,E.keepAttr=!0,E.forceKeepAttr=void 0,Mt(te.uponSanitizeAttribute,m,E),Xe=E.attrValue,Wn&&(nt==="id"||nt==="name")&&Bf(Xe,vi)!==0&&(et(me,m,X),Xe=vi+Xe),Et&&qe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Xe)){et(me,m,X);continue}if(nt==="attributename"&&Uf(Xe,"href")){et(me,m,X);continue}if(!E.forceKeepAttr){if(!E.keepAttr){et(me,m,X);continue}if(!mi&&qe(i_,Xe)){et(me,m,X);continue}if(Ye&&(Xe=Si(Xe)),!Vl(W,nt,Xe)){et(me,m,X);continue}Xe=Hm(W,nt,ke,Xe),Xe!==so&&Wm(m,me,ke,Xe)}}Mt(te.afterSanitizeAttributes,m,null)},Ai=function(m){let T=null,E=Wl(m);for(Mt(te.beforeSanitizeShadowDOM,m,null);T=E.nextNode();)if(Mt(te.uponSanitizeShadowNode,T,null),Kl(T,m),ql(T),Yn(T.content)&&Ai(T.content),z(T)===mt.element){let F=b(T);Yn(F)&&(oo(F),Ai(F))}Mt(te.afterSanitizeShadowDOM,m,null)},oo=function(m){let T=[{node:m,shadow:null}];for(;T.length>0;){let E=T.pop();if(E.shadow){Ai(E.shadow);continue}let F=E.node,X=z(F)===mt.element,me=v(F);if(me)for(let ke=me.length-1;ke>=0;--ke)T.push({node:me[ke],shadow:null});if(X){let ke=S?S(F):null;if(typeof ke=="string"&&xe(ke)==="template"){let tt=F.content;Yn(tt)&&T.push({node:tt,shadow:null})}}if(X){let ke=b(F);Yn(ke)&&T.push({node:null,shadow:ke},{node:ke,shadow:null})}}};return t.sanitize=function(P){let m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=null,E=null,F=null,W=null;if(Tr=!P,Tr&&(P="<!-->"),typeof P!="string"&&!Lr(P)&&(P=B0(P),typeof P!="string"))throw Fn("dirty is not a string, aborting");if(!t.isSupported)return P;kr?(ne=ht,se=Ne):qn(m),(te.uponSanitizeElement.length>0||te.uponSanitizeAttribute.length>0)&&(ne=vt(ne)),te.uponSanitizeAttribute.length>0&&(se=vt(se)),t.removed=[];let X=At&&typeof P!="string"&&Lr(P);if(X){Om(P);let tt=L(P);if(typeof tt=="string"){let nt=xe(tt);if(!ne[nt]||ut[nt])throw Pe(P),Fn("root node is forbidden and cannot be sanitized in-place")}if(Ei(P))throw Pe(P),Fn("root node is clobbered and cannot be sanitized in-place");try{oo(P)}catch(nt){throw Pe(P),nt}}else if(Lr(P))T=Hl("<!---->"),E=T.ownerDocument.importNode(P,!0),E.nodeType===mt.element&&E.nodeName==="BODY"||E.nodeName==="HTML"?T=E:T.appendChild(E),oo(E);else{if(!zt&&!Ye&&!dt&&P.indexOf("<")===-1)return G&&Rt?oe(P):P;if(T=Hl(P),!T)return zt?null:Rt?I:""}T&&Ue&&N(T.firstChild);let me=X?P:T;try{let tt=Wl(me);for(;F=tt.nextNode();)Kl(F,me),ql(F),Yn(F.content)&&Ai(F.content)}catch(tt){throw X&&(Pe(P),$n(t.removed,nt=>{nt.element&&mn(nt.element)})),tt}if(X)return $n(t.removed,tt=>{tt.element&&mn(tt.element)}),Ye&&ao(P),P;if(zt){if(Ye&&ao(T),Te)for(W=Ee.call(T.ownerDocument);T.firstChild;)W.appendChild(T.firstChild);else W=T;return(se.shadowroot||se.shadowrootmode)&&(W=pe.call(r,W,!0)),W}let ke=dt?T.outerHTML:T.innerHTML;return dt&&ne["!doctype"]&&T.ownerDocument&&T.ownerDocument.doctype&&T.ownerDocument.doctype.name&&qe(t_,T.ownerDocument.doctype.name)&&(ke="<!DOCTYPE "+T.ownerDocument.doctype.name+`>
411
+ `+ke),Ye&&(ke=Si(ke)),G&&Rt?oe(ke):ke},t.setConfig=function(){let P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qn(P),kr=!0,ht=ne,Ne=se},t.clearConfig=function(){nn=null,kr=!1,ht=null,Ne=null,G=M,I=""},t.isValidAttribute=function(P,m,T){nn||qn({});let E=xe(P),F=xe(m);return Vl(E,F,T)},t.addHook=function(P,m){typeof m=="function"&&ot(te,P)&&li(te[P],m)},t.removeHook=function(P,m){if(ot(te,P)){if(m!==void 0){let T=O0(te[P],m);return T===-1?void 0:F0(te[P],T,1)[0]}return Wf(te[P])}},t.removeHooks=function(P){ot(te,P)&&(te[P]=[])},t.removeAllHooks=function(){te=eg()},t}var _l=ig();function Ua(e=Date.now){let t=new Map,n=new Map,r=new Set,i=0,a=()=>r.forEach(s=>s()),o=s=>s.body!==s.baseline||s.raw!==s.rawBaseline;return{get:s=>t.get(s)??null,subscribe(s){return r.add(s),()=>r.delete(s)},open(s,l){if(t.has(s))return;let{head:c,tail:u}=tr(l),{entries:d}=Gr(u);t.set(s,{body:c,baseline:c,tail:u,raw:d,rawBaseline:d,saving:!1,original:c,originalRaw:d,savedAt:null,failed:!1}),a()},edit(s,l){let c=t.get(s);c===void 0||c.body===l||(c.body=l,c.failed=!1,a())},editRaw(s,l){let c=t.get(s);c===void 0||c.raw===l||(c.raw=l,c.failed=!1,a())},syncTail(s,l){let c=t.get(s);if(c===void 0||c.saving||c.raw!==c.rawBaseline)return;let{tail:u}=tr(l);if(u===c.tail)return;let{entries:d}=Gr(u);c.originalRaw===c.rawBaseline?c.originalRaw=d:d.startsWith(c.rawBaseline)&&(c.originalRaw+=d.slice(c.rawBaseline.length)),c.tail=u,c.raw=d,c.rawBaseline=d,a()},discard(s){t.delete(s)&&a()},isDirty(s){let l=t.get(s);return l!==void 0&&o(l)},dirtySlugs(){return[...t].filter(([,s])=>o(s)).map(([s])=>s)},revert(s){let l=t.get(s);return l===void 0?!1:(l.body=l.original,l.raw=l.originalRaw,a(),o(l))},async save(s,l,c){let u=t.get(s);if(u===void 0||u.saving||n.get(s)?.saving)return;let d=u.body,h=u.raw,f=h!==u.rawBaseline,g=f?zo(Gr(u.tail).opening,h):u.tail,y=$o(d,g);u.saving=!0,a();let v=!1;try{let w={...f?{raw:!0}:{},...c?.keepOpen?{quiet:!0}:{}};v=await l(s,y,Object.keys(w).length===0?void 0:w)}finally{if(t.get(s)===u){let w=n.get(s);v&&w!==void 0&&(w.body=y,w.version=++i,delete w.pending),v&&!c?.keepOpen&&u.body===d&&u.raw===h?t.delete(s):(v&&(u.baseline=d,u.rawBaseline=h,u.tail=g,u.savedAt=e()),u.failed=!v,u.saving=!1),a()}}},nextLoadVersion(){return++i},getTaskBody(s,l){return n.get(s)?.body??l},taskBody(s,l,c){let u=n.get(s),d=!1;return u===void 0?(u={body:l,version:c,saving:!1},n.set(s,u)):c>u.version&&(u.saving?(u.pending===void 0||c>u.pending.version)&&(u.pending={body:l,version:c}):(d=u.body!==l,u.body=l,u.version=c)),d&&a(),u.body},isTaskSaving:s=>n.get(s)?.saving??!1,async saveTask(s,l,c){let u=n.get(s);if(u===void 0||u.saving||t.get(s)?.saving)return!1;u.saving=!0,a();let d=!1;try{return d=await c(s,l),d}finally{n.get(s)===u&&(d?(u.body=l,u.version=++i):u.pending!==void 0&&u.pending.version>u.version&&(u.body=u.pending.body,u.version=u.pending.version),delete u.pending,u.saving=!1,a())}},clearTaskSources(s){let l=!1;for(let c of s)l=n.delete(c)||l;l&&a()}}}function ag(e,t,n,r){let i=new Set(t.panes.flatMap(s=>s.tabs.map(Gt))),a=new Set(n.panes.flatMap(s=>s.tabs.map(Gt))),o=[...i].filter(s=>s!==null&&s.startsWith("note:")&&!a.has(s)).map(s=>s.slice(5));return o.some(s=>e.isDirty(s))&&!r()?!1:(o.forEach(s=>e.discard(s)),e.clearTaskSources(o),!0)}function og(e,t,n){let r=new Set(t);return e.dirtySlugs().filter(a=>r.has(a)).length>0&&!n()?!1:(r.forEach(a=>e.discard(a)),e.clearTaskSources([...r]),!0)}var hi="",Ba="",sg=900;function Sl(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&e.charCodeAt(r)===t.charCodeAt(r);)r++;let i=0;for(;i<n-r&&e.charCodeAt(e.length-1-i)===t.charCodeAt(t.length-1-i);)i++;return{start:r,end:t.length-i,removed:e.length-i-r}}var c_=/^[ \t]*(?:#{1,6}[ \t]+|>[ \t]?|(?:[*+-]|\d{1,9}[.)])[ \t]+(?:\[[ xX]\][ \t]+)?)*/,u_=/^[ \t]*(?:`{3,}|~{3,}|<!--|(?:[-*_][ \t]*){3,}$)/,d_=/!?\[\[[^\]\n]*\]\]|!?\[[^\]\n]*\]\([^)\n]*\)|<[a-z][a-z0-9+.-]*:[^>\s]*>/gi;function h_(e,t){let{start:n,end:r}=Sl(e??"",t);if(n>=r)return t;let i=[],a=t.lastIndexOf(`
412
+ `,n-1)+1;for(;a<r;){let s=t.indexOf(`
413
+ `,a),l=s===-1?t.length:s,c=t.slice(a,l);if(!u_.test(c)){let u=c_.exec(c)[0].length,d=Math.max(n-a,u),h=Math.min(r,l)-a;for(let f of c.matchAll(d_)){let g=f.index+f[0].length;d>f.index&&d<g&&(d=f.index),h>f.index&&h<g&&(h=g)}c.slice(d,h).trim()!==""&&i.push([a+d,a+h])}a=l+1}let o=t;for(let[s,l]of i.reverse())o=o.slice(0,s)+hi+o.slice(s,l)+Ba+o.slice(l);return o}function lg(e,t){let n=[],r="",i=t;for(let a of e)a===hi||a===Ba?(r!==""&&n.push({text:r,marked:i}),r="",i=a===hi):r+=a;return r!==""&&n.push({text:r,marked:i}),{parts:n,inside:i}}var p_={human:"You",agent:"Agent",outside:"Outside edit",system:"pi-weave"},f_={create:"created the note",edit:"edited",append:"added to the note",raw:"added words to Raw",finalize:"rewrote the summary",generate:"generated the note",repair:"fixed links",outside:"changed outside pi-weave",baseline:"earliest saved version"};function g_(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;let r=n.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"});return t!==null&&new Date(t).toDateString()===n.toDateString()?r:`${n.toLocaleDateString(void 0,{month:"short",day:"numeric"})}, ${r}`}function m_(e,t){let{head:n,tail:r}=tr(e);return r!==""&&t>=n.length}function Ka(e,t){if(e.length===0)return null;let n=Math.max(0,Math.min(e.length-1,t)),r=e[n],i=n===0?null:e[n-1],a=Sl(i?.body??"",r.body),o=a.end-a.start,s=[o>0?`+${o}`:"",a.removed>0?`−${a.removed}`:""].filter(Boolean).join(" "),l=f_[r.op]??r.op;return{position:`${n+1} of ${e.length}`,action:r.op==="baseline"?l[0].toUpperCase()+l.slice(1):`${p_[r.by]} ${l}`,at:g_(r.at,i?.at??null),atIso:r.at,change:s,marked:h_(i?.body??null,r.body),by:r.by,follow:!m_(r.body,a.start)}}var Tl=.14;function cg(e){let t=e.map((r,i)=>{let a=Sl(i===0?"":e[i-1].body,r.body);return a.end-a.start+a.removed}),n=Math.log1p(Math.max(0,...t));return e.map((r,i)=>({height:n===0?Tl:Tl+(1-Tl)*(Math.log1p(t[i])/n),by:r.by}))}function ug(e,t){let n=new Date(t),r=new Date(t-864e5),i=Math.max(1,e.length-1),a=[],o="";return e.forEach((s,l)=>{let c=new Date(s.at);if(Number.isNaN(c.getTime()))return;let u=c.toDateString();if(u===o)return;o=u;let d=u===n.toDateString()?"Today":u===r.toDateString()?"Yesterday":c.toLocaleDateString(void 0,{month:"short",day:"numeric"});a.push({at:e.length===1?0:l/i,label:d})}),a}function dg(e,t){return e+1<t?e+1:null}var hg="History",pg="Close history",El="History is off, so new changes are not being saved. Turn it on in Settings → Editor.",fg="Older versions were trimmed",gg="No saved versions yet. Changes are saved from now on.";function mg(e){let t=e.ownerDocument.createTreeWalker(e,NodeFilter.SHOW_TEXT),n=[];for(let a=t.nextNode();a!==null;a=t.nextNode())n.push(a);let r=!1,i=null;for(let a of n){let o=a.data;if(!r&&!o.includes(hi)&&!o.includes(Ba))continue;let s=lg(o,r);r=s.inside;let l=e.ownerDocument.createDocumentFragment();for(let c of s.parts){let u=e.ownerDocument.createTextNode(c.text);if(!c.marked){l.append(u);continue}let d=e.ownerDocument.createElement("mark");d.className="weave-replay-mark",d.append(u),l.append(d),i??=d}a.replaceWith(l)}return i}var v_=160,pi=e=>p("svg",{width:"14",height:"14",viewBox:"0 0 18 18","aria-hidden":"true",fill:e.fill?"currentColor":"none",stroke:e.fill?"none":"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round",children:p("path",{d:e.d})});function vg(e){let{revisions:t,index:n,playing:r,enabled:i,trimmed:a,error:o}=e.state,s=V(null),l=t===null?0:t.length-1;if(Fe(()=>{s.current?.style.setProperty("--weave-replay-at",`${l===0?100:n/l*100}%`)},[n,l]),o!==null)return p("div",{class:"weave-replay weave-replay-note",role:"status",children:o});if(t===null)return p("div",{class:"weave-replay weave-replay-note",role:"status",children:"Loading history…"});let c=Ka(t,n);return c===null?p("div",{class:"weave-replay weave-replay-note",role:"status",children:i?gg:El}):p("div",{class:"weave-replay",role:"group","aria-label":"Note history",children:[p("p",{class:"weave-replay-caption","aria-live":"polite",children:[p("span",{class:"weave-replay-clock",children:p(pi,{d:"M9 3a6 6 0 1 0 0 12A6 6 0 0 0 9 3zM9 5.5V9l2.5 1.5"})}),p("span",{class:"weave-replay-position",children:["Version ",c.position]}),p("span",{class:`weave-replay-who weave-replay-${c.by}`,children:c.action}),p("span",{class:"weave-replay-time",title:c.atIso,children:c.at}),c.change===""?null:p("span",{class:"weave-replay-change",children:c.change}),a&&n===0?p("span",{class:"weave-replay-time",children:fg}):null]}),p("div",{class:"weave-replay-controls",children:[p("button",{type:"button","aria-label":"Previous version",disabled:n<=0,onClick:()=>e.onIndex(n-1),children:p(pi,{d:"m11 4-5 5 5 5"})}),p("button",{type:"button",class:"weave-replay-play","aria-label":r?"Pause replay":"Play replay",disabled:l===0,onClick:e.onPlay,children:r?p(pi,{d:"M5 4h3v10H5zM10 4h3v10h-3z",fill:!0}):p(pi,{d:"M6 4v10l8-5z",fill:!0})}),p("button",{type:"button","aria-label":"Next version",disabled:n>=l,onClick:()=>e.onIndex(n+1),children:p(pi,{d:"m7 4 5 5-5 5"})}),p("div",{class:"weave-replay-track",ref:s,children:[t.length>v_||l===0?null:p("span",{class:"weave-replay-bars","aria-hidden":"true",style:{"--weave-bars":`${t.length}`},children:cg(t).map((u,d)=>p("span",{style:{"--weave-bar":`${Math.round(u.height*100)}%`,"--weave-bar-at":`${d/l*100}%`},class:`weave-replay-bar weave-replay-${u.by}${d>n?" weave-replay-ahead":""}${d===n?" weave-replay-current":""}`},d))}),l===0?null:p("span",{class:"weave-replay-days","aria-hidden":"true",children:ug(t,e.now).map(u=>p("span",{class:"weave-replay-day",style:{"--weave-day-at":`${u.at*100}%`},children:u.label},u.at))}),p("input",{class:"weave-replay-slider",type:"range","aria-label":"Version","aria-valuetext":`${c.position}: ${c.action}`,min:0,max:l,step:1,value:n,disabled:l===0,onInput:u=>e.onIndex(Number(u.currentTarget.value))})]})]}),i?null:p("p",{class:"weave-replay-hint",children:El})]})}var Rl="Editing",kg="Discard changes",_g="Retry",Tg="Put this note back the way it was when you started editing?";function w_(e){return new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}function Sg(e){return e.saving?{kind:"saving",label:"Saving…"}:e.failed?{kind:"failed",label:"Not saved"}:e.dirty?{kind:"pending",label:"Unsaved changes"}:e.savedAt!==null?{kind:"saved",label:`Saved ${w_(e.savedAt)}`}:{kind:"clean",label:"No changes yet"}}var Al=[{kind:"heading",icon:"heading",label:"Heading",key:null},{kind:"bold",icon:"bold",label:"Bold",key:"b"},{kind:"italic",icon:"italic",label:"Italic",key:"i"},{kind:"link",icon:"link",label:"Link",key:null},{kind:"wikilink",icon:"wikilink",label:"Link to a note",key:null},{kind:"task",icon:"task",label:"Task",key:null}];function Eg(e){return Al.find(t=>t.key===e.toLowerCase())?.kind??null}function Va(e,t,n,r){let i=e.value.slice(e.start,e.end),a=i===""?r:i;return{value:e.value.slice(0,e.start)+t+a+n+e.value.slice(e.end),start:e.start+t.length,end:e.start+t.length+a.length}}function wg(e,t){let n=e.value.lastIndexOf(`
414
+ `,e.start-1)+1,r=e.end>e.start&&e.value[e.end-1]===`
415
+ `?e.end-1:e.end,i=e.value.indexOf(`
416
+ `,r),a=i===-1?e.value.length:i,o=e.value.slice(n,a).split(`
417
+ `).map(t).join(`
418
+ `);return{value:e.value.slice(0,n)+o+e.value.slice(a),start:n,end:n+o.length}}var yg=/^#{1,6}[ \t]+/,bg=/^([ \t]*)[-*+][ \t]+\[[ xX]\][ \t]+/,xg=/^([ \t]*)[-*+][ \t]+/;function Rg(e,t){switch(t){case"bold":return Va(e,"**","**","bold text");case"italic":return Va(e,"_","_","italic text");case"wikilink":return Va(e,"[[","]]","note title");case"link":{let n=e.value.slice(e.start,e.end);if(n==="")return Va(e,"[","](https://)","link text");let r=`${e.value.slice(0,e.start)}[${n}](https://)${e.value.slice(e.end)}`,i=e.start+n.length+3;return{value:r,start:i,end:i+8}}case"heading":return wg(e,n=>yg.test(n)?n.replace(yg,""):`## ${n}`);case"task":return wg(e,n=>bg.test(n)?n.replace(bg,"$1"):xg.test(n)?n.replace(xg,"$1- [ ] "):`- [ ] ${n}`)}}function Ag(e,t){let n=Math.min(e.length,t.length),r=0;for(;r<n&&e.charCodeAt(r)===t.charCodeAt(r);)r++;let i=0;for(;i<n-r&&e.charCodeAt(e.length-1-i)===t.charCodeAt(t.length-1-i);)i++;return{start:r,end:e.length-i,text:t.slice(r,t.length-i)}}var b_="weave-preview-x",x_="weave-preview-y";function k_({view:e,open:t,editing:n,taskSaving:r,onEdit:i,replaying:a,onHistory:o}){return p("header",{class:"weave-note-head",children:[p("p",{class:"weave-note-crumb",children:[p(ce,{name:"folder",class:"weave-icon"}),e.folder]}),p("h3",{class:"weave-note-title",children:e.title}),n?null:p("p",{class:"weave-note-meta",children:[p("span",{class:`weave-prov weave-prov-${e.provenance}`,title:e.provenanceTitle,children:[p("span",{class:"weave-prov-dot","aria-hidden":"true"}),e.byline]}),p("span",{class:"weave-note-time",title:`${fh} ${e.created} · ${e.createdIso}`,children:[ph," ",e.updated]}),p("span",{class:"weave-note-actions",children:[o===null?null:p("button",{type:"button",class:"weave-note-action weave-note-history","aria-pressed":a,onClick:o,children:[p(ce,{name:"history",class:"weave-icon"}),a?pg:hg]}),a?null:p("button",{type:"button",class:"weave-note-action weave-note-edit",disabled:r,onClick:i,children:[p(ce,{name:"edit",class:"weave-icon"}),gh]}),p("button",{type:"button",class:"weave-note-open",title:"Open in $EDITOR","aria-label":"Open in $EDITOR",onClick:t,children:p("span",{class:"weave-note-open-mark","aria-hidden":"true",children:"↗"})})]})]}),e.tags.length===0?null:p("p",{class:"weave-note-tags",children:e.tags.map(s=>p("span",{class:"weave-tag",children:Th(s)},s))})]})}function __({status:e,busy:t,onFormat:n,onRetry:r,onDiscard:i,onDone:a}){return p("div",{class:"weave-editbar",role:"toolbar","aria-label":Rl,children:[p("span",{class:"weave-editbar-badge",children:[p(ce,{name:"edit",class:"weave-icon"}),Rl]}),p("span",{class:"weave-editbar-tools",children:Al.map(o=>p("button",{type:"button",class:"weave-editbar-tool",title:o.key===null?o.label:`${o.label} (⌘${o.key.toUpperCase()})`,"aria-label":o.label,onMouseDown:s=>s.preventDefault(),onClick:()=>n(o.kind),children:p(ce,{name:o.icon,class:"weave-icon"})},o.kind))}),p("span",{class:`weave-editbar-status weave-editbar-${e.kind}`,role:"status",children:[e.kind==="saved"?p(ce,{name:"check",class:"weave-icon"}):null,e.label,e.kind==="failed"?p("button",{type:"button",class:"weave-editbar-retry",onClick:r,children:_g}):null]}),p("button",{type:"button",class:"weave-editbar-discard",disabled:t||e.kind==="saving",onClick:i,children:kg}),p("button",{type:"button",class:"weave-editbar-done",disabled:t,onClick:a,children:mh})]})}function Cg(e){let t=V(Ua()),n=e.drafts??t.current,r=Sc(),i=`${e.idPrefix??r}-weave-preview`,[a,o]=B(0);re(()=>n.subscribe(()=>o(C=>C+1)),[n]);let s=e.note?.note??null,l=s===null?"":n.getTaskBody(s.slug,s.body),c=oh(e.graph,e.selectedId),u=Ah(e.selectedId,s,e.loadFailed),d=$e(()=>s===null?null:sh(e.graph,s.slug),[s,e.graph]),h=$e(()=>s===null||d===null?"":Ss(_l,l,d),[s,l,d]),[f,g]=B(ga),y=C=>{g(K=>Rh(K,C))},v=V(null),w=V(null),b=V(null),k=V(!1),x=s===null?null:n.get(s.slug),[S,O]=B(!1),z=s!==null&&n.isTaskSaving(s.slug),L=()=>{s!==null&&!n.isTaskSaving(s.slug)&&n.save(s.slug,e.onSave,{keepOpen:!0})},G=async(C,K)=>{let Q=()=>{C.checked=!C.checked,C.setAttribute("aria-label",ma(C.checked))};if(s===null||n.isTaskSaving(s.slug)){Q();return}let ge=ch(n.getTaskBody(s.slug,s.body),K);if(ge===null){Q();return}let Le=[...v.current?.querySelectorAll(`input[${In}]`)??[]];C.setAttribute("aria-label",ma(C.checked));for(let We of Le)We.disabled=!0;try{await n.saveTask(s.slug,ge,e.onSave)||Q()}catch(We){throw Q(),We}finally{for(let We of Le)We.disabled=n.isTaskSaving(s.slug)}},I=V(null);re(()=>{s!==null&&I.current!==s.slug&&(I.current=s.slug,e.defaultEdit&&n.get(s.slug)===null&&(k.current=!0,n.open(s.slug,l)))},[s?.slug,e.defaultEdit]);let M=()=>{s===null||n.isTaskSaving(s.slug)||n.get(s.slug)!==null||(k.current=!0,n.open(s.slug,l))},q=V(!1),Y=()=>{if(!(s===null||x===null||n.isTaskSaving(s.slug))){if(x.saving){q.current=!0;return}q.current=!1,n.isDirty(s.slug)?n.save(s.slug,e.onSave):n.discard(s.slug)}},ie=()=>{if(s===null||x===null||x.saving)return;if(q.current=!1,x.baseline!==x.original||x.rawBaseline!==x.originalRaw){if(!window.confirm(Tg))return;n.revert(s.slug)?n.save(s.slug,e.onSave):n.discard(s.slug)}else(!n.isDirty(s.slug)||window.confirm(va))&&n.discard(s.slug)},oe=V(null),ye=V("body"),st=C=>{if(s===null)return;let K=ye.current==="raw"&&oe.current!==null,Q=K?oe.current:b.current;if(Q===null)return;let ge=Rg({value:Q.value,start:Q.selectionStart,end:Q.selectionEnd},C),Le=Ag(Q.value,ge.value);Q.focus(),Q.setSelectionRange(Le.start,Le.end),(!(typeof document.execCommand=="function"&&document.execCommand(Le.text===""?"delete":"insertText",!1,Le.text))||Q.value!==ge.value)&&(Q.value=ge.value),K?n.editRaw(s.slug,ge.value):n.edit(s.slug,ge.value),Q.setSelectionRange(ge.start,ge.end)},Ke=C=>{if(C.key==="Escape"){C.stopPropagation(),Y();return}if(!(C.metaKey||C.ctrlKey)||C.altKey)return;if(C.key.toLowerCase()==="s"){C.preventDefault(),s!==null&&n.isDirty(s.slug)&&L();return}let K=Eg(C.key);K===null||C.shiftKey||(C.preventDefault(),st(K))};re(()=>{if(s===null||x===null||x.saving||x.failed||!n.isDirty(s.slug))return;let C=window.setTimeout(L,2500);return()=>window.clearTimeout(C)},[s?.slug,x,x?.body,x?.raw,x?.saving,x?.failed]),re(()=>{q.current&&x!==null&&!x.saving&&Y()},[x?.saving]);let be=f.anchor===null?null:Sh(e.graph,f.anchor);Fe(()=>{let C=b.current;C===null||!k.current||(k.current=!1,C.focus(),C.setSelectionRange(C.value.length,C.value.length))},[x!==null]);let[he,Ee]=B(null),yt=V(null),pe=e.onHistory,te=()=>{if(s===null||pe===void 0)return;if(he!==null){yt.current=null,Ee(null);return}let C=s.slug;yt.current=C,Ee({revisions:null,enabled:!0,trimmed:!1,index:0,playing:!1,error:null}),pe(C).then(K=>{yt.current===C&&Ee(K.ok?{revisions:K.data.revisions,enabled:K.data.enabled,trimmed:K.data.trimmed,index:Math.max(0,K.data.revisions.length-1),playing:!1,error:null}:{revisions:null,enabled:!0,trimmed:!1,index:0,playing:!1,error:`Could not load history: ${K.message}`})})},Ve=he?.revisions==null?null:Ka(he.revisions,he.index),Zt=$e(()=>Ve===null||d===null?null:Ss(_l,Ve.marked,d),[Ve?.marked,d]);if(Fe(()=>{yt.current=null,Ee(null),O(!1)},[s===null?null:s.slug]),Fe(()=>{if(Zt===null||v.current===null)return;let C=mg(v.current);Ve?.follow&&C?.scrollIntoView?.({block:"nearest"})},[Zt]),re(()=>{if(he===null||!he.playing||he.revisions===null)return;let C=he.revisions.length,K=window.setTimeout(()=>{Ee(Q=>{if(Q===null)return Q;let ge=dg(Q.index,C);return ge===null?{...Q,playing:!1}:{...Q,index:ge}})},sg);return()=>window.clearTimeout(K)},[he]),Fe(()=>{s!==null&&(n.taskBody(s.slug,s.body,e.loadVersion),n.syncTail(s.slug,s.body))},[n,s===null?null:s.slug,s?.body,e.loadVersion]),Fe(()=>{y({type:"hide"})},[s===null?null:s.slug]),Fe(()=>{if(s===null)return;let C=n.isTaskSaving(s.slug);for(let K of v.current?.querySelectorAll(`input[${In}]`)??[])K.disabled=C},[s===null?null:s.slug,a,h]),Fe(()=>{let C=v.current;if(C!==null){let ge=f.anchor?.slug??null;for(let Le of C.querySelectorAll(`a[${Vt}]`))ge!==null&&Le.getAttribute(Vt)===ge?Le.setAttribute("aria-describedby",i):Le.removeAttribute("aria-describedby")}let K=w.current;if(K===null||be===null)return;let Q=Eh(f.pointerX,f.pointerY,K.offsetWidth,K.offsetHeight,window.innerWidth,window.innerHeight);K.style.setProperty(`--${b_}`,`${Q.x}px`),K.style.setProperty(`--${x_}`,`${Q.y}px`)},[f,be,i]),c!==null){let C=e.graph?.model.nodes.find(ge=>ge.id===e.selectedId),K=C?.label??c,Q=C===void 0?c:ah(C)??c;return p("article",{class:"weave-note weave-note-artifact",children:[p("header",{class:"weave-note-head",children:[p("h3",{class:"weave-note-title",children:K}),p("p",{class:"weave-note-meta",children:p("span",{class:"weave-note-time",children:c})})]}),p("iframe",{class:"weave-artifact-frame",title:K,sandbox:"allow-scripts",src:`/api/artifact/${encodeURIComponent(c)}`},Q)]},Q)}if(s===null||d===null)return p("p",{class:"weave-note-empty",children:u});let lt=_h(s,e.now);return p("article",{class:`weave-note weave-note-${lt.provenance}`,children:[x===null?null:p(__,{status:Sg({saving:x.saving,failed:x.failed,dirty:n.isDirty(s.slug),savedAt:x.savedAt}),busy:z,onFormat:st,onRetry:L,onDiscard:ie,onDone:Y}),p(k_,{view:lt,open:()=>e.onOpen(s.slug),editing:x!==null,taskSaving:z,onEdit:M,replaying:he!==null,onHistory:pe===void 0?null:te}),he===null?null:p(vg,{state:he,now:e.now,onIndex:C=>Ee(K=>K===null?K:{...K,index:C,playing:!1}),onPlay:()=>Ee(C=>{if(C===null||C.revisions===null)return C;if(C.playing)return{...C,playing:!1};let K=C.index>=C.revisions.length-1;return{...C,index:K?0:C.index,playing:!0}})}),x!==null?p(we,{children:[p("textarea",{ref:b,class:"weave-note-editor","aria-label":vh,placeholder:wh,spellcheck:e.spellcheck??!0,value:x.body,onInput:C=>n.edit(s.slug,C.target.value),onFocus:()=>{ye.current="body"},onKeyDown:Ke}),x.tail===""?null:p("section",{class:"weave-raw","aria-label":yh,"data-open":S?"":void 0,children:[p("div",{class:"weave-raw-head",children:[p("button",{type:"button",class:"weave-raw-toggle","aria-expanded":S,"aria-controls":`${e.idPrefix??r}-weave-raw`,onClick:()=>O(C=>!C),children:[p("svg",{class:"weave-raw-chevron",width:"12",height:"12",viewBox:"0 0 12 12","aria-hidden":"true",children:p("path",{d:"M4.5 2.5 8 6l-3.5 3.5",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})}),xh]}),p("span",{class:"weave-raw-hint",children:kh(x.raw,S)})]}),S?p("textarea",{id:`${e.idPrefix??r}-weave-raw`,class:"weave-raw-editor","aria-label":bh,spellcheck:e.spellcheck??!0,value:x.raw,ref:oe,onInput:C=>n.editRaw(s.slug,C.target.value),onFocus:()=>{ye.current="raw"},onKeyDown:Ke}):null]})]}):p("div",{ref:v,class:"weave-note-body",tabIndex:-1,onMouseOver:C=>{let K=Rs(C.target);y(K!==null?{type:"show",anchor:K,x:C.clientX,y:C.clientY}:{type:"hide"})},onMouseLeave:()=>y({type:"hide"}),onFocus:C=>{let K=Rs(C.target);if(K===null)return;let Q=C.target.getBoundingClientRect?.();y({type:"show",anchor:K,x:Q?.left??0,y:Q?.bottom??0})},onBlur:()=>y({type:"hide"}),onClick:C=>{let K=C.target,Q=uh(K);if(Q!==null&&Zt!==null){C.preventDefault();return}if(Q!==null){G(K,Q);return}let ge=typeof window<"u"&&typeof window.getSelection=="function"?window.getSelection():null;if(hh(ge))return;let Le=Es(C.target);Le!==null&&e.onSelect(Le,C.metaKey||C.ctrlKey||C.shiftKey)},onKeyDown:C=>{if(C.key==="Escape"&&f.anchor!==null){C.stopPropagation(),y({type:"dismiss"});return}if(C.key!=="Enter"&&C.key!==" ")return;let K=Es(C.target);K!==null&&(C.preventDefault(),e.onSelect(K,C.metaKey||C.ctrlKey||C.shiftKey))},dangerouslySetInnerHTML:{__html:Zt??h}}),be===null?null:p("div",{ref:w,id:i,role:"tooltip",class:`weave-preview${be.ghost?" weave-preview-ghost":""}`,children:[p("span",{class:"weave-preview-kind",children:be.kind}),p("span",{class:"weave-preview-title",children:be.title}),be.text===""?null:p("p",{class:"weave-preview-text",children:be.text})]})]},s.slug)}var Lg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Ng(e,t,n){return e===0?null:e===1?0:t<0?n?e-1:0:n?t===0?e-1:t-1:t===e-1?0:t+1}function Pg(e,t,n,r){return e==="Tab"&&!t&&!n&&!r}function Dg(e){return e===null?!1:(e.focus(),!0)}function wr(){let e=V(null);return re(()=>{let t=document.activeElement;return e.current?.focus(),()=>{Dg(t instanceof HTMLElement?t:null)}},[]),{ref:e,onKeyDown(t){if(!Pg(t.key,t.ctrlKey,t.metaKey,t.altKey))return!1;let n=[...e.current?.querySelectorAll(Lg)??[]],r=Ng(n.length,n.indexOf(document.activeElement),t.shiftKey);return r===null?!1:(t.preventDefault(),n[r]?.focus(),!0)}}}var Ig=20,T_=10,Og=140,Fg=["notes","code","tags"],S_=["all",...Fg],Mg={all:"All",notes:"Notes",code:"Code",tags:"Tags"},E_=["note:","vfolder:","artifact:"];function qa(e,t){let n=t.trim().toLowerCase();if(!n)return 0;let r=e.toLowerCase(),i=r.indexOf(n);return i<0?0:r===n?100:i===0?70:/[a-z0-9]/.test(r.charAt(i-1))?30:50}function R_(e){return Math.min(Math.max(e,0),T_)*2}function A_(e){return`note:${e}`}function C_(e,t){return qa(e.summary.title,t)+R_(e.score)}function L_(e,t){return qa(e.label,t)}var N_=["path","manifest","url","slug"];function P_(e){for(let t of N_){let n=e.detail[t];if(typeof n=="string"&&n)return n}return""}var D_=["preview","summary","description"];function I_(e){for(let n of D_){let r=e.detail[n];if(typeof r=="string"&&r)return r}let t=P_(e);return t===e.label?"":t}var M_={entryPoint:"entry point",gitState:"git",external:"remote"};function G_(e){return e.id.startsWith("vfolder:")?"folder":e.id.startsWith("artifact:")?"artifact":M_[e.kind]??e.kind}function O_(e){return e.kind==="vault"||E_.some(t=>e.id.startsWith(t))?"notes":"code"}function $g(e){return e.id.startsWith("note:")?e.id.slice(5):e.id.startsWith("artifact:")?e.id.slice(9):""}function F_(e,t){return e.score!==t.score?t.score-e.score:e.kind!==t.kind?e.kind==="note"?-1:1:e.label.localeCompare(t.label)||e.id.localeCompare(t.id)}function Pl(e){let t=e.trim();return t.startsWith("#")?t.slice(1).trim():null}function Dl(e){return Pl(e)===null?e.trim():""}function $_(e){return e===1?"1 note":`${e} notes`}function z_(e,t){let n=Pl(t),r=[];for(let[i,a]of Object.entries(e)){let o=n===""?1:qa(i,n??t);o&&r.push({id:`tag:${i}`,kind:"tag",group:"tags",icon:"tag",label:`#${i}`,detail:$_(a.length),badge:"tag",score:o,path:"",updated:""})}return r.sort((i,a)=>a.score-i.score)}function H_(e,t){let n=new Map;for(let[r,i]of Object.entries(e)){let a=qa(r,t);if(a)for(let o of i)n.set(o,Math.max(a,n.get(o)??0))}return n}function W_(e,t){let{slug:n,title:r,updated:i}=e.summary;return{id:A_(n),kind:"note",group:"notes",icon:"note",label:r,detail:e.snippet,badge:"note",score:C_(e,t),path:n,updated:i}}function U_(e,t){return{id:e.id,kind:"node",group:O_(e),icon:e.kind,label:e.label,detail:I_(e),badge:G_(e),score:t,path:$g(e),updated:e.detail.updated??""}}function zg(e,t,n,r,i={}){let a=Pl(r),o=a?H_(i,a):new Map,s=new Map;for(let u of e){let d=W_(u,t);s.set(d.id,d)}for(let u of n){if(s.has(u.id))continue;let d=a===null?L_(u,r):u.kind==="note"?o.get($g(u))??0:0;d&&s.set(u.id,U_(u,d))}let l=[...s.values()].sort(F_),c=u=>l.filter(d=>d.group===u).slice(0,Ig);return[...c("notes"),...c("code"),...z_(i,r).slice(0,Ig)]}var B_=/(?:\*\*|__)TL;?DR[ \t]*:?[ \t]*(?:\*\*|__)[ \t]*:?|\bTL;?DR[ \t]*:/i;function K_(e){let t=B_.exec(e);if(t===null)return null;let n=e.slice(t.index+t[0].length),r=n.search(/\n[ \t]*\n|(?:^|\s)#{1,6}\s/),i=(r<0?n:n.slice(0,r)).trim();return i===""?null:i}var ja="\0";function V_(e){let t=[];return e.replace(/`{3,}[^\s`]*/g," ").replace(/`([^`\n]*)`/g,(n,r)=>`${ja}${t.push(r)-1}${ja}`).replace(/!?\[\[([^\][|]+)(?:\|([^\]]*))?\]\]/g,(n,r,i)=>(i||r).trim()).replace(/^(…?)(?:[^[\]|]*\|)?([^[\]]*)\]\]/,"$1$2").replace(/\[\[([^\]|]*)(?:\|([^\]]*))?$/,(n,r,i)=>i||r).replace(/\[\[|\]\]/g,"").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1").replace(/<\/?[a-z][^>]*>/gi," ").replace(/(^|\s)#{1,6}(?=\s)/g,"$1").replace(/(^|\n)[ \t]*>[ \t]?/g,"$1").replace(/(^|\s)([-*_])(?:[ \t]?\2){2,}(?=\s|$)/g,"$1").replace(/(^|\s)[-*+][ \t]+\[[ xX]\][ \t]*/g,"$1").replace(/(^|\n)[ \t]*(?:[-*+]|\d+[.)])[ \t]+/g,"$1").replace(/(\s)\*(?=\s)/g,"$1").replace(/(\*\*|~~)(?=\S)([\s\S]*?\S)\1/g,"$2").replace(/(^|[^\w])__(?=\S)([\s\S]*?\S)__(?!\w)/g,"$1$2").replace(/(^|[^\w*])\*(?=\S)([^*\n]*?\S)\*(?![\w*])/g,"$1$2").replace(/(^|[^\w])_(?=\S)([^_\n]*?\S)_(?!\w)/g,"$1$2").replace(/\*{2,}|~~/g,"").replace(/\\([\\`*_#[\]|])/g,"$1").replace(new RegExp(`${ja}(\\d+)${ja}`,"g"),(n,r)=>t[Number(r)]).replace(/\s+/g," ").trim()}function j_(e){return V_(K_(e)??e)}var q_=2;function Y_(e){let t=e.trim().replace(/^#/,"").trim();return t?[...new Set([t,...t.split(/\s+/).filter(n=>n.length>=q_)])]:[]}function X_(e,t){let n=[];for(let i of Y_(t)){let a=new RegExp(i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gi");for(let o of e.matchAll(a))n.push([o.index,o.index+o[0].length])}n.sort((i,a)=>i[0]-a[0]||i[1]-a[1]);let r=[];for(let i of n){let a=r[r.length-1];a!==void 0&&i[0]<=a[1]?a[1]=Math.max(a[1],i[1]):r.push(i)}return r}var Z_=40,Q_=16;function Gg(e,t){let n=[],r=0;for(let[i,a]of t)i>r&&n.push({text:e.slice(r,i),mark:!1}),n.push({text:e.slice(i,a),mark:!0}),r=a;return r<e.length&&n.push({text:e.slice(r),mark:!1}),n}function J_(e,t){let n=j_(e),r=X_(n,t),i=r[0];if(i===void 0||i[0]<=Z_)return Gg(n,r);let a=i[0]-Q_,o=n.indexOf(" ",a),s=o>=0&&o<i[0]?o+1:a,l=s-1;return Gg(`…${n.slice(s)}`,r.map(([c,u])=>[c-l,u-l]))}function eT(e){return e.split("/").slice(0,-1).join("/")}function tT(e,t){return Wt(e,t).replace(/ ago$/,"")}function nT(e,t){return e.kind==="tag"?"":e.updated?[eT(e.path),tT(e.updated,t)].filter(n=>n!=="").join(" · "):e.badge}var Hg={d:["M11.25 7a4.25 4.25 0 1 1-8.5 0 4.25 4.25 0 0 1 8.5 0Z","M10.25 10.25 13.5 13.5"],filled:!1},rT={d:["M2.75 2.75h5l5.5 5.5-5 5-5.5-5.5Z","M5.5 5.5h.01"],filled:!1};function iT(e){return e==="tag"?rT:ba[e]}function Wg(){return{query:"",answered:"",hits:[],cursor:0,scope:"all",loading:!1,failed:!1}}function Cl(e,t){return t<=0?0:Math.min(Math.max(e,0),t-1)}function Ll(e,t,n){return n<=0?0:((e+t)%n+n)%n}function aT(e,t,n){let r={cursor:e,activate:null,dismiss:!1,handled:!1},i=Cl(e,n);return t==="ArrowDown"?{...r,cursor:Ll(i,1,n),handled:!0}:t==="ArrowUp"?{...r,cursor:Ll(i,-1,n),handled:!0}:t==="Home"?{...r,cursor:0,handled:!0}:t==="End"?{...r,cursor:Cl(n-1,n),handled:!0}:t==="Escape"?{...r,dismiss:!0,handled:!0}:t!=="Enter"||n===0?r:{...r,cursor:i,activate:i,dismiss:!0,handled:!0}}function oT(e){let t=n=>e.filter(r=>r.group===n).length;return{all:e.length,notes:t("notes"),code:t("code"),tags:t("tags")}}function Ug(e){return S_.filter(t=>t==="all"||e[t]>0)}function sT(e,t){return Ug(t).includes(e)?e:"all"}function lT(e,t,n){return e[Ll(Math.max(e.indexOf(t),0),n?-1:1,e.length)]??"all"}var Ya="Search the workspace",Bg="Search notes and repository…",Kg="↑↓ move · ↵ open · ⌘↵ open in new tab · Tab scope",Vg="Search scope",jg="⇧↵";function qg(e){return`Light up ${e} in the graph`}function cT(e,t){return e.query.trim()?t>0?null:e.failed?"search failed — the workspace server may be gone":e.loading?"searching…":`no matches for “${e.query.trim()}”`:"Type to search notes and code. Start with # to find tags."}function Yg(e){return`weave-search-row-${e}`}function uT(e){return`weave-search-group-${e}`}function dT(e,t,n,r,i){return{id:e.id,kind:e.kind,group:e.group,label:e.label,icon:iT(e.icon),mono:e.group==="code",parts:J_(e.detail,r),meta:nT(e,i),active:t===n,domId:Yg(t),index:t}}function hT(e,t,n){return(e.answered===Dl(e.query)?n:zg([],"",t?.model.nodes??[],e.query,t?.tags??{})).filter(i=>i.kind!=="tag").map(i=>i.id)}function Xg(e,t,n){let r=e.query.trim(),i=zg(e.hits,e.answered,t?.model.nodes??[],e.query,t?.tags??{}),a=oT(i),o=sT(e.scope,a),s=o==="all"?i:i.filter(h=>h.group===o),l=Cl(e.cursor,s.length),c=s.map((h,f)=>dT(h,f,l,e.query,n)),u=Fg.flatMap(h=>{let f=c.filter(g=>g.group===h);return f.length?[{group:h,heading:`${Mg[h]} · ${f.length}`,domId:uT(h),rows:f}]:[]}),d=r?Ug(a).map(h=>({scope:h,label:Mg[h],count:a[h],active:h===o})):[];return{groups:u,rows:c,scopes:d,scope:o,status:cT(e,s.length),count:s.length,cursor:l,activeDomId:c.length?Yg(l):null,query:r,lightUp:hT(e,t,i)}}var Nl={type:"none"};function Il(e,t){return e.kind==="tag"?{type:"tag",query:`#${e.id.slice(4)}`}:{type:"open",id:e.id,newTab:t}}function Ml(e){return e.query&&e.lightUp.length>0?{type:"lightUp",query:e.query,ids:e.lightUp}:Nl}function Zg(e,t,n){if(t.key==="Tab")return!t.inInput||t.mod||e.scopes.length<2?Nl:{type:"scope",scope:lT(e.scopes.map(i=>i.scope),e.scope,t.shift)};if(t.key==="Enter"&&t.shift&&n)return Ml(e);let r=aT(e.cursor,t.key,e.count);return r.handled?r.activate!==null?Il(e.rows[r.activate],t.mod):r.dismiss?{type:"close"}:{type:"move",cursor:r.cursor}:Nl}function Qg(e,t){return t.type==="move"?t.cursor===e.cursor?e:{...e,cursor:t.cursor}:t.type==="scope"?{...e,scope:t.scope,cursor:0}:t.type==="tag"?{...e,query:t.query,scope:"notes",cursor:0}:e}function Jg(e){return e.type==="open"||e.type==="lightUp"||e.type==="close"}function em({def:e,class:t}){return p("svg",{class:t,width:16,height:16,viewBox:`0 0 ${16} ${16}`,fill:e.filled?"currentColor":"none",stroke:e.filled?void 0:"currentColor","stroke-width":e.filled?void 0:e.width??1.5,"stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:e.d.map(n=>p("path",{d:n}))})}function pT({row:e,onPick:t,onHover:n}){return p("li",{id:e.domId,role:"option","aria-selected":e.active,class:`weave-hit weave-hit-${e.group}${e.active?" weave-hit-on":""}`,onMouseMove:n,onClick:r=>t(r.metaKey||r.ctrlKey),children:[p(em,{def:e.icon,class:"weave-icon weave-hit-icon"}),p("span",{class:e.mono?"weave-hit-label weave-hit-mono":"weave-hit-label",children:e.label}),p("span",{class:"weave-hit-detail",children:e.parts.map(r=>r.mark?p("mark",{class:"weave-hit-mark",children:r.text}):r.text)}),e.meta?p("span",{class:"weave-hit-meta",children:e.meta}):null]})}function tm(e){let[t,n]=B(Wg),r=V(0),i=V(null),a=wr(),o=V(null);re(()=>{o.current?.focus()},[]),re(()=>{let c=Dl(t.query),u=!0;if(!c)return i.current?.abort(),n(h=>({...h,hits:[],answered:"",loading:!1,failed:!1})),()=>{u=!1};let d=window.setTimeout(async()=>{let h=++r.current;i.current?.abort();let f=new AbortController;i.current=f,n(y=>({...y,loading:!0,failed:!1}));let g=await Bc(e.ports.fetch,c,f.signal);!u||f.signal.aborted||h!==r.current||n(y=>g.ok?{...y,hits:g.data.hits,answered:c,loading:!1,failed:!1,cursor:0}:{...y,loading:!1,failed:!0})},Og);return()=>{u=!1,window.clearTimeout(d),i.current?.abort()}},[t.query,e.ports.fetch]);let s=Xg(t,e.graph,Date.now()),l=c=>{c.type==="open"&&e.onSelect(c.id,c.newTab),c.type==="lightUp"&&e.onLightUp?.(c.query,c.ids),Jg(c)?e.onClose():n(u=>Qg(u,c)),(c.type==="scope"||c.type==="tag")&&o.current?.focus()};return p("div",{class:"weave-scrim",onClick:()=>l({type:"close"}),children:p("div",{class:"weave-palette",role:"dialog","aria-modal":"true","aria-label":Ya,tabIndex:-1,ref:a.ref,onClick:c=>c.stopPropagation(),onKeyDown:c=>{let u=Zg(s,{key:c.key,shift:c.shiftKey,mod:c.metaKey||c.ctrlKey,inInput:c.target===o.current},e.onLightUp!==void 0);if(u.type==="none"){a.onKeyDown(c);return}c.preventDefault(),l(u)},children:[p("div",{class:"weave-palette-bar",children:[p(em,{def:Hg,class:"weave-icon weave-palette-glyph"}),p("input",{type:"search",class:"weave-palette-input",ref:o,value:t.query,placeholder:Bg,role:"combobox","aria-label":Ya,"aria-expanded":s.count>0,"aria-autocomplete":"list","aria-controls":"weave-search-results","aria-activedescendant":s.activeDomId??void 0,onInput:c=>n(u=>({...u,query:c.currentTarget.value,cursor:0}))}),p("kbd",{class:"weave-palette-kbd","aria-hidden":"true",children:"Esc"})]}),s.scopes.length?p("div",{class:"weave-palette-scopes",role:"group","aria-label":Vg,children:s.scopes.map(c=>p("button",{type:"button",class:"weave-palette-scope","aria-pressed":c.active,onClick:()=>l({type:"scope",scope:c.scope}),children:[c.label," ",p("span",{class:"weave-palette-scope-count",children:c.count})]},c.scope))}):null,s.status===null?p("ul",{id:"weave-search-results",class:"weave-hits",role:"listbox","aria-label":Ya,children:s.groups.map(c=>p("li",{role:"presentation",class:"weave-hit-section",children:[p("div",{id:c.domId,role:"presentation",class:"weave-hit-group",children:c.heading}),p("ul",{role:"group","aria-labelledby":c.domId,class:"weave-hit-rows",children:c.rows.map(u=>p(pT,{row:u,onPick:d=>l(Il(u,d)),onHover:()=>l({type:"move",cursor:u.index})},u.id))})]},c.group))}):p("p",{class:"weave-palette-status",role:"status",children:s.status}),p("p",{class:"weave-palette-foot",children:[p("span",{children:Kg}),e.onLightUp&&s.lightUp.length>0?p("button",{type:"button",class:"weave-palette-light",onClick:()=>l(Ml(s)),children:[qg(s.lightUp.length)," ",p("kbd",{class:"weave-palette-kbd",children:jg})]}):null]})]})})}function Gl(){return{graph:null,graphFailed:!1,note:null,noteFailed:!1,recentIds:new Set,selectedId:null}}var Xa=2e3,fT=3e3,rm=new Set;function gT(e,t){if(e===null)return rm;let n=new Set(e.model.nodes.map(r=>r.id));return new Set(t.model.nodes.filter(r=>!n.has(r.id)).map(r=>r.id))}function nm(e){if(e===null||!e.startsWith("note:"))return null;let t=e.slice(5);return t===""?null:t}function im(e){let t=e.state,n=!1,r=!1,i=null,a=h=>{Object.entries(h).every(([f,g])=>t[f]===g)||(t={...t,...h},e.setState(t))},o=e.defer??((h,f)=>{let g=setTimeout(h,f);return()=>clearTimeout(g)}),s=async()=>{let h=nm(t.selectedId);if(h===null){a({note:null,noteFailed:!1});return}let f=await Do(e.fetch,h);f.ok?a({note:f.data,noteFailed:!1}):a({note:null,noteFailed:!0})},l=async()=>{let h=t.graph,f=await Vi(e.fetch,t.graph);if(!f.ok)return t.graph===null&&a({graphFailed:!0}),f;if(!f.cached){let g=gT(h,f.data);a({graph:f.data,graphFailed:!1,recentIds:g}),i?.(),i=null,g.size>0&&(i=o(()=>{i=null,a({recentIds:rm})},fT))}return f},c=async()=>{if(!(n||r)){r=!0;try{let h=await l();nm(t.selectedId)!==null&&(t.note===null||h.ok&&!h.cached)&&await s()}finally{r=!1}}},d=(e.repeat??((h,f)=>{let g=setInterval(h,f);return()=>clearInterval(g)}))(()=>{c()},Xa);return c(),{refresh:()=>{c()},select:async h=>{a({selectedId:h}),await s()},syncNote:s,stop:()=>{n||(n=!0,d(),i?.(),i=null)}}}function am(e,t,n,r=(i,a)=>{let o=setTimeout(i,a);return()=>clearTimeout(o)}){let i=!1,a=null,o=async()=>{if(i)return;let s=await Do(e,t);i||(n(s),s.ok||(a=r(()=>{o()},Xa)))};return o(),()=>{i=!0,a?.()}}var fi={links:"LINKS",backlinks:"BACKLINKS",tags:"TAGS",mentions:"MENTIONS"};function Qa(e,t,n){return{id:e,target:t.id,label:ft(t),kind:t.kind,kindIcon:Rn(t.kind),provenance:t.provenance,provenanceGlyph:Ut(t.provenance),provenanceTitle:ln(t.provenance),selected:t.id===n}}function mT(e,t,n){let r=e.target;if(r===void 0)return null;let i=t.get(r);return i===void 0?null:Qa(e.id,i,n)}function vT(e){let t=new Map;for(let n of e.nodes)t.set(n.id,n);return t}var wT=["link:links-to:"];function yT(e){return wT.some(t=>e.id.startsWith(t))}function bT(e){return e.id.startsWith("link:mentions:")}function xT(e,t,n,r){let i=[];for(let[a,o]of Object.entries(e.tags)){if(!o.includes(t))continue;let s=[];for(let l of o){if(l===t)continue;let c=n.get(`note:${l}`);c!==void 0&&s.push(Qa(`tag:${a}:${l}`,c,r))}i.push({tag:a,count:o.length,siblings:s})}return i}function kT(e,t,n,r){let i=[];for(let a of e.edges){if(a.kind!=="mentions"||a.target!==t)continue;let o=n.get(a.source);o!==void 0&&i.push(Qa(`mentioned-by:${a.source}`,o,r))}return i}function _T(e){if(!e.startsWith("note:"))return null;let t=e.slice(5);return t===""?null:t}var Za={loading:"Loading…",noSelection:"Select anything to see what it connects to.",unknown:"This node is not in the current graph.",isolated:"Nothing links to or from this yet."};function Ol(e){return{subject:null,groups:[],tags:[],tagsCount:0,empty:e}}function om(e){return e.groups.reduce((t,n)=>t+n.count,0)+e.tagsCount}function Ja(e,t){if(e===null)return Ol(Za.loading);if(t===null)return Ol(Za.noSelection);let n=Sn(e),r=Ho(n,t);if(r===null)return Ol(Za.unknown);let i=vT(n),a=[],o=(d,h)=>{h.length>0&&a.push({heading:d,count:h.length,rows:h})},s=d=>d.map(h=>mT(h,i,t)).filter(h=>h!==null);o(fi.links,s(r.links.filter(yT)));let l=Wo(n.edges).get(t)??[];o(fi.backlinks,l.map(d=>i.get(d)).filter(d=>d!==void 0).map(d=>Qa(`backlink:${d.id}`,d,t))),o(fi.mentions,[...s(r.links.filter(bT)),...kT(n,t,i,t)]);let c=_T(t),u=c===null?[]:xT(e,c,i,t);return a.length===0&&u.length===0?{subject:r.label,groups:[],tags:[],tagsCount:0,empty:Za.isolated}:{subject:r.label,groups:a,tags:u,tagsCount:u.length,empty:null}}function sm(){return{open:new Set,closed:new Set}}var TT=8;function lm(e,t,n,r){return r?!1:e.closed.has(t)?!0:e.open.has(t)?!1:n>TT}function ST(e){return e.some(t=>t.selected)}function cm(e,t){let n=lm(t,e.heading,e.count,ST(e.rows));return{heading:e.heading,count:e.count,collapsed:n,rows:n?[]:e.rows}}function um(e,t){let n=lm(t,fi.tags,e.length,e.some(r=>r.siblings.some(i=>i.selected)));return{heading:fi.tags,count:e.length,collapsed:n,rows:[]}}function dm(e,t,n){let r=new Set(e.open),i=new Set(e.closed);return n?(r.add(t),i.delete(t)):(i.add(t),r.delete(t)),{open:r,closed:i}}function eo(e){return`weave-ctx-panel-${e.toLowerCase()}`}function zn(e){let t=V(null);return p("div",{class:"weave-workspace-divider",role:"separator",tabIndex:0,"aria-label":e.label,"aria-orientation":e.horizontal?"horizontal":"vertical","aria-valuenow":Math.round(e.value),"aria-valuemin":e.min,"aria-valuemax":e.max,onPointerDown:n=>{t.current=e.horizontal?n.clientY:n.clientX,n.currentTarget.setPointerCapture(n.pointerId)},onPointerMove:n=>{if(t.current===null)return;let r=e.horizontal?n.clientY:n.clientX;e.onChange(r-t.current),t.current=r},onPointerUp:n=>{t.current=null,n.currentTarget.releasePointerCapture(n.pointerId)},onPointerCancel:()=>{t.current=null},onKeyDown:n=>{["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(n.key)&&(n.preventDefault(),e.onChange(n.key==="ArrowLeft"||n.key==="ArrowUp"?-20:20))}})}function hm(e){let t=e.turns[0];if(t===void 0)return null;let n=e.turns.find(r=>r.turn===e.shownTurn)??t;return p("section",{class:"weave-ctx-group weave-trail","aria-label":"What your agent recalled",children:[p("h4",{class:"weave-ctx-head weave-trail-head",children:[p("span",{class:"weave-trail-title",children:Os(n,n===t)}),p("span",{class:"weave-ctx-count",title:"Notes read or written",children:n.used}),n.steps.length===0?null:p("button",{type:"button",class:"weave-trail-replay",title:"Replay this turn's glow",onClick:()=>e.onReplay(n.turn),children:"Replay"})]}),n.steps.length===0?p("p",{class:"weave-trail-empty",children:ep}):null,p("ol",{class:"weave-trail-steps",children:n.steps.map(r=>p("li",{class:`weave-trail-step weave-trail-${r.kind}`,children:[p("span",{class:"weave-trail-verb",children:r.verb}),r.notes.map(i=>p("button",{type:"button",class:"weave-trail-note",onClick:a=>e.onSelect(i.id,a.metaKey||a.ctrlKey),children:i.label},i.id)),r.detail===null?null:p("span",{class:"weave-trail-detail",children:r.detail})]},r.key))}),e.turns.length<2?null:p("div",{class:"weave-trail-turns",role:"group","aria-label":"Earlier turns",children:e.turns.map((r,i)=>p("button",{type:"button",class:`weave-trail-turn${r.turn===n.turn?" weave-trail-turn-on":""}`,"aria-pressed":r.turn===n.turn,onClick:()=>e.onReplay(r.turn),children:Os(r,i===0)},r.turn))})]})}function pm({row:e,onSelect:t}){return p("li",{class:`weave-ctx-row${e.selected?" weave-row-on":""}`,children:p("button",{type:"button",class:"weave-ctx-link",onClick:n=>t(n.metaKey||n.ctrlKey),children:[p("span",{class:"weave-kind","aria-hidden":"true",children:p(ce,{name:e.kindIcon,class:"weave-icon"})}),p("span",{class:`weave-prov weave-prov-${e.provenance??"none"}`,title:e.provenanceTitle,children:e.provenanceGlyph}),p("span",{class:"weave-label",children:e.label})]})})}function fm({view:e,onToggle:t}){return p("h4",{class:"weave-ctx-head",children:p("button",{type:"button",class:"weave-ctx-heading","aria-expanded":!e.collapsed,"aria-controls":eo(e.heading),onClick:t,children:[p("span",{class:"weave-ctx-chevron","aria-hidden":"true",children:p(ce,{name:"chevron",class:e.collapsed?"weave-icon":"weave-icon weave-icon-open"})}),e.heading,p("span",{class:"weave-ctx-count",children:e.count})]})})}function ET({view:e,onSelect:t,onToggle:n}){return p("section",{class:"weave-ctx-group",children:[p(fm,{view:e,onToggle:n}),p("ul",{class:"weave-ctx-rows",id:eo(e.heading),hidden:e.collapsed,children:e.rows.map(r=>p(pm,{row:r,onSelect:i=>t(r.target,i)},r.id))})]})}function RT({tag:e,onSelect:t}){return p("li",{class:"weave-ctx-tag",children:[p("span",{class:"weave-tag",children:["#",e.tag]}),p("ul",{class:"weave-ctx-rows",children:e.siblings.map(n=>p(pm,{row:n,onSelect:r=>t(n.target,r)},n.id))})]})}function gm(e){let t=V(null),n=Ja(e.graph,e.selectedId),[r,i]=B(sm),a=s=>()=>i(dm(r,s.heading,s.collapsed)),o=um(n.tags,r);return p("div",{class:"weave-rail","aria-label":op.title,children:[e.trail===void 0?null:p(hm,{turns:e.trail,shownTurn:e.trailTurn??null,onSelect:e.onSelect,onReplay:s=>e.onReplay?.(s)}),n.empty===null?null:p("p",{class:"weave-ctx-empty",children:n.empty}),n.groups.map(s=>{let l=cm(s,r);return p(ET,{view:l,onSelect:e.onSelect,onToggle:a(l)},s.heading)}),n.tags.length===0?null:p("section",{class:"weave-ctx-group",children:[p(fm,{view:o,onToggle:a(o)}),p("ul",{class:"weave-ctx-tags weave-context-tags",ref:t,style:{height:e.tagHeight},id:eo(o.heading),hidden:o.collapsed,children:n.tags.map(s=>p(RT,{tag:s,onSelect:e.onSelect},s.tag))}),o.collapsed?null:p(zn,{label:"Resize tags section",horizontal:!0,min:60,max:600,value:e.tagHeight,onChange:s=>e.onTagResize(Math.max(60,Math.min(600,(t.current?.clientHeight??e.tagHeight)+s)))})]})]})}function mm(e){let t=null,n=!1,r=!1,i=async()=>{if(!(n||r)){r=!0;try{let s=await Wc(e.fetch,t);if(n||!s.ok||s.cached)return;t=s.data,e.onTrail(s.data)}finally{r=!1}}},o=(e.repeat??((s,l)=>{let c=setInterval(s,l);return()=>clearInterval(c)}))(()=>{i()},Xa);return i(),()=>{n=!0,o()}}function AT(e){if(e===""||e==="#")return null;let t=e.slice(1),n=/^note[/:](.+)$/.exec(t);return n===null?null:`note:${n[1]}`}function vm(e,t){let n=AT(e);return n===null||t===null?null:t.model.nodes.some(r=>r.id===n)?n:null}function wm(e){let t=e===null?null:e.startsWith("note:")?e.slice(5):null;return t===null||t===""?"":`#note/${t}`}function ym(e,t){let n=e[t.key];return Number.isFinite(n)?Math.min(t.max,Math.max(t.min,n)):t.max}function bm(e,t){let n=Number.parseFloat(t);return Number.isFinite(n)?Math.min(e.max,Math.max(e.min,n)):an[e.key]}function xm(e){return Number.isFinite(e)?Number.isInteger(e)?String(e):e.toFixed(3).replace(/0+$/,"").replace(/\.$/,""):"∞"}function km(e){return Zn.every(t=>Object.is(e[t.key],an[t.key]))}function _m(e){return p("div",{class:"weave-settings-forces",children:[Zn.map(t=>p("label",{class:"weave-setting-row",children:[p("span",{children:[p("strong",{children:t.label}),p("small",{children:t.hint})]}),p("span",{class:"weave-setting-range",children:[p("input",{"aria-label":t.label,type:"range",min:t.min,max:t.max,step:t.step,value:ym(e.forces,t),onInput:n=>e.onChange({...e.forces,[t.key]:bm(t,n.currentTarget.value)})}),p("output",{children:xm(e.forces[t.key])})]})]},t.key)),p("button",{type:"button",disabled:km(e.forces),onClick:()=>e.onChange({...an}),children:"Reset graph layout"})]})}var Tm=["General","Appearance","Interface","Editor","Files","Backup"];function wt(e){return p("label",{class:"weave-setting-row",children:[p("span",{children:[p("strong",{children:e.name}),p("small",{children:e.hint})]}),e.children]})}function Sm(e){let[t,n]=B("General"),[r,i]=B(0),a=wr(),[o,s]=B(null),[l,c]=B(!1);re(()=>{Mo(Se).then(f=>{f.ok&&s(f.data.enabled)})},[]);let u=f=>{s(f),c(!0),Mo(Se,f).then(g=>{s(g.ok?g.data.enabled:!f),c(!1)})},d=e.layout.preferences,h=f=>e.onChange({...e.layout,preferences:{...d,...f}});return p("div",{class:"weave-scrim weave-settings-scrim",onClick:e.onClose,children:p("div",{class:"weave-settings",role:"dialog","aria-modal":"true","aria-label":"Settings",tabIndex:-1,ref:a.ref,onClick:f=>f.stopPropagation(),onKeyDown:f=>{a.onKeyDown(f)},children:[p("header",{children:[p("h2",{children:"Settings"}),p("button",{type:"button","aria-label":"Close settings",onClick:e.onClose,children:"×"})]}),p("nav",{"aria-label":"Settings categories",children:e.compact?p("select",{class:"weave-settings-category","aria-label":"Settings category",value:t,onChange:f=>n(f.currentTarget.value),children:Tm.map(f=>p("option",{value:f,children:f},f))}):Tm.map(f=>p("button",{type:"button","aria-current":t===f?"page":void 0,onClick:()=>n(f),children:f},f))}),p("section",{"aria-label":`${t} settings`,children:[p("h3",{children:t}),t==="General"?p(we,{children:[p("p",{children:["Pi Weave ",e.info.version]}),p("dl",{class:"weave-settings-locations",children:[p("dt",{children:"Vault"}),p("dd",{children:p("code",{children:e.info.vaultRoot||"Loading…"})}),p("dt",{children:"Repository"}),p("dd",{children:p("code",{children:e.cwd})})]}),p("div",{class:"weave-settings-actions",children:[p("button",{type:"button",onClick:()=>{i(f=>f+1),e.onRefresh()},children:[p("span",{class:r?"weave-refresh-spin":"","aria-hidden":"true",children:"↻"},r)," Refresh workspace"]}),p("a",{href:"https://github.com/EranYonai/pi-weave#readme",target:"_blank",rel:"noreferrer",children:"Documentation ↗"})]}),p("details",{children:[p("summary",{tabIndex:0,children:"Keyboard shortcuts"}),ya(e.shortcut.slice(0,-1)).map(f=>p("div",{children:[p("h4",{children:f.title}),f.entries.map(g=>p("div",{class:"weave-key-row",children:[p("kbd",{children:g.combo}),p("span",{children:g.what})]},g.combo))]},f.title))]})]}):null,t==="Appearance"?p(we,{children:[p(wt,{name:"Color scheme",hint:"System follows your device and uses your chosen light and dark themes.",children:p("select",{"aria-label":"Color scheme",value:e.layout.theme==="system"?"system":ve[e.layout.theme].scheme,onChange:f=>e.onChange({...e.layout,theme:f.currentTarget.value==="system"?"system":f.currentTarget.value==="light"?d.lightTheme:d.darkTheme}),children:[p("option",{value:"system",children:"System"}),p("option",{value:"light",children:"Light"}),p("option",{value:"dark",children:"Dark"})]})}),["light","dark"].map(f=>p(wt,{name:`${f==="light"?"Light":"Dark"} theme`,hint:`Used in ${f} mode and by the ribbon theme button.`,children:p("select",{"aria-label":`${f==="light"?"Light":"Dark"} theme`,value:d[`${f}Theme`],onChange:g=>{let y=g.currentTarget.value;e.onChange({...e.layout,preferences:{...d,[`${f}Theme`]:y},theme:e.layout.theme!=="system"&&ve[e.layout.theme].scheme===f?y:e.layout.theme})},children:Object.entries(ve).filter(([,g])=>g.scheme===f).map(([g,y])=>p("option",{value:g,children:y.name},g))})},f)),p(wt,{name:"Accent color",hint:"Choose independently of the theme. Shades adapt to light and dark backgrounds.",children:p("select",{"aria-label":"Accent color",value:d.accent,onChange:f=>h({accent:f.currentTarget.value}),children:[p("option",{value:"theme",children:"Theme default"}),Object.entries(yn).map(([f,g])=>p("option",{value:f,children:g.name},f))]})}),p(wt,{name:"Note font size",hint:"Applies to reading and editing notes.",children:p("span",{class:"weave-setting-range",children:[p("input",{"aria-label":"Note font size",type:"range",min:12,max:22,step:1,value:d.fontSize,onInput:f=>h({fontSize:Number(f.currentTarget.value)})}),p("output",{children:[d.fontSize,"px"]})]})})]}):null,t==="Interface"?p(we,{children:[p(wt,{name:"Notes sidebar",hint:"Show files and recent notes.",children:p("input",{type:"checkbox",checked:e.layout.treeVisible,onChange:f=>e.onChange({...e.layout,treeVisible:f.currentTarget.checked})})}),p(wt,{name:"Context sidebar",hint:"Show links, backlinks, and related items.",children:p("input",{type:"checkbox",checked:e.layout.contextVisible,onChange:f=>e.onChange({...e.layout,contextVisible:f.currentTarget.checked})})}),p(wt,{name:"Color graph by group",hint:"Give each containment group its own color.",children:p("input",{type:"checkbox",checked:d.groupColors,onChange:f=>h({groupColors:f.currentTarget.checked})})}),p("h4",{children:"Graph layout"}),p("p",{class:"weave-settings-hint",children:"Adjust the graph live. Your choices are saved for this workspace."}),p(_m,{forces:d.forces,onChange:f=>h({forces:f})})]}):null,t==="Editor"?p(we,{children:[p(wt,{name:"Spellcheck",hint:"Use your browser or device’s spellchecker while editing.",children:p("input",{type:"checkbox",checked:d.spellcheck,onChange:f=>h({spellcheck:f.currentTarget.checked})})}),p(wt,{name:"Readable line length",hint:"Keep note text in a comfortable reading column.",children:p("input",{type:"checkbox",checked:d.readable,onChange:f=>h({readable:f.currentTarget.checked})})}),p(wt,{name:"Open notes in editing mode",hint:"Newly opened notes start in the editor. Existing drafts are preserved.",children:p("input",{type:"checkbox",checked:d.defaultEdit,onChange:f=>h({defaultEdit:f.currentTarget.checked})})}),p(wt,{name:"Note history",hint:"Save a copy of a note after every change, by you or your agent, so History can replay how it was written. Turning it off keeps what is already saved.",children:p("input",{type:"checkbox",disabled:o===null||l,checked:o??!1,onChange:f=>u(f.currentTarget.checked)})})]}):null,t==="Files"?p(we,{children:[p(wt,{name:"On startup",hint:"Choose which tabs appear when you reopen this workspace.",children:p("select",{"aria-label":"On startup",value:d.startup,onChange:f=>h({startup:f.currentTarget.value}),children:[p("option",{value:"restore",children:"Restore open tabs"}),p("option",{value:"empty",children:"Start with an empty tab"})]})}),p(wt,{name:"Focus new tabs",hint:"Switch to notes opened in a new tab, including from the graph.",children:p("input",{type:"checkbox",checked:d.focusNewTabs,onChange:f=>h({focusNewTabs:f.currentTarget.checked})})}),p("h4",{children:"Deleting files"}),p("p",{children:"Deleting a note or folder removes it from the vault after confirmation. Download a backup before deleting anything you may need again."})]}):null,t==="Backup"?p(we,{children:[p("h4",{children:"Download your vault"}),p("p",{children:"Save a ZIP containing the vault’s files and folders, including notes, metadata, and attachments. Linked files and folders are included as files."}),p("p",{children:"Save any unsaved edits first. The download contains files saved on disk. Backups are manual; store the ZIP somewhere safe."}),p("a",{class:"weave-settings-download",href:"/api/backup",download:!0,children:"Download vault ZIP"})]}):null]})]})})}function CT({group:e}){return p("div",{children:[p("p",{class:"weave-key-group",children:e.title}),e.entries.map(t=>p("div",{class:"weave-key-row",children:[p("kbd",{class:"weave-key-combo",children:t.combo}),p("span",{class:"weave-key-what",children:t.what})]},t.combo))]})}function Em(e){let t=wr(),n=e.shortcut.slice(0,-1);return p("div",{class:"weave-scrim",onClick:e.onClose,children:p("div",{class:"weave-help",role:"dialog","aria-modal":"true","aria-label":Hs,tabIndex:-1,ref:t.ref,onClick:r=>r.stopPropagation(),onKeyDown:r=>{t.onKeyDown(r)},children:[p("h2",{class:"weave-help-title",children:Hs}),p("div",{class:"weave-keys",children:ya(n).map(r=>p(CT,{group:r},r.title))}),p("p",{class:"weave-help-foot",children:[p("button",{type:"button",class:"weave-chip",onClick:e.onClose,children:"close"}),p("span",{class:"weave-help-hint",children:fp})]})]})})}function Rm(e,t){let n=r=>{if(r.defaultPrevented)return;let i=dp(hp(r),t.context());i!==null&&(r.preventDefault(),t.run(i))};return e.addEventListener("keydown",n),()=>e.removeEventListener("keydown",n)}function Am({model:e}){return p("footer",{class:"weave-status",children:[p("span",{class:"weave-status-cwd",title:e.cwd,children:e.cwd}),p("span",{class:"weave-status-sel",title:"Current item",children:e.selection}),e.hint===""?null:p("span",{class:"weave-status-hint",children:e.hint})]})}var Cm="pi-weave.theme.v1";function to(e){try{let t=e.getItem(Cm);return Xn(t)?t:null}catch{return null}}function Lm(e,t){try{return e.setItem(Cm,t),!0}catch{return!1}}function no(e,t,n=on){return ve[$l(e,t,n)].scheme==="light"?n.darkTheme:n.lightTheme}function $l(e,t,n=on){return e==="system"?t==="light"?n.lightTheme:n.darkTheme:e}function Nm(e){return e==="system"?null:e}function Fl(e){return e==="system"?"System":ve[e].name}function Pm(e,t="dark",n=on){return{glyph:e==="system"?"◐":ve[e].scheme==="light"?"○":"●",icon:e==="system"?"system":ve[e].scheme==="light"?"sun":"moon",label:Fl(e),hint:`Colour theme: ${Fl(e)} — click for ${Fl(no(e,t,n))}`}}function ro(e,t){if(e.kind==="graph")return"Graph view";let n=Gt(e);return n===null?"New tab":t?.model.nodes.find(r=>r.id===n)?.label??n.replace(/^[^:]+:/,"")}function NT(e){let[t]=B(e.visits);return p("div",{class:"weave-recents",children:ap(t,e.graph,e.selectedId).map(n=>p("button",{type:"button","aria-current":n.selected?"page":void 0,title:n.label,onClick:r=>e.onSelect(n.id,r.metaKey||r.ctrlKey),children:[p("span",{class:"weave-kind",children:p(ce,{name:n.icon,class:"weave-icon"})}),p("span",{class:"weave-recent-label",children:n.label})]},n.id))})}function PT(e){let t=Gt(e.tab),n=t?.startsWith("note:")?t.slice(5):null,[r,i]=B(null),a=V(null),o=V(e.tab.scroll),[s,l]=B(!1),[c,u]=B(""),[d,h]=B(!1),f=V(null);Fe(()=>{s&&f.current?.focus()},[s]),re(()=>{if(n===null)return;let v=e.drafts.nextLoadVersion();return am(Se,n,w=>{i({slug:n,note:w.ok?w.data:null,failed:!w.ok,version:v})})},[n,e.graph?.stamp,e.revision]);let g=r?.slug===n?r:null;if(Fe(()=>{let v=a.current?.querySelector(".weave-note");v!=null&&(v.scrollTop=o.current),n!==null&&e.drafts.get(n)!==null&&a.current?.querySelector(".weave-note-editor")?.focus()},[t,g?.note?.note.slug]),t===null)return p("div",{class:"weave-welcome",children:[p("span",{class:"weave-welcome-mark","aria-hidden":"true",children:"✳"}),p("h1",{children:"Your knowledge, connected."}),p("p",{children:"Ask your agent to write, organize, and connect your notes. Browse that knowledge here, or start a note yourself."}),p("div",{children:[p("button",{type:"button",onClick:e.onSearch,children:["Search workspace ",p("kbd",{children:"⌘K"})]}),p("button",{type:"button",onClick:e.onGraph,children:"Explore graph"}),p("button",{type:"button",onClick:()=>l(!0),children:"New note"})]}),s?p("form",{class:"weave-new-note",onSubmit:v=>{v.preventDefault(),!(d||!c.trim())&&(h(!0),e.onCreate(c.trim()).finally(()=>h(!1)))},onKeyDown:v=>{v.key==="Escape"&&(v.stopPropagation(),d||l(!1))},children:[p("label",{for:`new-note-${e.tab.id}`,children:"Note title"}),p("input",{id:`new-note-${e.tab.id}`,ref:f,required:!0,value:c,disabled:d,onInput:v=>u(v.currentTarget.value)}),p("div",{children:[p("button",{type:"submit",disabled:d||!c.trim(),children:d?"Creating…":"Create note"}),p("button",{type:"button",disabled:d,onClick:()=>l(!1),children:"Cancel"})]})]}):null]});let y=e.graph!==null&&!e.graph.model.nodes.some(v=>v.id===t);if(y||g?.failed&&e.drafts.isDirty(n??"")){let v=n===null?null:e.drafts.get(n);return v!==null&&n!==null&&e.drafts.isDirty(n)?p("div",{class:"weave-welcome",children:[p("h2",{children:y?"This item is no longer here":"This note could not be loaded"}),p("p",{children:["Your unsaved draft is preserved below. Select and copy it before closing this workspace. ",y?"Saving cannot restore or recreate the missing note.":"Reopen this tab to retry loading the note."]}),p("label",{class:"weave-note-meta",for:`missing-draft-${e.tab.id}`,children:"Unsaved draft (read-only)"}),p("textarea",{id:`missing-draft-${e.tab.id}`,class:"weave-note-editor","aria-label":"Unsaved draft for missing note",rows:16,readOnly:!0,value:v.body}),p("button",{type:"button",onClick:e.onSearch,children:"Find another note"})]}):p("div",{class:"weave-welcome",children:[p("h2",{children:"This item is no longer here"}),p("p",{children:"It may have been moved or deleted. Your other tabs are still available."}),p("button",{type:"button",onClick:e.onSearch,children:"Find another note"})]})}return p("div",{class:"weave-document",ref:a,onScrollCapture:v=>{let w=v.target;w.classList.contains("weave-note")&&(o.current=w.scrollTop,e.onScroll(w.scrollTop))},children:p(Cg,{spellcheck:e.preferences.spellcheck,defaultEdit:e.preferences.defaultEdit,note:g?.note??null,loadFailed:g?.failed??!1,loadVersion:g?.version??0,graph:e.graph,selectedId:t,onSelect:e.onSelect,onOpen:v=>{Kc(Se,v).then(w=>{w.ok?w.data.opened||window.alert("Could not open the note in an editor."):window.alert(w.message)})},onSave:e.onSave,onHistory:v=>eu(Se,v),drafts:e.drafts,idPrefix:e.tab.id,now:e.now})})}function Dm(e){let[t,n]=B(Gl),[r,i]=B(()=>({...So(),theme:to(localStorage)??"system"})),[a,o]=B(null),[s,l]=B(!1),[c,u]=B(Date.now),[d,h]=B(null),[f,g]=B(Date.now),[y,v]=B(null),[w,b]=B(e.initialWidth),[k,x]=B(()=>Xr(window)),[S,O]=B(!1),[z,L]=B({version:"",vaultRoot:""}),[G,I]=B(!1),[M,q]=B(0),[,Y]=B(0),[ie,oe]=B(null),ye=V(null),[st,Ke]=B(null),[be,he]=B(""),[Ee,yt]=B(null),pe=V(null),[te,Ve]=B(null),[Zt,lt]=B(null),[C,K]=B(!1),[Q,ge]=B([]),[Le,We]=B(!1),[ne]=B(Ua),St=V(null),se=V(null),yr=V(location.hash),ct=V(!1),ut=V(null),br=V(null),bt=V(null),xr=V(null),[Hn,gi]=B({left:0,top:0,width:600,height:500}),mi=bn(r),Ye=xn(r),Et=Pm(r.theme,k,r.preferences),dt=$l(r.theme,k,r.preferences),kr=$e(()=>({theme:dt,accent:r.preferences.accent}),[dt,r.preferences.accent]),ht=Gt(Ye),Ne=Ye.kind==="graph"?ie:ht,Ue=r.panes.find(_=>_.tabs.some(R=>R.id===_.activeTab&&R.kind==="graph")),zt=Ue!==void 0&&(w>=850||Ue.id===r.activePane),Te=s&&Ye.kind==="document"&&!zt,Rt=w<1050?Le:r.contextVisible,Qt=!r.contextPinned,Wn=$e(()=>om(Ja(t.graph,Ne)),[t.graph,Ne]),vi=Math.max(240,Math.min(320,r.contextWidth)),_r=()=>{w<1050?We(!0):i({...r,contextVisible:!0})},At=zt||Te&&Rt&&ht!==null,Jt=r.panes.some(_=>_.tabs.some(R=>R.kind==="graph")),Oe=V({layout:r,overlay:a,selectedId:Ne,graphPreviewId:st,select:_=>{}}),en=_=>{Oe.current.graphPreviewId=_,Ke(_)};re(()=>{en(null)},[At,Te,ht]),re(()=>{ht!==null?(ye.current=ht,oe(ht)):Ye.kind==="graph"&&oe(ye.current)},[Ye.id,Ye.kind,ht]);let Ct=_=>{ag(ne,Oe.current.layout,_,()=>window.confirm(va))&&i(_)},pt=(_,R=!1,U=r.activePane,J=!1)=>{let N=(_===null?sn:Oc)(r,_,{newTab:R,paneId:U});Ct(w<850&&!J?{...N,treeVisible:!1}:N),s||We(!1)},wi=()=>{let _=!(Te&&Rt);l(_),_&&(i(R=>({...Wi(R),contextVisible:!0})),We(!0))},Un=()=>i(_=>({...Ro(_),...w<850?{treeVisible:!1}:{}})),fn=_=>{if(en(null),Te){pt(_,!0);return}let R=r.panes.find(U=>U.id!==Ue?.id);pt(_,!0,R?.id??Ue?.id??r.activePane)},Bn=_=>{Te||oe(_),rp(Oe.current.graphPreviewId,_)?fn(_):en(_)},xt=_=>{en(null),Ct(ip(r,_,Ue?.id))},tn=(_,R=[])=>{he(_),yt({query:_,ids:R}),Un()};Oe.current={layout:r,overlay:a,selectedId:Ne,graphPreviewId:st,select:pt};let Tr=_=>og(ne,_,()=>window.confirm("Discard unsaved changes to the affected notes before changing files?")),Sr=async(_,R,U)=>{let J=await jc(Se,_,R,U?.raw===!0);return J.ok?(q(N=>N+1),St.current?.refresh(),!0):(U?.quiet!==!0&&window.alert(J.message),!1)},io=async(_,R)=>{let U=await Vc(Se,_);if(!U.ok)return window.alert(U.message),!1;let J=await Vi(Se);return n(N=>({...N,graph:J.ok?J.data:null,graphFailed:!J.ok})),ne.open(U.data.note.slug,U.data.note.body),Ct(sn(Oe.current.layout,`note:${U.data.note.slug}`,{paneId:R})),St.current?.refresh(),!0};re(()=>ne.subscribe(()=>Y(_=>_+1)),[ne]),re(()=>(St.current=im({fetch:Se,state:Gl(),setState:n}),()=>St.current?.stop()),[]),re(()=>{let _=!0;return(async()=>{try{let R=await Se("/api/workspace-state"),U=await R.json();if(!_)return;if(R.ok&&typeof U.viewId=="string"){se.current=U.viewId,U.info&&L(U.info);let J=Mc(U.layout);if(J){let N=Gc(J);i(N),ye.current=Gt(xn(Wi(N))),oe(ye.current),ge(J.panes.flatMap(Z=>Z.tabs.flatMap(Pe=>Pe.history)).reduce(Fs,[]))}}else I(!0)}catch{_&&I(!0)}finally{_&&O(!0)}})(),()=>{_=!1}},[]),re(()=>{if(!S||t.graph===null||ct.current)return;ct.current=!0;let _=vm(yr.current,t.graph);_!==null&&i(R=>sn(R,_))},[S,t.graph]),re(()=>{S&&ge(_=>Fs(_,Ne))},[S,Ne]),re(()=>{S&&(history.replaceState(null,"",wm(Ne)),document.documentElement.dataset.weaveTheme=dt,document.documentElement.dataset.weaveScheme=ve[dt].scheme,document.documentElement.dataset.weaveAccent=r.preferences.accent,Lm(localStorage,r.theme))},[S,Ne,r.theme,dt,r.preferences.accent]);let Er=V(Promise.resolve());re(()=>{if(!S||!se.current)return;let _=se.current,R=window.setTimeout(()=>{Er.current=Er.current.then(async()=>{try{let U=await Se("/api/workspace-state",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewId:_,layout:r})});I(!U.ok)}catch{I(!0)}})},350);return()=>window.clearTimeout(R)},[r,S]),re(()=>mm({fetch:Se,onTrail:_=>{h(_),v(null),g(Date.now())}}),[]);let Kn=Qh(d,f,y);re(()=>{if(!Kn){y!==null&&v(null);return}let _=window.setInterval(()=>g(Date.now()),1e3);return()=>window.clearInterval(_)},[Kn]);let Rr=$e(()=>Zh(d,f,y),[d,f,y]),Vn=$e(()=>Jh(d,t.graph),[d,t.graph]),yi=r.split==="down"?r.panes[0]:r.panes.at(-1),gn=yi?.tabs.find(_=>_.id===yi.activeTab)?.kind==="graph",bi=Qt&&(gn||Ne===null&&Vn.length===0),jn=Rt&&!bi,xe=_=>{let R=Date.now();g(R),v({turn:_,startedAt:R})};re(()=>{let _=window.setInterval(()=>u(Date.now()),lp),R=()=>b(window.innerWidth);window.addEventListener("resize",R);let U=Bh(window,x),J=Pe=>{for(let et of document.querySelectorAll(".weave-pane-menu[open]"))et.contains(Pe.target)||(et.open=!1)};document.addEventListener("pointerdown",J);let N=Pe=>{ne.dirtySlugs().length&&(Pe.preventDefault(),Pe.returnValue="")},Z=()=>{se.current&&fetch("/api/workspace-state",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({viewId:se.current,layout:Oe.current.layout}),credentials:"same-origin",keepalive:!0}).catch(()=>{})};return window.addEventListener("pagehide",Z),window.addEventListener("beforeunload",N),()=>{window.clearInterval(_),window.removeEventListener("resize",R),window.removeEventListener("beforeunload",N),window.removeEventListener("pagehide",Z),document.removeEventListener("pointerdown",J),U()}},[]),re(()=>Rm(document,{context:()=>({overlay:Oe.current.overlay,hasSelection:Oe.current.selectedId!==null}),run:_=>pp(_,{setOverlay:o,fitGraph:()=>xr.current?.(),clearSelection:()=>{xn(Oe.current.layout).kind==="graph"?(oe(null),en(null)):Oe.current.select(null)},closeTab:()=>{let R=Oe.current.layout;Ct(Co(R,R.activePane,xn(R).id))},toggleTheme:()=>i(R=>({...R,theme:no(R.theme,Xr(window),R.preferences)})),toggleContext:()=>{window.innerWidth<1050?We(R=>!R):i(R=>({...R,contextVisible:!R.contextVisible}))},focusSelector:R=>(R===sr.graph?i(U=>({...Ro(U),...window.innerWidth<850?{treeVisible:!1}:{}})):R===sr.tree||R===zs?i(U=>({...U,treeVisible:!0})):i(Wi),requestAnimationFrame(()=>{R===sr.note&&wa(document,".weave-pane-active .weave-note-editor")||!wa(document,R)&&R===sr.note&&wa(document,".weave-pane-active .weave-pane-content")}),!0)})}),[]),Fe(()=>{for(let _ of r.panes)document.getElementById(`tab-${_.activeTab}`)?.scrollIntoView({block:"nearest",inline:"nearest"})},[r.panes.map(_=>_.activeTab).join(","),r.activePane,w,S,t.graph?.stamp,r.treeVisible,r.treeWidth,r.contextVisible,r.contextWidth,r.ratio,r.split]),Fe(()=>{let _=Te?bt.current:br.current,R=ut.current;if(!At||!_||!R)return;let U=()=>{let N=_.getBoundingClientRect(),Z=R.getBoundingClientRect();gi({left:N.left-Z.left,top:N.top-Z.top,width:N.width,height:N.height})};U();let J=new ResizeObserver(U);return J.observe(_),J.observe(R),()=>J.disconnect()},[Te,At,r,w]);let nn=(_,R)=>i(U=>({...U,panes:U.panes.map(J=>({...J,tabs:J.tabs.map(N=>N.id===_?{...N,scroll:R}:N)}))})),xi=(_,R)=>{Bi(r,_,pe.current)===null&&!R.dataTransfer?.types.includes(Zr)||(R.preventDefault(),R.dataTransfer&&(R.dataTransfer.dropEffect=pe.current===null?"copy":"move"),Ve(null),lt(_))},Ar=(_,R)=>{let U=np(t.graph,R.dataTransfer?.getData(Zr)??"");if(U!==null){R.preventDefault(),pt(U,!0,_),lt(null);return}let J=pe.current;Bi(r,_,J)!==null&&(R.preventDefault(),i(N=>{let Z=Bi(N,_,J);return Z===null?N:er(N,Z,J)}),pe.current=null,lt(null),Ve(null))},qn=(_,R,U)=>{_.tabs.some(J=>J.id===pe.current)&&(U.preventDefault(),U.stopPropagation(),U.dataTransfer.dropEffect="move",lt(null),Ve({paneId:_.id,before:R}))},Cr=(_,R)=>{let U=pe.current;U===null||!_.tabs.some(J=>J.id===U)||(R.preventDefault(),R.stopPropagation(),i(J=>Po(J,_.id,U,te?.paneId===_.id?te.before:null)),pe.current=null,Ve(null),lt(null))},ki=_=>{let R=_.tabs.find(N=>N.id===_.activeTab),U=_.id===r.activePane,J=Qt&&jn&&(r.split==="down"||_===r.panes.at(-1));return p("section",{class:`weave-pane${U?" weave-pane-active":""}${Zt===_.id?" weave-pane-drop":""}${J?" weave-pane-under-card":""}`,"data-drop-label":pe.current===null?"Open note here":"Move tab here","aria-label":`Workspace pane ${r.panes.indexOf(_)+1}`,onDragOver:N=>xi(_.id,N),onDrop:N=>Ar(_.id,N),onDragLeave:N=>{N.currentTarget.contains(N.relatedTarget)||lt(null)},hidden:w<850&&!U,onFocusCapture:()=>{U||i(N=>({...N,activePane:_.id}))},onPointerDown:()=>{U||i(N=>({...N,activePane:_.id}))},children:[p("div",{class:"weave-tabs",role:"tablist","aria-label":"Open documents",onDragOver:N=>qn(_,null,N),onDrop:N=>Cr(_,N),children:[_.tabs.map(N=>p("div",{class:`weave-tab${N.id===R.id?" weave-tab-active":""}${te?.paneId===_.id&&te.before===N.id?" weave-tab-drop-before":""}${te?.paneId===_.id&&te.before===null&&N===_.tabs.at(-1)?" weave-tab-drop-after":""}`,onDragOver:Z=>{let Pe=Z.currentTarget.getBoundingClientRect(),et=Z.clientX<Pe.left+Pe.width/2?N.id:_.tabs[_.tabs.indexOf(N)+1]?.id??null;qn(_,et,Z)},onDrop:Z=>Cr(_,Z),children:[p("button",{type:"button",role:"tab",title:ro(N,t.graph),id:`tab-${N.id}`,"aria-selected":N.id===R.id,"aria-controls":`panel-${_.id}`,tabIndex:N.id===R.id?0:-1,draggable:!0,onDragStart:Z=>{pe.current=N.id,Z.dataTransfer.effectAllowed="move",Z.dataTransfer.setData("application/x-weave-tab",N.id)},onClick:()=>i(Ao(r,_.id,N.id)),onKeyDown:Z=>{let Pe=Z.key==="ArrowRight"?1:Z.key==="ArrowLeft"?-1:0;if(Pe&&Z.altKey&&!Z.ctrlKey&&!Z.metaKey){Z.preventDefault(),Z.stopPropagation();let mn=_.tabs.indexOf(N),Ti=Pe<0?_.tabs[Math.max(0,mn-1)].id:_.tabs[mn+2]?.id??null;i(Po(r,_.id,N.id,Ti)),requestAnimationFrame(()=>document.getElementById(`tab-${N.id}`)?.focus());return}if(!Pe&&Z.key!=="Home"&&Z.key!=="End")return;Z.preventDefault();let et=Z.key==="Home"?0:Z.key==="End"?_.tabs.length-1:(_.tabs.indexOf(N)+Pe+_.tabs.length)%_.tabs.length,_i=_.tabs[et];i(Ao(r,_.id,_i.id)),requestAnimationFrame(()=>document.getElementById(`tab-${_i.id}`)?.focus())},children:[p("span",{"aria-hidden":"true",children:p(ce,{name:N.kind==="graph"?"graph":"note",class:"weave-icon"})}),p("span",{children:ro(N,t.graph)}),ne.isDirty((Gt(N)??"").slice(5))?p("span",{class:"weave-dirty","aria-label":"Unsaved changes",children:"●"}):null]}),p("button",{type:"button",class:"weave-tab-close","aria-label":`Close ${ro(N,t.graph)}`,onClick:()=>Ct(Co(r,_.id,N.id)),children:"×"})]},N.id)),p("button",{type:"button",class:"weave-new-tab","aria-label":"New tab",onClick:()=>pt(null,!0,_.id),children:"+"})]}),p("div",{class:"weave-pane-toolbar",children:[p("button",{type:"button","aria-label":"Navigate back",disabled:R.kind==="graph"||R.cursor===0,onClick:()=>Ct(Lo({...r,activePane:_.id},_.id,-1)),children:"←"}),p("button",{type:"button","aria-label":"Navigate forward",disabled:R.kind==="graph"||R.cursor>=R.history.length-1,onClick:()=>Ct(Lo({...r,activePane:_.id},_.id,1)),children:"→"}),p("span",{class:"weave-breadcrumb",children:ro(R,t.graph)}),p("details",{class:"weave-pane-menu",onKeyDown:N=>{N.key==="Escape"&&(N.preventDefault(),N.stopPropagation(),N.currentTarget.open=!1,N.currentTarget.querySelector("summary")?.focus())},children:[p("summary",{"aria-label":"Pane options",title:"Pane options",children:"···"}),p("div",{onClick:N=>{let Z=N.currentTarget.closest("details");Z&&(Z.open=!1)},children:[p("button",{type:"button",onClick:()=>i(No({...r,activePane:_.id},"right")),children:r.panes.length>1?"Arrange side by side":"Split right"}),p("button",{type:"button",onClick:()=>i(No({...r,activePane:_.id},"down")),children:r.panes.length>1?"Stack panes":"Split down"}),r.panes.length>1?p(we,{children:[p("button",{type:"button",onClick:()=>i(er(r,_.id,R.id)),children:"Move tab to other pane"}),p("button",{type:"button",title:"Move all tabs to the other pane and close this pane",onClick:()=>i(Ic(r,_.id)),children:"Close pane"})]}):null]})]})]}),p("div",{class:"weave-pane-content",role:"tabpanel",tabIndex:-1,id:`panel-${_.id}`,"aria-labelledby":`tab-${R.id}`,...R.kind==="graph"?{ref:br}:{},children:R.kind==="document"?p(PT,{preferences:r.preferences,tab:R,graph:t.graph,drafts:ne,revision:M,now:c,onSelect:(N,Z)=>pt(N,Z,_.id),onSave:Sr,onScroll:N=>nn(R.id,N),onSearch:()=>o("search"),onGraph:Un,onCreate:N=>io(N,_.id)},`${R.id}:${R.cursor}:${Gt(R)}`):null})]},_.id)};return p(we,{children:[p("div",{class:"weave-workbench",style:{"--weave-note-size":`${r.preferences.fontSize}px`,"--weave-reading-width":r.preferences.readable?"760px":"100%","--weave-card-width":`${vi}px`},ref:ut,onDragEnd:()=>{pe.current=null,lt(null),Ve(null)},children:[p("nav",{class:"weave-ribbon","aria-label":"Workspace tools",children:[p("button",{type:"button","aria-label":"Toggle notes sidebar","aria-pressed":r.treeVisible,title:"Notes",onClick:()=>i({...r,treeVisible:!r.treeVisible}),children:p(ce,{name:"sidebar",class:"weave-icon"})}),p("button",{type:"button","aria-label":"Open graph view",title:"Graph view",onClick:Un,children:p(ce,{name:"graph",class:"weave-icon"})}),p("button",{type:"button","aria-label":"Toggle note graph",title:"Note graph","aria-pressed":Te&&Rt,onClick:wi,children:p(ce,{name:"noteGraph",class:"weave-icon"})}),p("button",{type:"button","aria-label":"Search notes and repository",title:cp(Qr(Jr(e.platform))),onClick:()=>o("search"),children:p(ce,{name:"search",class:"weave-icon"})}),p("span",{class:"weave-ribbon-space"}),p("button",{type:"button","aria-label":"Toggle context sidebar","aria-pressed":Rt,title:"Context",onClick:()=>w<1050?We(!Le):i({...r,contextVisible:!r.contextVisible}),children:p(ce,{name:"context",class:"weave-icon"})}),p("button",{type:"button","aria-label":"Refresh workspace",title:"Refresh workspace",onClick:()=>{St.current?.refresh(),q(_=>_+1)},children:p(ce,{name:"refresh",class:"weave-icon"})}),p("button",{type:"button","aria-label":Et.hint,title:Et.hint,onClick:()=>i({...r,theme:no(r.theme,k,r.preferences)}),children:p(ce,{name:Et.icon,class:"weave-icon"})}),p("button",{type:"button","aria-label":"Settings",title:"Settings",onClick:()=>o("settings"),children:p(ce,{name:"settings",class:"weave-icon"})})]}),p("div",{class:"weave-sidebar-dock weave-notes-dock","data-open":r.treeVisible,inert:!r.treeVisible,"aria-hidden":!r.treeVisible,style:{"--weave-sidebar-width":`${Math.min(r.treeWidth,w-90)}px`},children:[p("aside",{class:"weave-sidebar weave-sidebar-notes","aria-label":"Notes sidebar",children:[p("div",{class:"weave-sidebar-heading",children:[p("button",{type:"button","aria-pressed":!C,onClick:()=>K(!1),children:"Files"}),p("button",{type:"button","aria-pressed":C,onClick:()=>K(!0),children:"Recent"}),p("button",{type:"button","aria-label":"Hide notes sidebar",onClick:()=>{ut.current?.querySelector('[aria-label="Toggle notes sidebar"]')?.focus(),i({...r,treeVisible:!1})},children:"«"})]}),C?p(NT,{visits:Q,graph:t.graph,selectedId:Ne,onSelect:pt}):p(mp,{graph:t.graph,selectedId:Ne,recentIds:t.recentIds,trail:Rr,onSelect:(_,R,U)=>pt(_,R,r.activePane,U),onMutate:Tr,onRefresh:()=>St.current?.refresh(),now:c}),p("div",{class:"weave-vault-label",children:[p("span",{children:"Workspace"}),p("strong",{title:e.cwd,children:e.cwd.split(/[\\/]/).filter(Boolean).pop()??"Weave"})]})]}),p(zn,{label:"Resize notes sidebar",min:180,max:420,value:r.treeWidth,onChange:_=>i(R=>({...R,treeWidth:Math.max(180,Math.min(420,R.treeWidth+_))}))})]}),p("main",{class:`weave-panes weave-split-${r.split}`,style:r.panes.length===2&&w>=850?{[r.split==="right"?"gridTemplateColumns":"gridTemplateRows"]:`minmax(0, ${r.ratio}fr) 4px minmax(0, ${1-r.ratio}fr)`}:{},children:S?r.panes.map((_,R)=>p(we,{children:[R>0&&w>=850?p(zn,{label:"Resize split panes",min:20,max:80,horizontal:r.split==="down",value:r.ratio*100,onChange:U=>{let J=r.split==="right"?ut.current?.querySelector("main")?.clientWidth:ut.current?.querySelector("main")?.clientHeight;i(N=>({...N,ratio:Math.max(.2,Math.min(.8,N.ratio+U/(J??800)))}))}}):null,ki(_)]})):p("div",{class:"weave-welcome",role:"status",children:"Opening workspace…"})}),p("div",{class:`weave-sidebar-dock weave-context-dock${Qt?" weave-context-float":""}`,"data-open":jn,inert:!jn,"aria-hidden":!jn,style:{"--weave-sidebar-width":`${r.contextWidth}px`},children:[p(zn,{label:"Resize context sidebar",min:180,max:400,value:r.contextWidth,onChange:_=>i(R=>({...R,contextWidth:Math.max(180,Math.min(400,R.contextWidth-_))}))}),p("aside",{class:"weave-sidebar weave-sidebar-context","aria-label":"Context sidebar",children:[p("div",{class:"weave-sidebar-heading weave-context-heading",children:[p("strong",{children:"Context"}),p("span",{class:"weave-context-count",children:Wn}),p("button",{type:"button",class:"weave-context-pin","aria-pressed":r.contextPinned,"aria-label":r.contextPinned?"Float context over the page":"Dock context as a column",title:r.contextPinned?"Float over the page":"Dock as a column",onClick:()=>i({...r,contextPinned:!r.contextPinned}),children:p(ce,{name:"pin",class:"weave-icon"})}),p("button",{type:"button","aria-label":"Hide context sidebar",title:"Fold (])",onClick:()=>{ut.current?.querySelector('[aria-label="Toggle context sidebar"]')?.focus(),We(!1),i({...r,contextVisible:!1})},children:Qt?p(ce,{name:"chevron",class:"weave-icon weave-icon-open"}):"»"})]}),Te?p("section",{class:"weave-context-graph-section","aria-label":"Note connections",children:[p("div",{class:"weave-context-graph-heading",children:[p("strong",{children:"Note graph"}),p("button",{type:"button","aria-label":"Hide note graph",onClick:()=>{ut.current?.querySelector('[aria-label="Toggle note graph"]')?.focus(),l(!1)},children:"×"})]}),p("div",{class:"weave-context-graph-slot",ref:bt,style:{height:r.contextGraphHeight},children:ht===null?p("p",{children:"Select a note to see its connections."}):null}),p(zn,{label:"Resize note graph",horizontal:!0,min:120,max:800,value:Hn.height,onChange:_=>i(R=>({...R,contextGraphHeight:Math.max(120,Math.min(800,(bt.current?.clientHeight??R.contextGraphHeight)+_))}))})]}):null,p(gm,{graph:t.graph,selectedId:Ne,onSelect:pt,trail:Vn,trailTurn:y?.turn??null,onReplay:xe,tagHeight:r.contextTagsHeight,onTagResize:_=>i(R=>({...R,contextTagsHeight:_}))})]})]}),Qt&&!Rt&&!bi?p("button",{type:"button",class:"weave-context-pill","aria-label":`Show context, ${Wn} items`,title:"Show context (])",onClick:_r,children:[p(ce,{name:"context",class:"weave-icon"}),"Context",p("span",{class:"weave-context-count",children:Wn})]}):null,Jt||s?p("div",{class:`weave-graph-host${Te?" weave-context-graph-host":""}`,onDragOver:_=>{!Te&&Ue&&xi(Ue.id,_)},onDrop:_=>{!Te&&Ue&&Ar(Ue.id,_)},onDragLeave:_=>{_.currentTarget.contains(_.relatedTarget)||lt(null)},onPointerDown:()=>{!Te&&Ue&&i(_=>({..._,activePane:Ue.id}))},onFocusCapture:()=>{!Te&&Ue&&i(_=>({..._,activePane:Ue.id}))},"aria-hidden":!At,inert:!At,role:Te?"region":void 0,"aria-label":Te?"Note graph":void 0,style:{...Hn,visibility:At?"visible":"hidden",pointerEvents:At?"auto":"none"},children:p(wp,{graph:t.graph,selectedId:Ne,previewId:st,onSelect:Bn,onOpen:fn,renderer:$f,storage:localStorage,host:window,scheme:kr,forces:r.preferences.forces,groupColors:r.preferences.groupColors,bootFailed:t.graphFailed,fit:xr,trail:Rr,...Te?{}:{query:be,...Ee?.query===be?{found:Ee.ids}:{},onQuery:he,onOpenSplit:xt},now:c})}):null]}),p("div",{class:"weave-footer",children:[p(Am,{model:sp(e.cwd,Ne,Qr(Jr(e.platform)))}),G?p("span",{role:"status",children:"Workspace restoration unavailable"}):null,ne.dirtySlugs().length?p("span",{children:[ne.dirtySlugs().length," unsaved"]}):null,w<850&&r.panes.length>1?p("button",{type:"button",onClick:()=>i({...r,activePane:r.panes.find(_=>_.id!==mi.id).id}),children:"Switch pane"}):null]}),a==="search"?p(tm,{graph:t.graph,onSelect:pt,onLightUp:tn,onClose:()=>o(null),ports:{fetch:Se}}):null,a==="settings"?p(Sm,{compact:w<=650,layout:r,info:z,cwd:e.cwd,shortcut:Qr(Jr(e.platform)),onChange:_=>{Ct(_),We(_.contextVisible)},onRefresh:()=>{St.current?.refresh(),q(_=>_+1)},onClose:()=>o(null)}):null,a==="help"?p(Em,{shortcut:Qr(Jr(e.platform)),onClose:()=>o(null)}):null]})}var Im=`
402
419
  .weave-workbench{position:relative;isolation:isolate;display:flex;min-height:0;overflow:hidden;background:var(--weave-page)}
403
420
  .weave-workbench button{font:inherit;color:inherit;cursor:pointer}
404
421
  .weave-workbench button:focus-visible,.weave-workbench summary:focus-visible{outline:2px solid var(--weave-accent);outline-offset:-2px}
405
422
  .weave-workbench button:disabled{opacity:.35;cursor:default}
406
423
  .weave-ribbon{width:44px;flex:none;display:flex;align-items:center;flex-direction:column;gap:8px;padding:12px 0;background:var(--weave-panel);border-right:1px solid var(--weave-line)}
407
- .weave-ribbon button{width:32px;height:32px;border:0;border-radius:var(--weave-radius);background:transparent;font-size:var(--weave-px-display);color:var(--weave-dim)}
424
+ .weave-ribbon button{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:var(--weave-radius);background:transparent;font-size:var(--weave-px-display);color:var(--weave-dim)}
408
425
  .weave-ribbon button:hover,.weave-ribbon button[aria-pressed=true]{color:var(--weave-accent);background:var(--weave-new)}
409
426
  .weave-ribbon-space{flex:1}
410
427
  .weave-sidebar{flex:none;min-width:0;display:flex;flex-direction:column;background:var(--weave-panel);overflow:hidden}
@@ -464,18 +481,24 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
464
481
  .weave-pane-menu button{text-align:left;border:0;background:none;padding:9px 10px;font-size:var(--weave-px-row)}
465
482
  .weave-pane-menu button:hover{background:var(--weave-new)}
466
483
  .weave-pane-content{min-width:0;min-height:0;display:flex;overflow:hidden;position:relative}
467
- .weave-document{display:flex;min-width:0;min-height:0;flex:1}
484
+ /* The reading column's gutters. Centred at the reading width; where the
485
+ floating Context card covers the right margin, the right gutter grows to
486
+ clear it and the column slides left before it narrows. */
487
+ .weave-document{display:flex;min-width:0;min-height:0;flex:1;
488
+ --weave-gutter-c:max(24px,calc((100% - var(--weave-reading-width,760px))/2));
489
+ --weave-gutter-r:max(var(--weave-gutter-c),var(--weave-card-space,0px));
490
+ --weave-gutter-l:max(24px,min(var(--weave-gutter-c),calc(100% - var(--weave-reading-width,760px) - var(--weave-gutter-r))))}
468
491
  .weave-document .weave-note{width:100%;border-left:0}
469
- .weave-document .weave-note-head{position:static;padding:28px max(24px,calc((100% - var(--weave-reading-width,760px))/2)) 18px;border:0}
470
- .weave-document .weave-note-title{font-size:var(--weave-px-display);letter-spacing:-.03em;margin-bottom:12px}
471
- .weave-document .weave-note-body{padding:10px max(24px,calc((100% - var(--weave-reading-width,760px))/2)) 64px;font-size:var(--weave-note-size,var(--weave-px-subhead));line-height:1.8}
492
+ .weave-document .weave-note-head{position:static;padding:28px var(--weave-gutter-r) 18px var(--weave-gutter-l);border:0}
493
+ .weave-document .weave-note-title{font-size:var(--weave-px-display);letter-spacing:-.03em;margin-bottom:10px}
494
+ .weave-document .weave-note-body{padding:10px var(--weave-gutter-r) 64px var(--weave-gutter-l);font-size:var(--weave-note-size,var(--weave-px-subhead));line-height:1.8}
472
495
  .weave-document .weave-note-body h1{font-size:var(--weave-px-display);line-height:1.4;margin-bottom:18px}
473
496
  .weave-document .weave-note-body h2{font-size:var(--weave-px-title);margin-top:28px}
474
- .weave-document .weave-note-editor{padding:14px max(24px,calc((100% - var(--weave-reading-width,760px))/2));min-height:220px;flex:1;font-size:var(--weave-note-size,var(--weave-px-subhead))}
497
+ .weave-document .weave-note-editor{padding:14px var(--weave-gutter-r) 14px var(--weave-gutter-l);min-height:220px;flex:1;font-size:var(--weave-note-size,var(--weave-px-subhead))}
475
498
  .weave-document .weave-note-tags{margin-top:12px}
476
- .weave-document .weave-note-edit,.weave-document .weave-note-save{padding:5px 10px;border-radius:var(--weave-radius);font-size:var(--weave-px-caption)}
477
- .weave-document .weave-note-edit{color:var(--weave-dim);background:transparent;border-color:transparent}
478
- .weave-document .weave-note-edit:hover{color:var(--weave-accent);background:var(--weave-new);border-color:transparent}
499
+ .weave-document .weave-replay{padding:12px var(--weave-gutter-r) 14px var(--weave-gutter-l)}
500
+ .weave-document .weave-raw{margin:0 var(--weave-gutter-r) 28px var(--weave-gutter-l)}
501
+ .weave-document .weave-editbar{padding-right:calc(12px + var(--weave-card-space,0px))}
479
502
  .weave-welcome{align-self:center;margin:auto;padding:35px;max-width:560px;color:var(--weave-dim);line-height:1.7}
480
503
  .weave-welcome-mark{font-size:var(--weave-px-display);color:var(--weave-accent)}
481
504
  .weave-welcome h1{font-size:var(--weave-px-display);line-height:1.4;letter-spacing:-.025em;color:var(--weave-fg);font-weight:550}
@@ -514,6 +537,29 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
514
537
  .weave-footer>.weave-status{flex:1;min-width:0;border:0}
515
538
  .weave-footer>span{padding:4px 10px;white-space:nowrap}
516
539
  .weave-footer>button{font:inherit;color:var(--weave-fg);background:none;border:0;padding:7px 12px;cursor:pointer}
540
+ /* Context as a floating card (C1): over the page's right margin, below the
541
+ pane toolbar, folding to a pill in the toolbar strip. Pinned, it is the
542
+ column it always was. The shadow is the card's only elevation, and lives
543
+ here rather than in THEME_CSS, whose surfaces are flat by rule. */
544
+ .weave-context-dock.weave-context-float{position:absolute;top:90px;right:14px;bottom:auto;z-index:10;width:var(--weave-card-width);max-height:calc(100% - 104px);border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius-pop);background:var(--weave-panel);box-shadow:0 12px 32px #0000001f,0 2px 6px #00000014;transition:opacity 160ms ease,visibility 0s}
545
+ .weave-context-dock.weave-context-float[data-open=false]{width:var(--weave-card-width);opacity:0;visibility:hidden;transition:opacity 160ms ease,visibility 0s 160ms}
546
+ .weave-context-float>.weave-workspace-divider{display:none}
547
+ .weave-context-float>.weave-sidebar,.weave-context-float[data-open=false]>.weave-sidebar{width:100%;max-height:100%;border:0;background:none;transform:none}
548
+ .weave-context-float .weave-sidebar-heading{height:38px;padding:0 6px 0 12px;border-bottom:1px solid var(--weave-line)}
549
+ .weave-context-float .weave-rail{padding:4px 12px 10px}
550
+ .weave-context-float .weave-context-graph-slot{max-height:calc(100dvh - 260px)}
551
+ .weave-context-float .weave-context-tags{height:auto!important;max-height:220px}
552
+ .weave-context-float .weave-ctx-group>.weave-workspace-divider{display:none}
553
+ .weave-context-heading strong{color:var(--weave-fg)}
554
+ .weave-context-count{min-width:18px;padding:1px 6px;border-radius:999px;background:var(--weave-raise);color:var(--weave-dim);font-size:var(--weave-px-caption);line-height:1.4;text-align:center}
555
+ .weave-sidebar-heading .weave-context-pin{margin-left:auto}
556
+ .weave-context-heading button:last-child{margin-left:0}
557
+ .weave-context-heading .weave-context-pin[aria-pressed=true]{color:var(--weave-accent)}
558
+ .weave-context-heading button{display:grid;place-items:center;width:28px;height:28px;padding:0}
559
+ .weave-context-pill{position:absolute;top:47px;right:54px;z-index:10;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 9px;border:1px solid var(--weave-line-strong);border-radius:999px;background:var(--weave-panel);color:var(--weave-dim)!important;font-size:var(--weave-px-caption)!important;box-shadow:0 2px 8px #00000014}
560
+ .weave-context-pill:hover{color:var(--weave-fg)!important;border-color:var(--weave-accent)}
561
+ .weave-context-pill .weave-icon{width:13px;height:13px}
562
+ .weave-pane-under-card{--weave-card-space:calc(var(--weave-card-width) + 28px)}
517
563
  @media(max-width:1049px){
518
564
  .weave-context-dock{position:absolute;right:0;top:0;bottom:0;z-index:10;width:var(--weave-sidebar-width)}
519
565
  .weave-sidebar-context{border-left:1px solid var(--weave-line-strong)}
@@ -527,6 +573,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
527
573
  .weave-panes{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important}
528
574
  .weave-document .weave-note-head{padding:20px}
529
575
  .weave-document .weave-note-body{padding:10px 20px 40px}
576
+ .weave-document .weave-replay{padding:12px 20px}
577
+ .weave-document .weave-raw{margin:0 20px 24px}
530
578
  }
531
579
  @media(prefers-reduced-motion:reduce){
532
580
  .weave-sidebar-dock,.weave-sidebar-dock[data-open=false],.weave-sidebar-dock>.weave-sidebar{transition:none}
@@ -560,9 +608,9 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
560
608
  @media(prefers-reduced-motion:reduce){.weave-settings-actions button{transition:none}.weave-settings-actions button:active{transform:none}.weave-refresh-spin{animation:none}}
561
609
  .weave-settings details summary{cursor:pointer;padding:12px 0}.weave-settings .weave-key-row{gap:16px;align-items:baseline}.weave-settings .weave-key-row kbd{min-width:150px;color:var(--weave-accent)}
562
610
  @media(max-width:650px){.weave-settings{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr)}.weave-settings nav{border-right:0;border-bottom:1px solid var(--weave-line);padding:8px 16px}.weave-settings nav select{width:100%;max-width:none}.weave-settings section{padding:20px}.weave-setting-row{align-items:flex-start;gap:12px}.weave-settings select{max-width:170px}.weave-setting-range{width:140px}.weave-setting-range input{width:90px}}
563
- `;function Ms(e){let{scheme:t,colors:n}=ue[e];return Object.entries(n).map(([r,i])=>`--weave-${r}:${i};`).join("")+`--weave-new:color-mix(in srgb,var(--weave-accent) ${t==="light"?10:16}%,transparent);color-scheme:${t};--weave-vignette:radial-gradient(ellipse at center,transparent 55%,${t==="light"?"rgba(0,0,0,.10)":"rgba(0,0,0,.22)"} 100%);--weave-scrim:rgba(0,0,0,${t==="light"?".30":".45"});`}var tk=`
611
+ `;function zl(e){let{scheme:t,colors:n}=ve[e];return Object.entries(n).map(([r,i])=>`--weave-${r}:${i};`).join("")+`--weave-new:color-mix(in srgb,var(--weave-accent) ${t==="light"?10:16}%,transparent);color-scheme:${t};--weave-vignette:radial-gradient(ellipse at center,transparent 55%,${t==="light"?"rgba(0,0,0,.10)":"rgba(0,0,0,.22)"} 100%);--weave-scrim:rgba(0,0,0,${t==="light"?".30":".45"});`}var DT=`
564
612
  :root{
565
- ${Ms("dark")}
613
+ ${zl("dark")}
566
614
  --weave-row:26px;--weave-gutter:10px;
567
615
  /* The reading gutter is note-only: prose wants a wider margin than chrome.
568
616
  Rails, rows and bars keep --weave-gutter, so density is a property of the
@@ -570,8 +618,9 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
570
618
  --weave-note-gutter:18px;
571
619
  /* The desk-and-page split. The workspace is a desk of instruments — tree,
572
620
  graph, rail, bars — on the --weave-bg ground; the note column is the one
573
- *page* lying on it: crust in both Catppuccin schemes, the ground that
574
- sits furthest from the desk (deep under dark, bright over light). Two
621
+ *page* lying on it: crust under dark, plain white under Latte (the
622
+ refresh's "quiet page": paper reads as paper), the ground that sits
623
+ furthest from the desk. Two
575
624
  voices in total: sans for instruments and prose alike, mono for data — a
576
625
  third face was tried (serif prose) and withdrawn at the user's call; two
577
626
  voices read calmer than three. The CSP allows nothing fetched, and both
@@ -582,7 +631,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
582
631
  two overlays that float above the grid. Tag pills are 999px — a capsule
583
632
  shape, not a scale step. The gate test below refuses any literal px
584
633
  radius so the scale cannot drift back. */
585
- --weave-radius:4px;--weave-radius-pop:7px;
634
+ --weave-radius:6px;--weave-radius-pop:10px;
586
635
  /* The type ramp, role-named because sizes drift and roles stick. Nine
587
636
  steps; every font-size in this sheet is one of these vars — that is a
588
637
  gate, not a convention:
@@ -594,7 +643,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
594
643
  body 13.5 the note column's prose
595
644
  subhead 14 palette input, note-body h2, ribbon icon buttons
596
645
  title 15 note-body h1
597
- display 20 the note's page title
646
+ display 26 the note's page title (20 before the refresh)
598
647
  Two earlier sizes were merged into neighbours: 9px glyphs to prov, and
599
648
  the 10px column overlines to caption (caps plus .09em tracking already
600
649
  read larger than their point size suggests). \`display\` and \`body\` are
@@ -609,14 +658,14 @@ Please report this to https://github.com/markedjs/marked.`,e){let r="<p>An error
609
658
  rubber stamp. */
610
659
  --weave-px-prov:9.5px;--weave-px-caption:10.5px;--weave-px-ui:11.5px;
611
660
  --weave-px-row:12px;--weave-px-base:13px;--weave-px-body:13.5px;
612
- --weave-px-subhead:14px;--weave-px-title:15px;--weave-px-display:20px;
661
+ --weave-px-subhead:14px;--weave-px-title:15px;--weave-px-display:26px;
613
662
  }
614
663
  @media (prefers-color-scheme: light){
615
- :root:not([data-weave-theme]){${Ms("light")}}
664
+ :root:not([data-weave-theme]){${zl("light")}}
616
665
  }
617
- ${Object.keys(ue).map(e=>`:root[data-weave-theme="${e}"]{${Ms(e)}}`).join(`
666
+ ${Object.keys(ve).map(e=>`:root[data-weave-theme="${e}"]{${zl(e)}}`).join(`
618
667
  `)}
619
- ${Object.entries(en).map(([e,t])=>["light","dark"].map(n=>`:root[data-weave-scheme="${n}"][data-weave-accent="${e}"]{--weave-accent:${t[n]};}`).join(`
668
+ ${Object.entries(yn).map(([e,t])=>["light","dark"].map(n=>`:root[data-weave-scheme="${n}"][data-weave-accent="${e}"]{--weave-accent:${t[n]};}`).join(`
620
669
  `)).join(`
621
670
  `)}
622
671
  body{font-size:var(--weave-px-base)}
@@ -670,7 +719,7 @@ body{font-size:var(--weave-px-base)}
670
719
  so the selected row is always readable. */
671
720
  .weave-row-on .weave-twisty,.weave-row-on .weave-kind,.weave-row-on .weave-prov,
672
721
  .weave-row-on .weave-meta,.weave-row-on .weave-label{color:var(--weave-fg)}
673
- .weave-hit-on .weave-hit-badge,.weave-hit-on .weave-hit-detail{color:var(--weave-fg)}
722
+ .weave-hit-on .weave-hit-icon,.weave-hit-on .weave-hit-detail,.weave-hit-on .weave-hit-meta{color:var(--weave-fg)}
674
723
  /* A newly-arrived node (a file or note added since the last update, ):
675
724
  one short highlight that fades while the label settles from bold back to
676
725
  normal. The class is computed from the frame diff in workspace.ts and
@@ -682,6 +731,16 @@ body{font-size:var(--weave-px-base)}
682
731
  40%{font-weight:700}
683
732
  100%{background:transparent;font-weight:400}
684
733
  }
734
+ /* Recall trail (issue #78): a note the agent searched, read or wrote. The
735
+ tint follows the graph's palette for the same kinds (warn → ok → accent)
736
+ and steps down through three strength buckets as the glow fades. */
737
+ .weave-row-trail{--weave-trail:var(--weave-warn);box-shadow:inset 2px 0 0 color-mix(in srgb,var(--weave-trail) var(--weave-trail-mix),transparent);background:color-mix(in srgb,var(--weave-trail) calc(var(--weave-trail-mix) / 6),transparent)}
738
+ .weave-row-trail-read{--weave-trail:var(--weave-ok)}
739
+ .weave-row-trail-wrote{--weave-trail:var(--weave-accent)}
740
+ .weave-row-trail-3{--weave-trail-mix:90%}
741
+ .weave-row-trail-2{--weave-trail-mix:55%}
742
+ .weave-row-trail-1{--weave-trail-mix:25%}
743
+ .weave-row-trail-wrote.weave-row-trail-3 .weave-label{font-weight:600}
685
744
  .weave-twisty{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--weave-faint);cursor:pointer}
686
745
  .weave-kind{flex:none;color:var(--weave-faint);font-size:var(--weave-px-ui)}
687
746
  .weave-prov{flex:none;font-size:var(--weave-px-prov)}
@@ -739,7 +798,7 @@ body{font-size:var(--weave-px-base)}
739
798
  .weave-note-head{position:sticky;top:0;z-index:2;padding:14px var(--weave-note-gutter) 9px;background:var(--weave-page);border-bottom:1px solid var(--weave-line)}
740
799
  /* The page's largest voice, and the point of the review's headline finding:
741
800
  a 15px title sat 1.5px above the body it named. --weave-px-display puts the
742
- title where a page's title belongs, weight 650 for presence at 20px (600
801
+ title where a page's title belongs, weight 650 for presence at 26px (600
743
802
  reads thin at that size, 700 reads as a poster), tracking pulled in by a
744
803
  hair because large sans needs it. */
745
804
  .weave-note-title{margin:0 0 4px;font-size:var(--weave-px-display);font-weight:650;line-height:1.25;letter-spacing:-.005em;color:var(--weave-fg)}
@@ -756,25 +815,164 @@ body{font-size:var(--weave-px-base)}
756
815
  }
757
816
  .weave-note-open:hover{color:var(--weave-fg);background:var(--weave-line)}
758
817
  .weave-note-open-mark{display:inline-flex;line-height:0}
759
- /* Save / Done, chip-shaped: the same quiet row, and a control in a reading
760
- column should not outweigh the title. */
761
- .weave-note-edit,.weave-note-save{
818
+ /* The note's own actions, at the end of the meta line. History is a quiet
819
+ word with an icon; Edit is the one bordered control, and neither outweighs
820
+ the title. */
821
+ .weave-note-actions{margin-left:auto;display:inline-flex;align-items:center;gap:4px}
822
+ .weave-note-meta .weave-note-action{
823
+ display:inline-flex;align-items:center;gap:5px;
762
824
  font:inherit;font-size:var(--weave-px-caption);line-height:1;white-space:nowrap;cursor:pointer;
763
- color:var(--weave-dim);background:var(--weave-panel);padding:4px 7px;
764
- border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);
825
+ color:var(--weave-dim);background:none;padding:5px 8px;
826
+ border:1px solid transparent;border-radius:var(--weave-radius);
827
+ }
828
+ .weave-note-meta .weave-note-action .weave-icon{width:13px;height:13px}
829
+ .weave-note-meta .weave-note-action:hover{color:var(--weave-fg);background:var(--weave-new)}
830
+ .weave-note-meta .weave-note-action:disabled{color:var(--weave-faint);background:none;cursor:default}
831
+ .weave-note-meta .weave-note-edit{color:var(--weave-fg);background:var(--weave-page);border-color:var(--weave-line-strong)}
832
+ .weave-note-meta .weave-note-edit:hover{border-color:var(--weave-accent);background:var(--weave-page)}
833
+ .weave-note-meta .weave-note-history[aria-pressed="true"]{color:var(--weave-accent);background:var(--weave-new)}
834
+ /* Where the note lives, above its title: a crumb, not a heading. */
835
+ .weave-note-crumb{margin:0 0 6px;display:flex;align-items:center;gap:5px;font-size:var(--weave-px-caption);color:var(--weave-faint)}
836
+ .weave-note-crumb .weave-icon{width:12px;height:12px}
837
+ /* Who wrote it, in words, with the spine's colour as a dot. */
838
+ .weave-note-meta .weave-prov{display:inline-flex;align-items:center;gap:6px;font-size:var(--weave-px-ui);color:var(--weave-dim)}
839
+ .weave-prov-dot{width:7px;height:7px;border-radius:999px;background:var(--weave-spine,var(--weave-accent))}
840
+ /* The edit bar (E1): one row while editing, pinned over the text it edits.
841
+ Formatting on the left, where the words are; the save state and the two
842
+ ways out on the right. Saving is automatic, so Done is the only
843
+ affirmative control and the only one in the accent. */
844
+ .weave-editbar{
845
+ position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
846
+ min-height:40px;padding:5px 12px;font-size:var(--weave-px-ui);
847
+ background:var(--weave-page);border-bottom:1px solid var(--weave-line);
848
+ }
849
+ .weave-editbar .weave-icon{width:14px;height:14px}
850
+ .weave-editbar-badge{
851
+ display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;
852
+ font-size:var(--weave-px-caption);font-weight:600;color:var(--weave-accent);background:var(--weave-new);
853
+ }
854
+ .weave-editbar-badge .weave-icon{width:12px;height:12px}
855
+ .weave-editbar-tools{display:inline-flex;align-items:center;gap:1px;margin-left:4px;padding-left:8px;border-left:1px solid var(--weave-line)}
856
+ .weave-editbar .weave-editbar-tool{
857
+ display:inline-grid;place-items:center;width:28px;height:28px;padding:0;cursor:pointer;
858
+ color:var(--weave-dim);background:none;border:0;border-radius:var(--weave-radius);
859
+ }
860
+ .weave-editbar .weave-editbar-tool:hover{color:var(--weave-fg);background:var(--weave-new)}
861
+ .weave-editbar-status{margin-left:auto;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:var(--weave-px-caption);color:var(--weave-faint)}
862
+ .weave-editbar-pending,.weave-editbar-saving{color:var(--weave-dim)}
863
+ .weave-editbar-saved{color:var(--weave-ok)}
864
+ .weave-editbar-failed{color:var(--weave-bad);font-weight:600}
865
+ .weave-editbar .weave-editbar-retry{font:inherit;color:var(--weave-accent);background:none;border:0;padding:2px 4px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
866
+ .weave-editbar .weave-editbar-discard,.weave-editbar .weave-editbar-done{font:inherit;font-size:var(--weave-px-caption);line-height:1;white-space:nowrap;cursor:pointer;border-radius:var(--weave-radius)}
867
+ .weave-editbar .weave-editbar-discard{padding:7px 9px;color:var(--weave-dim);background:none;border:1px solid transparent}
868
+ .weave-editbar .weave-editbar-discard:hover{color:var(--weave-fg);background:var(--weave-new)}
869
+ .weave-editbar .weave-editbar-done{padding:7px 14px;font-weight:600;color:var(--weave-page);background:var(--weave-accent);border:1px solid var(--weave-accent)}
870
+ .weave-editbar .weave-editbar-done:hover{filter:brightness(1.08)}
871
+ .weave-editbar .weave-editbar-discard:disabled,.weave-editbar .weave-editbar-done:disabled{opacity:.5;cursor:default;filter:none}
872
+ /* A finalized note's opening TLDR, set apart as the first thing to read.
873
+ The label is the card's own; task boxes keep their row and lose the bullet. */
874
+ .weave-tldr{margin:0 0 18px;padding:12px 16px;background:var(--weave-new);border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius)}
875
+ .weave-tldr>p,.weave-tldr>ul,.weave-tldr>ol{margin:0 0 6px}
876
+ .weave-tldr>*:last-child{margin-bottom:0}
877
+ .weave-tldr ul:has(>li>input[type="checkbox"]){list-style:none;padding-left:2px}
878
+ .weave-tldr-label{display:block;margin-bottom:3px;font-size:var(--weave-px-prov);font-weight:700;letter-spacing:.08em;color:var(--weave-accent)}
879
+ /* The replay band sits under the header like the header itself: full width,
880
+ the note's gutter, one line of words, one line of controls. Dots on the
881
+ track are the versions, coloured by who made them. */
882
+ .weave-replay{
883
+ display:flex;flex-direction:column;gap:8px;padding:10px var(--weave-note-gutter) 12px;
884
+ background:var(--weave-panel);border-bottom:1px solid var(--weave-line);
885
+ font-size:var(--weave-px-ui);color:var(--weave-dim);
886
+ }
887
+ .weave-replay-note{color:var(--weave-faint)}
888
+ .weave-replay-caption{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:18px}
889
+ .weave-replay-clock{display:inline-flex;color:var(--weave-dim)}
890
+ .weave-replay-position{font-weight:650;color:var(--weave-fg);font-variant-numeric:tabular-nums}
891
+ .weave-replay-who{display:inline-flex;align-items:center;gap:6px;color:var(--weave-dim)}
892
+ .weave-replay-who::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--weave-who)}
893
+ .weave-replay-time{color:var(--weave-faint)}
894
+ .weave-replay-change{color:var(--weave-ok);font-size:var(--weave-px-caption);font-variant-numeric:tabular-nums}
895
+ .weave-replay-human{--weave-who:var(--weave-ok)}
896
+ .weave-replay-agent{--weave-who:var(--weave-accent)}
897
+ .weave-replay-outside,.weave-replay-system{--weave-who:var(--weave-faint)}
898
+ .weave-replay-controls{display:flex;align-items:center;gap:6px}
899
+ .weave-replay-controls button{
900
+ flex:none;display:inline-grid;place-items:center;width:28px;height:28px;padding:0;cursor:pointer;
901
+ color:var(--weave-fg);background:var(--weave-page);
902
+ border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius-pop);
903
+ }
904
+ .weave-replay-controls button:hover:not(:disabled){border-color:var(--weave-accent)}
905
+ .weave-replay-controls button:focus-visible{outline:2px solid var(--weave-accent);outline-offset:1px}
906
+ .weave-replay-controls button:disabled{color:var(--weave-faint);cursor:default;opacity:.6}
907
+ .weave-replay-controls .weave-replay-play{color:var(--weave-page);background:var(--weave-accent);border-color:var(--weave-accent)}
908
+ .weave-replay-controls .weave-replay-play:hover:not(:disabled){filter:brightness(1.08)}
909
+ /* The change bars (the refresh's H2): one bar per version, as tall as the
910
+ change was big, coloured by who made it; the version on screen is ringed.
911
+ The day labels sit under the band. Heights and label positions arrive as
912
+ custom properties through Preact's CSSOM style path, never an attribute. */
913
+ .weave-replay-track{--weave-replay-at:100%;position:relative;flex:1;min-width:80px;height:46px;margin-left:8px}
914
+ .weave-replay-track::before{
915
+ content:"";position:absolute;left:7px;right:7px;top:31px;height:2px;border-radius:999px;
916
+ background:linear-gradient(to right,color-mix(in srgb,var(--weave-accent) 55%,transparent) var(--weave-replay-at),var(--weave-line-strong) var(--weave-replay-at));
765
917
  }
766
- .weave-note-edit:hover,.weave-note-save:hover{color:var(--weave-fg);border-color:var(--weave-accent)}
767
- /* Save is the row's only affirmative action, so the only one with the accent. */
768
- .weave-note-save{color:var(--weave-accent);border-color:var(--weave-accent)}
769
- .weave-note-save:disabled{color:var(--weave-faint);border-color:var(--weave-line-strong);cursor:default}
918
+ .weave-replay-bars{position:absolute;left:7px;right:7px;top:2px;height:26px;pointer-events:none}
919
+ .weave-replay-bar{position:absolute;bottom:0;left:var(--weave-bar-at,0);width:max(1px,min(8px,calc(100% / var(--weave-bars,1) - 2px)));transform:translateX(-50%);height:var(--weave-bar,14%);border-radius:var(--weave-radius);background:var(--weave-who);opacity:.85}
920
+ .weave-replay-ahead{opacity:.35}
921
+ .weave-replay-current{opacity:1;outline:2px solid var(--weave-accent);outline-offset:1px}
922
+ .weave-replay-days{position:absolute;left:7px;right:7px;top:34px;height:12px;pointer-events:none}
923
+ .weave-replay-day{position:absolute;left:var(--weave-day-at,0);transform:translateX(-2px);font-size:var(--weave-px-prov);line-height:12px;color:var(--weave-faint);white-space:nowrap}
924
+ .weave-replay-slider{position:absolute;inset:0;width:100%;height:100%;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}
925
+ .weave-replay-slider:disabled{cursor:default}
926
+ .weave-replay-slider:focus{outline:none}
927
+ .weave-replay-slider::-webkit-slider-runnable-track{height:46px;background:transparent}
928
+ .weave-replay-slider::-moz-range-track{height:46px;background:transparent}
929
+ .weave-replay-slider::-webkit-slider-thumb{
930
+ -webkit-appearance:none;appearance:none;width:14px;height:14px;margin-top:25px;border-radius:999px;
931
+ background:var(--weave-page);border:2px solid var(--weave-accent);box-sizing:border-box;
932
+ }
933
+ .weave-replay-slider::-moz-range-thumb{
934
+ width:14px;height:14px;border-radius:999px;box-sizing:border-box;
935
+ background:var(--weave-page);border:2px solid var(--weave-accent);
936
+ }
937
+ /* Focus fills the thumb: a ring would need an elevation shadow. */
938
+ .weave-replay-slider:focus-visible::-webkit-slider-thumb{background:var(--weave-accent);border-color:var(--weave-page)}
939
+ .weave-replay-slider:focus-visible::-moz-range-thumb{background:var(--weave-accent);border-color:var(--weave-page)}
940
+ .weave-replay-hint{margin:0;color:var(--weave-faint)}
941
+ .weave-replay-mark{background:var(--weave-new);color:inherit}
770
942
  /* Mono and a tighter line than the prose: this is Markdown source, where
771
943
  alignment carries meaning proportional text throws away. */
772
944
  .weave-note-editor{
773
- display:block;width:100%;flex:1;min-height:0;resize:none;
945
+ display:block;width:100%;flex:1 0 auto;min-height:12em;resize:none;
774
946
  padding:12px var(--weave-note-gutter) 28px;box-sizing:border-box;
775
947
  font-family:var(--weave-mono);font-size:var(--weave-px-row);line-height:1.6;
776
- color:var(--weave-fg);background:var(--weave-bg);border:0;outline:0;
948
+ color:var(--weave-fg);background:var(--weave-page);border:0;outline:0;
949
+ }
950
+ /* The \`## Raw\` box under the editor: folded by default so a long
951
+ dictation never outgrows the note, a dashed edge to say "captured, not
952
+ written", and a capped height once open. */
953
+ .weave-raw{
954
+ flex:none;margin:0 var(--weave-note-gutter) 24px;
955
+ border:1px dashed var(--weave-line-strong);border-radius:var(--weave-radius-pop);background:var(--weave-panel);
956
+ }
957
+ .weave-raw-head{display:flex;align-items:center;gap:10px;padding:5px 8px;min-height:24px}
958
+ .weave-raw[data-open] .weave-raw-head{border-bottom:1px dashed var(--weave-line-strong)}
959
+ .weave-raw-toggle{
960
+ display:inline-flex;align-items:center;gap:6px;padding:3px 6px;cursor:pointer;
961
+ font:inherit;font-size:var(--weave-px-ui);font-weight:600;color:var(--weave-fg);
962
+ background:none;border:0;border-radius:var(--weave-radius);
963
+ }
964
+ .weave-raw-toggle:hover{background:var(--weave-line)}
965
+ .weave-raw-toggle:focus-visible{outline:2px solid var(--weave-accent);outline-offset:1px}
966
+ .weave-raw-chevron{flex:none;color:var(--weave-dim);transition:transform .12s ease}
967
+ .weave-raw-toggle[aria-expanded="true"] .weave-raw-chevron{transform:rotate(90deg)}
968
+ .weave-raw-hint{font-size:var(--weave-px-caption);color:var(--weave-faint)}
969
+ .weave-raw-editor{
970
+ display:block;width:100%;box-sizing:border-box;min-height:7em;max-height:18em;
971
+ field-sizing:content;resize:vertical;padding:10px 14px 12px;
972
+ font-family:var(--weave-mono);font-size:var(--weave-px-row);line-height:1.6;
973
+ color:var(--weave-dim);background:transparent;border:0;outline:0;
777
974
  }
975
+ .weave-raw-editor:focus{color:var(--weave-fg)}
778
976
  .weave-note-tags{margin:6px 0 0;display:flex;gap:5px;flex-wrap:wrap}
779
977
  .weave-tag{
780
978
  font-size:var(--weave-px-caption);color:var(--weave-accent);background:var(--weave-panel);
@@ -921,6 +1119,113 @@ body{font-size:var(--weave-px-base)}
921
1119
  border-top:1px solid var(--weave-line);
922
1120
  }
923
1121
 
1122
+ /* graph spotlight (G1) ---------------------------------------------------
1123
+ The field floating top-left over the canvas, and the side sheet top-right.
1124
+ Both are overlays on the stage, so they sit on the panel ground with a
1125
+ hairline and the pop radius — no elevation shadow, per the sheet's rule.
1126
+ The spotlight's voice is --weave-warn: the highlighter colour the WebGL
1127
+ side paints lit edges in (graph.model.ts SPOTLIGHT_EDGE_SLOT), so the chip,
1128
+ the legend, the marked words and the lit dots all say "lit" in one hue.
1129
+ The sheet stops short of the control strip and count line under the
1130
+ canvas (about 54px together) and scrolls inside itself. Button rules are
1131
+ qualified by their overlay (.weave-sheet .weave-sheet-open) because the
1132
+ workspace sheet's \`.weave-workbench button{font:inherit;color:inherit}\`
1133
+ reset is installed later and would outrank a single class. */
1134
+ .weave-spotlight{
1135
+ position:absolute;z-index:3;top:10px;left:10px;width:min(330px,calc(100% - 20px));box-sizing:border-box;
1136
+ display:flex;align-items:center;gap:6px;padding:3px 5px 3px 9px;
1137
+ color:var(--weave-faint);background:var(--weave-panel);
1138
+ border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius-pop);
1139
+ }
1140
+ /* The pill is the focus ring: the input inside it drops the global outline
1141
+ and the frame takes a 2px accent edge (border plus an inset hairline). */
1142
+ .weave-spotlight:focus-within{border-color:var(--weave-accent);box-shadow:inset 0 0 0 1px var(--weave-accent)}
1143
+ .weave-spotlight-input:focus-visible{outline:none}
1144
+ .weave-spotlight-on{color:var(--weave-warn)}
1145
+ .weave-spotlight-icon{flex:none;display:block}
1146
+ .weave-spotlight-input{
1147
+ flex:1;min-width:0;height:24px;padding:0;font:inherit;font-size:var(--weave-px-row);
1148
+ color:var(--weave-fg);background:transparent;border:0;outline:0;
1149
+ }
1150
+ .weave-spotlight-input::placeholder{color:var(--weave-faint)}
1151
+ .weave-spotlight-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
1152
+ .weave-spotlight-count{
1153
+ flex:none;padding:1px 7px;font-size:var(--weave-px-caption);font-weight:650;white-space:nowrap;
1154
+ color:var(--weave-warn);background:color-mix(in srgb,var(--weave-warn) 16%,transparent);border-radius:999px;
1155
+ }
1156
+ .weave-spotlight-none{color:var(--weave-dim);background:var(--weave-line)}
1157
+ .weave-spotlight .weave-spotlight-clear{
1158
+ flex:none;padding:1px 5px;cursor:pointer;font-family:var(--weave-mono);font-size:var(--weave-px-prov);
1159
+ color:var(--weave-faint);background:transparent;border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);
1160
+ }
1161
+ .weave-spotlight .weave-spotlight-clear:hover{color:var(--weave-fg);border-color:var(--weave-accent)}
1162
+ .weave-legend-lit{color:var(--weave-warn)}
1163
+ .weave-sheet{
1164
+ position:absolute;z-index:3;top:10px;right:10px;width:min(300px,calc(100% - 20px));max-height:calc(100% - 74px);
1165
+ box-sizing:border-box;overflow:auto;padding:12px 14px 14px;
1166
+ font-size:var(--weave-px-base);color:var(--weave-fg);background:var(--weave-panel);
1167
+ border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius-pop);
1168
+ }
1169
+ .weave-sheet .weave-sheet-close{
1170
+ position:absolute;top:6px;right:6px;width:24px;height:24px;padding:0;cursor:pointer;
1171
+ font-size:var(--weave-px-display);line-height:1;color:var(--weave-dim);
1172
+ background:transparent;border:0;border-radius:var(--weave-radius);
1173
+ }
1174
+ .weave-sheet .weave-sheet-close:hover{color:var(--weave-fg);background:var(--weave-line)}
1175
+ .weave-sheet-crumb{
1176
+ margin:0 28px 2px 0;display:flex;align-items:center;gap:5px;min-width:0;
1177
+ font-size:var(--weave-px-caption);color:var(--weave-faint);
1178
+ }
1179
+ .weave-sheet-crumb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1180
+ .weave-sheet-title{
1181
+ margin:0 20px 4px 0;font-size:var(--weave-px-title);font-weight:650;line-height:1.3;overflow-wrap:anywhere;
1182
+ }
1183
+ .weave-sheet-meta{margin:0;display:flex;align-items:center;gap:5px;font-size:var(--weave-px-ui);color:var(--weave-dim);text-transform:capitalize}
1184
+ .weave-sheet-when{color:var(--weave-faint);text-transform:none}
1185
+ .weave-sheet-text{
1186
+ margin:10px 0 0;padding:8px 10px;line-height:1.55;overflow-wrap:anywhere;
1187
+ background:var(--weave-new);border:1px solid color-mix(in srgb,var(--weave-accent) 30%,transparent);
1188
+ border-radius:var(--weave-radius-pop);
1189
+ }
1190
+ .weave-sheet-text-head{
1191
+ display:block;margin:0 0 2px;font-size:var(--weave-px-prov);font-weight:700;letter-spacing:.09em;
1192
+ text-transform:uppercase;color:var(--weave-accent);
1193
+ }
1194
+ .weave-sheet-mark{border-radius:var(--weave-radius)}
1195
+ .weave-sheet-why{margin:8px 0 0;display:flex;gap:5px;font-size:var(--weave-px-caption);color:var(--weave-dim)}
1196
+ .weave-sheet-why span{color:var(--weave-warn)}
1197
+ .weave-sheet-section{margin:12px 0 0}
1198
+ .weave-sheet-heading{
1199
+ margin:0 0 3px;display:flex;align-items:center;font-size:var(--weave-px-caption);font-weight:600;
1200
+ letter-spacing:.09em;text-transform:uppercase;color:var(--weave-faint);
1201
+ }
1202
+ .weave-sheet-count{margin-left:auto;font-family:var(--weave-mono);letter-spacing:0}
1203
+ .weave-sheet-rows{margin:0;padding:0;list-style:none}
1204
+ .weave-sheet .weave-sheet-row{
1205
+ display:flex;align-items:center;gap:7px;width:100%;padding:3px 0;cursor:pointer;text-align:left;
1206
+ font:inherit;font-size:var(--weave-px-row);color:var(--weave-fg);background:none;border:0;
1207
+ }
1208
+ .weave-sheet .weave-sheet-row:hover{color:var(--weave-accent)}
1209
+ .weave-sheet-row-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
1210
+ .weave-sheet-dot{flex:none;width:6px;height:6px;border-radius:999px;background:var(--weave-faint)}
1211
+ .weave-sheet-dot-lit{background:var(--weave-warn)}
1212
+ .weave-sheet-more{margin:2px 0 0;font-size:var(--weave-px-caption);color:var(--weave-faint)}
1213
+ .weave-sheet-actions{margin:14px 0 0;display:flex;gap:6px;flex-wrap:wrap}
1214
+ .weave-sheet .weave-sheet-open,.weave-sheet .weave-sheet-split{
1215
+ padding:5px 11px;cursor:pointer;font:inherit;font-size:var(--weave-px-ui);font-weight:600;
1216
+ border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);
1217
+ }
1218
+ .weave-sheet .weave-sheet-open{color:var(--weave-page);background:var(--weave-accent);border-color:var(--weave-accent)}
1219
+ .weave-sheet .weave-sheet-open:hover{filter:brightness(1.08)}
1220
+ .weave-sheet .weave-sheet-split{color:var(--weave-fg);background:var(--weave-page)}
1221
+ .weave-sheet .weave-sheet-split:hover{border-color:var(--weave-accent)}
1222
+ /* Side by side the field (330) and the sheet (300) need about 660px of
1223
+ stage; a narrower graph — a split pane, a small window — drops the sheet
1224
+ under the field instead of letting the two overlap. */
1225
+ .weave-graph{container-type:inline-size}
1226
+ @container (max-width:680px){.weave-sheet{top:50px;max-height:calc(100% - 114px)}}
1227
+ /* end graph spotlight ---------------------------------------------------- */
1228
+
924
1229
  /* context rail ---------------------------------------------------------- */
925
1230
  /* The \`.weave-empty\` block that used to sit above went with \`EmptyState.tsx\`
926
1231
  in P3: every column now has its own empty state (\`treeEmptyMessage\`,
@@ -937,6 +1242,24 @@ body{font-size:var(--weave-px-base)}
937
1242
  border, cursor — plus a full-width flex row so the count badge lands on the
938
1243
  right edge of the *column*, not of the text. */
939
1244
  .weave-ctx-group{padding:2px var(--weave-gutter) 2px}
1245
+ .weave-trail{padding-top:6px;padding-bottom:6px;border-bottom:1px solid var(--weave-line)}
1246
+ .weave-trail-head{display:flex;align-items:center;gap:6px;font-size:var(--weave-px-caption);font-weight:600;letter-spacing:.09em;color:var(--weave-faint);text-transform:uppercase}
1247
+ .weave-trail-head .weave-ctx-count{margin-left:0}
1248
+ .weave-trail-replay,.weave-trail-turn{font:inherit;font-size:var(--weave-px-caption);letter-spacing:0;text-transform:none;color:var(--weave-dim);background:none;border:1px solid var(--weave-line);border-radius:var(--weave-radius);padding:0 6px;cursor:pointer}
1249
+ .weave-trail-replay{margin-left:auto}
1250
+ .weave-trail-replay:hover,.weave-trail-turn:hover{color:var(--weave-fg)}
1251
+ .weave-trail-turn-on{color:var(--weave-accent);border-color:var(--weave-accent)}
1252
+ .weave-trail-steps{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px}
1253
+ .weave-trail-step{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;padding-left:10px;position:relative;line-height:1.45}
1254
+ .weave-trail-step::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:999px;background:var(--weave-warn)}
1255
+ .weave-trail-read::before{background:var(--weave-ok)}
1256
+ .weave-trail-wrote::before{background:var(--weave-accent)}
1257
+ .weave-trail-verb{color:var(--weave-dim)}
1258
+ .weave-trail-detail{color:var(--weave-faint);font-family:var(--weave-mono);font-size:var(--weave-px-caption)}
1259
+ .weave-trail-note{font:inherit;color:var(--weave-fg);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:var(--weave-line-strong);text-underline-offset:2px}
1260
+ .weave-trail-note:hover{color:var(--weave-accent)}
1261
+ .weave-trail-empty{margin:4px 0 0;color:var(--weave-faint)}
1262
+ .weave-trail-turns{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
940
1263
  .weave-ctx-head{margin:0}
941
1264
  .weave-ctx-heading{
942
1265
  display:flex;align-items:center;gap:5px;width:100%;margin:0;padding:2px 0;
@@ -983,6 +1306,7 @@ body{font-size:var(--weave-px-base)}
983
1306
  .weave-status-cwd,.weave-status-sel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
984
1307
  .weave-status-cwd{max-width:38%;color:var(--weave-faint)}
985
1308
  .weave-status-sel{color:var(--weave-fg)}
1309
+ .weave-status-hint{margin-left:auto;padding-left:8px;white-space:nowrap;color:var(--weave-faint)}
986
1310
 
987
1311
  /* overlays: the ⌘K palette and the ? help sheet (P4) --------------------- */
988
1312
  /* The scrim is a click target that closes, and the reason both overlays sit
@@ -998,31 +1322,77 @@ body{font-size:var(--weave-px-base)}
998
1322
  overflow:hidden;background:var(--weave-panel);color:var(--weave-fg);
999
1323
  border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius-pop);
1000
1324
  }
1325
+ /* The ⌘K palette, grouped and compact: an input row (glyph, query, Esc), a
1326
+ scope row of pills that Tab cycles, one line per result under small
1327
+ capitals group heads, and a footer of key hints. Wider than the help sheet
1328
+ because a row carries a title, a snippet and a meta column side by side. */
1329
+ .weave-palette{max-width:640px}
1330
+ .weave-palette-bar{
1331
+ flex:none;display:flex;align-items:center;gap:8px;padding:0 11px;
1332
+ border-bottom:1px solid var(--weave-line);
1333
+ }
1334
+ .weave-palette-glyph{color:var(--weave-faint)}
1001
1335
  .weave-palette-input{
1002
- flex:none;height:34px;padding:0 11px;font:inherit;font-size:var(--weave-px-subhead);
1003
- color:var(--weave-fg);background:transparent;border:0;
1004
- border-bottom:1px solid var(--weave-line);border-radius:0;
1336
+ flex:1;min-width:0;height:36px;padding:0;font:inherit;font-size:var(--weave-px-subhead);
1337
+ color:var(--weave-fg);background:transparent;border:0;border-radius:0;
1338
+ }
1339
+ .weave-palette-input:focus-visible{outline:0}
1340
+ .weave-palette-input::-webkit-search-cancel-button{display:none}
1341
+ .weave-palette-bar:focus-within{box-shadow:inset 0 -1px 0 var(--weave-accent)}
1342
+ .weave-palette-kbd{
1343
+ flex:none;padding:0 4px;font-family:inherit;font-size:var(--weave-px-prov);line-height:14px;
1344
+ color:var(--weave-faint);border:1px solid var(--weave-line-strong);border-radius:var(--weave-radius);
1345
+ }
1346
+ .weave-palette-scopes{
1347
+ flex:none;display:flex;flex-wrap:wrap;gap:3px;padding:5px 8px;
1348
+ border-bottom:1px solid var(--weave-line);
1349
+ }
1350
+ .weave-palette-scope{
1351
+ font:inherit;font-size:var(--weave-px-caption);line-height:1;padding:3px 9px;cursor:pointer;
1352
+ color:var(--weave-dim);background:none;border:0;border-radius:999px;
1353
+ }
1354
+ .weave-palette-scope:hover{color:var(--weave-fg);background:var(--weave-line)}
1355
+ .weave-palette-scope[aria-pressed="true"]{color:var(--weave-panel);background:var(--weave-fg);font-weight:600}
1356
+ .weave-palette-scope-count{font-variant-numeric:tabular-nums}
1357
+ .weave-hits{flex:1;min-height:0;overflow:auto;margin:0;padding:0 0 4px;list-style:none}
1358
+ .weave-hit-section{list-style:none}
1359
+ .weave-hit-group{
1360
+ padding:7px 11px 2px;font-size:var(--weave-px-prov);font-weight:700;letter-spacing:.08em;
1361
+ text-transform:uppercase;color:var(--weave-faint);
1005
1362
  }
1006
- .weave-palette-input:focus-visible{outline-offset:-2px}
1007
- .weave-hits{flex:1;min-height:0;overflow:auto;margin:0;padding:3px 0;list-style:none}
1363
+ .weave-hit-rows{margin:0;padding:0;list-style:none}
1008
1364
  .weave-hit{
1009
- display:flex;align-items:baseline;gap:7px;padding:3px 11px;cursor:pointer;
1010
- min-width:0;white-space:nowrap;
1365
+ display:flex;align-items:center;gap:8px;padding:3px 11px;cursor:pointer;
1366
+ min-width:0;white-space:nowrap;font-size:var(--weave-px-row);
1011
1367
  }
1012
1368
  .weave-hit-on{background:var(--weave-new);box-shadow:inset 2px 0 0 var(--weave-accent)}
1013
- .weave-hit-badge{
1014
- flex:none;font-size:var(--weave-px-prov);letter-spacing:.06em;text-transform:uppercase;color:var(--weave-faint);
1015
- min-width:56px;
1016
- }
1017
- .weave-hit-note .weave-hit-badge{color:var(--weave-accent)}
1018
- .weave-hit-label{flex:none;max-width:46%;overflow:hidden;text-overflow:ellipsis}
1369
+ .weave-hit-icon{color:var(--weave-faint)}
1370
+ .weave-hit-notes .weave-hit-icon{color:var(--weave-accent)}
1371
+ .weave-hit-label{flex:none;max-width:46%;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--weave-fg)}
1372
+ .weave-hit-mono{font-family:var(--weave-mono);font-size:var(--weave-px-ui);font-weight:500}
1019
1373
  .weave-hit-detail{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--weave-px-ui);color:var(--weave-dim)}
1374
+ /* The match marks (search rows, the graph sheet) are a find-in-page amber.
1375
+ Dark themes tint their own light --weave-warn, and the marked words go
1376
+ white: the theme's text on that tint measured 3.3–3.6:1 in the Catppuccin
1377
+ darks, white is 5.5:1 or better in every dark theme. A light theme's
1378
+ --weave-warn is a deep brown that tints to mud, so light schemes take a
1379
+ fixed amber under their own text instead. */
1380
+ .weave-hit-mark,.weave-sheet-mark{color:#fff;background:color-mix(in srgb,var(--weave-warn) 28%,transparent)}
1381
+ .weave-hit-mark{border-radius:var(--weave-radius);padding:0 1px}
1382
+ :root[data-weave-scheme="light"] .weave-hit-mark,:root[data-weave-scheme="light"] .weave-sheet-mark{color:var(--weave-fg);background:color-mix(in srgb,#f2a93b 34%,transparent)}
1383
+ .weave-hit-meta{flex:none;margin-left:auto;font-size:var(--weave-px-caption);color:var(--weave-faint);font-variant-numeric:tabular-nums}
1020
1384
  .weave-palette-status{margin:0;padding:14px 11px;color:var(--weave-dim);line-height:1.5}
1021
1385
  .weave-palette-foot,.weave-help-foot{
1022
1386
  display:flex;gap:12px;margin:0;padding:4px 11px;font-size:var(--weave-px-caption);color:var(--weave-faint);
1023
1387
  border-top:1px solid var(--weave-line);
1024
1388
  }
1025
- .weave-palette-hint,.weave-help-hint{margin-left:auto}
1389
+ .weave-palette-foot{align-items:center;flex-wrap:wrap;row-gap:2px;min-height:26px;box-sizing:border-box;background:var(--weave-bg)}
1390
+ .weave-palette-light{
1391
+ margin-left:auto;display:flex;align-items:center;gap:6px;padding:0;cursor:pointer;white-space:nowrap;
1392
+ font:inherit;font-weight:600;color:var(--weave-accent);background:none;border:0;
1393
+ }
1394
+ .weave-palette-light .weave-palette-kbd{color:inherit;border-color:currentColor}
1395
+ .weave-help-hint{margin-left:auto}
1026
1396
  .weave-help-title{margin:0;padding:9px 11px;font-size:var(--weave-px-base);font-weight:600;border-bottom:1px solid var(--weave-line)}
1027
1397
  .weave-keys{flex:1;min-height:0;overflow:auto;margin:0;padding:5px 11px}
1028
1398
  .weave-key-group{margin:0 0 3px;font-size:var(--weave-px-prov);letter-spacing:.09em;text-transform:uppercase;color:var(--weave-faint)}
@@ -1067,7 +1437,7 @@ body{font-size:var(--weave-px-base)}
1067
1437
  @keyframes weave-fade-in{from{opacity:0}}
1068
1438
  @keyframes weave-overlay-in{from{opacity:0;transform:translateY(4px)}}
1069
1439
  @media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
1070
- `,nk=["style[nonce]","style","script[nonce]","script[src]"];function rk(e){for(let t of nk){let n=e.querySelector(t)?.nonce;if(typeof n=="string"&&n!=="")return n}return null}function kf(e,t=tk+xf){let n=e.createElement("style"),r=rk(e);return r!==null&&(n.nonce=r),n.textContent=t,e.head.appendChild(n),r!==null}var _f=document.getElementById("app");if(_f!==null){kf(document),ik();let e=ml(document.getElementById(gl)?.textContent??null);fl(f(bf,{cwd:e.cwd,initialWidth:window.innerWidth,platform:navigator.platform}),_f)}function ik(){let e=wf(xo(localStorage)??"system");e!==null&&(document.documentElement.dataset.weaveTheme=e)}})();
1440
+ `,IT=["style[nonce]","style","script[nonce]","script[src]"];function MT(e){for(let t of IT){let n=e.querySelector(t)?.nonce;if(typeof n=="string"&&n!=="")return n}return null}function Mm(e,t=DT+Im){let n=e.createElement("style"),r=MT(e);return r!==null&&(n.nonce=r),n.textContent=t,e.head.appendChild(n),r!==null}var Gm=document.getElementById("app");if(Gm!==null){Mm(document),GT();let e=fc(document.getElementById(pc)?.textContent??null);hc(p(Dm,{cwd:e.cwd,initialWidth:window.innerWidth,platform:navigator.platform}),Gm)}function GT(){let e=Nm(to(localStorage)??"system");e!==null&&(document.documentElement.dataset.weaveTheme=e)}})();
1071
1441
  /*! Bundled license information:
1072
1442
 
1073
1443
  dompurify/dist/purify.es.mjs: