living-ai-documentation 3.59.0 → 3.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/frontend-svelte/assets/{index-DHwfDFY6.js → index-CCreABLx.js} +148 -111
- package/dist/frontend-svelte/assets/index-tG5nsuIP.css +1 -0
- package/dist/frontend-svelte/assets/{main-vSl2O7Hg.js → main-B1NZokva.js} +1 -1
- package/dist/frontend-svelte/i18n/en.json +59 -0
- package/dist/frontend-svelte/i18n/fr.json +59 -0
- package/dist/frontend-svelte/index.html +2 -2
- package/dist/src/routes/templates.d.ts.map +1 -1
- package/dist/src/routes/templates.js +13 -2
- package/dist/src/routes/templates.js.map +1 -1
- package/dist/src/server.js +1 -1
- package/dist/src/server.js.map +1 -1
- package/package.json +1 -1
- package/dist/frontend-svelte/assets/index-BTeVqFXd.css +0 -1
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
import e from"https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),e.initialize({startOnLoad:!1,theme:`default`}),window.mermaid=e;var t=Array.isArray,n=Array.prototype.indexOf,r=Array.prototype.includes,i=Array.from,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyDescriptors,c=Object.prototype,l=Array.prototype,u=Object.getPrototypeOf,d=Object.isExtensible,f=()=>{};function p(e){return e()}function m(e){for(var t=0;t<e.length;t++)e[t]()}function h(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var g=1024,_=2048,v=4096,y=8192,b=16384,x=32768,S=1<<25,C=65536,w=1<<19,T=1<<20,E=1<<25,D=65536,ee=1<<21,te=1<<22,O=1<<23,k=Symbol(`$state`),ne=Symbol(`legacy props`),A=Symbol(``),re=Symbol(`attributes`),ie=Symbol(`class`),ae=Symbol(`style`),oe=Symbol(`text`),se=Symbol(`form reset`),ce=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},le=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ue(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function de(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function fe(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function pe(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function me(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function he(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function ge(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function _e(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function ve(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function ye(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function be(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function xe(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Se={},Ce=Symbol(`uninitialized`),we=`http://www.w3.org/1999/xhtml`,Te=`http://www.w3.org/2000/svg`,Ee=`http://www.w3.org/1998/Math/MathML`;function De(){console.warn(`https://svelte.dev/e/derived_inert`)}function Oe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ke(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ae(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var je=!1;function Me(e){je=e}var Ne;function Pe(e){if(e===null)throw Oe(),Se;return Ne=e}function Fe(){return Pe(pn(Ne))}function j(e){if(je){if(pn(Ne)!==null)throw Oe(),Se;Ne=e}}function Ie(e=1){if(je){for(var t=e,n=Ne;t--;)n=pn(n);Ne=n}}function Le(e=!0){for(var t=0,n=Ne;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=pn(n);e&&n.remove(),n=i}}function Re(e){if(!e||e.nodeType!==8)throw Oe(),Se;return e.data}function ze(e){return e===this.v}function Be(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ve(e){return!Be(e,this.v)}var He=!1,Ue=!1;function We(){Ue=!0}var Ge=null;function Ke(e){Ge=e}function qe(e,t=!1,n){Ge={p:Ge,i:!1,c:null,e:null,s:e,x:null,r:nr,l:Ue&&!t?{s:null,u:null,$:[]}:null}}function Je(e){var t=Ge,n=t.e;if(n!==null){t.e=null;for(var r of n)An(r)}return e!==void 0&&(t.x=e),t.i=!0,Ge=t.p,e??{}}function Ye(){return!Ue||Ge!==null&&Ge.l===null}var Xe=[];function Ze(){var e=Xe;Xe=[],m(e)}function Qe(e){if(Xe.length===0&&!Mt){var t=Xe;queueMicrotask(()=>{t===Xe&&Ze()})}Xe.push(e)}function $e(){for(;Xe.length>0;)Ze()}function et(e){var t=nr;if(t===null)return $n.f|=O,e;if(!(t.f&32768)&&!(t.f&4))throw e;tt(e,t)}function tt(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var nt=~(_|v|g);function rt(e,t){e.f=e.f&nt|t}function it(e){e.f&512||e.deps===null?rt(e,g):rt(e,v)}function at(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=D,at(t.deps))}function ot(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),at(e.deps),rt(e,g)}var st=!1,ct=!1;function lt(e){var t=ct;try{return ct=!1,[e(),ct]}finally{ct=t}}function ut(e){let t=0,n=Zt(0),r;return()=>{Dn()&&(V(n),Fn(()=>(t===0&&(r=wr(()=>e(()=>tn(n)))),t+=1,()=>{Qe(()=>{--t,t===0&&(r?.(),r=void 0,tn(n))})})))}}var dt=C|w;function ft(e,t,n,r){new M(e,t,n,r)}var M=class{parent;is_pending=!1;transform_error;#e;#t=je?Ne:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=ut(()=>(this.#m=Zt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=nr;t.b=this,t.f|=128,n(e)},this.parent=nr.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=In(()=>{if(je){let e=this.#t;Fe();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},dt),je&&(this.#e=Ne)}#g(){try{this.#a=Ln(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Ln(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Ln(()=>e(this.#e)),Qe(()=>{var e=this.#c=document.createDocumentFragment(),t=dn();e.append(t),this.#a=this.#x(()=>Ln(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Wn(this.#o,()=>{this.#o=null}),this.#b(Ot))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Ln(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Jn(this.#a,e);let t=this.#n.pending;this.#o=Ln(()=>t(this.#e))}else this.#b(Ot)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){ot(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=nr,n=$n,r=Ge;rr(this.#i),tr(this.#i),Ke(this.#i.ctx);try{return Rt.ensure(),e()}catch(e){return et(e),null}finally{rr(t),tr(n),Ke(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Wn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Qe(()=>{this.#d=!1,this.#m&&$t(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),V(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Ot?.is_fork?(this.#a&&Ot.skip_effect(this.#a),this.#o&&Ot.skip_effect(this.#o),this.#s&&Ot.skip_effect(this.#s),Ot.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Vn(this.#a),null),this.#o&&=(Vn(this.#o),null),this.#s&&=(Vn(this.#s),null),je&&(Pe(this.#t),Ie(),Pe(Le()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ae();return}r=!0,i&&xe(),this.#s!==null&&Wn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){tt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Ln(()=>{var t=nr;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return tt(e,this.#i.parent),null}}))};Qe(()=>{var t;try{t=this.transform_error(e)}catch(e){tt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>tt(e,this.#i&&this.#i.parent)):o(t)})}};function pt(e,t,n,r){let i=Ye()?_t:bt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=nr,c=mt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){tt(e,s)}ht()}}var d=gt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>yt(e))).then(u).catch(e=>tt(e,s)).finally(d)}l?l.then(()=>{c(),f(),ht()}):f()}function mt(){var e=nr,t=$n,n=Ge,r=Ot;return function(i=!0){rr(e),tr(t),Ke(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function ht(e=!0){rr(null),tr(null),Ke(null),e&&Ot?.deactivate()}function gt(){var e=nr,t=e.b,n=Ot,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function _t(e){var t=2|_;return nr!==null&&(nr.f|=w),{ctx:Ge,deps:null,effects:null,equals:ze,f:t,fn:e,reactions:null,rv:0,v:Ce,wv:0,parent:nr,ac:null}}var vt=Symbol(`obsolete`);function yt(e,t,n){let r=nr;r===null&&de();var i=void 0,a=Zt(Ce),o=!$n,s=new Set;return Pn(()=>{var t=nr,n=h();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ce&&n.reject(e)}).finally(ht)}catch(e){n.reject(e),ht()}var c=Ot;if(o){if(t.f&32768)var l=gt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(vt);else for(let e of s.values())e.reject(vt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==vt&&(c.activate(),t?(a.f|=O,$t(a,t)):(a.f&8388608&&(a.f^=O),$t(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),On(()=>{for(let e of s)e.reject(vt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function N(e){let t=_t(e);return He||ar(t),t}function bt(e){let t=_t(e);return t.equals=Ve,t}function xt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Vn(t[n])}}function St(e){var t,n=nr,r=e.parent;if(!Zn&&r!==null&&e.v!==Ce&&r.f&24576)return De(),e.v;rr(r);try{e.f&=~D,xt(e),t=_r(e)}finally{rr(n)}return t}function Ct(e){var t=St(e);if(!e.equals(t)&&(e.wv=mr(),(!Ot?.is_fork||e.deps===null)&&(Ot===null?e.v=t:(Ot.capture(e,t,!0),kt?.capture(e,t,!0)),e.deps===null))){rt(e,g);return}Zn||(At===null?it(e):(Dn()||Ot?.is_fork)&&At.set(e,t))}function wt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ce),t.fn!==null&&(t.teardown=f),t.ac=null,yr(t,0),zn(t))}function Tt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&br(t)}var Et=null,Dt=null,Ot=null,kt=null,At=null,jt=null,Mt=!1,Nt=!1,Pt=null,Ft=null,It=0,Lt=1,Rt=class e{id=Lt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){Dt===null?Et=Dt=this:(Dt.#n=this,this.#t=Dt),Dt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)rt(r,_),t(r);for(r of n.m)rt(r,v),t(r)}this.#p.add(e)}#g(){this.#e=!0,It++>1e3&&(this.#S(),Bt());for(let e of this.#u)this.#d.delete(e),rt(e,_),this.schedule(e);for(let e of this.#d)rt(e,v),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Pt=[],r=[],i=Ft=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw qt(e),this.#h()||this.discard(),t}if(Ot=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Pt=null,Ft=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Kt(e,t);i.length>0&&Ot.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),kt=this,Ht(r),Ht(n),kt=null,this.#s?.resolve();var s=Ot;if(this.#a===0&&(this.#c.length===0||s!==null)&&(this.#S(),He&&(this.#x(),Ot=s)),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=g;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=g:i&4?t.push(r):He&&i&16777224?n.push(r):hr(r)&&(i&16&&this.#d.add(r),br(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),rt(i,_),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#S(),Ot=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)ot(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==Ce&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),At?.set(e,t)),this.is_fork||(e.v=t)}activate(){Ot=this}deactivate(){Ot=null,At=null}flush(){try{Nt=!0,Ot=this,this.#g()}finally{It=0,jt=null,Pt=null,Ft=null,Nt=!1,Ot=null,At=null,Yt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(vt);this.#S(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}#x(){for(let u=Et;u!==null;u=u.#n){var e=u.id<this.id,t=[];for(let[r,[i,a]]of this.current){if(u.current.has(r)){var n=u.current.get(r)[0];if(e&&i!==n)u.current.set(r,[i,a]);else continue}t.push(r)}if(e)for(let[e,t]of this.async_deriveds){let n=u.async_deriveds.get(e);n&&t.promise.then(n.resolve).catch(n.reject)}var r=[...u.current.keys()].filter(e=>!u.current.get(e)[1]);if(!(!u.#e||r.length===0)){var i=r.filter(e=>!this.current.has(e));if(i.length===0)e&&u.discard();else if(t.length>0){if(e)for(let e of this.#p)u.unskip_effect(e,e=>{e.f&4194320?u.schedule(e):u.#b([e])});u.activate();var a=new Set,o=new Map;for(var s of t)Ut(s,i,a,o);o=new Map;var c=[...u.current].filter(([e,t])=>{let n=this.current.get(e);return n?n[0]!==t[0]||n[1]!==t[1]:!0}).map(([e])=>e);if(c.length>0)for(let e of this.#l)!(e.f&155648)&&Wt(e,c,o)&&(e.f&4194320?(rt(e,_),u.schedule(e)):u.#u.add(e));if(u.#c.length>0&&!u.#m){u.apply();for(var l of u.#c)u.#_(l,[],[]);u.#c=[]}u.deactivate()}}}}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,Qe(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=h()).promise}static ensure(){if(Ot===null){let t=Ot=new e;!Nt&&!Mt&&Qe(()=>{t.#e||t.flush()})}return Ot}apply(){if(!He||!this.is_fork&&this.#t===null&&this.#n===null){At=null;return}At=new Map;for(let[e,[t]]of this.current)At.set(e,t);for(let t=Et;t!==null;t=t.#n)if(!(t===this||t.is_fork)){var e=!1;if(t.id<this.id){for(let[n,[,r]]of t.current)if(!r&&this.current.has(n)){e=!0;break}}if(!e)for(let[e,n]of t.previous)At.has(e)||At.set(e,n)}}schedule(e){if(jt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Pt!==null&&t===nr&&(He||($n===null||!($n.f&2))&&!st))return;if(n&96){if(!(n&1024))return;t.f^=g}}this.#c.push(t)}#S(){if(this.linked){var e=this.#t,t=this.#n;e===null?Et=t:e.#n=t,t===null?Dt=e:t.#t=e,this.linked=!1}}};function zt(e){var t=Mt;Mt=!0;try{var n;for(e&&(Ot!==null&&!Ot.is_fork&&Ot.flush(),n=e());;){if($e(),Ot===null)return n;Ot.flush()}}finally{Mt=t}}function Bt(){try{ge()}catch(e){tt(e,jt)}}var Vt=null;function Ht(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&hr(r)&&(Vt=new Set,br(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Un(r),Vt?.size>0)){Yt.clear();for(let e of Vt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Vt.has(n)&&(Vt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||br(n)}}Vt.clear()}}Vt=null}}function Ut(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Ut(i,t,n,r):e&4194320&&!(e&2048)&&Wt(i,t,r)&&(rt(i,_),Gt(i))}}function Wt(e,t,n){let i=n.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(r.call(t,i))return!0;if(i.f&2&&Wt(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Gt(e){Ot.schedule(e)}function Kt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),rt(e,g);for(var n=e.first;n!==null;)Kt(n,t),n=n.next}}function qt(e){rt(e,g);for(var t=e.first;t!==null;)qt(t),t=t.next}var Jt=new Set,Yt=new Map,Xt=!1;function Zt(e,t){return{f:0,v:e,reactions:null,equals:ze,rv:0,wv:0}}function P(e,t){let n=Zt(e,t);return ar(n),n}function Qt(e,t=!1,n=!0){let r=Zt(e);return t||(r.equals=Ve),Ue&&n&&Ge!==null&&Ge.l!==null&&(Ge.l.s??=[]).push(r),r}function F(e,t,n=!1){return $n!==null&&(!er||$n.f&131072)&&Ye()&&$n.f&4325394&&(ir===null||!ir.has(e))&&be(),$t(e,n?I(t):t,Ft)}function $t(e,t,n=null){if(!e.equals(t)){Yt.set(e,Zn?t:e.v);var r=Rt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&St(t),At===null&&it(t)}e.wv=mr(),nn(e,_,n),Ye()&&nr!==null&&nr.f&1024&&!(nr.f&96)&&(cr===null?lr([e]):cr.push(e)),!r.is_fork&&Jt.size>0&&!Xt&&en()}return t}function en(){Xt=!1;for(let e of Jt){e.f&1024&&rt(e,v);let t;try{t=hr(e)}catch{t=!0}t&&br(e)}Jt.clear()}function tn(e){F(e,e.v+1)}function nn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ye(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===nr)){var l=(c&_)===0;if(l&&rt(s,t),c&131072)Jt.add(s);else if(c&2){var u=s;At?.delete(u),c&65536||(c&512&&(nr===null||!(nr.f&2097152))&&(s.f|=D),nn(u,v,n))}else if(l){var d=s;c&16&&Vt!==null&&Vt.add(d),n===null?Gt(d):n.push(d)}}}}function I(e){if(typeof e!=`object`||!e||k in e)return e;let n=u(e);if(n!==c&&n!==l)return e;var r=new Map,i=t(e),a=P(0),s=null,d=fr,f=e=>{if(fr===d)return e();var t=$n,n=fr;tr(null),pr(d);var r=e();return tr(t),pr(n),r};return i&&r.set(`length`,P(e.length,s)),new Proxy(e,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&ve();var i=r.get(t);return i===void 0?f(()=>{var e=P(n.value,s);return r.set(t,e),e}):F(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>P(Ce,s));r.set(t,e),tn(a)}}else F(n,Ce),tn(a);return!0},get(t,n,i){if(n===k)return e;var a=r.get(n),c=n in t;if(a===void 0&&(!c||o(t,n)?.writable)&&(a=f(()=>P(I(c?t[n]:Ce),s)),r.set(n,a)),a!==void 0){var l=V(a);return l===Ce?void 0:l}return Reflect.get(t,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=V(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Ce)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===k)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Ce||Reflect.has(e,t);return(n!==void 0||nr!==null&&(!i||o(e,t)?.writable))&&(n===void 0&&(n=f(()=>P(i?I(e[t]):Ce,s)),r.set(t,n)),V(n)===Ce)?!1:i},set(e,t,n,c){var l=r.get(t),u=t in e;if(i&&t===`length`)for(var d=n;d<l.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>P(Ce,s)),r.set(d+``,p)):F(p,Ce)}if(l===void 0)(!u||o(e,t)?.writable)&&(l=f(()=>P(void 0,s)),F(l,I(n)),r.set(t,l));else{u=l.v!==Ce;var m=f(()=>I(n));F(l,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(c,n),!u){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&F(g,_+1)}tn(a)}return!0},ownKeys(e){V(a);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Ce});for(var[n,i]of r)i.v!==Ce&&!(n in e)&&t.push(n);return t},setPrototypeOf(){ye()}})}function rn(e){try{if(typeof e==`object`&&e&&k in e)return e[k]}catch{}return e}function an(e,t){return Object.is(rn(e),rn(t))}var on,sn,cn,ln;function un(){if(on===void 0){on=window,sn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;cn=o(t,`firstChild`).get,ln=o(t,`nextSibling`).get,d(e)&&(e[ie]=void 0,e[re]=null,e[ae]=void 0,e.__e=void 0),d(n)&&(n[oe]=void 0)}}function dn(e=``){return document.createTextNode(e)}function fn(e){return cn.call(e)}function pn(e){return ln.call(e)}function L(e,t){if(!je)return fn(e);var n=fn(Ne);if(n===null)n=Ne.appendChild(dn());else if(t&&n.nodeType!==3){var r=dn();return n?.before(r),Pe(r),r}return t&&_n(n),Pe(n),n}function R(e,t=!1){if(!je){var n=fn(e);return n instanceof Comment&&n.data===``?pn(n):n}if(t){if(Ne?.nodeType!==3){var r=dn();return Ne?.before(r),Pe(r),r}_n(Ne)}return Ne}function z(e,t=1,n=!1){let r=je?Ne:e;for(var i;t--;)i=r,r=pn(r);if(!je)return r;if(n){if(r?.nodeType!==3){var a=dn();return r===null?i?.after(a):r.before(a),Pe(a),a}_n(r)}return Pe(r),r}function mn(e){e.textContent=``}function hn(){return!He||Vt!==null?!1:(nr.f&x)!==0}function gn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function _n(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function vn(e,t){if(t){let t=document.body;e.autofocus=!0,Qe(()=>{document.activeElement===t&&e.focus()})}}function yn(e){je&&fn(e)!==null&&mn(e)}var bn=!1;function xn(){bn||(bn=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[se]?.()})},{capture:!0}))}function Sn(e){var t=$n,n=nr;tr(null),rr(null);try{return e()}finally{tr(t),rr(n)}}function Cn(e,t,n,r=n){e.addEventListener(t,()=>Sn(n));let i=e[se];i?e[se]=()=>{i(),r(!0)}:e[se]=()=>r(!0),xn()}function wn(e){nr===null&&($n===null&&he(e),me()),Zn&&pe(e)}function Tn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function En(e,t){var n=nr;n!==null&&n.f&8192&&(e|=y);var r={ctx:Ge,deps:null,nodes:null,f:e|_|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Ot?.register_created_effect(r);var i=r;if(e&4)Pt===null?Rt.ensure().schedule(r):Pt.push(r);else if(t!==null){try{br(r)}catch(e){throw Vn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=C))}if(i!==null&&(i.parent=n,n!==null&&Tn(i,n),$n!==null&&$n.f&2&&!(e&64))){var a=$n;(a.effects??=[]).push(i)}return r}function Dn(){return $n!==null&&!er}function On(e){let t=En(8,null);return rt(t,g),t.teardown=e,t}function kn(e){wn(`$effect`);var t=nr.f;if(!$n&&t&32&&Ge!==null&&!Ge.i){var n=Ge;(n.e??=[]).push(e)}else return An(e)}function An(e){return En(4|T,e)}function jn(e){return wn(`$effect.pre`),En(8|T,e)}function Mn(e){Rt.ensure();let t=En(64|w,e);return(e={})=>new Promise(n=>{e.outro?Wn(t,()=>{Vn(t),n(void 0)}):(Vn(t),n(void 0))})}function Nn(e){return En(4,e)}function Pn(e){return En(te|w,e)}function Fn(e,t=0){return En(8|t,e)}function B(e,t=[],n=[],r=[]){pt(r,t,n,t=>{En(8,()=>{e(...t.map(V))})})}function In(e,t=0){return En(16|t,e)}function Ln(e){return En(32|w,e)}function Rn(e){var t=e.teardown;if(t!==null){let e=Zn,n=$n;Qn(!0),tr(null);try{t.call(null)}finally{Qn(e),tr(n)}}}function zn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Sn(()=>{e.abort(ce)});var r=n.next;n.f&64?n.parent=null:Vn(n,t),n=r}}function Bn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Vn(t),t=n}}function Vn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Hn(e.nodes.start,e.nodes.end),n=!0),e.f|=S,zn(e,t&&!n),yr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Rn(e),e.f^=S,e.f|=b;var i=e.parent;i!==null&&i.first!==null&&Un(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Hn(e,t){for(;e!==null;){var n=e===t?null:pn(e);e.remove(),e=n}}function Un(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Wn(e,t,n=!0){var r=[];Gn(e,r,!0);var i=()=>{n&&Vn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Gn(e,t,n){if(!(e.f&8192)){e.f^=y;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;Gn(i,t,o?n:!1)}i=a}}}function Kn(e){qn(e,!0)}function qn(e,t){if(e.f&8192){e.f^=y,e.f&1024||(rt(e,_),Rt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;qn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Jn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:pn(n);t.append(n),n=i}}var Yn=null,Xn=!1,Zn=!1;function Qn(e){Zn=e}var $n=null,er=!1;function tr(e){$n=e}var nr=null;function rr(e){nr=e}var ir=null;function ar(e){$n!==null&&(!He||$n.f&2)&&(ir??=new Set).add(e)}var or=null,sr=0,cr=null;function lr(e){cr=e}var ur=1,dr=0,fr=dr;function pr(e){fr=e}function mr(){return++ur}function hr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~D),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(hr(a)&&Ct(a),a.wv>e.wv)return!0}t&512&&At===null&&rt(e,g)}return!1}function gr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(!He&&ir!==null&&ir.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?gr(a,t,!1):t===a&&(n?rt(a,_):a.f&1024&&rt(a,v),Gt(a))}}function _r(e){var t=or,n=sr,r=cr,i=$n,a=ir,o=Ge,s=er,c=fr,l=e.f;or=null,sr=0,cr=null,$n=l&96?null:e,ir=null,Ke(e.ctx),er=!1,fr=++dr,e.ac!==null&&(Sn(()=>{e.ac.abort(ce)}),e.ac=null);try{e.f|=ee;var u=e.fn,d=u();e.f|=x;var f=e.deps,p=Ot?.is_fork;if(or!==null){var m;if(p||yr(e,sr),f!==null&&sr>0)for(f.length=sr+or.length,m=0;m<or.length;m++)f[sr+m]=or[m];else e.deps=f=or;if(Dn()&&e.f&512)for(m=sr;m<f.length;m++)(f[m].reactions??=[]).push(e)}else!p&&f!==null&&sr<f.length&&(yr(e,sr),f.length=sr);if(Ye()&&cr!==null&&!er&&f!==null&&!(e.f&6146))for(m=0;m<cr.length;m++)gr(cr[m],e);if(i!==null&&i!==e){if(dr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=dr;if(t!==null)for(let e of t)e.rv=dr;cr!==null&&(r===null?r=cr:r.push(...cr))}return e.f&8388608&&(e.f^=O),d}catch(e){return et(e)}finally{e.f^=ee,or=t,sr=n,cr=r,$n=i,ir=a,Ke(o),er=s,fr=c}}function vr(e,t){let i=t.reactions;if(i!==null){var a=n.call(i,e);if(a!==-1){var o=i.length-1;o===0?i=t.reactions=null:(i[a]=i[o],i.pop())}}if(i===null&&t.f&2&&(or===null||!r.call(or,t))){var s=t;s.f&512&&(s.f^=512,s.f&=~D),s.v!==Ce&&it(s),wt(s),yr(s,0)}}function yr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)vr(e,n[r])}function br(e){var t=e.f;if(!(t&16384)){rt(e,g);var n=nr,r=Xn;nr=e,Xn=!0;try{t&16777232?Bn(e):zn(e),Rn(e);var i=_r(e);e.teardown=typeof i==`function`?i:null,e.wv=ur}finally{Xn=r,nr=n}}}async function xr(){if(He)return new Promise(e=>{requestAnimationFrame(()=>e()),setTimeout(()=>e())});await Promise.resolve(),zt()}function V(e){var t=(e.f&2)!=0;if(Yn?.add(e),$n!==null&&!er&&!(nr!==null&&nr.f&16384)&&(ir===null||!ir.has(e))){var n=$n.deps;if($n.f&2097152)e.rv<dr&&(e.rv=dr,or===null&&n!==null&&n[sr]===e?sr++:or===null?or=[e]:or.push(e));else{$n.deps??=[],r.call($n.deps,e)||$n.deps.push(e);var i=e.reactions;i===null?e.reactions=[$n]:r.call(i,$n)||i.push($n)}}if(Zn&&Yt.has(e))return Yt.get(e);if(t){var a=e;if(Zn){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||Cr(a))&&(o=St(a)),Yt.set(a,o),o}var s=(a.f&512)==0&&!er&&$n!==null&&(Xn||($n.f&512)!=0),c=(a.f&x)===0;hr(a)&&(s&&(a.f|=512),Ct(a)),s&&!c&&(Tt(a),Sr(a))}if(At?.has(e))return At.get(e);if(e.f&8388608)throw e.v;return e.v}function Sr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(Tt(t),Sr(t))}function Cr(e){if(e.v===Ce)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Yt.has(t)||t.f&2&&Cr(t))return!0;return!1}function wr(e){var t=er;try{return er=!0,e()}finally{er=t}}function Tr(e){if(!(typeof e!=`object`||!e||e instanceof EventTarget)){if(k in e)Er(e);else if(!Array.isArray(e))for(let t in e){let n=e[t];typeof n==`object`&&n&&k in n&&Er(n)}}}function Er(e,t=new Set){if(typeof e==`object`&&e&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{Er(e[n],t)}catch{}let n=u(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){let t=s(n);for(let n in t){let r=t[n].get;if(r)try{r.call(e)}catch{}}}}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var Dr=[`touchstart`,`touchmove`];function Or(e){return Dr.includes(e)}var kr=Symbol(`events`),Ar=new Set,jr=new Set;function Mr(e,t,n,r={}){function i(e){if(r.capture||Ir.call(t,e),!e.cancelBubble)return Sn(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Qe(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Nr(e,t,n,r,i){var a={capture:r,passive:i},o=Mr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&On(()=>{t.removeEventListener(e,o,a)})}function H(e,t,n){(t[kr]??={})[e]=n}function Pr(e){for(var t=0;t<e.length;t++)Ar.add(e[t]);for(var n of jr)n(e)}var Fr=null;function Ir(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],o=i[0]||e.target;Fr=e;var s=0,c=Fr===e&&e[kr];if(c){var l=i.indexOf(c);if(l!==-1&&(t===document||t===window)){e[kr]=t;return}var u=i.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(o=i[s]||e.target,o!==t){a(e,`currentTarget`,{configurable:!0,get(){return o||n}});var d=$n,f=nr;tr(null),rr(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[kr]?.[r];h!=null&&(!o.disabled||e.target===o)&&h.call(o,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;s++,o=s<i.length?i[s]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[kr]=t,delete e.currentTarget,tr(d),rr(f)}}}var Lr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Rr(e){return Lr?.createHTML(e)??e}function zr(e){var t=gn(`template`);return t.innerHTML=Rr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Br(e,t){var n=nr;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function U(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(je)return Br(Ne,null),Ne;i===void 0&&(i=zr(a?e:`<!>`+e),n||(i=fn(i)));var t=r||sn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=fn(t),s=t.lastChild;Br(o,s)}else Br(t,t);return t}}function Vr(e,t,n=`svg`){var r=!e.startsWith(`<!>`),i=(t&1)!=0,a=`<${n}>${r?e:`<!>`+e}</${n}>`,o;return()=>{if(je)return Br(Ne,null),Ne;if(!o){var e=fn(zr(a));if(i)for(o=document.createDocumentFragment();fn(e);)o.appendChild(fn(e));else o=fn(e)}var t=o.cloneNode(!0);if(i){var n=fn(t),r=t.lastChild;Br(n,r)}else Br(t,t);return t}}function Hr(e,t){return Vr(e,t,`svg`)}function Ur(e=``){if(!je){var t=dn(e+``);return Br(t,t),t}var n=Ne;return n.nodeType===3?_n(n):(n.before(n=dn()),Pe(n)),Br(n,n),n}function Wr(){if(je)return Br(Ne,null),Ne;var e=document.createDocumentFragment(),t=document.createComment(``),n=dn();return e.append(t,n),Br(t,n),e}function W(e,t){if(je){var n=nr;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=Ne),Fe();return}e!==null&&e.before(t)}function G(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[oe]??=e.nodeValue)&&(e[oe]=n,e.nodeValue=`${n}`)}function Gr(e,t){return qr(e,t)}var Kr=new Map;function qr(e,{target:t,anchor:n,props:r={},events:a,context:o,intro:s=!0,transformError:c}){un();var l=void 0,u=Mn(()=>{var s=n??t.appendChild(dn());ft(s,{pending:()=>{}},t=>{qe({});var n=Ge;if(o&&(n.c=o),a&&(r.$$events=a),je&&Br(t,null),l=e(t,r)||{},je&&(nr.nodes.end=Ne,Ne===null||Ne.nodeType!==8||Ne.data!==`]`))throw Oe(),Se;Je()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=Or(r);for(let e of[t,document]){var a=Kr.get(e);a===void 0&&(a=new Map,Kr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Ir,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(i(Ar)),jr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Kr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Ir),r.delete(e),r.size===0&&Kr.delete(n)):r.set(e,i)}jr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Jr.set(l,u),l}var Jr=new WeakMap,Yr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Kn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Kn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Vn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Jn(r,t),t.append(dn()),this.#n.set(e,{effect:r,fragment:t})}else Vn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Wn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Vn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Ot,r=hn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=dn();i.append(a),this.#n.set(e,{effect:Ln(()=>t(a)),fragment:i})}else this.#t.set(e,Ln(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else je&&(this.anchor=Ne),this.#a(n)}};function K(e,t,n=!1){var r;je&&(r=Ne,Fe());var i=new Yr(e),a=n?C:0;function o(e,t){if(je){var n=Re(r);if(e!==parseInt(n.substring(1))){var a=Le();Pe(a),i.anchor=a,Me(!1),i.ensure(e,t),Me(!0);return}}i.ensure(e,t)}In(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Xr(e,t){return t}function Zr(e,t,n){for(var r=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];Wn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Qr(e,i(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=r.length===0&&n!==null;if(l){var u=n,d=u.parentNode;mn(d),d.append(u),e.items.clear()}Qr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Qr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=E,Jn(a,document.createDocumentFragment())):Vn(t[i],n)}}var $r;function q(e,n,r,a,o,s=null){var c=e,l=new Map;if(n&4){var u=e;c=je?Pe(fn(u)):u.appendChild(dn())}je&&Fe();var d=null,f=bt(()=>{var e=r();return t(e)?e:e==null?[]:i(e)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,ti(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=E,ri(d,null,c)):Kn(d):Wn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:In(()=>{p=V(f);var e=p.length;let t=!1;je&&Re(c)===`[!`!=(e===0)&&(c=Le(),Pe(c),Me(!1),t=!0);for(var i=new Set,u=Ot,v=hn(),y=0;y<e;y+=1){je&&Ne.nodeType===8&&Ne.data===`]`&&(c=Ne,t=!0,Me(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&$t(S.v,b),S.i&&$t(S.i,y),v&&u.unskip_effect(S.e)):(S=ni(l,h?c:$r??=dn(),b,x,y,o,n,r),h||(S.e.f|=E),l.set(x,S)),i.add(x)}if(e===0&&s&&!d&&(h?d=Ln(()=>s(c)):(d=Ln(()=>s($r??=dn())),d.f|=E)),e>i.size&&fe(``,``,``),je&&e>0&&Pe(Le()),!h)if(m.set(u,i),v){for(let[e,t]of l)i.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Me(!0),V(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,je&&(c=Ne)}function ei(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ti(e,t,n,r,a){var o=(r&8)!=0,s=t.length,c=e.items,l=ei(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=a(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=a(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(Kn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=E,_===l)ri(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),ii(e,d,_),ii(e,_,y),ri(_,y,n),d=_,p=[],m=[],l=ei(d.next);continue}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)ri(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);ii(e,S.prev,C.next),ii(e,d,S),ii(e,C,b),l=b,d=C,--v,p=[],m=[]}else u.delete(_),ri(_,l,n),ii(e,_.prev,_.next),ii(e,_,d===null?e.effect.first:d.next),ii(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=ei(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=ei(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(Qr(e,i(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&8192||w.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&w.push(l),l=ei(l.next);var T=w.length;if(T>0){var D=r&4&&s===0?n:null;if(o){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}Zr(e,w,D)}}o&&Qe(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ni(e,t,n,r,i,a,o,s){var c=o&1?o&16?Zt(n):Qt(n,!1,!1):null,l=o&2?Zt(i):null;return{v:c,i:l,e:Ln(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ri(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=pn(r);if(a.before(r),r===i)return;r=o}}function ii(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ai(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;je&&(o=Pe(fn(c)))}B(()=>{var e=nr;if(s===(s=t()??``)){je&&Fe();return}if(n&&!je){e.nodes=null,c.innerHTML=s,s!==``&&Br(fn(c),c.lastChild);return}if(e.nodes!==null&&(Hn(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(je){for(var a=Ne.data,l=Fe(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=pn(l);if(l===null)throw Oe(),Se;Br(Ne,u),o=Pe(l);return}var d=gn(r?`svg`:i?`math`:`template`,r?Te:i?Ee:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(Br(fn(f),f.lastChild),r||i)for(;fn(f);)o.before(fn(f));else o.before(f)}})}function oi(e,t,...n){var r=new Yr(e);In(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},C)}function si(e,t,n){Nn(()=>{var r=wr(()=>t(e,n?.())||{});if(n&&r?.update){var i=!1,a={};Fn(()=>{var e=n();Tr(e),i&&Be(a,e)&&(a=e,r.update(e))}),i=!0}if(r?.destroy)return()=>r.destroy()})}function ci(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ci(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function li(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ci(e))&&(r&&(r+=` `),r+=t);return r}function ui(e){return typeof e==`object`?li(e):e??``}var di=[...`
|
|
2
|
-
\r\f\xA0\v`];function fi(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||di.includes(r[o-1]))&&(s===r.length||di.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function pi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function mi(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function hi(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(mi)),i&&c.push(...Object.keys(i).map(mi));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=mi(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=pi(r)),i&&(n+=pi(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function gi(e,t,n,r,i,a){var o=e[ie];if(je||o!==n||o===void 0){var s=fi(n,r,a);(!je||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ie]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function _i(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function vi(e,t,n,r){var i=e[ae];if(je||i!==t){var a=hi(t,r);(!je||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[ae]=t}else r&&(Array.isArray(r)?(_i(e,n?.[0],r[0]),_i(e,n?.[1],r[1],`important`)):_i(e,n,r));return r}function yi(e,n,r=!1){if(e.multiple){if(n==null)return;if(!t(n))return ke();for(var i of e.options)i.selected=n.includes(Si(i));return}for(i of e.options)if(an(Si(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(e.selectedIndex=-1)}function bi(e){var t=new MutationObserver(()=>{yi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),On(()=>{t.disconnect()})}function xi(e,t,n=t){var r=new WeakSet,i=!0;Cn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),Si);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&Si(o)}n(a),e.__value=a,Ot!==null&&r.add(Ot)}),Nn(()=>{var a=t();if(e===document.activeElement){var o=He?kt:Ot;if(r.has(o))return}if(yi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=Si(s),n(a))}e.__value=a,i=!1}),bi(e)}function Si(e){return`__value`in e?e.__value:e.value}var Ci=Symbol(`is custom element`),wi=Symbol(`is html`),Ti=le?`link`:`LINK`,Ei=le?`progress`:`PROGRESS`;function Di(e){if(je){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;J(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;J(e,`checked`,null),e.checked=r}}};e[se]=n,Qe(n),xn()}}function Oi(e,t){var n=Ai(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Ei)||(e.value=t??``)}function ki(e,t){var n=Ai(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function J(e,t,n,r){var i=Ai(e);je&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Ti)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[A]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Mi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Ai(e){return e[re]??={[Ci]:e.nodeName.includes(`-`),[wi]:e.namespaceURI===we}}var ji=new Map;function Mi(e){var t=e.getAttribute(`is`)||e.nodeName,n=ji.get(t);if(n)return n;ji.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=s(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=u(i)}return n}function Ni(e,t,n=t){var r=new WeakSet;Cn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Ri(e)?zi(a):a,n(a),Ot!==null&&r.add(Ot),await xr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(je&&e.defaultValue!==e.value||wr(t)==null&&e.value)&&(n(Ri(e)?zi(e.value):e.value),Ot!==null&&r.add(Ot)),Fn(()=>{var n=t();if(e===document.activeElement){var i=He?kt:Ot;if(r.has(i))return}Ri(e)&&n===zi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}var Pi=new Set;function Fi(e,t,n,r,i=r){var a=n.getAttribute(`type`)===`checkbox`,o=e;let s=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),Cn(n,`change`,()=>{var e=n.__value;a&&(e=Li(o,e,n.checked)),i(e)},()=>i(a?[]:null)),Fn(()=>{var e=r();if(je&&n.defaultChecked!==n.checked){s=!0;return}a?(e||=[],n.checked=e.includes(n.__value)):n.checked=an(n.__value,e)}),On(()=>{var e=o.indexOf(n);e!==-1&&o.splice(e,1)}),Pi.has(o)||(Pi.add(o),Qe(()=>{o.sort((e,t)=>e.compareDocumentPosition(t)===4?-1:1),Pi.delete(o)})),Qe(()=>{if(s){var e=a?Li(o,e,n.checked):o.find(e=>e.checked)?.__value;i(e)}})}function Ii(e,t,n=t){Cn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(je&&e.defaultChecked!==e.checked||wr(t)==null)&&n(e.checked),Fn(()=>{e.checked=!!t()})}function Li(e,t,n){for(var r=new Set,i=0;i<e.length;i+=1)e[i].checked&&r.add(e[i].__value);return n||r.delete(t),Array.from(r)}function Ri(e){var t=e.type;return t===`number`||t===`range`}function zi(e){return e===``?null:+e}function Bi(e,t){return e===t||e?.[k]===t}function Vi(e={},t,n,r){var i=Ge.r,a=nr;return Nn(()=>{var o,s;return Fn(()=>{o=s,s=r?.()||[],wr(()=>{Bi(n(...s),e)||(t(e,...s),o&&Bi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Bi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function Hi(e=!1){let t=Ge,n=t.l.u;if(!n)return;let r=()=>Tr(t.s);if(e){let e=0,n={},i=_t(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>V(i)}n.b.length&&jn(()=>{Ui(t,r),m(n.b)}),kn(()=>{let e=wr(()=>n.m.map(p));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&kn(()=>{Ui(t,r),m(n.a)})}function Ui(e,t){if(e.l.s)for(let t of e.l.s)V(t);t()}function Wi(e,t,n,r){var i=!Ue||(n&2)!=0,a=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=_t(r),V(u)):(l&&(l=!1,c=s?wr(r):r),c);let f;if(a){var p=k in e||ne in e;f=o(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;a?[m,h]=lt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&_e(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?_t:bt)(()=>(v=!1,g()));a&&V(y);var b=nr;return(function(e,t){if(arguments.length>0){let n=t?V(y):i&&a?I(e):e;return F(y,n),v=!0,c!==void 0&&(c=n),e}return Zn&&v||b.f&16384?y.v:V(y)})}function Gi(e){Ge===null&&ue(`onMount`),Ue&&Ge.l!==null?Ki(Ge).m.push(e):kn(()=>{let t=wr(e);if(typeof t==`function`)return t})}function Ki(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var qi=U(`<section class="config-section"><header class="config-section-header"><h3 class="config-section-title"><span aria-hidden="true"> </span> </h3> <p class="config-section-desc"> </p></header> <div class="config-section-body"><!></div></section>`);function Ji(e,t){var n=qi(),r=L(n),i=L(r),a=L(i),o=L(a,!0);j(a);var s=z(a);j(i);var c=z(i,2),l=L(c,!0);j(c),j(r);var u=z(r,2);oi(L(u),()=>t.children),j(u),j(n),B(()=>{G(o,t.icon),G(s,` ${t.title??``}`),G(l,t.description)}),W(e,n)}var Yi=U(`<p class="browser-msg">Loading…</p>`),Xi=U(`<p class="browser-msg browser-msg--error">Cannot read directory</p>`),Zi=U(`<p class="browser-msg">Empty directory</p>`),Qi=U(`<button type="button" class="browser-row browser-row--dir"><span>📁</span><span> </span></button>`),$i=U(`<span class="badge-added">Added</span>`),ea=U(`<button type="button" class="link-btn">+ Add</button>`),ta=U(`<div class="browser-row browser-row--file"><span class="browser-row-name"><span>📄</span><span> </span></span> <!></div>`),na=U(`<!> <!>`,1),ra=U(`<p class="field-hint" style="font-style:italic">No extra files added yet.</p>`),ia=U(`<div class="extra-file-row"><div class="extra-file-arrows"><button type="button">↑</button> <button type="button">↓</button></div> <span class="extra-file-path"> </span> <button type="button" class="remove-btn">Remove</button></div>`),aa=U(`<div class="extra-files-list"></div>`),oa=U(`<div class="field-group"><p class="field-label">General — Extra Files</p> <p class="field-hint">Add Markdown files from outside the docs folder to the General section.</p> <div class="file-browser"><div class="file-browser-toolbar"><button type="button" class="link-btn">↑ Up</button> <span class="file-browser-path"> </span></div> <div class="file-browser-list"><!></div></div> <p class="field-label" style="margin-top:1rem">Added files</p> <!></div>`);function sa(e,t){qe(t,!0);let n=P(``),r=P(null),i=P(I([])),a=P(I([])),o=P(!1),s=P(!1);function c(e,t){if(!e)return t;let n=e=>e.replace(/\\/g,`/`),r=n(e).split(`/`).filter(Boolean),i=n(t).split(`/`).filter(Boolean),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=r.length-a,s=i.slice(a).join(`/`),c=`../`.repeat(o)+s;return c.endsWith(`/`)&&(c=c.slice(0,-1)),c===``?`.`:c}function l(e){return t.docsFolder?`$DOCS_FOLDER/`+c(t.docsFolder,e):e}async function u(e){F(o,!0),F(s,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(n,t.current,!0),F(r,t.parent,!0),F(i,t.dirs,!0),F(a,t.files,!0)}catch{F(s,!0)}finally{F(o,!1)}}function d(){V(r)&&u(V(r))}async function f(e){if(t.extraFiles.includes(e))return;let r=[...t.extraFiles,e];await h(r),t.onchange(r),u(V(n))}async function p(e){let r=t.extraFiles.filter(t=>t!==e);await h(r),t.onchange(r),u(V(n))}async function m(e,n){let r=e+n;if(r<0||r>=t.extraFiles.length)return;let i=[...t.extraFiles];[i[e],i[r]]=[i[r],i[e]],await h(i),t.onchange(i)}async function h(e){let n=e.map(e=>c(t.docsFolder,e));await fetch(`/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extraFiles:n})})}var g={loadBrowse:u},_=oa(),v=z(L(_),4),y=L(v),b=L(y),x=z(b,2),S=L(x,!0);j(x),j(y);var C=z(y,2),w=L(C),T=e=>{W(e,Yi())},E=e=>{W(e,Xi())},D=e=>{W(e,Zi())},ee=e=>{var n=na(),r=R(n);q(r,17,()=>V(i),Xr,(e,t)=>{var n=Qi(),r=z(L(n)),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>u(V(t).path)),W(e,n)}),q(z(r,2),17,()=>V(a),Xr,(e,n)=>{var r=ta(),i=L(r),a=z(L(i)),o=L(a,!0);j(a),j(i);var s=z(i,2),c=e=>{W(e,$i())},l=N(()=>t.extraFiles.includes(V(n).path)),u=e=>{var t=ea();H(`click`,t,()=>f(V(n).path)),W(e,t)};K(s,e=>{V(l)?e(c):e(u,-1)}),j(r),B(()=>G(o,V(n).name)),W(e,r)}),W(e,n)};K(w,e=>{V(o)?e(T):V(s)?e(E,1):V(i).length===0&&V(a).length===0?e(D,2):e(ee,-1)}),j(C),j(v);var te=z(v,4),O=e=>{W(e,ra())},k=e=>{var n=aa();q(n,21,()=>t.extraFiles,Xr,(e,n,r)=>{var i=ia(),a=L(i),o=L(a);o.disabled=r===0;var s=z(o,2);j(a);var c=z(a,2),u=L(c,!0);j(c);var d=z(c,2);j(i),B(e=>{s.disabled=r===t.extraFiles.length-1,J(c,`title`,V(n)),G(u,e)},[()=>l(V(n))]),H(`click`,o,()=>m(r,-1)),H(`click`,s,()=>m(r,1)),H(`click`,d,()=>p(V(n))),W(e,i)}),j(n),W(e,n)};return K(te,e=>{t.extraFiles.length===0?e(O):e(k,-1)}),j(_),B(e=>{b.disabled=!V(r),G(S,e)},[()=>l(V(n))]),H(`click`,b,d),W(e,_),Je(g)}Pr([`click`]);var ca=U(`<div class="swatch-wrap"><div class="swatch"></div> <input type="color" class="swatch-input"/></div>`),la=U(`<div class="edge-swatch-wrap"><div class="edge-swatch"></div> <button type="button" class="remove-swatch-btn">✕</button></div>`),ua=U(`<div class="palette-group"><div class="palette-header"><span class="field-label">Shape colors</span> <button type="button" class="link-btn">Reset</button></div> <p class="field-hint">Click a color to change it.</p> <div class="swatches"></div></div> <div class="palette-group" style="margin-top:1.5rem"><div class="palette-header"><span class="field-label">Arrow colors</span> <button type="button" class="link-btn">Reset</button></div> <p class="field-hint">Click ✕ to remove a color.</p> <div class="swatches" style="align-items:flex-end"></div> <div class="add-color-row"><input type="color" class="color-input"/> <button type="button" class="btn-primary btn-sm">Add color</button></div></div>`,1);function da(e,t){qe(t,!0);let n=Wi(t,`nodePalette`,15),r=Wi(t,`edgePalette`,15),i={"c-white":{bg:`#ffffff`,border:`#dbd5d1`,label:`White`},"c-gray":{bg:`#f5f5f4`,border:`#a8a29e`,label:`Gray`},"c-slate":{bg:`#f1f5f9`,border:`#64748b`,label:`Slate`},"c-blue":{bg:`#dbeafe`,border:`#3b82f6`,label:`Blue`},"c-sky":{bg:`#e0f2fe`,border:`#0ea5e9`,label:`Sky`},"c-cyan":{bg:`#cffafe`,border:`#06b6d4`,label:`Cyan`},"c-teal":{bg:`#ccfbf1`,border:`#14b8a6`,label:`Teal`},"c-green":{bg:`#dcfce7`,border:`#22c55e`,label:`Green`},"c-lime":{bg:`#ecfccb`,border:`#84cc16`,label:`Lime`},"c-amber":{bg:`#fef9c3`,border:`#f59e0b`,label:`Amber`},"c-orange":{bg:`#ffedd5`,border:`#f97316`,label:`Orange`},"c-red":{bg:`#fee2e2`,border:`#ef4444`,label:`Red`},"c-rose":{bg:`#ffe4e6`,border:`#f43f5e`,label:`Rose`},"c-pink":{bg:`#fce7f3`,border:`#ec4899`,label:`Pink`},"c-purple":{bg:`#ede9fe`,border:`#8b5cf6`,label:`Purple`}},a={"c-gray":.667,"c-slate":.488,"c-blue":.645,"c-sky":.518,"c-cyan":.473,"c-teal":.448,"c-green":.489,"c-lime":.496,"c-amber":.57,"c-orange":.578,"c-red":.64,"c-rose":.636,"c-pink":.638,"c-purple":.694},o=Object.keys(i),s=[`#ffffff`,`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],c=P(`#3b82f6`);function l(e,t=.6){let n=parseInt(e.slice(1,3),16)/255,r=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=a-o,l=0,u=0;c>0&&(u=s>.5?c/(2-a-o):c/(a+o),l=a===n?((r-i)/c+(r<i?6:0))/6:a===r?((i-n)/c+2)/6:((n-r)/c+4)/6);function d(e,t,n){let r,i,a;if(t===0)r=i=a=n;else{let o=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return`#`+[r,i,a].map(e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`)).join(``)}return{bg:e,border:d(l,u,s*t)}}function u(e,t){let n=i[e];return t===n.bg?n.border:l(t,a[e]||.6).border}function d(){n(o.map(e=>i[e].bg))}function f(){r([...s])}function p(){let e=V(c).toLowerCase();r().includes(e)||r([...r(),e])}function m(e){r().length<=1||r(r().filter((t,n)=>n!==e))}var h=ua(),g=R(h),_=L(g),v=z(L(_),2);j(_);var y=z(_,4);q(y,21,()=>o,Xr,(e,t,r)=>{let a=N(()=>n()[r]||i[V(t)].bg),o=N(()=>u(V(t),V(a)));var s=ca(),c=L(s),l=z(c,2);Di(l),j(s),B(()=>{J(s,`title`,i[V(t)].label),vi(c,`background:${V(a)??``};border-color:${V(o)??``}`),Oi(l,V(a))}),H(`input`,l,e=>{n(n()[r]=e.target.value.toLowerCase(),!0)}),W(e,s)}),j(y),j(g);var b=z(g,2),x=L(b),S=z(L(x),2);j(x);var C=z(x,4);q(C,21,r,Xr,(e,t,n)=>{var r=la(),i=L(r),a=z(i,2);j(r),B(()=>vi(i,`background:${V(t)??``}`)),H(`click`,a,()=>m(n)),W(e,r)}),j(C);var w=z(C,2),T=L(w);Di(T);var E=z(T,2);j(w),j(b),H(`click`,v,d),H(`click`,S,f),Ni(T,()=>V(c),e=>F(c,e)),H(`click`,E,p),W(e,h),Je()}Pr([`click`,`input`]);var fa=[{href:`/blueprint`,labelKey:`admin.navigation.blueprint`},{href:`/graph`,labelKey:`graph.nav`},{href:`/survival-kit`,labelKey:`admin.navigation.survival_kit`},{href:`/context`,labelKey:`admin.navigation.ai_context`}];function pa(e){return Array.isArray(e)?fa.map(e=>e.href).filter(t=>e.includes(t)):[]}var ma=I({hidden:[]});function ha(e){ma.hidden=pa(e.hiddenHeaderMenus)}var ga=P(I({})),_a=`ld-lang`;function va(){try{return localStorage.getItem(_a)||`en`}catch{return`en`}}async function ya(e){let t=e||`en`;try{localStorage.setItem(_a,t)}catch{}try{let e=await fetch(`/i18n/${t}.json`);e.ok&&F(ga,await e.json(),!0)}catch{}}function Y(e,t){let n=V(ga)[e]===void 0?e:V(ga)[e];if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{${e}}`,r);return n}function ba(e){try{return localStorage.getItem(e)===`1`}catch{return!1}}function xa(){try{let e=parseInt(localStorage.getItem(`ld-highlight-status`)||`0`,10);return e===1||e===2?e:0}catch{return 0}}var X=new class{#e=P(I([]));get allDocs(){return V(this.#e)}set allDocs(e){F(this.#e,e,!0)}#t=P(I([]));get allFolderPaths(){return V(this.#t)}set allFolderPaths(e){F(this.#t,e,!0)}#n=P(``);get docsFolder(){return V(this.#n)}set docsFolder(e){F(this.#n,e,!0)}#r=P(I({}));get annotationCounts(){return V(this.#r)}set annotationCounts(e){F(this.#r,e,!0)}#i=P(I({}));get fileAttachmentCounts(){return V(this.#i)}set fileAttachmentCounts(e){F(this.#i,e,!0)}#a=P(I({}));get docStatuses(){return V(this.#a)}set docStatuses(e){F(this.#a,e,!0)}#o=P(null);get currentDocId(){return V(this.#o)}set currentDocId(e){F(this.#o,e,!0)}#s=P(``);get searchQuery(){return V(this.#s)}set searchQuery(e){F(this.#s,e,!0)}#c=P(null);get searchResults(){return V(this.#c)}set searchResults(e){F(this.#c,e,!0)}#l=P(I(new Set));get expandedCategories(){return V(this.#l)}set expandedCategories(e){F(this.#l,e,!0)}#u=P(I(new Set));get expandedFolders(){return V(this.#u)}set expandedFolders(e){F(this.#u,e,!0)}#d=P(I(ba(`ld-hide-categories`)));get hideCategories(){return V(this.#d)}set hideCategories(e){F(this.#d,e,!0)}#f=P(I(ba(`ld-hide-attachments`)));get hideAttachments(){return V(this.#f)}set hideAttachments(e){F(this.#f,e,!0)}#p=P(I(xa()));get highlightStatusState(){return V(this.#p)}set highlightStatusState(e){F(this.#p,e,!0)}#m=P(!1);get exclusiveFolderExpansion(){return V(this.#m)}set exclusiveFolderExpansion(e){F(this.#m,e,!0)}#h=P(!1);get exclusiveCategoryExpansion(){return V(this.#h)}set exclusiveCategoryExpansion(e){F(this.#h,e,!0)}#g=P(400);get codeBlockMaxHeight(){return V(this.#g)}set codeBlockMaxHeight(e){F(this.#g,e,!0)}#_=P(!1);get imageRoundedCorners(){return V(this.#_)}set imageRoundedCorners(e){F(this.#_,e,!0)}#v=P(!1);get imageCentered(){return V(this.#v)}set imageCentered(e){F(this.#v,e,!0)}#y=P(!1);get imageBorder(){return V(this.#y)}set imageBorder(e){F(this.#y,e,!0)}#b=P(!1);get codeBlockLightTheme(){return V(this.#b)}set codeBlockLightTheme(e){F(this.#b,e,!0)}#x=P(`recent`);get sidebarSort(){return V(this.#x)}set sidebarSort(e){F(this.#x,e,!0)}#S=P(`normal`);get markerState(){return V(this.#S)}set markerState(e){F(this.#S,e,!0)}get markerActive(){return this.markerState===`active`}get markerHidden(){return this.markerState===`hidden`}initMarker(){let e=`normal`;try{e=localStorage.getItem(`ld-marker-state`)||`normal`}catch{}this.markerState=e===`active`?`active`:e===`hidden`?`hidden`:`normal`}toggleMarker(){this.markerState===`normal`?this.markerState=`active`:this.markerState===`active`?this.markerState=`hidden`:this.markerState=`normal`;try{localStorage.setItem(`ld-marker-state`,this.markerState)}catch{}return this.markerState}get filteredDocs(){if(!this.searchQuery)return this.allDocs;if(Array.isArray(this.searchResults))return this.searchResults;let e=e=>e.normalize(`NFD`).replace(/[̀-ͯ]/g,``).toLowerCase(),t=e(this.searchQuery);return this.allDocs.filter(n=>e(n.title).includes(t)||e(n.category).includes(t))}toggleHideCategories(){this.hideCategories=!this.hideCategories;try{localStorage.setItem(`ld-hide-categories`,this.hideCategories?`1`:`0`)}catch{}}toggleHideAttachments(){this.hideAttachments=!this.hideAttachments;try{localStorage.setItem(`ld-hide-attachments`,this.hideAttachments?`1`:`0`)}catch{}}cycleHighlightStatus(){this.highlightStatusState=(this.highlightStatusState+1)%3;try{localStorage.setItem(`ld-highlight-status`,String(this.highlightStatusState))}catch{}}toggleCategory(e){let t=new Set(this.expandedCategories);if(t.has(e))t.delete(e);else{if(this.exclusiveCategoryExpansion){let n=e.split(`|`).slice(0,-1).join(`|`);for(let e of[...t])e.split(`|`).slice(0,-1).join(`|`)===n&&t.delete(e)}t.add(e)}this.expandedCategories=t}toggleFolder(e){let t=new Set(this.expandedFolders);if(t.has(e)){t.delete(e);let n=`${e}|`;for(let e of[...t])e.startsWith(n)&&t.delete(e);let r=new Set(this.expandedCategories);for(let e of[...r])e.startsWith(n)&&r.delete(e);this.expandedCategories=r}else{if(this.exclusiveFolderExpansion){let n=e.split(`|`).slice(0,-1).join(`|`);for(let e of[...t])if(e.split(`|`).slice(0,-1).join(`|`)===n){t.delete(e);let n=`${e}|`;for(let e of[...t])e.startsWith(n)&&t.delete(e)}}t.add(e)}this.expandedFolders=t}revealDoc(e){let t=new Set(this.expandedFolders),n=new Set(this.expandedCategories),r=e.folder||[];for(let e=0;e<r.length;e++)t.add(r.slice(0,e+1).join(`|`));n.add([...r,e.category].join(`|`)),this.expandedFolders=t,this.expandedCategories=n}},Sa=/[\u0300-\u036f]/g,Ca=/[^a-zA-Z0-9_.-]+/g;function wa(e){return(e||``).normalize(`NFD`).replace(Sa,``).trim().replace(Ca,`_`).replace(/_+/g,`_`).replace(/^_+|_+$/g,``)}async function Ta(e=``,t=`GET`,n){let r=await fetch(`/api/templates${e}`,{method:t,headers:{"Content-Type":`application/json`},...n===void 0?{}:{body:JSON.stringify(n)}}),i=await r.json();if(!r.ok)throw Error(Y(`templates.errors.${i.error||`storage_error`}`));return i}function Ea(e){return document.body.appendChild(e),{destroy(){e.remove()}}}var Da=U(`<option> </option>`),Oa=U(`<label for="new-doc-template" class="block text-xs font-medium"> </label> <select id="new-doc-template" class="w-full rounded border p-2 bg-white dark:bg-gray-800"><option> </option><!></select>`,1),ka=U(`<p role="alert" class="text-xs text-red-500"> </p>`),Aa=U(`<option></option>`),ja=U(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),Ma=U(`<p class="px-3 py-4 text-xs text-red-400 text-center"> </p>`),Na=U(`<p class="px-3 py-3 text-xs text-gray-400 text-center"> </p>`),Pa=U(`<button class="w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="text-gray-400 shrink-0">📁</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button>`),Fa=U(`<div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"> </button> <span class="font-mono text-xs text-gray-400 dark:text-gray-500 truncate flex-1 text-right"> </span></div> <div class="divide-y divide-gray-100 dark:divide-gray-800 max-h-40 overflow-y-auto"><!></div> <div class="border-t border-gray-200 dark:border-gray-700 flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800/50"><input type="text" class="flex-1 px-2 py-1 text-xs rounded border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-blue-400"/> <button class="text-xs px-2 py-1 rounded bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors shrink-0"> </button></div></div>`),Ia=U(`<p class="text-xs text-red-500"> </p>`),La=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-lg mx-4 p-6 space-y-4 max-h-[90vh] overflow-y-auto"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50">➕ <span> </span></h3> <div class="space-y-2"><label for="new-doc-template-folder" class="block text-xs font-medium"> </label> <select id="new-doc-template-folder" class="w-full rounded border p-2 bg-white dark:bg-gray-800"><option> </option><!></select> <!> <!></div> <div class="space-y-1.5"><label for="new-doc-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="new-doc-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="new-doc-category" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="new-doc-category" type="text" list="new-doc-category-options" autocomplete="off" placeholder="GENERAL" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <datalist id="new-doc-category-options"></datalist></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex items-center gap-2"><span class="flex-1 px-3 py-2 text-xs rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-500 dark:text-gray-400 font-mono truncate"> </span> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">📁 <span> </span></button></div> <!></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <p class="text-xs bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 font-mono text-gray-600 dark:text-gray-300 break-all"> </p></div> <!> <div class="flex justify-end gap-3 pt-1"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`);function Ra(e,t){qe(t,!0);let n=P(I({version:1,folders:[]})),r=P(``),i=P(``),a=P(``),o=P(!1),s=N(()=>V(n).folders.find(e=>e.id===V(r)));function c(){let e=V(s)?.templates.find(e=>e.id===V(i));e&&F(m,e.name,!0)}let l=P(``),u=P(`YYYY_MM_DD_HH_mm_[Category]_title`),d=P(null),f=P(null),p=P(``),m=P(``),h=P(``),g=P(`/ (root)`),_=P(!1),v=P(``),y=P(I([])),b=P(!1),x=P(!1),S=P(``),C=P(I([])),w=P(``),T=P(!1),E=P(null);function D(e){return(e||``).normalize(`NFD`).replace(/[̀-ͯ]/g,``).toUpperCase().replace(/[^A-Z0-9_-]/g,``)}function ee(e){let t=V(l);return e===t?``:e.startsWith(t+`/`)?e.slice(t.length+1):e}let te=!1;kn(()=>{t.open&&!te?(te=!0,O()):t.open||(te=!1)});async function O(){F(o,!0),F(r,``),F(i,``),F(a,``);try{let e=await fetch(`/api/config`).then(e=>e.json());F(l,e.docsFolder||``,!0),F(u,e.filenamePattern||`YYYY_MM_DD_HH_mm_[Category]_title`,!0)}catch{F(l,``),F(u,`YYYY_MM_DD_HH_mm_[Category]_title`)}let e=X.currentDocId&&X.allDocs.find(e=>e.id===X.currentDocId),s=D(e&&e.category||`General`)||`GENERAL`,v=``;if(X.currentDocId){let e=decodeURIComponent(X.currentDocId);if(!e.startsWith(`/`)){let t=e.split(`/`);t.length>1&&(v=t.slice(0,-1).join(`/`))}}let y=v?V(l)+`/`+v:``;F(p,v,!0),F(d,y||null,!0),F(f,null),k(),F(m,``),F(h,s,!0),F(g,v?`/`+v:`/ (root)`,!0),F(_,!1),F(S,``),F(w,``),F(T,!1);try{if(F(n,await Ta(),!0),t.initialTemplateId){let e=V(n).folders.find(e=>e.templates.some(e=>e.id===t.initialTemplateId));if(!e)throw Error(Y(`templates.errors.template_not_found`));F(r,e.id,!0),F(i,t.initialTemplateId,!0),c()}}catch(e){F(a,e instanceof Error?e.message:String(e),!0)}finally{F(o,!1)}setTimeout(()=>V(E)?.focus(),50)}function k(){let e=new Set;(X.allDocs||[]).forEach(t=>{let n=D(t.category||``);n&&e.add(n)}),F(C,Array.from(e).sort((e,t)=>e.localeCompare(t)),!0)}function ne(){let e=D(V(h));V(h)!==e&&F(h,e,!0)}function A(e){let t=e.currentTarget,n=wa(t.value);t.value!==n&&(t.value=n),V(S)!==n&&F(S,n,!0)}let re=N(()=>{let e=V(m).trim();if(!e)return Y(`modal.new_doc.title_placeholder`);let t=D(V(h))||`GENERAL`,n=new Date,r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,`0`),a=String(n.getDate()).padStart(2,`0`),o=String(n.getHours()).padStart(2,`0`),s=String(n.getMinutes()).padStart(2,`0`),c=e.toLowerCase().replace(/\s+/g,`_`).replace(/[^a-z0-9_]/g,``).replace(/_+/g,`_`).replace(/^_|_$/g,``)||`document`,l=V(u).replace(`YYYY`,String(r)).replace(`MM`,i).replace(`DD`,a).replace(`HH`,o).replace(`mm`,s).replace(/\[Category\]/i,`[${t}]`).replace(/(?<![a-z0-9])(?:title_words|title)(?![a-z0-9])/i,c)+`.md`;return V(p)?V(p)+`/`+l:l});function ie(){F(_,!V(_)),V(_)&&ae(V(d)||V(l))}async function ae(e){F(b,!0),F(x,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(d,t.current,!0),F(f,t.parent,!0),F(p,ee(t.current),!0),F(v,t.current,!0),F(g,V(p)?`/`+V(p):`/ (root)`,!0),F(y,t.dirs||[],!0)}catch{F(x,!0),F(y,[],!0)}finally{F(b,!1)}}let oe=N(()=>V(d)===V(l));function se(){V(d)!==V(l)&&V(f)&&ae(V(f))}function ce(){let e=wa(V(S));if(!e)return;let t=V(d)||V(l);if(t===V(l)&&(e===`files`||e===`images`)){F(w,Y(`modal.new_folder.error_reserved`),!0);return}F(w,``);let n=(ee(t)?ee(t)+`/`:``)+e;F(p,n),F(g,`/`+n),F(S,``)}async function le(){if(V(T)||V(o)||t.initialTemplateId&&V(a))return;let e=V(m).trim(),n=D(V(h))||`GENERAL`;if(!e){F(w,Y(`modal.new_doc.error_empty_title`),!0);return}F(w,``),F(T,!0);try{let r=await fetch(`/api/documents`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:e,category:n,folder:V(p),...V(i)?{templateId:V(i)}:{}})});if(!r.ok){let e=await r.json();throw Error(V(i)&&[`template_not_found`,`storage_error`].includes(e.error)?Y(`templates.errors.${e.error}`):e.error||`Creation failed`)}let a=await r.json();t.onclose(),t.onsuccess(a.id)}catch(e){F(w,Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e))),F(T,!1)}}function ue(e){e.key===`Enter`&&le(),e.key===`Escape`&&t.onclose()}var de=Wr(),fe=R(de),pe=e=>{var l=La(),u=L(l),d=L(u),f=z(L(d)),p=L(f,!0);j(f),j(d);var D=z(d,2),ee=L(D),te=L(ee,!0);j(ee);var O=z(ee,2),k=L(O),de=L(k,!0);j(k),k.value=k.__value=``,q(z(k),17,()=>V(n).folders,e=>e.id,(e,t)=>{var n=Da(),r=L(n,!0);j(n);var i={};B(()=>{G(r,V(t).name),i!==(i=V(t).id)&&(n.value=(n.__value=V(t).id)??``)}),W(e,n)}),j(O);var fe=z(O,2),pe=e=>{var t=Oa(),n=R(t),r=L(n,!0);j(n);var a=z(n,2),o=L(a),l=L(o,!0);j(o),o.value=o.__value=``,q(z(o),17,()=>V(s).templates,e=>e.id,(e,t)=>{var n=Da(),r=L(n,!0);j(n);var i={};B(()=>{G(r,V(t).name),i!==(i=V(t).id)&&(n.value=(n.__value=V(t).id)??``)}),W(e,n)}),j(a),B((e,t)=>{G(r,e),G(l,t)},[()=>Y(`templates.template`),()=>Y(`templates.blank`)]),H(`change`,a,c),xi(a,()=>V(i),e=>F(i,e)),W(e,t)};K(fe,e=>{V(s)&&e(pe)});var me=z(fe,2),he=e=>{var t=ka(),n=L(t,!0);j(t),B(()=>G(n,V(a))),W(e,t)};K(me,e=>{V(a)&&e(he)}),j(D);var ge=z(D,2),_e=L(ge),ve=L(_e,!0);j(_e);var ye=z(_e,2);Di(ye),Vi(ye,e=>F(E,e),()=>V(E)),j(ge);var be=z(ge,2),xe=L(be),Se=L(xe,!0);j(xe);var Ce=z(xe,2);Di(Ce);var we=z(Ce,2);q(we,20,()=>V(C),e=>e,(e,t)=>{var n=Aa(),r={};B(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),W(e,n)}),j(we),j(be);var Te=z(be,2),Ee=L(Te),De=L(Ee,!0);j(Ee);var Oe=z(Ee,2),ke=L(Oe),Ae=L(ke,!0);j(ke);var je=z(ke,2),Me=z(L(je)),Ne=L(Me,!0);j(Me),j(je),j(Oe);var Pe=z(Oe,2),Fe=e=>{var t=Fa(),n=L(t),r=L(n),i=L(r);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n);var s=z(n,2),c=L(s),l=e=>{var t=ja(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},u=e=>{var t=Ma(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.cannot_read_dir`)]),W(e,t)},d=e=>{var t=Na(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`modal.new_doc.no_subfolders`)]),W(e,t)},f=e=>{var t=Wr();q(R(t),17,()=>V(y),e=>e.path,(e,t)=>{var n=Pa(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>ae(V(t).path)),W(e,n)}),W(e,t)};K(c,e=>{V(b)?e(l):V(x)?e(u,1):V(y).length===0?e(d,2):e(f,-1)}),j(s);var p=z(s,2),m=L(p);Di(m);var h=z(m,2),g=L(h,!0);j(h),j(p),j(t),B((e,t,n)=>{r.disabled=V(oe),G(i,`↑ ${e??``}`),G(o,V(v)),J(m,`placeholder`,t),G(g,n)},[()=>Y(`common.up`),()=>Y(`modal.new_doc.new_folder_placeholder`),()=>Y(`modal.new_doc.create_folder_btn`)]),H(`click`,r,se),H(`input`,m,A),H(`keydown`,m,e=>{e.key===`Enter`&&ce()}),Ni(m,()=>V(S),e=>F(S,e)),H(`click`,h,ce),W(e,t)};K(Pe,e=>{V(_)&&e(Fe)}),j(Te);var Ie=z(Te,2),Le=L(Ie),Re=L(Le,!0);j(Le);var ze=z(Le,2),Be=L(ze,!0);j(ze),j(Ie);var Ve=z(Ie,2),He=e=>{var t=Ia(),n=L(t,!0);j(t),B(()=>G(n,V(w))),W(e,t)};K(Ve,e=>{V(w)&&e(He)});var Ue=z(Ve,2),We=L(Ue),Ge=L(We,!0);j(We);var Ke=z(We,2),qe=L(Ke,!0);j(Ke),j(Ue),j(u),j(l),B((e,n,r,i,s,c,l,u,d,f,m)=>{G(p,e),G(te,n),O.disabled=V(o),G(de,r),G(ve,i),J(ye,`placeholder`,s),G(Se,c),G(De,l),G(Ae,V(g)),G(Ne,u),G(Re,d),G(Be,V(re)),G(Ge,f),Ke.disabled=V(T)||V(o)||!!(t.initialTemplateId&&V(a)),G(qe,m)},[()=>Y(`modal.new_doc.title`),()=>Y(`templates.folder`),()=>Y(`templates.blank`),()=>Y(`modal.new_doc.title_label`),()=>Y(`modal.new_doc.title_placeholder`),()=>Y(`modal.new_doc.category_label`),()=>Y(`modal.new_doc.location_label`),()=>Y(`modal.new_doc.browse_btn`),()=>Y(`modal.new_doc.filename_label`),()=>Y(`common.cancel`),()=>V(T)?Y(`modal.new_folder.creating_btn`):Y(`common.create`)]),H(`click`,l,e=>{e.target===e.currentTarget&&t.onclose()}),H(`change`,O,()=>{F(i,``)}),xi(O,()=>V(r),e=>F(r,e)),H(`keydown`,ye,ue),Ni(ye,()=>V(m),e=>F(m,e)),H(`input`,Ce,ne),H(`keydown`,Ce,ue),Ni(Ce,()=>V(h),e=>F(h,e)),H(`click`,je,ie),H(`click`,We,function(...e){t.onclose?.apply(this,e)}),H(`click`,Ke,le),W(e,l)};K(fe,e=>{t.open&&e(pe)}),W(e,de),Je()}Pr([`click`,`change`,`keydown`,`input`]);var za=U(`<p class="confirm-kicker"> </p>`),Ba=U(`<p class="confirm-message" id="confirm-modal-message" data-testid="confirm-modal-message"> </p>`),Va=U(`<p id="confirm-modal-detail" data-testid="confirm-modal-detail" class="bg-amber-50 border border-amber-300 text-amber-800 rounded-lg px-3 py-2 text-sm"> </p>`),Ha=U(`<div class="confirm-overlay"><section class="confirm-dialog" id="confirm-modal" data-testid="confirm-modal" role="dialog" aria-modal="true"><!> <h2> </h2> <!> <!> <footer class="confirm-actions"><button class="secondary-button" id="confirm-modal-cancel" data-testid="confirm-modal-cancel" type="button"> </button> <button id="confirm-modal-ok" data-testid="confirm-modal-ok" type="button"> </button></footer></section></div>`);function Ua(e,t){qe(t,!0);let n=P(!1),r=P(I({title:``,confirmLabel:`OK`})),i=null;function a(e){return F(r,e,!0),F(n,!0),new Promise(e=>{i=e})}function o(){F(n,!1),i?.(!0),i=null}function s(){F(n,!1),i?.(!1),i=null}var c={show:a},l=Wr(),u=R(l),d=e=>{var t=Ha(),n=L(t),i=L(n),a=e=>{var t=za(),n=L(t,!0);j(t),B(()=>G(n,V(r).kicker)),W(e,t)};K(i,e=>{V(r).kicker&&e(a)});var c=z(i,2),l=L(c,!0);j(c);var u=z(c,2),d=e=>{var t=Ba(),n=L(t,!0);j(t),B(()=>G(n,V(r).message)),W(e,t)};K(u,e=>{V(r).message&&e(d)});var f=z(u,2),p=e=>{var t=Va(),n=L(t,!0);j(t),B(()=>G(n,V(r).detail)),W(e,t)};K(f,e=>{V(r).detail&&e(p)});var m=z(f,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=L(_,!0);j(_),j(m),j(n),j(t),B(()=>{G(l,V(r).title),G(g,V(r).cancelLabel??`Cancel`),gi(_,1,ui(V(r).danger?`danger-button`:`primary-button`)),G(v,V(r).confirmLabel)}),H(`click`,t,e=>{e.target===e.currentTarget&&s()}),H(`click`,h,s),H(`click`,_,o),W(e,t)};return K(u,e=>{V(n)&&e(d)}),W(e,l),Je(c)}Pr([`click`]);var Wa=U(`<button> </button>`),Ga=U(`<p class="svelte-3z3jlz"> </p>`),Ka=U(`<div class="row svelte-3z3jlz"><button class="list-item svelte-3z3jlz"> </button><button class="svelte-3z3jlz"> </button></div>`),qa=U(`<div class="editor svelte-3z3jlz"><label for="template-name" class="svelte-3z3jlz"> </label><input id="template-name" maxlength="120" class="svelte-3z3jlz"/> <label for="template-content" class="svelte-3z3jlz"> </label><textarea id="template-content" rows="9" maxlength="1000000" class="svelte-3z3jlz"></textarea> <div class="row svelte-3z3jlz"><button class="svelte-3z3jlz"> </button><button class="primary-button svelte-3z3jlz" data-testid="template-save"> </button></div></div>`),Ja=U(`<label for="template-folder-name" class="svelte-3z3jlz"> </label> <div class="row svelte-3z3jlz"><input id="template-folder-name" maxlength="120" class="svelte-3z3jlz"/><button data-testid="template-rename-folder" class="svelte-3z3jlz"> </button><button data-testid="template-delete-folder" class="svelte-3z3jlz"> </button></div> <div class="row svelte-3z3jlz"><h3 class="svelte-3z3jlz"> </h3><button data-testid="template-new" class="svelte-3z3jlz"> </button></div> <!> <!>`,1),Ya=U(`<p role="alert" class="error svelte-3z3jlz"> </p>`),Xa=U(`<div class="manager-layer svelte-3z3jlz"><div role="dialog" tabindex="-1" aria-modal="true" data-testid="templates-manager" class="manager svelte-3z3jlz"><header class="svelte-3z3jlz"><h2 class="svelte-3z3jlz"> </h2><button class="svelte-3z3jlz">✕</button></header> <fieldset class="svelte-3z3jlz"><div class="columns svelte-3z3jlz"><aside><label for="template-new-folder" class="svelte-3z3jlz"> </label> <div class="row svelte-3z3jlz"><input id="template-new-folder" maxlength="120" class="svelte-3z3jlz"/><button data-testid="template-add-folder" class="svelte-3z3jlz"> </button></div> <!></aside> <main class="svelte-3z3jlz"><!></main></div></fieldset> <!> <!></div> <!></div>`);function Za(e,t){qe(t,!0);let n=P(I({version:1,folders:[]})),r=P(``),i=P(``),a=P(``),o=P(``),s=P(``),c=P(``),l=P(!1),u=P(!1),d=P(``),f,p=N(()=>V(n).folders.find(e=>e.id===V(r)));async function m(){F(n,await Ta(),!0)}async function h(e){if(!V(u)){F(u,!0),F(d,``);try{await e()}catch(e){F(d,e instanceof Error?e.message:String(e),!0)}finally{F(u,!1)}}}Gi(()=>{h(m)});function g(e){F(r,e.id,!0),F(i,e.name,!0),F(l,!1)}function _(e){F(o,e?.id||``,!0),F(s,e?.name||``,!0),F(c,e?.content||``,!0),F(l,!0)}async function v(e,t){await h(async()=>{await f.show({title:Y(e?`templates.delete_folder`:`templates.delete_template`),message:Y(`templates.delete_message`,{name:t.name}),detail:e&&V(p)?.templates.length?Y(`templates.delete_folder_detail`):void 0,confirmLabel:Y(`common.remove`),cancelLabel:Y(`common.cancel`),danger:!0})&&(await Ta(e?`/folders/${t.id}?confirm=true`:`/${t.id}`,`DELETE`),F(l,!1),e&&(F(r,``),F(i,``)),await m())})}var y=Xa(),b=L(y),x=L(b),S=L(x),C=L(S,!0);j(S);var w=z(S);j(x);var T=z(x,2),E=L(T),D=L(E),ee=L(D),te=L(ee,!0);j(ee);var O=z(ee,2),k=L(O);Di(k);var ne=z(k),A=L(ne,!0);j(ne),j(O),q(z(O,2),17,()=>V(n).folders,e=>e.id,(e,t)=>{var n=Wa();let i;var a=L(n);j(n),B(()=>{i=gi(n,1,`list-item svelte-3z3jlz`,null,i,{active:V(r)===V(t).id}),G(a,`📁 ${V(t).name??``}`)}),H(`click`,n,()=>g(V(t))),W(e,n)},e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.empty`)]),W(e,t)}),j(D);var re=z(D,2),ie=L(re),ae=e=>{var t=Ja(),n=R(t),a=L(n,!0);j(n);var u=z(n,2),d=L(u);Di(d);var f=z(d),g=L(f,!0);j(f);var y=z(f),b=L(y,!0);j(y),j(u);var x=z(u,2),S=L(x),C=L(S,!0);j(S);var w=z(S),T=L(w,!0);j(w),j(x);var E=z(x,2);q(E,17,()=>V(p).templates,e=>e.id,(e,t)=>{var n=Ka(),r=L(n),i=L(r,!0);j(r);var a=z(r),o=L(a,!0);j(a),j(n),B((e,n)=>{G(i,V(t).name),J(a,`aria-label`,e),G(o,n)},[()=>`${Y(`common.remove`)} ${V(t).name}`,()=>Y(`common.remove`)]),H(`click`,r,()=>_(V(t))),H(`click`,a,()=>v(!1,V(t))),W(e,n)},e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.folder_empty`)]),W(e,t)});var D=z(E,2),ee=e=>{var t=qa(),n=L(t),i=L(n,!0);j(n);var a=z(n);Di(a);var u=z(a,2),d=L(u,!0);j(u);var f=z(u);yn(f);var p=z(f,2),g=L(p),_=L(g,!0);j(g);var v=z(g),y=L(v,!0);j(v),j(p),j(t),B((e,t,n,r,a)=>{G(i,e),G(d,t),G(_,n),v.disabled=r,G(y,a)},[()=>Y(`templates.name`),()=>Y(`templates.content`),()=>Y(`common.cancel`),()=>!V(s).trim(),()=>Y(`common.save`)]),Ni(a,()=>V(s),e=>F(s,e)),Ni(f,()=>V(c),e=>F(c,e)),H(`click`,g,()=>F(l,!1)),H(`click`,v,()=>h(async()=>{await Ta(V(o)?`/${V(o)}`:`/folders/${V(r)}/templates`,V(o)?`PUT`:`POST`,{name:V(s),content:V(c)}),await m(),F(l,!1)})),W(e,t)};K(D,e=>{V(l)&&e(ee)}),B((e,t,n,r,i,o)=>{G(a,e),f.disabled=t,G(g,n),G(b,r),G(C,i),G(T,o)},[()=>Y(`templates.folder`),()=>!V(i).trim(),()=>Y(`common.save`),()=>Y(`common.remove`),()=>Y(`templates.menu`),()=>Y(`templates.new_template`)]),Ni(d,()=>V(i),e=>F(i,e)),H(`click`,f,()=>h(async()=>{await Ta(`/folders/${V(r)}`,`PUT`,{name:V(i)}),await m()})),H(`click`,y,()=>v(!0,V(p))),H(`click`,w,()=>_()),W(e,t)},oe=e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.choose_folder`)]),W(e,t)};K(ie,e=>{V(p)?e(ae):e(oe,-1)}),j(re),j(E),j(T);var se=z(T,2),ce=e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)};K(se,e=>{V(u)&&e(ce)});var le=z(se,2),ue=e=>{var t=Ya(),n=L(t,!0);j(t),B(()=>G(n,V(d))),W(e,t)};K(le,e=>{V(d)&&e(ue)}),j(b),Vi(Ua(z(b,2),{}),e=>f=e,()=>f),j(y),si(y,e=>Ea?.(e)),B((e,t,n,r,i,a)=>{J(b,`aria-label`,e),G(C,t),w.disabled=V(u),J(w,`aria-label`,n),T.disabled=V(u),G(te,r),ne.disabled=i,G(A,a)},[()=>Y(`templates.manage`),()=>Y(`templates.manage`),()=>Y(`common.close`),()=>Y(`templates.new_folder`),()=>!V(a).trim(),()=>Y(`common.create`)]),H(`click`,w,function(...e){t.onclose?.apply(this,e)}),Ni(k,()=>V(a),e=>F(a,e)),H(`click`,ne,()=>h(async()=>{let e=await Ta(`/folders`,`POST`,{name:V(a)});await m(),g(e),F(a,``)})),W(e,y),Je()}Pr([`click`]);var Qa=U(`<p class="svelte-z7fdvl"> </p>`),$a=U(`<p role="alert" class="svelte-z7fdvl"> </p>`),eo=U(`<button class="template svelte-z7fdvl"> </button>`),to=U(`<button class="folder svelte-z7fdvl"> <span class="svelte-z7fdvl"> </span></button> <!>`,1),no=U(`<div class="template-menu-layer svelte-z7fdvl"><button class="backdrop svelte-z7fdvl"></button> <div class="dropdown svelte-z7fdvl" data-testid="templates-dropdown"><!> <button class="manage svelte-z7fdvl" data-testid="manage-templates"> </button></div></div>`),ro=U(`<div class="creation-layer svelte-z7fdvl"><!></div>`),io=U(`<button class="ghost-button" data-testid="templates-menu"> </button> <!> <!> <!>`,1);function ao(e,t){qe(t,!0);let n=P(!1),r=P(!1),i=P(void 0),a=P(I({version:1,folders:[]})),o=P(!1),s=P(``),c=P(``),l,u=P(0),d=P(0);async function f(){if(F(n,!V(n)),!V(n))return;let e=l.getBoundingClientRect();F(u,e.bottom+6),F(d,Math.max(8,window.innerWidth-e.right),!0),F(o,!0),F(s,``);try{F(a,await Ta(),!0)}catch(e){F(s,String(e instanceof Error?e.message:e),!0)}finally{F(o,!1)}}var p=io();Nr(`keydown`,on,e=>{e.key===`Escape`&&F(n,!1)});var m=R(p),h=L(m,!0);j(m),Vi(m,e=>l=e,()=>l);var g=z(m,2),_=e=>{var t=no(),l=L(t),f=z(l,2);let p;var m=L(f),h=e=>{var t=Qa(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},g=e=>{var t=$a(),n=L(t,!0);j(t),B(()=>G(n,V(s))),W(e,t)},_=e=>{var t=Qa(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.empty`)]),W(e,t)},v=e=>{var t=Wr();q(R(t),17,()=>V(a).folders,e=>e.id,(e,t)=>{var r=to(),a=R(r),o=L(a),s=z(o),l=L(s,!0);j(s),j(a);var u=z(a,2),d=e=>{var r=Wr();q(R(r),17,()=>V(t).templates,e=>e.id,(e,t)=>{var r=eo(),a=L(r,!0);j(r),B(()=>G(a,V(t).name)),H(`click`,r,()=>{F(i,V(t).id,!0),F(n,!1)}),W(e,r)},e=>{var t=Qa(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.folder_empty`)]),W(e,t)}),W(e,r)};K(u,e=>{V(c)===V(t).id&&e(d)}),B(()=>{J(a,`aria-expanded`,V(c)===V(t).id),G(o,`📁 ${V(t).name??``} `),G(l,V(c)===V(t).id?`▾`:`▸`)}),H(`click`,a,()=>F(c,V(c)===V(t).id?``:V(t).id,!0)),W(e,r)}),W(e,t)};K(m,e=>{V(o)?e(h):V(s)?e(g,1):V(a).folders.length?e(v,-1):e(_,2)});var y=z(m,2),b=L(y,!0);j(y),j(f),j(t),si(t,e=>Ea?.(e)),B((e,t)=>{J(l,`aria-label`,e),p=vi(f,``,p,{top:`${V(u)}px`,right:`${V(d)}px`}),G(b,t)},[()=>Y(`common.close`),()=>Y(`templates.manage`)]),H(`click`,l,()=>F(n,!1)),H(`click`,y,()=>{F(n,!1),F(r,!0)}),W(e,t)};K(g,e=>{V(n)&&e(_)});var v=z(g,2),y=e=>{Za(e,{onclose:()=>F(r,!1)})};K(v,e=>{V(r)&&e(y)});var b=z(v,2),x=e=>{var t=ro();Ra(L(t),{open:!0,get initialTemplateId(){return V(i)},onclose:()=>F(i,void 0),onsuccess:e=>{window.location.href=`/?doc=`+encodeURIComponent(e)}}),j(t),si(t,e=>Ea?.(e)),W(e,t)};K(b,e=>{V(i)&&e(x)}),B(e=>{J(m,`aria-expanded`,V(n)),G(h,e)},[()=>Y(`templates.menu`)]),H(`click`,m,f),W(e,p),Je()}Pr([`click`]);var oo=`living-documentation:persistent-toast`,so=2600,co=900*1e3,lo=new Map;function uo(){return`toast-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function fo(){let e=document.getElementById(`workspaceToastStack`);if(e)return e;document.getElementById(`workspaceToast`)?.remove(),document.getElementById(`workspaceToastIcon`)?.remove(),document.getElementById(`workspaceToastMessage`)?.remove();let t=document.createElement(`div`);return t.id=`workspaceToastStack`,t.className=`workspace-toast-stack`,t.setAttribute(`role`,`status`),t.setAttribute(`aria-live`,`polite`),document.body.append(t),t}function po(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return typeof t.id==`string`&&typeof t.message==`string`&&[`success`,`error`,`loading`].includes(String(t.state))&&(t.expiresAt===null||typeof t.expiresAt==`number`)&&(t.href===void 0||typeof t.href==`string`)&&(t.linkLabel===void 0||typeof t.linkLabel==`string`)}function mo(){let e=localStorage.getItem(oo);if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(po);if(typeof t==`object`&&t&&!Array.isArray(t)){let e=t;if(typeof e.message==`string`&&[`success`,`error`,`loading`].includes(String(e.state))&&(e.expiresAt===null||typeof e.expiresAt==`number`))return[{id:uo(),message:e.message,state:e.state,expiresAt:e.expiresAt}]}}catch{return[]}return[]}function ho(e){e.length?localStorage.setItem(oo,JSON.stringify(e)):localStorage.removeItem(oo)}function go(e){let t=lo.get(e);t&&(clearTimeout(t),lo.delete(e))}function _o(e){go(e);let t=mo().filter(t=>t.id!==e);ho(t),xo(t),So(t)}function vo(e){return e===`loading`?`⟳`:e===`error`?`!`:`✓`}function yo(e){let t=Date.now();return e.filter(e=>!e.expiresAt||e.expiresAt>t)}function bo(e){let t=document.createElement(`div`);t.className=`workspace-toast`,t.dataset.state=e.state,t.dataset.toastId=e.id;let n=document.createElement(`span`);n.className=`toast-icon`,n.setAttribute(`aria-hidden`,`true`),n.textContent=vo(e.state);let r=document.createElement(`div`);r.className=`workspace-toast-body`;let i=document.createElement(`p`);if(i.className=`workspace-toast-message`,i.textContent=e.message,r.append(i),e.href){let t=document.createElement(`a`);t.className=`workspace-toast-link`,t.href=e.href,t.textContent=e.linkLabel||`Open`,r.append(t)}let a=document.createElement(`button`);return a.className=`workspace-toast-close`,a.type=`button`,a.setAttribute(`aria-label`,`Close notification`),a.textContent=`×`,a.addEventListener(`click`,()=>_o(e.id)),t.append(n,r,a),t}function xo(e){let t=fo(),n=yo(e);t.hidden=n.length===0;let r=new Set(n.map(e=>e.id));for(let e of Array.from(t.querySelectorAll(`[data-toast-id]`)))r.has(e.dataset.toastId??``)||e.remove();for(let e of n){let n=Array.from(t.querySelectorAll(`[data-toast-id]`)).find(t=>t.dataset.toastId===e.id);if(n){let t=n.querySelector(`.workspace-toast-message`);if(t&&t.textContent!==e.message&&(t.textContent=e.message),n.dataset.state!==e.state){n.dataset.state=e.state;let t=n.querySelector(`.toast-icon`);t&&(t.textContent=vo(e.state))}let r=n.querySelector(`.workspace-toast-link`);if(e.href)if(r)r.href=e.href,r.textContent=e.linkLabel||`Open`;else{let t=document.createElement(`a`);t.className=`workspace-toast-link`,t.href=e.href,t.textContent=e.linkLabel||`Open`,n.querySelector(`.workspace-toast-body`)?.append(t)}else r&&r.remove()}else t.append(bo(e))}n.length!==e.length&&ho(n)}function So(e){for(let t of lo.keys())e.some(e=>e.id===t)||go(t);for(let t of e){if(go(t.id),!t.expiresAt)continue;let e=t.expiresAt-Date.now();if(e<=0){_o(t.id);continue}lo.set(t.id,window.setTimeout(()=>_o(t.id),e))}}function Co(e){let t=yo(mo()),n=t.findIndex(t=>t.id===e.id)>=0?t.map(t=>t.id===e.id?e:t):[...t,e];return ho(n),xo(n),So(n),e.id}function wo(){let e=yo(mo());ho(e),xo(e),So(e)}function To(e,t=uo()){let n=typeof t==`string`?{id:t}:t;return Co({id:n.id??uo(),message:e,state:`loading`,expiresAt:Date.now()+co,href:n.href,linkLabel:n.linkLabel})}function Eo(e,t=`success`,n=so,r=uo()){let i=typeof r==`string`?{id:r}:r;return Co({id:i.id??uo(),message:e,state:t,expiresAt:Date.now()+n,href:i.href,linkLabel:i.linkLabel})}var Do=`/api/workspace`;async function Oo(){try{let e=await fetch(Do,{headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Workspace load failed with ${e.status}`);return await e.json()}catch(e){return console.warn(`[workspace] load failed`,e),null}}async function ko(e){try{let t=await fetch(Do,{method:`PUT`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(`Workspace save failed with ${t.status}`);return await t.json()}catch(e){return console.warn(`[workspace] save failed`,e),null}}async function Ao(e){try{return await(await fetch(`${Do}/list-models`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)})).json()}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Failed to list models`}}}async function jo(e){try{return await(await fetch(`${Do}/mcp-inventory`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)})).json()}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Failed to list MCP inventory`}}}async function Mo(e,t){try{let n=await fetch(`${Do}/run-agent-stream`,{method:`POST`,headers:{Accept:`application/x-ndjson, application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)});if(!n.ok)return{ok:!1,error:await n.json().then(e=>typeof e?.error==`string`?e.error:`Agent run failed`).catch(()=>`Agent run failed`)};if(!n.body)return{ok:!1,error:`Agent stream is unavailable`};let r=new TextDecoder,i=n.body.getReader(),a=``,o=``,s=``,c=e=>{if(!e.trim())return;let n=JSON.parse(e);t(n),n.type===`final`&&typeof n.content==`string`&&(o=n.content),n.type===`error`&&(s=n.message||`Agent run failed`)};for(;;){let{value:e,done:t}=await i.read();if(t)break;a+=r.decode(e,{stream:!0});let n=a.split(`
|
|
3
|
-
`);a=n.pop()??``;for(let e of n)c(e),await new Promise(e=>setTimeout(e,0))}return a+=r.decode(),c(a),s?{ok:!1,error:s}:o?{ok:!0,content:o}:{ok:!1,error:`Agent did not produce a response`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Agent run failed`}}}async function
|
|
4
|
-
`);o=n.pop()??``;for(let e of n)u(e),await new Promise(e=>setTimeout(e,0))}return o+=i.decode(),u(o),s?{ok:s.ok,document:s,error:l?c:void 0}:c?{ok:!1,error:c}:{ok:!1,error:`Agent did not produce a response`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Agent run failed`}}}async function Po(e){try{let t=await fetch(`${Do}/test-llm`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)}),n=await t.json();return{...n,ok:t.ok&&n.ok===!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Connection test failed`}}}var Fo=U(`<p class="agents-dropdown-empty svelte-f11yds"> </p>`),Io=U(`<span class="agents-item-badge svelte-f11yds"> </span>`),Lo=U(`<span class="agents-item-badge agents-item-badge--input svelte-f11yds"> </span>`),Ro=U(`<button type="button" role="menuitem"><span class="agents-item-name svelte-f11yds"> </span> <!></button>`),zo=U(`<div class="agents-group svelte-f11yds"><button type="button" class="agents-group-toggle svelte-f11yds"><span class="agents-group-label svelte-f11yds"> </span> <span>›</span></button> <!></div>`),Bo=U(`<div class="agents-backdrop svelte-f11yds"></div> <div class="agents-dropdown svelte-f11yds" role="menu"><!></div>`,1),Vo=U(`<div class="confirm-overlay agents-modal-overlay svelte-f11yds"><section class="confirm-dialog" role="dialog" aria-modal="true"><h2> </h2> <p class="confirm-message"> </p> <div class="field-group" style="margin-top:1rem"><label class="field-label" for="agents-menu-input"> </label> <textarea id="agents-menu-input" class="field-input"></textarea></div> <footer class="confirm-actions"><button class="secondary-button" type="button"> </button> <button class="btn-primary" type="button"> </button></footer></section></div>`),Ho=U(`<button type="button" class="ghost-button" aria-haspopup="true">Agents</button> <!> <!>`,1);function Uo(e,t){qe(t,!0);let n=600*1e3,r=P(!1),i=P(I([])),a=P(!1),o=P(!1),s=P(I(new Set)),c=P(null),l=P(``),u=P(0),d=P(0),f=null;function p(e){return document.body.appendChild(e),{destroy(){e.parentNode&&e.parentNode.removeChild(e)}}}function m(){if(!f)return;let e=f.getBoundingClientRect();F(u,e.bottom+6),F(d,window.innerWidth-e.right)}function h(e){let t=e.provider;return!(!t||!t.config?.model||!e.config?.systemPrompt||e.config?.requiresUserInput&&!e.config?.userInputDescription?.trim())}async function g(){if(!(V(a)||V(o))){F(o,!0);try{let e=await fetch(`/api/workspace`,{headers:{Accept:`application/json`}});if(!e.ok)return;let t=await e.json(),n=Array.isArray(t.entities)?t.entities:[],r=new Map(n.map(e=>[e.id,e])),o=n.filter(e=>e.kind===`llm`),s=n.filter(e=>e.kind===`agent`).map(e=>({...e,provider:r.get(e.parentId??``)}));F(i,o.map(e=>({llm:e,agents:s.filter(t=>t.parentId===e.id)})).filter(e=>e.agents.length>0),!0),F(a,!0)}catch{}finally{F(o,!1)}}}function _(){V(r)||m(),F(r,!V(r)),V(r)&&g()}function v(e){let t=new Set(V(s));t.has(e)?t.delete(e):t.add(e),F(s,t,!0)}function y(){F(r,!1)}function b(e){h(e)&&(y(),e.config?.requiresUserInput?(F(c,e,!0),F(l,``)):w(e.id,``))}function x(){F(c,null),F(l,``)}async function S(){if(!V(c)||!V(l).trim())return;let e=V(c).id,t=V(l);F(c,null),F(l,``),await w(e,t)}function C(e,t,n){let r=e.turn==null?``:String(e.turn);switch(e.type){case`model_call`:return Y(`agents.status.model`,{agent:t,turn:r,model:n});case`tool_call`:return Y(`agents.status.tool`,{agent:t,turn:r,tool:e.toolName??``});case`tool_result`:return Y(`agents.status.tool_done`,{agent:t,turn:r,tool:e.toolName??``,detail:e.detail??``});case`fallback`:return Y(`agents.status.fallback`,{agent:t,turn:r});default:return null}}async function w(e,t){let r=V(i).flatMap(e=>e.agents).find(t=>t.id===e),a=r?.label??``,o=r?.config?.model||r?.provider?.config?.model||``,s=o.includes(`/`)?o.split(`/`).pop()??o:o,c=To(`${Y(`agents.loading`)} ${a}`.trim()),l=[],u=`${Y(`agents.loading`)} ${a}`.trim(),d=!1,f=async()=>{if(!d){for(d=!0;l.length>0;){let e=l.shift();To(e,c),u=e,await new Promise(e=>setTimeout(e,750))}d=!1}},p=e=>{e!==(l.length>0?l[l.length-1]:u)&&(l.push(e),f())};try{let r=await No(e,t,e=>{let t=C(e,a,s);if(t)p(t);else if(e.type===`final`&&e.content){let t=e.content.replace(/[\n\r]+/g,` `).trim();p(t.length>120?`${t.slice(0,120)}…`:t)}});for(;d||l.length>0;)await new Promise(e=>setTimeout(e,750/2));r.ok&&r.document?(Eo(`${Y(`agents.success`)} ${r.document.filename}`.trim(),`success`,n,{id:c,href:`/?doc=${encodeURIComponent(r.document.id)}`,linkLabel:Y(`agents.open_document`)}),window.dispatchEvent(new CustomEvent(`ld:documents-changed`))):Eo(r.error??Y(`agents.run_failed`),`error`,n,r.document?.id?{id:c,href:`/?doc=${encodeURIComponent(r.document.id)}`,linkLabel:Y(`agents.open_document`)}:c)}catch(e){Eo(e instanceof Error?e.message:Y(`agents.run_failed`),`error`,n,c)}}var T=Ho(),E=R(T);Vi(E,e=>f=e,()=>f);var D=z(E,2),ee=e=>{var t=Bo(),n=R(t);si(n,e=>p?.(e));var r=z(n,2),a=L(r),c=e=>{var t=Fo(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},l=e=>{var t=Fo(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`agents.empty`)]),W(e,t)},f=e=>{var t=Wr();q(R(t),17,()=>V(i),Xr,(e,t)=>{let n=N(()=>V(s).has(V(t).llm.id));var r=zo(),i=L(r),a=L(i),o=L(a,!0);j(a);var c=z(a,2);let l;j(i);var u=z(i,2),d=e=>{var n=Wr();q(R(n),17,()=>V(t).agents,Xr,(e,t)=>{let n=N(()=>h(V(t)));var r=Ro();let i;var a=L(r),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var t=Io(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`agents.not_ready`)]),W(e,t)},l=e=>{var t=Lo(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`agents.requires_input`)]),W(e,t)};K(s,e=>{V(n)?V(t).config?.requiresUserInput&&e(l,1):e(c)}),j(r),B(()=>{i=gi(r,1,`agents-item svelte-f11yds`,null,i,{"agents-item--disabled":!V(n)}),r.disabled=!V(n),G(o,V(t).label)}),H(`click`,r,()=>b(V(t))),W(e,r)}),W(e,n)};K(u,e=>{V(n)&&e(d)}),j(r),B(()=>{J(i,`aria-expanded`,V(n)),G(o,V(t).llm.label),l=gi(c,1,`agents-group-chevron svelte-f11yds`,null,l,{"agents-group-chevron--open":V(n)})}),H(`click`,i,()=>v(V(t).llm.id)),W(e,r)}),W(e,t)};K(a,e=>{V(o)?e(c):V(i).length===0?e(l,1):e(f,-1)}),j(r),si(r,e=>p?.(e)),B(()=>vi(r,`top:${V(u)??``}px;right:${V(d)??``}px`)),H(`click`,n,y),W(e,t)};K(D,e=>{V(r)&&e(ee)});var te=z(D,2),O=e=>{var t=Vo(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),u=L(s),d=L(u,!0);j(u);var f=z(u,2);yn(f),J(f,`rows`,4),j(s);var m=z(s,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=L(_,!0);j(_),j(m),j(n),j(t),si(t,e=>p?.(e)),B((e,t,n,r,a,s)=>{G(i,V(c).label),G(o,e),G(d,t),J(f,`placeholder`,n),G(g,r),_.disabled=a,G(v,s)},[()=>V(c).config?.userInputDescription?.trim()||Y(`agents.input_hint`),()=>Y(`agents.input_title`),()=>Y(`agents.input_hint`),()=>Y(`common.cancel`),()=>!V(l).trim(),()=>Y(`agents.run`)]),H(`click`,t,e=>{e.target===e.currentTarget&&x()}),Ni(f,()=>V(l),e=>F(l,e)),H(`click`,h,x),H(`click`,_,S),W(e,t)};K(te,e=>{V(c)&&e(O)}),B(()=>J(E,`aria-expanded`,V(r))),H(`click`,E,_),W(e,T),Je()}Pr([`click`]);var Wo=new class{#e=P(I([]));get items(){return V(this.#e)}set items(e){F(this.#e,e,!0)}has(e){return this.items.some(t=>t.id===e)}syncFromConfig(e){let t=Array.isArray(e?.favorites)?e.favorites:[];this.items=t.filter(e=>!!e&&typeof e==`object`&&typeof e.id==`string`).map(e=>({id:e.id,title:typeof e.title==`string`?e.title:``}))}toggle(e){let t=this.has(e.id)?this.items.filter(t=>t.id!==e.id):[...this.items,{id:e.id,title:e.title}];this.persist(t)}remove(e){this.has(e)&&this.persist(this.items.filter(t=>t.id!==e))}reorder(e,t){let n=this.items.findIndex(t=>t.id===e),r=this.items.findIndex(e=>e.id===t);if(n<0||r<0||n===r)return;let i=[...this.items],[a]=i.splice(n,1);i.splice(r,0,a),this.persist(i)}async persist(e){let t=this.items;this.items=e;try{let t=await fetch(`/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({favorites:e})});if(!t.ok)throw Error(String(t.status))}catch{this.items=t}}},Go=U(`<p class="favorites-empty svelte-cpc44f"> </p>`),Ko=U(`<div draggable="true"><span class="favorites-grip svelte-cpc44f" aria-hidden="true"><i class="fa-solid fa-grip-vertical"></i></span> <button type="button" class="favorites-item svelte-cpc44f" role="menuitem"><i class="fa-solid fa-star favorites-item-star svelte-cpc44f" aria-hidden="true"></i> <span class="favorites-item-name svelte-cpc44f"> </span></button> <button type="button" class="favorites-remove svelte-cpc44f">×</button></div>`),qo=U(`<div class="favorites-backdrop svelte-cpc44f"></div> <div class="favorites-dropdown svelte-cpc44f" role="menu"><!></div>`,1),Jo=U(`<button type="button" class="ghost-button" aria-haspopup="true"><i class="fa-solid fa-star" aria-hidden="true" style="margin-right:6px;color:#f59e0b"></i> </button> <!>`,1);function Yo(e,t){qe(t,!0);let n=P(!1),r=P(0),i=P(0),a=null;function o(e){return document.body.appendChild(e),{destroy(){e.parentNode&&e.parentNode.removeChild(e)}}}function s(){if(!a)return;let e=a.getBoundingClientRect();F(r,e.bottom+6),F(i,window.innerWidth-e.right)}function c(){V(n)||s(),F(n,!V(n))}function l(){F(n,!1)}function u(e){l();let t=`/?doc=${encodeURIComponent(e)}`;history.pushState(null,``,t),window.dispatchEvent(new PopStateEvent(`popstate`))}let d=P(null),f=P(null);function p(e,t){F(d,t,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t))}function m(e,t){V(d)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),F(f,t,!0))}function h(e,t){e.preventDefault(),V(d)&&V(d)!==t&&Wo.reorder(V(d),t),F(d,null),F(f,null)}function g(){F(d,null),F(f,null)}var _=Jo(),v=R(_),y=z(L(v),1,!0);j(v),Vi(v,e=>a=e,()=>a);var b=z(v,2),x=e=>{var t=qo(),n=R(t);si(n,e=>o?.(e));var a=z(n,2),s=L(a),c=e=>{var t=Go(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`favorites.empty`)]),W(e,t)},_=e=>{var t=Wr();q(R(t),17,()=>Wo.items,e=>e.id,(e,t)=>{var n=Ko();let r;var i=L(n),a=z(i,2),o=z(L(a),2),s=L(o,!0);j(o),j(a);var c=z(a,2);j(n),B((e,o,l)=>{r=gi(n,1,`favorites-row svelte-cpc44f`,null,r,{"favorites-row--over":V(f)===V(t).id&&V(d)!==V(t).id,"favorites-row--dragging":V(d)===V(t).id}),J(i,`title`,e),J(a,`title`,V(t).title),G(s,V(t).title||V(t).id),J(c,`aria-label`,o),J(c,`title`,l)},[()=>Y(`favorites.reorder`),()=>Y(`favorites.remove`),()=>Y(`favorites.remove`)]),Nr(`dragstart`,n,e=>p(e,V(t).id)),Nr(`dragover`,n,e=>m(e,V(t).id)),Nr(`drop`,n,e=>h(e,V(t).id)),Nr(`dragend`,n,g),H(`click`,a,()=>u(V(t).id)),H(`click`,c,()=>Wo.remove(V(t).id)),W(e,n)}),W(e,t)};K(s,e=>{Wo.items.length===0?e(c):e(_,-1)}),j(a),si(a,e=>o?.(e)),B(()=>vi(a,`top:${V(r)??``}px;right:${V(i)??``}px`)),H(`click`,n,l),W(e,t)};K(b,e=>{V(n)&&e(x)}),B(e=>{J(v,`aria-expanded`,V(n)),G(y,e)},[()=>Y(`nav.favorites`)]),H(`click`,v,c),W(e,_),Je()}Pr([`click`]);var Xo=U(`<a class="ghost-button"> </a>`),Zo=U(`<header class="topbar"><div class="brand-lockup"><span class="brand-mark">LD</span> <div><h1> </h1> <p> </p></div></div> <!> <div class="topbar-right"><!> <!> <!> <!> <!></div></header>`);function Qo(e,t){qe(t,!0);let n=Wi(t,`nav`,19,()=>[]),r=N(()=>[...n(),{label:`Workspace`,href:`/workspace`},{label:`Blueprint`,href:`/blueprint`},{label:`Diagram`,href:`/diagram`},{label:Y(`graph.nav`),href:`/graph`},{label:`Files`,href:`/files`},{label:`Survival Kit`,href:`/survival-kit`},{label:`AI Context`,href:`/context`},{label:`Admin`,href:`/admin`},{label:`Home`,href:`/`}].filter((e,t,n)=>!ma.hidden.includes(e.href)&&n.findIndex(t=>t.href===e.href)===t));function i(e,t){e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||(e.preventDefault(),history.pushState(null,``,t),window.dispatchEvent(new PopStateEvent(`popstate`)))}var a=Zo(),o=L(a),s=z(L(o),2),c=L(s),l=L(c,!0);j(c);var u=z(c,2),d=L(u,!0);j(u),j(s),j(o);var f=z(o,2),p=e=>{var n=Wr();oi(R(n),()=>t.children),W(e,n)};K(f,e=>{t.children&&e(p)});var m=z(f,2),h=L(m);Yo(h,{});var g=z(h,2);q(g,17,()=>V(r),Xr,(e,t)=>{var n=Xo(),r=L(n,!0);j(n),B(()=>{J(n,`href`,V(t).href),G(r,V(t).label)}),H(`click`,n,e=>i(e,V(t).href)),W(e,n)});var _=z(g,2);ao(_,{});var v=z(_,2);Uo(v,{});var y=z(v,2),b=e=>{var n=Wr();oi(R(n),()=>t.actions),W(e,n)};K(y,e=>{t.actions&&e(b)}),j(m),j(a),B(()=>{G(l,t.title),G(d,t.subtitle)}),W(e,a),Je()}Pr([`click`]);var $o=`ld-site-theme`;function es(e){return e===`tau`?`tau`:`base`}function ts(e){let t=document.documentElement;t.setAttribute(`data-site-theme`,e),e===`tau`&&t.classList.remove(`dark`);try{localStorage.setItem($o,e)}catch{}}function ns(){return document.documentElement.getAttribute(`data-site-theme`)===`tau`}function rs(){let e=null;try{e=localStorage.getItem($o)}catch{e=null}ts(es(e))}function is(e){ts(es(e?.siteTheme))}var as=U(`<span> </span>`),os=U(`<div class="field-row"><div class="info-item"><dt class="info-label"> </dt> <dd class="info-value"> </dd></div> <div class="info-item"><dt class="info-label"> </dt> <dd class="info-value"> </dd></div></div> <div class="field-group"><label class="field-label" for="field-title"> </label> <input id="field-title" type="text" class="field-input"/> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-theme"> </label> <select id="field-theme" class="field-input"><option> </option><option> </option><option> </option></select> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-site-theme"> </label> <select id="field-site-theme" class="field-input"><option> </option><option> </option></select> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-language"> </label> <select id="field-language" class="field-input"><option> </option><option> </option></select> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-sidebar-sort"> </label> <select id="field-sidebar-sort" class="field-input"><option> </option><option> </option><option> </option></select> <p class="field-hint"> </p></div>`,1),ss=U(`<label class="checkbox-label"><input type="checkbox"/> </label>`),cs=U(`<!> <p class="field-hint"> </p>`,1),ls=U(`<div class="pattern-row"><p class="pattern-filename"> </p> <div class="pattern-cols"><div><span class="pattern-col-label"> </span> <span> </span></div> <div><span class="pattern-col-label"> </span> <span class="pattern-value--cat"> </span></div> <div><span class="pattern-col-label"> </span> <span class="pattern-value--title"> </span></div></div></div>`),us=U(`<div class="field-group"><label class="field-label" for="field-pattern"> </label> <input id="field-pattern" type="text" class="field-input"/> <p class="field-hint"> <code> </code></p></div> <div class="pattern-preview"><h4 class="pattern-preview-title"> </h4> <p class="field-hint"> </p> <div class="pattern-rows"></div></div>`,1),ds=U(`<div class="field-group"><label class="field-label" for="field-source-root"> </label> <input id="field-source-root" type="text" class="field-input field-input--mono" placeholder=".."/> <p class="field-hint"> </p></div> <!>`,1),fs=U(`<div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div>`,1),ps=U(`<div class="field-group"><label class="field-label" for="field-code-max-height"> </label> <input id="field-code-max-height" type="number" class="field-input" min="0" max="5000" step="10" placeholder="400"/> <p class="field-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"></p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div>`,1),ms=U(`<div class="field-group"><label class="field-label" for="field-blocked"> </label> <textarea id="field-blocked" class="field-input field-input--mono" placeholder="exe sh bat cmd com scr ps1 msi"></textarea> <p class="field-hint"> </p></div>`),hs=U(`<li class="llm-host-chip"><span class="llm-host-chip__url"> </span> <button type="button" class="llm-host-chip__remove">×</button></li>`),gs=U(`<ul class="llm-host-list"></ul>`),_s=U(`<div class="field-group"><label class="field-label" for="field-llm-host"> </label> <div class="llm-host-add"><input id="field-llm-host" type="text" class="field-input field-input--mono" placeholder="https://api.deepseek.com"/> <button type="button" class="llm-host-btn"> </button></div> <p class="field-hint"> </p> <!></div>`),vs=U(`<div class="field-group"><label class="field-label" for="field-git-push-every"> </label> <input id="field-git-push-every" type="number" min="1" max="1000" step="1" class="field-input"/> <p class="field-hint"> </p></div>`),ys=U(`<div class="field-group"><label class="field-label" for="field-git-commit-message"> </label> <input id="field-git-commit-message" type="text" class="field-input field-input--mono" placeholder="docs: update living documentation"/> <p class="field-hint"> </p></div> <fieldset class="git-push-field"><legend> </legend> <label class="radio-card"><input type="radio" name="gitPushMode"/> <span><strong> </strong> <small> </small></span></label> <label class="radio-card"><input type="radio" name="gitPushMode"/> <span><strong> </strong> <small> </small></span></label></fieldset> <!>`,1),bs=U(`<fieldset class="git-mode-field"><legend> </legend> <label class="radio-card"><input type="radio" name="gitMode"/> <span><strong> </strong> <small> </small></span></label> <label class="radio-card"><input type="radio" name="gitMode"/> <span><strong> </strong> <small> </small></span></label> <label class="radio-card"><input type="radio" name="gitMode"/> <span><strong> </strong> <small> </small></span></label></fieldset> <!>`,1),xs=U(`<div class="app-shell"><!> <div class="admin-scroll"><form class="admin-form" novalidate=""><div class="save-bar"><div class="save-bar-inner"><div><h2 class="save-bar-title"> </h2> <p class="save-bar-desc"> </p></div> <div class="save-bar-actions"><!> <button type="submit" class="btn-primary"> </button></div></div></div> <div class="admin-sections"><!> <!> <!> <!> <!> <!> <!> <!> <!> <div id="git-integration" class="admin-anchor"><!></div> <!></div></form> <div class="admin-sections"><div class="license-card"><div class="license-banner"><span class="license-icon">📖</span> <div><h3 class="license-title"> </h3> <p class="license-subtitle"> </p></div></div> <div class="license-body"><p></p> <div class="license-links"><a href="https://www.linkedin.com/in/youssef-medaghri-alaoui-93b2922/" target="_blank" rel="noopener noreferrer" class="license-btn license-btn--linkedin"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.13 1.44-2.13 2.93v5.68H9.37V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.35-1.85 3.58 0 4.24 2.36 4.24 5.43v6.31ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45ZM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45C23.2 24 24 23.23 24 22.28V1.72C24 .77 23.2 0 22.22 0Z"></path></svg> </a> <a href="https://www.npmjs.com/package/living-ai-documentation" target="_blank" rel="noopener noreferrer" class="license-btn license-btn--npm"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M0 0v24h24V0H0Zm19.2 19.2H13.6V8h-3.2v11.2H4.8V4.8h14.4v14.4Z"></path></svg> </a></div></div></div></div></div></div>`);function Ss(e,t){qe(t,!0);let n=[],r=[],i=P(``),a=P(``),o=P(``),s=P(`system`),c=P(I([])),l=P(`base`),u=P(`recent`),d=P(`en`),f=P(``),p=P(``),m=P(!1),h=P(!1),g=P(400),_=P(!1),v=P(!1),y=P(!1),b=P(!1),x=P(!1),S=P(``),C=P(I([])),w=P(I([])),T=P(I([])),E=P(I([])),D=P(``),ee=P(!1),te=P(`unconfigured`),O=P(`never`),k=P(1),ne=P(`docs: update living documentation`);function A(){let e=V(D).trim();if(!e)return;let t;try{let n=new URL(e);if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`protocol`);t=n.origin}catch{_e(`Enter a valid http(s) URL, e.g. https://api.deepseek.com`,`error`);return}V(E).includes(t)||F(E,[...V(E),t],!0),F(D,``)}function re(e){F(E,V(E).filter(t=>t!==e),!0)}let ie=P(null),ae=null,oe=P(null),se=[`2024_01_15_09_30_[DevOps]_deploy_pipeline.md`,`2023_11_03_14_45_[Frontend]_react_hooks_guide.md`,`2025_06_20_08_00_meeting_notes.md`,`readme.md`];function ce(e){let t=e.split(`_`);return t.length===5?`${t[0]}-${t[1]}-${t[2]}T${t[3]}:${t[4]}`:`${t[0]}-${t[1]}-${t[2]}`}function le(e){e||=`YYYY_MM_DD_HH_mm_[Category]_title`;let t=/YYYY.*MM.*DD/.test(e),n=t&&/HH.*mm/.test(e),r=/\[Category\]/i.test(e),i=n?`(\\d{4}_\\d{2}_\\d{2}(?:_\\d{2}_\\d{2})?)`:`(\\d{4}_\\d{2}_\\d{2})`,a=`\\[([^\\]]+)\\]`,o=t&&r&&e.search(/\[Category\]/i)<e.search(/YYYY/i),s=null,c=null;if(t&&r){let e=o?`${a}_${i}`:`${i}_${a}`;s=RegExp(`^`+e+`_(.+)\\.md$`,`i`),c=RegExp(`^`+i+`_(.+)\\.md$`,`i`)}else t?c=RegExp(`^`+i+`_(.+)\\.md$`,`i`):r&&(s=RegExp(`^\\[([^\\]]+)\\]_(.+)\\.md$`,`i`));return{full:s,dateOnly:c,hasDate:t,hasCategory:r,catBeforeDate:o}}function ue(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `)}function de(e,t){if(t.full){let n=e.match(t.full);if(n){if(t.hasDate&&t.hasCategory){let e=t.catBeforeDate?n[2]:n[1],r=t.catBeforeDate?n[1]:n[2];return{date:ce(e),category:r,title:ue(n[3]),match:!0}}else if(t.hasCategory)return{date:null,category:n[1],title:ue(n[2]),match:!0}}}if(t.dateOnly){let n=e.match(t.dateOnly);if(n)return{date:ce(n[1]),category:`General`,title:ue(n[2]),match:!0}}return{date:null,category:`General`,title:e.replace(`.md`,``),match:!1}}let fe=N(()=>se.map(e=>({filename:e,...de(e,le(V(f)))})));function pe(e){return/^([/\\]|[a-zA-Z]:[\\/]|~)/.test(e)}function me(e,t){if(!e)return t;let n=e=>e.replace(/\\/g,`/`),r=n(e).split(`/`).filter(Boolean),i=n(t).split(`/`).filter(Boolean),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=r.length-a,s=i.slice(a).join(`/`),c=`../`.repeat(o)+s;return c.endsWith(`/`)&&(c=c.slice(0,-1)),c===``?`.`:c}async function he(){try{let e=await fetch(`/api/config`).then(e=>e.json());F(i,e.docsFolder||``,!0),F(a,e.port||``,!0),F(o,e.title||``,!0),F(s,e.theme||`system`,!0),F(c,pa(e.hiddenHeaderMenus),!0),F(l,e.siteTheme===`tau`?`tau`:`base`,!0),F(u,[`recent`,`oldest`,`alphabetical`].includes(e.sidebarSort)?e.sidebarSort:`recent`,!0),F(d,e.language||`en`,!0),await ya(V(d)),F(f,e.filenamePattern||``,!0),F(p,e.docsFolder&&e.sourceRoot?me(e.docsFolder,e.sourceRoot):``,!0),F(m,!!e.exclusiveFolderExpansion),F(h,!!e.exclusiveCategoryExpansion),F(g,typeof e.codeBlockMaxHeight==`number`?e.codeBlockMaxHeight:400,!0),F(_,!!e.markdownSoftBreaks),F(v,!!e.imageRoundedCorners),F(y,!!e.imageCentered),F(b,!!e.imageBorder),F(x,!!e.codeBlockLightTheme),F(S,(e.blockedFileExtensions||[]).join(` `),!0),F(C,e.extraFiles||[],!0);let t=[`c-white`,`c-gray`,`c-slate`,`c-blue`,`c-sky`,`c-cyan`,`c-teal`,`c-green`,`c-lime`,`c-amber`,`c-orange`,`c-red`,`c-rose`,`c-pink`,`c-purple`],n={"c-white":`#ffffff`,"c-gray":`#f5f5f4`,"c-slate":`#f1f5f9`,"c-blue":`#dbeafe`,"c-sky":`#e0f2fe`,"c-cyan":`#cffafe`,"c-teal":`#ccfbf1`,"c-green":`#dcfce7`,"c-lime":`#ecfccb`,"c-amber":`#fef9c3`,"c-orange":`#ffedd5`,"c-red":`#fee2e2`,"c-rose":`#ffe4e6`,"c-pink":`#fce7f3`,"c-purple":`#ede9fe`};F(w,Array.isArray(e.diagramNodePalette)&&e.diagramNodePalette.length?t.map((t,r)=>e.diagramNodePalette[r]||n[t]):t.map(e=>n[e]),!0),F(T,Array.isArray(e.diagramEdgePalette)&&e.diagramEdgePalette.length?[...e.diagramEdgePalette]:[`#ffffff`,`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],!0),F(E,Array.isArray(e.llmModelsNoV1Hosts)?[...e.llmModelsNoV1Hosts]:[],!0),F(ee,!!e.debugAgents);let r=e.gitIntegration||{};F(te,r.mode===`disabled`||r.mode===`enabled`?r.mode:`unconfigured`,!0),F(O,r.pushMode===`everyNCommits`?`everyNCommits`:`never`,!0),F(k,typeof r.pushEveryCommits==`number`?r.pushEveryCommits:1,!0),F(ne,typeof r.commitMessage==`string`&&r.commitMessage.trim()?r.commitMessage:`docs: update living documentation`,!0),V(oe).loadBrowse(e.docsFolder||`/`)}catch{_e(`Failed to load configuration.`,`error`)}}async function ge(e){e.preventDefault();let t=V(f).trim();if(t){let e=(t.match(/\[Category\]/gi)||[]).length;if(e===0){_e(`Pattern must include [Category].`,`error`);return}if(e>1){_e(`Pattern must include [Category] only once.`,`error`);return}}if(V(p)!==``&&pe(V(p))){_e(`Source root must be a relative path.`,`error`);return}let n=V(S).split(/[\s,]+/).map(e=>e.trim().replace(/^\.+/,``).toLowerCase()).filter(e=>/^[a-z0-9]+$/.test(e)),r={title:V(o),theme:V(s),siteTheme:V(l),hiddenHeaderMenus:V(c),sidebarSort:V(u),language:V(d),filenamePattern:t,exclusiveFolderExpansion:V(m),exclusiveCategoryExpansion:V(h),codeBlockMaxHeight:Math.max(0,Math.min(5e3,V(g)||0)),markdownSoftBreaks:V(_),imageRoundedCorners:V(v),imageCentered:V(y),imageBorder:V(b),codeBlockLightTheme:V(x),diagramNodePalette:[...V(w)],diagramEdgePalette:[...V(T)],sourceRoot:V(p)===``?null:V(p),blockedFileExtensions:n,llmModelsNoV1Hosts:[...V(E)],debugAgents:V(ee),gitIntegration:{mode:V(te),pushMode:V(O),pushEveryCommits:Math.max(1,Math.min(1e3,V(k)||1)),commitMessage:V(ne).trim()||`docs: update living documentation`}};try{let e=await fetch(`/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!e.ok)throw Error(await e.text());ha(await e.json()),_e(`Settings saved.`,`ok`)}catch(e){_e(`Save failed: `+(e instanceof Error?e.message:String(e)),`error`)}}function _e(e,t){F(ie,{text:e,type:t},!0),ae&&clearTimeout(ae),t===`ok`&&(ae=window.setTimeout(()=>{F(ie,null)},3e3))}async function ve(){let e=window.location.hash.slice(1);e&&(await xr(),requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})}))}Gi(()=>{he(),ve();let e=()=>{ve()};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)});var ye=xs(),be=L(ye);{let e=N(()=>Y(`admin.title`)),t=N(()=>Y(`admin.config.title`));Qo(be,{get title(){return V(e)},get subtitle(){return V(t)}})}var xe=z(be,2),Se=L(xe),Ce=L(Se),we=L(Ce),Te=L(we),Ee=L(Te),De=L(Ee,!0);j(Ee);var Oe=z(Ee,2),ke=L(Oe,!0);j(Oe),j(Te);var Ae=z(Te,2),je=L(Ae),Me=e=>{var t=as(),n=L(t,!0);j(t),B(()=>{gi(t,1,`save-msg save-msg--${V(ie).type??``}`),G(n,V(ie).text)}),W(e,t)};K(je,e=>{V(ie)&&e(Me)});var Ne=z(je,2),Pe=L(Ne,!0);j(Ne),j(Ae),j(we),j(Ce);var Fe=z(Ce,2),Ie=L(Fe);{let e=N(()=>Y(`admin.section.general.title`)),t=N(()=>Y(`admin.section.general.desc`));Ji(Ie,{icon:`🌐`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=os(),r=R(n),c=L(r),f=L(c),p=L(f,!0);j(f);var m=z(f,2),h=L(m,!0);j(m),j(c);var g=z(c,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g),j(r);var x=z(r,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2);Di(w);var T=z(w,2),E=L(T,!0);j(T),j(x);var D=z(x,2),ee=L(D),te=L(ee,!0);j(ee);var O=z(ee,2),k=L(O),ne=L(k,!0);j(k),k.value=k.__value=`system`;var A=z(k),re=L(A,!0);j(A),A.value=A.__value=`light`;var ie=z(A),ae=L(ie,!0);j(ie),ie.value=ie.__value=`dark`,j(O);var oe=z(O,2),se=L(oe,!0);j(oe),j(D);var ce=z(D,2),le=L(ce),ue=L(le,!0);j(le);var de=z(le,2),fe=L(de),pe=L(fe,!0);j(fe),fe.value=fe.__value=`base`;var me=z(fe),he=L(me,!0);j(me),me.value=me.__value=`tau`,j(de);var ge=z(de,2),_e=L(ge,!0);j(ge),j(ce);var ve=z(ce,2),ye=L(ve),be=L(ye,!0);j(ye);var xe=z(ye,2),Se=L(xe),Ce=L(Se,!0);j(Se),Se.value=Se.__value=`en`;var we=z(Se),Te=L(we,!0);j(we),we.value=we.__value=`fr`,j(xe);var Ee=z(xe,2),De=L(Ee,!0);j(Ee),j(ve);var Oe=z(ve,2),ke=L(Oe),Ae=L(ke,!0);j(ke);var je=z(ke,2),Me=L(je),Ne=L(Me,!0);j(Me),Me.value=Me.__value=`recent`;var Pe=z(Me),Fe=L(Pe,!0);j(Pe),Pe.value=Pe.__value=`oldest`;var Ie=z(Pe),Le=L(Ie,!0);j(Ie),Ie.value=Ie.__value=`alphabetical`,j(je);var Re=z(je,2),ze=L(Re,!0);j(Re),j(Oe),B((e,t,n,r,o,s,c,l,u,d,f,m,g,_,y,x,S,T,D,ee,O,k,A)=>{G(p,e),G(h,V(i)||`—`),G(v,t),G(b,V(a)||`—`),G(C,n),J(w,`placeholder`,r),G(E,o),G(te,s),G(ne,c),G(re,l),G(ae,u),G(se,d),G(ue,f),G(pe,m),G(he,g),G(_e,_),G(be,y),G(Ce,x),G(Te,S),G(De,T),G(Ae,D),G(Ne,ee),G(Fe,O),G(Le,k),G(ze,A)},[()=>Y(`admin.server_info.docs_folder`),()=>Y(`admin.server_info.port`),()=>Y(`admin.appearance.site_title_label`),()=>Y(`admin.appearance.site_title_placeholder`),()=>Y(`admin.appearance.site_title_hint`),()=>Y(`admin.appearance.theme_label`),()=>Y(`admin.appearance.theme_system`),()=>Y(`admin.appearance.theme_light`),()=>Y(`admin.appearance.theme_dark`),()=>Y(`admin.appearance.theme_hint`),()=>Y(`admin.appearance.site_theme_label`),()=>Y(`admin.appearance.site_theme_base`),()=>Y(`admin.appearance.site_theme_tau`),()=>Y(`admin.appearance.site_theme_hint`),()=>Y(`admin.appearance.language_label`),()=>Y(`admin.appearance.language_en`),()=>Y(`admin.appearance.language_fr`),()=>Y(`admin.appearance.language_hint`),()=>Y(`admin.appearance.sidebar_sort_label`),()=>Y(`admin.appearance.sidebar_sort_recent`),()=>Y(`admin.appearance.sidebar_sort_oldest`),()=>Y(`admin.appearance.sidebar_sort_alphabetical`),()=>Y(`admin.appearance.sidebar_sort_hint`)]),Ni(w,()=>V(o),e=>F(o,e)),xi(O,()=>V(s),e=>F(s,e)),H(`change`,de,()=>ts(V(l))),xi(de,()=>V(l),e=>F(l,e)),H(`change`,xe,()=>ya(V(d))),xi(xe,()=>V(d),e=>F(d,e)),xi(je,()=>V(u),e=>F(u,e)),W(e,n)},$$slots:{default:!0}})}var Le=z(Ie,2);{let e=N(()=>Y(`admin.navigation.title`)),t=N(()=>Y(`admin.navigation.description`));Ji(Le,{icon:`☰`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=cs(),r=R(n);q(r,17,()=>fa,Xr,(e,t)=>{var n=ss(),r=L(n);Di(r);var i=z(r);j(n),B((e,t)=>{ki(r,e),G(i,` ${t??``}`)},[()=>!V(c).includes(V(t).href),()=>Y(V(t).labelKey)]),H(`change`,r,e=>{F(c,e.currentTarget.checked?V(c).filter(e=>e!==V(t).href):[...V(c),V(t).href],!0)}),W(e,n)});var i=z(r,2),a=L(i,!0);j(i),B(e=>G(a,e),[()=>Y(`admin.navigation.required`)]),W(e,n)},$$slots:{default:!0}})}var Re=z(Le,2);{let e=N(()=>Y(`admin.section.filename.title`)),t=N(()=>Y(`admin.section.filename.desc`));Ji(Re,{icon:`📝`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=us(),r=R(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2);Di(o);var s=z(o,2),c=L(s),l=z(c),u=L(l,!0);j(l),j(s),j(r);var d=z(r,2),p=L(d),m=L(p,!0);j(p);var h=z(p,2),g=L(h,!0);j(h);var _=z(h,2);q(_,21,()=>V(fe),Xr,(e,t)=>{var n=ls(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o);var d=z(o,2),f=L(d),p=L(f,!0);j(f);var m=z(f,2),h=L(m,!0);j(m),j(d);var g=z(d,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g),j(a),j(n),B((e,n,r,a)=>{G(i,V(t).filename),G(c,e),gi(l,1,ui(V(t).date?`pattern-value--date`:`pattern-value--none`)),G(u,n),G(p,r),G(h,V(t).category),G(v,a),G(b,V(t).title)},[()=>Y(`admin.pattern.col_date`),()=>V(t).date||Y(`admin.pattern.col_none`),()=>Y(`admin.pattern.col_category`),()=>Y(`admin.pattern.col_title`)]),W(e,n)}),j(_),j(d),B((e,t,n,r,i)=>{G(a,e),J(o,`placeholder`,t),G(c,`${n??``} `),G(u,(V(f)||`YYYY_MM_DD_HH_mm_[Category]_title`)+`.md`),G(m,r),G(g,i)},[()=>Y(`admin.pattern.label`),()=>Y(`admin.pattern.placeholder`),()=>Y(`admin.pattern.hint`),()=>Y(`admin.pattern.preview_title`),()=>Y(`admin.pattern.preview_desc`)]),Ni(o,()=>V(f),e=>F(f,e)),W(e,n)},$$slots:{default:!0}})}var ze=z(Re,2);{let e=N(()=>Y(`admin.section.source.title`)),t=N(()=>Y(`admin.section.source.desc`));Ji(ze,{icon:`📂`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=ds(),r=R(n),a=L(r),o=L(a,!0);j(a);var s=z(a,2);Di(s);var c=z(s,2),l=L(c,!0);j(c),j(r),Vi(sa(z(r,2),{get docsFolder(){return V(i)},get extraFiles(){return V(C)},onchange:e=>F(C,e,!0)}),e=>F(oe,e,!0),()=>V(oe)),B((e,t)=>{G(o,e),G(l,t)},[()=>Y(`admin.server_info.source_root`),()=>Y(`admin.server_info.source_root_hint`)]),Ni(s,()=>V(p),e=>F(p,e)),W(e,n)},$$slots:{default:!0}})}var Be=z(ze,2);{let e=N(()=>Y(`admin.section.sidebar.title`)),t=N(()=>Y(`admin.section.sidebar.desc`));Ji(Be,{icon:`🗂️`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=fs(),r=R(n),i=L(r),a=L(i);Di(a);var o=z(a,2),s=L(o,!0);j(o),j(i);var c=z(i,2),l=L(c,!0);j(c),j(r);var u=z(r,2),d=L(u),f=L(d);Di(f);var p=z(f,2),g=L(p,!0);j(p),j(d);var _=z(d,2),v=L(_,!0);j(_),j(u),B((e,t,n,r)=>{G(s,e),G(l,t),G(g,n),G(v,r)},[()=>Y(`admin.appearance.exclusive_folder_label`),()=>Y(`admin.appearance.exclusive_folder_hint`),()=>Y(`admin.appearance.exclusive_category_label`),()=>Y(`admin.appearance.exclusive_category_hint`)]),Ii(a,()=>V(m),e=>F(m,e)),Ii(f,()=>V(h),e=>F(h,e)),W(e,n)},$$slots:{default:!0}})}var Ve=z(Be,2);{let e=N(()=>Y(`admin.section.markdown.title`)),t=N(()=>Y(`admin.section.markdown.desc`));Ji(Ve,{icon:`✍️`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=ps(),r=R(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2);Di(o);var s=z(o,2),c=L(s,!0);j(s),j(r);var l=z(r,2),u=L(l),d=L(u);Di(d);var f=z(d,2),p=L(f,!0);j(f),j(u);var m=z(u,2);ai(m,()=>Y(`admin.appearance.soft_breaks_hint`),!0),j(m),j(l);var h=z(l,2),S=L(h),C=L(S);Di(C);var w=z(C,2),T=L(w,!0);j(w),j(S);var E=z(S,2),D=L(E,!0);j(E),j(h);var ee=z(h,2),te=L(ee),O=L(te);Di(O);var k=z(O,2),ne=L(k,!0);j(k),j(te);var A=z(te,2),re=L(A,!0);j(A),j(ee);var ie=z(ee,2),ae=L(ie),oe=L(ae);Di(oe);var se=z(oe,2),ce=L(se,!0);j(se),j(ae);var le=z(ae,2),ue=L(le,!0);j(le),j(ie);var de=z(ie,2),fe=L(de),pe=L(fe);Di(pe);var me=z(pe,2),he=L(me,!0);j(me),j(fe);var ge=z(fe,2),_e=L(ge,!0);j(ge),j(de),B((e,t,n,r,i,o,s,l,u,d,f)=>{G(a,e),G(c,t),G(p,n),G(T,r),G(D,i),G(ne,o),G(re,s),G(ce,l),G(ue,u),G(he,d),G(_e,f)},[()=>Y(`admin.appearance.code_max_height_label`),()=>Y(`admin.appearance.code_max_height_hint`),()=>Y(`admin.appearance.soft_breaks_label`),()=>Y(`admin.appearance.image_rounded_label`),()=>Y(`admin.appearance.image_rounded_hint`),()=>Y(`admin.appearance.image_centered_label`),()=>Y(`admin.appearance.image_centered_hint`),()=>Y(`admin.appearance.image_border_label`),()=>Y(`admin.appearance.image_border_hint`),()=>Y(`admin.appearance.code_light_theme_label`),()=>Y(`admin.appearance.code_light_theme_hint`)]),Ni(o,()=>V(g),e=>F(g,e)),Ii(d,()=>V(_),e=>F(_,e)),Ii(C,()=>V(v),e=>F(v,e)),Ii(O,()=>V(y),e=>F(y,e)),Ii(oe,()=>V(b),e=>F(b,e)),Ii(pe,()=>V(x),e=>F(x,e)),W(e,n)},$$slots:{default:!0}})}var He=z(Ve,2);{let e=N(()=>Y(`admin.section.files.title`)),t=N(()=>Y(`admin.files.description`));Ji(He,{icon:`📎`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=ms(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);yn(a),J(a,`rows`,3);var o=z(a,2),s=L(o,!0);j(o),j(n),B((e,t)=>{G(i,e),G(s,t)},[()=>Y(`admin.files.blocked_label`),()=>Y(`admin.files.hint`)]),Ni(a,()=>V(S),e=>F(S,e)),W(e,n)},$$slots:{default:!0}})}var Ue=z(He,2);{let e=N(()=>Y(`admin.section.diagram.title`)),t=N(()=>Y(`admin.section.diagram.desc`));Ji(Ue,{icon:`🎨`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{da(e,{get nodePalette(){return V(w)},set nodePalette(e){F(w,e,!0)},get edgePalette(){return V(T)},set edgePalette(e){F(T,e,!0)}})},$$slots:{default:!0}})}var We=z(Ue,2);{let e=N(()=>Y(`admin.section.llm.title`)),t=N(()=>Y(`admin.section.llm.desc`));Ji(We,{icon:`🤖`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=_s(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a);Di(o);var s=z(o,2),c=L(s,!0);j(s),j(a);var l=z(a,2),u=L(l,!0);j(l);var d=z(l,2),f=e=>{var t=gs();q(t,20,()=>V(E),e=>e,(e,t)=>{var n=hs(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);j(n),B(e=>{G(i,t),J(a,`aria-label`,e)},[()=>Y(`admin.llm.remove`)]),H(`click`,a,()=>re(t)),W(e,n)}),j(t),W(e,t)};K(d,e=>{V(E).length&&e(f)}),j(n),B((e,t,n)=>{G(i,e),G(c,t),G(u,n)},[()=>Y(`admin.llm.no_v1_label`),()=>Y(`admin.llm.add`),()=>Y(`admin.llm.no_v1_hint`)]),H(`keydown`,o,e=>{e.key===`Enter`&&(e.preventDefault(),A())}),Ni(o,()=>V(D),e=>F(D,e)),H(`click`,s,A),W(e,n)},$$slots:{default:!0}})}var Ge=z(We,2),Ke=L(Ge);{let e=N(()=>Y(`admin.section.git.title`)),t=N(()=>Y(`admin.section.git.desc`));Ji(Ke,{icon:`⑂`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var i=bs(),a=R(i),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);Di(l),l.value=l.__value=`unconfigured`;var u=z(l,2),d=L(u),f=L(d,!0);j(d);var p=z(d,2),m=L(p,!0);j(p),j(u),j(c);var h=z(c,2),g=L(h);Di(g),g.value=g.__value=`disabled`;var _=z(g,2),v=L(_),y=L(v,!0);j(v);var b=z(v,2),x=L(b,!0);j(b),j(_),j(h);var S=z(h,2),C=L(S);Di(C),C.value=C.__value=`enabled`;var w=z(C,2),T=L(w),E=L(T,!0);j(T);var D=z(T,2),ee=L(D,!0);j(D),j(w),j(S),j(a);var A=z(a,2),re=e=>{var t=ys(),n=R(t),i=L(n),a=L(i,!0);j(i);var o=z(i,2);Di(o);var s=z(o,2),c=L(s,!0);j(s),j(n);var l=z(n,2),u=L(l),d=L(u,!0);j(u);var f=z(u,2),p=L(f);Di(p),p.value=p.__value=`never`;var m=z(p,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=L(_,!0);j(_),j(m),j(f);var y=z(f,2),b=L(y);Di(b),b.value=b.__value=`everyNCommits`;var x=z(b,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2),T=L(w,!0);j(w),j(x),j(y),j(l);var E=z(l,2),D=e=>{var t=vs(),n=L(t),r=L(n,!0);j(n);var i=z(n,2);Di(i);var a=z(i,2),o=L(a,!0);j(a),j(t),B((e,t)=>{G(r,e),G(o,t)},[()=>Y(`admin.git.push_every_commits_label`),()=>Y(`admin.git.push_every_commits_hint`)]),Ni(i,()=>V(k),e=>F(k,e)),W(e,t)};K(E,e=>{V(O)===`everyNCommits`&&e(D)}),B((e,t,n,r,i,o,s)=>{G(a,e),G(c,t),G(d,n),G(g,r),G(v,i),G(C,o),G(T,s)},[()=>Y(`admin.git.commit_message_label`),()=>Y(`admin.git.commit_message_hint`),()=>Y(`admin.git.push_label`),()=>Y(`admin.git.push_never`),()=>Y(`admin.git.push_never_hint`),()=>Y(`admin.git.push_every`),()=>Y(`admin.git.push_every_hint`)]),Ni(o,()=>V(ne),e=>F(ne,e)),Fi(r,[],p,()=>V(O),e=>F(O,e)),Fi(r,[],b,()=>V(O),e=>F(O,e)),W(e,t)};K(A,e=>{V(te)===`enabled`&&e(re)}),B((e,t,n,r,i,a,o)=>{G(s,e),G(f,t),G(m,n),G(y,r),G(x,i),G(E,a),G(ee,o)},[()=>Y(`admin.git.mode_label`),()=>Y(`admin.git.mode_unconfigured`),()=>Y(`admin.git.mode_unconfigured_hint`),()=>Y(`admin.git.mode_disabled`),()=>Y(`admin.git.mode_disabled_hint`),()=>Y(`admin.git.mode_enabled`),()=>Y(`admin.git.mode_enabled_hint`)]),Fi(n,[],l,()=>V(te),e=>F(te,e)),Fi(n,[],g,()=>V(te),e=>F(te,e)),Fi(n,[],C,()=>V(te),e=>F(te,e)),W(e,i)},$$slots:{default:!0}})}j(Ge);var Ye=z(Ge,2);{let e=N(()=>Y(`admin.section.developer.title`)),t=N(()=>Y(`admin.section.developer.desc`));Ji(Ye,{icon:`🛠️`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=fs(),r=R(n),i=L(r),a=z(L(i),2),o=L(a,!0);j(a),j(i);var s=z(i,2),c=L(s,!0);j(s),j(r);var l=z(r,2),u=L(l),d=L(u);Di(d);var f=z(d,2),p=L(f,!0);j(f),j(u);var m=z(u,2),h=L(m,!0);j(m),j(l),B((e,t,n,r)=>{G(o,e),G(c,t),G(p,n),G(h,r)},[()=>Y(`admin.appearance.debug_label`),()=>Y(`admin.appearance.debug_hint`),()=>Y(`admin.developer.debug_agents_label`),()=>Y(`admin.developer.debug_agents_hint`)]),Ii(d,()=>V(ee),e=>F(ee,e)),W(e,n)},$$slots:{default:!0}})}j(Fe),j(Se);var Xe=z(Se,2),Ze=L(Xe),Qe=L(Ze),$e=z(L(Qe),2),et=L($e),tt=L(et,!0);j(et);var nt=z(et,2),rt=L(nt,!0);j(nt),j($e),j(Qe);var it=z(Qe,2),at=L(it);ai(at,()=>Y(`admin.license.body`),!0),j(at);var ot=z(at,2),st=L(ot),ct=z(L(st));j(st);var lt=z(st,2),ut=z(L(lt));j(lt),j(ot),j(it),j(Ze),j(Xe),j(xe),j(ye),B((e,t,n,r,i,a,o)=>{G(De,e),G(ke,t),G(Pe,n),G(tt,r),G(rt,i),G(ct,` ${a??``}`),G(ut,` ${o??``}`)},[()=>Y(`admin.config.title`),()=>Y(`admin.config.description`),()=>Y(`admin.config.save_btn`),()=>Y(`admin.license.title`),()=>Y(`admin.license.subtitle`),()=>Y(`admin.license.linkedin_btn`),()=>Y(`admin.license.npm_btn`)]),Nr(`submit`,Se,ge),W(e,ye),Je()}Pr([`change`,`keydown`,`click`]);var Cs=U(`<button class="tool-button" type="button"></button>`),ws=U(`<input class="cluster-tag-input"/>`),Ts=U(`<button class="cluster-tag-label" type="button"> </button>`),Es=U(`<button class="cluster-tag-add" type="button">+</button> <button class="cluster-tag-remove" type="button">−</button>`,1),Ds=U(`<button class="cluster-tag-del" type="button">×</button>`),Os=U(`<div class="cluster-tag"><!> <!> <!></div>`),ks=U(`<div class="empty-state"><p>No sub-folders found.</p></div>`),As=U(`<nav class="rail"><button class="tool-button" type="button">⌖</button> <button type="button">⠿</button> <!> <button type="button">☰</button></nav> <canvas id="blueprintCanvas"></canvas> <div class="cluster-overlays"></div> <!>`,1);function js(e,t){qe(t,!0);let n=Wi(t,`activeExplorerPath`,3,null),r=`#64748b`,i=`#3b82f6`,a,o,s=P(!0),c=P(!1),l=0,u=0,d=1,f=[],p=-1,m=-1,h=new Set,g=new Map,_={x:0,y:0},v=!1,y={x:0,y:0},b={x:0,y:0},x=P(``),S=!1,C=!1,w=!1,T=0,E=0,D=0,ee=0,te=null,O={},k=null,ne=P(I([])),A=null,re=P(0),ie=P(I([])),ae=P(null),oe=0,se=0,ce=0,le=0,ue=0,de=0,fe=0,pe=!1;function me(e){let t=0,n=0;return e.map(e=>{let r=O[e.path],i=r?r.x:t*240,a=r?r.y:n*150;return r||(t++,t>=4&&(t=0,n++)),{folder:e,x:i,y:a,w:200,h:110}})}function he(e){if(!e.length)return{minX:0,minY:0,maxX:0,maxY:0};let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x+a.w),i=Math.max(i,a.y+a.h);return{minX:t,minY:n,maxX:r,maxY:i}}function ge(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(0,t):``}function _e(e){let t=a.clientWidth,r=a.clientHeight;xe((n()===null?t:t/2)/2-(e.x+e.w/2)*d,r/2-(e.y+e.h/2)*d,d)}function ve(e){if(!f.length)return;let{minX:t,minY:n,maxX:r,maxY:i}=he(f),o=a.clientWidth,s=a.clientHeight,c=Math.min((o-160)/Math.max(1,r-t),(s-160)/Math.max(1,i-n),1.4),p=(t+r)/2,m=(n+i)/2,h=o/2-p*c,g=s/2-m*c;e?xe(h,g,c):(l=h,u=g,d=c)}function ye(e){let t=a.clientWidth,n=a.clientHeight,r=Math.min((t-160)/e.w,(n-160)/e.h,1.6),i=e.x+e.w/2,o=e.y+e.h/2;xe(t/2-i*r,n/2-o*r,r)}function be(e){return e<.5?2*e*e:-1+(4-2*e)*e}function xe(e,t,n){oe=l,se=u,ce=d,le=e,ue=t,de=n,fe=performance.now(),pe=!0,Ce()}function Se(e){let t=Math.min(1,(e-fe)/420),n=be(t);l=oe+(le-oe)*n,u=se+(ue-se)*n,d=ce+(de-ce)*n,t>=1&&(pe=!1)}function Ce(){te===null&&(te=requestAnimationFrame(we))}function we(e){te=null,pe&&(Se(e),Ce());let t=window.devicePixelRatio||1,n=a.clientWidth,r=a.clientHeight;(a.width!==n*t||a.height!==r*t)&&(a.width=n*t,a.height=r*t),o.save(),o.clearRect(0,0,a.width,a.height),o.scale(t,t),Ee(n,r),o.translate(l,u),o.scale(d,d),Te();for(let e=0;e<f.length;e++)Oe(f[e],e===p,e===m,h.has(e));if(v){let e=Math.min(y.x,b.x),t=Math.min(y.y,b.y),n=Math.abs(b.x-y.x),r=Math.abs(b.y-y.y);o.strokeStyle=`#3b82f6`,o.lineWidth=1.5/d,o.fillStyle=`rgba(59,130,246,0.08)`,o.beginPath(),o.roundRect(e,t,n,r,6/d),o.fill(),o.stroke()}o.restore()}function Te(){let e=[];for(let t of V(ne)){let n=f.filter(e=>t.members.includes(e.folder.path));if(n.length===0)continue;let{minX:r,minY:i,maxX:a,maxY:s}=he(n),c=r-24,p=i-24,m=a-r+48,h=s-i+48;o.save(),o.strokeStyle=`#a78bfa`,o.globalAlpha=.55,o.lineWidth=1.5/d,o.setLineDash([8/d,6/d]),De(c,p,m,h,18),o.stroke(),o.restore(),e.push({id:t.id,label:t.label,x:l+c*d+10*d,y:u+p*d})}F(ie,e,!0)}function Ee(e,t){let n=40*d,r=(l%n+n)%n,i=(u%n+n)%n;o.strokeStyle=`rgba(255,255,255,0.04)`,o.lineWidth=1,o.beginPath();for(let i=r;i<e;i+=n)o.moveTo(i,0),o.lineTo(i,t);for(let r=i;r<t;r+=n)o.moveTo(0,r),o.lineTo(e,r);o.stroke()}function De(e,t,n,r,i){o.beginPath(),o.roundRect(e,t,n,r,i)}function Oe(e,t,r=!1,i=!1){let{x:a,y:s,w:c,h:l,folder:u}=e,f=u.hasChildren?`#1e293b`:`#172033`,p=n()===u.path,m=r?`#f59e0b`:i?`#fbbf24`:p?`#60a5fa`:t?`#3b82f6`:`rgba(255,255,255,0.12)`,h=t||r||i||p?2:1;o.save(),o.shadowColor=r?`rgba(245,158,11,0.4)`:`rgba(0,0,0,0.4)`,o.shadowBlur=r?36:t?24:12,De(a,s,c,l,18),o.fillStyle=f,o.fill(),o.restore(),De(a,s,c,l,18),o.strokeStyle=m,o.lineWidth=h/d,o.stroke(),o.fillStyle=p?`#60a5fa`:t?`#94a3b8`:`rgba(255,255,255,0.3)`,o.font=`${20*.7}px sans-serif`,o.textBaseline=`top`,o.textAlign=`left`,o.fillText(`☰`,a+10,s+10);let g=e.folder.hasDoc===!0,_=a+10+20+4;o.fillStyle=g?t?`#34d399`:`#10b981`:t?`#a78bfa`:`rgba(167,139,250,0.4)`,o.font=`bold ${20*.65}px Inter, ui-sans-serif, sans-serif`,o.textBaseline=`top`,o.textAlign=`left`,o.fillText(`D`,_,s+11),g||(o.font=`bold ${20*.5}px Inter, ui-sans-serif, sans-serif`,o.fillText(`+`,_+20*.6,s+7));let v=a+18;ke(v,s+l/2-18/2-4,18,t);let y=Math.max(10,Math.min(14,120/u.name.length));o.fillStyle=t?`#fff`:`#f1f5f9`,o.font=`700 ${y}px Inter, ui-sans-serif, sans-serif`,o.textBaseline=`middle`,o.textAlign=`left`;let b=c-36-18-8,x=je(u.name,b,y);o.fillText(x,v+18+8,s+l/2),u.hasChildren&&Ae(a+c-22,s+l/2,t)}function ke(e,t,n,a){o.fillStyle=a?i:r,o.beginPath(),o.roundRect(e,t+n*.3,n,n*.7,2),o.fill(),o.beginPath(),o.roundRect(e,t+n*.2,n*.45,n*.18,2),o.fill()}function Ae(e,t,n){o.fillStyle=n?i:r,o.beginPath(),o.moveTo(e-6,t-6),o.lineTo(e+6,t),o.lineTo(e-6,t+6),o.closePath(),o.fill()}function je(e,t,n){if(o.font=`700 ${n}px Inter, ui-sans-serif, sans-serif`,o.measureText(e).width<=t)return e;let r=e;for(;r.length>1&&o.measureText(r+`…`).width>t;)r=r.slice(0,-1);return r+`…`}async function Me(){try{O=await fetch(`/api/blueprint/positions`).then(e=>e.json())}catch{O={}}}function Ne(){k!==null&&clearTimeout(k),k=window.setTimeout(()=>{k=null,fetch(`/api/blueprint/positions`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(O)})},600)}async function Pe(){try{let e=await fetch(`/api/blueprint/clusters`).then(e=>e.json());F(ne,Array.isArray(e)?e:[],!0)}catch{F(ne,[],!0)}}function Fe(){A!==null&&clearTimeout(A),A=window.setTimeout(()=>{A=null,fetch(`/api/blueprint/clusters`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(V(ne))})},600)}function Ie(){F(re,h.size,!0)}function Le(){let e=[...h].map(e=>f[e]?.folder.path).filter(Boolean);if(e.length===0)return;let t=`cl_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,7)}`;F(ne,[...V(ne),{id:t,label:Y(`blueprint.cluster.default_label`),members:e}],!0),Fe(),h.clear(),Ie(),Ce()}function Re(e){let t=[...h].map(e=>f[e]?.folder.path).filter(Boolean);t.length!==0&&(F(ne,V(ne).map(n=>n.id===e?{...n,members:[...new Set([...n.members,...t])]}:n),!0),Fe(),h.clear(),Ie(),Ce())}function ze(e){let t=new Set([...h].map(e=>f[e]?.folder.path).filter(Boolean));t.size!==0&&(F(ne,V(ne).map(n=>n.id===e?{...n,members:n.members.filter(e=>!t.has(e))}:n).filter(e=>e.members.length>0),!0),!V(ne).some(t=>t.id===e)&&V(ae)===e&&F(ae,null),Fe(),h.clear(),Ie(),Ce())}function Be(e,t){F(ne,V(ne).map(n=>n.id===e?{...n,label:t}:n),!0),Fe(),Ce()}function Ve(e){F(ne,V(ne).filter(t=>t.id!==e),!0),V(ae)===e&&F(ae,null),Fe(),Ce()}async function He(e,n,r){try{let i=`/api/blueprint${e?`?path=${encodeURIComponent(e)}`:``}`,a=await fetch(i).then(e=>e.json()),o;if(!e)o=[{name:a.sourceRoot,path:``}];else{let t=e.split(`/`),n=``;o=[{name:a.sourceRoot,path:``}];for(let e of t)n=n?`${n}/${e}`:e,o.push({name:e,path:n})}t.onbreadcrumbchange(o),F(x,e,!0),f=me(a.folders),F(s,f.length>0),r&&n?(ye(r),setTimeout(()=>ve(!0),420*.6)):ve(n),Ce()}catch(e){console.error(`Blueprint load error`,e)}}function Ue(e,t){return{x:(e-l)/d,y:(t-u)/d}}function We(e,t){for(let n=0;n<f.length;n++){let r=f[n];if(e>=r.x&&e<=r.x+r.w&&t>=r.y&&t<=r.y+r.h)return n}return-1}function Ge(e,t,n){return t>=e.x+6&&t<=e.x+6+20&&n>=e.y+6&&n<=e.y+6+20}function Ke(e,t,n){let r=e.x+10+20+4;return t>=r&&t<=r+20&&n>=e.y+6&&n<=e.y+6+20}async function Ye(e){let t=ge(e);V(x)!==t&&await He(t,!0);let n=f.find(t=>t.folder.path===e);n&&(_e(n),Ce())}function Xe(e){let t=a.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;if(S&&m>=0&&V(c)){let{x:e,y:t}=Ue(n,r),i=e-_.x,a=t-_.y;Math.hypot(i,a)>6/d&&(w=!0);let o=h.has(m)&&h.size>1?[...h]:[m];for(let e of o){let t=g.get(e);t&&(f[e].x=t.x+i,f[e].y=t.y+a)}Ce();return}if(v){b=Ue(n,r),Ce();return}if(C){let e=n-T,t=r-E;Math.hypot(e,t)>6&&(w=!0),l=D+e,u=ee+t,Ce();return}let{x:i,y:o}=Ue(n,r),s=We(i,o);s!==p&&(p=s,a.style.cursor=s>=0&&V(c)?`grab`:s>=0?`pointer`:`default`,Ce())}function Ze(e){let t=a.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,{x:i,y:o}=Ue(n,r),s=We(i,o);T=n,E=r,w=!1,a.setPointerCapture(e.pointerId),s>=0?(m=s,S=!0,_={x:i,y:o},g=new Map(f.map((e,t)=>[t,{x:e.x,y:e.y}])),i-f[s].x,o-f[s].y,V(c)&&(a.style.cursor=`grabbing`)):V(c)&&e.shiftKey?(v=!0,y={x:i,y:o},b={x:i,y:o},a.style.cursor=`crosshair`):(C=!0,D=l,ee=u)}function Qe(e){let r=a.getBoundingClientRect(),i=e.clientX-r.left,o=e.clientY-r.top;if(a.releasePointerCapture(e.pointerId),S){if(S=!1,a.style.cursor=V(c)?`grab`:`pointer`,w){let e=h.has(m)&&h.size>1?[...h]:[m];for(let t of e){let e=f[t];O[e.folder.path]={...O[e.folder.path]??{},x:e.x,y:e.y}}Ne()}else{let r=f[m],{x:a,y:s}=Ue(i,o);V(c)&&e.shiftKey?(h.has(m)?h.delete(m):h.add(m),Ie(),Ce()):V(c)?(h.clear(),h.add(m),Ie(),Ce()):Ke(r,a,s)?t.onopenAdr(r):Ge(r,a,s)?n()===r.folder.path?t.onclosefilerexplorer():t.onopenexplorer(r):r.folder.hasChildren&&(t.onclosefilerexplorer(),He(r.folder.path,!0,r))}m=-1;return}if(v){v=!1,a.style.cursor=`crosshair`;let e=Math.min(y.x,b.x),t=Math.min(y.y,b.y),n=Math.max(y.x,b.x),r=Math.max(y.y,b.y);if(n-e>4||r-t>4)for(let i=0;i<f.length;i++){let a=f[i];a.x<n&&a.x+a.w>e&&a.y<r&&a.y+a.h>t&&h.add(i)}Ie(),Ce();return}if(C){C=!1;let e=i-T,t=o-E;Math.hypot(e,t)<=6&&V(c)&&(h.clear(),Ie(),Ce())}}function $e(e){e.preventDefault();let t=a.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i=1-e.deltaY*.0018,o=Math.max(.15,Math.min(4,d*i));l=n-(n-l)*(o/d),u=r-(r-u)*(o/d),d=o,Ce()}function et(){ve(!0)}function tt(){let e=V(x)?V(x).split(`/`).pop():``;t.onopenexplorer({folder:{name:e,path:V(x),hasChildren:!0},x:0,y:0,w:0,h:0})}function nt(){F(c,!V(c)),V(c)||(h.clear(),Ie(),Ce()),a.style.cursor=V(c)&&p>=0?`grab`:`default`}Gi(()=>(o=a.getContext(`2d`),window.addEventListener(`resize`,Ce),Promise.all([Me(),Pe()]).then(async()=>{await He(``,!1)}),()=>{window.removeEventListener(`resize`,Ce)}));var rt={centerOnBox:_e,loadPath:He,navigateToFolder:Ye},it=As(),at=R(it),ot=L(at),st=z(ot,2);let ct;var lt=z(st,2),ut=e=>{var t=Cs();t.textContent=`⬚︎`,B(e=>J(t,`title`,e),[()=>Y(`blueprint.canvas.create_cluster`)]),H(`click`,t,Le),W(e,t)};K(lt,e=>{V(c)&&e(ut)});var dt=z(lt,2);let ft;j(at);var M=z(at,2);Vi(M,e=>a=e,()=>a);var pt=z(M,2);q(pt,21,()=>V(ie),e=>e.id,(e,t)=>{var n=Os(),r=L(n),i=e=>{var n=ws();Di(n),vn(n,!0),B(()=>Oi(n,V(t).label)),H(`keydown`,n,e=>{e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&F(ae,null)}),Nr(`blur`,n,e=>{Be(V(t).id,e.currentTarget.value.trim()||V(t).label),F(ae,null)}),W(e,n)},a=e=>{var n=Ts(),r=L(n,!0);j(n),B((e,t)=>{J(n,`title`,e),G(r,t)},[()=>Y(`blueprint.cluster.rename`),()=>V(t).label||Y(`blueprint.cluster.default_label`)]),H(`click`,n,()=>F(ae,V(t).id,!0)),W(e,n)};K(r,e=>{V(ae)===V(t).id?e(i):e(a,-1)});var o=z(r,2),s=e=>{var n=Es(),r=R(n),i=z(r,2);B((e,t)=>{J(r,`title`,e),J(i,`title`,t)},[()=>Y(`blueprint.cluster.add_selection`),()=>Y(`blueprint.cluster.remove_selection`)]),H(`click`,r,()=>Re(V(t).id)),H(`click`,i,()=>ze(V(t).id)),W(e,n)};K(o,e=>{V(c)&&V(re)>0&&e(s)});var l=z(o,2),u=e=>{var n=Ds();B(e=>J(n,`title`,e),[()=>Y(`blueprint.cluster.delete`)]),H(`click`,n,()=>Ve(V(t).id)),W(e,n)};K(l,e=>{V(c)&&e(u)}),j(n),B(()=>vi(n,`left:${V(t).x??``}px; top:${V(t).y??``}px;`)),W(e,n)}),j(pt);var mt=z(pt,2),ht=e=>{W(e,ks())};return K(mt,e=>{V(s)||e(ht)}),B((e,t,r)=>{J(ot,`title`,e),ct=gi(st,1,`tool-button`,null,ct,{active:V(c)}),J(st,`title`,t),ft=gi(dt,1,`tool-button`,null,ft,{active:n()===V(x)}),J(dt,`title`,r)},[()=>Y(`blueprint.canvas.fit_view`),()=>Y(`blueprint.canvas.drag_mode`),()=>Y(`blueprint.canvas.browse_current`)]),H(`click`,ot,et),H(`click`,st,nt),H(`click`,dt,tt),H(`pointermove`,M,Xe),H(`pointerdown`,M,Ze),H(`pointerup`,M,Qe),Nr(`wheel`,M,$e),W(e,it),Je(rt)}Pr([`click`,`pointermove`,`pointerdown`,`pointerup`,`keydown`]);var Ms=U(`<button class="explorer-breadcrumb-item" type="button">~</button>`),Ns=U(`<span class="explorer-breadcrumb-item current">~</span>`),Ps=U(`<span class="explorer-breadcrumb-item current"> </span>`),Fs=U(`<button class="explorer-breadcrumb-item" type="button"> </button>`),Is=U(`<span class="explorer-breadcrumb-sep">/</span> <!>`,1),Ls=U(`<div class="explorer-section-label"> </div>`),Rs=U(`<button class="explorer-item is-folder" type="button"><span class="explorer-item-icon">📁</span> <span class="explorer-item-name"> </span></button>`),zs=U(`<div class="explorer-section-label with-action"><span> </span> <button type="button" data-testid="copy-blueprint-folders"><i aria-hidden="true"></i></button></div> <!>`,1),Bs=U(`<button class="explorer-item is-file" type="button"><span class="explorer-item-icon">📄</span> <span class="explorer-item-name"> </span></button>`),Vs=U(`<div class="explorer-section-label with-action"><span> </span> <button type="button" data-testid="copy-blueprint-files"><i aria-hidden="true"></i></button></div> <!>`,1),Hs=U(`<!> <!>`,1),Us=U(`<p class="file-preview-placeholder"> </p>`),Ws=U(`<p class="file-preview-name"> </p> <p class="file-preview-placeholder"> </p>`,1),Gs=U(`<p class="file-preview-name"> </p> <span class="file-preview-binary"> </span>`,1),Ks=U(`<p class="file-preview-name"> </p> <img/>`,1),qs=U(`<p class="file-preview-name"> </p> <video controls=""></video>`,3),Js=U(`<span class="file-preview-truncated"> </span>`),Ys=U(`<p class="file-preview-name"> </p> <!> <pre><code> </code></pre>`,1),Xs=U(`<aside class="file-explorer"><header class="explorer-header"><div class="explorer-breadcrumb"><!> <!></div> <button class="explorer-close" type="button">×</button></header> <div class="explorer-top"><div class="explorer-list"><!></div></div> <div class="explorer-divider"></div> <div class="explorer-bottom"><div class="file-preview"><!></div></div></aside>`);function Zs(e,t){qe(t,!0);let n=P(``),r=P(I([])),i=P(I([])),a=P(!1),o=P(!1),s=P(null),c=P(I({status:`idle`}));function l(e){return e?e.split(`/`).map((e,t,n)=>({name:e,path:n.slice(0,t+1).join(`/`),isLast:t===n.length-1})):[]}async function u(e){F(n,e,!0),F(c,{status:`idle`},!0),await d(e)}async function d(e){F(n,e,!0),F(a,!0),F(o,!1);try{let t=await fetch(`/api/blueprint/files?path=${encodeURIComponent(e)}`).then(e=>e.json());F(r,t.folders,!0),F(i,t.files,!0)}catch{F(o,!0),F(r,[],!0),F(i,[],!0)}finally{F(a,!1)}}async function f(e){t.onnavigate(e),await d(e)}async function p(e,t){F(c,{status:`loading`,name:t},!0);try{let n=await fetch(`/api/blueprint/file-content?path=${encodeURIComponent(e)}`).then(e=>e.json());n.type===`image`?F(c,{status:`image`,name:t,url:n.url},!0):n.type===`video`?F(c,{status:`video`,name:t,url:n.url},!0):n.type===`binary`?F(c,{status:`binary`,name:t},!0):n.type===`text`&&n.content!==void 0&&(F(c,{status:`text`,name:t,content:n.content,language:n.language,truncated:n.truncated},!0),setTimeout(()=>{let e=document.querySelector(`.file-preview code`);e&&window.hljs&&(window.hljs.highlightElement(e),window.hljs.lineNumbersBlock&&window.hljs.lineNumbersBlock(e))},0))}catch{F(c,{status:`error`,name:t},!0)}}function m(e){return V(n)?`${V(n)}/${e}`:e}async function h(e,t){if(t.length)try{await navigator.clipboard.writeText(t.join(`
|
|
5
|
-
`)),F(s,e,!0),setTimeout(()=>{V(s)===e&&F(s,null)},1800)}catch{}}var g={open:u},_=
|
|
1
|
+
import e from"https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),e.initialize({startOnLoad:!1,theme:`default`}),window.mermaid=e;var t=Array.isArray,n=Array.prototype.indexOf,r=Array.prototype.includes,i=Array.from,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyDescriptors,c=Object.prototype,l=Array.prototype,u=Object.getPrototypeOf,d=Object.isExtensible,f=()=>{};function p(e){return e()}function m(e){for(var t=0;t<e.length;t++)e[t]()}function h(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var g=1024,_=2048,v=4096,y=8192,b=16384,x=32768,S=1<<25,C=65536,w=1<<19,T=1<<20,E=1<<25,D=65536,ee=1<<21,te=1<<22,O=1<<23,k=Symbol(`$state`),ne=Symbol(`legacy props`),A=Symbol(``),re=Symbol(`attributes`),ie=Symbol(`class`),ae=Symbol(`style`),oe=Symbol(`text`),se=Symbol(`form reset`),ce=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},le=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);function ue(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function de(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function fe(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function pe(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function me(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function he(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function ge(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function _e(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function ve(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function ye(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function be(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function xe(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Se={},Ce=Symbol(`uninitialized`),we=`http://www.w3.org/1999/xhtml`,Te=`http://www.w3.org/2000/svg`,Ee=`http://www.w3.org/1998/Math/MathML`;function De(){console.warn(`https://svelte.dev/e/derived_inert`)}function Oe(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ke(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function Ae(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var je=!1;function Me(e){je=e}var Ne;function Pe(e){if(e===null)throw Oe(),Se;return Ne=e}function Fe(){return Pe(pn(Ne))}function j(e){if(je){if(pn(Ne)!==null)throw Oe(),Se;Ne=e}}function Ie(e=1){if(je){for(var t=e,n=Ne;t--;)n=pn(n);Ne=n}}function Le(e=!0){for(var t=0,n=Ne;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=pn(n);e&&n.remove(),n=i}}function Re(e){if(!e||e.nodeType!==8)throw Oe(),Se;return e.data}function ze(e){return e===this.v}function Be(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Ve(e){return!Be(e,this.v)}var He=!1,Ue=!1;function We(){Ue=!0}var Ge=null;function Ke(e){Ge=e}function qe(e,t=!1,n){Ge={p:Ge,i:!1,c:null,e:null,s:e,x:null,r:nr,l:Ue&&!t?{s:null,u:null,$:[]}:null}}function Je(e){var t=Ge,n=t.e;if(n!==null){t.e=null;for(var r of n)An(r)}return e!==void 0&&(t.x=e),t.i=!0,Ge=t.p,e??{}}function Ye(){return!Ue||Ge!==null&&Ge.l===null}var Xe=[];function Ze(){var e=Xe;Xe=[],m(e)}function Qe(e){if(Xe.length===0&&!Mt){var t=Xe;queueMicrotask(()=>{t===Xe&&Ze()})}Xe.push(e)}function $e(){for(;Xe.length>0;)Ze()}function et(e){var t=nr;if(t===null)return $n.f|=O,e;if(!(t.f&32768)&&!(t.f&4))throw e;tt(e,t)}function tt(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}var nt=~(_|v|g);function rt(e,t){e.f=e.f&nt|t}function it(e){e.f&512||e.deps===null?rt(e,g):rt(e,v)}function at(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=D,at(t.deps))}function ot(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),at(e.deps),rt(e,g)}var st=!1,ct=!1;function lt(e){var t=ct;try{return ct=!1,[e(),ct]}finally{ct=t}}function ut(e){let t=0,n=Zt(0),r;return()=>{Dn()&&(V(n),Fn(()=>(t===0&&(r=wr(()=>e(()=>tn(n)))),t+=1,()=>{Qe(()=>{--t,t===0&&(r?.(),r=void 0,tn(n))})})))}}var dt=C|w;function ft(e,t,n,r){new M(e,t,n,r)}var M=class{parent;is_pending=!1;transform_error;#e;#t=je?Ne:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=ut(()=>(this.#m=Zt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=nr;t.b=this,t.f|=128,n(e)},this.parent=nr.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=In(()=>{if(je){let e=this.#t;Fe();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#v():this.#g()}else this.#y()},dt),je&&(this.#e=Ne)}#g(){try{this.#a=Ln(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed;t&&(this.#s=Ln(()=>{t(this.#e,()=>e,()=>()=>{})}))}#v(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Ln(()=>e(this.#e)),Qe(()=>{var e=this.#c=document.createDocumentFragment(),t=dn();e.append(t),this.#a=this.#x(()=>Ln(()=>this.#r(t))),this.#u===0&&(this.#e.before(e),this.#c=null,Wn(this.#o,()=>{this.#o=null}),this.#b(Ot))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Ln(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Jn(this.#a,e);let t=this.#n.pending;this.#o=Ln(()=>t(this.#e))}else this.#b(Ot)}catch(e){this.error(e)}}#b(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){ot(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#x(e){var t=nr,n=$n,r=Ge;rr(this.#i),tr(this.#i),Ke(this.#i.ctx);try{return Rt.ensure(),e()}catch(e){return et(e),null}finally{rr(t),tr(n),Ke(r)}}#S(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#S(e,t);return}this.#u+=e,this.#u===0&&(this.#b(t),this.#o&&Wn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#S(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Qe(()=>{this.#d=!1,this.#m&&$t(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),V(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;Ot?.is_fork?(this.#a&&Ot.skip_effect(this.#a),this.#o&&Ot.skip_effect(this.#o),this.#s&&Ot.skip_effect(this.#s),Ot.oncommit(()=>{this.#C(e)})):this.#C(e)}#C(e){this.#a&&=(Vn(this.#a),null),this.#o&&=(Vn(this.#o),null),this.#s&&=(Vn(this.#s),null),je&&(Pe(this.#t),Ie(),Pe(Le()));var t=this.#n.onerror;let n=this.#n.failed;var r=!1,i=!1;let a=()=>{if(r){Ae();return}r=!0,i&&xe(),this.#s!==null&&Wn(this.#s,()=>{this.#s=null}),this.#x(()=>{this.#y()})},o=e=>{try{i=!0,t?.(e,a),i=!1}catch(e){tt(e,this.#i&&this.#i.parent)}n&&(this.#s=this.#x(()=>{try{return Ln(()=>{var t=nr;t.b=this,t.f|=128,n(this.#e,()=>e,()=>a)})}catch(e){return tt(e,this.#i.parent),null}}))};Qe(()=>{var t;try{t=this.transform_error(e)}catch(e){tt(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(o,e=>tt(e,this.#i&&this.#i.parent)):o(t)})}};function pt(e,t,n,r){let i=Ye()?_t:bt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=nr,c=mt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){tt(e,s)}ht()}}var d=gt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>yt(e))).then(u).catch(e=>tt(e,s)).finally(d)}l?l.then(()=>{c(),f(),ht()}):f()}function mt(){var e=nr,t=$n,n=Ge,r=Ot;return function(i=!0){rr(e),tr(t),Ke(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function ht(e=!0){rr(null),tr(null),Ke(null),e&&Ot?.deactivate()}function gt(){var e=nr,t=e.b,n=Ot,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function _t(e){var t=2|_;return nr!==null&&(nr.f|=w),{ctx:Ge,deps:null,effects:null,equals:ze,f:t,fn:e,reactions:null,rv:0,v:Ce,wv:0,parent:nr,ac:null}}var vt=Symbol(`obsolete`);function yt(e,t,n){let r=nr;r===null&&de();var i=void 0,a=Zt(Ce),o=!$n,s=new Set;return Pn(()=>{var t=nr,n=h();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==ce&&n.reject(e)}).finally(ht)}catch(e){n.reject(e),ht()}var c=Ot;if(o){if(t.f&32768)var l=gt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(vt);else for(let e of s.values())e.reject(vt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==vt&&(c.activate(),t?(a.f|=O,$t(a,t)):(a.f&8388608&&(a.f^=O),$t(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),On(()=>{for(let e of s)e.reject(vt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function N(e){let t=_t(e);return He||ar(t),t}function bt(e){let t=_t(e);return t.equals=Ve,t}function xt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Vn(t[n])}}function St(e){var t,n=nr,r=e.parent;if(!Zn&&r!==null&&e.v!==Ce&&r.f&24576)return De(),e.v;rr(r);try{e.f&=~D,xt(e),t=_r(e)}finally{rr(n)}return t}function Ct(e){var t=St(e);if(!e.equals(t)&&(e.wv=mr(),(!Ot?.is_fork||e.deps===null)&&(Ot===null?e.v=t:(Ot.capture(e,t,!0),kt?.capture(e,t,!0)),e.deps===null))){rt(e,g);return}Zn||(At===null?it(e):(Dn()||Ot?.is_fork)&&At.set(e,t))}function wt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ce),t.fn!==null&&(t.teardown=f),t.ac=null,yr(t,0),zn(t))}function Tt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&br(t)}var Et=null,Dt=null,Ot=null,kt=null,At=null,jt=null,Mt=!1,Nt=!1,Pt=null,Ft=null,It=0,Lt=1,Rt=class e{id=Lt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){Dt===null?Et=Dt=this:(Dt.#n=this,this.#t=Dt),Dt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)rt(r,_),t(r);for(r of n.m)rt(r,v),t(r)}this.#p.add(e)}#g(){this.#e=!0,It++>1e3&&(this.#S(),Bt());for(let e of this.#u)this.#d.delete(e),rt(e,_),this.schedule(e);for(let e of this.#d)rt(e,v),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Pt=[],r=[],i=Ft=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw qt(e),this.#h()||this.discard(),t}if(Ot=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Pt=null,Ft=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Kt(e,t);i.length>0&&Ot.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),kt=this,Ht(r),Ht(n),kt=null,this.#s?.resolve();var s=Ot;if(this.#a===0&&(this.#c.length===0||s!==null)&&(this.#S(),He&&(this.#x(),Ot=s)),this.#c.length>0)if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this;s!==null&&s.#g()}#_(e,t,n){e.f^=g;for(var r=e.first;r!==null;){var i=r.f,a=(i&96)!=0;if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=g:i&4?t.push(r):He&&i&16777224?n.push(r):hr(r)&&(i&16&&this.#d.add(r),br(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null)for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),rt(i,_),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#S(),Ot=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)ot(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==Ce&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),At?.set(e,t)),this.is_fork||(e.v=t)}activate(){Ot=this}deactivate(){Ot=null,At=null}flush(){try{Nt=!0,Ot=this,this.#g()}finally{It=0,jt=null,Pt=null,Ft=null,Nt=!1,Ot=null,At=null,Yt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(vt);this.#S(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}#x(){for(let u=Et;u!==null;u=u.#n){var e=u.id<this.id,t=[];for(let[r,[i,a]]of this.current){if(u.current.has(r)){var n=u.current.get(r)[0];if(e&&i!==n)u.current.set(r,[i,a]);else continue}t.push(r)}if(e)for(let[e,t]of this.async_deriveds){let n=u.async_deriveds.get(e);n&&t.promise.then(n.resolve).catch(n.reject)}var r=[...u.current.keys()].filter(e=>!u.current.get(e)[1]);if(!(!u.#e||r.length===0)){var i=r.filter(e=>!this.current.has(e));if(i.length===0)e&&u.discard();else if(t.length>0){if(e)for(let e of this.#p)u.unskip_effect(e,e=>{e.f&4194320?u.schedule(e):u.#b([e])});u.activate();var a=new Set,o=new Map;for(var s of t)Ut(s,i,a,o);o=new Map;var c=[...u.current].filter(([e,t])=>{let n=this.current.get(e);return n?n[0]!==t[0]||n[1]!==t[1]:!0}).map(([e])=>e);if(c.length>0)for(let e of this.#l)!(e.f&155648)&&Wt(e,c,o)&&(e.f&4194320?(rt(e,_),u.schedule(e)):u.#u.add(e));if(u.#c.length>0&&!u.#m){u.apply();for(var l of u.#c)u.#_(l,[],[]);u.#c=[]}u.deactivate()}}}}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,Qe(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=h()).promise}static ensure(){if(Ot===null){let t=Ot=new e;!Nt&&!Mt&&Qe(()=>{t.#e||t.flush()})}return Ot}apply(){if(!He||!this.is_fork&&this.#t===null&&this.#n===null){At=null;return}At=new Map;for(let[e,[t]]of this.current)At.set(e,t);for(let t=Et;t!==null;t=t.#n)if(!(t===this||t.is_fork)){var e=!1;if(t.id<this.id){for(let[n,[,r]]of t.current)if(!r&&this.current.has(n)){e=!0;break}}if(!e)for(let[e,n]of t.previous)At.has(e)||At.set(e,n)}}schedule(e){if(jt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Pt!==null&&t===nr&&(He||($n===null||!($n.f&2))&&!st))return;if(n&96){if(!(n&1024))return;t.f^=g}}this.#c.push(t)}#S(){if(this.linked){var e=this.#t,t=this.#n;e===null?Et=t:e.#n=t,t===null?Dt=e:t.#t=e,this.linked=!1}}};function zt(e){var t=Mt;Mt=!0;try{var n;for(e&&(Ot!==null&&!Ot.is_fork&&Ot.flush(),n=e());;){if($e(),Ot===null)return n;Ot.flush()}}finally{Mt=t}}function Bt(){try{ge()}catch(e){tt(e,jt)}}var Vt=null;function Ht(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&hr(r)&&(Vt=new Set,br(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Un(r),Vt?.size>0)){Yt.clear();for(let e of Vt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Vt.has(n)&&(Vt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||br(n)}}Vt.clear()}}Vt=null}}function Ut(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(let i of e.reactions){let e=i.f;e&2?Ut(i,t,n,r):e&4194320&&!(e&2048)&&Wt(i,t,r)&&(rt(i,_),Gt(i))}}function Wt(e,t,n){let i=n.get(e);if(i!==void 0)return i;if(e.deps!==null)for(let i of e.deps){if(r.call(t,i))return!0;if(i.f&2&&Wt(i,t,n))return n.set(i,!0),!0}return n.set(e,!1),!1}function Gt(e){Ot.schedule(e)}function Kt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),rt(e,g);for(var n=e.first;n!==null;)Kt(n,t),n=n.next}}function qt(e){rt(e,g);for(var t=e.first;t!==null;)qt(t),t=t.next}var Jt=new Set,Yt=new Map,Xt=!1;function Zt(e,t){return{f:0,v:e,reactions:null,equals:ze,rv:0,wv:0}}function P(e,t){let n=Zt(e,t);return ar(n),n}function Qt(e,t=!1,n=!0){let r=Zt(e);return t||(r.equals=Ve),Ue&&n&&Ge!==null&&Ge.l!==null&&(Ge.l.s??=[]).push(r),r}function F(e,t,n=!1){return $n!==null&&(!er||$n.f&131072)&&Ye()&&$n.f&4325394&&(ir===null||!ir.has(e))&&be(),$t(e,n?I(t):t,Ft)}function $t(e,t,n=null){if(!e.equals(t)){Yt.set(e,Zn?t:e.v);var r=Rt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&St(t),At===null&&it(t)}e.wv=mr(),nn(e,_,n),Ye()&&nr!==null&&nr.f&1024&&!(nr.f&96)&&(cr===null?lr([e]):cr.push(e)),!r.is_fork&&Jt.size>0&&!Xt&&en()}return t}function en(){Xt=!1;for(let e of Jt){e.f&1024&&rt(e,v);let t;try{t=hr(e)}catch{t=!0}t&&br(e)}Jt.clear()}function tn(e){F(e,e.v+1)}function nn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Ye(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===nr)){var l=(c&_)===0;if(l&&rt(s,t),c&131072)Jt.add(s);else if(c&2){var u=s;At?.delete(u),c&65536||(c&512&&(nr===null||!(nr.f&2097152))&&(s.f|=D),nn(u,v,n))}else if(l){var d=s;c&16&&Vt!==null&&Vt.add(d),n===null?Gt(d):n.push(d)}}}}function I(e){if(typeof e!=`object`||!e||k in e)return e;let n=u(e);if(n!==c&&n!==l)return e;var r=new Map,i=t(e),a=P(0),s=null,d=fr,f=e=>{if(fr===d)return e();var t=$n,n=fr;tr(null),pr(d);var r=e();return tr(t),pr(n),r};return i&&r.set(`length`,P(e.length,s)),new Proxy(e,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&ve();var i=r.get(t);return i===void 0?f(()=>{var e=P(n.value,s);return r.set(t,e),e}):F(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>P(Ce,s));r.set(t,e),tn(a)}}else F(n,Ce),tn(a);return!0},get(t,n,i){if(n===k)return e;var a=r.get(n),c=n in t;if(a===void 0&&(!c||o(t,n)?.writable)&&(a=f(()=>P(I(c?t[n]:Ce),s)),r.set(n,a)),a!==void 0){var l=V(a);return l===Ce?void 0:l}return Reflect.get(t,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=V(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==Ce)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===k)return!0;var n=r.get(t),i=n!==void 0&&n.v!==Ce||Reflect.has(e,t);return(n!==void 0||nr!==null&&(!i||o(e,t)?.writable))&&(n===void 0&&(n=f(()=>P(i?I(e[t]):Ce,s)),r.set(t,n)),V(n)===Ce)?!1:i},set(e,t,n,c){var l=r.get(t),u=t in e;if(i&&t===`length`)for(var d=n;d<l.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>P(Ce,s)),r.set(d+``,p)):F(p,Ce)}if(l===void 0)(!u||o(e,t)?.writable)&&(l=f(()=>P(void 0,s)),F(l,I(n)),r.set(t,l));else{u=l.v!==Ce;var m=f(()=>I(n));F(l,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(c,n),!u){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&F(g,_+1)}tn(a)}return!0},ownKeys(e){V(a);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==Ce});for(var[n,i]of r)i.v!==Ce&&!(n in e)&&t.push(n);return t},setPrototypeOf(){ye()}})}function rn(e){try{if(typeof e==`object`&&e&&k in e)return e[k]}catch{}return e}function an(e,t){return Object.is(rn(e),rn(t))}var on,sn,cn,ln;function un(){if(on===void 0){on=window,sn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;cn=o(t,`firstChild`).get,ln=o(t,`nextSibling`).get,d(e)&&(e[ie]=void 0,e[re]=null,e[ae]=void 0,e.__e=void 0),d(n)&&(n[oe]=void 0)}}function dn(e=``){return document.createTextNode(e)}function fn(e){return cn.call(e)}function pn(e){return ln.call(e)}function L(e,t){if(!je)return fn(e);var n=fn(Ne);if(n===null)n=Ne.appendChild(dn());else if(t&&n.nodeType!==3){var r=dn();return n?.before(r),Pe(r),r}return t&&_n(n),Pe(n),n}function R(e,t=!1){if(!je){var n=fn(e);return n instanceof Comment&&n.data===``?pn(n):n}if(t){if(Ne?.nodeType!==3){var r=dn();return Ne?.before(r),Pe(r),r}_n(Ne)}return Ne}function z(e,t=1,n=!1){let r=je?Ne:e;for(var i;t--;)i=r,r=pn(r);if(!je)return r;if(n){if(r?.nodeType!==3){var a=dn();return r===null?i?.after(a):r.before(a),Pe(a),a}_n(r)}return Pe(r),r}function mn(e){e.textContent=``}function hn(){return!He||Vt!==null?!1:(nr.f&x)!==0}function gn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function _n(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function vn(e,t){if(t){let t=document.body;e.autofocus=!0,Qe(()=>{document.activeElement===t&&e.focus()})}}function yn(e){je&&fn(e)!==null&&mn(e)}var bn=!1;function xn(){bn||(bn=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[se]?.()})},{capture:!0}))}function Sn(e){var t=$n,n=nr;tr(null),rr(null);try{return e()}finally{tr(t),rr(n)}}function Cn(e,t,n,r=n){e.addEventListener(t,()=>Sn(n));let i=e[se];i?e[se]=()=>{i(),r(!0)}:e[se]=()=>r(!0),xn()}function wn(e){nr===null&&($n===null&&he(e),me()),Zn&&pe(e)}function Tn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function En(e,t){var n=nr;n!==null&&n.f&8192&&(e|=y);var r={ctx:Ge,deps:null,nodes:null,f:e|_|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Ot?.register_created_effect(r);var i=r;if(e&4)Pt===null?Rt.ensure().schedule(r):Pt.push(r);else if(t!==null){try{br(r)}catch(e){throw Vn(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=C))}if(i!==null&&(i.parent=n,n!==null&&Tn(i,n),$n!==null&&$n.f&2&&!(e&64))){var a=$n;(a.effects??=[]).push(i)}return r}function Dn(){return $n!==null&&!er}function On(e){let t=En(8,null);return rt(t,g),t.teardown=e,t}function kn(e){wn(`$effect`);var t=nr.f;if(!$n&&t&32&&Ge!==null&&!Ge.i){var n=Ge;(n.e??=[]).push(e)}else return An(e)}function An(e){return En(4|T,e)}function jn(e){return wn(`$effect.pre`),En(8|T,e)}function Mn(e){Rt.ensure();let t=En(64|w,e);return(e={})=>new Promise(n=>{e.outro?Wn(t,()=>{Vn(t),n(void 0)}):(Vn(t),n(void 0))})}function Nn(e){return En(4,e)}function Pn(e){return En(te|w,e)}function Fn(e,t=0){return En(8|t,e)}function B(e,t=[],n=[],r=[]){pt(r,t,n,t=>{En(8,()=>{e(...t.map(V))})})}function In(e,t=0){return En(16|t,e)}function Ln(e){return En(32|w,e)}function Rn(e){var t=e.teardown;if(t!==null){let e=Zn,n=$n;Qn(!0),tr(null);try{t.call(null)}finally{Qn(e),tr(n)}}}function zn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&Sn(()=>{e.abort(ce)});var r=n.next;n.f&64?n.parent=null:Vn(n,t),n=r}}function Bn(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||Vn(t),t=n}}function Vn(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Hn(e.nodes.start,e.nodes.end),n=!0),e.f|=S,zn(e,t&&!n),yr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Rn(e),e.f^=S,e.f|=b;var i=e.parent;i!==null&&i.first!==null&&Un(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Hn(e,t){for(;e!==null;){var n=e===t?null:pn(e);e.remove(),e=n}}function Un(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Wn(e,t,n=!0){var r=[];Gn(e,r,!0);var i=()=>{n&&Vn(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Gn(e,t,n){if(!(e.f&8192)){e.f^=y;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=(i.f&65536)!=0||(i.f&32)!=0&&(e.f&16)!=0;Gn(i,t,o?n:!1)}i=a}}}function Kn(e){qn(e,!0)}function qn(e,t){if(e.f&8192){e.f^=y,e.f&1024||(rt(e,_),Rt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=(n.f&65536)!=0||(n.f&32)!=0;qn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Jn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:pn(n);t.append(n),n=i}}var Yn=null,Xn=!1,Zn=!1;function Qn(e){Zn=e}var $n=null,er=!1;function tr(e){$n=e}var nr=null;function rr(e){nr=e}var ir=null;function ar(e){$n!==null&&(!He||$n.f&2)&&(ir??=new Set).add(e)}var or=null,sr=0,cr=null;function lr(e){cr=e}var ur=1,dr=0,fr=dr;function pr(e){fr=e}function mr(){return++ur}function hr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~D),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(hr(a)&&Ct(a),a.wv>e.wv)return!0}t&512&&At===null&&rt(e,g)}return!1}function gr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(!He&&ir!==null&&ir.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?gr(a,t,!1):t===a&&(n?rt(a,_):a.f&1024&&rt(a,v),Gt(a))}}function _r(e){var t=or,n=sr,r=cr,i=$n,a=ir,o=Ge,s=er,c=fr,l=e.f;or=null,sr=0,cr=null,$n=l&96?null:e,ir=null,Ke(e.ctx),er=!1,fr=++dr,e.ac!==null&&(Sn(()=>{e.ac.abort(ce)}),e.ac=null);try{e.f|=ee;var u=e.fn,d=u();e.f|=x;var f=e.deps,p=Ot?.is_fork;if(or!==null){var m;if(p||yr(e,sr),f!==null&&sr>0)for(f.length=sr+or.length,m=0;m<or.length;m++)f[sr+m]=or[m];else e.deps=f=or;if(Dn()&&e.f&512)for(m=sr;m<f.length;m++)(f[m].reactions??=[]).push(e)}else!p&&f!==null&&sr<f.length&&(yr(e,sr),f.length=sr);if(Ye()&&cr!==null&&!er&&f!==null&&!(e.f&6146))for(m=0;m<cr.length;m++)gr(cr[m],e);if(i!==null&&i!==e){if(dr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=dr;if(t!==null)for(let e of t)e.rv=dr;cr!==null&&(r===null?r=cr:r.push(...cr))}return e.f&8388608&&(e.f^=O),d}catch(e){return et(e)}finally{e.f^=ee,or=t,sr=n,cr=r,$n=i,ir=a,Ke(o),er=s,fr=c}}function vr(e,t){let i=t.reactions;if(i!==null){var a=n.call(i,e);if(a!==-1){var o=i.length-1;o===0?i=t.reactions=null:(i[a]=i[o],i.pop())}}if(i===null&&t.f&2&&(or===null||!r.call(or,t))){var s=t;s.f&512&&(s.f^=512,s.f&=~D),s.v!==Ce&&it(s),wt(s),yr(s,0)}}function yr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)vr(e,n[r])}function br(e){var t=e.f;if(!(t&16384)){rt(e,g);var n=nr,r=Xn;nr=e,Xn=!0;try{t&16777232?Bn(e):zn(e),Rn(e);var i=_r(e);e.teardown=typeof i==`function`?i:null,e.wv=ur}finally{Xn=r,nr=n}}}async function xr(){if(He)return new Promise(e=>{requestAnimationFrame(()=>e()),setTimeout(()=>e())});await Promise.resolve(),zt()}function V(e){var t=(e.f&2)!=0;if(Yn?.add(e),$n!==null&&!er&&!(nr!==null&&nr.f&16384)&&(ir===null||!ir.has(e))){var n=$n.deps;if($n.f&2097152)e.rv<dr&&(e.rv=dr,or===null&&n!==null&&n[sr]===e?sr++:or===null?or=[e]:or.push(e));else{$n.deps??=[],r.call($n.deps,e)||$n.deps.push(e);var i=e.reactions;i===null?e.reactions=[$n]:r.call(i,$n)||i.push($n)}}if(Zn&&Yt.has(e))return Yt.get(e);if(t){var a=e;if(Zn){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||Cr(a))&&(o=St(a)),Yt.set(a,o),o}var s=(a.f&512)==0&&!er&&$n!==null&&(Xn||($n.f&512)!=0),c=(a.f&x)===0;hr(a)&&(s&&(a.f|=512),Ct(a)),s&&!c&&(Tt(a),Sr(a))}if(At?.has(e))return At.get(e);if(e.f&8388608)throw e.v;return e.v}function Sr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(Tt(t),Sr(t))}function Cr(e){if(e.v===Ce)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Yt.has(t)||t.f&2&&Cr(t))return!0;return!1}function wr(e){var t=er;try{return er=!0,e()}finally{er=t}}function Tr(e){if(!(typeof e!=`object`||!e||e instanceof EventTarget)){if(k in e)Er(e);else if(!Array.isArray(e))for(let t in e){let n=e[t];typeof n==`object`&&n&&k in n&&Er(n)}}}function Er(e,t=new Set){if(typeof e==`object`&&e&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{Er(e[n],t)}catch{}let n=u(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){let t=s(n);for(let n in t){let r=t[n].get;if(r)try{r.call(e)}catch{}}}}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var Dr=[`touchstart`,`touchmove`];function Or(e){return Dr.includes(e)}var kr=Symbol(`events`),Ar=new Set,jr=new Set;function Mr(e,t,n,r={}){function i(e){if(r.capture||Ir.call(t,e),!e.cancelBubble)return Sn(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Qe(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Nr(e,t,n,r,i){var a={capture:r,passive:i},o=Mr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&On(()=>{t.removeEventListener(e,o,a)})}function H(e,t,n){(t[kr]??={})[e]=n}function Pr(e){for(var t=0;t<e.length;t++)Ar.add(e[t]);for(var n of jr)n(e)}var Fr=null;function Ir(e){var t=this,n=t.ownerDocument,r=e.type,i=e.composedPath?.()||[],o=i[0]||e.target;Fr=e;var s=0,c=Fr===e&&e[kr];if(c){var l=i.indexOf(c);if(l!==-1&&(t===document||t===window)){e[kr]=t;return}var u=i.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(o=i[s]||e.target,o!==t){a(e,`currentTarget`,{configurable:!0,get(){return o||n}});var d=$n,f=nr;tr(null),rr(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[kr]?.[r];h!=null&&(!o.disabled||e.target===o)&&h.call(o,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;s++,o=s<i.length?i[s]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[kr]=t,delete e.currentTarget,tr(d),rr(f)}}}var Lr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Rr(e){return Lr?.createHTML(e)??e}function zr(e){var t=gn(`template`);return t.innerHTML=Rr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Br(e,t){var n=nr;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function U(e,t){var n=(t&1)!=0,r=(t&2)!=0,i,a=!e.startsWith(`<!>`);return()=>{if(je)return Br(Ne,null),Ne;i===void 0&&(i=zr(a?e:`<!>`+e),n||(i=fn(i)));var t=r||sn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=fn(t),s=t.lastChild;Br(o,s)}else Br(t,t);return t}}function Vr(e,t,n=`svg`){var r=!e.startsWith(`<!>`),i=(t&1)!=0,a=`<${n}>${r?e:`<!>`+e}</${n}>`,o;return()=>{if(je)return Br(Ne,null),Ne;if(!o){var e=fn(zr(a));if(i)for(o=document.createDocumentFragment();fn(e);)o.appendChild(fn(e));else o=fn(e)}var t=o.cloneNode(!0);if(i){var n=fn(t),r=t.lastChild;Br(n,r)}else Br(t,t);return t}}function Hr(e,t){return Vr(e,t,`svg`)}function Ur(e=``){if(!je){var t=dn(e+``);return Br(t,t),t}var n=Ne;return n.nodeType===3?_n(n):(n.before(n=dn()),Pe(n)),Br(n,n),n}function Wr(){if(je)return Br(Ne,null),Ne;var e=document.createDocumentFragment(),t=document.createComment(``),n=dn();return e.append(t,n),Br(t,n),e}function W(e,t){if(je){var n=nr;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=Ne),Fe();return}e!==null&&e.before(t)}function G(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[oe]??=e.nodeValue)&&(e[oe]=n,e.nodeValue=`${n}`)}function Gr(e,t){return qr(e,t)}var Kr=new Map;function qr(e,{target:t,anchor:n,props:r={},events:a,context:o,intro:s=!0,transformError:c}){un();var l=void 0,u=Mn(()=>{var s=n??t.appendChild(dn());ft(s,{pending:()=>{}},t=>{qe({});var n=Ge;if(o&&(n.c=o),a&&(r.$$events=a),je&&Br(t,null),l=e(t,r)||{},je&&(nr.nodes.end=Ne,Ne===null||Ne.nodeType!==8||Ne.data!==`]`))throw Oe(),Se;Je()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=Or(r);for(let e of[t,document]){var a=Kr.get(e);a===void 0&&(a=new Map,Kr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Ir,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(i(Ar)),jr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Kr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Ir),r.delete(e),r.size===0&&Kr.delete(n)):r.set(e,i)}jr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Jr.set(l,u),l}var Jr=new WeakMap,Yr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Kn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Kn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(Vn(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Jn(r,t),t.append(dn()),this.#n.set(e,{effect:r,fragment:t})}else Vn(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Wn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(Vn(n.effect),this.#n.delete(e))};ensure(e,t){var n=Ot,r=hn();if(t&&!this.#t.has(e)&&!this.#n.has(e))if(r){var i=document.createDocumentFragment(),a=dn();i.append(a),this.#n.set(e,{effect:Ln(()=>t(a)),fragment:i})}else this.#t.set(e,Ln(()=>t(this.anchor)));if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else je&&(this.anchor=Ne),this.#a(n)}};function K(e,t,n=!1){var r;je&&(r=Ne,Fe());var i=new Yr(e),a=n?C:0;function o(e,t){if(je){var n=Re(r);if(e!==parseInt(n.substring(1))){var a=Le();Pe(a),i.anchor=a,Me(!1),i.ensure(e,t),Me(!0);return}}i.ensure(e,t)}In(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}var Xr=Symbol(`NaN`);function Zr(e,t,n){je&&Fe();var r=new Yr(e),i=!Ye();In(()=>{var e=t();e!==e&&(e=Xr),i&&typeof e==`object`&&e&&(e={}),r.ensure(e,n)})}function Qr(e,t){return t}function $r(e,t,n){for(var r=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];Wn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;ei(e,i(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=r.length===0&&n!==null;if(l){var u=n,d=u.parentNode;mn(d),d.append(u),e.items.clear()}ei(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function ei(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=E,Jn(a,document.createDocumentFragment())):Vn(t[i],n)}}var ti;function q(e,n,r,a,o,s=null){var c=e,l=new Map;if(n&4){var u=e;c=je?Pe(fn(u)):u.appendChild(dn())}je&&Fe();var d=null,f=bt(()=>{var e=r();return t(e)?e:e==null?[]:i(e)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,ri(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=E,ai(d,null,c)):Kn(d):Wn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:In(()=>{p=V(f);var e=p.length;let t=!1;je&&Re(c)===`[!`!=(e===0)&&(c=Le(),Pe(c),Me(!1),t=!0);for(var i=new Set,u=Ot,v=hn(),y=0;y<e;y+=1){je&&Ne.nodeType===8&&Ne.data===`]`&&(c=Ne,t=!0,Me(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&$t(S.v,b),S.i&&$t(S.i,y),v&&u.unskip_effect(S.e)):(S=ii(l,h?c:ti??=dn(),b,x,y,o,n,r),h||(S.e.f|=E),l.set(x,S)),i.add(x)}if(e===0&&s&&!d&&(h?d=Ln(()=>s(c)):(d=Ln(()=>s(ti??=dn())),d.f|=E)),e>i.size&&fe(``,``,``),je&&e>0&&Pe(Le()),!h)if(m.set(u,i),v){for(let[e,t]of l)i.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u);t&&Me(!0),V(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,je&&(c=Ne)}function ni(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function ri(e,t,n,r,a){var o=(r&8)!=0,s=t.length,c=e.items,l=ni(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=a(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=a(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(Kn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432)if(_.f^=E,_===l)ai(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),oi(e,d,_),oi(e,_,y),ai(_,y,n),d=_,p=[],m=[],l=ni(d.next);continue}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)ai(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);oi(e,S.prev,C.next),oi(e,d,S),oi(e,C,b),l=b,d=C,--v,p=[],m=[]}else u.delete(_),ai(_,l,n),oi(e,_.prev,_.next),oi(e,_,d===null?e.effect.first:d.next),oi(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=ni(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=ni(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(ei(e,i(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&8192||w.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&w.push(l),l=ni(l.next);var T=w.length;if(T>0){var D=r&4&&s===0?n:null;if(o){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}$r(e,w,D)}}o&&Qe(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function ii(e,t,n,r,i,a,o,s){var c=o&1?o&16?Zt(n):Qt(n,!1,!1):null,l=o&2?Zt(i):null;return{v:c,i:l,e:Ln(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function ai(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=pn(r);if(a.before(r),r===i)return;r=o}}function oi(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function si(e,t,n=!1,r=!1,i=!1,a=!1){var o=e,s=``;if(n){var c=e;je&&(o=Pe(fn(c)))}B(()=>{var e=nr;if(s===(s=t()??``)){je&&Fe();return}if(n&&!je){e.nodes=null,c.innerHTML=s,s!==``&&Br(fn(c),c.lastChild);return}if(e.nodes!==null&&(Hn(e.nodes.start,e.nodes.end),e.nodes=null),s!==``){if(je){for(var a=Ne.data,l=Fe(),u=l;l!==null&&(l.nodeType!==8||l.data!==``);)u=l,l=pn(l);if(l===null)throw Oe(),Se;Br(Ne,u),o=Pe(l);return}var d=gn(r?`svg`:i?`math`:`template`,r?Te:i?Ee:void 0);d.innerHTML=s;var f=r||i?d:d.content;if(Br(fn(f),f.lastChild),r||i)for(;fn(f);)o.before(fn(f));else o.before(f)}})}function ci(e,t,...n){var r=new Yr(e);In(()=>{let e=t()??null;r.ensure(e,e&&(t=>e(t,...n)))},C)}function li(e,t,n){Nn(()=>{var r=wr(()=>t(e,n?.())||{});if(n&&r?.update){var i=!1,a={};Fn(()=>{var e=n();Tr(e),i&&Be(a,e)&&(a=e,r.update(e))}),i=!0}if(r?.destroy)return()=>r.destroy()})}function ui(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ui(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function di(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ui(e))&&(r&&(r+=` `),r+=t);return r}function fi(e){return typeof e==`object`?di(e):e??``}var pi=[...`
|
|
2
|
+
\r\f\xA0\v`];function mi(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||pi.includes(r[o-1]))&&(s===r.length||pi.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function hi(e,t=!1){var n=t?` !important;`:`;`,r=``;for(var i of Object.keys(e)){var a=e[i];a!=null&&a!==``&&(r+=` `+i+`: `+a+n)}return r}function gi(e){return e[0]!==`-`||e[1]!==`-`?e.toLowerCase():e}function _i(e,t){if(t){var n=``,r,i;if(Array.isArray(t)?(r=t[0],i=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,``).trim();var a=!1,o=0,s=!1,c=[];r&&c.push(...Object.keys(r).map(gi)),i&&c.push(...Object.keys(i).map(gi));var l=0,u=-1;let t=e.length;for(var d=0;d<t;d++){var f=e[d];if(s?f===`/`&&e[d-1]===`*`&&(s=!1):a?a===f&&(a=!1):f===`/`&&e[d+1]===`*`?s=!0:f===`"`||f===`'`?a=f:f===`(`?o++:f===`)`&&o--,!s&&a===!1&&o===0){if(f===`:`&&u===-1)u=d;else if(f===`;`||d===t-1){if(u!==-1){var p=gi(e.substring(l,u).trim());if(!c.includes(p)){f!==`;`&&d++;var m=e.substring(l,d).trim();n+=` `+m+`;`}}l=d+1,u=-1}}}}return r&&(n+=hi(r)),i&&(n+=hi(i,!0)),n=n.trim(),n===``?null:n}return e==null?null:String(e)}function vi(e,t,n,r,i,a){var o=e[ie];if(je||o!==n||o===void 0){var s=mi(n,r,a);(!je||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ie]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function yi(e,t={},n,r){for(var i in n){var a=n[i];t[i]!==a&&(n[i]==null?e.style.removeProperty(i):e.style.setProperty(i,a,r))}}function bi(e,t,n,r){var i=e[ae];if(je||i!==t){var a=_i(t,r);(!je||a!==e.getAttribute(`style`))&&(a==null?e.removeAttribute(`style`):e.style.cssText=a),e[ae]=t}else r&&(Array.isArray(r)?(yi(e,n?.[0],r[0]),yi(e,n?.[1],r[1],`important`)):yi(e,n,r));return r}function xi(e,n,r=!1){if(e.multiple){if(n==null)return;if(!t(n))return ke();for(var i of e.options)i.selected=n.includes(wi(i));return}for(i of e.options)if(an(wi(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(e.selectedIndex=-1)}function Si(e){var t=new MutationObserver(()=>{xi(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),On(()=>{t.disconnect()})}function Ci(e,t,n=t){var r=new WeakSet,i=!0;Cn(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),wi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&wi(o)}n(a),e.__value=a,Ot!==null&&r.add(Ot)}),Nn(()=>{var a=t();if(e===document.activeElement){var o=He?kt:Ot;if(r.has(o))return}if(xi(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=wi(s),n(a))}e.__value=a,i=!1}),Si(e)}function wi(e){return`__value`in e?e.__value:e.value}var Ti=Symbol(`is custom element`),Ei=Symbol(`is html`),Di=le?`link`:`LINK`,Oi=le?`progress`:`PROGRESS`;function ki(e){if(je){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;J(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;J(e,`checked`,null),e.checked=r}}};e[se]=n,Qe(n),xn()}}function Ai(e,t){var n=Mi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Oi)||(e.value=t??``)}function ji(e,t){var n=Mi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function J(e,t,n,r){var i=Mi(e);je&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===Di)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[A]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Pi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Mi(e){return e[re]??={[Ti]:e.nodeName.includes(`-`),[Ei]:e.namespaceURI===we}}var Ni=new Map;function Pi(e){var t=e.getAttribute(`is`)||e.nodeName,n=Ni.get(t);if(n)return n;Ni.set(t,n=[]);for(var r,i=e,a=Element.prototype;a!==i;){for(var o in r=s(i),r)r[o].set&&o!==`innerHTML`&&o!==`textContent`&&o!==`innerText`&&n.push(o);i=u(i)}return n}function Fi(e,t,n=t){var r=new WeakSet;Cn(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Bi(e)?Vi(a):a,n(a),Ot!==null&&r.add(Ot),await xr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(je&&e.defaultValue!==e.value||wr(t)==null&&e.value)&&(n(Bi(e)?Vi(e.value):e.value),Ot!==null&&r.add(Ot)),Fn(()=>{var n=t();if(e===document.activeElement){var i=He?kt:Ot;if(r.has(i))return}Bi(e)&&n===Vi(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}var Ii=new Set;function Li(e,t,n,r,i=r){var a=n.getAttribute(`type`)===`checkbox`,o=e;let s=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),Cn(n,`change`,()=>{var e=n.__value;a&&(e=zi(o,e,n.checked)),i(e)},()=>i(a?[]:null)),Fn(()=>{var e=r();if(je&&n.defaultChecked!==n.checked){s=!0;return}a?(e||=[],n.checked=e.includes(n.__value)):n.checked=an(n.__value,e)}),On(()=>{var e=o.indexOf(n);e!==-1&&o.splice(e,1)}),Ii.has(o)||(Ii.add(o),Qe(()=>{o.sort((e,t)=>e.compareDocumentPosition(t)===4?-1:1),Ii.delete(o)})),Qe(()=>{if(s){var e=a?zi(o,e,n.checked):o.find(e=>e.checked)?.__value;i(e)}})}function Ri(e,t,n=t){Cn(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(je&&e.defaultChecked!==e.checked||wr(t)==null)&&n(e.checked),Fn(()=>{e.checked=!!t()})}function zi(e,t,n){for(var r=new Set,i=0;i<e.length;i+=1)e[i].checked&&r.add(e[i].__value);return n||r.delete(t),Array.from(r)}function Bi(e){var t=e.type;return t===`number`||t===`range`}function Vi(e){return e===``?null:+e}function Hi(e,t){return e===t||e?.[k]===t}function Ui(e={},t,n,r){var i=Ge.r,a=nr;return Nn(()=>{var o,s;return Fn(()=>{o=s,s=r?.()||[],wr(()=>{Hi(n(...s),e)||(t(e,...s),o&&Hi(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Hi(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function Wi(e,t,n,r,i){var a=()=>{r(n[e])};n.addEventListener(t,a),i?Fn(()=>{n[e]=i()}):a(),(n===document.body||n===window||n===document)&&On(()=>{n.removeEventListener(t,a)})}function Gi(e=!1){let t=Ge,n=t.l.u;if(!n)return;let r=()=>Tr(t.s);if(e){let e=0,n={},i=_t(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>V(i)}n.b.length&&jn(()=>{Ki(t,r),m(n.b)}),kn(()=>{let e=wr(()=>n.m.map(p));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&kn(()=>{Ki(t,r),m(n.a)})}function Ki(e,t){if(e.l.s)for(let t of e.l.s)V(t);t()}function qi(e,t,n,r){var i=!Ue||(n&2)!=0,a=(n&8)!=0,s=(n&16)!=0,c=r,l=!0,u=void 0,d=()=>s&&i?(u??=_t(r),V(u)):(l&&(l=!1,c=s?wr(r):r),c);let f;if(a){var p=k in e||ne in e;f=o(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;a?[m,h]=lt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&_e(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?_t:bt)(()=>(v=!1,g()));a&&V(y);var b=nr;return(function(e,t){if(arguments.length>0){let n=t?V(y):i&&a?I(e):e;return F(y,n),v=!0,c!==void 0&&(c=n),e}return Zn&&v||b.f&16384?y.v:V(y)})}function Ji(e){Ge===null&&ue(`onMount`),Ue&&Ge.l!==null?Yi(Ge).m.push(e):kn(()=>{let t=wr(e);if(typeof t==`function`)return t})}function Yi(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Xi=U(`<section class="config-section"><header class="config-section-header"><h3 class="config-section-title"><span aria-hidden="true"> </span> </h3> <p class="config-section-desc"> </p></header> <div class="config-section-body"><!></div></section>`);function Zi(e,t){var n=Xi(),r=L(n),i=L(r),a=L(i),o=L(a,!0);j(a);var s=z(a);j(i);var c=z(i,2),l=L(c,!0);j(c),j(r);var u=z(r,2);ci(L(u),()=>t.children),j(u),j(n),B(()=>{G(o,t.icon),G(s,` ${t.title??``}`),G(l,t.description)}),W(e,n)}var Qi=U(`<p class="browser-msg">Loading…</p>`),$i=U(`<p class="browser-msg browser-msg--error">Cannot read directory</p>`),ea=U(`<p class="browser-msg">Empty directory</p>`),ta=U(`<button type="button" class="browser-row browser-row--dir"><span>📁</span><span> </span></button>`),na=U(`<span class="badge-added">Added</span>`),ra=U(`<button type="button" class="link-btn">+ Add</button>`),ia=U(`<div class="browser-row browser-row--file"><span class="browser-row-name"><span>📄</span><span> </span></span> <!></div>`),aa=U(`<!> <!>`,1),oa=U(`<p class="field-hint" style="font-style:italic">No extra files added yet.</p>`),sa=U(`<div class="extra-file-row"><div class="extra-file-arrows"><button type="button">↑</button> <button type="button">↓</button></div> <span class="extra-file-path"> </span> <button type="button" class="remove-btn">Remove</button></div>`),ca=U(`<div class="extra-files-list"></div>`),la=U(`<div class="field-group"><p class="field-label">General — Extra Files</p> <p class="field-hint">Add Markdown files from outside the docs folder to the General section.</p> <div class="file-browser"><div class="file-browser-toolbar"><button type="button" class="link-btn">↑ Up</button> <span class="file-browser-path"> </span></div> <div class="file-browser-list"><!></div></div> <p class="field-label" style="margin-top:1rem">Added files</p> <!></div>`);function ua(e,t){qe(t,!0);let n=P(``),r=P(null),i=P(I([])),a=P(I([])),o=P(!1),s=P(!1);function c(e,t){if(!e)return t;let n=e=>e.replace(/\\/g,`/`),r=n(e).split(`/`).filter(Boolean),i=n(t).split(`/`).filter(Boolean),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=r.length-a,s=i.slice(a).join(`/`),c=`../`.repeat(o)+s;return c.endsWith(`/`)&&(c=c.slice(0,-1)),c===``?`.`:c}function l(e){return t.docsFolder?`$DOCS_FOLDER/`+c(t.docsFolder,e):e}async function u(e){F(o,!0),F(s,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(n,t.current,!0),F(r,t.parent,!0),F(i,t.dirs,!0),F(a,t.files,!0)}catch{F(s,!0)}finally{F(o,!1)}}function d(){V(r)&&u(V(r))}async function f(e){if(t.extraFiles.includes(e))return;let r=[...t.extraFiles,e];await h(r),t.onchange(r),u(V(n))}async function p(e){let r=t.extraFiles.filter(t=>t!==e);await h(r),t.onchange(r),u(V(n))}async function m(e,n){let r=e+n;if(r<0||r>=t.extraFiles.length)return;let i=[...t.extraFiles];[i[e],i[r]]=[i[r],i[e]],await h(i),t.onchange(i)}async function h(e){let n=e.map(e=>c(t.docsFolder,e));await fetch(`/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extraFiles:n})})}var g={loadBrowse:u},_=la(),v=z(L(_),4),y=L(v),b=L(y),x=z(b,2),S=L(x,!0);j(x),j(y);var C=z(y,2),w=L(C),T=e=>{W(e,Qi())},E=e=>{W(e,$i())},D=e=>{W(e,ea())},ee=e=>{var n=aa(),r=R(n);q(r,17,()=>V(i),Qr,(e,t)=>{var n=ta(),r=z(L(n)),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>u(V(t).path)),W(e,n)}),q(z(r,2),17,()=>V(a),Qr,(e,n)=>{var r=ia(),i=L(r),a=z(L(i)),o=L(a,!0);j(a),j(i);var s=z(i,2),c=e=>{W(e,na())},l=N(()=>t.extraFiles.includes(V(n).path)),u=e=>{var t=ra();H(`click`,t,()=>f(V(n).path)),W(e,t)};K(s,e=>{V(l)?e(c):e(u,-1)}),j(r),B(()=>G(o,V(n).name)),W(e,r)}),W(e,n)};K(w,e=>{V(o)?e(T):V(s)?e(E,1):V(i).length===0&&V(a).length===0?e(D,2):e(ee,-1)}),j(C),j(v);var te=z(v,4),O=e=>{W(e,oa())},k=e=>{var n=ca();q(n,21,()=>t.extraFiles,Qr,(e,n,r)=>{var i=sa(),a=L(i),o=L(a);o.disabled=r===0;var s=z(o,2);j(a);var c=z(a,2),u=L(c,!0);j(c);var d=z(c,2);j(i),B(e=>{s.disabled=r===t.extraFiles.length-1,J(c,`title`,V(n)),G(u,e)},[()=>l(V(n))]),H(`click`,o,()=>m(r,-1)),H(`click`,s,()=>m(r,1)),H(`click`,d,()=>p(V(n))),W(e,i)}),j(n),W(e,n)};return K(te,e=>{t.extraFiles.length===0?e(O):e(k,-1)}),j(_),B(e=>{b.disabled=!V(r),G(S,e)},[()=>l(V(n))]),H(`click`,b,d),W(e,_),Je(g)}Pr([`click`]);var da=U(`<div class="swatch-wrap"><div class="swatch"></div> <input type="color" class="swatch-input"/></div>`),fa=U(`<div class="edge-swatch-wrap"><div class="edge-swatch"></div> <button type="button" class="remove-swatch-btn">✕</button></div>`),pa=U(`<div class="palette-group"><div class="palette-header"><span class="field-label">Shape colors</span> <button type="button" class="link-btn">Reset</button></div> <p class="field-hint">Click a color to change it.</p> <div class="swatches"></div></div> <div class="palette-group" style="margin-top:1.5rem"><div class="palette-header"><span class="field-label">Arrow colors</span> <button type="button" class="link-btn">Reset</button></div> <p class="field-hint">Click ✕ to remove a color.</p> <div class="swatches" style="align-items:flex-end"></div> <div class="add-color-row"><input type="color" class="color-input"/> <button type="button" class="btn-primary btn-sm">Add color</button></div></div>`,1);function ma(e,t){qe(t,!0);let n=qi(t,`nodePalette`,15),r=qi(t,`edgePalette`,15),i={"c-white":{bg:`#ffffff`,border:`#dbd5d1`,label:`White`},"c-gray":{bg:`#f5f5f4`,border:`#a8a29e`,label:`Gray`},"c-slate":{bg:`#f1f5f9`,border:`#64748b`,label:`Slate`},"c-blue":{bg:`#dbeafe`,border:`#3b82f6`,label:`Blue`},"c-sky":{bg:`#e0f2fe`,border:`#0ea5e9`,label:`Sky`},"c-cyan":{bg:`#cffafe`,border:`#06b6d4`,label:`Cyan`},"c-teal":{bg:`#ccfbf1`,border:`#14b8a6`,label:`Teal`},"c-green":{bg:`#dcfce7`,border:`#22c55e`,label:`Green`},"c-lime":{bg:`#ecfccb`,border:`#84cc16`,label:`Lime`},"c-amber":{bg:`#fef9c3`,border:`#f59e0b`,label:`Amber`},"c-orange":{bg:`#ffedd5`,border:`#f97316`,label:`Orange`},"c-red":{bg:`#fee2e2`,border:`#ef4444`,label:`Red`},"c-rose":{bg:`#ffe4e6`,border:`#f43f5e`,label:`Rose`},"c-pink":{bg:`#fce7f3`,border:`#ec4899`,label:`Pink`},"c-purple":{bg:`#ede9fe`,border:`#8b5cf6`,label:`Purple`}},a={"c-gray":.667,"c-slate":.488,"c-blue":.645,"c-sky":.518,"c-cyan":.473,"c-teal":.448,"c-green":.489,"c-lime":.496,"c-amber":.57,"c-orange":.578,"c-red":.64,"c-rose":.636,"c-pink":.638,"c-purple":.694},o=Object.keys(i),s=[`#ffffff`,`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],c=P(`#3b82f6`);function l(e,t=.6){let n=parseInt(e.slice(1,3),16)/255,r=parseInt(e.slice(3,5),16)/255,i=parseInt(e.slice(5,7),16)/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=(a+o)/2,c=a-o,l=0,u=0;c>0&&(u=s>.5?c/(2-a-o):c/(a+o),l=a===n?((r-i)/c+(r<i?6:0))/6:a===r?((i-n)/c+2)/6:((n-r)/c+4)/6);function d(e,t,n){let r,i,a;if(t===0)r=i=a=n;else{let o=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),s=n<.5?n*(1+t):n+t-n*t,c=2*n-s;r=o(c,s,e+1/3),i=o(c,s,e),a=o(c,s,e-1/3)}return`#`+[r,i,a].map(e=>Math.max(0,Math.min(255,Math.round(e*255))).toString(16).padStart(2,`0`)).join(``)}return{bg:e,border:d(l,u,s*t)}}function u(e,t){let n=i[e];return t===n.bg?n.border:l(t,a[e]||.6).border}function d(){n(o.map(e=>i[e].bg))}function f(){r([...s])}function p(){let e=V(c).toLowerCase();r().includes(e)||r([...r(),e])}function m(e){r().length<=1||r(r().filter((t,n)=>n!==e))}var h=pa(),g=R(h),_=L(g),v=z(L(_),2);j(_);var y=z(_,4);q(y,21,()=>o,Qr,(e,t,r)=>{let a=N(()=>n()[r]||i[V(t)].bg),o=N(()=>u(V(t),V(a)));var s=da(),c=L(s),l=z(c,2);ki(l),j(s),B(()=>{J(s,`title`,i[V(t)].label),bi(c,`background:${V(a)??``};border-color:${V(o)??``}`),Ai(l,V(a))}),H(`input`,l,e=>{n(n()[r]=e.target.value.toLowerCase(),!0)}),W(e,s)}),j(y),j(g);var b=z(g,2),x=L(b),S=z(L(x),2);j(x);var C=z(x,4);q(C,21,r,Qr,(e,t,n)=>{var r=fa(),i=L(r),a=z(i,2);j(r),B(()=>bi(i,`background:${V(t)??``}`)),H(`click`,a,()=>m(n)),W(e,r)}),j(C);var w=z(C,2),T=L(w);ki(T);var E=z(T,2);j(w),j(b),H(`click`,v,d),H(`click`,S,f),Fi(T,()=>V(c),e=>F(c,e)),H(`click`,E,p),W(e,h),Je()}Pr([`click`,`input`]);var ha=[{href:`/blueprint`,labelKey:`admin.navigation.blueprint`},{href:`/graph`,labelKey:`graph.nav`},{href:`/survival-kit`,labelKey:`admin.navigation.survival_kit`},{href:`/context`,labelKey:`admin.navigation.ai_context`}];function ga(e){return Array.isArray(e)?ha.map(e=>e.href).filter(t=>e.includes(t)):[]}var _a=I({hidden:[]});function va(e){_a.hidden=ga(e.hiddenHeaderMenus)}var ya=P(I({})),ba=`ld-lang`;function xa(){try{return localStorage.getItem(ba)||`en`}catch{return`en`}}async function Sa(e){let t=e||`en`;try{localStorage.setItem(ba,t)}catch{}try{let e=await fetch(`/i18n/${t}.json`);e.ok&&F(ya,await e.json(),!0)}catch{}}function Y(e,t){let n=V(ya)[e]===void 0?e:V(ya)[e];if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{${e}}`,r);return n}function Ca(e,t){let n=document.activeElement instanceof HTMLElement?document.activeElement:null,r=()=>Array.from(e.querySelectorAll(`button:not(:disabled), input:not(:disabled), textarea:not(:disabled), select:not(:disabled), a[href], [tabindex="0"]`)).filter(e=>e.getClientRects().length>0);queueMicrotask(()=>r()[0]?.focus());let i=n=>{if(n.key===`Escape`&&(n.preventDefault(),n.stopPropagation(),t()),n.key!==`Tab`)return;let i=r(),a=i[0],o=i[i.length-1];if(!a){n.preventDefault();return}n.shiftKey&&(document.activeElement===a||!e.contains(document.activeElement))?(n.preventDefault(),o.focus()):!n.shiftKey&&(document.activeElement===o||!e.contains(document.activeElement))&&(n.preventDefault(),a.focus())};return e.addEventListener(`keydown`,i),{destroy(){e.removeEventListener(`keydown`,i),n?.isConnected&&n.focus()}}}function wa(e){try{return localStorage.getItem(e)===`1`}catch{return!1}}function Ta(){try{let e=parseInt(localStorage.getItem(`ld-highlight-status`)||`0`,10);return e===1||e===2?e:0}catch{return 0}}var X=new class{#e=P(I([]));get allDocs(){return V(this.#e)}set allDocs(e){F(this.#e,e,!0)}#t=P(I([]));get allFolderPaths(){return V(this.#t)}set allFolderPaths(e){F(this.#t,e,!0)}#n=P(``);get docsFolder(){return V(this.#n)}set docsFolder(e){F(this.#n,e,!0)}#r=P(I({}));get annotationCounts(){return V(this.#r)}set annotationCounts(e){F(this.#r,e,!0)}#i=P(I({}));get fileAttachmentCounts(){return V(this.#i)}set fileAttachmentCounts(e){F(this.#i,e,!0)}#a=P(I({}));get docStatuses(){return V(this.#a)}set docStatuses(e){F(this.#a,e,!0)}#o=P(null);get currentDocId(){return V(this.#o)}set currentDocId(e){F(this.#o,e,!0)}#s=P(``);get searchQuery(){return V(this.#s)}set searchQuery(e){F(this.#s,e,!0)}#c=P(null);get searchResults(){return V(this.#c)}set searchResults(e){F(this.#c,e,!0)}#l=P(I(new Set));get expandedCategories(){return V(this.#l)}set expandedCategories(e){F(this.#l,e,!0)}#u=P(I(new Set));get expandedFolders(){return V(this.#u)}set expandedFolders(e){F(this.#u,e,!0)}#d=P(I(wa(`ld-hide-categories`)));get hideCategories(){return V(this.#d)}set hideCategories(e){F(this.#d,e,!0)}#f=P(I(wa(`ld-hide-attachments`)));get hideAttachments(){return V(this.#f)}set hideAttachments(e){F(this.#f,e,!0)}#p=P(I(Ta()));get highlightStatusState(){return V(this.#p)}set highlightStatusState(e){F(this.#p,e,!0)}#m=P(!1);get exclusiveFolderExpansion(){return V(this.#m)}set exclusiveFolderExpansion(e){F(this.#m,e,!0)}#h=P(!1);get exclusiveCategoryExpansion(){return V(this.#h)}set exclusiveCategoryExpansion(e){F(this.#h,e,!0)}#g=P(400);get codeBlockMaxHeight(){return V(this.#g)}set codeBlockMaxHeight(e){F(this.#g,e,!0)}#_=P(!1);get imageRoundedCorners(){return V(this.#_)}set imageRoundedCorners(e){F(this.#_,e,!0)}#v=P(!1);get imageCentered(){return V(this.#v)}set imageCentered(e){F(this.#v,e,!0)}#y=P(!1);get imageBorder(){return V(this.#y)}set imageBorder(e){F(this.#y,e,!0)}#b=P(!1);get codeBlockLightTheme(){return V(this.#b)}set codeBlockLightTheme(e){F(this.#b,e,!0)}#x=P(`recent`);get sidebarSort(){return V(this.#x)}set sidebarSort(e){F(this.#x,e,!0)}#S=P(`normal`);get markerState(){return V(this.#S)}set markerState(e){F(this.#S,e,!0)}get markerActive(){return this.markerState===`active`}get markerHidden(){return this.markerState===`hidden`}initMarker(){let e=`normal`;try{e=localStorage.getItem(`ld-marker-state`)||`normal`}catch{}this.markerState=e===`active`?`active`:e===`hidden`?`hidden`:`normal`}toggleMarker(){this.markerState===`normal`?this.markerState=`active`:this.markerState===`active`?this.markerState=`hidden`:this.markerState=`normal`;try{localStorage.setItem(`ld-marker-state`,this.markerState)}catch{}return this.markerState}get filteredDocs(){if(!this.searchQuery)return this.allDocs;if(Array.isArray(this.searchResults))return this.searchResults;let e=e=>e.normalize(`NFD`).replace(/[̀-ͯ]/g,``).toLowerCase(),t=e(this.searchQuery);return this.allDocs.filter(n=>e(n.title).includes(t)||e(n.category).includes(t))}toggleHideCategories(){this.hideCategories=!this.hideCategories;try{localStorage.setItem(`ld-hide-categories`,this.hideCategories?`1`:`0`)}catch{}}toggleHideAttachments(){this.hideAttachments=!this.hideAttachments;try{localStorage.setItem(`ld-hide-attachments`,this.hideAttachments?`1`:`0`)}catch{}}cycleHighlightStatus(){this.highlightStatusState=(this.highlightStatusState+1)%3;try{localStorage.setItem(`ld-highlight-status`,String(this.highlightStatusState))}catch{}}toggleCategory(e){let t=new Set(this.expandedCategories);if(t.has(e))t.delete(e);else{if(this.exclusiveCategoryExpansion){let n=e.split(`|`).slice(0,-1).join(`|`);for(let e of[...t])e.split(`|`).slice(0,-1).join(`|`)===n&&t.delete(e)}t.add(e)}this.expandedCategories=t}toggleFolder(e){let t=new Set(this.expandedFolders);if(t.has(e)){t.delete(e);let n=`${e}|`;for(let e of[...t])e.startsWith(n)&&t.delete(e);let r=new Set(this.expandedCategories);for(let e of[...r])e.startsWith(n)&&r.delete(e);this.expandedCategories=r}else{if(this.exclusiveFolderExpansion){let n=e.split(`|`).slice(0,-1).join(`|`);for(let e of[...t])if(e.split(`|`).slice(0,-1).join(`|`)===n){t.delete(e);let n=`${e}|`;for(let e of[...t])e.startsWith(n)&&t.delete(e)}}t.add(e)}this.expandedFolders=t}revealDoc(e){let t=new Set(this.expandedFolders),n=new Set(this.expandedCategories),r=e.folder||[];for(let e=0;e<r.length;e++)t.add(r.slice(0,e+1).join(`|`));n.add([...r,e.category].join(`|`)),this.expandedFolders=t,this.expandedCategories=n}},Ea=/[\u0300-\u036f]/g,Da=/[^a-zA-Z0-9_.-]+/g;function Oa(e){return(e||``).normalize(`NFD`).replace(Ea,``).trim().replace(Da,`_`).replace(/_+/g,`_`).replace(/^_+|_+$/g,``)}function ka(){let e=``;return async function(t=``,n=`GET`,r){let i;try{i=await fetch(`/api/templates${t}`,{method:n,headers:{"Content-Type":`application/json`,...n!==`GET`&&e?{"If-Match":e}:{}},...r===void 0?{}:{body:JSON.stringify(r)}})}catch{throw Error(Y(`templates.errors.network`))}let a;try{a=await i.json()}catch{throw Error(Y(`templates.errors.storage_error`))}if(!i.ok){let e=`templates.errors.${a&&typeof a==`object`&&`error`in a&&typeof a.error==`string`?a.error:`storage_error`}`,t=Y(e);throw Error(t===e?Y(`templates.errors.storage_error`):t)}return e=i.headers.get(`ETag`)||``,a}}async function Aa(e=``,t=`GET`,n){return ka()(e,t,n)}function ja(e){return document.body.appendChild(e),{destroy(){e.remove()}}}var Ma=U(`<option> </option>`),Na=U(`<label for="new-doc-template" class="block text-xs font-medium"> </label> <select id="new-doc-template" class="w-full rounded border p-2 bg-white dark:bg-gray-800"><option> </option><!></select>`,1),Pa=U(`<p class="text-xs text-gray-500 dark:text-gray-400"> </p>`),Fa=U(`<p role="alert" class="text-xs text-red-500"> </p>`),Ia=U(`<option></option>`),La=U(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),Ra=U(`<p class="px-3 py-4 text-xs text-red-400 text-center"> </p>`),za=U(`<p class="px-3 py-3 text-xs text-gray-400 text-center"> </p>`),Ba=U(`<button class="w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="text-gray-400 shrink-0">📁</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button>`),Va=U(`<div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"> </button> <span class="font-mono text-xs text-gray-400 dark:text-gray-500 truncate flex-1 text-right"> </span></div> <div class="divide-y divide-gray-100 dark:divide-gray-800 max-h-40 overflow-y-auto"><!></div> <div class="border-t border-gray-200 dark:border-gray-700 flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800/50"><input type="text" class="flex-1 px-2 py-1 text-xs rounded border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-blue-400"/> <button class="text-xs px-2 py-1 rounded bg-gray-100 dark:bg-gray-800 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors shrink-0"> </button></div></div>`),Ha=U(`<p class="text-xs text-red-500"> </p>`),Ua=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-lg mx-4 p-6 space-y-4 max-h-[90vh] overflow-y-auto"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50">➕ <span> </span></h3> <div class="space-y-2"><label for="new-doc-template-folder" class="block text-xs font-medium"> </label> <select id="new-doc-template-folder" class="w-full rounded border p-2 bg-white dark:bg-gray-800"><option> </option><!></select> <!> <!> <!></div> <div class="space-y-1.5"><label for="new-doc-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="new-doc-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="new-doc-category" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="new-doc-category" type="text" list="new-doc-category-options" autocomplete="off" placeholder="GENERAL" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <datalist id="new-doc-category-options"></datalist></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex items-center gap-2"><span class="flex-1 px-3 py-2 text-xs rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-500 dark:text-gray-400 font-mono truncate"> </span> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">📁 <span> </span></button></div> <!></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <p class="text-xs bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 font-mono text-gray-600 dark:text-gray-300 break-all"> </p></div> <!> <div class="flex justify-end gap-3 pt-1"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`);function Wa(e,t){qe(t,!0);let n=P(I({version:1,folders:[]})),r=P(``),i=P(``),a=P(``),o=P(!1),s=N(()=>V(n).folders.find(e=>e.id===V(r)));function c(){let e=V(s)?.templates.find(e=>e.id===V(i));e&&F(m,e.name,!0)}let l=P(``),u=P(`YYYY_MM_DD_HH_mm_[Category]_title`),d=P(null),f=P(null),p=P(``),m=P(``),h=P(``),g=P(`/ (root)`),_=P(!1),v=P(``),y=P(I([])),b=P(!1),x=P(!1),S=P(``),C=P(I([])),w=P(``),T=P(!1),E=P(null);function D(e){return(e||``).normalize(`NFD`).replace(/[̀-ͯ]/g,``).toUpperCase().replace(/[^A-Z0-9_-]/g,``)}function ee(e){let t=V(l);return e===t?``:e.startsWith(t+`/`)?e.slice(t.length+1):e}let te=!1;kn(()=>{t.open&&!te?(te=!0,O()):t.open||(te=!1)});async function O(){F(o,!0),F(r,``),F(i,``),F(a,``);try{let e=await fetch(`/api/config`).then(e=>e.json());F(l,e.docsFolder||``,!0),F(u,e.filenamePattern||`YYYY_MM_DD_HH_mm_[Category]_title`,!0)}catch{F(l,``),F(u,`YYYY_MM_DD_HH_mm_[Category]_title`)}let e=X.currentDocId&&X.allDocs.find(e=>e.id===X.currentDocId),s=D(e&&e.category||`General`)||`GENERAL`,v=``;if(X.currentDocId){let e=decodeURIComponent(X.currentDocId);if(!e.startsWith(`/`)){let t=e.split(`/`);t.length>1&&(v=t.slice(0,-1).join(`/`))}}let y=v?V(l)+`/`+v:``;F(p,v,!0),F(d,y||null,!0),F(f,null),k(),F(m,``),F(h,s,!0),F(g,v?`/`+v:`/ (root)`,!0),F(_,!1),F(S,``),F(w,``),F(T,!1);try{if(F(n,await Aa(),!0),t.initialTemplateId){let e=V(n).folders.find(e=>e.templates.some(e=>e.id===t.initialTemplateId));if(!e)throw Error(Y(`templates.errors.template_not_found`));F(r,e.id,!0),F(i,t.initialTemplateId,!0),c()}}catch(e){F(a,e instanceof Error?e.message:String(e),!0)}finally{F(o,!1)}setTimeout(()=>V(E)?.focus(),50)}function k(){let e=new Set;(X.allDocs||[]).forEach(t=>{let n=D(t.category||``);n&&e.add(n)}),F(C,Array.from(e).sort((e,t)=>e.localeCompare(t)),!0)}function ne(){let e=D(V(h));V(h)!==e&&F(h,e,!0)}function A(e){let t=e.currentTarget,n=Oa(t.value);t.value!==n&&(t.value=n),V(S)!==n&&F(S,n,!0)}let re=N(()=>{let e=V(m).trim();if(!e)return Y(`modal.new_doc.title_placeholder`);let t=D(V(h))||`GENERAL`,n=new Date,r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,`0`),a=String(n.getDate()).padStart(2,`0`),o=String(n.getHours()).padStart(2,`0`),s=String(n.getMinutes()).padStart(2,`0`),c=e.toLowerCase().replace(/\s+/g,`_`).replace(/[^a-z0-9_]/g,``).replace(/_+/g,`_`).replace(/^_|_$/g,``)||`document`,l=V(u).replace(`YYYY`,String(r)).replace(`MM`,i).replace(`DD`,a).replace(`HH`,o).replace(`mm`,s).replace(/\[Category\]/i,`[${t}]`).replace(/(?<![a-z0-9])(?:title_words|title)(?![a-z0-9])/i,c)+`.md`;return V(p)?V(p)+`/`+l:l});function ie(){F(_,!V(_)),V(_)&&ae(V(d)||V(l))}async function ae(e){F(b,!0),F(x,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(d,t.current,!0),F(f,t.parent,!0),F(p,ee(t.current),!0),F(v,t.current,!0),F(g,V(p)?`/`+V(p):`/ (root)`,!0),F(y,t.dirs||[],!0)}catch{F(x,!0),F(y,[],!0)}finally{F(b,!1)}}let oe=N(()=>V(d)===V(l));function se(){V(d)!==V(l)&&V(f)&&ae(V(f))}function ce(){let e=Oa(V(S));if(!e)return;let t=V(d)||V(l);if(t===V(l)&&(e===`files`||e===`images`)){F(w,Y(`modal.new_folder.error_reserved`),!0);return}F(w,``);let n=(ee(t)?ee(t)+`/`:``)+e;F(p,n),F(g,`/`+n),F(S,``)}async function le(){if(V(T)||V(o)||t.initialTemplateId&&V(a))return;let e=V(m).trim(),n=D(V(h))||`GENERAL`;if(!e){F(w,Y(`modal.new_doc.error_empty_title`),!0);return}F(w,``),F(T,!0);try{let r=await fetch(`/api/documents`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:e,category:n,folder:V(p),...V(i)?{templateId:V(i)}:{}})});if(!r.ok){let e=await r.json();throw Error(V(i)&&[`template_not_found`,`storage_error`].includes(e.error)?Y(`templates.errors.${e.error}`):e.error||`Creation failed`)}let a=await r.json();t.onclose(),t.onsuccess(a.id)}catch(e){F(w,Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e))),F(T,!1)}}function ue(e){e.key===`Enter`&&le(),e.key===`Escape`&&t.onclose()}var de=Wr(),fe=R(de),pe=e=>{var l=Ua(),u=L(l),d=L(u),f=z(L(d)),p=L(f,!0);j(f),j(d);var D=z(d,2),ee=L(D),te=L(ee,!0);j(ee);var O=z(ee,2),k=L(O),de=L(k,!0);j(k),k.value=k.__value=``,q(z(k),17,()=>V(n).folders,e=>e.id,(e,t)=>{var n=Ma(),r=L(n,!0);j(n);var i={};B(()=>{G(r,V(t).name),i!==(i=V(t).id)&&(n.value=(n.__value=V(t).id)??``)}),W(e,n)}),j(O);var fe=z(O,2),pe=e=>{var t=Na(),n=R(t),r=L(n,!0);j(n);var a=z(n,2),o=L(a),l=L(o,!0);j(o),o.value=o.__value=``,q(z(o),17,()=>V(s).templates,e=>e.id,(e,t)=>{var n=Ma(),r=L(n,!0);j(n);var i={};B(()=>{G(r,V(t).name),i!==(i=V(t).id)&&(n.value=(n.__value=V(t).id)??``)}),W(e,n)}),j(a),B((e,t)=>{G(r,e),G(l,t)},[()=>Y(`templates.template`),()=>Y(`templates.blank`)]),H(`change`,a,c),Ci(a,()=>V(i),e=>F(i,e)),W(e,t)};K(fe,e=>{V(s)&&e(pe)});var me=z(fe,2),he=e=>{var t=Pa(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.independent`)]),W(e,t)};K(me,e=>{V(i)&&e(he)});var ge=z(me,2),_e=e=>{var t=Fa(),n=L(t,!0);j(t),B(()=>G(n,V(a))),W(e,t)};K(ge,e=>{V(a)&&e(_e)}),j(D);var ve=z(D,2),ye=L(ve),be=L(ye,!0);j(ye);var xe=z(ye,2);ki(xe),Ui(xe,e=>F(E,e),()=>V(E)),j(ve);var Se=z(ve,2),Ce=L(Se),we=L(Ce,!0);j(Ce);var Te=z(Ce,2);ki(Te);var Ee=z(Te,2);q(Ee,20,()=>V(C),e=>e,(e,t)=>{var n=Ia(),r={};B(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),W(e,n)}),j(Ee),j(Se);var De=z(Se,2),Oe=L(De),ke=L(Oe,!0);j(Oe);var Ae=z(Oe,2),je=L(Ae),Me=L(je,!0);j(je);var Ne=z(je,2),Pe=z(L(Ne)),Fe=L(Pe,!0);j(Pe),j(Ne),j(Ae);var Ie=z(Ae,2),Le=e=>{var t=Va(),n=L(t),r=L(n),i=L(r);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n);var s=z(n,2),c=L(s),l=e=>{var t=La(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},u=e=>{var t=Ra(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.cannot_read_dir`)]),W(e,t)},d=e=>{var t=za(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`modal.new_doc.no_subfolders`)]),W(e,t)},f=e=>{var t=Wr();q(R(t),17,()=>V(y),e=>e.path,(e,t)=>{var n=Ba(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>ae(V(t).path)),W(e,n)}),W(e,t)};K(c,e=>{V(b)?e(l):V(x)?e(u,1):V(y).length===0?e(d,2):e(f,-1)}),j(s);var p=z(s,2),m=L(p);ki(m);var h=z(m,2),g=L(h,!0);j(h),j(p),j(t),B((e,t,n)=>{r.disabled=V(oe),G(i,`↑ ${e??``}`),G(o,V(v)),J(m,`placeholder`,t),G(g,n)},[()=>Y(`common.up`),()=>Y(`modal.new_doc.new_folder_placeholder`),()=>Y(`modal.new_doc.create_folder_btn`)]),H(`click`,r,se),H(`input`,m,A),H(`keydown`,m,e=>{e.key===`Enter`&&ce()}),Fi(m,()=>V(S),e=>F(S,e)),H(`click`,h,ce),W(e,t)};K(Ie,e=>{V(_)&&e(Le)}),j(De);var Re=z(De,2),ze=L(Re),Be=L(ze,!0);j(ze);var Ve=z(ze,2),He=L(Ve,!0);j(Ve),j(Re);var Ue=z(Re,2),We=e=>{var t=Ha(),n=L(t,!0);j(t),B(()=>G(n,V(w))),W(e,t)};K(Ue,e=>{V(w)&&e(We)});var Ge=z(Ue,2),Ke=L(Ge),qe=L(Ke,!0);j(Ke);var Je=z(Ke,2),Ye=L(Je,!0);j(Je),j(Ge),j(u),j(l),B((e,n,r,i,s,c,l,u,d,f,m)=>{G(p,e),G(te,n),O.disabled=V(o),G(de,r),G(be,i),J(xe,`placeholder`,s),G(we,c),G(ke,l),G(Me,V(g)),G(Fe,u),G(Be,d),G(He,V(re)),G(qe,f),Je.disabled=V(T)||V(o)||!!(t.initialTemplateId&&V(a)),G(Ye,m)},[()=>Y(`modal.new_doc.title`),()=>Y(`templates.folder`),()=>Y(`templates.blank`),()=>Y(`modal.new_doc.title_label`),()=>Y(`modal.new_doc.title_placeholder`),()=>Y(`modal.new_doc.category_label`),()=>Y(`modal.new_doc.location_label`),()=>Y(`modal.new_doc.browse_btn`),()=>Y(`modal.new_doc.filename_label`),()=>Y(`common.cancel`),()=>V(T)?Y(`modal.new_folder.creating_btn`):Y(`common.create`)]),H(`click`,l,e=>{e.target===e.currentTarget&&t.onclose()}),H(`change`,O,()=>{F(i,``)}),Ci(O,()=>V(r),e=>F(r,e)),H(`keydown`,xe,ue),Fi(xe,()=>V(m),e=>F(m,e)),H(`input`,Te,ne),H(`keydown`,Te,ue),Fi(Te,()=>V(h),e=>F(h,e)),H(`click`,Ne,ie),H(`click`,Ke,function(...e){t.onclose?.apply(this,e)}),H(`click`,Je,le),W(e,l)};K(fe,e=>{t.open&&e(pe)}),W(e,de),Je()}Pr([`click`,`change`,`keydown`,`input`]);var Ga=U(`<p class="svelte-z7fdvl"> </p>`),Ka=U(`<p role="alert" class="svelte-z7fdvl"> </p>`),qa=U(`<button class="template svelte-z7fdvl"> <small class="svelte-z7fdvl"> </small></button>`),Ja=U(`<button class="template svelte-z7fdvl"> </button>`),Ya=U(`<button class="folder svelte-z7fdvl"> <span class="svelte-z7fdvl"> </span></button> <!>`,1),Xa=U(`<div class="template-menu-layer svelte-z7fdvl"><button class="backdrop svelte-z7fdvl"></button> <div class="dropdown svelte-z7fdvl" role="dialog" data-testid="templates-dropdown"><label for="quick-template-search" class="svelte-z7fdvl"> </label><input id="quick-template-search" type="search" class="svelte-z7fdvl"/> <!> <a class="manage svelte-z7fdvl" data-testid="manage-templates" href="/templates"> </a></div></div>`),Za=U(`<div class="creation-layer svelte-z7fdvl"><!></div>`),Qa=U(`<button class="ghost-button" data-testid="templates-menu" aria-haspopup="dialog"> </button> <!> <!>`,1);function $a(e,t){qe(t,!0);let n=P(!1),r=P(void 0),i=P(I({version:1,folders:[]})),a=P(!1),o=P(``),s=P(``),c=P(``),l=N(()=>V(i).folders.flatMap(e=>e.templates.map(t=>({...t,folderName:e.name}))).filter(e=>e.name.toLocaleLowerCase().includes(V(c).toLocaleLowerCase()))),u,d=P(0),f=P(0);async function p(){if(F(n,!V(n)),!V(n))return;let e=u.getBoundingClientRect();F(d,e.bottom+6),F(f,Math.max(8,window.innerWidth-e.right),!0),F(a,!0),F(o,``);try{F(i,await Aa(),!0)}catch(e){F(o,String(e instanceof Error?e.message:e),!0)}finally{F(a,!1)}}var m=Qa();Nr(`keydown`,on,e=>{e.key===`Escape`&&F(n,!1)});var h=R(m),g=L(h,!0);j(h),Ui(h,e=>u=e,()=>u);var _=z(h,2),v=e=>{var t=Xa(),u=L(t),p=z(u,2);let m;var h=L(p),g=L(h,!0);j(h);var _=z(h);ki(_);var v=z(_,2),y=e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},b=e=>{var t=Ka(),n=L(t,!0);j(t),B(()=>G(n,V(o))),W(e,t)},x=e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.empty`)]),W(e,t)},S=e=>{var t=Wr();q(R(t),17,()=>V(l),e=>e.id,(e,t)=>{var i=qa(),a=L(i,!0),o=z(a),s=L(o,!0);j(o),j(i),B(()=>{G(a,V(t).name),G(s,V(t).folderName)}),H(`click`,i,()=>{F(r,V(t).id,!0),F(n,!1)}),W(e,i)},e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.no_results`)]),W(e,t)}),W(e,t)},C=e=>{var t=Wr();q(R(t),17,()=>V(i).folders,e=>e.id,(e,t)=>{var i=Ya(),a=R(i),o=L(a),c=z(o),l=L(c,!0);j(c),j(a);var u=z(a,2),d=e=>{var i=Wr();q(R(i),17,()=>V(t).templates,e=>e.id,(e,t)=>{var i=Ja(),a=L(i,!0);j(i),B(()=>G(a,V(t).name)),H(`click`,i,()=>{F(r,V(t).id,!0),F(n,!1)}),W(e,i)},e=>{var t=Ga(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.folder_empty`)]),W(e,t)}),W(e,i)};K(u,e=>{V(s)===V(t).id&&e(d)}),B(()=>{J(a,`aria-expanded`,V(s)===V(t).id),G(o,`📁 ${V(t).name??``} `),G(l,V(s)===V(t).id?`▾`:`▸`)}),H(`click`,a,()=>F(s,V(s)===V(t).id?``:V(t).id,!0)),W(e,i)}),W(e,t)};K(v,e=>{V(a)?e(y):V(o)?e(b,1):V(i).folders.length?V(c)?e(S,3):e(C,-1):e(x,2)});var w=z(v,2),T=L(w,!0);j(w),j(p),li(p,(e,t)=>Ca?.(e,t),()=>()=>F(n,!1)),j(t),li(t,e=>ja?.(e)),B((e,t,n,r,i)=>{J(u,`aria-label`,e),J(p,`aria-label`,t),m=bi(p,``,m,{top:`${V(d)}px`,right:`${V(f)}px`}),G(g,n),J(_,`placeholder`,r),G(T,i)},[()=>Y(`common.close`),()=>Y(`templates.menu`),()=>Y(`templates.search`),()=>Y(`templates.search_placeholder`),()=>Y(`templates.open_library`)]),H(`click`,u,()=>F(n,!1)),Fi(_,()=>V(c),e=>F(c,e)),W(e,t)};K(_,e=>{V(n)&&e(v)});var y=z(_,2),b=e=>{var t=Za();Wa(L(t),{open:!0,get initialTemplateId(){return V(r)},onclose:()=>F(r,void 0),onsuccess:e=>{window.location.href=`/?doc=`+encodeURIComponent(e)}}),j(t),li(t,e=>ja?.(e)),W(e,t)};K(y,e=>{V(r)&&e(b)}),B(e=>{J(h,`aria-expanded`,V(n)),G(g,e)},[()=>Y(`templates.menu`)]),H(`click`,h,p),W(e,m),Je()}Pr([`click`]);var eo=`living-documentation:persistent-toast`,to=2600,no=900*1e3,ro=new Map;function io(){return`toast-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function ao(){let e=document.getElementById(`workspaceToastStack`);if(e)return e;document.getElementById(`workspaceToast`)?.remove(),document.getElementById(`workspaceToastIcon`)?.remove(),document.getElementById(`workspaceToastMessage`)?.remove();let t=document.createElement(`div`);return t.id=`workspaceToastStack`,t.className=`workspace-toast-stack`,t.setAttribute(`role`,`status`),t.setAttribute(`aria-live`,`polite`),document.body.append(t),t}function oo(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return typeof t.id==`string`&&typeof t.message==`string`&&[`success`,`error`,`loading`].includes(String(t.state))&&(t.expiresAt===null||typeof t.expiresAt==`number`)&&(t.href===void 0||typeof t.href==`string`)&&(t.linkLabel===void 0||typeof t.linkLabel==`string`)}function so(){let e=localStorage.getItem(eo);if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t))return t.filter(oo);if(typeof t==`object`&&t&&!Array.isArray(t)){let e=t;if(typeof e.message==`string`&&[`success`,`error`,`loading`].includes(String(e.state))&&(e.expiresAt===null||typeof e.expiresAt==`number`))return[{id:io(),message:e.message,state:e.state,expiresAt:e.expiresAt}]}}catch{return[]}return[]}function co(e){e.length?localStorage.setItem(eo,JSON.stringify(e)):localStorage.removeItem(eo)}function lo(e){let t=ro.get(e);t&&(clearTimeout(t),ro.delete(e))}function uo(e){lo(e);let t=so().filter(t=>t.id!==e);co(t),ho(t),go(t)}function fo(e){return e===`loading`?`⟳`:e===`error`?`!`:`✓`}function po(e){let t=Date.now();return e.filter(e=>!e.expiresAt||e.expiresAt>t)}function mo(e){let t=document.createElement(`div`);t.className=`workspace-toast`,t.dataset.state=e.state,t.dataset.toastId=e.id;let n=document.createElement(`span`);n.className=`toast-icon`,n.setAttribute(`aria-hidden`,`true`),n.textContent=fo(e.state);let r=document.createElement(`div`);r.className=`workspace-toast-body`;let i=document.createElement(`p`);if(i.className=`workspace-toast-message`,i.textContent=e.message,r.append(i),e.href){let t=document.createElement(`a`);t.className=`workspace-toast-link`,t.href=e.href,t.textContent=e.linkLabel||`Open`,r.append(t)}let a=document.createElement(`button`);return a.className=`workspace-toast-close`,a.type=`button`,a.setAttribute(`aria-label`,`Close notification`),a.textContent=`×`,a.addEventListener(`click`,()=>uo(e.id)),t.append(n,r,a),t}function ho(e){let t=ao(),n=po(e);t.hidden=n.length===0;let r=new Set(n.map(e=>e.id));for(let e of Array.from(t.querySelectorAll(`[data-toast-id]`)))r.has(e.dataset.toastId??``)||e.remove();for(let e of n){let n=Array.from(t.querySelectorAll(`[data-toast-id]`)).find(t=>t.dataset.toastId===e.id);if(n){let t=n.querySelector(`.workspace-toast-message`);if(t&&t.textContent!==e.message&&(t.textContent=e.message),n.dataset.state!==e.state){n.dataset.state=e.state;let t=n.querySelector(`.toast-icon`);t&&(t.textContent=fo(e.state))}let r=n.querySelector(`.workspace-toast-link`);if(e.href)if(r)r.href=e.href,r.textContent=e.linkLabel||`Open`;else{let t=document.createElement(`a`);t.className=`workspace-toast-link`,t.href=e.href,t.textContent=e.linkLabel||`Open`,n.querySelector(`.workspace-toast-body`)?.append(t)}else r&&r.remove()}else t.append(mo(e))}n.length!==e.length&&co(n)}function go(e){for(let t of ro.keys())e.some(e=>e.id===t)||lo(t);for(let t of e){if(lo(t.id),!t.expiresAt)continue;let e=t.expiresAt-Date.now();if(e<=0){uo(t.id);continue}ro.set(t.id,window.setTimeout(()=>uo(t.id),e))}}function _o(e){let t=po(so()),n=t.findIndex(t=>t.id===e.id)>=0?t.map(t=>t.id===e.id?e:t):[...t,e];return co(n),ho(n),go(n),e.id}function vo(){let e=po(so());co(e),ho(e),go(e)}function yo(e,t=io()){let n=typeof t==`string`?{id:t}:t;return _o({id:n.id??io(),message:e,state:`loading`,expiresAt:Date.now()+no,href:n.href,linkLabel:n.linkLabel})}function bo(e,t=`success`,n=to,r=io()){let i=typeof r==`string`?{id:r}:r;return _o({id:i.id??io(),message:e,state:t,expiresAt:Date.now()+n,href:i.href,linkLabel:i.linkLabel})}var xo=`/api/workspace`;async function So(){try{let e=await fetch(xo,{headers:{Accept:`application/json`}});if(!e.ok)throw Error(`Workspace load failed with ${e.status}`);return await e.json()}catch(e){return console.warn(`[workspace] load failed`,e),null}}async function Co(e){try{let t=await fetch(xo,{method:`PUT`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(`Workspace save failed with ${t.status}`);return await t.json()}catch(e){return console.warn(`[workspace] save failed`,e),null}}async function wo(e){try{return await(await fetch(`${xo}/list-models`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)})).json()}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Failed to list models`}}}async function To(e){try{return await(await fetch(`${xo}/mcp-inventory`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)})).json()}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Failed to list MCP inventory`}}}async function Eo(e,t){try{let n=await fetch(`${xo}/run-agent-stream`,{method:`POST`,headers:{Accept:`application/x-ndjson, application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)});if(!n.ok)return{ok:!1,error:await n.json().then(e=>typeof e?.error==`string`?e.error:`Agent run failed`).catch(()=>`Agent run failed`)};if(!n.body)return{ok:!1,error:`Agent stream is unavailable`};let r=new TextDecoder,i=n.body.getReader(),a=``,o=``,s=``,c=e=>{if(!e.trim())return;let n=JSON.parse(e);t(n),n.type===`final`&&typeof n.content==`string`&&(o=n.content),n.type===`error`&&(s=n.message||`Agent run failed`)};for(;;){let{value:e,done:t}=await i.read();if(t)break;a+=r.decode(e,{stream:!0});let n=a.split(`
|
|
3
|
+
`);a=n.pop()??``;for(let e of n)c(e),await new Promise(e=>setTimeout(e,0))}return a+=r.decode(),c(a),s?{ok:!1,error:s}:o?{ok:!0,content:o}:{ok:!1,error:`Agent did not produce a response`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Agent run failed`}}}async function Do(e,t,n){try{let r=await fetch(`${xo}/run-agent-document-stream`,{method:`POST`,headers:{Accept:`application/x-ndjson, application/json`,"Content-Type":`application/json`},body:JSON.stringify({agentId:e,userInput:t})});if(!r.ok)return{ok:!1,error:await r.json().then(e=>typeof e?.error==`string`?e.error:`Agent run failed`).catch(()=>`Agent run failed`)};if(!r.body)return{ok:!1,error:`Agent stream is unavailable`};let i=new TextDecoder,a=r.body.getReader(),o=``,s,c=``,l=!1,u=e=>{if(!e.trim())return;let t=JSON.parse(e);n(t),t.type===`document`&&t.document&&(s=t.document),t.type===`error`&&(c=t.message||`Agent run failed`,l=!0)};for(;;){let{value:e,done:t}=await a.read();if(t)break;o+=i.decode(e,{stream:!0});let n=o.split(`
|
|
4
|
+
`);o=n.pop()??``;for(let e of n)u(e),await new Promise(e=>setTimeout(e,0))}return o+=i.decode(),u(o),s?{ok:s.ok,document:s,error:l?c:void 0}:c?{ok:!1,error:c}:{ok:!1,error:`Agent did not produce a response`}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Agent run failed`}}}async function Oo(e){try{let t=await fetch(`${xo}/test-llm`,{method:`POST`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify(e)}),n=await t.json();return{...n,ok:t.ok&&n.ok===!0}}catch(e){return{ok:!1,error:e instanceof Error?e.message:`Connection test failed`}}}var ko=U(`<p class="agents-dropdown-empty svelte-f11yds"> </p>`),Ao=U(`<span class="agents-item-badge svelte-f11yds"> </span>`),jo=U(`<span class="agents-item-badge agents-item-badge--input svelte-f11yds"> </span>`),Mo=U(`<button type="button" role="menuitem"><span class="agents-item-name svelte-f11yds"> </span> <!></button>`),No=U(`<div class="agents-group svelte-f11yds"><button type="button" class="agents-group-toggle svelte-f11yds"><span class="agents-group-label svelte-f11yds"> </span> <span>›</span></button> <!></div>`),Po=U(`<div class="agents-backdrop svelte-f11yds"></div> <div class="agents-dropdown svelte-f11yds" role="menu"><!></div>`,1),Fo=U(`<div class="confirm-overlay agents-modal-overlay svelte-f11yds"><section class="confirm-dialog" role="dialog" aria-modal="true"><h2> </h2> <p class="confirm-message"> </p> <div class="field-group" style="margin-top:1rem"><label class="field-label" for="agents-menu-input"> </label> <textarea id="agents-menu-input" class="field-input"></textarea></div> <footer class="confirm-actions"><button class="secondary-button" type="button"> </button> <button class="btn-primary" type="button"> </button></footer></section></div>`),Io=U(`<button type="button" class="ghost-button" aria-haspopup="true">Agents</button> <!> <!>`,1);function Lo(e,t){qe(t,!0);let n=600*1e3,r=P(!1),i=P(I([])),a=P(!1),o=P(!1),s=P(I(new Set)),c=P(null),l=P(``),u=P(0),d=P(0),f=null;function p(e){return document.body.appendChild(e),{destroy(){e.parentNode&&e.parentNode.removeChild(e)}}}function m(){if(!f)return;let e=f.getBoundingClientRect();F(u,e.bottom+6),F(d,window.innerWidth-e.right)}function h(e){let t=e.provider;return!(!t||!t.config?.model||!e.config?.systemPrompt||e.config?.requiresUserInput&&!e.config?.userInputDescription?.trim())}async function g(){if(!(V(a)||V(o))){F(o,!0);try{let e=await fetch(`/api/workspace`,{headers:{Accept:`application/json`}});if(!e.ok)return;let t=await e.json(),n=Array.isArray(t.entities)?t.entities:[],r=new Map(n.map(e=>[e.id,e])),o=n.filter(e=>e.kind===`llm`),s=n.filter(e=>e.kind===`agent`).map(e=>({...e,provider:r.get(e.parentId??``)}));F(i,o.map(e=>({llm:e,agents:s.filter(t=>t.parentId===e.id)})).filter(e=>e.agents.length>0),!0),F(a,!0)}catch{}finally{F(o,!1)}}}function _(){V(r)||m(),F(r,!V(r)),V(r)&&g()}function v(e){let t=new Set(V(s));t.has(e)?t.delete(e):t.add(e),F(s,t,!0)}function y(){F(r,!1)}function b(e){h(e)&&(y(),e.config?.requiresUserInput?(F(c,e,!0),F(l,``)):w(e.id,``))}function x(){F(c,null),F(l,``)}async function S(){if(!V(c)||!V(l).trim())return;let e=V(c).id,t=V(l);F(c,null),F(l,``),await w(e,t)}function C(e,t,n){let r=e.turn==null?``:String(e.turn);switch(e.type){case`model_call`:return Y(`agents.status.model`,{agent:t,turn:r,model:n});case`tool_call`:return Y(`agents.status.tool`,{agent:t,turn:r,tool:e.toolName??``});case`tool_result`:return Y(`agents.status.tool_done`,{agent:t,turn:r,tool:e.toolName??``,detail:e.detail??``});case`fallback`:return Y(`agents.status.fallback`,{agent:t,turn:r});default:return null}}async function w(e,t){let r=V(i).flatMap(e=>e.agents).find(t=>t.id===e),a=r?.label??``,o=r?.config?.model||r?.provider?.config?.model||``,s=o.includes(`/`)?o.split(`/`).pop()??o:o,c=yo(`${Y(`agents.loading`)} ${a}`.trim()),l=[],u=`${Y(`agents.loading`)} ${a}`.trim(),d=!1,f=async()=>{if(!d){for(d=!0;l.length>0;){let e=l.shift();yo(e,c),u=e,await new Promise(e=>setTimeout(e,750))}d=!1}},p=e=>{e!==(l.length>0?l[l.length-1]:u)&&(l.push(e),f())};try{let r=await Do(e,t,e=>{let t=C(e,a,s);if(t)p(t);else if(e.type===`final`&&e.content){let t=e.content.replace(/[\n\r]+/g,` `).trim();p(t.length>120?`${t.slice(0,120)}…`:t)}});for(;d||l.length>0;)await new Promise(e=>setTimeout(e,750/2));r.ok&&r.document?(bo(`${Y(`agents.success`)} ${r.document.filename}`.trim(),`success`,n,{id:c,href:`/?doc=${encodeURIComponent(r.document.id)}`,linkLabel:Y(`agents.open_document`)}),window.dispatchEvent(new CustomEvent(`ld:documents-changed`))):bo(r.error??Y(`agents.run_failed`),`error`,n,r.document?.id?{id:c,href:`/?doc=${encodeURIComponent(r.document.id)}`,linkLabel:Y(`agents.open_document`)}:c)}catch(e){bo(e instanceof Error?e.message:Y(`agents.run_failed`),`error`,n,c)}}var T=Io(),E=R(T);Ui(E,e=>f=e,()=>f);var D=z(E,2),ee=e=>{var t=Po(),n=R(t);li(n,e=>p?.(e));var r=z(n,2),a=L(r),c=e=>{var t=ko(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},l=e=>{var t=ko(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`agents.empty`)]),W(e,t)},f=e=>{var t=Wr();q(R(t),17,()=>V(i),Qr,(e,t)=>{let n=N(()=>V(s).has(V(t).llm.id));var r=No(),i=L(r),a=L(i),o=L(a,!0);j(a);var c=z(a,2);let l;j(i);var u=z(i,2),d=e=>{var n=Wr();q(R(n),17,()=>V(t).agents,Qr,(e,t)=>{let n=N(()=>h(V(t)));var r=Mo();let i;var a=L(r),o=L(a,!0);j(a);var s=z(a,2),c=e=>{var t=Ao(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`agents.not_ready`)]),W(e,t)},l=e=>{var t=jo(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`agents.requires_input`)]),W(e,t)};K(s,e=>{V(n)?V(t).config?.requiresUserInput&&e(l,1):e(c)}),j(r),B(()=>{i=vi(r,1,`agents-item svelte-f11yds`,null,i,{"agents-item--disabled":!V(n)}),r.disabled=!V(n),G(o,V(t).label)}),H(`click`,r,()=>b(V(t))),W(e,r)}),W(e,n)};K(u,e=>{V(n)&&e(d)}),j(r),B(()=>{J(i,`aria-expanded`,V(n)),G(o,V(t).llm.label),l=vi(c,1,`agents-group-chevron svelte-f11yds`,null,l,{"agents-group-chevron--open":V(n)})}),H(`click`,i,()=>v(V(t).llm.id)),W(e,r)}),W(e,t)};K(a,e=>{V(o)?e(c):V(i).length===0?e(l,1):e(f,-1)}),j(r),li(r,e=>p?.(e)),B(()=>bi(r,`top:${V(u)??``}px;right:${V(d)??``}px`)),H(`click`,n,y),W(e,t)};K(D,e=>{V(r)&&e(ee)});var te=z(D,2),O=e=>{var t=Fo(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),u=L(s),d=L(u,!0);j(u);var f=z(u,2);yn(f),J(f,`rows`,4),j(s);var m=z(s,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=L(_,!0);j(_),j(m),j(n),j(t),li(t,e=>p?.(e)),B((e,t,n,r,a,s)=>{G(i,V(c).label),G(o,e),G(d,t),J(f,`placeholder`,n),G(g,r),_.disabled=a,G(v,s)},[()=>V(c).config?.userInputDescription?.trim()||Y(`agents.input_hint`),()=>Y(`agents.input_title`),()=>Y(`agents.input_hint`),()=>Y(`common.cancel`),()=>!V(l).trim(),()=>Y(`agents.run`)]),H(`click`,t,e=>{e.target===e.currentTarget&&x()}),Fi(f,()=>V(l),e=>F(l,e)),H(`click`,h,x),H(`click`,_,S),W(e,t)};K(te,e=>{V(c)&&e(O)}),B(()=>J(E,`aria-expanded`,V(r))),H(`click`,E,_),W(e,T),Je()}Pr([`click`]);var Ro,zo;function Bo(e){return Ro=e,()=>{Ro===e&&(Ro=void 0)}}async function Vo(){return Ro?(zo||=Ro().finally(()=>{zo=void 0}),zo):!0}var Ho=new class{#e=P(I([]));get items(){return V(this.#e)}set items(e){F(this.#e,e,!0)}has(e){return this.items.some(t=>t.id===e)}syncFromConfig(e){let t=Array.isArray(e?.favorites)?e.favorites:[];this.items=t.filter(e=>!!e&&typeof e==`object`&&typeof e.id==`string`).map(e=>({id:e.id,title:typeof e.title==`string`?e.title:``}))}toggle(e){let t=this.has(e.id)?this.items.filter(t=>t.id!==e.id):[...this.items,{id:e.id,title:e.title}];this.persist(t)}remove(e){this.has(e)&&this.persist(this.items.filter(t=>t.id!==e))}reorder(e,t){let n=this.items.findIndex(t=>t.id===e),r=this.items.findIndex(e=>e.id===t);if(n<0||r<0||n===r)return;let i=[...this.items],[a]=i.splice(n,1);i.splice(r,0,a),this.persist(i)}async persist(e){let t=this.items;this.items=e;try{let t=await fetch(`/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({favorites:e})});if(!t.ok)throw Error(String(t.status))}catch{this.items=t}}},Uo=U(`<p class="favorites-empty svelte-cpc44f"> </p>`),Wo=U(`<div draggable="true"><span class="favorites-grip svelte-cpc44f" aria-hidden="true"><i class="fa-solid fa-grip-vertical"></i></span> <button type="button" class="favorites-item svelte-cpc44f" role="menuitem"><i class="fa-solid fa-star favorites-item-star svelte-cpc44f" aria-hidden="true"></i> <span class="favorites-item-name svelte-cpc44f"> </span></button> <button type="button" class="favorites-remove svelte-cpc44f">×</button></div>`),Go=U(`<div class="favorites-backdrop svelte-cpc44f"></div> <div class="favorites-dropdown svelte-cpc44f" role="menu"><!></div>`,1),Ko=U(`<button type="button" class="ghost-button" aria-haspopup="true"><i class="fa-solid fa-star" aria-hidden="true" style="margin-right:6px;color:#f59e0b"></i> </button> <!>`,1);function qo(e,t){qe(t,!0);let n=P(!1),r=P(0),i=P(0),a=null;function o(e){return document.body.appendChild(e),{destroy(){e.parentNode&&e.parentNode.removeChild(e)}}}function s(){if(!a)return;let e=a.getBoundingClientRect();F(r,e.bottom+6),F(i,window.innerWidth-e.right)}function c(){V(n)||s(),F(n,!V(n))}function l(){F(n,!1)}async function u(e){if(!await Vo())return;l();let t=`/?doc=${encodeURIComponent(e)}`;history.pushState(null,``,t),window.dispatchEvent(new PopStateEvent(`popstate`))}let d=P(null),f=P(null);function p(e,t){F(d,t,!0),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t))}function m(e,t){V(d)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),F(f,t,!0))}function h(e,t){e.preventDefault(),V(d)&&V(d)!==t&&Ho.reorder(V(d),t),F(d,null),F(f,null)}function g(){F(d,null),F(f,null)}var _=Ko(),v=R(_),y=z(L(v),1,!0);j(v),Ui(v,e=>a=e,()=>a);var b=z(v,2),x=e=>{var t=Go(),n=R(t);li(n,e=>o?.(e));var a=z(n,2),s=L(a),c=e=>{var t=Uo(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`favorites.empty`)]),W(e,t)},_=e=>{var t=Wr();q(R(t),17,()=>Ho.items,e=>e.id,(e,t)=>{var n=Wo();let r;var i=L(n),a=z(i,2),o=z(L(a),2),s=L(o,!0);j(o),j(a);var c=z(a,2);j(n),B((e,o,l)=>{r=vi(n,1,`favorites-row svelte-cpc44f`,null,r,{"favorites-row--over":V(f)===V(t).id&&V(d)!==V(t).id,"favorites-row--dragging":V(d)===V(t).id}),J(i,`title`,e),J(a,`title`,V(t).title),G(s,V(t).title||V(t).id),J(c,`aria-label`,o),J(c,`title`,l)},[()=>Y(`favorites.reorder`),()=>Y(`favorites.remove`),()=>Y(`favorites.remove`)]),Nr(`dragstart`,n,e=>p(e,V(t).id)),Nr(`dragover`,n,e=>m(e,V(t).id)),Nr(`drop`,n,e=>h(e,V(t).id)),Nr(`dragend`,n,g),H(`click`,a,()=>u(V(t).id)),H(`click`,c,()=>Ho.remove(V(t).id)),W(e,n)}),W(e,t)};K(s,e=>{Ho.items.length===0?e(c):e(_,-1)}),j(a),li(a,e=>o?.(e)),B(()=>bi(a,`top:${V(r)??``}px;right:${V(i)??``}px`)),H(`click`,n,l),W(e,t)};K(b,e=>{V(n)&&e(x)}),B(e=>{J(v,`aria-expanded`,V(n)),G(y,e)},[()=>Y(`nav.favorites`)]),H(`click`,v,c),W(e,_),Je()}Pr([`click`]);var Jo=U(`<a class="ghost-button"> </a>`),Yo=U(`<header class="topbar"><div class="brand-lockup"><span class="brand-mark">LD</span> <div><h1> </h1> <p> </p></div></div> <!> <div class="topbar-right"><!> <!> <!> <!> <!></div></header>`);function Xo(e,t){qe(t,!0);let n=qi(t,`nav`,19,()=>[]),r=N(()=>[...n(),{label:`Workspace`,href:`/workspace`},{label:`Blueprint`,href:`/blueprint`},{label:`Diagram`,href:`/diagram`},{label:Y(`graph.nav`),href:`/graph`},{label:`Files`,href:`/files`},{label:`Survival Kit`,href:`/survival-kit`},{label:`AI Context`,href:`/context`},{label:`Admin`,href:`/admin`},{label:`Home`,href:`/`}].filter((e,t,n)=>!_a.hidden.includes(e.href)&&n.findIndex(t=>t.href===e.href)===t));var i=Yo(),a=L(i),o=z(L(a),2),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o),j(a);var d=z(a,2),f=e=>{var n=Wr();ci(R(n),()=>t.children),W(e,n)};K(d,e=>{t.children&&e(f)});var p=z(d,2),m=L(p);qo(m,{});var h=z(m,2);q(h,17,()=>V(r),Qr,(e,t)=>{var n=Jo(),r=L(n,!0);j(n),B(()=>{J(n,`href`,V(t).href),G(r,V(t).label)}),W(e,n)});var g=z(h,2);$a(g,{});var _=z(g,2);Lo(_,{});var v=z(_,2),y=e=>{var n=Wr();ci(R(n),()=>t.actions),W(e,n)};K(v,e=>{t.actions&&e(y)}),j(p),j(i),B(()=>{G(c,t.title),G(u,t.subtitle)}),W(e,i),Je()}var Zo=`ld-site-theme`;function Qo(e){return e===`tau`?`tau`:`base`}function $o(e){let t=document.documentElement;t.setAttribute(`data-site-theme`,e),e===`tau`&&t.classList.remove(`dark`);try{localStorage.setItem(Zo,e)}catch{}}function es(){return document.documentElement.getAttribute(`data-site-theme`)===`tau`}function ts(){let e=null;try{e=localStorage.getItem(Zo)}catch{e=null}$o(Qo(e))}function ns(e){$o(Qo(e?.siteTheme))}var rs=U(`<span> </span>`),is=U(`<div class="field-row"><div class="info-item"><dt class="info-label"> </dt> <dd class="info-value"> </dd></div> <div class="info-item"><dt class="info-label"> </dt> <dd class="info-value"> </dd></div></div> <div class="field-group"><label class="field-label" for="field-title"> </label> <input id="field-title" type="text" class="field-input"/> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-theme"> </label> <select id="field-theme" class="field-input"><option> </option><option> </option><option> </option></select> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-site-theme"> </label> <select id="field-site-theme" class="field-input"><option> </option><option> </option></select> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-language"> </label> <select id="field-language" class="field-input"><option> </option><option> </option></select> <p class="field-hint"> </p></div> <div class="field-group"><label class="field-label" for="field-sidebar-sort"> </label> <select id="field-sidebar-sort" class="field-input"><option> </option><option> </option><option> </option></select> <p class="field-hint"> </p></div>`,1),as=U(`<label class="checkbox-label"><input type="checkbox"/> </label>`),os=U(`<!> <p class="field-hint"> </p>`,1),ss=U(`<div class="pattern-row"><p class="pattern-filename"> </p> <div class="pattern-cols"><div><span class="pattern-col-label"> </span> <span> </span></div> <div><span class="pattern-col-label"> </span> <span class="pattern-value--cat"> </span></div> <div><span class="pattern-col-label"> </span> <span class="pattern-value--title"> </span></div></div></div>`),cs=U(`<div class="field-group"><label class="field-label" for="field-pattern"> </label> <input id="field-pattern" type="text" class="field-input"/> <p class="field-hint"> <code> </code></p></div> <div class="pattern-preview"><h4 class="pattern-preview-title"> </h4> <p class="field-hint"> </p> <div class="pattern-rows"></div></div>`,1),ls=U(`<div class="field-group"><label class="field-label" for="field-source-root"> </label> <input id="field-source-root" type="text" class="field-input field-input--mono" placeholder=".."/> <p class="field-hint"> </p></div> <!>`,1),us=U(`<div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div>`,1),ds=U(`<div class="field-group"><label class="field-label" for="field-code-max-height"> </label> <input id="field-code-max-height" type="number" class="field-input" min="0" max="5000" step="10" placeholder="400"/> <p class="field-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"></p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div> <div class="field-group"><label class="checkbox-label"><input type="checkbox"/> <span> </span></label> <p class="field-hint checkbox-hint"> </p></div>`,1),fs=U(`<div class="field-group"><label class="field-label" for="field-blocked"> </label> <textarea id="field-blocked" class="field-input field-input--mono" placeholder="exe sh bat cmd com scr ps1 msi"></textarea> <p class="field-hint"> </p></div>`),ps=U(`<li class="llm-host-chip"><span class="llm-host-chip__url"> </span> <button type="button" class="llm-host-chip__remove">×</button></li>`),ms=U(`<ul class="llm-host-list"></ul>`),hs=U(`<div class="field-group"><label class="field-label" for="field-llm-host"> </label> <div class="llm-host-add"><input id="field-llm-host" type="text" class="field-input field-input--mono" placeholder="https://api.deepseek.com"/> <button type="button" class="llm-host-btn"> </button></div> <p class="field-hint"> </p> <!></div>`),gs=U(`<div class="field-group"><label class="field-label" for="field-git-push-every"> </label> <input id="field-git-push-every" type="number" min="1" max="1000" step="1" class="field-input"/> <p class="field-hint"> </p></div>`),_s=U(`<div class="field-group"><label class="field-label" for="field-git-commit-message"> </label> <input id="field-git-commit-message" type="text" class="field-input field-input--mono" placeholder="docs: update living documentation"/> <p class="field-hint"> </p></div> <fieldset class="git-push-field"><legend> </legend> <label class="radio-card"><input type="radio" name="gitPushMode"/> <span><strong> </strong> <small> </small></span></label> <label class="radio-card"><input type="radio" name="gitPushMode"/> <span><strong> </strong> <small> </small></span></label></fieldset> <!>`,1),vs=U(`<fieldset class="git-mode-field"><legend> </legend> <label class="radio-card"><input type="radio" name="gitMode"/> <span><strong> </strong> <small> </small></span></label> <label class="radio-card"><input type="radio" name="gitMode"/> <span><strong> </strong> <small> </small></span></label> <label class="radio-card"><input type="radio" name="gitMode"/> <span><strong> </strong> <small> </small></span></label></fieldset> <!>`,1),ys=U(`<div class="app-shell"><!> <div class="admin-scroll"><form class="admin-form" novalidate=""><div class="save-bar"><div class="save-bar-inner"><div><h2 class="save-bar-title"> </h2> <p class="save-bar-desc"> </p></div> <div class="save-bar-actions"><!> <button type="submit" class="btn-primary"> </button></div></div></div> <div class="admin-sections"><!> <!> <!> <!> <!> <!> <!> <!> <!> <div id="git-integration" class="admin-anchor"><!></div> <!></div></form> <div class="admin-sections"><div class="license-card"><div class="license-banner"><span class="license-icon">📖</span> <div><h3 class="license-title"> </h3> <p class="license-subtitle"> </p></div></div> <div class="license-body"><p></p> <div class="license-links"><a href="https://www.linkedin.com/in/youssef-medaghri-alaoui-93b2922/" target="_blank" rel="noopener noreferrer" class="license-btn license-btn--linkedin"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.13 1.44-2.13 2.93v5.68H9.37V9h3.41v1.56h.05c.47-.9 1.63-1.85 3.35-1.85 3.58 0 4.24 2.36 4.24 5.43v6.31ZM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12ZM7.12 20.45H3.56V9h3.56v11.45ZM22.22 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.45C23.2 24 24 23.23 24 22.28V1.72C24 .77 23.2 0 22.22 0Z"></path></svg> </a> <a href="https://www.npmjs.com/package/living-ai-documentation" target="_blank" rel="noopener noreferrer" class="license-btn license-btn--npm"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M0 0v24h24V0H0Zm19.2 19.2H13.6V8h-3.2v11.2H4.8V4.8h14.4v14.4Z"></path></svg> </a></div></div></div></div></div></div>`);function bs(e,t){qe(t,!0);let n=[],r=[],i=P(``),a=P(``),o=P(``),s=P(`system`),c=P(I([])),l=P(`base`),u=P(`recent`),d=P(`en`),f=P(``),p=P(``),m=P(!1),h=P(!1),g=P(400),_=P(!1),v=P(!1),y=P(!1),b=P(!1),x=P(!1),S=P(``),C=P(I([])),w=P(I([])),T=P(I([])),E=P(I([])),D=P(``),ee=P(!1),te=P(`unconfigured`),O=P(`never`),k=P(1),ne=P(`docs: update living documentation`);function A(){let e=V(D).trim();if(!e)return;let t;try{let n=new URL(e);if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Error(`protocol`);t=n.origin}catch{_e(`Enter a valid http(s) URL, e.g. https://api.deepseek.com`,`error`);return}V(E).includes(t)||F(E,[...V(E),t],!0),F(D,``)}function re(e){F(E,V(E).filter(t=>t!==e),!0)}let ie=P(null),ae=null,oe=P(null),se=[`2024_01_15_09_30_[DevOps]_deploy_pipeline.md`,`2023_11_03_14_45_[Frontend]_react_hooks_guide.md`,`2025_06_20_08_00_meeting_notes.md`,`readme.md`];function ce(e){let t=e.split(`_`);return t.length===5?`${t[0]}-${t[1]}-${t[2]}T${t[3]}:${t[4]}`:`${t[0]}-${t[1]}-${t[2]}`}function le(e){e||=`YYYY_MM_DD_HH_mm_[Category]_title`;let t=/YYYY.*MM.*DD/.test(e),n=t&&/HH.*mm/.test(e),r=/\[Category\]/i.test(e),i=n?`(\\d{4}_\\d{2}_\\d{2}(?:_\\d{2}_\\d{2})?)`:`(\\d{4}_\\d{2}_\\d{2})`,a=`\\[([^\\]]+)\\]`,o=t&&r&&e.search(/\[Category\]/i)<e.search(/YYYY/i),s=null,c=null;if(t&&r){let e=o?`${a}_${i}`:`${i}_${a}`;s=RegExp(`^`+e+`_(.+)\\.md$`,`i`),c=RegExp(`^`+i+`_(.+)\\.md$`,`i`)}else t?c=RegExp(`^`+i+`_(.+)\\.md$`,`i`):r&&(s=RegExp(`^\\[([^\\]]+)\\]_(.+)\\.md$`,`i`));return{full:s,dateOnly:c,hasDate:t,hasCategory:r,catBeforeDate:o}}function ue(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `)}function de(e,t){if(t.full){let n=e.match(t.full);if(n){if(t.hasDate&&t.hasCategory){let e=t.catBeforeDate?n[2]:n[1],r=t.catBeforeDate?n[1]:n[2];return{date:ce(e),category:r,title:ue(n[3]),match:!0}}else if(t.hasCategory)return{date:null,category:n[1],title:ue(n[2]),match:!0}}}if(t.dateOnly){let n=e.match(t.dateOnly);if(n)return{date:ce(n[1]),category:`General`,title:ue(n[2]),match:!0}}return{date:null,category:`General`,title:e.replace(`.md`,``),match:!1}}let fe=N(()=>se.map(e=>({filename:e,...de(e,le(V(f)))})));function pe(e){return/^([/\\]|[a-zA-Z]:[\\/]|~)/.test(e)}function me(e,t){if(!e)return t;let n=e=>e.replace(/\\/g,`/`),r=n(e).split(`/`).filter(Boolean),i=n(t).split(`/`).filter(Boolean),a=0;for(;a<r.length&&a<i.length&&r[a]===i[a];)a++;let o=r.length-a,s=i.slice(a).join(`/`),c=`../`.repeat(o)+s;return c.endsWith(`/`)&&(c=c.slice(0,-1)),c===``?`.`:c}async function he(){try{let e=await fetch(`/api/config`).then(e=>e.json());F(i,e.docsFolder||``,!0),F(a,e.port||``,!0),F(o,e.title||``,!0),F(s,e.theme||`system`,!0),F(c,ga(e.hiddenHeaderMenus),!0),F(l,e.siteTheme===`tau`?`tau`:`base`,!0),F(u,[`recent`,`oldest`,`alphabetical`].includes(e.sidebarSort)?e.sidebarSort:`recent`,!0),F(d,e.language||`en`,!0),await Sa(V(d)),F(f,e.filenamePattern||``,!0),F(p,e.docsFolder&&e.sourceRoot?me(e.docsFolder,e.sourceRoot):``,!0),F(m,!!e.exclusiveFolderExpansion),F(h,!!e.exclusiveCategoryExpansion),F(g,typeof e.codeBlockMaxHeight==`number`?e.codeBlockMaxHeight:400,!0),F(_,!!e.markdownSoftBreaks),F(v,!!e.imageRoundedCorners),F(y,!!e.imageCentered),F(b,!!e.imageBorder),F(x,!!e.codeBlockLightTheme),F(S,(e.blockedFileExtensions||[]).join(` `),!0),F(C,e.extraFiles||[],!0);let t=[`c-white`,`c-gray`,`c-slate`,`c-blue`,`c-sky`,`c-cyan`,`c-teal`,`c-green`,`c-lime`,`c-amber`,`c-orange`,`c-red`,`c-rose`,`c-pink`,`c-purple`],n={"c-white":`#ffffff`,"c-gray":`#f5f5f4`,"c-slate":`#f1f5f9`,"c-blue":`#dbeafe`,"c-sky":`#e0f2fe`,"c-cyan":`#cffafe`,"c-teal":`#ccfbf1`,"c-green":`#dcfce7`,"c-lime":`#ecfccb`,"c-amber":`#fef9c3`,"c-orange":`#ffedd5`,"c-red":`#fee2e2`,"c-rose":`#ffe4e6`,"c-pink":`#fce7f3`,"c-purple":`#ede9fe`};F(w,Array.isArray(e.diagramNodePalette)&&e.diagramNodePalette.length?t.map((t,r)=>e.diagramNodePalette[r]||n[t]):t.map(e=>n[e]),!0),F(T,Array.isArray(e.diagramEdgePalette)&&e.diagramEdgePalette.length?[...e.diagramEdgePalette]:[`#ffffff`,`#a8a29e`,`#374151`,`#3b82f6`,`#14b8a6`,`#22c55e`,`#f97316`,`#ef4444`,`#a855f7`],!0),F(E,Array.isArray(e.llmModelsNoV1Hosts)?[...e.llmModelsNoV1Hosts]:[],!0),F(ee,!!e.debugAgents);let r=e.gitIntegration||{};F(te,r.mode===`disabled`||r.mode===`enabled`?r.mode:`unconfigured`,!0),F(O,r.pushMode===`everyNCommits`?`everyNCommits`:`never`,!0),F(k,typeof r.pushEveryCommits==`number`?r.pushEveryCommits:1,!0),F(ne,typeof r.commitMessage==`string`&&r.commitMessage.trim()?r.commitMessage:`docs: update living documentation`,!0),V(oe).loadBrowse(e.docsFolder||`/`)}catch{_e(`Failed to load configuration.`,`error`)}}async function ge(e){e.preventDefault();let t=V(f).trim();if(t){let e=(t.match(/\[Category\]/gi)||[]).length;if(e===0){_e(`Pattern must include [Category].`,`error`);return}if(e>1){_e(`Pattern must include [Category] only once.`,`error`);return}}if(V(p)!==``&&pe(V(p))){_e(`Source root must be a relative path.`,`error`);return}let n=V(S).split(/[\s,]+/).map(e=>e.trim().replace(/^\.+/,``).toLowerCase()).filter(e=>/^[a-z0-9]+$/.test(e)),r={title:V(o),theme:V(s),siteTheme:V(l),hiddenHeaderMenus:V(c),sidebarSort:V(u),language:V(d),filenamePattern:t,exclusiveFolderExpansion:V(m),exclusiveCategoryExpansion:V(h),codeBlockMaxHeight:Math.max(0,Math.min(5e3,V(g)||0)),markdownSoftBreaks:V(_),imageRoundedCorners:V(v),imageCentered:V(y),imageBorder:V(b),codeBlockLightTheme:V(x),diagramNodePalette:[...V(w)],diagramEdgePalette:[...V(T)],sourceRoot:V(p)===``?null:V(p),blockedFileExtensions:n,llmModelsNoV1Hosts:[...V(E)],debugAgents:V(ee),gitIntegration:{mode:V(te),pushMode:V(O),pushEveryCommits:Math.max(1,Math.min(1e3,V(k)||1)),commitMessage:V(ne).trim()||`docs: update living documentation`}};try{let e=await fetch(`/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!e.ok)throw Error(await e.text());va(await e.json()),_e(`Settings saved.`,`ok`)}catch(e){_e(`Save failed: `+(e instanceof Error?e.message:String(e)),`error`)}}function _e(e,t){F(ie,{text:e,type:t},!0),ae&&clearTimeout(ae),t===`ok`&&(ae=window.setTimeout(()=>{F(ie,null)},3e3))}async function ve(){let e=window.location.hash.slice(1);e&&(await xr(),requestAnimationFrame(()=>{document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})}))}Ji(()=>{he(),ve();let e=()=>{ve()};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)});var ye=ys(),be=L(ye);{let e=N(()=>Y(`admin.title`)),t=N(()=>Y(`admin.config.title`));Xo(be,{get title(){return V(e)},get subtitle(){return V(t)}})}var xe=z(be,2),Se=L(xe),Ce=L(Se),we=L(Ce),Te=L(we),Ee=L(Te),De=L(Ee,!0);j(Ee);var Oe=z(Ee,2),ke=L(Oe,!0);j(Oe),j(Te);var Ae=z(Te,2),je=L(Ae),Me=e=>{var t=rs(),n=L(t,!0);j(t),B(()=>{vi(t,1,`save-msg save-msg--${V(ie).type??``}`),G(n,V(ie).text)}),W(e,t)};K(je,e=>{V(ie)&&e(Me)});var Ne=z(je,2),Pe=L(Ne,!0);j(Ne),j(Ae),j(we),j(Ce);var Fe=z(Ce,2),Ie=L(Fe);{let e=N(()=>Y(`admin.section.general.title`)),t=N(()=>Y(`admin.section.general.desc`));Zi(Ie,{icon:`🌐`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=is(),r=R(n),c=L(r),f=L(c),p=L(f,!0);j(f);var m=z(f,2),h=L(m,!0);j(m),j(c);var g=z(c,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g),j(r);var x=z(r,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2);ki(w);var T=z(w,2),E=L(T,!0);j(T),j(x);var D=z(x,2),ee=L(D),te=L(ee,!0);j(ee);var O=z(ee,2),k=L(O),ne=L(k,!0);j(k),k.value=k.__value=`system`;var A=z(k),re=L(A,!0);j(A),A.value=A.__value=`light`;var ie=z(A),ae=L(ie,!0);j(ie),ie.value=ie.__value=`dark`,j(O);var oe=z(O,2),se=L(oe,!0);j(oe),j(D);var ce=z(D,2),le=L(ce),ue=L(le,!0);j(le);var de=z(le,2),fe=L(de),pe=L(fe,!0);j(fe),fe.value=fe.__value=`base`;var me=z(fe),he=L(me,!0);j(me),me.value=me.__value=`tau`,j(de);var ge=z(de,2),_e=L(ge,!0);j(ge),j(ce);var ve=z(ce,2),ye=L(ve),be=L(ye,!0);j(ye);var xe=z(ye,2),Se=L(xe),Ce=L(Se,!0);j(Se),Se.value=Se.__value=`en`;var we=z(Se),Te=L(we,!0);j(we),we.value=we.__value=`fr`,j(xe);var Ee=z(xe,2),De=L(Ee,!0);j(Ee),j(ve);var Oe=z(ve,2),ke=L(Oe),Ae=L(ke,!0);j(ke);var je=z(ke,2),Me=L(je),Ne=L(Me,!0);j(Me),Me.value=Me.__value=`recent`;var Pe=z(Me),Fe=L(Pe,!0);j(Pe),Pe.value=Pe.__value=`oldest`;var Ie=z(Pe),Le=L(Ie,!0);j(Ie),Ie.value=Ie.__value=`alphabetical`,j(je);var Re=z(je,2),ze=L(Re,!0);j(Re),j(Oe),B((e,t,n,r,o,s,c,l,u,d,f,m,g,_,y,x,S,T,D,ee,O,k,A)=>{G(p,e),G(h,V(i)||`—`),G(v,t),G(b,V(a)||`—`),G(C,n),J(w,`placeholder`,r),G(E,o),G(te,s),G(ne,c),G(re,l),G(ae,u),G(se,d),G(ue,f),G(pe,m),G(he,g),G(_e,_),G(be,y),G(Ce,x),G(Te,S),G(De,T),G(Ae,D),G(Ne,ee),G(Fe,O),G(Le,k),G(ze,A)},[()=>Y(`admin.server_info.docs_folder`),()=>Y(`admin.server_info.port`),()=>Y(`admin.appearance.site_title_label`),()=>Y(`admin.appearance.site_title_placeholder`),()=>Y(`admin.appearance.site_title_hint`),()=>Y(`admin.appearance.theme_label`),()=>Y(`admin.appearance.theme_system`),()=>Y(`admin.appearance.theme_light`),()=>Y(`admin.appearance.theme_dark`),()=>Y(`admin.appearance.theme_hint`),()=>Y(`admin.appearance.site_theme_label`),()=>Y(`admin.appearance.site_theme_base`),()=>Y(`admin.appearance.site_theme_tau`),()=>Y(`admin.appearance.site_theme_hint`),()=>Y(`admin.appearance.language_label`),()=>Y(`admin.appearance.language_en`),()=>Y(`admin.appearance.language_fr`),()=>Y(`admin.appearance.language_hint`),()=>Y(`admin.appearance.sidebar_sort_label`),()=>Y(`admin.appearance.sidebar_sort_recent`),()=>Y(`admin.appearance.sidebar_sort_oldest`),()=>Y(`admin.appearance.sidebar_sort_alphabetical`),()=>Y(`admin.appearance.sidebar_sort_hint`)]),Fi(w,()=>V(o),e=>F(o,e)),Ci(O,()=>V(s),e=>F(s,e)),H(`change`,de,()=>$o(V(l))),Ci(de,()=>V(l),e=>F(l,e)),H(`change`,xe,()=>Sa(V(d))),Ci(xe,()=>V(d),e=>F(d,e)),Ci(je,()=>V(u),e=>F(u,e)),W(e,n)},$$slots:{default:!0}})}var Le=z(Ie,2);{let e=N(()=>Y(`admin.navigation.title`)),t=N(()=>Y(`admin.navigation.description`));Zi(Le,{icon:`☰`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=os(),r=R(n);q(r,17,()=>ha,Qr,(e,t)=>{var n=as(),r=L(n);ki(r);var i=z(r);j(n),B((e,t)=>{ji(r,e),G(i,` ${t??``}`)},[()=>!V(c).includes(V(t).href),()=>Y(V(t).labelKey)]),H(`change`,r,e=>{F(c,e.currentTarget.checked?V(c).filter(e=>e!==V(t).href):[...V(c),V(t).href],!0)}),W(e,n)});var i=z(r,2),a=L(i,!0);j(i),B(e=>G(a,e),[()=>Y(`admin.navigation.required`)]),W(e,n)},$$slots:{default:!0}})}var Re=z(Le,2);{let e=N(()=>Y(`admin.section.filename.title`)),t=N(()=>Y(`admin.section.filename.desc`));Zi(Re,{icon:`📝`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=cs(),r=R(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2);ki(o);var s=z(o,2),c=L(s),l=z(c),u=L(l,!0);j(l),j(s),j(r);var d=z(r,2),p=L(d),m=L(p,!0);j(p);var h=z(p,2),g=L(h,!0);j(h);var _=z(h,2);q(_,21,()=>V(fe),Qr,(e,t)=>{var n=ss(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o);var d=z(o,2),f=L(d),p=L(f,!0);j(f);var m=z(f,2),h=L(m,!0);j(m),j(d);var g=z(d,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g),j(a),j(n),B((e,n,r,a)=>{G(i,V(t).filename),G(c,e),vi(l,1,fi(V(t).date?`pattern-value--date`:`pattern-value--none`)),G(u,n),G(p,r),G(h,V(t).category),G(v,a),G(b,V(t).title)},[()=>Y(`admin.pattern.col_date`),()=>V(t).date||Y(`admin.pattern.col_none`),()=>Y(`admin.pattern.col_category`),()=>Y(`admin.pattern.col_title`)]),W(e,n)}),j(_),j(d),B((e,t,n,r,i)=>{G(a,e),J(o,`placeholder`,t),G(c,`${n??``} `),G(u,(V(f)||`YYYY_MM_DD_HH_mm_[Category]_title`)+`.md`),G(m,r),G(g,i)},[()=>Y(`admin.pattern.label`),()=>Y(`admin.pattern.placeholder`),()=>Y(`admin.pattern.hint`),()=>Y(`admin.pattern.preview_title`),()=>Y(`admin.pattern.preview_desc`)]),Fi(o,()=>V(f),e=>F(f,e)),W(e,n)},$$slots:{default:!0}})}var ze=z(Re,2);{let e=N(()=>Y(`admin.section.source.title`)),t=N(()=>Y(`admin.section.source.desc`));Zi(ze,{icon:`📂`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=ls(),r=R(n),a=L(r),o=L(a,!0);j(a);var s=z(a,2);ki(s);var c=z(s,2),l=L(c,!0);j(c),j(r),Ui(ua(z(r,2),{get docsFolder(){return V(i)},get extraFiles(){return V(C)},onchange:e=>F(C,e,!0)}),e=>F(oe,e,!0),()=>V(oe)),B((e,t)=>{G(o,e),G(l,t)},[()=>Y(`admin.server_info.source_root`),()=>Y(`admin.server_info.source_root_hint`)]),Fi(s,()=>V(p),e=>F(p,e)),W(e,n)},$$slots:{default:!0}})}var Be=z(ze,2);{let e=N(()=>Y(`admin.section.sidebar.title`)),t=N(()=>Y(`admin.section.sidebar.desc`));Zi(Be,{icon:`🗂️`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=us(),r=R(n),i=L(r),a=L(i);ki(a);var o=z(a,2),s=L(o,!0);j(o),j(i);var c=z(i,2),l=L(c,!0);j(c),j(r);var u=z(r,2),d=L(u),f=L(d);ki(f);var p=z(f,2),g=L(p,!0);j(p),j(d);var _=z(d,2),v=L(_,!0);j(_),j(u),B((e,t,n,r)=>{G(s,e),G(l,t),G(g,n),G(v,r)},[()=>Y(`admin.appearance.exclusive_folder_label`),()=>Y(`admin.appearance.exclusive_folder_hint`),()=>Y(`admin.appearance.exclusive_category_label`),()=>Y(`admin.appearance.exclusive_category_hint`)]),Ri(a,()=>V(m),e=>F(m,e)),Ri(f,()=>V(h),e=>F(h,e)),W(e,n)},$$slots:{default:!0}})}var Ve=z(Be,2);{let e=N(()=>Y(`admin.section.markdown.title`)),t=N(()=>Y(`admin.section.markdown.desc`));Zi(Ve,{icon:`✍️`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=ds(),r=R(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2);ki(o);var s=z(o,2),c=L(s,!0);j(s),j(r);var l=z(r,2),u=L(l),d=L(u);ki(d);var f=z(d,2),p=L(f,!0);j(f),j(u);var m=z(u,2);si(m,()=>Y(`admin.appearance.soft_breaks_hint`),!0),j(m),j(l);var h=z(l,2),S=L(h),C=L(S);ki(C);var w=z(C,2),T=L(w,!0);j(w),j(S);var E=z(S,2),D=L(E,!0);j(E),j(h);var ee=z(h,2),te=L(ee),O=L(te);ki(O);var k=z(O,2),ne=L(k,!0);j(k),j(te);var A=z(te,2),re=L(A,!0);j(A),j(ee);var ie=z(ee,2),ae=L(ie),oe=L(ae);ki(oe);var se=z(oe,2),ce=L(se,!0);j(se),j(ae);var le=z(ae,2),ue=L(le,!0);j(le),j(ie);var de=z(ie,2),fe=L(de),pe=L(fe);ki(pe);var me=z(pe,2),he=L(me,!0);j(me),j(fe);var ge=z(fe,2),_e=L(ge,!0);j(ge),j(de),B((e,t,n,r,i,o,s,l,u,d,f)=>{G(a,e),G(c,t),G(p,n),G(T,r),G(D,i),G(ne,o),G(re,s),G(ce,l),G(ue,u),G(he,d),G(_e,f)},[()=>Y(`admin.appearance.code_max_height_label`),()=>Y(`admin.appearance.code_max_height_hint`),()=>Y(`admin.appearance.soft_breaks_label`),()=>Y(`admin.appearance.image_rounded_label`),()=>Y(`admin.appearance.image_rounded_hint`),()=>Y(`admin.appearance.image_centered_label`),()=>Y(`admin.appearance.image_centered_hint`),()=>Y(`admin.appearance.image_border_label`),()=>Y(`admin.appearance.image_border_hint`),()=>Y(`admin.appearance.code_light_theme_label`),()=>Y(`admin.appearance.code_light_theme_hint`)]),Fi(o,()=>V(g),e=>F(g,e)),Ri(d,()=>V(_),e=>F(_,e)),Ri(C,()=>V(v),e=>F(v,e)),Ri(O,()=>V(y),e=>F(y,e)),Ri(oe,()=>V(b),e=>F(b,e)),Ri(pe,()=>V(x),e=>F(x,e)),W(e,n)},$$slots:{default:!0}})}var He=z(Ve,2);{let e=N(()=>Y(`admin.section.files.title`)),t=N(()=>Y(`admin.files.description`));Zi(He,{icon:`📎`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=fs(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);yn(a),J(a,`rows`,3);var o=z(a,2),s=L(o,!0);j(o),j(n),B((e,t)=>{G(i,e),G(s,t)},[()=>Y(`admin.files.blocked_label`),()=>Y(`admin.files.hint`)]),Fi(a,()=>V(S),e=>F(S,e)),W(e,n)},$$slots:{default:!0}})}var Ue=z(He,2);{let e=N(()=>Y(`admin.section.diagram.title`)),t=N(()=>Y(`admin.section.diagram.desc`));Zi(Ue,{icon:`🎨`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{ma(e,{get nodePalette(){return V(w)},set nodePalette(e){F(w,e,!0)},get edgePalette(){return V(T)},set edgePalette(e){F(T,e,!0)}})},$$slots:{default:!0}})}var We=z(Ue,2);{let e=N(()=>Y(`admin.section.llm.title`)),t=N(()=>Y(`admin.section.llm.desc`));Zi(We,{icon:`🤖`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=hs(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a);ki(o);var s=z(o,2),c=L(s,!0);j(s),j(a);var l=z(a,2),u=L(l,!0);j(l);var d=z(l,2),f=e=>{var t=ms();q(t,20,()=>V(E),e=>e,(e,t)=>{var n=ps(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);j(n),B(e=>{G(i,t),J(a,`aria-label`,e)},[()=>Y(`admin.llm.remove`)]),H(`click`,a,()=>re(t)),W(e,n)}),j(t),W(e,t)};K(d,e=>{V(E).length&&e(f)}),j(n),B((e,t,n)=>{G(i,e),G(c,t),G(u,n)},[()=>Y(`admin.llm.no_v1_label`),()=>Y(`admin.llm.add`),()=>Y(`admin.llm.no_v1_hint`)]),H(`keydown`,o,e=>{e.key===`Enter`&&(e.preventDefault(),A())}),Fi(o,()=>V(D),e=>F(D,e)),H(`click`,s,A),W(e,n)},$$slots:{default:!0}})}var Ge=z(We,2),Ke=L(Ge);{let e=N(()=>Y(`admin.section.git.title`)),t=N(()=>Y(`admin.section.git.desc`));Zi(Ke,{icon:`⑂`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var i=vs(),a=R(i),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);ki(l),l.value=l.__value=`unconfigured`;var u=z(l,2),d=L(u),f=L(d,!0);j(d);var p=z(d,2),m=L(p,!0);j(p),j(u),j(c);var h=z(c,2),g=L(h);ki(g),g.value=g.__value=`disabled`;var _=z(g,2),v=L(_),y=L(v,!0);j(v);var b=z(v,2),x=L(b,!0);j(b),j(_),j(h);var S=z(h,2),C=L(S);ki(C),C.value=C.__value=`enabled`;var w=z(C,2),T=L(w),E=L(T,!0);j(T);var D=z(T,2),ee=L(D,!0);j(D),j(w),j(S),j(a);var A=z(a,2),re=e=>{var t=_s(),n=R(t),i=L(n),a=L(i,!0);j(i);var o=z(i,2);ki(o);var s=z(o,2),c=L(s,!0);j(s),j(n);var l=z(n,2),u=L(l),d=L(u,!0);j(u);var f=z(u,2),p=L(f);ki(p),p.value=p.__value=`never`;var m=z(p,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=L(_,!0);j(_),j(m),j(f);var y=z(f,2),b=L(y);ki(b),b.value=b.__value=`everyNCommits`;var x=z(b,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2),T=L(w,!0);j(w),j(x),j(y),j(l);var E=z(l,2),D=e=>{var t=gs(),n=L(t),r=L(n,!0);j(n);var i=z(n,2);ki(i);var a=z(i,2),o=L(a,!0);j(a),j(t),B((e,t)=>{G(r,e),G(o,t)},[()=>Y(`admin.git.push_every_commits_label`),()=>Y(`admin.git.push_every_commits_hint`)]),Fi(i,()=>V(k),e=>F(k,e)),W(e,t)};K(E,e=>{V(O)===`everyNCommits`&&e(D)}),B((e,t,n,r,i,o,s)=>{G(a,e),G(c,t),G(d,n),G(g,r),G(v,i),G(C,o),G(T,s)},[()=>Y(`admin.git.commit_message_label`),()=>Y(`admin.git.commit_message_hint`),()=>Y(`admin.git.push_label`),()=>Y(`admin.git.push_never`),()=>Y(`admin.git.push_never_hint`),()=>Y(`admin.git.push_every`),()=>Y(`admin.git.push_every_hint`)]),Fi(o,()=>V(ne),e=>F(ne,e)),Li(r,[],p,()=>V(O),e=>F(O,e)),Li(r,[],b,()=>V(O),e=>F(O,e)),W(e,t)};K(A,e=>{V(te)===`enabled`&&e(re)}),B((e,t,n,r,i,a,o)=>{G(s,e),G(f,t),G(m,n),G(y,r),G(x,i),G(E,a),G(ee,o)},[()=>Y(`admin.git.mode_label`),()=>Y(`admin.git.mode_unconfigured`),()=>Y(`admin.git.mode_unconfigured_hint`),()=>Y(`admin.git.mode_disabled`),()=>Y(`admin.git.mode_disabled_hint`),()=>Y(`admin.git.mode_enabled`),()=>Y(`admin.git.mode_enabled_hint`)]),Li(n,[],l,()=>V(te),e=>F(te,e)),Li(n,[],g,()=>V(te),e=>F(te,e)),Li(n,[],C,()=>V(te),e=>F(te,e)),W(e,i)},$$slots:{default:!0}})}j(Ge);var Ye=z(Ge,2);{let e=N(()=>Y(`admin.section.developer.title`)),t=N(()=>Y(`admin.section.developer.desc`));Zi(Ye,{icon:`🛠️`,get title(){return V(e)},get description(){return V(t)},children:(e,t)=>{var n=us(),r=R(n),i=L(r),a=z(L(i),2),o=L(a,!0);j(a),j(i);var s=z(i,2),c=L(s,!0);j(s),j(r);var l=z(r,2),u=L(l),d=L(u);ki(d);var f=z(d,2),p=L(f,!0);j(f),j(u);var m=z(u,2),h=L(m,!0);j(m),j(l),B((e,t,n,r)=>{G(o,e),G(c,t),G(p,n),G(h,r)},[()=>Y(`admin.appearance.debug_label`),()=>Y(`admin.appearance.debug_hint`),()=>Y(`admin.developer.debug_agents_label`),()=>Y(`admin.developer.debug_agents_hint`)]),Ri(d,()=>V(ee),e=>F(ee,e)),W(e,n)},$$slots:{default:!0}})}j(Fe),j(Se);var Xe=z(Se,2),Ze=L(Xe),Qe=L(Ze),$e=z(L(Qe),2),et=L($e),tt=L(et,!0);j(et);var nt=z(et,2),rt=L(nt,!0);j(nt),j($e),j(Qe);var it=z(Qe,2),at=L(it);si(at,()=>Y(`admin.license.body`),!0),j(at);var ot=z(at,2),st=L(ot),ct=z(L(st));j(st);var lt=z(st,2),ut=z(L(lt));j(lt),j(ot),j(it),j(Ze),j(Xe),j(xe),j(ye),B((e,t,n,r,i,a,o)=>{G(De,e),G(ke,t),G(Pe,n),G(tt,r),G(rt,i),G(ct,` ${a??``}`),G(ut,` ${o??``}`)},[()=>Y(`admin.config.title`),()=>Y(`admin.config.description`),()=>Y(`admin.config.save_btn`),()=>Y(`admin.license.title`),()=>Y(`admin.license.subtitle`),()=>Y(`admin.license.linkedin_btn`),()=>Y(`admin.license.npm_btn`)]),Nr(`submit`,Se,ge),W(e,ye),Je()}Pr([`change`,`keydown`,`click`]);var xs=U(`<button class="tool-button" type="button"></button>`),Ss=U(`<input class="cluster-tag-input"/>`),Cs=U(`<button class="cluster-tag-label" type="button"> </button>`),ws=U(`<button class="cluster-tag-add" type="button">+</button> <button class="cluster-tag-remove" type="button">−</button>`,1),Ts=U(`<button class="cluster-tag-del" type="button">×</button>`),Es=U(`<div class="cluster-tag"><!> <!> <!></div>`),Ds=U(`<div class="empty-state"><p>No sub-folders found.</p></div>`),Os=U(`<nav class="rail"><button class="tool-button" type="button">⌖</button> <button type="button">⠿</button> <!> <button type="button">☰</button></nav> <canvas id="blueprintCanvas"></canvas> <div class="cluster-overlays"></div> <!>`,1);function ks(e,t){qe(t,!0);let n=qi(t,`activeExplorerPath`,3,null),r=`#64748b`,i=`#3b82f6`,a,o,s=P(!0),c=P(!1),l=0,u=0,d=1,f=[],p=-1,m=-1,h=new Set,g=new Map,_={x:0,y:0},v=!1,y={x:0,y:0},b={x:0,y:0},x=P(``),S=!1,C=!1,w=!1,T=0,E=0,D=0,ee=0,te=null,O={},k=null,ne=P(I([])),A=null,re=P(0),ie=P(I([])),ae=P(null),oe=0,se=0,ce=0,le=0,ue=0,de=0,fe=0,pe=!1;function me(e){let t=0,n=0;return e.map(e=>{let r=O[e.path],i=r?r.x:t*240,a=r?r.y:n*150;return r||(t++,t>=4&&(t=0,n++)),{folder:e,x:i,y:a,w:200,h:110}})}function he(e){if(!e.length)return{minX:0,minY:0,maxX:0,maxY:0};let t=1/0,n=1/0,r=-1/0,i=-1/0;for(let a of e)t=Math.min(t,a.x),n=Math.min(n,a.y),r=Math.max(r,a.x+a.w),i=Math.max(i,a.y+a.h);return{minX:t,minY:n,maxX:r,maxY:i}}function ge(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(0,t):``}function _e(e){let t=a.clientWidth,r=a.clientHeight;xe((n()===null?t:t/2)/2-(e.x+e.w/2)*d,r/2-(e.y+e.h/2)*d,d)}function ve(e){if(!f.length)return;let{minX:t,minY:n,maxX:r,maxY:i}=he(f),o=a.clientWidth,s=a.clientHeight,c=Math.min((o-160)/Math.max(1,r-t),(s-160)/Math.max(1,i-n),1.4),p=(t+r)/2,m=(n+i)/2,h=o/2-p*c,g=s/2-m*c;e?xe(h,g,c):(l=h,u=g,d=c)}function ye(e){let t=a.clientWidth,n=a.clientHeight,r=Math.min((t-160)/e.w,(n-160)/e.h,1.6),i=e.x+e.w/2,o=e.y+e.h/2;xe(t/2-i*r,n/2-o*r,r)}function be(e){return e<.5?2*e*e:-1+(4-2*e)*e}function xe(e,t,n){oe=l,se=u,ce=d,le=e,ue=t,de=n,fe=performance.now(),pe=!0,Ce()}function Se(e){let t=Math.min(1,(e-fe)/420),n=be(t);l=oe+(le-oe)*n,u=se+(ue-se)*n,d=ce+(de-ce)*n,t>=1&&(pe=!1)}function Ce(){te===null&&(te=requestAnimationFrame(we))}function we(e){te=null,pe&&(Se(e),Ce());let t=window.devicePixelRatio||1,n=a.clientWidth,r=a.clientHeight;(a.width!==n*t||a.height!==r*t)&&(a.width=n*t,a.height=r*t),o.save(),o.clearRect(0,0,a.width,a.height),o.scale(t,t),Ee(n,r),o.translate(l,u),o.scale(d,d),Te();for(let e=0;e<f.length;e++)Oe(f[e],e===p,e===m,h.has(e));if(v){let e=Math.min(y.x,b.x),t=Math.min(y.y,b.y),n=Math.abs(b.x-y.x),r=Math.abs(b.y-y.y);o.strokeStyle=`#3b82f6`,o.lineWidth=1.5/d,o.fillStyle=`rgba(59,130,246,0.08)`,o.beginPath(),o.roundRect(e,t,n,r,6/d),o.fill(),o.stroke()}o.restore()}function Te(){let e=[];for(let t of V(ne)){let n=f.filter(e=>t.members.includes(e.folder.path));if(n.length===0)continue;let{minX:r,minY:i,maxX:a,maxY:s}=he(n),c=r-24,p=i-24,m=a-r+48,h=s-i+48;o.save(),o.strokeStyle=`#a78bfa`,o.globalAlpha=.55,o.lineWidth=1.5/d,o.setLineDash([8/d,6/d]),De(c,p,m,h,18),o.stroke(),o.restore(),e.push({id:t.id,label:t.label,x:l+c*d+10*d,y:u+p*d})}F(ie,e,!0)}function Ee(e,t){let n=40*d,r=(l%n+n)%n,i=(u%n+n)%n;o.strokeStyle=`rgba(255,255,255,0.04)`,o.lineWidth=1,o.beginPath();for(let i=r;i<e;i+=n)o.moveTo(i,0),o.lineTo(i,t);for(let r=i;r<t;r+=n)o.moveTo(0,r),o.lineTo(e,r);o.stroke()}function De(e,t,n,r,i){o.beginPath(),o.roundRect(e,t,n,r,i)}function Oe(e,t,r=!1,i=!1){let{x:a,y:s,w:c,h:l,folder:u}=e,f=u.hasChildren?`#1e293b`:`#172033`,p=n()===u.path,m=r?`#f59e0b`:i?`#fbbf24`:p?`#60a5fa`:t?`#3b82f6`:`rgba(255,255,255,0.12)`,h=t||r||i||p?2:1;o.save(),o.shadowColor=r?`rgba(245,158,11,0.4)`:`rgba(0,0,0,0.4)`,o.shadowBlur=r?36:t?24:12,De(a,s,c,l,18),o.fillStyle=f,o.fill(),o.restore(),De(a,s,c,l,18),o.strokeStyle=m,o.lineWidth=h/d,o.stroke(),o.fillStyle=p?`#60a5fa`:t?`#94a3b8`:`rgba(255,255,255,0.3)`,o.font=`${20*.7}px sans-serif`,o.textBaseline=`top`,o.textAlign=`left`,o.fillText(`☰`,a+10,s+10);let g=e.folder.hasDoc===!0,_=a+10+20+4;o.fillStyle=g?t?`#34d399`:`#10b981`:t?`#a78bfa`:`rgba(167,139,250,0.4)`,o.font=`bold ${20*.65}px Inter, ui-sans-serif, sans-serif`,o.textBaseline=`top`,o.textAlign=`left`,o.fillText(`D`,_,s+11),g||(o.font=`bold ${20*.5}px Inter, ui-sans-serif, sans-serif`,o.fillText(`+`,_+20*.6,s+7));let v=a+18;ke(v,s+l/2-18/2-4,18,t);let y=Math.max(10,Math.min(14,120/u.name.length));o.fillStyle=t?`#fff`:`#f1f5f9`,o.font=`700 ${y}px Inter, ui-sans-serif, sans-serif`,o.textBaseline=`middle`,o.textAlign=`left`;let b=c-36-18-8,x=je(u.name,b,y);o.fillText(x,v+18+8,s+l/2),u.hasChildren&&Ae(a+c-22,s+l/2,t)}function ke(e,t,n,a){o.fillStyle=a?i:r,o.beginPath(),o.roundRect(e,t+n*.3,n,n*.7,2),o.fill(),o.beginPath(),o.roundRect(e,t+n*.2,n*.45,n*.18,2),o.fill()}function Ae(e,t,n){o.fillStyle=n?i:r,o.beginPath(),o.moveTo(e-6,t-6),o.lineTo(e+6,t),o.lineTo(e-6,t+6),o.closePath(),o.fill()}function je(e,t,n){if(o.font=`700 ${n}px Inter, ui-sans-serif, sans-serif`,o.measureText(e).width<=t)return e;let r=e;for(;r.length>1&&o.measureText(r+`…`).width>t;)r=r.slice(0,-1);return r+`…`}async function Me(){try{O=await fetch(`/api/blueprint/positions`).then(e=>e.json())}catch{O={}}}function Ne(){k!==null&&clearTimeout(k),k=window.setTimeout(()=>{k=null,fetch(`/api/blueprint/positions`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(O)})},600)}async function Pe(){try{let e=await fetch(`/api/blueprint/clusters`).then(e=>e.json());F(ne,Array.isArray(e)?e:[],!0)}catch{F(ne,[],!0)}}function Fe(){A!==null&&clearTimeout(A),A=window.setTimeout(()=>{A=null,fetch(`/api/blueprint/clusters`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(V(ne))})},600)}function Ie(){F(re,h.size,!0)}function Le(){let e=[...h].map(e=>f[e]?.folder.path).filter(Boolean);if(e.length===0)return;let t=`cl_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,7)}`;F(ne,[...V(ne),{id:t,label:Y(`blueprint.cluster.default_label`),members:e}],!0),Fe(),h.clear(),Ie(),Ce()}function Re(e){let t=[...h].map(e=>f[e]?.folder.path).filter(Boolean);t.length!==0&&(F(ne,V(ne).map(n=>n.id===e?{...n,members:[...new Set([...n.members,...t])]}:n),!0),Fe(),h.clear(),Ie(),Ce())}function ze(e){let t=new Set([...h].map(e=>f[e]?.folder.path).filter(Boolean));t.size!==0&&(F(ne,V(ne).map(n=>n.id===e?{...n,members:n.members.filter(e=>!t.has(e))}:n).filter(e=>e.members.length>0),!0),!V(ne).some(t=>t.id===e)&&V(ae)===e&&F(ae,null),Fe(),h.clear(),Ie(),Ce())}function Be(e,t){F(ne,V(ne).map(n=>n.id===e?{...n,label:t}:n),!0),Fe(),Ce()}function Ve(e){F(ne,V(ne).filter(t=>t.id!==e),!0),V(ae)===e&&F(ae,null),Fe(),Ce()}async function He(e,n,r){try{let i=`/api/blueprint${e?`?path=${encodeURIComponent(e)}`:``}`,a=await fetch(i).then(e=>e.json()),o;if(!e)o=[{name:a.sourceRoot,path:``}];else{let t=e.split(`/`),n=``;o=[{name:a.sourceRoot,path:``}];for(let e of t)n=n?`${n}/${e}`:e,o.push({name:e,path:n})}t.onbreadcrumbchange(o),F(x,e,!0),f=me(a.folders),F(s,f.length>0),r&&n?(ye(r),setTimeout(()=>ve(!0),420*.6)):ve(n),Ce()}catch(e){console.error(`Blueprint load error`,e)}}function Ue(e,t){return{x:(e-l)/d,y:(t-u)/d}}function We(e,t){for(let n=0;n<f.length;n++){let r=f[n];if(e>=r.x&&e<=r.x+r.w&&t>=r.y&&t<=r.y+r.h)return n}return-1}function Ge(e,t,n){return t>=e.x+6&&t<=e.x+6+20&&n>=e.y+6&&n<=e.y+6+20}function Ke(e,t,n){let r=e.x+10+20+4;return t>=r&&t<=r+20&&n>=e.y+6&&n<=e.y+6+20}async function Ye(e){let t=ge(e);V(x)!==t&&await He(t,!0);let n=f.find(t=>t.folder.path===e);n&&(_e(n),Ce())}function Xe(e){let t=a.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;if(S&&m>=0&&V(c)){let{x:e,y:t}=Ue(n,r),i=e-_.x,a=t-_.y;Math.hypot(i,a)>6/d&&(w=!0);let o=h.has(m)&&h.size>1?[...h]:[m];for(let e of o){let t=g.get(e);t&&(f[e].x=t.x+i,f[e].y=t.y+a)}Ce();return}if(v){b=Ue(n,r),Ce();return}if(C){let e=n-T,t=r-E;Math.hypot(e,t)>6&&(w=!0),l=D+e,u=ee+t,Ce();return}let{x:i,y:o}=Ue(n,r),s=We(i,o);s!==p&&(p=s,a.style.cursor=s>=0&&V(c)?`grab`:s>=0?`pointer`:`default`,Ce())}function Ze(e){let t=a.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,{x:i,y:o}=Ue(n,r),s=We(i,o);T=n,E=r,w=!1,a.setPointerCapture(e.pointerId),s>=0?(m=s,S=!0,_={x:i,y:o},g=new Map(f.map((e,t)=>[t,{x:e.x,y:e.y}])),i-f[s].x,o-f[s].y,V(c)&&(a.style.cursor=`grabbing`)):V(c)&&e.shiftKey?(v=!0,y={x:i,y:o},b={x:i,y:o},a.style.cursor=`crosshair`):(C=!0,D=l,ee=u)}function Qe(e){let r=a.getBoundingClientRect(),i=e.clientX-r.left,o=e.clientY-r.top;if(a.releasePointerCapture(e.pointerId),S){if(S=!1,a.style.cursor=V(c)?`grab`:`pointer`,w){let e=h.has(m)&&h.size>1?[...h]:[m];for(let t of e){let e=f[t];O[e.folder.path]={...O[e.folder.path]??{},x:e.x,y:e.y}}Ne()}else{let r=f[m],{x:a,y:s}=Ue(i,o);V(c)&&e.shiftKey?(h.has(m)?h.delete(m):h.add(m),Ie(),Ce()):V(c)?(h.clear(),h.add(m),Ie(),Ce()):Ke(r,a,s)?t.onopenAdr(r):Ge(r,a,s)?n()===r.folder.path?t.onclosefilerexplorer():t.onopenexplorer(r):r.folder.hasChildren&&(t.onclosefilerexplorer(),He(r.folder.path,!0,r))}m=-1;return}if(v){v=!1,a.style.cursor=`crosshair`;let e=Math.min(y.x,b.x),t=Math.min(y.y,b.y),n=Math.max(y.x,b.x),r=Math.max(y.y,b.y);if(n-e>4||r-t>4)for(let i=0;i<f.length;i++){let a=f[i];a.x<n&&a.x+a.w>e&&a.y<r&&a.y+a.h>t&&h.add(i)}Ie(),Ce();return}if(C){C=!1;let e=i-T,t=o-E;Math.hypot(e,t)<=6&&V(c)&&(h.clear(),Ie(),Ce())}}function $e(e){e.preventDefault();let t=a.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i=1-e.deltaY*.0018,o=Math.max(.15,Math.min(4,d*i));l=n-(n-l)*(o/d),u=r-(r-u)*(o/d),d=o,Ce()}function et(){ve(!0)}function tt(){let e=V(x)?V(x).split(`/`).pop():``;t.onopenexplorer({folder:{name:e,path:V(x),hasChildren:!0},x:0,y:0,w:0,h:0})}function nt(){F(c,!V(c)),V(c)||(h.clear(),Ie(),Ce()),a.style.cursor=V(c)&&p>=0?`grab`:`default`}Ji(()=>(o=a.getContext(`2d`),window.addEventListener(`resize`,Ce),Promise.all([Me(),Pe()]).then(async()=>{await He(``,!1)}),()=>{window.removeEventListener(`resize`,Ce)}));var rt={centerOnBox:_e,loadPath:He,navigateToFolder:Ye},it=Os(),at=R(it),ot=L(at),st=z(ot,2);let ct;var lt=z(st,2),ut=e=>{var t=xs();t.textContent=`⬚︎`,B(e=>J(t,`title`,e),[()=>Y(`blueprint.canvas.create_cluster`)]),H(`click`,t,Le),W(e,t)};K(lt,e=>{V(c)&&e(ut)});var dt=z(lt,2);let ft;j(at);var M=z(at,2);Ui(M,e=>a=e,()=>a);var pt=z(M,2);q(pt,21,()=>V(ie),e=>e.id,(e,t)=>{var n=Es(),r=L(n),i=e=>{var n=Ss();ki(n),vn(n,!0),B(()=>Ai(n,V(t).label)),H(`keydown`,n,e=>{e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&F(ae,null)}),Nr(`blur`,n,e=>{Be(V(t).id,e.currentTarget.value.trim()||V(t).label),F(ae,null)}),W(e,n)},a=e=>{var n=Cs(),r=L(n,!0);j(n),B((e,t)=>{J(n,`title`,e),G(r,t)},[()=>Y(`blueprint.cluster.rename`),()=>V(t).label||Y(`blueprint.cluster.default_label`)]),H(`click`,n,()=>F(ae,V(t).id,!0)),W(e,n)};K(r,e=>{V(ae)===V(t).id?e(i):e(a,-1)});var o=z(r,2),s=e=>{var n=ws(),r=R(n),i=z(r,2);B((e,t)=>{J(r,`title`,e),J(i,`title`,t)},[()=>Y(`blueprint.cluster.add_selection`),()=>Y(`blueprint.cluster.remove_selection`)]),H(`click`,r,()=>Re(V(t).id)),H(`click`,i,()=>ze(V(t).id)),W(e,n)};K(o,e=>{V(c)&&V(re)>0&&e(s)});var l=z(o,2),u=e=>{var n=Ts();B(e=>J(n,`title`,e),[()=>Y(`blueprint.cluster.delete`)]),H(`click`,n,()=>Ve(V(t).id)),W(e,n)};K(l,e=>{V(c)&&e(u)}),j(n),B(()=>bi(n,`left:${V(t).x??``}px; top:${V(t).y??``}px;`)),W(e,n)}),j(pt);var mt=z(pt,2),ht=e=>{W(e,Ds())};return K(mt,e=>{V(s)||e(ht)}),B((e,t,r)=>{J(ot,`title`,e),ct=vi(st,1,`tool-button`,null,ct,{active:V(c)}),J(st,`title`,t),ft=vi(dt,1,`tool-button`,null,ft,{active:n()===V(x)}),J(dt,`title`,r)},[()=>Y(`blueprint.canvas.fit_view`),()=>Y(`blueprint.canvas.drag_mode`),()=>Y(`blueprint.canvas.browse_current`)]),H(`click`,ot,et),H(`click`,st,nt),H(`click`,dt,tt),H(`pointermove`,M,Xe),H(`pointerdown`,M,Ze),H(`pointerup`,M,Qe),Nr(`wheel`,M,$e),W(e,it),Je(rt)}Pr([`click`,`pointermove`,`pointerdown`,`pointerup`,`keydown`]);var As=U(`<button class="explorer-breadcrumb-item" type="button">~</button>`),js=U(`<span class="explorer-breadcrumb-item current">~</span>`),Ms=U(`<span class="explorer-breadcrumb-item current"> </span>`),Ns=U(`<button class="explorer-breadcrumb-item" type="button"> </button>`),Ps=U(`<span class="explorer-breadcrumb-sep">/</span> <!>`,1),Fs=U(`<div class="explorer-section-label"> </div>`),Is=U(`<button class="explorer-item is-folder" type="button"><span class="explorer-item-icon">📁</span> <span class="explorer-item-name"> </span></button>`),Ls=U(`<div class="explorer-section-label with-action"><span> </span> <button type="button" data-testid="copy-blueprint-folders"><i aria-hidden="true"></i></button></div> <!>`,1),Rs=U(`<button class="explorer-item is-file" type="button"><span class="explorer-item-icon">📄</span> <span class="explorer-item-name"> </span></button>`),zs=U(`<div class="explorer-section-label with-action"><span> </span> <button type="button" data-testid="copy-blueprint-files"><i aria-hidden="true"></i></button></div> <!>`,1),Bs=U(`<!> <!>`,1),Vs=U(`<p class="file-preview-placeholder"> </p>`),Hs=U(`<p class="file-preview-name"> </p> <p class="file-preview-placeholder"> </p>`,1),Us=U(`<p class="file-preview-name"> </p> <span class="file-preview-binary"> </span>`,1),Ws=U(`<p class="file-preview-name"> </p> <img/>`,1),Gs=U(`<p class="file-preview-name"> </p> <video controls=""></video>`,3),Ks=U(`<span class="file-preview-truncated"> </span>`),qs=U(`<p class="file-preview-name"> </p> <!> <pre><code> </code></pre>`,1),Js=U(`<aside class="file-explorer"><header class="explorer-header"><div class="explorer-breadcrumb"><!> <!></div> <button class="explorer-close" type="button">×</button></header> <div class="explorer-top"><div class="explorer-list"><!></div></div> <div class="explorer-divider"></div> <div class="explorer-bottom"><div class="file-preview"><!></div></div></aside>`);function Ys(e,t){qe(t,!0);let n=P(``),r=P(I([])),i=P(I([])),a=P(!1),o=P(!1),s=P(null),c=P(I({status:`idle`}));function l(e){return e?e.split(`/`).map((e,t,n)=>({name:e,path:n.slice(0,t+1).join(`/`),isLast:t===n.length-1})):[]}async function u(e){F(n,e,!0),F(c,{status:`idle`},!0),await d(e)}async function d(e){F(n,e,!0),F(a,!0),F(o,!1);try{let t=await fetch(`/api/blueprint/files?path=${encodeURIComponent(e)}`).then(e=>e.json());F(r,t.folders,!0),F(i,t.files,!0)}catch{F(o,!0),F(r,[],!0),F(i,[],!0)}finally{F(a,!1)}}async function f(e){t.onnavigate(e),await d(e)}async function p(e,t){F(c,{status:`loading`,name:t},!0);try{let n=await fetch(`/api/blueprint/file-content?path=${encodeURIComponent(e)}`).then(e=>e.json());n.type===`image`?F(c,{status:`image`,name:t,url:n.url},!0):n.type===`video`?F(c,{status:`video`,name:t,url:n.url},!0):n.type===`binary`?F(c,{status:`binary`,name:t},!0):n.type===`text`&&n.content!==void 0&&(F(c,{status:`text`,name:t,content:n.content,language:n.language,truncated:n.truncated},!0),setTimeout(()=>{let e=document.querySelector(`.file-preview code`);e&&window.hljs&&(window.hljs.highlightElement(e),window.hljs.lineNumbersBlock&&window.hljs.lineNumbersBlock(e))},0))}catch{F(c,{status:`error`,name:t},!0)}}function m(e){return V(n)?`${V(n)}/${e}`:e}async function h(e,t){if(t.length)try{await navigator.clipboard.writeText(t.join(`
|
|
5
|
+
`)),F(s,e,!0),setTimeout(()=>{V(s)===e&&F(s,null)},1800)}catch{}}var g={open:u},_=Js(),v=L(_),y=L(v),b=L(y),x=e=>{var t=As();H(`click`,t,()=>f(``)),W(e,t)},S=e=>{W(e,js())};K(b,e=>{V(n)?e(x):e(S,-1)}),q(z(b,2),17,()=>l(V(n)),Qr,(e,t)=>{var n=Ps(),r=z(R(n),2),i=e=>{var n=Ms(),r=L(n,!0);j(n),B(()=>G(r,V(t).name)),W(e,n)},a=e=>{var n=Ns(),r=L(n,!0);j(n),B(()=>G(r,V(t).name)),H(`click`,n,()=>f(V(t).path)),W(e,n)};K(r,e=>{V(t).isLast?e(i):e(a,-1)}),W(e,n)}),j(y);var C=z(y,2);j(v);var w=z(v,2),T=L(w),E=L(T),D=e=>{var t=Fs(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`blueprint.explorer.loading`)]),W(e,t)},ee=e=>{var t=Fs(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`blueprint.explorer.error`)]),W(e,t)},te=e=>{var t=Fs(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`blueprint.explorer.empty`)]),W(e,t)},O=e=>{var t=Bs(),n=R(t),a=e=>{var t=Ls(),n=R(t),i=L(n),a=L(i,!0);j(i);var o=z(i,2),c=L(o);j(o),j(n),q(z(n,2),17,()=>V(r),Qr,(e,t)=>{var n=Is(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t))),H(`click`,n,()=>f(m(V(t)))),W(e,n)}),B((e,t)=>{G(a,e),vi(o,1,`explorer-copy-btn ${V(s)===`folders`?`copied`:``}`),J(o,`title`,t),vi(c,1,`fa-${V(s)===`folders`?`solid fa-check`:`regular fa-copy`}`)},[()=>Y(`blueprint.explorer.folders`),()=>Y(`blueprint.explorer.copy_folders`)]),H(`click`,o,()=>h(`folders`,V(r))),W(e,t)};K(n,e=>{V(r).length&&e(a)});var o=z(n,2),c=e=>{var t=zs(),n=R(t),r=L(n),a=L(r,!0);j(r);var o=z(r,2),c=L(o);j(o),j(n),q(z(n,2),17,()=>V(i),Qr,(e,t)=>{var n=Rs(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t))),H(`click`,n,()=>p(m(V(t)),V(t))),W(e,n)}),B((e,t)=>{G(a,e),vi(o,1,`explorer-copy-btn ${V(s)===`files`?`copied`:``}`),J(o,`title`,t),vi(c,1,`fa-${V(s)===`files`?`solid fa-check`:`regular fa-copy`}`)},[()=>Y(`blueprint.explorer.files`),()=>Y(`blueprint.explorer.copy_files`)]),H(`click`,o,()=>h(`files`,V(i))),W(e,t)};K(o,e=>{V(i).length&&e(c)}),W(e,t)};K(E,e=>{V(a)?e(D):V(o)?e(ee,1):V(r).length===0&&V(i).length===0?e(te,2):e(O,-1)}),j(T),j(w);var k=z(w,4),ne=L(k),A=L(ne),re=e=>{var t=Vs(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`blueprint.preview.placeholder`)]),W(e,t)},ie=e=>{var t=Hs(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i,!0);j(i),B(e=>{G(r,V(c).name),G(a,e)},[()=>Y(`blueprint.preview.loading`)]),W(e,t)},ae=e=>{var t=Hs(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i,!0);j(i),B(e=>{G(r,V(c).name),G(a,e)},[()=>Y(`blueprint.preview.error`)]),W(e,t)},oe=e=>{var t=Us(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i,!0);j(i),B(e=>{G(r,V(c).name),G(a,e)},[()=>Y(`blueprint.preview.binary`)]),W(e,t)},se=e=>{var t=Ws(),n=R(t),r=L(n,!0);j(n);var i=z(n,2);B(()=>{G(r,V(c).name),J(i,`src`,V(c).url),J(i,`alt`,V(c).name)}),W(e,t)},ce=e=>{var t=Gs(),n=R(t),r=L(n,!0);j(n);var i=z(n,2);B(()=>{G(r,V(c).name),J(i,`src`,V(c).url)}),W(e,t)},le=e=>{var t=qs(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=e=>{var t=Ks(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`blueprint.preview.truncated`)]),W(e,t)};K(i,e=>{V(c).truncated&&e(a)});var o=z(i,2),s=L(o),l=L(s,!0);j(s),j(o),B(()=>{G(r,V(c).name),vi(s,1,fi(V(c).language&&V(c).language!==`plaintext`?`language-${V(c).language}`:``)),G(l,V(c).content)}),W(e,t)};return K(A,e=>{V(c).status===`idle`?e(re):V(c).status===`loading`?e(ie,1):V(c).status===`error`?e(ae,2):V(c).status===`binary`?e(oe,3):V(c).status===`image`?e(se,4):V(c).status===`video`?e(ce,5):V(c).status===`text`&&e(le,6)}),j(ne),j(k),j(_),H(`click`,C,function(...e){t.onclose?.apply(this,e)}),W(e,_),Je(g)}Pr([`click`]);var Xs=`(?:<!--\\s*table-(?:style|border|color):\\s*[a-z][a-z0-9_-]*\\s*-->\\n+){0,3}`,Zs=`\\|[^\\n]*\\|\\n\\|[ \\t:|-]*-[ \\t:|-]*\\|`,Qs=Xs+`(?:\\|[^\\n]*\\|\\n)\\|[ \\t:|-]*-[ \\t:|-]*\\|(?:\\n\\|[^\\n]*\\|)*`;function $s(){return Qs}var ec=new Set([`compact`,`striped`,`full`]),tc=new Set([`bordered`,`borderless`]),nc=new Set([`bordered`,`borderless`]),rc=new Set([`info`,`success`,`warning`,`danger`,`note`]);function ic(e){let t=null,n=null,r=null;for(let i of(e||``).matchAll(/<!--\s*table-(style|border|color):\s*([a-z][a-z0-9_-]*)\s*-->/g)){let[,e,a]=i;e===`style`&&ec.has(a)&&(t=a),e===`style`&&nc.has(a)&&(n=a),e===`border`&&tc.has(a)&&(n=a),e===`color`&&rc.has(a)&&(r=a)}return{style:t,border:n,color:r}}function ac(e){let t=typeof e==`string`?e.trim():``,n=RegExp(`^${Xs}`);return ic(t.match(n)?.[0]||``)}function oc(e){let t=ic([e?.style?`<!-- table-style: ${e.style} -->`:``,e?.border?`<!-- table-border: ${e.border} -->`:``,e?.color?`<!-- table-color: ${e.color} -->`:``].filter(Boolean).join(`
|
|
6
6
|
`)),n=[];return t.style&&n.push(`<!-- table-style: ${t.style} -->`),t.border===`bordered`&&n.push(`<!-- table-border: bordered -->`),t.color&&n.push(`<!-- table-color: ${t.color} -->`),n.join(`
|
|
7
|
-
`)}function
|
|
8
|
-
`).filter(e=>/^\|.*\|$/.test(e.trim()));return t.length>=2&&/^\|.*\|$/.test(t[0].trim())&&
|
|
7
|
+
`)}function sc(e){return e.trim().split(`|`).slice(1,-1).map(e=>e.trim())}function cc(e){let t=sc(e);return t.length>0&&t.every(e=>/^:?-+:?$/.test(e.replace(/\s+/g,``)))}function lc(e){let t=(typeof e==`string`?e.trim():``).replace(RegExp(`^${Xs}`),``).split(`
|
|
8
|
+
`).filter(e=>/^\|.*\|$/.test(e.trim()));return t.length>=2&&/^\|.*\|$/.test(t[0].trim())&&cc(t[1])}function uc(e){let t=e.replace(/^(`{3,})[^\n]*$([\s\S]*?)^\1[ \t]*$/gm,e=>`
|
|
9
9
|
`.repeat((e.match(/\n/g)??[]).length));return t=t.replace(/^:::compare[ \t]*\n([\s\S]*?)^:::[ \t]*$/gm,e=>`
|
|
10
|
-
`.repeat((e.match(/\n/g)??[]).length)),t}function
|
|
11
|
-
`),r=null,i=null,a=!1,o=!1,s=!1,c=``,l=0,u=!1;for(let e of n){let n=e.trimEnd();if(/^:::compare[ \t]*$/.test(n)){u=!0,o=!1,r=null,i=null,a=!1;continue}if(u){/^:::[ \t]*$/.test(n)&&(u=!1);continue}let d=/^(`{3,}|~{3,})/.exec(n);if(d){let e=d[1][0],t=d[1].length;if(!s){s=!0,c=e,l=t,o=!1,r=null,i=null,a=!1;continue}else if(e===c&&t>=l&&/^[`~]+[ \t]*$/.test(n)){s=!1,c=``,l=0;continue}}if(s)continue;let f=n.match(
|
|
10
|
+
`.repeat((e.match(/\n/g)??[]).length)),t}function dc(e){return e.replace(/^\s{0,3}(?:> ?)+/gm,``)}function fc(e){if(typeof e!=`string`)return[];let t=uc(dc(e)),n=[],r=RegExp(`(${Xs})(${Zs})`,`g`);for(let e of t.matchAll(r))n.push(ic(e[1]||``));return n}var pc={note:`info`,tip:`success`,caution:`warning`,danger:`error`},mc=new Set([`info`,`success`,`warning`,`error`,...Object.keys(pc)]);function hc(e){return pc[e]??e}var gc=/^<!--\s*quote-type:\s*([a-z][a-z0-9_-]*)\s*-->$/,_c=/^<!--\s*quote-title:\s*(.+?)\s*-->$/,vc=/^<!--\s*quote-icon\s*-->$/,yc=`(?:<!--\\s*quote-(?:type|title|icon)[^\\n]*-->\\n+){0,3}`,bc=`>[ \\t][^\\n]*(?:\\n[ \\t]*>.*)*`;function xc(){return yc+bc}function Sc(e){if(typeof e!=`string`)return[];let t=[],n=e.split(`
|
|
11
|
+
`),r=null,i=null,a=!1,o=!1,s=!1,c=``,l=0,u=!1;for(let e of n){let n=e.trimEnd();if(/^:::compare[ \t]*$/.test(n)){u=!0,o=!1,r=null,i=null,a=!1;continue}if(u){/^:::[ \t]*$/.test(n)&&(u=!1);continue}let d=/^(`{3,}|~{3,})/.exec(n);if(d){let e=d[1][0],t=d[1].length;if(!s){s=!0,c=e,l=t,o=!1,r=null,i=null,a=!1;continue}else if(e===c&&t>=l&&/^[`~]+[ \t]*$/.test(n)){s=!1,c=``,l=0;continue}}if(s)continue;let f=n.match(gc);if(f){let e=f[1];r=mc.has(e)?hc(e):null;continue}let p=n.match(_c);if(p){i=p[1];continue}if(vc.test(n)){a=!0;continue}if(n.startsWith(`>`)){o||=(t.push({type:r,title:i,icon:a}),r=null,i=null,a=!1,!0);continue}o=!1,n.trim()!==``&&(r=null,i=null,a=!1)}return t}var Cc={info:`<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>`,success:`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"/></svg>`,warning:`<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>`,error:`<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></svg>`};function wc(e){return Cc[hc(e??``)]??Cc.info}var Tc=new Set([`full`,`3/4`,`2/3`,`1/2`,`1/3`,`1/4`]),Ec=new Set([`left`,`center`,`right`]),Dc=`(?:<!--\\s*image-(?:width|align):\\s*[^\\n]+?\\s*-->\\n+){0,2}`,Oc=`!\\[[^\\]\\n]*\\]\\([^\\n)]+\\)`;function kc(){return Dc+Oc}function Ac(e){let t=null,n=null;for(let r of(e||``).matchAll(/<!--\s*image-(width|align):\s*([^\s]+)\s*-->/g)){let[,e,i]=r;e===`width`&&Tc.has(i)&&(t=i),e===`align`&&Ec.has(i)&&(n=i)}return{width:t,align:n}}function jc(e){return Ac((typeof e==`string`?e.trim():``).match(RegExp(`^${Dc}`))?.[0]||``)}function Mc(e){let t=Ac([e.width?`<!-- image-width: ${e.width} -->`:``,e.align?`<!-- image-align: ${e.align} -->`:``].filter(Boolean).join(`
|
|
12
12
|
`)),n=[];return t.width&&n.push(`<!-- image-width: ${t.width} -->`),t.align&&n.push(`<!-- image-align: ${t.align} -->`),n.join(`
|
|
13
|
-
`)}function
|
|
13
|
+
`)}function Nc(e){let t=e.replace(/^(`{3,}|~{3,})[^\n]*$([\s\S]*?)^\1[ \t]*$/gm,e=>`
|
|
14
14
|
`.repeat((e.match(/\n/g)??[]).length));return t=t.replace(/^:::compare[ \t]*\n([\s\S]*?)^:::[ \t]*$/gm,e=>`
|
|
15
|
-
`.repeat((e.match(/\n/g)??[]).length)),t}function
|
|
15
|
+
`.repeat((e.match(/\n/g)??[]).length)),t}function Pc(e){if(typeof e!=`string`)return[];let t=Nc(e),n=[],r=RegExp(`(${Dc})(${Oc})`,`g`);for(let e of t.matchAll(r))n.push(Ac(e[1]||``));return n}function Fc(e){return{full:`ld-image-width-full`,"3/4":`ld-image-width-three-quarters`,"2/3":`ld-image-width-two-thirds`,"1/2":`ld-image-width-half`,"1/3":`ld-image-width-third`,"1/4":`ld-image-width-quarter`}[e]}var Ic=new Set([`full`,`3/4`,`2/3`,`1/2`,`1/3`,`1/4`]),Lc=new Set([`left`,`center`,`right`]),Rc=`[ \\t]*<!--\\s*(?:code|mermaid)-(?:width|align):\\s*[^\\n]+?\\s*-->[ \\t]*\\n`,zc="[ \\t]*```[^\\n]*\\n[\\s\\S]*?^[ \\t]*```[ \\t]*";function Bc(){return`(?:${Rc}){0,2}${zc}`}function Vc(e){return e.trim().toLowerCase()===`mermaid`?`mermaid`:`code`}function Hc(e,t){return t?e.split(`
|
|
16
16
|
`).map(e=>e.startsWith(t)?e.slice(t.length):e).join(`
|
|
17
|
-
`):e}function
|
|
18
|
-
`)}function
|
|
19
|
-
`.repeat((e.match(/\n/g)??[]).length))}function
|
|
20
|
-
`)}function
|
|
21
|
-
`).filter(e=>/^\|.*\|$/.test(e.trim())).filter(e=>!
|
|
17
|
+
`):e}function Uc(e,t=``){return Hc(e.trimEnd(),t).trim()}function Wc(e){return e.replace(/^(?:[ \t]*<!--\s*(?:code|mermaid)-(?:width|align):\s*[^\n]+?\s*-->[ \t]*\n){0,2}/,``)}function Gc(e){let t=e.trim(),n=Vc(Wc(t).match(/^```[ \t]*([^\n]*)/)?.[1]??``),r=null,i=null;for(let e of t.matchAll(/<!--\s*(code|mermaid)-(width|align):\s*([^\s]+)\s*-->/g)){let[,t,a,o]=e;t===n&&(a===`width`&&Ic.has(o)&&(r=o),a===`align`&&Lc.has(o)&&(i=o))}return{kind:n,width:r,align:i}}function Kc(e){let t=Vc(e.language||``),n=Ic.has(e.width)?e.width:null,r=Lc.has(e.align)?e.align:null,i=[];return n&&i.push(`<!-- ${t}-width: ${n} -->`),r&&i.push(`<!-- ${t}-align: ${r} -->`),i.join(`
|
|
18
|
+
`)}function qc(e){return e.replace(/^:::compare[ \t]*\n[\s\S]*?^:::[ \t]*$/gm,e=>`
|
|
19
|
+
`.repeat((e.match(/\n/g)??[]).length))}function Jc(e){if(typeof e!=`string`)return[];let t=[],n=RegExp(`^${Bc()}`,`gm`),r=qc(e);for(let e of r.matchAll(n))t.push(Gc(e[0]));return t}function Yc(e,t){return`ld-${e}-width-${{full:`full`,"3/4":`three-quarters`,"2/3":`two-thirds`,"1/2":`half`,"1/3":`third`,"1/4":`quarter`}[t]}`}function Xc(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}var Zc=2,Qc=2,$c=1,el=1,tl=`snip-table-context-menu`;function nl(e){return{data:[],onPreview:e}}function rl(e){e.data=[Array.from({length:Qc},(e,t)=>`En-tête ${t+1}`),Array(Qc).fill(``)];let t=document.getElementById(`snip-table-style`);t&&(t.value=``);let n=document.getElementById(`snip-table-bordered`);n&&(n.checked=!1);let r=document.getElementById(`snip-table-color`);r&&(r.value=``),hl(e)}function il(e){for(e.data.length||(e.data=Array.from({length:Zc},(e,t)=>Array.from({length:Qc},(e,n)=>t===0?`En-tête ${n+1}`:``)));e.data.length<$c;)e.data.push([]);let t=Math.max(el,...e.data.map(e=>e.length));e.data.forEach(e=>{for(;e.length<t;)e.push(``)})}function al(e,t,n=!1){queueMicrotask(()=>{let r=document.querySelector(`#snip-table-grid input[data-tr="${e}"][data-tc="${t}"]`);if(r)if(r.focus({preventScroll:!0}),n)r.select();else{let e=r.value.length;r.setSelectionRange(e,e)}})}function ol(e,t){il(e);let n=e.data[0]?.length??el;e.data.forEach(e=>{e.push(``)}),hl(e),al(t,n)}function sl(e,t,n=!1){il(e);let r=e.data.length,i=e.data[0]?.length??el;e.data.push(Array(i).fill(``)),hl(e),al(r,Math.max(0,Math.min(t,i-1)),n)}function cl(e,t,n,r=!1){il(e);let i=e.data.length,a=e.data[0]?.length??el,o=Math.max(0,Math.min(t,i-1)),s=n;s=Math.max(0,Math.min(s,a-1)),al(o,s,r)}function ll(e,t){fl(),il(e);let n=e.data[0]?.length??el;n<=el||(e.data.forEach(e=>{e.splice(t,1)}),hl(e),al(0,Math.max(0,Math.min(t,n-2))))}function ul(e,t){if(fl(),il(e),e.data.length<=$c)return;let n=e.data[0]?.length??el;e.data.splice(t,1),hl(e),al(Math.max(0,Math.min(t,e.data.length-1)),Math.min(n-1,0))}function dl(e,t,n){fl();let r=Number(t.dataset.tr),i=Number(t.dataset.tc),a=e.data.length,o=e.data[0]?.length??el;if(n.key===`Tab`){if(n.preventDefault(),n.shiftKey){i>0?cl(e,r,i-1,!0):r>0?cl(e,r-1,o-1,!0):cl(e,r,i,!0);return}i<o-1?cl(e,r,i+1,!0):r<a-1?cl(e,r+1,0,!0):sl(e,0,!0);return}if(n.key===`ArrowUp`){n.preventDefault(),cl(e,r-1,i);return}if(n.key===`ArrowDown`){n.preventDefault(),r<a-1?cl(e,r+1,i):sl(e,i);return}if(n.key===`ArrowLeft`){n.preventDefault(),cl(e,r,i-1);return}n.key===`ArrowRight`&&(n.preventDefault(),i<o-1?cl(e,r,i+1):ol(e,r))}function fl(){document.getElementById(tl)?.remove()}function pl(e,t,n){n.preventDefault(),fl(),il(e);let r=Number(t.dataset.tr),i=Number(t.dataset.tc),a=e.data.length>$c,o=(e.data[0]?.length??el)>el,s=document.createElement(`div`);s.id=tl,s.className=`fixed z-[80] min-w-44 overflow-hidden rounded-md border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 shadow-lg text-sm`,s.style.left=`${n.clientX}px`,s.style.top=`${n.clientY}px`;let c=document.createElement(`button`);c.type=`button`,c.textContent=Y(`snippet.table_delete_row`),c.disabled=!a,c.className=`block w-full px-3 py-2 text-left text-gray-700 dark:text-gray-100 hover:bg-red-50 dark:hover:bg-red-900/30 disabled:opacity-40 disabled:hover:bg-transparent`,c.addEventListener(`click`,()=>ul(e,r)),s.appendChild(c);let l=document.createElement(`button`);l.type=`button`,l.textContent=Y(`snippet.table_delete_column`),l.disabled=!o,l.className=`block w-full px-3 py-2 text-left text-gray-700 dark:text-gray-100 hover:bg-red-50 dark:hover:bg-red-900/30 disabled:opacity-40 disabled:hover:bg-transparent`,l.addEventListener(`click`,()=>ll(e,i)),s.appendChild(l),document.body.appendChild(s),window.setTimeout(()=>{document.addEventListener(`click`,fl,{once:!0})},0)}function ml(){let e=document.getElementById(`snip-table-style`)?.value,t=document.getElementById(`snip-table-bordered`)?.checked,n=document.getElementById(`snip-table-color`)?.value;return[`ld-table-edit-table`,`w-full`,`table-fixed`,`border-collapse`,e?`table-style-${e}`:``,t?`table-border-bordered`:``,n?`table-color-${n}`:``].filter(Boolean).join(` `)}function hl(e){il(e);let t=e.data.length,n=e.data[0]?.length??0,r=document.getElementById(`snip-table-rows`);r&&(r.textContent=String(t));let i=document.getElementById(`snip-table-cols`);i&&(i.textContent=String(n));let a=`ld-table-edit-input block w-full min-w-[160px] bg-transparent border-0 rounded-none focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500`,o=`${a} font-semibold`,s=`${a}`,c=`<div class="ld-table-editor min-w-full overflow-x-auto rounded-md bg-white dark:bg-gray-950">`;c+=`<table class="${ml()}"><tbody>`;for(let r=0;r<t;r++){c+=`<tr>`;for(let t=0;t<n;t++){let n=r===0?o:s;c+=`<td><input type="text" value="${Xc(e.data[r][t])}" data-tr="${r}" data-tc="${t}" class="${n}" /></td>`}c+=`</tr>`}c+=`</tbody></table></div>`;let l=document.getElementById(`snip-table-grid`);l&&(l.innerHTML=c,l.querySelectorAll(`input[data-tr]`).forEach(t=>{t.addEventListener(`input`,()=>{let n=Number(t.dataset.tr),r=Number(t.dataset.tc);e.data[n][r]=t.value,e.onPreview()}),t.addEventListener(`keydown`,n=>dl(e,t,n)),t.addEventListener(`contextmenu`,n=>pl(e,t,n)),t.addEventListener(`mouseup`,n=>{n.button===2&&pl(e,t,n)})})),e.onPreview()}function gl(e){let t=e.data;if(!t.length||!t[0]?.length)return``;let n=t[0].length,r=Array(n).fill(3);t.forEach(e=>{e.forEach((e,t)=>{r[t]=Math.max(r[t],e.length)})});let i=e=>`| ${e.map((e,t)=>e.padEnd(r[t])).join(` | `)} |`,a=`| ${r.map(e=>`-`.repeat(e)).join(` | `)} |`;return[i(t[0]),a,...t.slice(1).map(i)].join(`
|
|
20
|
+
`)}function _l(e){let t=e.replace(/^\s{0,3}(?:> ?)+/gm,``),n=ac(t),r=t.split(`
|
|
21
|
+
`).filter(e=>/^\|.*\|$/.test(e.trim())).filter(e=>!cc(e)).map(sc),i=r.length?Math.max(...r.map(e=>e.length)):0;return r.forEach(e=>{for(;e.length<i;)e.push(``)}),{attrs:n,rows:r}}function vl(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function yl(e){return{items:[],onPreview:e}}function bl(e){e.items=[{name:`dossier/`,depth:0},{name:`fichier.md`,depth:1}],xl(e)}function xl(e){let t=`text-xs px-1.5 py-1 rounded border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-30 disabled:cursor-not-allowed transition-colors`,n=document.getElementById(`snip-tree-list`);n&&(n.innerHTML=e.items.map((e,n)=>`
|
|
22
22
|
<div class="flex items-center gap-1">
|
|
23
23
|
<button data-tree-indent="${n}" data-tree-delta="-1" ${e.depth===0?`disabled`:``} class="${t}" title="Désindenter">←</button>
|
|
24
24
|
<button data-tree-indent="${n}" data-tree-delta="1" class="${t}" title="Indenter">→</button>
|
|
25
25
|
<span class="text-xs text-gray-300 dark:text-gray-600 font-mono w-4 shrink-0 text-center">${e.depth>0?e.depth:``}</span>
|
|
26
|
-
<input type="text" value="${
|
|
26
|
+
<input type="text" value="${vl(e.name)}" data-tree-name="${n}"
|
|
27
27
|
class="flex-1 px-2 py-1 text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-blue-500 font-mono" />
|
|
28
28
|
<button data-tree-remove="${n}" class="${t}" title="Supprimer">×</button>
|
|
29
|
-
</div>`).join(``),n.querySelectorAll(`button[data-tree-indent]`).forEach(t=>{t.addEventListener(`click`,()=>
|
|
30
|
-
`)}\n\`\`\``}function
|
|
31
|
-
`).map(e=>{let t=e.match(/^((?:│ {3}| {4})*)(?:├── |└── )([\s\S]+)$/);return t?{name:t[2],depth:t[1].length/4+1}:{name:e,depth:0}})}}var
|
|
32
|
-
`),
|
|
33
|
-
`);function
|
|
34
|
-
`).filter(e=>e.trim())}function
|
|
35
|
-
`);let n=new Map;return
|
|
36
|
-
`)}function
|
|
37
|
-
`):
|
|
38
|
-
`)}function
|
|
29
|
+
</div>`).join(``),n.querySelectorAll(`button[data-tree-indent]`).forEach(t=>{t.addEventListener(`click`,()=>Sl(e,Number(t.dataset.treeIndent),Number(t.dataset.treeDelta)))}),n.querySelectorAll(`input[data-tree-name]`).forEach(t=>{t.addEventListener(`input`,()=>{e.items[Number(t.dataset.treeName)].name=t.value,e.onPreview()})}),n.querySelectorAll(`button[data-tree-remove]`).forEach(t=>{t.addEventListener(`click`,()=>wl(e,Number(t.dataset.treeRemove)))}),e.onPreview())}function Sl(e,t,n){e.items[t].depth=Math.max(0,e.items[t].depth+n),xl(e)}function Cl(e){let t=e.items.length?e.items[e.items.length-1].depth:0;e.items.push({name:``,depth:t}),xl(e)}function wl(e,t){e.items.splice(t,1),xl(e)}function Tl(e){let t=e.items;if(!t.length)return"```text\n(vide)\n```";let n=[];for(let e=0;e<t.length;e++){let{name:r,depth:i}=t[e];if(i===0){n.push(r);continue}let a=``;for(let n=0;n<i-1;n++){let r=!1;for(let i=e+1;i<t.length;i++)if(t[i].depth<=n+1){r=t[i].depth===n+1;break}a+=r?`│ `:` `}let o=!0;for(let n=e+1;n<t.length&&!(t[n].depth<i);n++)if(t[n].depth===i){o=!1;break}n.push(a+(o?`└── `:`├── `)+r)}return`\`\`\`text\n${n.join(`
|
|
30
|
+
`)}\n\`\`\``}function El(e){return{items:e.replace(/^```text\n/,``).replace(/\n```$/,``).split(`
|
|
31
|
+
`).map(e=>{let t=e.match(/^((?:│ {3}| {4})*)(?:├── |└── )([\s\S]+)$/);return t?{name:t[2],depth:t[1].length/4+1}:{name:e,depth:0}})}}var Dl=[`1. Élément 1`,`2. Élément 2`,` 1. Sous-élément 2.1`,` 2. Sous-élément 2.2`,`3. Élément 3`,` 1. Sous-élément 3.1`,` 1. Sous-sous-élément 3.1.1`].join(`
|
|
32
|
+
`),Ol=[`- Élément 1`,`- Élément 2`,` - Sous-élément 2.1`,` - Sous-élément 2.2`,`- Élément 3`,` - Sous-élément 3.1`,` - Sous-sous-élément 3.1.1`].join(`
|
|
33
|
+
`);function kl(){return Dl}function Al(){return Ol}function jl(){return/^1\. .*(?:\n(?![ \t]*$)(?:\d+\. .*| {3,}.*|(?!(?:[-*+] |#{1,6}\s|>|```|~~~|\|)).+))*/gm}function Ml(){return/^[-*+] .*(?:\n(?![ \t]*$)(?:[-*+] .*| {2,}.*|(?!(?:\d+\. |#{1,6}\s|>|```|~~~|\|)).+))*/gm}function Nl(e){return/^1\. /.test((e||``).trim())}function Pl(e){return/^[-*+] /.test((e||``).trim())}function Fl(e){return(e||``).split(`
|
|
34
|
+
`).filter(e=>e.trim())}function Il(e){let t=e||kl();if(/^\s*\d+\.\s+/m.test(t))return Fl(t).join(`
|
|
35
|
+
`);let n=new Map;return Fl(t).map(e=>{let t=e.match(/^\s*/)?.[0],r=e.trim();if(/^[-*+]\s+/.test(r))return`${t}${r}`;let i=t?.length||0;for(let e of Array.from(n.keys()))e>i&&n.delete(e);let a=(n.get(i)||0)+1;return n.set(i,a),`${t}${a}. ${r}`}).join(`
|
|
36
|
+
`)}function Ll(e){let t=e||Al();return/^\s*[-*+]\s+/m.test(t)?Fl(t).join(`
|
|
37
|
+
`):Fl(t).map(e=>`${e.match(/^\s*/)?.[0]}- ${e.trim()}`).join(`
|
|
38
|
+
`)}function Rl(e,t){return e||t}function zl(e){return e.replace(/\s+/g,` `).trim()}var Bl=100,Vl=6,Hl=4;function Ul(e){return`<details>\n<summary>${Rl(e.summary,e.summaryFallback)}</summary>\n\n${e.body&&e.body.trim()!==``?e.body:e.bodyFallback}\n\n</details>`}function Wl(e){let t=Rl(e.text,e.textFallback);return`<a href="${Rl(e.url,`https://...`)}" target="_blank">${t}</a>`}function Gl(e){return`[${Rl(e.text,e.title||e.docId)}](?doc=${encodeURIComponent(e.docId)})`}function Kl(e){return`[${Rl(e.text,e.textFallback)}](#${Rl(e.anchor,e.anchorFallback)})`}function ql(e){let t=Rl(e.text,e.textFallback),n=Rl(e.anchor,e.anchorFallback);return`[${t}](?doc=${encodeURIComponent(e.docId)}#${n})`}function Jl(e){let t=e.lang||``,n=Rl(e.code,`// code ici`),r=Kc({language:t,width:e.width,align:e.align}),i=`\`\`\`${t}\n${n}\n\`\`\``,a=r?`${r}\n${i}`:i;return e.inlineIndent?a.split(`
|
|
39
39
|
`).map(t=>e.inlineIndent+t).join(`
|
|
40
|
-
`):a}function
|
|
40
|
+
`):a}function Yl(e){let t=Rl(e.content,`Citation ici
|
|
41
41
|
|
|
42
42
|
— Auteur`).split(`
|
|
43
43
|
`).map(e=>e.trim()?`> ${e}`:`>`).join(`
|
|
44
44
|
`),n=[];return e.type&&n.push(`<!-- quote-type: ${e.type} -->`),e.title&&n.push(`<!-- quote-title: ${e.title} -->`),e.icon&&n.push(`<!-- quote-icon -->`),n.length>0?`${n.join(`
|
|
45
|
-
`)}\n${t}`:t}function
|
|
45
|
+
`)}\n${t}`:t}function Xl(e,t){let n=Number(e.slice(-1)),r=Rl(t.text?.trim(),t.fallback);return`${`#`.repeat(n)} ${r}`}function Zl(e){let t=Rl(e.alt,`image`),n=Rl(e.url,`./images/mon-image.png`),r=Mc({width:e.width,align:e.align}),i=``;return r?`${r}\n${i}`:i}function Ql(e){let t=oc({style:e.style||``,border:e.bordered?`bordered`:``,color:e.color||``}),n=(t?`${t}\n`:``)+e.markdown;return e.inlineIndent?n.split(`
|
|
46
46
|
`).map(t=>e.inlineIndent+t).join(`
|
|
47
|
-
`):n}function
|
|
48
|
-
`)}\n\`\`\``}if(t===`tree-view`)return`\`\`\`mermaid\ntreeView-beta\n${(e.treeItems||[]).map((t,n)=>{let r=Number(t.level),i=Number.isFinite(r)?Math.min(
|
|
49
|
-
`)}\n\`\`\``;if(t===`sequence`)return`\`\`\`mermaid\nsequenceDiagram\n${(e.sequenceItems||[]).map((t,n)=>{let r=
|
|
50
|
-
`)}\n\`\`\``;if(t!==`pie`)return"```mermaid\n```\n";let n=
|
|
51
|
-
`)}\n\`\`\``}function
|
|
47
|
+
`):n}function $l(e){return`[](/diagram?id=${e.id})`}var eu=[`sky`,`amber`,`emerald`,`rose`,`violet`,`slate`],tu=new Set(eu);function nu(e,t){let n=(e||``).trim().toLowerCase();return tu.has(n)?n:eu[t%eu.length]}function ru(e,t,n){return typeof e==`string`?{label:e,color:nu(n?.[t],t)}:{label:e.label,color:nu(e.color||n?.[t],t)}}function iu(e){return e.replace(/&/g,`&`).replace(/"/g,`"`)}function au(e){let t=(e.columns||[]).slice(0,6).map((t,n)=>ru(t,n,e.colors)).map(e=>({...e,label:(e.label||``).replace(/\|/g,` `).trim()})).filter(e=>!!e.label),n=t.length?t:(e.columnsFallback||[`Todo`,`Doing`,`Done`]).slice(0,6).map((e,t)=>({label:e,color:nu(void 0,t)}));return`<div data-ld-kanban data-columns="${n.map(e=>iu(e.label)).join(`|`)}" data-colors="${n.map((e,t)=>iu(nu(e.color,t))).join(`|`)}"></div>`}function ou(e){let t=e.kind||`pie`;if(t===`timeline`){let t=zl(e.timelineTitle||e.timelineTitleFallback||`DOCUMENTATION ROADMAP`),n=new Map;return(e.timelineItems||[]).forEach((t,r)=>{let i=zl(t.period||`${e.timelinePeriodFallback||`Period`} ${r+1}`),a=zl(t.event||`${e.timelineEventFallback||`Event`} ${r+1}`);n.set(i,[...n.get(i)||[],a])}),`\`\`\`mermaid\ntimeline\n title ${t}\n${[...n.entries()].map(([e,t])=>` ${e} : ${t.join(` : `)}`).join(`
|
|
48
|
+
`)}\n\`\`\``}if(t===`tree-view`)return`\`\`\`mermaid\ntreeView-beta\n${(e.treeItems||[]).map((t,n)=>{let r=Number(t.level),i=Number.isFinite(r)?Math.min(Vl,Math.max(0,r)):0,a=` `.repeat((i+1)*Hl),o=zl(t.label||`${e.treeLabelFallback||`Node`} ${n+1}`),s=zl(t.decorator||``),c=zl(t.note||``);return`${a}${o}${s?` ${s}`:``}${c?` ## ${c}`:``}`}).join(`
|
|
49
|
+
`)}\n\`\`\``;if(t===`sequence`)return`\`\`\`mermaid\nsequenceDiagram\n${(e.sequenceItems||[]).map((t,n)=>{let r=zl(t.to||`${e.sequenceActorFallback||`Participant`} ${n+1}`),i=zl(t.message||`${e.sequenceMessageFallback||`Message`} ${n+1}`);return t.type===`note`?` Note ${zl(t.notePosition||`right of`)} ${r}: ${i}`:` ${zl(t.from||`${e.sequenceActorFallback||`Participant`} ${n+1}`)} ${zl(t.arrow||`->>`)} ${r}: ${i}`}).join(`
|
|
50
|
+
`)}\n\`\`\``;if(t!==`pie`)return"```mermaid\n```\n";let n=zl(e.pieTitle||e.title||e.pieTitleFallback||e.titleFallback||`DOC WORKFLOW`),r=Bl;return`\`\`\`mermaid\npie title ${n}\n${(e.pieItems||e.items||[]).map((t,n)=>{let i=(t.label||`${e.pieItemLabelFallback||e.itemLabelFallback||`Item`} ${n+1}`).trim().replace(/"/g,`\\"`),a=Number(t.value),o=Math.min(r,Number.isFinite(a)?Math.max(0,a):0);return r-=o,` "${i}" : ${o}`}).join(`
|
|
51
|
+
`)}\n\`\`\``}function su(e){return`<span style="color:${e.color.border};">${e.content}</span>`}function cu(e){return`<div style="background:${e.color.bg};border-left:4px solid ${e.color.border};color:${e.color.text};padding:1rem 1.25rem;border-radius:0.375rem;margin:1rem 0;">\n\n${e.content}\n\n</div>`}function lu(e){let t=Math.max(2,Math.min(6,Math.round(Number(e.columns))||2)),n=[];e.ratio?.trim()&&n.push(e.ratio.trim()),e.verticalAlign&&e.verticalAlign!==`center`&&n.push(`vertical-align: ${e.verticalAlign}`),e.textAlign&&n.push(`text-align: ${e.textAlign}`),e.gap&&e.gap!==`md`&&n.push(`gap: ${e.gap}`);let r=n.length?`<!-- layout-columns: ${n.join(` | `)} -->`:`<!-- layout-columns -->`,i=[];for(let n=1;n<=t;n+=1)i.push(`<!-- col -->\n\n${e.bodyFallback} ${n}`);return`${r}\n\n${i.join(`
|
|
52
52
|
|
|
53
|
-
`)}\n\n<!-- /layout-columns -->`}function
|
|
53
|
+
`)}\n\n<!-- /layout-columns -->`}function uu(e,t){switch(e){case`collapsible`:return Ul(t);case`link`:return Wl(t);case`doc-link`:return Gl(t);case`anchor-link`:return Kl(t);case`anchor-doc-link`:return ql(t);case`ordered-list`:return Il(t.content);case`unordered-list`:return Ll(t.content);case`code-block`:return Jl(t);case`blockquote`:return Yl(t);case`separator`:return`
|
|
54
54
|
---
|
|
55
|
-
`;case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:return
|
|
56
|
-
`),n=``,r=``,i=!1,a=[],o=!1;for(let e of t){if(!o){let t=e.match(
|
|
57
|
-
`)}}function wu(e){let t=Nc(e),n=e.match(/!\[([^\]\n]*?)\]\(([^\n]+?)\)\s*$/);return n?{alt:n[1],url:n[2],width:t.width||``,align:t.align||``}:{width:t.width||``,align:t.align||``}}function Tu(e,t){let n=Number(e.slice(-1)),r=t.match(RegExp(`^#{${n}}\\s+(.+)$`));return{text:r?r[1].trim():``}}function Eu(e){let t=e.match(/^<span\s[^>]*color:([^;>"]+)[^>]*>([\s\S]*)<\/span>$/);return t?{color:t[1].trim(),content:t[2]}:{}}function Du(e){let t=e.match(/border-left:[^;]*solid\s+(#[0-9a-fA-F]{6})/),n=e.match(/^<div[^>]*>\n\n([\s\S]*?)\n\n<\/div>$/);return{borderColor:t?t[1]:void 0,content:n?n[1]:void 0}}function Ou(e,t){let n=(e||``).match(RegExp(`${t}\\s*=\\s*"([^"]*)"`,`i`));return n?n[1].split(`|`).map(e=>e.replace(/"/g,`"`).replace(/&/g,`&`).trim()):[]}function ku(e){return Ou(e,`data-columns`).filter(Boolean)}function Au(e){let t=ku(e).slice(0,6),n=Ou(e,`data-colors`);return t.map((e,t)=>({label:e,color:iu(n[t],t)}))}function ju(e,t,n={}){let r=(t||``).trim();switch(e){case`collapsible`:return pu(r);case`link`:return mu(r);case`doc-link`:return hu(r);case`anchor-link`:return gu(r);case`anchor-doc-link`:return _u(r);case`ordered-list`:case`unordered-list`:return{content:r};case`code-block`:return vu(t||``,n);case`blockquote`:return Cu(r);case`image`:return wu(r);case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:return Tu(e,r);case`table`:return yl(r);case`tree`:return Ol(r);case`colored-text`:return Eu(r);case`colored-section`:return Du(r);case`compare`:{let e=r.match(/^:::compare[ \t]*\n([\s\S]*?)\n?:::[ \t]*$/);return{content:e?e[1]:``}}case`kanban`:return{columns:Au(r)};default:return{}}}var Mu=/^<div\s+data-ld-kanban\b[^\n]*<\/div>[ \t]*$/im,Nu=`Here is the description`,Pu=`Here is the Full Content`,Fu=140,Iu=2,Lu=`#60a5fa`,Ru=`0.65`,zu=24,Bu=360,Vu=null,Hu={sky:{bg:`#f0f9ff`,border:`#bae6fd`,title:`#075985`,countBg:`#e0f2fe`,countText:`#0369a1`,action:`#0284c7`,actionHover:`#e0f2fe`},amber:{bg:`#fffbeb`,border:`#fde68a`,title:`#92400e`,countBg:`#fef3c7`,countText:`#b45309`,action:`#d97706`,actionHover:`#fef3c7`},emerald:{bg:`#ecfdf5`,border:`#a7f3d0`,title:`#065f46`,countBg:`#d1fae5`,countText:`#047857`,action:`#059669`,actionHover:`#d1fae5`},rose:{bg:`#fff1f2`,border:`#fecdd3`,title:`#9f1239`,countBg:`#ffe4e6`,countText:`#be123c`,action:`#e11d48`,actionHover:`#ffe4e6`},violet:{bg:`#f5f3ff`,border:`#ddd6fe`,title:`#5b21b6`,countBg:`#ede9fe`,countText:`#6d28d9`,action:`#7c3aed`,actionHover:`#ede9fe`},slate:{bg:`#f8fafc`,border:`#cbd5e1`,title:`#334155`,countBg:`#e2e8f0`,countText:`#475569`,action:`#475569`,actionHover:`#e2e8f0`}};function Uu(e){return Hu[e]||Hu.sky}function Wu(e){let t=Mu.exec(e);return t?{start:t.index,end:t.index+t[0].length,type:`kanban`}:null}function Gu(e,t){e.style.boxShadow=t?`inset 0 0 0 ${Iu}px ${Lu}`:``}function Ku(e,t){e.style.boxShadow=t?`inset 0 0 0 ${Iu}px ${Lu}, 0 1px 2px rgba(15, 23, 42, 0.08)`:``,e.style.opacity=t?Ru:``}function qu(e,t){let n=Array.from(t.querySelectorAll(`[data-testid='kanban-column']`)),r=n[0]?.getBoundingClientRect().top??t.getBoundingClientRect().top,i=window.innerHeight-r-zu,a=n.reduce((e,t)=>Math.max(e,t.scrollHeight),0),o=Math.max(Bu,Math.round(i),Math.ceil(a));t.style.minHeight=`${o}px`;for(let e of n)e.style.minHeight=`${o}px`}function Ju(e,t){let n=()=>{document.body.contains(e)&&qu(e,t)};n(),requestAnimationFrame(n);let r=new AbortController;window.addEventListener(`resize`,n,{signal:r.signal});let i=new MutationObserver(()=>{document.body.contains(e)||(r.abort(),i.disconnect())});return i.observe(document.body,{childList:!0,subtree:!0}),n}async function Yu(e){if(e)return e;if(Vu!==null)return Vu;try{let e=await fetch(`/api/config`).then(e=>e.json());Vu=typeof e.docsFolder==`string`?e.docsFolder:``}catch{Vu=``}return Vu}function Xu(e,t){let n=e.querySelector(`[data-ld-kanban]`);if(!n)return!1;let r=decodeURIComponent(t.docId||``),i=document.createElement(`div`);i.setAttribute(`data-ld-kanban-root`,``),i.dataset.testid=`kanban-board`,i.className=`ld-kanban-board`,i.style.display=`flex`,i.style.flexDirection=`column`,i.style.gap=`12px`;let a=Au(n.outerHTML);if(e.replaceChildren(i),!r||r.startsWith(`/`))return i.appendChild(Zu(t.t(`kanban.unsupported_doc`),`info`)),!0;let o=r.includes(`/`)?r.slice(0,r.lastIndexOf(`/`)):``,s=new Set,c=[];for(let e of a){let t=wa(e.label);!t||s.has(t)||(s.add(t),c.push({label:e.label,color:e.color||`sky`,folderSegment:t,folderPath:o?`${o}/${t}`:t}))}return Qu(i,c,t),!0}function Zu(e,t){let n=document.createElement(`p`);return n.className=t===`error`?`ld-kanban-banner rounded-lg border border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950/40 text-red-700 dark:text-red-300 text-sm px-3 py-2`:`ld-kanban-banner rounded-lg border border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-950/40 text-blue-700 dark:text-blue-300 text-sm px-3 py-2`,n.textContent=e,n}function Qu(e,t,n){let{t:r}=n,i=document.createElement(`div`);e.appendChild(i);let a=document.createElement(`div`);a.className=`ld-kanban-lanes`,a.dataset.testid=`kanban-lanes`,a.style.display=`flex`,a.style.width=`100%`,a.style.gap=`12px`,a.style.alignItems=`stretch`,a.style.overflowX=`auto`,a.style.paddingBottom=`8px`,e.appendChild(a);let o=Ju(e,a),s=e=>{i.replaceChildren(Zu(e,`error`))},c=()=>i.replaceChildren(),l=Array.isArray(n.docs)?n.docs:[],u=new Map,d=0,f=()=>{sd(a,t,l,{opts:n,showError:s,clearError:c,setDocs:m,descriptionById:u,setDescription:p}),o(),requestAnimationFrame(o)},p=(e,t)=>{u=new Map(u),t?u.set(e,t):u.delete(e)},m=e=>{l=$u(e),n.onDocsChange?.(l),f(),h()},h=async()=>{let e=++d,n=l.filter(e=>t.some(t=>(e.folder||[]).join(`/`)===t.folderPath)).filter(e=>!u.has(e.id));if(!n.length)return;let r=await Promise.all(n.map(async e=>{try{let t=await fetch(`/api/documents/${e.id}`).then(e=>{if(!e.ok)throw Error(String(e.status));return e.json()});return[e.id,nd(t.content||``)]}catch{return[e.id,``]}}));if(e===d){u=new Map(u);for(let[e,t]of r)t&&u.set(e,t);f()}};n.docs?(f(),h()):(async()=>{try{m(await fetch(`/api/documents`).then(e=>e.json()))}catch{s(r(`kanban.load_failed`))}})(),(async()=>{let e=await od(t,n);e.length&&n.onFolderPathsChange&&n.onFolderPathsChange(ed([...n.folderPaths||[],...e]))})()}function $u(e){return e.slice().sort((e,t)=>(e.filename||``).localeCompare(t.filename||``))}function ed(e){return Array.from(new Set(e.filter(Boolean))).sort((e,t)=>e.localeCompare(t))}function td(e){return`# ${e.trim()}\n\n${Nu}\n\n## Content\n\n${Pu}\n`}function nd(e){let t=(e.startsWith(`---`)?e.replace(/^---[\s\S]*?\n---\s*/,``):e).replace(/^#\s+.*(?:\r?\n|$)/,``).trimStart(),n=t.search(/^##\s+Content\s*$/im);return id(n>=0?t.slice(0,n):t)}function rd(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__|~~|\*|_)/g,``).replace(/`+/g,``).trim()}function id(e){let t=[];for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||/^\|?[\s:|-]+\|?$/.test(e)&&e.includes(`-`))continue;if(e.startsWith(`|`)){let n=e.split(`|`).map(e=>rd(e.trim())).filter(Boolean);n.length&&t.push(n.join(` · `));continue}let r=e.match(/^(?:[-*+]|\d+[.)])\s+(.*)$/);if(r){let e=rd(r[1]);e&&t.push(`• ${e}`);continue}let i=e.match(/^(?:#{1,6}\s+|>\s?)(.*)$/);if(i){let e=rd(i[1]);e&&t.push(e);continue}let a=rd(e);a&&t.push(a)}return t.join(` `).replace(/\s+/g,` `).trim()}function ad(e){return e.length<=Fu?e:`${e.slice(0,Fu-1).trimEnd()}…`}async function od(e,t){let n=await Yu(t.docsFolder);if(!n)return[];let r=new Set(t.folderPaths||[]),i=e.filter(e=>!r.has(e.folderPath));if(!i.length)return[];let a=[];return await Promise.allSettled(i.map(async e=>{(await fetch(`/api/browse/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:`${n}/${e.folderPath}`})})).ok&&a.push(e.folderPath)})),a}function sd(e,t,n,r){let{opts:i,showError:a,clearError:o,setDocs:s,descriptionById:c,setDescription:l}=r,{t:u}=i;e.replaceChildren();for(let r of t){let t=n.filter(e=>(e.folder||[]).join(`/`)===r.folderPath),d=Uu(r.color),f=document.createElement(`section`);f.dataset.testid=`kanban-column`,f.dataset.kanbanFolder=r.folderSegment,f.dataset.kanbanColor=r.color,f.className=`ld-kanban-column rounded-xl border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/60 p-3`,f.style.backgroundColor=d.bg,f.style.borderColor=d.border,f.style.flex=`1 1 280px`,f.style.minWidth=`240px`,f.style.alignSelf=`stretch`,f.style.display=`flex`,f.style.flexDirection=`column`,f.style.gap=`8px`,f.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),Gu(f,!0)}),f.addEventListener(`dragleave`,()=>{Gu(f,!1)}),f.addEventListener(`drop`,e=>{e.preventDefault(),Gu(f,!1);let t=e.dataTransfer?.getData(`text/plain`);t&&(async()=>{o();try{let e=await fetch(`/api/documents/${t}/move`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:r.folderPath})});if(!e.ok){let t=await e.json().catch(()=>({}));a(u(`kanban.move_failed`)+(t.error||e.status));return}let i=await e.json();s(n.map(e=>e.id===t?i:e))}catch(e){a(u(`kanban.move_failed`)+String(e))}})()});let p=document.createElement(`header`);p.style.display=`flex`,p.style.alignItems=`center`,p.style.justifyContent=`space-between`,p.style.gap=`8px`,p.style.margin=`0`;let m=document.createElement(`h2`);m.className=`text-sm font-bold text-gray-700 dark:text-gray-200 uppercase tracking-wide`,m.textContent=r.label,m.style.color=d.title,m.style.margin=`0`,m.style.lineHeight=`1.1`;let h=document.createElement(`div`);h.style.display=`flex`,h.style.alignItems=`center`,h.style.gap=`6px`,h.style.margin=`0`;let g=document.createElement(`span`);g.className=`text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-200 dark:bg-gray-700 rounded-full px-2 py-0.5`,g.textContent=String(t.length),g.style.backgroundColor=d.countBg,g.style.color=d.countText,g.style.margin=`0`;let _=document.createElement(`button`);_.type=`button`,_.dataset.testid=`kanban-add-card`,_.title=u(`kanban.add_card`),_.className=`inline-flex items-center justify-center w-6 h-6 rounded-md text-blue-700 dark:text-blue-300 hover:bg-blue-100 dark:hover:bg-blue-900/40 text-sm font-bold`,_.textContent=`+`,_.style.color=d.action,_.style.margin=`0`,_.addEventListener(`mouseenter`,()=>{_.style.backgroundColor=d.actionHover}),_.addEventListener(`mouseleave`,()=>{_.style.backgroundColor=``}),h.append(g,_),p.append(m,h),f.appendChild(p);let v=document.createElement(`form`);v.hidden=!0,v.style.display=`none`,v.style.gap=`6px`,v.style.margin=`0`;let y=document.createElement(`input`);y.type=`text`,y.placeholder=u(`kanban.card_title_placeholder`),y.className=`flex-1 min-w-0 px-2 py-1.5 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500`;let b=document.createElement(`button`);b.type=`submit`,b.dataset.testid=`kanban-create-card`,b.className=`px-2.5 py-1.5 text-xs font-semibold rounded-lg bg-blue-600 hover:bg-blue-700 text-white`,b.textContent=u(`kanban.create_btn`),v.append(y,b),f.appendChild(v),_.addEventListener(`click`,()=>{let e=v.hidden;v.hidden=!e,v.style.display=e?`flex`:`none`,e&&y.focus()}),v.addEventListener(`submit`,e=>{e.preventDefault();let t=y.value.trim();t&&(async()=>{o();try{let e=await fetch(`/api/documents`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:t,category:`General`,folder:r.folderPath,content:td(t)})});if(!e.ok){let t=await e.json().catch(()=>({}));a(u(`kanban.create_failed`)+(t.error||e.status));return}let i=await e.json();y.value=``,v.hidden=!0,v.style.display=`none`,l(i.id,Nu),s([...n,i])}catch(e){a(u(`kanban.create_failed`)+String(e))}})()});let x=document.createElement(`div`);if(x.style.display=`flex`,x.style.flexDirection=`column`,x.style.gap=`6px`,x.style.flex=`1 1 auto`,x.style.margin=`0`,!t.length){let e=document.createElement(`p`);e.className=`text-xs text-gray-400 dark:text-gray-500 italic`,e.textContent=u(`kanban.empty_column`),e.style.margin=`0`,x.appendChild(e)}for(let e of t){let t=document.createElement(`article`);t.dataset.testid=`kanban-card`,t.dataset.docId=e.id,t.draggable=!0,t.className=`ld-kanban-card rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 px-3 py-2 shadow-sm cursor-pointer hover:border-blue-300 dark:hover:border-blue-700`;let n=document.createElement(`p`);n.className=`text-sm font-semibold text-gray-800 dark:text-gray-100`,n.textContent=e.title,n.style.margin=`0`,t.appendChild(n);let r=c.get(e.id);if(r){let e=document.createElement(`p`);e.className=`text-xs text-gray-500 dark:text-gray-400 leading-snug`,e.textContent=ad(r),e.style.margin=`0`,t.appendChild(e)}if(e.formattedDate){let n=document.createElement(`p`);n.className=`text-xs text-gray-400 dark:text-gray-500`,n.textContent=e.formattedDate,n.style.margin=`0`,t.appendChild(n)}t.addEventListener(`dragstart`,n=>{n.dataTransfer?.setData(`text/plain`,e.id),n.dataTransfer&&(n.dataTransfer.effectAllowed=`move`),Ku(t,!0)}),t.addEventListener(`dragend`,()=>{Ku(t,!1)}),t.addEventListener(`click`,()=>{i.onDocLink(e.id,null)}),x.appendChild(t)}f.appendChild(x),e.appendChild(f)}}var cd=`ld:diagram-image-version:`,ld=/^(?:\.\/|\/)images\/([A-Za-z0-9_-]+\.png)$/,ud=new Map;function dd(e){let t=String(Date.now());ud.set(e,t);try{sessionStorage.setItem(cd+e,t)}catch{}}function fd(e){try{let t=sessionStorage.getItem(cd+e);if(t)return t}catch{}return ud.get(e)??null}function pd(e){e.querySelectorAll(`a[href]`).forEach(e=>{let t=new URL(e.getAttribute(`href`)||``,window.location.origin);if(t.origin!==window.location.origin||t.pathname!==`/diagram`)return;let n=e.querySelector(`img`),r=n?.getAttribute(`src`)?.match(ld);if(!n||!r)return;let i=r[1];t.searchParams.has(`img`)||(t.searchParams.set(`img`,i),e.setAttribute(`href`,`${t.pathname}${t.search}${t.hash}`));let a=fd(i);a&&n.setAttribute(`src`,`/images/${i}?v=${a}`)})}var md=`<svg viewBox="0 0 16 16" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="8" height="9" rx="1.5"/><path d="M3 11V3a1 1 0 0 1 1-1h7"/></svg>`,hd=`<svg viewBox="0 0 16 16" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8.5 6.5 12 13 4.5"/></svg>`;function gd(e){let t=[];for(let n of e.split(`/`))n===``||n===`.`||(n===`..`?t.pop():t.push(n));return t.join(`/`)}function _d(e,t){let n=e.indexOf(`#`),r=n===-1?e:e.slice(0,n),i=n===-1?null:e.slice(n+1)||null;if(!r.toLowerCase().endsWith(`.md`)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let a;if(r.startsWith(`/`))a=r.slice(1);else{let e=t?decodeURIComponent(t):``,n=e.includes(`/`)?e.slice(0,e.lastIndexOf(`/`)):``;a=n?`${n}/${r}`:r}return a=gd(a).replace(/\.md$/i,``),a?{id:encodeURIComponent(a),anchor:i}:null}function vd(e,t,n){if(e.innerHTML=t,Xu(e,{docId:n.docId||``,content:n.content,docs:n.docs,docsFolder:n.docsFolder,folderPaths:n.folderPaths,t:n.t,onDocLink:n.onDocLink,onDocsChange:n.onKanbanDocsChange,onFolderPathsChange:n.onKanbanFolderPathsChange}))return!0;bd(e,n.content),xd(e),Pd(e,n.content),Sd(e,n.content),pd(e),Fd(e),jd(e);let r=Xc(n.content),i=0;return e.querySelectorAll(`h1, h2, h3, h4, h5, h6`).forEach(e=>{e.id||=(e.textContent||``).toLowerCase().replace(/[^\w\s-]/g,``).trim().replace(/\s+/g,`-`)}),e.querySelectorAll(`pre code`).forEach(e=>{let t=e.closest(`.ld-compare-render`)?null:r[i++],n=e.closest(`pre`);if(!e.classList.contains(`language-mermaid`)){n&&t&&yd(n,t);return}let a=e.textContent||``,o=document.createElement(`div`);o.className=`mermaid my-4`,o.textContent=a,t&&yd(o,t),n?.replaceWith(o)}),window.mermaid&&e.querySelector(`.mermaid`)&&window.mermaid.run({nodes:e.querySelectorAll(`.mermaid`)}),e.querySelectorAll(`pre code`).forEach(e=>{window.hljs?.highlightElement(e)}),Nd(e,n.t),Id(e,n.codeBlockMaxHeight,n.t),e.querySelectorAll(`a[href]`).forEach(e=>{let t=e.getAttribute(`href`),r=t?.match(/[?&]doc=([^&#]+)/);if(!r)return;let i=t?.indexOf(`#`),a=i===-1?null:t?.slice(i+1);e.addEventListener(`click`,e=>{e.preventDefault(),n.onDocLink(decodeURIComponent(r[1]),a)})}),e.querySelectorAll(`a[href]`).forEach(e=>{let t=e.getAttribute(`href`);if(!t||/[?&]doc=/.test(t))return;let r=_d(t,n.docId);r&&e.addEventListener(`click`,e=>{e.preventDefault(),n.onDocLink(r.id,r.anchor)})}),e.querySelectorAll(`a[href^="#"]`).forEach(e=>{let t=e.getAttribute(`href`);!t||t.length<2||e.addEventListener(`click`,e=>{e.preventDefault(),n.onAnchor(t.slice(1))})}),e.querySelectorAll(`table`).forEach(e=>{let t=document.createElement(`div`);t.className=`overflow-x-auto`,e.parentNode?.insertBefore(t,e),t.appendChild(e)}),!1}function yd(e,t){t.width&&(e.classList.add(Zc(t.kind,t.width)),e.dataset.codeBlockWidth=t.width),t.align&&(e.classList.add(`ld-${t.kind}-align-${t.align}`),e.dataset.codeBlockAlign=t.align)}function bd(e,t){let n=mc(typeof t==`string`?t:``);Array.from(e.querySelectorAll(`table`)).filter(e=>!e.closest(`.ld-compare-render`)).forEach((e,t)=>{let r=n[t];r&&(r.style&&(e.classList.add(`table-style-${r.style}`),e.dataset.tableStyle=r.style),r.border&&(e.classList.add(`table-border-${r.border}`),e.dataset.tableBorder=r.border),r.color&&(e.classList.add(`table-color-${r.color}`),e.dataset.tableColor=r.color))})}function xd(e){e.querySelectorAll(`table th, table td`).forEach(e=>{(e.textContent||``).trim()===``&&(e.textContent=`\xA0`)})}function Sd(e,t){let n=Ic(typeof t==`string`?t:``);Array.from(e.querySelectorAll(`img`)).filter(e=>!e.closest(`.ld-compare-render`)).forEach((e,t)=>{let r=n[t];r&&(r.width&&(e.classList.add(Lc(r.width)),e.dataset.imageWidth=r.width),r.align&&(e.classList.add(`ld-image-align-${r.align}`),e.dataset.imageAlign=r.align))})}var Cd=/^\s*layout-columns\b/i,wd=/^\s*col\s*$/i,Td=/^\s*\/layout-columns\s*$/i,Ed=new Set([`top`,`center`,`bottom`,`stretch`]),Dd=new Set([`left`,`center`,`right`,`justify`]),Od=new Set([`sm`,`md`,`lg`]);function kd(e){let t=e.trim().replace(/^layout-columns\s*:?\s*/i,``),n={ratio:null,valign:null,textAlign:null,gap:null};for(let e of t.split(`|`)){let t=e.trim();if(!t)continue;let r=t.match(/^([\w-]+)\s*:\s*(.+)$/);if(r){let e=r[1].toLowerCase(),t=r[2].trim().toLowerCase();e===`vertical-align`&&Ed.has(t)?n.valign=t:e===`text-align`&&Dd.has(t)?n.textAlign=t:e===`gap`&&Od.has(t)?n.gap=t:e===`ratio`&&(n.ratio=t.replace(/\s+/g,``))}else/^\d+(\s*\/\s*\d+)*$/.test(t)&&(n.ratio=t.replace(/\s+/g,``))}return n}function Ad(e,t){let n=`repeat(${t}, minmax(0, 1fr))`;if(!e)return n;if(e.includes(`/`)){let r=e.split(`/`).map(e=>parseInt(e,10));return r.length===t&&r.every(e=>Number.isFinite(e)&&e>0)?r.map(e=>`${e}fr`).join(` `):n}let r=parseInt(e,10);return Number.isFinite(r)&&r>0?`repeat(${r}, minmax(0, 1fr))`:n}function jd(e){let t=[];e.childNodes.forEach(e=>{e.nodeType===Node.COMMENT_NODE&&Cd.test(e.data)&&t.push(e)});for(let n of t){let t=kd(n.data),r=[],i=null;for(let e=n.nextSibling;e;e=e.nextSibling){if(e.nodeType===Node.COMMENT_NODE&&Td.test(e.data)){i=e;break}r.push(e)}if(!i)continue;let a=[],o=null;for(let e of r){if(e.nodeType===Node.COMMENT_NODE&&wd.test(e.data)){o=[],a.push(o);continue}if(!o){if(e.nodeType===Node.TEXT_NODE&&!(e.textContent||``).trim())continue;o=[],a.push(o)}o.push(e)}if(a.length===0)continue;let s=document.createElement(`div`);s.className=`ld-columns`,t.valign&&s.classList.add(`ld-valign-${t.valign}`),t.textAlign&&s.classList.add(`ld-text-${t.textAlign}`),t.gap&&s.classList.add(`ld-gap-${t.gap}`),s.style.gridTemplateColumns=Ad(t.ratio,a.length);for(let e of a){let t=document.createElement(`div`);t.className=`ld-column`;for(let n of e)t.appendChild(n);s.appendChild(t)}e.insertBefore(s,n),n.remove(),i.remove();for(let t of r)t.parentNode===e&&t.remove()}}function Md(e){let t=document.createElement(`div`);return t.innerHTML=e,jd(t),t.innerHTML}function Nd(e,t){let n=t(`doc.code_copy`)||`Copy`,r=t(`doc.code_copied`)||`Copied!`;e.querySelectorAll(`pre`).forEach(e=>{let t=e.querySelector(`code`);if(!t||e.querySelector(`.ld-code-copy`))return;let i=document.createElement(`button`);i.type=`button`,i.className=`ld-code-copy`,i.title=n,i.setAttribute(`aria-label`,n),i.innerHTML=md,i.addEventListener(`click`,async e=>{e.preventDefault(),e.stopPropagation();try{await navigator.clipboard.writeText(t.innerText)}catch{let e=document.createElement(`textarea`);e.value=t.innerText,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e),e.select();try{document.execCommand(`copy`)}catch{}document.body.removeChild(e)}i.classList.add(`ld-copied`),i.title=r,i.innerHTML=hd,setTimeout(()=>{i.classList.remove(`ld-copied`),i.title=n,i.innerHTML=md},1500)}),e.appendChild(i)})}function Pd(e,t){let n=wc(typeof t==`string`?t:``);Array.from(e.querySelectorAll(`blockquote`)).filter(e=>!e.closest(`.ld-compare-render`)).forEach((e,t)=>{let r=n[t];if(!r||!r.type&&!r.title&&!r.icon)return;e.classList.add(`ld-callout`),r.type&&e.classList.add(`ld-callout-${r.type}`);let i=r.icon,a=typeof r.title==`string`&&r.title.trim()!==``;if(i&&!a){let t=e.querySelector(`p`),n=document.createElement(`span`);n.className=`ld-callout-icon ld-callout-icon-inline`,n.innerHTML=Ec(r.type),t?t.insertBefore(n,t.firstChild):e.insertBefore(n,e.firstChild);return}if(!i&&!a)return;let o=document.createElement(`div`);if(o.className=`ld-callout-header`,i){let e=document.createElement(`span`);e.className=`ld-callout-icon`,e.innerHTML=Ec(r.type),o.appendChild(e)}if(a){let e=document.createElement(`span`);e.className=`ld-callout-title`,e.textContent=r.title,o.appendChild(e)}e.insertBefore(o,e.firstChild)})}function Fd(e){e.querySelectorAll(`.ld-compare-render[data-compare-source]`).forEach(e=>{let t=e.dataset.compareSource??``;if(!t)return;let n=decodeURIComponent(t),r=mc(n);e.querySelectorAll(`table`).forEach((e,t)=>{let n=r[t];if(!n)return;let i=e;n.style&&(i.classList.add(`table-style-${n.style}`),i.dataset.tableStyle=n.style),n.border&&(i.classList.add(`table-border-${n.border}`),i.dataset.tableBorder=n.border),n.color&&(i.classList.add(`table-color-${n.color}`),i.dataset.tableColor=n.color)});let i=wc(n);e.querySelectorAll(`blockquote`).forEach((e,t)=>{let n=i[t];if(!n||!n.type&&!n.title&&!n.icon)return;e.classList.add(`ld-callout`),n.type&&e.classList.add(`ld-callout-${n.type}`);let r=n.icon,a=typeof n.title==`string`&&n.title.trim()!==``;if(r&&!a){let t=e.querySelector(`p`),r=document.createElement(`span`);r.className=`ld-callout-icon ld-callout-icon-inline`,r.innerHTML=Ec(n.type),t?t.insertBefore(r,t.firstChild):e.insertBefore(r,e.firstChild);return}if(!r&&!a)return;let o=document.createElement(`div`);if(o.className=`ld-callout-header`,r){let e=document.createElement(`span`);e.className=`ld-callout-icon`,e.innerHTML=Ec(n.type),o.appendChild(e)}if(a){let e=document.createElement(`span`);e.className=`ld-callout-title`,e.textContent=n.title,o.appendChild(e)}e.insertBefore(o,e.firstChild)})})}function Id(e,t,n){if(typeof t!=`number`||t<=0)return;let r=n(`doc.code_show_more`)||`▾ Show more`,i=n(`doc.code_show_less`)||`▴ Show less`;e.querySelectorAll(`pre`).forEach(e=>{if(!e.querySelector(`code`)||e.scrollHeight<=t+8)return;e.classList.add(`ld-collapsible`);let n=document.createElement(`button`);n.type=`button`,n.className=`ld-code-toggle`,n.textContent=r,n.addEventListener(`click`,t=>{t.preventDefault(),n.textContent=e.classList.toggle(`ld-expanded`)?i:r}),e.appendChild(n)})}var Ld=[`heading`,`collapsible`,`link`,`doc-link`,`anchor-link`,`anchor-doc-link`,`ordered-list`,`unordered-list`,`code-block`,`blockquote`,`image`,`table`,`tree`,`mermaid`,`diagram`,`colored-section`,`colored-text`,`emojis`,`attachment`,`compare`,`columns`,`kanban`],Rd={"heading-1":`heading`,"heading-2":`heading`,"heading-3":`heading`,"heading-4":`heading`};function zd(e){return Rd[e]||e}var Bd={"heading-1":`fa-solid fa-heading`,"heading-2":`fa-solid fa-heading`,"heading-3":`fa-solid fa-heading`,"heading-4":`fa-solid fa-heading`,separator:`fa-solid fa-minus`,collapsible:`fa-solid fa-caret-right`,"unordered-list":`fa-solid fa-list-ul`,"ordered-list":`fa-solid fa-list-ol`,tree:`fa-solid fa-folder-tree`,"colored-text":`fa-solid fa-highlighter`,"colored-section":`fa-solid fa-fill-drip`,blockquote:`fa-solid fa-quote-right`,"code-block":`fa-solid fa-code`,table:`fa-solid fa-table-cells`,mermaid:`fa-solid fa-chart-pie`,link:`fa-solid fa-link`,"doc-link":`fa-solid fa-file-lines`,"anchor-link":`fa-solid fa-anchor`,"anchor-doc-link":`fa-solid fa-anchor`,image:`fa-solid fa-image`,diagram:`fa-solid fa-diagram-project`,emojis:`fa-solid fa-face-smile`,attachment:`fa-solid fa-paperclip`,"local-search":`fa-solid fa-magnifying-glass`,compare:`fa-solid fa-table-columns`,columns:`fa-solid fa-table-columns`,kanban:`fa-solid fa-table-columns`},Vd=[{key:`structure`,labelKey:`snippet.picker_cat_structure`,types:[`heading-1`,`heading-2`,`heading-3`,`heading-4`,`separator`,`collapsible`,`columns`,`unordered-list`,`ordered-list`,`table`,`kanban`]},{key:`lists-code-data`,labelKey:`snippet.picker_cat_lists_code_data`,types:[`tree`,`code-block`,`mermaid`,`diagram`,`compare`]},{key:`rich-text`,labelKey:`snippet.picker_cat_rich_text`,types:[`colored-text`,`colored-section`,`blockquote`,`emojis`,`local-search`]},{key:`links-media`,labelKey:`snippet.picker_cat_links_media`,types:[`link`,`doc-link`,`anchor-link`,`anchor-doc-link`,`image`,`attachment`]}],Hd={blueLight:{card:`border-sky-200 dark:border-sky-800 bg-sky-50 dark:bg-sky-950/40 hover:bg-sky-100 dark:hover:bg-sky-900/50 hover:border-sky-300 dark:hover:border-sky-700`,icon:`text-sky-700 dark:text-sky-300`},blue:{card:`border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-950/40 hover:bg-blue-100 dark:hover:bg-blue-900/50 hover:border-blue-300 dark:hover:border-blue-700`,icon:`text-blue-700 dark:text-blue-300`},blueDark:{card:`border-indigo-200 dark:border-indigo-800 bg-indigo-50 dark:bg-indigo-950/40 hover:bg-indigo-100 dark:hover:bg-indigo-900/50 hover:border-indigo-300 dark:hover:border-indigo-700`,icon:`text-indigo-700 dark:text-indigo-300`},blueDarker:{card:`border-blue-300 dark:border-blue-700 bg-blue-100 dark:bg-blue-900/50 hover:bg-blue-200 dark:hover:bg-blue-800/60 hover:border-blue-400 dark:hover:border-blue-600`,icon:`text-blue-900 dark:text-blue-100`},gray:{card:`border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600`,icon:`text-gray-700 dark:text-gray-200`},violet:{card:`border-violet-200 dark:border-violet-800 bg-violet-50 dark:bg-violet-950/40 hover:bg-violet-100 dark:hover:bg-violet-900/50 hover:border-violet-300 dark:hover:border-violet-700`,icon:`text-violet-700 dark:text-violet-300`},green:{card:`border-emerald-200 dark:border-emerald-800 bg-emerald-50 dark:bg-emerald-950/40 hover:bg-emerald-100 dark:hover:bg-emerald-900/50 hover:border-emerald-300 dark:hover:border-emerald-700`,icon:`text-emerald-700 dark:text-emerald-300`},greenDark:{card:`border-green-300 dark:border-green-700 bg-green-100 dark:bg-green-900/50 hover:bg-green-200 dark:hover:bg-green-800/60 hover:border-green-400 dark:hover:border-green-600`,icon:`text-green-900 dark:text-green-100`},teal:{card:`border-teal-200 dark:border-teal-800 bg-teal-50 dark:bg-teal-950/40 hover:bg-teal-100 dark:hover:bg-teal-900/50 hover:border-teal-300 dark:hover:border-teal-700`,icon:`text-teal-700 dark:text-teal-300`},dark:{card:`border-slate-300 dark:border-slate-600 bg-slate-100 dark:bg-slate-800 hover:bg-slate-200 dark:hover:bg-slate-700 hover:border-slate-400 dark:hover:border-slate-500`,icon:`text-slate-900 dark:text-slate-100`},orange:{card:`border-orange-200 dark:border-orange-800 bg-orange-50 dark:bg-orange-950/40 hover:bg-orange-100 dark:hover:bg-orange-900/50 hover:border-orange-300 dark:hover:border-orange-700`,icon:`text-orange-700 dark:text-orange-300`},orangeLight:{card:`border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-950/40 hover:bg-amber-100 dark:hover:bg-amber-900/50 hover:border-amber-300 dark:hover:border-amber-700`,icon:`text-amber-700 dark:text-amber-300`},orangeDark:{card:`border-orange-300 dark:border-orange-700 bg-orange-100 dark:bg-orange-900/50 hover:bg-orange-200 dark:hover:bg-orange-800/60 hover:border-orange-400 dark:hover:border-orange-600`,icon:`text-orange-900 dark:text-orange-100`},red:{card:`border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950/40 hover:bg-red-100 dark:hover:bg-red-900/50 hover:border-red-300 dark:hover:border-red-700`,icon:`text-red-700 dark:text-red-300`},pink:{card:`border-pink-200 dark:border-pink-800 bg-pink-50 dark:bg-pink-950/40 hover:bg-pink-100 dark:hover:bg-pink-900/50 hover:border-pink-300 dark:hover:border-pink-700`,icon:`text-pink-700 dark:text-pink-300`},amber:{card:`border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-950/40 hover:bg-amber-100 dark:hover:bg-amber-900/50 hover:border-amber-300 dark:hover:border-amber-700`,icon:`text-amber-700 dark:text-amber-300`},yellow:{card:`border-yellow-300 dark:border-yellow-700 bg-yellow-100 dark:bg-yellow-900/50 hover:bg-yellow-200 dark:hover:bg-yellow-800/60 hover:border-yellow-400 dark:hover:border-yellow-600`,icon:`text-yellow-700 dark:text-yellow-200`},indigo:{card:`border-indigo-200 dark:border-indigo-800 bg-indigo-50 dark:bg-indigo-950/40 hover:bg-indigo-100 dark:hover:bg-indigo-900/50 hover:border-indigo-300 dark:hover:border-indigo-700`,icon:`text-indigo-700 dark:text-indigo-300`},cyan:{card:`border-cyan-200 dark:border-cyan-800 bg-cyan-50 dark:bg-cyan-950/40 hover:bg-cyan-100 dark:hover:bg-cyan-900/50 hover:border-cyan-300 dark:hover:border-cyan-700`,icon:`text-cyan-700 dark:text-cyan-300`}},Ud={"heading-1":`blueLight`,"heading-2":`blue`,"heading-3":`blueDark`,"heading-4":`blueDarker`,separator:`gray`,collapsible:`dark`,"unordered-list":`green`,"ordered-list":`greenDark`,tree:`cyan`,"code-block":`dark`,mermaid:`teal`,table:`orange`,diagram:`red`,"colored-text":`pink`,"colored-section":`violet`,blockquote:`gray`,link:`orangeLight`,"doc-link":`orange`,"anchor-link":`orangeDark`,"anchor-doc-link":`orangeDark`,image:`amber`,attachment:`orange`,emojis:`yellow`,"local-search":`cyan`,compare:`teal`,columns:`teal`,kanban:`violet`},Wd={"heading-1":`snippet.heading_1`,"heading-2":`snippet.heading_2`,"heading-3":`snippet.heading_3`,"heading-4":`snippet.heading_4`,separator:`snippet.separator`,collapsible:`snippet.collapsible`,"unordered-list":`snippet.bullet_list`,"ordered-list":`snippet.numbered_list`,tree:`snippet.tree`,"colored-text":`snippet.colored_text`,"colored-section":`snippet.colored_section`,blockquote:`snippet.blockquote`,"code-block":`snippet.code_block`,mermaid:`snippet.mermaid`,table:`snippet.table`,link:`snippet.link`,"doc-link":`snippet.link_doc`,"anchor-link":`snippet.link_anchor`,"anchor-doc-link":`snippet.link_doc_anchor`,image:`snippet.image`,diagram:`snippet.diagram`,emojis:`snippet.emojis`,attachment:`snippet.attachment`,"local-search":`snippet.local_search`,compare:`snippet.compare`,columns:`snippet.columns`,kanban:`snippet.kanban`},Gd={info:{bg:`#eff6ff`,border:`#3b82f6`,text:`#1e3a5f`},success:{bg:`#f0fdf4`,border:`#22c55e`,text:`#14532d`},warning:{bg:`#fffbeb`,border:`#f59e0b`,text:`#451a03`},danger:{bg:`#fef2f2`,border:`#ef4444`,text:`#450a0a`},note:{bg:`#f5f3ff`,border:`#8b5cf6`,text:`#2e1065`},neutral:{bg:`#f9fafb`,border:`#6b7280`,text:`#111827`}},Kd=[{label:`snippet.emoji_cat_smileys`,emojis:[{e:`😀`,t:`grin grinning smile sourire happy heureux`},{e:`😃`,t:`smiley joy joie sourire happy`},{e:`😄`,t:`smile sourire happy heureux joie`},{e:`😁`,t:`beaming grin sourire dents`},{e:`😆`,t:`laugh rire lol`},{e:`😅`,t:`sweat transpire rire nerveux`},{e:`🤣`,t:`rofl lol mdr rire`},{e:`😂`,t:`joy larmes tears rire lol`},{e:`🙂`,t:`slight smile sourire`},{e:`🙃`,t:`upside renverse inverse`},{e:`😉`,t:`wink clin oeil`},{e:`😊`,t:`blush rougir sourire`},{e:`😇`,t:`angel ange halo innocent`},{e:`🥰`,t:`love amour coeur heart smile`},{e:`😍`,t:`heart eyes amoureux love amour`},{e:`🤩`,t:`star stars etoile wow`},{e:`😘`,t:`kiss bisou`},{e:`😋`,t:`yum miam savoureux langue`},{e:`😛`,t:`tongue langue`},{e:`😜`,t:`wink tongue langue clin`},{e:`🤪`,t:`crazy fou zany`},{e:`😝`,t:`tongue langue squinting`},{e:`🤗`,t:`hug calin embrasser`},{e:`🤔`,t:`think reflexion reflechir pense`},{e:`🤨`,t:`raised brow sourcil suspicious`},{e:`😐`,t:`neutral neutre`},{e:`😑`,t:`expressionless impassible`},{e:`😒`,t:`unamused decu blase`},{e:`🙄`,t:`roll eyes yeux ciel`},{e:`😬`,t:`grimace`},{e:`😌`,t:`relieved soulage`},{e:`😔`,t:`pensive pensif triste sad`},{e:`😪`,t:`sleepy sommeil fatigue`},{e:`😴`,t:`sleep dormir zzz`},{e:`🤤`,t:`drool bave`},{e:`😷`,t:`mask masque malade`},{e:`🤒`,t:`sick malade fever fievre`},{e:`🤕`,t:`hurt blesse bandage`},{e:`🤢`,t:`nausea nausee`},{e:`🤮`,t:`vomit vomir malade`},{e:`🤧`,t:`sneeze eternue rhume`},{e:`🥵`,t:`hot chaud transpire`},{e:`🥶`,t:`cold froid gele`},{e:`🥴`,t:`woozy ivre`},{e:`😵`,t:`dizzy dead mort vertige`},{e:`🤯`,t:`explode tete mind blown`},{e:`🤠`,t:`cowboy chapeau`},{e:`🥳`,t:`party fete anniversaire birthday`},{e:`😎`,t:`cool sunglasses lunettes`},{e:`🤓`,t:`nerd geek`},{e:`🧐`,t:`monocle curious`},{e:`😕`,t:`confused confus`},{e:`😟`,t:`worried inquiet`},{e:`🙁`,t:`frown triste`},{e:`☹️`,t:`sad triste frown`},{e:`😮`,t:`surprised surpris open mouth`},{e:`😯`,t:`hushed`},{e:`😲`,t:`astonished etonne`},{e:`😳`,t:`flushed gene rougeur`},{e:`🥺`,t:`pleading supplier chien`},{e:`😦`,t:`frown open mouth`},{e:`😧`,t:`anguish angoisse`},{e:`😨`,t:`fear peur`},{e:`😰`,t:`anxious anxieux stress`},{e:`😥`,t:`sad disappointed decu`},{e:`😢`,t:`cry pleurer larme`},{e:`😭`,t:`cry pleurer loud bawling`},{e:`😱`,t:`scream cri peur horror`},{e:`😖`,t:`confounded`},{e:`😣`,t:`persevere effort`},{e:`😞`,t:`disappointed decu`},{e:`😓`,t:`sweat transpire fatigue`},{e:`😩`,t:`weary fatigue las`},{e:`😫`,t:`tired fatigue`},{e:`🥱`,t:`yawn baille`},{e:`😤`,t:`triumph huff vapeur nez`},{e:`😠`,t:`angry colere fache`},{e:`😡`,t:`rage colere rouge`},{e:`🤬`,t:`curse insulte jure`},{e:`😈`,t:`devil diable smiling`},{e:`👿`,t:`imp diable`},{e:`💀`,t:`skull mort death crane`},{e:`☠️`,t:`crossbones pirate mort death`},{e:`💩`,t:`poop caca merde`},{e:`🤡`,t:`clown`},{e:`👻`,t:`ghost fantome`},{e:`👽`,t:`alien extraterrestre`},{e:`🤖`,t:`robot ia ai`},{e:`🎃`,t:`pumpkin halloween citrouille`},{e:`😺`,t:`cat chat`},{e:`😸`,t:`cat chat grin`},{e:`😹`,t:`cat chat joy`},{e:`😻`,t:`cat chat love amour heart`},{e:`😼`,t:`cat chat wry`},{e:`😽`,t:`cat chat kiss`},{e:`🙀`,t:`cat chat fear peur`},{e:`😿`,t:`cat chat cry pleurer`},{e:`😾`,t:`cat chat angry colere`}]},{label:`snippet.emoji_cat_gestures`,emojis:[{e:`👍`,t:`thumbs up pouce ok bien like`},{e:`👎`,t:`thumbs down pouce bas dislike`},{e:`👌`,t:`ok parfait`},{e:`✌️`,t:`victory victoire peace paix`},{e:`🤞`,t:`fingers crossed doigts croises`},{e:`🤟`,t:`love you`},{e:`🤘`,t:`rock horns metal cornes`},{e:`🤙`,t:`call appelle hang loose`},{e:`👈`,t:`left gauche pointing`},{e:`👉`,t:`right droite pointing`},{e:`👆`,t:`up haut pointing`},{e:`👇`,t:`down bas pointing`},{e:`☝️`,t:`one index up haut`},{e:`✋`,t:`stop hand main raised`},{e:`🤚`,t:`back hand main`},{e:`🖐️`,t:`hand main splayed`},{e:`🖖`,t:`vulcan spock star trek`},{e:`👋`,t:`wave bonjour hello salut goodbye`},{e:`🤝`,t:`handshake accord deal poignee`},{e:`🙏`,t:`pray priere merci thanks please`},{e:`💪`,t:`muscle fort biceps strong`},{e:`🦾`,t:`mechanical arm bras prothese`},{e:`👏`,t:`clap applaud bravo applaudir`},{e:`🙌`,t:`raise hands hourra celebrate`},{e:`👐`,t:`open hands`},{e:`🤲`,t:`palms up paumes`},{e:`🤜`,t:`fist poing right`},{e:`🤛`,t:`fist poing left`},{e:`✊`,t:`fist poing leve`},{e:`👊`,t:`fist punch poing frapper`},{e:`🤏`,t:`pinch petit small`},{e:`🤌`,t:`italian pinched`},{e:`🖕`,t:`middle finger doigt honneur`},{e:`✍️`,t:`write ecrire hand main`},{e:`🦶`,t:`foot pied`},{e:`🦵`,t:`leg jambe`},{e:`👂`,t:`ear oreille`},{e:`🦻`,t:`ear hearing appareil auditif`},{e:`👃`,t:`nose nez`},{e:`🧠`,t:`brain cerveau mind`},{e:`👀`,t:`eyes yeux regarder`},{e:`👁️`,t:`eye oeil`},{e:`👄`,t:`mouth bouche`},{e:`👅`,t:`tongue langue`},{e:`🦷`,t:`tooth dent`},{e:`🫀`,t:`heart anatomic coeur organe`},{e:`🫁`,t:`lungs poumons`}]},{label:`snippet.emoji_cat_hearts`,emojis:[{e:`❤️`,t:`heart coeur red rouge love amour`},{e:`🧡`,t:`orange heart coeur`},{e:`💛`,t:`yellow heart coeur jaune`},{e:`💚`,t:`green heart coeur vert`},{e:`💙`,t:`blue heart coeur bleu`},{e:`💜`,t:`purple heart coeur violet`},{e:`🖤`,t:`black heart coeur noir`},{e:`🤍`,t:`white heart coeur blanc`},{e:`🤎`,t:`brown heart coeur marron`},{e:`💔`,t:`broken heart coeur brise rupture`},{e:`❤️🔥`,t:`heart fire feu passion`},{e:`❤️🩹`,t:`heart mending coeur reparation`},{e:`💖`,t:`sparkling heart coeur brillant`},{e:`💕`,t:`two hearts coeurs`},{e:`💘`,t:`arrow heart cupid cupidon`},{e:`💝`,t:`ribbon heart cadeau`},{e:`💞`,t:`revolving hearts coeurs`},{e:`💟`,t:`heart decoration`},{e:`💌`,t:`love letter lettre enveloppe`},{e:`💋`,t:`kiss mark bisou levres`},{e:`❣️`,t:`heart exclamation`},{e:`💯`,t:`hundred 100 cent perfect parfait`},{e:`✨`,t:`sparkles etincelles magic magique brillant`},{e:`⭐`,t:`star etoile`},{e:`🌟`,t:`glowing star etoile`},{e:`💫`,t:`dizzy star vertige etoile`},{e:`🔥`,t:`fire feu hot flamme`},{e:`💥`,t:`boom explosion collision`},{e:`⚡`,t:`lightning eclair thunder tonnerre fast`},{e:`💢`,t:`anger colere symbol`},{e:`💨`,t:`dash vent wind fast vitesse`},{e:`💦`,t:`drops gouttes sweat eau`},{e:`💤`,t:`zzz sleep dormir sommeil`},{e:`🕳️`,t:`hole trou`},{e:`💭`,t:`thought pensee bulle`},{e:`🗯️`,t:`right anger bubble`},{e:`💬`,t:`speech bulle dialogue chat`}]},{label:`snippet.emoji_cat_objects`,emojis:[{e:`💻`,t:`laptop ordinateur computer portable`},{e:`🖥️`,t:`desktop computer ordinateur bureau`},{e:`⌨️`,t:`keyboard clavier`},{e:`🖱️`,t:`mouse souris`},{e:`💾`,t:`floppy disquette save sauvegarder`},{e:`💿`,t:`disk cd optical`},{e:`📀`,t:`dvd`},{e:`📱`,t:`phone mobile telephone smartphone`},{e:`📲`,t:`phone call mobile incoming`},{e:`☎️`,t:`telephone vintage`},{e:`📞`,t:`receiver combine phone`},{e:`📟`,t:`pager`},{e:`📠`,t:`fax`},{e:`🔋`,t:`battery batterie pile`},{e:`🔌`,t:`plug prise electrique`},{e:`💡`,t:`bulb idee idea light lumiere ampoule`},{e:`🔦`,t:`flashlight torche lampe`},{e:`🕯️`,t:`candle bougie`},{e:`📷`,t:`camera appareil photo`},{e:`📸`,t:`camera flash photo`},{e:`📹`,t:`video camera`},{e:`🎥`,t:`movie film cinema camera`},{e:`🎞️`,t:`film reel pellicule`},{e:`📽️`,t:`projector projecteur`},{e:`⏰`,t:`alarm reveil clock horloge`},{e:`⏱️`,t:`stopwatch chrono chronometre`},{e:`⏲️`,t:`timer minuteur`},{e:`🕰️`,t:`mantel clock horloge`},{e:`⌛`,t:`hourglass sablier done`},{e:`⏳`,t:`hourglass sablier flow running`},{e:`📡`,t:`satellite antenne`},{e:`🔭`,t:`telescope astronomie`},{e:`🔬`,t:`microscope science`},{e:`💊`,t:`pill pilule medicine medicament`},{e:`💉`,t:`syringe seringue injection vaccin`},{e:`🩹`,t:`bandage pansement`},{e:`🩺`,t:`stethoscope medecin`},{e:`🧪`,t:`tube eprouvette chimie chemistry`},{e:`🧬`,t:`dna adn gene`},{e:`🔍`,t:`search magnify loupe rechercher find left`},{e:`🔎`,t:`search magnify loupe rechercher find right`},{e:`🗝️`,t:`key cle old`},{e:`🔑`,t:`key cle`},{e:`🔐`,t:`lock key cle cadenas`},{e:`🔒`,t:`lock cadenas verrouille secure`},{e:`🔓`,t:`unlock cadenas ouvert`},{e:`🛡️`,t:`shield bouclier protection`},{e:`🔨`,t:`hammer marteau`},{e:`⚒️`,t:`tools outils hammer pick`},{e:`🛠️`,t:`tools outils hammer wrench`},{e:`🔧`,t:`wrench cle anglaise`},{e:`🔩`,t:`nut bolt ecrou`},{e:`⚙️`,t:`gear settings parametres engrenage config`},{e:`🪛`,t:`screwdriver tournevis`},{e:`🪝`,t:`hook crochet`},{e:`🧰`,t:`toolbox caisse outils`},{e:`🧲`,t:`magnet aimant`},{e:`🧱`,t:`brick brique`},{e:`⛏️`,t:`pick pioche`},{e:`🪓`,t:`axe hache`}]},{label:`snippet.emoji_cat_office`,emojis:[{e:`📝`,t:`memo note ecrire write`},{e:`✏️`,t:`pencil crayon`},{e:`🖊️`,t:`pen stylo bille`},{e:`🖋️`,t:`fountain pen stylo plume`},{e:`🖌️`,t:`paintbrush pinceau`},{e:`🖍️`,t:`crayon feutre`},{e:`📐`,t:`triangle ruler equerre`},{e:`📏`,t:`ruler regle`},{e:`📎`,t:`paperclip trombone attach`},{e:`🖇️`,t:`linked paperclips trombones`},{e:`📌`,t:`pushpin punaise`},{e:`📍`,t:`pin location lieu`},{e:`✂️`,t:`scissors ciseaux cut couper`},{e:`🗂️`,t:`card index dividers onglets`},{e:`📁`,t:`folder dossier`},{e:`📂`,t:`open folder dossier ouvert`},{e:`🗃️`,t:`card box boite fiches`},{e:`🗄️`,t:`file cabinet archive armoire`},{e:`📋`,t:`clipboard presse papier`},{e:`📃`,t:`page curl document`},{e:`📄`,t:`document page`},{e:`📜`,t:`scroll parchemin`},{e:`📰`,t:`newspaper journal presse`},{e:`🗞️`,t:`rolled newspaper journal`},{e:`📓`,t:`notebook carnet cahier`},{e:`📔`,t:`notebook decorated carnet`},{e:`📒`,t:`ledger registre`},{e:`📕`,t:`book rouge red ferme`},{e:`📗`,t:`book vert green`},{e:`📘`,t:`book bleu blue`},{e:`📙`,t:`book orange`},{e:`📚`,t:`books livres bibliotheque`},{e:`📖`,t:`open book livre ouvert`},{e:`🔖`,t:`bookmark marque page signet`},{e:`🏷️`,t:`label tag etiquette`},{e:`💼`,t:`briefcase mallette attache case business`},{e:`🗒️`,t:`spiral note notepad`},{e:`🗓️`,t:`spiral calendar calendrier`},{e:`📅`,t:`calendar calendrier date`},{e:`📆`,t:`tear off calendar calendrier`},{e:`🗑️`,t:`trash poubelle delete supprimer can`},{e:`🪣`,t:`bucket seau`},{e:`📦`,t:`package colis box boite`},{e:`📫`,t:`mailbox boite lettres closed flag up`},{e:`📪`,t:`mailbox boite lettres closed flag down`},{e:`📬`,t:`mailbox open boite lettres flag up`},{e:`📭`,t:`mailbox open boite lettres flag down`},{e:`📮`,t:`postbox boite aux lettres`},{e:`✉️`,t:`envelope enveloppe`},{e:`📧`,t:`email courriel mail at`},{e:`📨`,t:`email incoming recu`},{e:`📩`,t:`email arrow envoi`},{e:`📤`,t:`outbox envoyer sent`},{e:`📥`,t:`inbox recevoir`},{e:`📊`,t:`bar chart graphique barres histogramme`},{e:`📈`,t:`chart up tendance hausse croissance`},{e:`📉`,t:`chart down baisse decroissance`}]},{label:`snippet.emoji_cat_symbols`,emojis:[{e:`🆕`,t:`new nouveau nouvelle brand fresh neuf`},{e:`♻️`,t:`existing existant existante recycle recycler reuse reutiliser`},{e:`✅`,t:`check ok valide coche green`},{e:`☑️`,t:`check ballot case`},{e:`✔️`,t:`check coche mark`},{e:`❌`,t:`cross error erreur red rouge croix ko`},{e:`✖️`,t:`multiply multiplier cross`},{e:`❎`,t:`cross square button`},{e:`⚠️`,t:`warning attention danger`},{e:`ℹ️`,t:`info information`},{e:`❓`,t:`question red interrogation`},{e:`❔`,t:`question white interrogation`},{e:`❗`,t:`exclamation important red`},{e:`❕`,t:`exclamation white`},{e:`‼️`,t:`double exclamation`},{e:`⁉️`,t:`exclamation question`},{e:`🚀`,t:`rocket fusee launch lancer`},{e:`🎉`,t:`party popper tada fete celebration`},{e:`🎊`,t:`confetti ball fete`},{e:`🏆`,t:`trophy trophee winner`},{e:`🥇`,t:`gold medal medaille or first`},{e:`🥈`,t:`silver medal medaille argent second`},{e:`🥉`,t:`bronze medal medaille third`},{e:`🏅`,t:`medal medaille sports`},{e:`🎖️`,t:`military medal medaille`},{e:`🎯`,t:`target cible dart`},{e:`🎁`,t:`gift cadeau present`},{e:`🔔`,t:`bell cloche notify notification`},{e:`🔕`,t:`bell off muted silence`},{e:`📢`,t:`loudspeaker annonce public`},{e:`📣`,t:`megaphone porte voix`},{e:`📯`,t:`postal horn cor`},{e:`➕`,t:`plus add heavy`},{e:`➖`,t:`minus moins heavy`},{e:`➗`,t:`divide division`},{e:`♾️`,t:`infinity infini`},{e:`💲`,t:`dollar sign dollars money argent`},{e:`💱`,t:`currency exchange change devise`},{e:`©️`,t:`copyright`},{e:`®️`,t:`registered`},{e:`™️`,t:`trademark marque`},{e:`↔️`,t:`left right arrow fleche horizontal`},{e:`↕️`,t:`up down arrow fleche vertical`},{e:`↖️`,t:`up left arrow fleche`},{e:`↗️`,t:`up right arrow fleche`},{e:`↘️`,t:`down right arrow fleche`},{e:`↙️`,t:`down left arrow fleche`},{e:`⬅️`,t:`left arrow fleche gauche`},{e:`➡️`,t:`right arrow fleche droite`},{e:`⬆️`,t:`up arrow fleche haut`},{e:`⬇️`,t:`down arrow fleche bas`},{e:`🔃`,t:`clockwise vertical arrows`},{e:`🔄`,t:`counterclockwise arrows reload refresh recharger`},{e:`🔁`,t:`repeat loop boucle`},{e:`🔂`,t:`repeat single once`},{e:`🔀`,t:`shuffle melange random`},{e:`🔼`,t:`up button triangle`},{e:`🔽`,t:`down button triangle`},{e:`⏫`,t:`fast up double triangle`},{e:`⏬`,t:`fast down double triangle`},{e:`⏪`,t:`rewind back`},{e:`⏩`,t:`fast forward avance`},{e:`⏭️`,t:`next track suivant`},{e:`⏮️`,t:`previous track precedent`},{e:`⏯️`,t:`play pause`},{e:`▶️`,t:`play lecture`},{e:`⏸️`,t:`pause`},{e:`⏹️`,t:`stop`},{e:`⏺️`,t:`record enregistrer`},{e:`⏏️`,t:`eject ejecter`},{e:`🎵`,t:`music note musique`},{e:`🎶`,t:`music notes musique`},{e:`🔈`,t:`speaker low bas`},{e:`🔉`,t:`speaker medium moyen`},{e:`🔊`,t:`speaker loud fort haut son sound`},{e:`🔇`,t:`muted mute silence`},{e:`📶`,t:`signal antenne bars`},{e:`🛜`,t:`wireless wifi`},{e:`🔗`,t:`link lien chain`},{e:`⛓️`,t:`chains chaine`},{e:`🏁`,t:`finish flag checkered fin arrivee`},{e:`🚩`,t:`flag drapeau triangular`},{e:`🏳️`,t:`white flag drapeau blanc`},{e:`🏴`,t:`black flag drapeau noir`},{e:`🏳️🌈`,t:`rainbow lgbt pride drapeau arc en ciel`},{e:`🏳️⚧️`,t:`trans drapeau transgender`},{e:`🏴☠️`,t:`pirate drapeau jolly roger`}]}];function qd(e){let t=(e||``).trim();if(/^\[.*?\]\(\?doc=.+#.+\)$/.test(t))return`anchor-doc-link`;if(/^\[.*?\]\(\?doc=.+\)$/.test(t))return`doc-link`;if(/^\[.*?\]\(#.+\)$/.test(t))return`anchor-link`;if(/^<!--\s*image-(?:width|align):/.test(t)||/^!\[.*?\]\(.*?\)$/.test(t))return`image`;if(/^\[.*?\]\(.*?\)$/.test(t))return`link`;if(/^<details[\s>]/i.test(t))return`collapsible`;if(/^<span\s[^>]*color:[^>]*>[\s\S]*<\/span>$/.test(t))return`colored-text`;if(/^<div\s+data-ld-kanban\b[^>]*>\s*<\/div>$/i.test(t))return`kanban`;if(/^<div\s[^>]*border-left[^>]*>/.test(t))return`colored-section`;if(/^```text\n/.test(t)&&/[├└│]/.test(t))return`tree`;if(/^:::compare[ \t]*\n/.test(t))return`compare`;if(/^<!--\s*(?:code|mermaid)-(?:width|align):/.test(t)||/^```/.test(t))return`code-block`;if(dc(t))return`table`;if(/^<!--\s*quote-(?:type|title|icon)/.test(t)||/^> /.test(t))return`blockquote`;let n=/^(#{1,4}) [^\n]+$/.exec(t);return n?`heading-${n[1].length}`:/^(---|\n---\n)$/.test(t)?`separator`:Fl(t)?`ordered-list`:Il(t)?`unordered-list`:null}var Jd=U(`<div class="grid grid-cols-[minmax(0,1fr)_7rem_auto] gap-2 items-center"><input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="number" min="0" step="1" placeholder="0" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),Yd=U(`<div class="grid grid-cols-[8rem_minmax(0,1fr)_auto] gap-2 items-center"><input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),Xd=U(`<div class="grid grid-cols-[5rem_minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1fr)_auto] gap-2 items-center"><input type="number" min="0" step="1" placeholder="0" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),Zd=U(`<select class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option> </option><option> </option><option> </option></select>`),Qd=U(`<input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/>`),$d=U(`<div class="grid grid-cols-[7rem_minmax(0,1fr)_7rem_minmax(0,1fr)_minmax(0,1.4fr)_auto] gap-2 items-center"><select class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option> </option><option> </option></select> <!> <select class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-40"><option>->></option><option>-->></option><option>--x</option><option>-x</option><option>--></option><option>-></option></select> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),ef=U(`<option> </option>`),tf=U(`<div class="grid grid-cols-[minmax(0,1fr)_9rem_auto] gap-2 items-center" data-testid="snip-kanban-column-row"><input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <select class="w-full px-2 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select> <button type="button" class="w-9 h-9 rounded-lg border border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),nf=U(`<div id="snippets-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div id="snippet-modal-card" class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-6xl mx-4 p-6 space-y-5 max-h-[90vh] overflow-y-auto"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><span id="snippet-modal-title"> </span></h3> <div id="snippet-detect-msg" class="hidden rounded-lg px-3 py-2 text-xs"></div> <div id="snippet-picker" class="hidden space-y-4"><input id="snippet-picker-search" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <div id="snippet-picker-categories" class="space-y-4 max-h-[60vh] overflow-y-auto pr-1"></div> <div id="snippet-picker-no-results" class="hidden text-center text-sm text-gray-500 dark:text-gray-400 py-4"> </div></div> <button type="button" id="snippet-picker-back" class="hidden inline-flex items-center gap-2 text-xs font-medium text-blue-700 dark:text-blue-300 hover:underline"><i class="fa-solid fa-arrow-left" aria-hidden="true"></i> <span> </span></button> <div id="snippet-type-wrapper" class="hidden space-y-1.5"><label for="snippet-type" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snippet-type" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option selected=""> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div id="snip-panel-heading" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-heading-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-heading-content" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-collapsible" class="space-y-3"><div class="space-y-1.5"><label for="snip-collapsible-summary" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-collapsible-summary" type="text" value="Details" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-collapsible-body" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-collapsible-body" rows="6" class="w-full px-3 py-2 text-sm font-mono rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea></div></div> <div id="snip-panel-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-link-text" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-link-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-link-url" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-link-url" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-doc-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-doc-select" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-doc-select" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <input id="snip-doc-link-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-anchor-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-anchor-text" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-anchor-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <select id="snip-anchor-id" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div></div> <div id="snip-panel-anchor-doc-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-anchor-doc-select" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-anchor-doc-select" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div> <div class="space-y-1.5"><label for="snip-anchor-doc-text" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-anchor-doc-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <select id="snip-anchor-doc-id" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div></div> <div id="snip-panel-ordered-list" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-ordered-list-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-ordered-list-content" rows="10" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y leading-relaxed"></textarea></div></div> <div id="snip-panel-unordered-list" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-unordered-list-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-unordered-list-content" rows="10" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y leading-relaxed"></textarea></div></div> <div id="snip-panel-code-block" class="hidden space-y-3"><div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <input id="snip-code-lang" type="text" placeholder="javascript" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-code-width" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-code-width" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-code-align" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-code-align" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div></div> <p class="text-xs text-gray-400 dark:text-gray-500"> </p> <div class="space-y-1.5"><label for="snip-code-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-code-content" rows="12" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y font-mono leading-relaxed"></textarea></div></div> <div id="snip-panel-mermaid" class="hidden space-y-4"><div class="space-y-1.5"><label for="snip-mermaid-type" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-mermaid-type" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option> </option><option> </option><option> </option><option> </option></select></div> <div id="snip-mermaid-pie-builder"><div class="space-y-1.5"><label for="snip-mermaid-pie-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-mermaid-pie-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-2"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button></div> <div class="space-y-2"></div></div></div> <div id="snip-mermaid-timeline-builder"><div class="space-y-1.5"><label for="snip-mermaid-timeline-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-mermaid-timeline-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-2"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button></div> <div class="space-y-2"></div></div></div> <div id="snip-mermaid-tree-builder"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button></div> <div class="space-y-2"></div></div> <div id="snip-mermaid-sequence-builder"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex items-center gap-2"><button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-note-sticky mr-1" aria-hidden="true"></i> </button></div></div> <div class="space-y-2"></div></div></div> <div id="snip-panel-blockquote" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-blockquote-type" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-blockquote-type" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <label class="flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"><input id="snip-blockquote-icon" type="checkbox" class="rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"/> <span> </span></label></div> <div class="space-y-1.5"><label for="snip-blockquote-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-blockquote-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-blockquote-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-blockquote-content" rows="6" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y leading-relaxed"></textarea></div></div> <div id="snip-panel-image" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-image-width" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-image-width" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-image-align" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-image-align" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div></div> <div class="space-y-1.5"><label for="snip-image-alt" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-image-alt" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-image-url" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-image-url" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-columns" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-columns-count" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-count" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option>2</option><option>3</option><option>4</option></select></div> <div class="flex items-center gap-2"><label for="snip-columns-valign" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-valign" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-columns-text" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-text" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-columns-gap" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-gap" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option selected=""> </option><option> </option></select></div></div> <div class="space-y-1.5"><label for="snip-columns-ratio" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-columns-ratio" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <p class="text-xs text-gray-400 dark:text-gray-500"> </p></div> <div id="snip-panel-table" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-table-style" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-table-style" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div> <label class="flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"><input id="snip-table-bordered" type="checkbox" class="rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"/> <span> </span></label> <div class="flex items-center gap-2"><label for="snip-table-color" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-table-color" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <p id="snip-table-hint" class="text-xs text-gray-400 dark:text-gray-500 ml-auto"> </p></div> <div id="snip-table-grid" class="overflow-x-auto"></div></div> <div id="snip-panel-tree" class="hidden space-y-2"><p class="text-xs text-gray-400 dark:text-gray-500"> </p> <div id="snip-tree-list" class="space-y-1"></div> <button class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors w-full"> </button></div> <div id="snip-panel-diagram" class="hidden space-y-3"><div class="flex gap-4 text-sm"><label class="flex items-center gap-2 cursor-pointer"><input type="radio" name="snip-diag-mode" id="snip-diag-mode-existing" value="existing" checked=""/> <span class="text-gray-700 dark:text-gray-300"> </span></label> <label class="flex items-center gap-2 cursor-pointer"><input type="radio" name="snip-diag-mode" id="snip-diag-mode-new" value="new"/> <span class="text-gray-700 dark:text-gray-300"> </span></label></div> <div id="snip-diag-existing-section" class="space-y-1.5"><label for="snip-diag-select" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-diag-select" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div> <div id="snip-diag-new-section" class="hidden space-y-1.5"><label for="snip-diag-new-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-diag-new-name" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-diag-img-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <input id="snip-diag-img-name" type="text" placeholder="diagram.png" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-colored-section" class="hidden space-y-3"><div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex flex-wrap gap-2"><button type="button" data-color-swatch="info" class="w-7 h-7 rounded-full border-2 border-blue-400 bg-blue-100 ring-2 ring-transparent hover:ring-blue-400 transition-all color-swatch-btn selected-swatch"></button> <button type="button" data-color-swatch="success" class="w-7 h-7 rounded-full border-2 border-green-400 bg-green-100 ring-2 ring-transparent hover:ring-green-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="warning" class="w-7 h-7 rounded-full border-2 border-amber-400 bg-amber-100 ring-2 ring-transparent hover:ring-amber-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="danger" class="w-7 h-7 rounded-full border-2 border-red-400 bg-red-100 ring-2 ring-transparent hover:ring-red-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="note" class="w-7 h-7 rounded-full border-2 border-purple-400 bg-purple-100 ring-2 ring-transparent hover:ring-purple-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="neutral" class="w-7 h-7 rounded-full border-2 border-gray-400 bg-gray-100 ring-2 ring-transparent hover:ring-gray-400 transition-all color-swatch-btn"></button></div></div> <div class="space-y-1.5"><label for="snip-colored-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-colored-content" rows="4" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y font-mono"></textarea></div></div> <div id="snip-panel-colored-text" class="hidden space-y-3"><div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex flex-wrap gap-2"><button type="button" data-color-text-swatch="info" class="w-7 h-7 rounded-full border-2 border-blue-500 bg-blue-500 ring-2 ring-transparent hover:ring-blue-400 transition-all color-text-swatch-btn selected-text-swatch"></button> <button type="button" data-color-text-swatch="success" class="w-7 h-7 rounded-full border-2 border-green-500 bg-green-500 ring-2 ring-transparent hover:ring-green-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="warning" class="w-7 h-7 rounded-full border-2 border-amber-500 bg-amber-500 ring-2 ring-transparent hover:ring-amber-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="danger" class="w-7 h-7 rounded-full border-2 border-red-500 bg-red-500 ring-2 ring-transparent hover:ring-red-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="note" class="w-7 h-7 rounded-full border-2 border-purple-500 bg-purple-500 ring-2 ring-transparent hover:ring-purple-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="neutral" class="w-7 h-7 rounded-full border-2 border-gray-500 bg-gray-500 ring-2 ring-transparent hover:ring-gray-400 transition-all color-text-swatch-btn"></button></div></div> <div class="space-y-1.5"><label for="snip-colored-text-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-colored-text-content" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-emojis" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-emoji-string" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex gap-1"><input id="snip-emoji-string" type="text" class="flex-1 px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" id="snip-emoji-clear" class="px-3 py-2 text-xs rounded-lg border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700"> </button></div></div> <div class="space-y-1.5"><input id="snip-emoji-search" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div id="snip-emoji-grid" class="space-y-2 max-h-64 overflow-y-auto border border-gray-200 dark:border-gray-700 rounded-lg p-2 bg-white dark:bg-gray-900"></div></div> <div id="snip-panel-attachment" class="hidden space-y-3"><div class="rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 px-3 py-3 text-sm text-blue-900 dark:text-blue-100 space-y-2"><p></p> <p class="text-xs text-blue-700 dark:text-blue-300"></p></div></div> <div id="snip-panel-compare" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-compare-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-compare-content" rows="6" class="w-full px-3 py-2 text-sm font-mono rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea></div></div> <div id="snip-panel-kanban" class="hidden space-y-3"><div class="space-y-1.5"><div class="flex items-center justify-between gap-3"><span class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </span> <button type="button" class="text-xs px-2.5 py-1 rounded-lg border border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed"> </button></div> <div class="space-y-2"></div> <p class="text-xs text-gray-400 dark:text-gray-500"> </p></div></div> <div id="snippet-preview-wrap" class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <pre id="snippet-preview" class="text-xs bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 overflow-x-auto text-gray-700 dark:text-gray-300 whitespace-pre-wrap"></pre></div> <div class="flex justify-end gap-3 pt-1"><button id="snippet-delete-btn" class="hidden text-sm px-4 py-2 mr-auto rounded-lg border border-red-200 dark:border-red-800 text-red-700 dark:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/30 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button id="snippet-submit-btn" class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`),rf=U(`<!> <!>`,1);function af(e,t){qe(t,!0);let n=Wi(t,`editor`,7),r=Wi(t,`mode`,3,`insert`),i=Wi(t,`content`,3,``),a=Wi(t,`range`,3,null),o=Wi(t,`insertPos`,3,0),s=Wi(t,`onsave`,3,void 0),c=0,l=0,u=``,d=P(null),f=`info`,p=`info`,m=P(`pie`),h=1,g=P(I([])),_=1,v=P(I([])),y=1,b=P(I([])),x=1,S=P(I([])),C=1,w=P(I([])),T=[{labelKey:`snippet.mermaid_pie_default_item_1`,value:`50`},{labelKey:`snippet.mermaid_pie_default_item_2`,value:`30`},{labelKey:`snippet.mermaid_pie_default_item_3`,value:`20`}],E=[{period:`2023`,eventKey:`snippet.mermaid_timeline_default_event_1`},{period:`2024`,eventKey:`snippet.mermaid_timeline_default_event_2`},{period:`2024`,eventKey:`snippet.mermaid_timeline_default_event_3`},{period:`2025`,eventKey:`snippet.mermaid_timeline_default_event_4`},{period:`2026`,eventKey:`snippet.mermaid_timeline_default_event_5`}],D=[{level:`0`,labelKey:`snippet.mermaid_tree_default_label_1`,decorator:``,noteKey:``},{level:`1`,labelKey:`snippet.mermaid_tree_default_label_2`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_2`},{level:`2`,labelKey:`snippet.mermaid_tree_default_label_3`,decorator:`:::highlight`,noteKey:`snippet.mermaid_tree_default_note_3`},{level:`2`,labelKey:`snippet.mermaid_tree_default_label_4`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_4`},{level:`1`,labelKey:`snippet.mermaid_tree_default_label_5`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_5`},{level:`1`,labelKey:`snippet.mermaid_tree_default_label_6`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_6`}],ee=[{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_1`,arrow:`->>`,toKey:`snippet.mermaid_sequence_default_actor_2`,messageKey:`snippet.mermaid_sequence_default_message_1`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_2`,arrow:`-->>`,toKey:`snippet.mermaid_sequence_default_actor_3`,messageKey:`snippet.mermaid_sequence_default_message_2`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_3`,arrow:`--x`,toKey:`snippet.mermaid_sequence_default_actor_1`,messageKey:`snippet.mermaid_sequence_default_message_3`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_2`,arrow:`-x`,toKey:`snippet.mermaid_sequence_default_actor_3`,messageKey:`snippet.mermaid_sequence_default_message_4`,notePosition:`right of`},{type:`note`,fromKey:``,arrow:`->>`,toKey:`snippet.mermaid_sequence_default_actor_3`,messageKey:`snippet.mermaid_sequence_default_note_1`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_3`,arrow:`-->`,toKey:`snippet.mermaid_sequence_default_actor_1`,messageKey:`snippet.mermaid_sequence_default_message_5`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_1`,arrow:`->`,toKey:`snippet.mermaid_sequence_default_actor_2`,messageKey:`snippet.mermaid_sequence_default_message_6`,notePosition:`right of`}],te=[{value:`sky`,labelKey:`snippet.kanban_color_sky`},{value:`amber`,labelKey:`snippet.kanban_color_amber`},{value:`emerald`,labelKey:`snippet.kanban_color_emerald`},{value:`rose`,labelKey:`snippet.kanban_color_rose`},{value:`violet`,labelKey:`snippet.kanban_color_violet`},{value:`slate`,labelKey:`snippet.kanban_color_slate`}],O=il(()=>M()),k=xl(()=>M());function ne(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function A(e){return document.getElementById(e)}function re(e){if(!e)return``;let t=e.split(/\s+/);return t.length>1&&!/^[\p{L}\p{N}]/u.test(t[0])?t.slice(1).join(` `):e}function ie(e){let t=Wd[e];return re(t?Y(t):e)}function ae(){let e=A(`snippet-picker-categories`);if(e){e.innerHTML=``;for(let t of Vd){let n=document.createElement(`section`);n.dataset.snippetCategory=t.key,n.className=`space-y-2`;let r=document.createElement(`h3`);r.className=`text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400`,r.textContent=Y(t.labelKey),n.appendChild(r);let i=document.createElement(`div`);i.className=`grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-6 gap-2`;for(let e of t.types){let t=Hd[Ud[e]||`indigo`]||Hd.indigo,n=document.createElement(`button`);n.type=`button`,n.dataset.snippetType=e,n.className=`snippet-card min-h-[76px] flex flex-col items-center justify-center gap-2 p-2 rounded-lg border text-gray-800 dark:text-gray-100 transition-colors `+t.card,n.onclick=()=>de(e);let r=document.createElement(`i`);r.className=(Bd[e]||`fa-solid fa-puzzle-piece`)+` text-xl `+t.icon,r.setAttribute(`aria-hidden`,`true`),n.appendChild(r);let a=document.createElement(`span`);a.className=`text-xs font-medium text-center leading-tight`,a.textContent=ie(e),n.appendChild(a),i.appendChild(n)}n.appendChild(i),e.appendChild(n)}}}function oe(){ae(),A(`snippet-picker`)?.classList.remove(`hidden`),A(`snippet-picker-back`)?.classList.add(`hidden`),A(`snippet-submit-btn`)?.classList.add(`hidden`),Ld.forEach(e=>A(`snip-panel-`+e)?.classList.add(`hidden`)),A(`snippet-preview-wrap`)?.classList.add(`hidden`);let e=A(`snippet-picker-search`);e&&(e.value=``,ce(``),setTimeout(()=>e.focus(),50))}function se(e=!0){A(`snippet-picker`)?.classList.add(`hidden`),A(`snippet-submit-btn`)?.classList.remove(`hidden`),A(`snippet-picker-back`)?.classList.toggle(`hidden`,!e)}function ce(e){let t=A(`snippet-picker-categories`);if(!t)return;let n=(e||``).toLowerCase().trim(),r=0;t.querySelectorAll(`[data-snippet-category]`).forEach(e=>{let t=0;e.querySelectorAll(`[data-snippet-type]`).forEach(e=>{let r=(e.querySelector(`span`)?.textContent||``).toLowerCase(),i=!n||r.includes(n);e.classList.toggle(`hidden`,!i),i&&(t+=1)}),e.classList.toggle(`hidden`,t===0),r+=t}),A(`snippet-picker-no-results`)?.classList.toggle(`hidden`,r>0)}function le(){let e=A(`snippet-picker-search`);ce(e?e.value:``)}function ue(e){if(e.key===`Enter`){e.preventDefault();let t=document.querySelector(`#snippet-picker-categories [data-snippet-type]:not(.hidden)`);t&&de(t.dataset.snippetType)}}function de(e){let t=A(`snippet-type`);t&&(t.value=e),Ne(),se()}function fe(){oe()}let pe=!1;function me(e){return`<button type="button" data-emoji="${e.e}" title="${e.t.split(` `).slice(0,3).join(`, `)}" class="emoji-btn w-7 h-7 text-lg rounded hover:bg-gray-100 dark:hover:bg-gray-700 flex items-center justify-center">${e.e}</button>`}function he(){return Kd.map(e=>`
|
|
55
|
+
`;case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:return Xl(e,t);case`image`:return Zl(t);case`table`:return Ql(t);case`tree`:return t.markdown;case`diagram`:return $l(t);case`mermaid`:return ou(t);case`colored-text`:return su(t);case`colored-section`:return cu(t);case`emojis`:return t.value;case`local-search`:return`<div data-ld-local-search></div>`;case`kanban`:return au(t);case`compare`:return`:::compare\n${t.content||``}\n:::`;case`columns`:return lu(t);default:return``}}function du(e){let t=e.match(/<summary>([\s\S]*?)<\/summary>/i),n=e.match(/<details\b[^>]*>[\s\S]*?<\/summary>\s*\n?([\s\S]*?)\s*<\/details>\s*$/i);return{summary:t?t[1].trim():void 0,body:n?n[1].trim():``}}function fu(e){let t=e.match(/^\[([\s\S]*?)\]\(([\s\S]*?)\)$/);return t?{text:t[1],url:t[2]}:{}}function pu(e){let t=e.match(/^\[([\s\S]*?)\]\(\?doc=([\s\S]*?)\)$/);return t?{text:t[1],docId:decodeURIComponent(t[2])}:{}}function mu(e){let t=e.match(/^\[([\s\S]*?)\]\(#([\s\S]*?)\)$/);return t?{text:t[1],anchor:t[2]}:{}}function hu(e){let t=e.match(/^\[([\s\S]*?)\]\(\?doc=([\s\S]*?)#([\s\S]*?)\)$/);return t?{text:t[1],docId:decodeURIComponent(t[2]),anchor:t[3]}:{}}function gu(e,t={}){let n=Uc(e,t.inlineIndent||``),r=Gc(n),i=Wc(n).match(/^```[ \t]*([^\n]*)\n([\s\S]*?)\n[ \t]*```$/);return i?{lang:i[1].trim(),code:i[2],width:r.width||``,align:r.align||``}:{lang:``,code:``,width:``,align:``}}var _u=/^<!--\s*quote-type:\s*([a-z][a-z0-9_-]*)\s*-->$/,vu=/^<!--\s*quote-title:\s*(.+?)\s*-->$/,yu=/^<!--\s*quote-icon\s*-->$/,bu={note:`info`,tip:`success`,caution:`warning`,danger:`error`};function xu(e){let t=e.split(`
|
|
56
|
+
`),n=``,r=``,i=!1,a=[],o=!1;for(let e of t){if(!o){let t=e.match(_u);if(t){n=bu[t[1]]??t[1];continue}let a=e.match(vu);if(a){r=a[1];continue}if(yu.test(e)){i=!0;continue}if(e.trim()===``)continue;o=!0}a.push(e.replace(/^>\s?/,``))}return{type:n,title:r,icon:i,content:a.join(`
|
|
57
|
+
`)}}function Su(e){let t=jc(e),n=e.match(/!\[([^\]\n]*?)\]\(([^\n]+?)\)\s*$/);return n?{alt:n[1],url:n[2],width:t.width||``,align:t.align||``}:{width:t.width||``,align:t.align||``}}function Cu(e,t){let n=Number(e.slice(-1)),r=t.match(RegExp(`^#{${n}}\\s+(.+)$`));return{text:r?r[1].trim():``}}function wu(e){let t=e.match(/^<span\s[^>]*color:([^;>"]+)[^>]*>([\s\S]*)<\/span>$/);return t?{color:t[1].trim(),content:t[2]}:{}}function Tu(e){let t=e.match(/border-left:[^;]*solid\s+(#[0-9a-fA-F]{6})/),n=e.match(/^<div[^>]*>\n\n([\s\S]*?)\n\n<\/div>$/);return{borderColor:t?t[1]:void 0,content:n?n[1]:void 0}}function Eu(e,t){let n=(e||``).match(RegExp(`${t}\\s*=\\s*"([^"]*)"`,`i`));return n?n[1].split(`|`).map(e=>e.replace(/"/g,`"`).replace(/&/g,`&`).trim()):[]}function Du(e){return Eu(e,`data-columns`).filter(Boolean)}function Ou(e){let t=Du(e).slice(0,6),n=Eu(e,`data-colors`);return t.map((e,t)=>({label:e,color:nu(n[t],t)}))}function ku(e,t,n={}){let r=(t||``).trim();switch(e){case`collapsible`:return du(r);case`link`:return fu(r);case`doc-link`:return pu(r);case`anchor-link`:return mu(r);case`anchor-doc-link`:return hu(r);case`ordered-list`:case`unordered-list`:return{content:r};case`code-block`:return gu(t||``,n);case`blockquote`:return xu(r);case`image`:return Su(r);case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:return Cu(e,r);case`table`:return _l(r);case`tree`:return El(r);case`colored-text`:return wu(r);case`colored-section`:return Tu(r);case`compare`:{let e=r.match(/^:::compare[ \t]*\n([\s\S]*?)\n?:::[ \t]*$/);return{content:e?e[1]:``}}case`kanban`:return{columns:Ou(r)};default:return{}}}var Au=/^<div\s+data-ld-kanban\b[^\n]*<\/div>[ \t]*$/im,ju=`Here is the description`,Mu=`Here is the Full Content`,Nu=140,Pu=2,Fu=`#60a5fa`,Iu=`0.65`,Lu=24,Ru=360,zu=null,Bu={sky:{bg:`#f0f9ff`,border:`#bae6fd`,title:`#075985`,countBg:`#e0f2fe`,countText:`#0369a1`,action:`#0284c7`,actionHover:`#e0f2fe`},amber:{bg:`#fffbeb`,border:`#fde68a`,title:`#92400e`,countBg:`#fef3c7`,countText:`#b45309`,action:`#d97706`,actionHover:`#fef3c7`},emerald:{bg:`#ecfdf5`,border:`#a7f3d0`,title:`#065f46`,countBg:`#d1fae5`,countText:`#047857`,action:`#059669`,actionHover:`#d1fae5`},rose:{bg:`#fff1f2`,border:`#fecdd3`,title:`#9f1239`,countBg:`#ffe4e6`,countText:`#be123c`,action:`#e11d48`,actionHover:`#ffe4e6`},violet:{bg:`#f5f3ff`,border:`#ddd6fe`,title:`#5b21b6`,countBg:`#ede9fe`,countText:`#6d28d9`,action:`#7c3aed`,actionHover:`#ede9fe`},slate:{bg:`#f8fafc`,border:`#cbd5e1`,title:`#334155`,countBg:`#e2e8f0`,countText:`#475569`,action:`#475569`,actionHover:`#e2e8f0`}};function Vu(e){return Bu[e]||Bu.sky}function Hu(e){let t=Au.exec(e);return t?{start:t.index,end:t.index+t[0].length,type:`kanban`}:null}function Uu(e,t){e.style.boxShadow=t?`inset 0 0 0 ${Pu}px ${Fu}`:``}function Wu(e,t){e.style.boxShadow=t?`inset 0 0 0 ${Pu}px ${Fu}, 0 1px 2px rgba(15, 23, 42, 0.08)`:``,e.style.opacity=t?Iu:``}function Gu(e,t){let n=Array.from(t.querySelectorAll(`[data-testid='kanban-column']`)),r=n[0]?.getBoundingClientRect().top??t.getBoundingClientRect().top,i=window.innerHeight-r-Lu,a=n.reduce((e,t)=>Math.max(e,t.scrollHeight),0),o=Math.max(Ru,Math.round(i),Math.ceil(a));t.style.minHeight=`${o}px`;for(let e of n)e.style.minHeight=`${o}px`}function Ku(e,t){let n=()=>{document.body.contains(e)&&Gu(e,t)};n(),requestAnimationFrame(n);let r=new AbortController;window.addEventListener(`resize`,n,{signal:r.signal});let i=new MutationObserver(()=>{document.body.contains(e)||(r.abort(),i.disconnect())});return i.observe(document.body,{childList:!0,subtree:!0}),n}async function qu(e){if(e)return e;if(zu!==null)return zu;try{let e=await fetch(`/api/config`).then(e=>e.json());zu=typeof e.docsFolder==`string`?e.docsFolder:``}catch{zu=``}return zu}function Ju(e,t){let n=e.querySelector(`[data-ld-kanban]`);if(!n)return!1;let r=decodeURIComponent(t.docId||``),i=document.createElement(`div`);i.setAttribute(`data-ld-kanban-root`,``),i.dataset.testid=`kanban-board`,i.className=`ld-kanban-board`,i.style.display=`flex`,i.style.flexDirection=`column`,i.style.gap=`12px`;let a=Ou(n.outerHTML);if(e.replaceChildren(i),!r||r.startsWith(`/`))return i.appendChild(Yu(t.t(`kanban.unsupported_doc`),`info`)),!0;let o=r.includes(`/`)?r.slice(0,r.lastIndexOf(`/`)):``,s=new Set,c=[];for(let e of a){let t=Oa(e.label);!t||s.has(t)||(s.add(t),c.push({label:e.label,color:e.color||`sky`,folderSegment:t,folderPath:o?`${o}/${t}`:t}))}return Xu(i,c,t),!0}function Yu(e,t){let n=document.createElement(`p`);return n.className=t===`error`?`ld-kanban-banner rounded-lg border border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950/40 text-red-700 dark:text-red-300 text-sm px-3 py-2`:`ld-kanban-banner rounded-lg border border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-950/40 text-blue-700 dark:text-blue-300 text-sm px-3 py-2`,n.textContent=e,n}function Xu(e,t,n){let{t:r}=n,i=document.createElement(`div`);e.appendChild(i);let a=document.createElement(`div`);a.className=`ld-kanban-lanes`,a.dataset.testid=`kanban-lanes`,a.style.display=`flex`,a.style.width=`100%`,a.style.gap=`12px`,a.style.alignItems=`stretch`,a.style.overflowX=`auto`,a.style.paddingBottom=`8px`,e.appendChild(a);let o=Ku(e,a),s=e=>{i.replaceChildren(Yu(e,`error`))},c=()=>i.replaceChildren(),l=Array.isArray(n.docs)?n.docs:[],u=new Map,d=0,f=()=>{ad(a,t,l,{opts:n,showError:s,clearError:c,setDocs:m,descriptionById:u,setDescription:p}),o(),requestAnimationFrame(o)},p=(e,t)=>{u=new Map(u),t?u.set(e,t):u.delete(e)},m=e=>{l=Zu(e),n.onDocsChange?.(l),f(),h()},h=async()=>{let e=++d,n=l.filter(e=>t.some(t=>(e.folder||[]).join(`/`)===t.folderPath)).filter(e=>!u.has(e.id));if(!n.length)return;let r=await Promise.all(n.map(async e=>{try{let t=await fetch(`/api/documents/${e.id}`).then(e=>{if(!e.ok)throw Error(String(e.status));return e.json()});return[e.id,ed(t.content||``)]}catch{return[e.id,``]}}));if(e===d){u=new Map(u);for(let[e,t]of r)t&&u.set(e,t);f()}};n.docs?(f(),h()):(async()=>{try{m(await fetch(`/api/documents`).then(e=>e.json()))}catch{s(r(`kanban.load_failed`))}})(),(async()=>{let e=await id(t,n);e.length&&n.onFolderPathsChange&&n.onFolderPathsChange(Qu([...n.folderPaths||[],...e]))})()}function Zu(e){return e.slice().sort((e,t)=>(e.filename||``).localeCompare(t.filename||``))}function Qu(e){return Array.from(new Set(e.filter(Boolean))).sort((e,t)=>e.localeCompare(t))}function $u(e){return`# ${e.trim()}\n\n${ju}\n\n## Content\n\n${Mu}\n`}function ed(e){let t=(e.startsWith(`---`)?e.replace(/^---[\s\S]*?\n---\s*/,``):e).replace(/^#\s+.*(?:\r?\n|$)/,``).trimStart(),n=t.search(/^##\s+Content\s*$/im);return nd(n>=0?t.slice(0,n):t)}function td(e){return e.replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/(\*\*|__|~~|\*|_)/g,``).replace(/`+/g,``).trim()}function nd(e){let t=[];for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||/^\|?[\s:|-]+\|?$/.test(e)&&e.includes(`-`))continue;if(e.startsWith(`|`)){let n=e.split(`|`).map(e=>td(e.trim())).filter(Boolean);n.length&&t.push(n.join(` · `));continue}let r=e.match(/^(?:[-*+]|\d+[.)])\s+(.*)$/);if(r){let e=td(r[1]);e&&t.push(`• ${e}`);continue}let i=e.match(/^(?:#{1,6}\s+|>\s?)(.*)$/);if(i){let e=td(i[1]);e&&t.push(e);continue}let a=td(e);a&&t.push(a)}return t.join(` `).replace(/\s+/g,` `).trim()}function rd(e){return e.length<=Nu?e:`${e.slice(0,Nu-1).trimEnd()}…`}async function id(e,t){let n=await qu(t.docsFolder);if(!n)return[];let r=new Set(t.folderPaths||[]),i=e.filter(e=>!r.has(e.folderPath));if(!i.length)return[];let a=[];return await Promise.allSettled(i.map(async e=>{(await fetch(`/api/browse/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:`${n}/${e.folderPath}`})})).ok&&a.push(e.folderPath)})),a}function ad(e,t,n,r){let{opts:i,showError:a,clearError:o,setDocs:s,descriptionById:c,setDescription:l}=r,{t:u}=i;e.replaceChildren();for(let r of t){let t=n.filter(e=>(e.folder||[]).join(`/`)===r.folderPath),d=Vu(r.color),f=document.createElement(`section`);f.dataset.testid=`kanban-column`,f.dataset.kanbanFolder=r.folderSegment,f.dataset.kanbanColor=r.color,f.className=`ld-kanban-column rounded-xl border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/60 p-3`,f.style.backgroundColor=d.bg,f.style.borderColor=d.border,f.style.flex=`1 1 280px`,f.style.minWidth=`240px`,f.style.alignSelf=`stretch`,f.style.display=`flex`,f.style.flexDirection=`column`,f.style.gap=`8px`,f.addEventListener(`dragover`,e=>{e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),Uu(f,!0)}),f.addEventListener(`dragleave`,()=>{Uu(f,!1)}),f.addEventListener(`drop`,e=>{e.preventDefault(),Uu(f,!1);let t=e.dataTransfer?.getData(`text/plain`);t&&(async()=>{o();try{let e=await fetch(`/api/documents/${t}/move`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folder:r.folderPath})});if(!e.ok){let t=await e.json().catch(()=>({}));a(u(`kanban.move_failed`)+(t.error||e.status));return}let i=await e.json();s(n.map(e=>e.id===t?i:e))}catch(e){a(u(`kanban.move_failed`)+String(e))}})()});let p=document.createElement(`header`);p.style.display=`flex`,p.style.alignItems=`center`,p.style.justifyContent=`space-between`,p.style.gap=`8px`,p.style.margin=`0`;let m=document.createElement(`h2`);m.className=`text-sm font-bold text-gray-700 dark:text-gray-200 uppercase tracking-wide`,m.textContent=r.label,m.style.color=d.title,m.style.margin=`0`,m.style.lineHeight=`1.1`;let h=document.createElement(`div`);h.style.display=`flex`,h.style.alignItems=`center`,h.style.gap=`6px`,h.style.margin=`0`;let g=document.createElement(`span`);g.className=`text-xs font-semibold text-gray-500 dark:text-gray-400 bg-gray-200 dark:bg-gray-700 rounded-full px-2 py-0.5`,g.textContent=String(t.length),g.style.backgroundColor=d.countBg,g.style.color=d.countText,g.style.margin=`0`;let _=document.createElement(`button`);_.type=`button`,_.dataset.testid=`kanban-add-card`,_.title=u(`kanban.add_card`),_.className=`inline-flex items-center justify-center w-6 h-6 rounded-md text-blue-700 dark:text-blue-300 hover:bg-blue-100 dark:hover:bg-blue-900/40 text-sm font-bold`,_.textContent=`+`,_.style.color=d.action,_.style.margin=`0`,_.addEventListener(`mouseenter`,()=>{_.style.backgroundColor=d.actionHover}),_.addEventListener(`mouseleave`,()=>{_.style.backgroundColor=``}),h.append(g,_),p.append(m,h),f.appendChild(p);let v=document.createElement(`form`);v.hidden=!0,v.style.display=`none`,v.style.gap=`6px`,v.style.margin=`0`;let y=document.createElement(`input`);y.type=`text`,y.placeholder=u(`kanban.card_title_placeholder`),y.className=`flex-1 min-w-0 px-2 py-1.5 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500`;let b=document.createElement(`button`);b.type=`submit`,b.dataset.testid=`kanban-create-card`,b.className=`px-2.5 py-1.5 text-xs font-semibold rounded-lg bg-blue-600 hover:bg-blue-700 text-white`,b.textContent=u(`kanban.create_btn`),v.append(y,b),f.appendChild(v),_.addEventListener(`click`,()=>{let e=v.hidden;v.hidden=!e,v.style.display=e?`flex`:`none`,e&&y.focus()}),v.addEventListener(`submit`,e=>{e.preventDefault();let t=y.value.trim();t&&(async()=>{o();try{let e=await fetch(`/api/documents`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:t,category:`General`,folder:r.folderPath,content:$u(t)})});if(!e.ok){let t=await e.json().catch(()=>({}));a(u(`kanban.create_failed`)+(t.error||e.status));return}let i=await e.json();y.value=``,v.hidden=!0,v.style.display=`none`,l(i.id,ju),s([...n,i])}catch(e){a(u(`kanban.create_failed`)+String(e))}})()});let x=document.createElement(`div`);if(x.style.display=`flex`,x.style.flexDirection=`column`,x.style.gap=`6px`,x.style.flex=`1 1 auto`,x.style.margin=`0`,!t.length){let e=document.createElement(`p`);e.className=`text-xs text-gray-400 dark:text-gray-500 italic`,e.textContent=u(`kanban.empty_column`),e.style.margin=`0`,x.appendChild(e)}for(let e of t){let t=document.createElement(`article`);t.dataset.testid=`kanban-card`,t.dataset.docId=e.id,t.draggable=!0,t.className=`ld-kanban-card rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 px-3 py-2 shadow-sm cursor-pointer hover:border-blue-300 dark:hover:border-blue-700`;let n=document.createElement(`p`);n.className=`text-sm font-semibold text-gray-800 dark:text-gray-100`,n.textContent=e.title,n.style.margin=`0`,t.appendChild(n);let r=c.get(e.id);if(r){let e=document.createElement(`p`);e.className=`text-xs text-gray-500 dark:text-gray-400 leading-snug`,e.textContent=rd(r),e.style.margin=`0`,t.appendChild(e)}if(e.formattedDate){let n=document.createElement(`p`);n.className=`text-xs text-gray-400 dark:text-gray-500`,n.textContent=e.formattedDate,n.style.margin=`0`,t.appendChild(n)}t.addEventListener(`dragstart`,n=>{n.dataTransfer?.setData(`text/plain`,e.id),n.dataTransfer&&(n.dataTransfer.effectAllowed=`move`),Wu(t,!0)}),t.addEventListener(`dragend`,()=>{Wu(t,!1)}),t.addEventListener(`click`,()=>{i.onDocLink(e.id,null)}),x.appendChild(t)}f.appendChild(x),e.appendChild(f)}}var od=`ld:diagram-image-version:`,sd=/^(?:\.\/|\/)images\/([A-Za-z0-9_-]+\.png)$/,cd=new Map;function ld(e){let t=String(Date.now());cd.set(e,t);try{sessionStorage.setItem(od+e,t)}catch{}}function ud(e){try{let t=sessionStorage.getItem(od+e);if(t)return t}catch{}return cd.get(e)??null}function dd(e){e.querySelectorAll(`a[href]`).forEach(e=>{let t=new URL(e.getAttribute(`href`)||``,window.location.origin);if(t.origin!==window.location.origin||t.pathname!==`/diagram`)return;let n=e.querySelector(`img`),r=n?.getAttribute(`src`)?.match(sd);if(!n||!r)return;let i=r[1];t.searchParams.has(`img`)||(t.searchParams.set(`img`,i),e.setAttribute(`href`,`${t.pathname}${t.search}${t.hash}`));let a=ud(i);a&&n.setAttribute(`src`,`/images/${i}?v=${a}`)})}var fd=`<svg viewBox="0 0 16 16" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="8" height="9" rx="1.5"/><path d="M3 11V3a1 1 0 0 1 1-1h7"/></svg>`,pd=`<svg viewBox="0 0 16 16" width="18" height="18" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M3 8.5 6.5 12 13 4.5"/></svg>`;function md(e){let t=[];for(let n of e.split(`/`))n===``||n===`.`||(n===`..`?t.pop():t.push(n));return t.join(`/`)}function hd(e,t){let n=e.indexOf(`#`),r=n===-1?e:e.slice(0,n),i=n===-1?null:e.slice(n+1)||null;if(!r.toLowerCase().endsWith(`.md`)||/^[a-z][a-z0-9+.-]*:/i.test(r))return null;let a;if(r.startsWith(`/`))a=r.slice(1);else{let e=t?decodeURIComponent(t):``,n=e.includes(`/`)?e.slice(0,e.lastIndexOf(`/`)):``;a=n?`${n}/${r}`:r}return a=md(a).replace(/\.md$/i,``),a?{id:encodeURIComponent(a),anchor:i}:null}function gd(e,t,n){if(e.innerHTML=t,Ju(e,{docId:n.docId||``,content:n.content,docs:n.docs,docsFolder:n.docsFolder,folderPaths:n.folderPaths,t:n.t,onDocLink:n.onDocLink,onDocsChange:n.onKanbanDocsChange,onFolderPathsChange:n.onKanbanFolderPathsChange}))return!0;vd(e,n.content),yd(e),Md(e,n.content),bd(e,n.content),dd(e),Nd(e),kd(e);let r=Jc(n.content),i=0;return e.querySelectorAll(`h1, h2, h3, h4, h5, h6`).forEach(e=>{e.id||=(e.textContent||``).toLowerCase().replace(/[^\w\s-]/g,``).trim().replace(/\s+/g,`-`)}),e.querySelectorAll(`pre code`).forEach(e=>{let t=e.closest(`.ld-compare-render`)?null:r[i++],n=e.closest(`pre`);if(!e.classList.contains(`language-mermaid`)){n&&t&&_d(n,t);return}let a=e.textContent||``,o=document.createElement(`div`);o.className=`mermaid my-4`,o.textContent=a,t&&_d(o,t),n?.replaceWith(o)}),window.mermaid&&e.querySelector(`.mermaid`)&&window.mermaid.run({nodes:e.querySelectorAll(`.mermaid`)}),e.querySelectorAll(`pre code`).forEach(e=>{window.hljs?.highlightElement(e)}),jd(e,n.t),Pd(e,n.codeBlockMaxHeight,n.t),e.querySelectorAll(`a[href]`).forEach(e=>{let t=e.getAttribute(`href`),r=t?.match(/[?&]doc=([^&#]+)/);if(!r)return;let i=t?.indexOf(`#`),a=i===-1?null:t?.slice(i+1);e.addEventListener(`click`,e=>{e.preventDefault(),n.onDocLink(decodeURIComponent(r[1]),a)})}),e.querySelectorAll(`a[href]`).forEach(e=>{let t=e.getAttribute(`href`);if(!t||/[?&]doc=/.test(t))return;let r=hd(t,n.docId);r&&e.addEventListener(`click`,e=>{e.preventDefault(),n.onDocLink(r.id,r.anchor)})}),e.querySelectorAll(`a[href^="#"]`).forEach(e=>{let t=e.getAttribute(`href`);!t||t.length<2||e.addEventListener(`click`,e=>{e.preventDefault(),n.onAnchor(t.slice(1))})}),e.querySelectorAll(`table`).forEach(e=>{let t=document.createElement(`div`);t.className=`overflow-x-auto`,e.parentNode?.insertBefore(t,e),t.appendChild(e)}),!1}function _d(e,t){t.width&&(e.classList.add(Yc(t.kind,t.width)),e.dataset.codeBlockWidth=t.width),t.align&&(e.classList.add(`ld-${t.kind}-align-${t.align}`),e.dataset.codeBlockAlign=t.align)}function vd(e,t){let n=fc(typeof t==`string`?t:``);Array.from(e.querySelectorAll(`table`)).filter(e=>!e.closest(`.ld-compare-render`)).forEach((e,t)=>{let r=n[t];r&&(r.style&&(e.classList.add(`table-style-${r.style}`),e.dataset.tableStyle=r.style),r.border&&(e.classList.add(`table-border-${r.border}`),e.dataset.tableBorder=r.border),r.color&&(e.classList.add(`table-color-${r.color}`),e.dataset.tableColor=r.color))})}function yd(e){e.querySelectorAll(`table th, table td`).forEach(e=>{(e.textContent||``).trim()===``&&(e.textContent=`\xA0`)})}function bd(e,t){let n=Pc(typeof t==`string`?t:``);Array.from(e.querySelectorAll(`img`)).filter(e=>!e.closest(`.ld-compare-render`)).forEach((e,t)=>{let r=n[t];r&&(r.width&&(e.classList.add(Fc(r.width)),e.dataset.imageWidth=r.width),r.align&&(e.classList.add(`ld-image-align-${r.align}`),e.dataset.imageAlign=r.align))})}var xd=/^\s*layout-columns\b/i,Sd=/^\s*col\s*$/i,Cd=/^\s*\/layout-columns\s*$/i,wd=new Set([`top`,`center`,`bottom`,`stretch`]),Td=new Set([`left`,`center`,`right`,`justify`]),Ed=new Set([`sm`,`md`,`lg`]);function Dd(e){let t=e.trim().replace(/^layout-columns\s*:?\s*/i,``),n={ratio:null,valign:null,textAlign:null,gap:null};for(let e of t.split(`|`)){let t=e.trim();if(!t)continue;let r=t.match(/^([\w-]+)\s*:\s*(.+)$/);if(r){let e=r[1].toLowerCase(),t=r[2].trim().toLowerCase();e===`vertical-align`&&wd.has(t)?n.valign=t:e===`text-align`&&Td.has(t)?n.textAlign=t:e===`gap`&&Ed.has(t)?n.gap=t:e===`ratio`&&(n.ratio=t.replace(/\s+/g,``))}else/^\d+(\s*\/\s*\d+)*$/.test(t)&&(n.ratio=t.replace(/\s+/g,``))}return n}function Od(e,t){let n=`repeat(${t}, minmax(0, 1fr))`;if(!e)return n;if(e.includes(`/`)){let r=e.split(`/`).map(e=>parseInt(e,10));return r.length===t&&r.every(e=>Number.isFinite(e)&&e>0)?r.map(e=>`${e}fr`).join(` `):n}let r=parseInt(e,10);return Number.isFinite(r)&&r>0?`repeat(${r}, minmax(0, 1fr))`:n}function kd(e){let t=[];e.childNodes.forEach(e=>{e.nodeType===Node.COMMENT_NODE&&xd.test(e.data)&&t.push(e)});for(let n of t){let t=Dd(n.data),r=[],i=null;for(let e=n.nextSibling;e;e=e.nextSibling){if(e.nodeType===Node.COMMENT_NODE&&Cd.test(e.data)){i=e;break}r.push(e)}if(!i)continue;let a=[],o=null;for(let e of r){if(e.nodeType===Node.COMMENT_NODE&&Sd.test(e.data)){o=[],a.push(o);continue}if(!o){if(e.nodeType===Node.TEXT_NODE&&!(e.textContent||``).trim())continue;o=[],a.push(o)}o.push(e)}if(a.length===0)continue;let s=document.createElement(`div`);s.className=`ld-columns`,t.valign&&s.classList.add(`ld-valign-${t.valign}`),t.textAlign&&s.classList.add(`ld-text-${t.textAlign}`),t.gap&&s.classList.add(`ld-gap-${t.gap}`),s.style.gridTemplateColumns=Od(t.ratio,a.length);for(let e of a){let t=document.createElement(`div`);t.className=`ld-column`;for(let n of e)t.appendChild(n);s.appendChild(t)}e.insertBefore(s,n),n.remove(),i.remove();for(let t of r)t.parentNode===e&&t.remove()}}function Ad(e){let t=document.createElement(`div`);return t.innerHTML=e,kd(t),t.innerHTML}function jd(e,t){let n=t(`doc.code_copy`)||`Copy`,r=t(`doc.code_copied`)||`Copied!`;e.querySelectorAll(`pre`).forEach(e=>{let t=e.querySelector(`code`);if(!t||e.querySelector(`.ld-code-copy`))return;let i=document.createElement(`button`);i.type=`button`,i.className=`ld-code-copy`,i.title=n,i.setAttribute(`aria-label`,n),i.innerHTML=fd,i.addEventListener(`click`,async e=>{e.preventDefault(),e.stopPropagation();try{await navigator.clipboard.writeText(t.innerText)}catch{let e=document.createElement(`textarea`);e.value=t.innerText,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e),e.select();try{document.execCommand(`copy`)}catch{}document.body.removeChild(e)}i.classList.add(`ld-copied`),i.title=r,i.innerHTML=pd,setTimeout(()=>{i.classList.remove(`ld-copied`),i.title=n,i.innerHTML=fd},1500)}),e.appendChild(i)})}function Md(e,t){let n=Sc(typeof t==`string`?t:``);Array.from(e.querySelectorAll(`blockquote`)).filter(e=>!e.closest(`.ld-compare-render`)).forEach((e,t)=>{let r=n[t];if(!r||!r.type&&!r.title&&!r.icon)return;e.classList.add(`ld-callout`),r.type&&e.classList.add(`ld-callout-${r.type}`);let i=r.icon,a=typeof r.title==`string`&&r.title.trim()!==``;if(i&&!a){let t=e.querySelector(`p`),n=document.createElement(`span`);n.className=`ld-callout-icon ld-callout-icon-inline`,n.innerHTML=wc(r.type),t?t.insertBefore(n,t.firstChild):e.insertBefore(n,e.firstChild);return}if(!i&&!a)return;let o=document.createElement(`div`);if(o.className=`ld-callout-header`,i){let e=document.createElement(`span`);e.className=`ld-callout-icon`,e.innerHTML=wc(r.type),o.appendChild(e)}if(a){let e=document.createElement(`span`);e.className=`ld-callout-title`,e.textContent=r.title,o.appendChild(e)}e.insertBefore(o,e.firstChild)})}function Nd(e){e.querySelectorAll(`.ld-compare-render[data-compare-source]`).forEach(e=>{let t=e.dataset.compareSource??``;if(!t)return;let n=decodeURIComponent(t),r=fc(n);e.querySelectorAll(`table`).forEach((e,t)=>{let n=r[t];if(!n)return;let i=e;n.style&&(i.classList.add(`table-style-${n.style}`),i.dataset.tableStyle=n.style),n.border&&(i.classList.add(`table-border-${n.border}`),i.dataset.tableBorder=n.border),n.color&&(i.classList.add(`table-color-${n.color}`),i.dataset.tableColor=n.color)});let i=Sc(n);e.querySelectorAll(`blockquote`).forEach((e,t)=>{let n=i[t];if(!n||!n.type&&!n.title&&!n.icon)return;e.classList.add(`ld-callout`),n.type&&e.classList.add(`ld-callout-${n.type}`);let r=n.icon,a=typeof n.title==`string`&&n.title.trim()!==``;if(r&&!a){let t=e.querySelector(`p`),r=document.createElement(`span`);r.className=`ld-callout-icon ld-callout-icon-inline`,r.innerHTML=wc(n.type),t?t.insertBefore(r,t.firstChild):e.insertBefore(r,e.firstChild);return}if(!r&&!a)return;let o=document.createElement(`div`);if(o.className=`ld-callout-header`,r){let e=document.createElement(`span`);e.className=`ld-callout-icon`,e.innerHTML=wc(n.type),o.appendChild(e)}if(a){let e=document.createElement(`span`);e.className=`ld-callout-title`,e.textContent=n.title,o.appendChild(e)}e.insertBefore(o,e.firstChild)})})}function Pd(e,t,n){if(typeof t!=`number`||t<=0)return;let r=n(`doc.code_show_more`)||`▾ Show more`,i=n(`doc.code_show_less`)||`▴ Show less`;e.querySelectorAll(`pre`).forEach(e=>{if(!e.querySelector(`code`)||e.scrollHeight<=t+8)return;e.classList.add(`ld-collapsible`);let n=document.createElement(`button`);n.type=`button`,n.className=`ld-code-toggle`,n.textContent=r,n.addEventListener(`click`,t=>{t.preventDefault(),n.textContent=e.classList.toggle(`ld-expanded`)?i:r}),e.appendChild(n)})}var Fd=[`heading`,`collapsible`,`link`,`doc-link`,`anchor-link`,`anchor-doc-link`,`ordered-list`,`unordered-list`,`code-block`,`blockquote`,`image`,`table`,`tree`,`mermaid`,`diagram`,`colored-section`,`colored-text`,`emojis`,`attachment`,`compare`,`columns`,`kanban`],Id={"heading-1":`heading`,"heading-2":`heading`,"heading-3":`heading`,"heading-4":`heading`};function Ld(e){return Id[e]||e}var Rd={"heading-1":`fa-solid fa-heading`,"heading-2":`fa-solid fa-heading`,"heading-3":`fa-solid fa-heading`,"heading-4":`fa-solid fa-heading`,separator:`fa-solid fa-minus`,collapsible:`fa-solid fa-caret-right`,"unordered-list":`fa-solid fa-list-ul`,"ordered-list":`fa-solid fa-list-ol`,tree:`fa-solid fa-folder-tree`,"colored-text":`fa-solid fa-highlighter`,"colored-section":`fa-solid fa-fill-drip`,blockquote:`fa-solid fa-quote-right`,"code-block":`fa-solid fa-code`,table:`fa-solid fa-table-cells`,mermaid:`fa-solid fa-chart-pie`,link:`fa-solid fa-link`,"doc-link":`fa-solid fa-file-lines`,"anchor-link":`fa-solid fa-anchor`,"anchor-doc-link":`fa-solid fa-anchor`,image:`fa-solid fa-image`,diagram:`fa-solid fa-diagram-project`,emojis:`fa-solid fa-face-smile`,attachment:`fa-solid fa-paperclip`,"local-search":`fa-solid fa-magnifying-glass`,compare:`fa-solid fa-table-columns`,columns:`fa-solid fa-table-columns`,kanban:`fa-solid fa-table-columns`},zd=[{key:`structure`,labelKey:`snippet.picker_cat_structure`,types:[`heading-1`,`heading-2`,`heading-3`,`heading-4`,`separator`,`collapsible`,`columns`,`unordered-list`,`ordered-list`,`table`,`kanban`]},{key:`lists-code-data`,labelKey:`snippet.picker_cat_lists_code_data`,types:[`tree`,`code-block`,`mermaid`,`diagram`,`compare`]},{key:`rich-text`,labelKey:`snippet.picker_cat_rich_text`,types:[`colored-text`,`colored-section`,`blockquote`,`emojis`,`local-search`]},{key:`links-media`,labelKey:`snippet.picker_cat_links_media`,types:[`link`,`doc-link`,`anchor-link`,`anchor-doc-link`,`image`,`attachment`]}],Bd={blueLight:{card:`border-sky-200 dark:border-sky-800 bg-sky-50 dark:bg-sky-950/40 hover:bg-sky-100 dark:hover:bg-sky-900/50 hover:border-sky-300 dark:hover:border-sky-700`,icon:`text-sky-700 dark:text-sky-300`},blue:{card:`border-blue-200 dark:border-blue-800 bg-blue-50 dark:bg-blue-950/40 hover:bg-blue-100 dark:hover:bg-blue-900/50 hover:border-blue-300 dark:hover:border-blue-700`,icon:`text-blue-700 dark:text-blue-300`},blueDark:{card:`border-indigo-200 dark:border-indigo-800 bg-indigo-50 dark:bg-indigo-950/40 hover:bg-indigo-100 dark:hover:bg-indigo-900/50 hover:border-indigo-300 dark:hover:border-indigo-700`,icon:`text-indigo-700 dark:text-indigo-300`},blueDarker:{card:`border-blue-300 dark:border-blue-700 bg-blue-100 dark:bg-blue-900/50 hover:bg-blue-200 dark:hover:bg-blue-800/60 hover:border-blue-400 dark:hover:border-blue-600`,icon:`text-blue-900 dark:text-blue-100`},gray:{card:`border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 hover:bg-gray-100 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600`,icon:`text-gray-700 dark:text-gray-200`},violet:{card:`border-violet-200 dark:border-violet-800 bg-violet-50 dark:bg-violet-950/40 hover:bg-violet-100 dark:hover:bg-violet-900/50 hover:border-violet-300 dark:hover:border-violet-700`,icon:`text-violet-700 dark:text-violet-300`},green:{card:`border-emerald-200 dark:border-emerald-800 bg-emerald-50 dark:bg-emerald-950/40 hover:bg-emerald-100 dark:hover:bg-emerald-900/50 hover:border-emerald-300 dark:hover:border-emerald-700`,icon:`text-emerald-700 dark:text-emerald-300`},greenDark:{card:`border-green-300 dark:border-green-700 bg-green-100 dark:bg-green-900/50 hover:bg-green-200 dark:hover:bg-green-800/60 hover:border-green-400 dark:hover:border-green-600`,icon:`text-green-900 dark:text-green-100`},teal:{card:`border-teal-200 dark:border-teal-800 bg-teal-50 dark:bg-teal-950/40 hover:bg-teal-100 dark:hover:bg-teal-900/50 hover:border-teal-300 dark:hover:border-teal-700`,icon:`text-teal-700 dark:text-teal-300`},dark:{card:`border-slate-300 dark:border-slate-600 bg-slate-100 dark:bg-slate-800 hover:bg-slate-200 dark:hover:bg-slate-700 hover:border-slate-400 dark:hover:border-slate-500`,icon:`text-slate-900 dark:text-slate-100`},orange:{card:`border-orange-200 dark:border-orange-800 bg-orange-50 dark:bg-orange-950/40 hover:bg-orange-100 dark:hover:bg-orange-900/50 hover:border-orange-300 dark:hover:border-orange-700`,icon:`text-orange-700 dark:text-orange-300`},orangeLight:{card:`border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-950/40 hover:bg-amber-100 dark:hover:bg-amber-900/50 hover:border-amber-300 dark:hover:border-amber-700`,icon:`text-amber-700 dark:text-amber-300`},orangeDark:{card:`border-orange-300 dark:border-orange-700 bg-orange-100 dark:bg-orange-900/50 hover:bg-orange-200 dark:hover:bg-orange-800/60 hover:border-orange-400 dark:hover:border-orange-600`,icon:`text-orange-900 dark:text-orange-100`},red:{card:`border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950/40 hover:bg-red-100 dark:hover:bg-red-900/50 hover:border-red-300 dark:hover:border-red-700`,icon:`text-red-700 dark:text-red-300`},pink:{card:`border-pink-200 dark:border-pink-800 bg-pink-50 dark:bg-pink-950/40 hover:bg-pink-100 dark:hover:bg-pink-900/50 hover:border-pink-300 dark:hover:border-pink-700`,icon:`text-pink-700 dark:text-pink-300`},amber:{card:`border-amber-200 dark:border-amber-800 bg-amber-50 dark:bg-amber-950/40 hover:bg-amber-100 dark:hover:bg-amber-900/50 hover:border-amber-300 dark:hover:border-amber-700`,icon:`text-amber-700 dark:text-amber-300`},yellow:{card:`border-yellow-300 dark:border-yellow-700 bg-yellow-100 dark:bg-yellow-900/50 hover:bg-yellow-200 dark:hover:bg-yellow-800/60 hover:border-yellow-400 dark:hover:border-yellow-600`,icon:`text-yellow-700 dark:text-yellow-200`},indigo:{card:`border-indigo-200 dark:border-indigo-800 bg-indigo-50 dark:bg-indigo-950/40 hover:bg-indigo-100 dark:hover:bg-indigo-900/50 hover:border-indigo-300 dark:hover:border-indigo-700`,icon:`text-indigo-700 dark:text-indigo-300`},cyan:{card:`border-cyan-200 dark:border-cyan-800 bg-cyan-50 dark:bg-cyan-950/40 hover:bg-cyan-100 dark:hover:bg-cyan-900/50 hover:border-cyan-300 dark:hover:border-cyan-700`,icon:`text-cyan-700 dark:text-cyan-300`}},Vd={"heading-1":`blueLight`,"heading-2":`blue`,"heading-3":`blueDark`,"heading-4":`blueDarker`,separator:`gray`,collapsible:`dark`,"unordered-list":`green`,"ordered-list":`greenDark`,tree:`cyan`,"code-block":`dark`,mermaid:`teal`,table:`orange`,diagram:`red`,"colored-text":`pink`,"colored-section":`violet`,blockquote:`gray`,link:`orangeLight`,"doc-link":`orange`,"anchor-link":`orangeDark`,"anchor-doc-link":`orangeDark`,image:`amber`,attachment:`orange`,emojis:`yellow`,"local-search":`cyan`,compare:`teal`,columns:`teal`,kanban:`violet`},Hd={"heading-1":`snippet.heading_1`,"heading-2":`snippet.heading_2`,"heading-3":`snippet.heading_3`,"heading-4":`snippet.heading_4`,separator:`snippet.separator`,collapsible:`snippet.collapsible`,"unordered-list":`snippet.bullet_list`,"ordered-list":`snippet.numbered_list`,tree:`snippet.tree`,"colored-text":`snippet.colored_text`,"colored-section":`snippet.colored_section`,blockquote:`snippet.blockquote`,"code-block":`snippet.code_block`,mermaid:`snippet.mermaid`,table:`snippet.table`,link:`snippet.link`,"doc-link":`snippet.link_doc`,"anchor-link":`snippet.link_anchor`,"anchor-doc-link":`snippet.link_doc_anchor`,image:`snippet.image`,diagram:`snippet.diagram`,emojis:`snippet.emojis`,attachment:`snippet.attachment`,"local-search":`snippet.local_search`,compare:`snippet.compare`,columns:`snippet.columns`,kanban:`snippet.kanban`},Ud={info:{bg:`#eff6ff`,border:`#3b82f6`,text:`#1e3a5f`},success:{bg:`#f0fdf4`,border:`#22c55e`,text:`#14532d`},warning:{bg:`#fffbeb`,border:`#f59e0b`,text:`#451a03`},danger:{bg:`#fef2f2`,border:`#ef4444`,text:`#450a0a`},note:{bg:`#f5f3ff`,border:`#8b5cf6`,text:`#2e1065`},neutral:{bg:`#f9fafb`,border:`#6b7280`,text:`#111827`}},Wd=[{label:`snippet.emoji_cat_smileys`,emojis:[{e:`😀`,t:`grin grinning smile sourire happy heureux`},{e:`😃`,t:`smiley joy joie sourire happy`},{e:`😄`,t:`smile sourire happy heureux joie`},{e:`😁`,t:`beaming grin sourire dents`},{e:`😆`,t:`laugh rire lol`},{e:`😅`,t:`sweat transpire rire nerveux`},{e:`🤣`,t:`rofl lol mdr rire`},{e:`😂`,t:`joy larmes tears rire lol`},{e:`🙂`,t:`slight smile sourire`},{e:`🙃`,t:`upside renverse inverse`},{e:`😉`,t:`wink clin oeil`},{e:`😊`,t:`blush rougir sourire`},{e:`😇`,t:`angel ange halo innocent`},{e:`🥰`,t:`love amour coeur heart smile`},{e:`😍`,t:`heart eyes amoureux love amour`},{e:`🤩`,t:`star stars etoile wow`},{e:`😘`,t:`kiss bisou`},{e:`😋`,t:`yum miam savoureux langue`},{e:`😛`,t:`tongue langue`},{e:`😜`,t:`wink tongue langue clin`},{e:`🤪`,t:`crazy fou zany`},{e:`😝`,t:`tongue langue squinting`},{e:`🤗`,t:`hug calin embrasser`},{e:`🤔`,t:`think reflexion reflechir pense`},{e:`🤨`,t:`raised brow sourcil suspicious`},{e:`😐`,t:`neutral neutre`},{e:`😑`,t:`expressionless impassible`},{e:`😒`,t:`unamused decu blase`},{e:`🙄`,t:`roll eyes yeux ciel`},{e:`😬`,t:`grimace`},{e:`😌`,t:`relieved soulage`},{e:`😔`,t:`pensive pensif triste sad`},{e:`😪`,t:`sleepy sommeil fatigue`},{e:`😴`,t:`sleep dormir zzz`},{e:`🤤`,t:`drool bave`},{e:`😷`,t:`mask masque malade`},{e:`🤒`,t:`sick malade fever fievre`},{e:`🤕`,t:`hurt blesse bandage`},{e:`🤢`,t:`nausea nausee`},{e:`🤮`,t:`vomit vomir malade`},{e:`🤧`,t:`sneeze eternue rhume`},{e:`🥵`,t:`hot chaud transpire`},{e:`🥶`,t:`cold froid gele`},{e:`🥴`,t:`woozy ivre`},{e:`😵`,t:`dizzy dead mort vertige`},{e:`🤯`,t:`explode tete mind blown`},{e:`🤠`,t:`cowboy chapeau`},{e:`🥳`,t:`party fete anniversaire birthday`},{e:`😎`,t:`cool sunglasses lunettes`},{e:`🤓`,t:`nerd geek`},{e:`🧐`,t:`monocle curious`},{e:`😕`,t:`confused confus`},{e:`😟`,t:`worried inquiet`},{e:`🙁`,t:`frown triste`},{e:`☹️`,t:`sad triste frown`},{e:`😮`,t:`surprised surpris open mouth`},{e:`😯`,t:`hushed`},{e:`😲`,t:`astonished etonne`},{e:`😳`,t:`flushed gene rougeur`},{e:`🥺`,t:`pleading supplier chien`},{e:`😦`,t:`frown open mouth`},{e:`😧`,t:`anguish angoisse`},{e:`😨`,t:`fear peur`},{e:`😰`,t:`anxious anxieux stress`},{e:`😥`,t:`sad disappointed decu`},{e:`😢`,t:`cry pleurer larme`},{e:`😭`,t:`cry pleurer loud bawling`},{e:`😱`,t:`scream cri peur horror`},{e:`😖`,t:`confounded`},{e:`😣`,t:`persevere effort`},{e:`😞`,t:`disappointed decu`},{e:`😓`,t:`sweat transpire fatigue`},{e:`😩`,t:`weary fatigue las`},{e:`😫`,t:`tired fatigue`},{e:`🥱`,t:`yawn baille`},{e:`😤`,t:`triumph huff vapeur nez`},{e:`😠`,t:`angry colere fache`},{e:`😡`,t:`rage colere rouge`},{e:`🤬`,t:`curse insulte jure`},{e:`😈`,t:`devil diable smiling`},{e:`👿`,t:`imp diable`},{e:`💀`,t:`skull mort death crane`},{e:`☠️`,t:`crossbones pirate mort death`},{e:`💩`,t:`poop caca merde`},{e:`🤡`,t:`clown`},{e:`👻`,t:`ghost fantome`},{e:`👽`,t:`alien extraterrestre`},{e:`🤖`,t:`robot ia ai`},{e:`🎃`,t:`pumpkin halloween citrouille`},{e:`😺`,t:`cat chat`},{e:`😸`,t:`cat chat grin`},{e:`😹`,t:`cat chat joy`},{e:`😻`,t:`cat chat love amour heart`},{e:`😼`,t:`cat chat wry`},{e:`😽`,t:`cat chat kiss`},{e:`🙀`,t:`cat chat fear peur`},{e:`😿`,t:`cat chat cry pleurer`},{e:`😾`,t:`cat chat angry colere`}]},{label:`snippet.emoji_cat_gestures`,emojis:[{e:`👍`,t:`thumbs up pouce ok bien like`},{e:`👎`,t:`thumbs down pouce bas dislike`},{e:`👌`,t:`ok parfait`},{e:`✌️`,t:`victory victoire peace paix`},{e:`🤞`,t:`fingers crossed doigts croises`},{e:`🤟`,t:`love you`},{e:`🤘`,t:`rock horns metal cornes`},{e:`🤙`,t:`call appelle hang loose`},{e:`👈`,t:`left gauche pointing`},{e:`👉`,t:`right droite pointing`},{e:`👆`,t:`up haut pointing`},{e:`👇`,t:`down bas pointing`},{e:`☝️`,t:`one index up haut`},{e:`✋`,t:`stop hand main raised`},{e:`🤚`,t:`back hand main`},{e:`🖐️`,t:`hand main splayed`},{e:`🖖`,t:`vulcan spock star trek`},{e:`👋`,t:`wave bonjour hello salut goodbye`},{e:`🤝`,t:`handshake accord deal poignee`},{e:`🙏`,t:`pray priere merci thanks please`},{e:`💪`,t:`muscle fort biceps strong`},{e:`🦾`,t:`mechanical arm bras prothese`},{e:`👏`,t:`clap applaud bravo applaudir`},{e:`🙌`,t:`raise hands hourra celebrate`},{e:`👐`,t:`open hands`},{e:`🤲`,t:`palms up paumes`},{e:`🤜`,t:`fist poing right`},{e:`🤛`,t:`fist poing left`},{e:`✊`,t:`fist poing leve`},{e:`👊`,t:`fist punch poing frapper`},{e:`🤏`,t:`pinch petit small`},{e:`🤌`,t:`italian pinched`},{e:`🖕`,t:`middle finger doigt honneur`},{e:`✍️`,t:`write ecrire hand main`},{e:`🦶`,t:`foot pied`},{e:`🦵`,t:`leg jambe`},{e:`👂`,t:`ear oreille`},{e:`🦻`,t:`ear hearing appareil auditif`},{e:`👃`,t:`nose nez`},{e:`🧠`,t:`brain cerveau mind`},{e:`👀`,t:`eyes yeux regarder`},{e:`👁️`,t:`eye oeil`},{e:`👄`,t:`mouth bouche`},{e:`👅`,t:`tongue langue`},{e:`🦷`,t:`tooth dent`},{e:`🫀`,t:`heart anatomic coeur organe`},{e:`🫁`,t:`lungs poumons`}]},{label:`snippet.emoji_cat_hearts`,emojis:[{e:`❤️`,t:`heart coeur red rouge love amour`},{e:`🧡`,t:`orange heart coeur`},{e:`💛`,t:`yellow heart coeur jaune`},{e:`💚`,t:`green heart coeur vert`},{e:`💙`,t:`blue heart coeur bleu`},{e:`💜`,t:`purple heart coeur violet`},{e:`🖤`,t:`black heart coeur noir`},{e:`🤍`,t:`white heart coeur blanc`},{e:`🤎`,t:`brown heart coeur marron`},{e:`💔`,t:`broken heart coeur brise rupture`},{e:`❤️🔥`,t:`heart fire feu passion`},{e:`❤️🩹`,t:`heart mending coeur reparation`},{e:`💖`,t:`sparkling heart coeur brillant`},{e:`💕`,t:`two hearts coeurs`},{e:`💘`,t:`arrow heart cupid cupidon`},{e:`💝`,t:`ribbon heart cadeau`},{e:`💞`,t:`revolving hearts coeurs`},{e:`💟`,t:`heart decoration`},{e:`💌`,t:`love letter lettre enveloppe`},{e:`💋`,t:`kiss mark bisou levres`},{e:`❣️`,t:`heart exclamation`},{e:`💯`,t:`hundred 100 cent perfect parfait`},{e:`✨`,t:`sparkles etincelles magic magique brillant`},{e:`⭐`,t:`star etoile`},{e:`🌟`,t:`glowing star etoile`},{e:`💫`,t:`dizzy star vertige etoile`},{e:`🔥`,t:`fire feu hot flamme`},{e:`💥`,t:`boom explosion collision`},{e:`⚡`,t:`lightning eclair thunder tonnerre fast`},{e:`💢`,t:`anger colere symbol`},{e:`💨`,t:`dash vent wind fast vitesse`},{e:`💦`,t:`drops gouttes sweat eau`},{e:`💤`,t:`zzz sleep dormir sommeil`},{e:`🕳️`,t:`hole trou`},{e:`💭`,t:`thought pensee bulle`},{e:`🗯️`,t:`right anger bubble`},{e:`💬`,t:`speech bulle dialogue chat`}]},{label:`snippet.emoji_cat_objects`,emojis:[{e:`💻`,t:`laptop ordinateur computer portable`},{e:`🖥️`,t:`desktop computer ordinateur bureau`},{e:`⌨️`,t:`keyboard clavier`},{e:`🖱️`,t:`mouse souris`},{e:`💾`,t:`floppy disquette save sauvegarder`},{e:`💿`,t:`disk cd optical`},{e:`📀`,t:`dvd`},{e:`📱`,t:`phone mobile telephone smartphone`},{e:`📲`,t:`phone call mobile incoming`},{e:`☎️`,t:`telephone vintage`},{e:`📞`,t:`receiver combine phone`},{e:`📟`,t:`pager`},{e:`📠`,t:`fax`},{e:`🔋`,t:`battery batterie pile`},{e:`🔌`,t:`plug prise electrique`},{e:`💡`,t:`bulb idee idea light lumiere ampoule`},{e:`🔦`,t:`flashlight torche lampe`},{e:`🕯️`,t:`candle bougie`},{e:`📷`,t:`camera appareil photo`},{e:`📸`,t:`camera flash photo`},{e:`📹`,t:`video camera`},{e:`🎥`,t:`movie film cinema camera`},{e:`🎞️`,t:`film reel pellicule`},{e:`📽️`,t:`projector projecteur`},{e:`⏰`,t:`alarm reveil clock horloge`},{e:`⏱️`,t:`stopwatch chrono chronometre`},{e:`⏲️`,t:`timer minuteur`},{e:`🕰️`,t:`mantel clock horloge`},{e:`⌛`,t:`hourglass sablier done`},{e:`⏳`,t:`hourglass sablier flow running`},{e:`📡`,t:`satellite antenne`},{e:`🔭`,t:`telescope astronomie`},{e:`🔬`,t:`microscope science`},{e:`💊`,t:`pill pilule medicine medicament`},{e:`💉`,t:`syringe seringue injection vaccin`},{e:`🩹`,t:`bandage pansement`},{e:`🩺`,t:`stethoscope medecin`},{e:`🧪`,t:`tube eprouvette chimie chemistry`},{e:`🧬`,t:`dna adn gene`},{e:`🔍`,t:`search magnify loupe rechercher find left`},{e:`🔎`,t:`search magnify loupe rechercher find right`},{e:`🗝️`,t:`key cle old`},{e:`🔑`,t:`key cle`},{e:`🔐`,t:`lock key cle cadenas`},{e:`🔒`,t:`lock cadenas verrouille secure`},{e:`🔓`,t:`unlock cadenas ouvert`},{e:`🛡️`,t:`shield bouclier protection`},{e:`🔨`,t:`hammer marteau`},{e:`⚒️`,t:`tools outils hammer pick`},{e:`🛠️`,t:`tools outils hammer wrench`},{e:`🔧`,t:`wrench cle anglaise`},{e:`🔩`,t:`nut bolt ecrou`},{e:`⚙️`,t:`gear settings parametres engrenage config`},{e:`🪛`,t:`screwdriver tournevis`},{e:`🪝`,t:`hook crochet`},{e:`🧰`,t:`toolbox caisse outils`},{e:`🧲`,t:`magnet aimant`},{e:`🧱`,t:`brick brique`},{e:`⛏️`,t:`pick pioche`},{e:`🪓`,t:`axe hache`}]},{label:`snippet.emoji_cat_office`,emojis:[{e:`📝`,t:`memo note ecrire write`},{e:`✏️`,t:`pencil crayon`},{e:`🖊️`,t:`pen stylo bille`},{e:`🖋️`,t:`fountain pen stylo plume`},{e:`🖌️`,t:`paintbrush pinceau`},{e:`🖍️`,t:`crayon feutre`},{e:`📐`,t:`triangle ruler equerre`},{e:`📏`,t:`ruler regle`},{e:`📎`,t:`paperclip trombone attach`},{e:`🖇️`,t:`linked paperclips trombones`},{e:`📌`,t:`pushpin punaise`},{e:`📍`,t:`pin location lieu`},{e:`✂️`,t:`scissors ciseaux cut couper`},{e:`🗂️`,t:`card index dividers onglets`},{e:`📁`,t:`folder dossier`},{e:`📂`,t:`open folder dossier ouvert`},{e:`🗃️`,t:`card box boite fiches`},{e:`🗄️`,t:`file cabinet archive armoire`},{e:`📋`,t:`clipboard presse papier`},{e:`📃`,t:`page curl document`},{e:`📄`,t:`document page`},{e:`📜`,t:`scroll parchemin`},{e:`📰`,t:`newspaper journal presse`},{e:`🗞️`,t:`rolled newspaper journal`},{e:`📓`,t:`notebook carnet cahier`},{e:`📔`,t:`notebook decorated carnet`},{e:`📒`,t:`ledger registre`},{e:`📕`,t:`book rouge red ferme`},{e:`📗`,t:`book vert green`},{e:`📘`,t:`book bleu blue`},{e:`📙`,t:`book orange`},{e:`📚`,t:`books livres bibliotheque`},{e:`📖`,t:`open book livre ouvert`},{e:`🔖`,t:`bookmark marque page signet`},{e:`🏷️`,t:`label tag etiquette`},{e:`💼`,t:`briefcase mallette attache case business`},{e:`🗒️`,t:`spiral note notepad`},{e:`🗓️`,t:`spiral calendar calendrier`},{e:`📅`,t:`calendar calendrier date`},{e:`📆`,t:`tear off calendar calendrier`},{e:`🗑️`,t:`trash poubelle delete supprimer can`},{e:`🪣`,t:`bucket seau`},{e:`📦`,t:`package colis box boite`},{e:`📫`,t:`mailbox boite lettres closed flag up`},{e:`📪`,t:`mailbox boite lettres closed flag down`},{e:`📬`,t:`mailbox open boite lettres flag up`},{e:`📭`,t:`mailbox open boite lettres flag down`},{e:`📮`,t:`postbox boite aux lettres`},{e:`✉️`,t:`envelope enveloppe`},{e:`📧`,t:`email courriel mail at`},{e:`📨`,t:`email incoming recu`},{e:`📩`,t:`email arrow envoi`},{e:`📤`,t:`outbox envoyer sent`},{e:`📥`,t:`inbox recevoir`},{e:`📊`,t:`bar chart graphique barres histogramme`},{e:`📈`,t:`chart up tendance hausse croissance`},{e:`📉`,t:`chart down baisse decroissance`}]},{label:`snippet.emoji_cat_symbols`,emojis:[{e:`🆕`,t:`new nouveau nouvelle brand fresh neuf`},{e:`♻️`,t:`existing existant existante recycle recycler reuse reutiliser`},{e:`✅`,t:`check ok valide coche green`},{e:`☑️`,t:`check ballot case`},{e:`✔️`,t:`check coche mark`},{e:`❌`,t:`cross error erreur red rouge croix ko`},{e:`✖️`,t:`multiply multiplier cross`},{e:`❎`,t:`cross square button`},{e:`⚠️`,t:`warning attention danger`},{e:`ℹ️`,t:`info information`},{e:`❓`,t:`question red interrogation`},{e:`❔`,t:`question white interrogation`},{e:`❗`,t:`exclamation important red`},{e:`❕`,t:`exclamation white`},{e:`‼️`,t:`double exclamation`},{e:`⁉️`,t:`exclamation question`},{e:`🚀`,t:`rocket fusee launch lancer`},{e:`🎉`,t:`party popper tada fete celebration`},{e:`🎊`,t:`confetti ball fete`},{e:`🏆`,t:`trophy trophee winner`},{e:`🥇`,t:`gold medal medaille or first`},{e:`🥈`,t:`silver medal medaille argent second`},{e:`🥉`,t:`bronze medal medaille third`},{e:`🏅`,t:`medal medaille sports`},{e:`🎖️`,t:`military medal medaille`},{e:`🎯`,t:`target cible dart`},{e:`🎁`,t:`gift cadeau present`},{e:`🔔`,t:`bell cloche notify notification`},{e:`🔕`,t:`bell off muted silence`},{e:`📢`,t:`loudspeaker annonce public`},{e:`📣`,t:`megaphone porte voix`},{e:`📯`,t:`postal horn cor`},{e:`➕`,t:`plus add heavy`},{e:`➖`,t:`minus moins heavy`},{e:`➗`,t:`divide division`},{e:`♾️`,t:`infinity infini`},{e:`💲`,t:`dollar sign dollars money argent`},{e:`💱`,t:`currency exchange change devise`},{e:`©️`,t:`copyright`},{e:`®️`,t:`registered`},{e:`™️`,t:`trademark marque`},{e:`↔️`,t:`left right arrow fleche horizontal`},{e:`↕️`,t:`up down arrow fleche vertical`},{e:`↖️`,t:`up left arrow fleche`},{e:`↗️`,t:`up right arrow fleche`},{e:`↘️`,t:`down right arrow fleche`},{e:`↙️`,t:`down left arrow fleche`},{e:`⬅️`,t:`left arrow fleche gauche`},{e:`➡️`,t:`right arrow fleche droite`},{e:`⬆️`,t:`up arrow fleche haut`},{e:`⬇️`,t:`down arrow fleche bas`},{e:`🔃`,t:`clockwise vertical arrows`},{e:`🔄`,t:`counterclockwise arrows reload refresh recharger`},{e:`🔁`,t:`repeat loop boucle`},{e:`🔂`,t:`repeat single once`},{e:`🔀`,t:`shuffle melange random`},{e:`🔼`,t:`up button triangle`},{e:`🔽`,t:`down button triangle`},{e:`⏫`,t:`fast up double triangle`},{e:`⏬`,t:`fast down double triangle`},{e:`⏪`,t:`rewind back`},{e:`⏩`,t:`fast forward avance`},{e:`⏭️`,t:`next track suivant`},{e:`⏮️`,t:`previous track precedent`},{e:`⏯️`,t:`play pause`},{e:`▶️`,t:`play lecture`},{e:`⏸️`,t:`pause`},{e:`⏹️`,t:`stop`},{e:`⏺️`,t:`record enregistrer`},{e:`⏏️`,t:`eject ejecter`},{e:`🎵`,t:`music note musique`},{e:`🎶`,t:`music notes musique`},{e:`🔈`,t:`speaker low bas`},{e:`🔉`,t:`speaker medium moyen`},{e:`🔊`,t:`speaker loud fort haut son sound`},{e:`🔇`,t:`muted mute silence`},{e:`📶`,t:`signal antenne bars`},{e:`🛜`,t:`wireless wifi`},{e:`🔗`,t:`link lien chain`},{e:`⛓️`,t:`chains chaine`},{e:`🏁`,t:`finish flag checkered fin arrivee`},{e:`🚩`,t:`flag drapeau triangular`},{e:`🏳️`,t:`white flag drapeau blanc`},{e:`🏴`,t:`black flag drapeau noir`},{e:`🏳️🌈`,t:`rainbow lgbt pride drapeau arc en ciel`},{e:`🏳️⚧️`,t:`trans drapeau transgender`},{e:`🏴☠️`,t:`pirate drapeau jolly roger`}]}];function Gd(e){let t=(e||``).trim();if(/^\[.*?\]\(\?doc=.+#.+\)$/.test(t))return`anchor-doc-link`;if(/^\[.*?\]\(\?doc=.+\)$/.test(t))return`doc-link`;if(/^\[.*?\]\(#.+\)$/.test(t))return`anchor-link`;if(/^<!--\s*image-(?:width|align):/.test(t)||/^!\[.*?\]\(.*?\)$/.test(t))return`image`;if(/^\[.*?\]\(.*?\)$/.test(t))return`link`;if(/^<details[\s>]/i.test(t))return`collapsible`;if(/^<span\s[^>]*color:[^>]*>[\s\S]*<\/span>$/.test(t))return`colored-text`;if(/^<div\s+data-ld-kanban\b[^>]*>\s*<\/div>$/i.test(t))return`kanban`;if(/^<div\s[^>]*border-left[^>]*>/.test(t))return`colored-section`;if(/^```text\n/.test(t)&&/[├└│]/.test(t))return`tree`;if(/^:::compare[ \t]*\n/.test(t))return`compare`;if(/^<!--\s*(?:code|mermaid)-(?:width|align):/.test(t)||/^```/.test(t))return`code-block`;if(lc(t))return`table`;if(/^<!--\s*quote-(?:type|title|icon)/.test(t)||/^> /.test(t))return`blockquote`;let n=/^(#{1,4}) [^\n]+$/.exec(t);return n?`heading-${n[1].length}`:/^(---|\n---\n)$/.test(t)?`separator`:Nl(t)?`ordered-list`:Pl(t)?`unordered-list`:null}var Kd=U(`<p class="confirm-kicker"> </p>`),qd=U(`<p class="confirm-message" id="confirm-modal-message" data-testid="confirm-modal-message"> </p>`),Jd=U(`<p id="confirm-modal-detail" data-testid="confirm-modal-detail" class="bg-amber-50 border border-amber-300 text-amber-800 rounded-lg px-3 py-2 text-sm"> </p>`),Yd=U(`<div class="confirm-overlay"><section class="confirm-dialog" id="confirm-modal" data-testid="confirm-modal" role="dialog" aria-modal="true"><!> <h2> </h2> <!> <!> <footer class="confirm-actions"><button class="secondary-button" id="confirm-modal-cancel" data-testid="confirm-modal-cancel" type="button"> </button> <button id="confirm-modal-ok" data-testid="confirm-modal-ok" type="button"> </button></footer></section></div>`);function Xd(e,t){qe(t,!0);let n=P(!1),r=P(I({title:``,confirmLabel:`OK`})),i=null;function a(e){return F(r,e,!0),F(n,!0),new Promise(e=>{i=e})}function o(){F(n,!1),i?.(!0),i=null}function s(){F(n,!1),i?.(!1),i=null}var c={show:a},l=Wr(),u=R(l),d=e=>{var t=Yd(),n=L(t),i=L(n),a=e=>{var t=Kd(),n=L(t,!0);j(t),B(()=>G(n,V(r).kicker)),W(e,t)};K(i,e=>{V(r).kicker&&e(a)});var c=z(i,2),l=L(c,!0);j(c);var u=z(c,2),d=e=>{var t=qd(),n=L(t,!0);j(t),B(()=>G(n,V(r).message)),W(e,t)};K(u,e=>{V(r).message&&e(d)});var f=z(u,2),p=e=>{var t=Jd(),n=L(t,!0);j(t),B(()=>G(n,V(r).detail)),W(e,t)};K(f,e=>{V(r).detail&&e(p)});var m=z(f,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=L(_,!0);j(_),j(m),j(n),li(n,(e,t)=>Ca?.(e,t),()=>s),j(t),B(()=>{J(n,`aria-label`,V(r).title),G(l,V(r).title),G(g,V(r).cancelLabel??`Cancel`),vi(_,1,fi(V(r).danger?`danger-button`:`primary-button`)),G(v,V(r).confirmLabel)}),H(`click`,t,e=>{e.target===e.currentTarget&&s()}),H(`click`,h,s),H(`click`,_,o),W(e,t)};return K(u,e=>{V(n)&&e(d)}),W(e,l),Je(c)}Pr([`click`]);var Zd=U(`<div class="grid grid-cols-[minmax(0,1fr)_7rem_auto] gap-2 items-center"><input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="number" min="0" step="1" placeholder="0" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),Qd=U(`<div class="grid grid-cols-[8rem_minmax(0,1fr)_auto] gap-2 items-center"><input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),$d=U(`<div class="grid grid-cols-[5rem_minmax(0,1.2fr)_minmax(0,1fr)_minmax(0,1fr)_auto] gap-2 items-center"><input type="number" min="0" step="1" placeholder="0" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),ef=U(`<select class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option> </option><option> </option><option> </option></select>`),tf=U(`<input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/>`),nf=U(`<div class="grid grid-cols-[7rem_minmax(0,1fr)_7rem_minmax(0,1fr)_minmax(0,1.4fr)_auto] gap-2 items-center"><select class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option> </option><option> </option></select> <!> <select class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 disabled:opacity-40"><option>->></option><option>-->></option><option>--x</option><option>-x</option><option>--></option><option>-></option></select> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" class="w-9 h-9 inline-flex items-center justify-center rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:text-red-700 dark:hover:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-40 disabled:pointer-events-none"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),rf=U(`<option> </option>`),af=U(`<div class="grid grid-cols-[minmax(0,1fr)_9rem_auto] gap-2 items-center" data-testid="snip-kanban-column-row"><input type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <select class="w-full px-2 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select> <button type="button" class="w-9 h-9 rounded-lg border border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed"><i class="fa-solid fa-trash" aria-hidden="true"></i></button></div>`),of=U(`<div id="snippets-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div id="snippet-modal-card" class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-6xl mx-4 p-6 space-y-5 max-h-[90vh] overflow-y-auto"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><span id="snippet-modal-title"> </span></h3> <div id="snippet-detect-msg" class="hidden rounded-lg px-3 py-2 text-xs"></div> <div id="snippet-picker" class="hidden space-y-4"><input id="snippet-picker-search" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <div id="snippet-picker-categories" class="space-y-4 max-h-[60vh] overflow-y-auto pr-1"></div> <div id="snippet-picker-no-results" class="hidden text-center text-sm text-gray-500 dark:text-gray-400 py-4"> </div></div> <button type="button" id="snippet-picker-back" class="hidden inline-flex items-center gap-2 text-xs font-medium text-blue-700 dark:text-blue-300 hover:underline"><i class="fa-solid fa-arrow-left" aria-hidden="true"></i> <span> </span></button> <div id="snippet-type-wrapper" class="hidden space-y-1.5"><label for="snippet-type" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snippet-type" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option selected=""> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div id="snip-panel-heading" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-heading-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-heading-content" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-collapsible" class="space-y-3"><div class="space-y-1.5"><label for="snip-collapsible-summary" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-collapsible-summary" type="text" value="Details" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-collapsible-body" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-collapsible-body" rows="6" class="w-full px-3 py-2 text-sm font-mono rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea></div></div> <div id="snip-panel-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-link-text" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-link-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-link-url" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-link-url" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-doc-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-doc-select" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-doc-select" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <input id="snip-doc-link-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-anchor-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-anchor-text" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-anchor-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <select id="snip-anchor-id" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div></div> <div id="snip-panel-anchor-doc-link" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-anchor-doc-select" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-anchor-doc-select" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div> <div class="space-y-1.5"><label for="snip-anchor-doc-text" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-anchor-doc-text" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <select id="snip-anchor-doc-id" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div></div> <div id="snip-panel-ordered-list" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-ordered-list-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-ordered-list-content" rows="10" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y leading-relaxed"></textarea></div></div> <div id="snip-panel-unordered-list" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-unordered-list-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-unordered-list-content" rows="10" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y leading-relaxed"></textarea></div></div> <div id="snip-panel-code-block" class="hidden space-y-3"><div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <input id="snip-code-lang" type="text" placeholder="javascript" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-code-width" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-code-width" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-code-align" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-code-align" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div></div> <p class="text-xs text-gray-400 dark:text-gray-500"> </p> <div class="space-y-1.5"><label for="snip-code-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-code-content" rows="12" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y font-mono leading-relaxed"></textarea></div></div> <div id="snip-panel-mermaid" class="hidden space-y-4"><div class="space-y-1.5"><label for="snip-mermaid-type" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-mermaid-type" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"><option> </option><option> </option><option> </option><option> </option></select></div> <div id="snip-mermaid-pie-builder"><div class="space-y-1.5"><label for="snip-mermaid-pie-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-mermaid-pie-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-2"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button></div> <div class="space-y-2"></div></div></div> <div id="snip-mermaid-timeline-builder"><div class="space-y-1.5"><label for="snip-mermaid-timeline-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-mermaid-timeline-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-2"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button></div> <div class="space-y-2"></div></div></div> <div id="snip-mermaid-tree-builder"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button></div> <div class="space-y-2"></div></div> <div id="snip-mermaid-sequence-builder"><div class="flex items-center justify-between gap-3"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex items-center gap-2"><button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-plus mr-1" aria-hidden="true"></i> </button> <button type="button" class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-note-sticky mr-1" aria-hidden="true"></i> </button></div></div> <div class="space-y-2"></div></div></div> <div id="snip-panel-blockquote" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-blockquote-type" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-blockquote-type" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <label class="flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"><input id="snip-blockquote-icon" type="checkbox" class="rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"/> <span> </span></label></div> <div class="space-y-1.5"><label for="snip-blockquote-title" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-blockquote-title" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-blockquote-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-blockquote-content" rows="6" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y leading-relaxed"></textarea></div></div> <div id="snip-panel-image" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-image-width" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-image-width" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-image-align" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-image-align" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div></div> <div class="space-y-1.5"><label for="snip-image-alt" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-image-alt" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-image-url" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-image-url" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-columns" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-columns-count" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-count" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option>2</option><option>3</option><option>4</option></select></div> <div class="flex items-center gap-2"><label for="snip-columns-valign" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-valign" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-columns-text" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-text" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <div class="flex items-center gap-2"><label for="snip-columns-gap" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-columns-gap" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option selected=""> </option><option> </option></select></div></div> <div class="space-y-1.5"><label for="snip-columns-ratio" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-columns-ratio" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <p class="text-xs text-gray-400 dark:text-gray-500"> </p></div> <div id="snip-panel-table" class="hidden space-y-3"><div class="flex items-center gap-5 flex-wrap"><div class="flex items-center gap-2"><label for="snip-table-style" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-table-style" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option></select></div> <label class="flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400"><input id="snip-table-bordered" type="checkbox" class="rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"/> <span> </span></label> <div class="flex items-center gap-2"><label for="snip-table-color" class="text-xs text-gray-500 dark:text-gray-400"> </label> <select id="snip-table-color" class="text-xs rounded border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 px-2 py-1"><option> </option><option> </option><option> </option><option> </option><option> </option><option> </option></select></div> <p id="snip-table-hint" class="text-xs text-gray-400 dark:text-gray-500 ml-auto"> </p></div> <div id="snip-table-grid" class="overflow-x-auto"></div></div> <div id="snip-panel-tree" class="hidden space-y-2"><p class="text-xs text-gray-400 dark:text-gray-500"> </p> <div id="snip-tree-list" class="space-y-1"></div> <button class="text-xs px-3 py-1.5 rounded-lg border border-dashed border-gray-300 dark:border-gray-600 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors w-full"> </button></div> <div id="snip-panel-diagram" class="hidden space-y-3"><div class="flex gap-4 text-sm"><label class="flex items-center gap-2 cursor-pointer"><input type="radio" name="snip-diag-mode" id="snip-diag-mode-existing" value="existing" checked=""/> <span class="text-gray-700 dark:text-gray-300"> </span></label> <label class="flex items-center gap-2 cursor-pointer"><input type="radio" name="snip-diag-mode" id="snip-diag-mode-new" value="new"/> <span class="text-gray-700 dark:text-gray-300"> </span></label></div> <div id="snip-diag-existing-section" class="space-y-1.5"><label for="snip-diag-select" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <select id="snip-diag-select" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></select></div> <div id="snip-diag-new-section" class="hidden space-y-1.5"><label for="snip-diag-new-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-diag-new-name" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label for="snip-diag-img-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"><span> </span> <span class="font-normal text-gray-400"> </span></label> <input id="snip-diag-img-name" type="text" placeholder="diagram.png" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-colored-section" class="hidden space-y-3"><div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex flex-wrap gap-2"><button type="button" data-color-swatch="info" class="w-7 h-7 rounded-full border-2 border-blue-400 bg-blue-100 ring-2 ring-transparent hover:ring-blue-400 transition-all color-swatch-btn selected-swatch"></button> <button type="button" data-color-swatch="success" class="w-7 h-7 rounded-full border-2 border-green-400 bg-green-100 ring-2 ring-transparent hover:ring-green-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="warning" class="w-7 h-7 rounded-full border-2 border-amber-400 bg-amber-100 ring-2 ring-transparent hover:ring-amber-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="danger" class="w-7 h-7 rounded-full border-2 border-red-400 bg-red-100 ring-2 ring-transparent hover:ring-red-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="note" class="w-7 h-7 rounded-full border-2 border-purple-400 bg-purple-100 ring-2 ring-transparent hover:ring-purple-400 transition-all color-swatch-btn"></button> <button type="button" data-color-swatch="neutral" class="w-7 h-7 rounded-full border-2 border-gray-400 bg-gray-100 ring-2 ring-transparent hover:ring-gray-400 transition-all color-swatch-btn"></button></div></div> <div class="space-y-1.5"><label for="snip-colored-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-colored-content" rows="4" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y font-mono"></textarea></div></div> <div id="snip-panel-colored-text" class="hidden space-y-3"><div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex flex-wrap gap-2"><button type="button" data-color-text-swatch="info" class="w-7 h-7 rounded-full border-2 border-blue-500 bg-blue-500 ring-2 ring-transparent hover:ring-blue-400 transition-all color-text-swatch-btn selected-text-swatch"></button> <button type="button" data-color-text-swatch="success" class="w-7 h-7 rounded-full border-2 border-green-500 bg-green-500 ring-2 ring-transparent hover:ring-green-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="warning" class="w-7 h-7 rounded-full border-2 border-amber-500 bg-amber-500 ring-2 ring-transparent hover:ring-amber-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="danger" class="w-7 h-7 rounded-full border-2 border-red-500 bg-red-500 ring-2 ring-transparent hover:ring-red-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="note" class="w-7 h-7 rounded-full border-2 border-purple-500 bg-purple-500 ring-2 ring-transparent hover:ring-purple-400 transition-all color-text-swatch-btn"></button> <button type="button" data-color-text-swatch="neutral" class="w-7 h-7 rounded-full border-2 border-gray-500 bg-gray-500 ring-2 ring-transparent hover:ring-gray-400 transition-all color-text-swatch-btn"></button></div></div> <div class="space-y-1.5"><label for="snip-colored-text-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="snip-colored-text-content" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div></div> <div id="snip-panel-emojis" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-emoji-string" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex gap-1"><input id="snip-emoji-string" type="text" class="flex-1 px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <button type="button" id="snip-emoji-clear" class="px-3 py-2 text-xs rounded-lg border border-gray-300 dark:border-gray-600 hover:bg-gray-100 dark:hover:bg-gray-700"> </button></div></div> <div class="space-y-1.5"><input id="snip-emoji-search" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div id="snip-emoji-grid" class="space-y-2 max-h-64 overflow-y-auto border border-gray-200 dark:border-gray-700 rounded-lg p-2 bg-white dark:bg-gray-900"></div></div> <div id="snip-panel-attachment" class="hidden space-y-3"><div class="rounded-lg bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 px-3 py-3 text-sm text-blue-900 dark:text-blue-100 space-y-2"><p></p> <p class="text-xs text-blue-700 dark:text-blue-300"></p></div></div> <div id="snip-panel-compare" class="hidden space-y-3"><div class="space-y-1.5"><label for="snip-compare-content" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <textarea id="snip-compare-content" rows="6" class="w-full px-3 py-2 text-sm font-mono rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"></textarea></div></div> <div id="snip-panel-kanban" class="hidden space-y-3"><div class="space-y-1.5"><div class="flex items-center justify-between gap-3"><span class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </span> <button type="button" class="text-xs px-2.5 py-1 rounded-lg border border-gray-300 dark:border-gray-600 text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700 disabled:opacity-40 disabled:cursor-not-allowed"> </button></div> <div class="space-y-2"></div> <p class="text-xs text-gray-400 dark:text-gray-500"> </p></div></div> <div id="snippet-preview-wrap" class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <pre id="snippet-preview" class="text-xs bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 overflow-x-auto text-gray-700 dark:text-gray-300 whitespace-pre-wrap"></pre></div> <div class="flex justify-end gap-3 pt-1"><button id="snippet-delete-btn" class="hidden text-sm px-4 py-2 mr-auto rounded-lg border border-red-200 dark:border-red-800 text-red-700 dark:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/30 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button id="snippet-submit-btn" class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`),sf=U(`<!> <!>`,1);function cf(e,t){qe(t,!0);let n=qi(t,`editor`,7),r=qi(t,`mode`,3,`insert`),i=qi(t,`content`,3,``),a=qi(t,`range`,3,null),o=qi(t,`insertPos`,3,0),s=qi(t,`onsave`,3,void 0),c=0,l=0,u=``,d=P(null),f=`info`,p=`info`,m=P(`pie`),h=1,g=P(I([])),_=1,v=P(I([])),y=1,b=P(I([])),x=1,S=P(I([])),C=1,w=P(I([])),T=[{labelKey:`snippet.mermaid_pie_default_item_1`,value:`50`},{labelKey:`snippet.mermaid_pie_default_item_2`,value:`30`},{labelKey:`snippet.mermaid_pie_default_item_3`,value:`20`}],E=[{period:`2023`,eventKey:`snippet.mermaid_timeline_default_event_1`},{period:`2024`,eventKey:`snippet.mermaid_timeline_default_event_2`},{period:`2024`,eventKey:`snippet.mermaid_timeline_default_event_3`},{period:`2025`,eventKey:`snippet.mermaid_timeline_default_event_4`},{period:`2026`,eventKey:`snippet.mermaid_timeline_default_event_5`}],D=[{level:`0`,labelKey:`snippet.mermaid_tree_default_label_1`,decorator:``,noteKey:``},{level:`1`,labelKey:`snippet.mermaid_tree_default_label_2`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_2`},{level:`2`,labelKey:`snippet.mermaid_tree_default_label_3`,decorator:`:::highlight`,noteKey:`snippet.mermaid_tree_default_note_3`},{level:`2`,labelKey:`snippet.mermaid_tree_default_label_4`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_4`},{level:`1`,labelKey:`snippet.mermaid_tree_default_label_5`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_5`},{level:`1`,labelKey:`snippet.mermaid_tree_default_label_6`,decorator:``,noteKey:`snippet.mermaid_tree_default_note_6`}],ee=[{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_1`,arrow:`->>`,toKey:`snippet.mermaid_sequence_default_actor_2`,messageKey:`snippet.mermaid_sequence_default_message_1`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_2`,arrow:`-->>`,toKey:`snippet.mermaid_sequence_default_actor_3`,messageKey:`snippet.mermaid_sequence_default_message_2`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_3`,arrow:`--x`,toKey:`snippet.mermaid_sequence_default_actor_1`,messageKey:`snippet.mermaid_sequence_default_message_3`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_2`,arrow:`-x`,toKey:`snippet.mermaid_sequence_default_actor_3`,messageKey:`snippet.mermaid_sequence_default_message_4`,notePosition:`right of`},{type:`note`,fromKey:``,arrow:`->>`,toKey:`snippet.mermaid_sequence_default_actor_3`,messageKey:`snippet.mermaid_sequence_default_note_1`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_3`,arrow:`-->`,toKey:`snippet.mermaid_sequence_default_actor_1`,messageKey:`snippet.mermaid_sequence_default_message_5`,notePosition:`right of`},{type:`message`,fromKey:`snippet.mermaid_sequence_default_actor_1`,arrow:`->`,toKey:`snippet.mermaid_sequence_default_actor_2`,messageKey:`snippet.mermaid_sequence_default_message_6`,notePosition:`right of`}],te=[{value:`sky`,labelKey:`snippet.kanban_color_sky`},{value:`amber`,labelKey:`snippet.kanban_color_amber`},{value:`emerald`,labelKey:`snippet.kanban_color_emerald`},{value:`rose`,labelKey:`snippet.kanban_color_rose`},{value:`violet`,labelKey:`snippet.kanban_color_violet`},{value:`slate`,labelKey:`snippet.kanban_color_slate`}],O=nl(()=>M()),k=yl(()=>M());function ne(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function A(e){return document.getElementById(e)}function re(e){if(!e)return``;let t=e.split(/\s+/);return t.length>1&&!/^[\p{L}\p{N}]/u.test(t[0])?t.slice(1).join(` `):e}function ie(e){let t=Hd[e];return re(t?Y(t):e)}function ae(){let e=A(`snippet-picker-categories`);if(e){e.innerHTML=``;for(let t of zd){let n=document.createElement(`section`);n.dataset.snippetCategory=t.key,n.className=`space-y-2`;let r=document.createElement(`h3`);r.className=`text-[11px] font-semibold uppercase tracking-wider text-gray-500 dark:text-gray-400`,r.textContent=Y(t.labelKey),n.appendChild(r);let i=document.createElement(`div`);i.className=`grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-6 gap-2`;for(let e of t.types){let t=Bd[Vd[e]||`indigo`]||Bd.indigo,n=document.createElement(`button`);n.type=`button`,n.dataset.snippetType=e,n.className=`snippet-card min-h-[76px] flex flex-col items-center justify-center gap-2 p-2 rounded-lg border text-gray-800 dark:text-gray-100 transition-colors `+t.card,n.onclick=()=>de(e);let r=document.createElement(`i`);r.className=(Rd[e]||`fa-solid fa-puzzle-piece`)+` text-xl `+t.icon,r.setAttribute(`aria-hidden`,`true`),n.appendChild(r);let a=document.createElement(`span`);a.className=`text-xs font-medium text-center leading-tight`,a.textContent=ie(e),n.appendChild(a),i.appendChild(n)}n.appendChild(i),e.appendChild(n)}}}function oe(){ae(),A(`snippet-picker`)?.classList.remove(`hidden`),A(`snippet-picker-back`)?.classList.add(`hidden`),A(`snippet-submit-btn`)?.classList.add(`hidden`),Fd.forEach(e=>A(`snip-panel-`+e)?.classList.add(`hidden`)),A(`snippet-preview-wrap`)?.classList.add(`hidden`);let e=A(`snippet-picker-search`);e&&(e.value=``,ce(``),setTimeout(()=>e.focus(),50))}function se(e=!0){A(`snippet-picker`)?.classList.add(`hidden`),A(`snippet-submit-btn`)?.classList.remove(`hidden`),A(`snippet-picker-back`)?.classList.toggle(`hidden`,!e)}function ce(e){let t=A(`snippet-picker-categories`);if(!t)return;let n=(e||``).toLowerCase().trim(),r=0;t.querySelectorAll(`[data-snippet-category]`).forEach(e=>{let t=0;e.querySelectorAll(`[data-snippet-type]`).forEach(e=>{let r=(e.querySelector(`span`)?.textContent||``).toLowerCase(),i=!n||r.includes(n);e.classList.toggle(`hidden`,!i),i&&(t+=1)}),e.classList.toggle(`hidden`,t===0),r+=t}),A(`snippet-picker-no-results`)?.classList.toggle(`hidden`,r>0)}function le(){let e=A(`snippet-picker-search`);ce(e?e.value:``)}function ue(e){if(e.key===`Enter`){e.preventDefault();let t=document.querySelector(`#snippet-picker-categories [data-snippet-type]:not(.hidden)`);t&&de(t.dataset.snippetType)}}function de(e){let t=A(`snippet-type`);t&&(t.value=e),Ne(),se()}function fe(){oe()}let pe=!1;function me(e){return`<button type="button" data-emoji="${e.e}" title="${e.t.split(` `).slice(0,3).join(`, `)}" class="emoji-btn w-7 h-7 text-lg rounded hover:bg-gray-100 dark:hover:bg-gray-700 flex items-center justify-center">${e.e}</button>`}function he(){return Wd.map(e=>`
|
|
58
58
|
<div>
|
|
59
59
|
<div class="text-xs font-semibold text-gray-500 dark:text-gray-400 mb-1 px-1">${Y(e.label)}</div>
|
|
60
60
|
<div class="flex flex-wrap gap-1">
|
|
61
61
|
${e.emojis.map(me).join(``)}
|
|
62
62
|
</div>
|
|
63
63
|
</div>
|
|
64
|
-
`).join(``)}function ge(e){let t=e.toLowerCase().trim(),n=[];for(let r of
|
|
65
|
-
`),r=!1;for(let e of n){if(/^```/.test(e)){r=!r;continue}if(r)continue;let n=e.match(/^(#{1,6})\s+(.+?)\s*#*\s*$/);if(!n)continue;let i=Te(n[2]),a=Ee(i);a&&t.push({level:n[1].length,text:i,slug:a})}return t}function Oe(){return De(n()?n().value:``)}function ke(e,t,n){if(e){if(t.length===0){e.innerHTML=`<option value="" disabled selected>${Y(n)}</option>`;return}e.innerHTML=t.map(e=>{let t=`· `.repeat(Math.max(0,e.level-1));return`<option value="${ne(e.slug)}">${ne(t+e.text)}</option>`}).join(``)}}function Ae(){ke(A(`snip-anchor-id`),Oe(),`snippet.link_anchor_no_headings`)}async function je(){let e=A(`snip-anchor-doc-select`),t=A(`snip-anchor-doc-id`);if(!e||!t)return;let n=e.value;if(!n){ke(t,[],`snippet.link_anchor_no_headings`),M();return}t.innerHTML=`<option value="" disabled selected>${Y(`common.loading`)}</option>`;try{ke(t,De((await fetch(`/api/documents/`+encodeURIComponent(n)).then(e=>{if(!e.ok)throw Error(e.statusText);return e.json()})).content||``),`snippet.link_anchor_no_headings`)}catch{ke(t,[],`snippet.link_anchor_no_headings`)}M()}function Me(e,t){let n=A(e);n&&n.value.trim()===``&&(n.value=t)}function Ne(){let e=A(`snippet-type`).value,t=
|
|
64
|
+
`).join(``)}function ge(e){let t=e.toLowerCase().trim(),n=[];for(let r of Wd)for(let i of r.emojis)(i.t.includes(t)||i.e===e)&&n.push(i);return n.length===0?`<div class="text-xs text-gray-400 dark:text-gray-600 px-1 py-2">${Y(`snippet.emoji_no_results`)}</div>`:`<div class="flex flex-wrap gap-1">${n.map(me).join(``)}</div>`}function _e(){let e=A(`snip-emoji-grid`);if(!e)return;e.innerHTML=he(),pe||=(e.addEventListener(`click`,e=>{let t=e.target.closest(`.emoji-btn`);t&&t.dataset.emoji&&ye(t.dataset.emoji)}),A(`snip-emoji-search`)?.addEventListener(`input`,e=>ve(e.target.value)),!0);let t=A(`snip-emoji-search`);t&&(t.value=``),M()}function ve(e){let t=A(`snip-emoji-grid`);if(!t)return;let n=(e||``).trim();t.innerHTML=n.length<2?he():ge(n)}function ye(e){let t=A(`snip-emoji-string`);t&&(t.value+=e,M())}function be(){let e=A(`snip-emoji-string`);e&&(e.value=``,M())}let xe={info:`ring-blue-400`,success:`ring-green-400`,warning:`ring-amber-400`,danger:`ring-red-400`,note:`ring-purple-400`,neutral:`ring-gray-400`};function Se(e){document.querySelectorAll(`.color-swatch-btn`).forEach(e=>{e.classList.remove(`selected-swatch`,`ring-offset-2`)}),e.classList.add(`selected-swatch`,`ring-offset-2`);let t=e.getAttribute(`data-color-swatch`)||`info`;e.classList.add(xe[t]||`ring-blue-400`),f=t,M()}function Ce(e){document.querySelectorAll(`.color-text-swatch-btn`).forEach(e=>{e.classList.remove(`selected-text-swatch`,`ring-offset-2`)}),e.classList.add(`selected-text-swatch`,`ring-offset-2`);let t=e.getAttribute(`data-color-text-swatch`)||`info`;e.classList.add(xe[t]||`ring-blue-400`),p=t,M()}function we(e){return Ud[e]||Ud.info}function Te(e){return e.replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/`([^`]+)`/g,`$1`).replace(/\*\*([^*]+)\*\*/g,`$1`).replace(/__([^_]+)__/g,`$1`).replace(/(^|[^*])\*([^*]+)\*(?!\*)/g,`$1$2`).replace(/(^|[^_])_([^_]+)_(?!_)/g,`$1$2`).trim()}function Ee(e){return e.toLowerCase().replace(/[^\w\s-]/g,``).trim().replace(/\s+/g,`-`)}function De(e){let t=[],n=(e||``).split(`
|
|
65
|
+
`),r=!1;for(let e of n){if(/^```/.test(e)){r=!r;continue}if(r)continue;let n=e.match(/^(#{1,6})\s+(.+?)\s*#*\s*$/);if(!n)continue;let i=Te(n[2]),a=Ee(i);a&&t.push({level:n[1].length,text:i,slug:a})}return t}function Oe(){return De(n()?n().value:``)}function ke(e,t,n){if(e){if(t.length===0){e.innerHTML=`<option value="" disabled selected>${Y(n)}</option>`;return}e.innerHTML=t.map(e=>{let t=`· `.repeat(Math.max(0,e.level-1));return`<option value="${ne(e.slug)}">${ne(t+e.text)}</option>`}).join(``)}}function Ae(){ke(A(`snip-anchor-id`),Oe(),`snippet.link_anchor_no_headings`)}async function je(){let e=A(`snip-anchor-doc-select`),t=A(`snip-anchor-doc-id`);if(!e||!t)return;let n=e.value;if(!n){ke(t,[],`snippet.link_anchor_no_headings`),M();return}t.innerHTML=`<option value="" disabled selected>${Y(`common.loading`)}</option>`;try{ke(t,De((await fetch(`/api/documents/`+encodeURIComponent(n)).then(e=>{if(!e.ok)throw Error(e.statusText);return e.json()})).content||``),`snippet.link_anchor_no_headings`)}catch{ke(t,[],`snippet.link_anchor_no_headings`)}M()}function Me(e,t){let n=A(e);n&&n.value.trim()===``&&(n.value=t)}function Ne(){let e=A(`snippet-type`).value,t=Ld(e);Fd.forEach(e=>A(`snip-panel-`+e)?.classList.toggle(`hidden`,e!==t)),A(`snippet-preview-wrap`)?.classList.toggle(`hidden`,e===`attachment`||e===`table`||e===`code-block`||e===`blockquote`||e===`ordered-list`||e===`unordered-list`||e===`colored-section`||e===`colored-text`||e===`tree`||e===`collapsible`||e.startsWith(`heading-`)),e===`table`?rl(O):e===`tree`?bl(k):e===`mermaid`?Ve():e===`diagram`?Pe():e===`emojis`?_e():e===`attachment`||(e===`ordered-list`?Me(`snip-ordered-list-content`,kl()):e===`unordered-list`&&Me(`snip-unordered-list-content`,Al()),M())}async function Pe(){let e=[];try{e=await fetch(`/api/diagrams`).then(e=>e.json())}catch{e=[]}let t=A(`snip-diag-select`);t&&(t.innerHTML=e.length?e.map(e=>`<option value="${ne(e.id)}">${ne(e.title)}</option>`).join(``):`<option value="" disabled>${Y(`snippet.diagram_no_diagrams`)}</option>`);let n=X.currentDocId&&X.allDocs.find(e=>e.id===X.currentDocId),r=n&&n.title||``,i=r.toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_|_$/g,``),a=A(`snip-diag-img-name`);a&&(a.value=i?i+`.png`:`diagram.png`);let o=A(`snip-diag-new-name`);o&&(o.value=r?r+` Diagram`:``);let s=A(`snip-diag-mode-existing`);s&&(s.checked=!0),Fe()}function Fe(){let e=A(`snip-diag-mode-new`)?.checked??!1;A(`snip-diag-existing-section`)?.classList.toggle(`hidden`,e),A(`snip-diag-new-section`)?.classList.toggle(`hidden`,!e),Le(),M()}function Le(){let e=A(`snip-diag-mode-new`)?.checked??!1,t=``;if(e)t=A(`snip-diag-new-name`)?.value.trim()||``;else{let e=A(`snip-diag-select`);t=e?.options[e.selectedIndex]?.text??``}let n=t.toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_|_$/g,``),r=A(`snip-diag-img-name`);r&&(r.value=n?n+`.png`:`diagram.png`)}function Re(){return Y(`snippet.mermaid_pie_default_title`)||`DOC WORKFLOW`}function ze(){return Y(`snippet.mermaid_timeline_default_title`)||`DOCUMENTATION ROADMAP`}function Be(){F(m,`pie`),h=1,F(g,T.map(e=>({id:h++,label:Y(e.labelKey),value:e.value})),!0),_=1,F(v,E.map(e=>({id:_++,period:e.period,event:Y(e.eventKey)})),!0),y=1,F(b,D.map(e=>({id:y++,level:e.level,label:Y(e.labelKey),decorator:e.decorator,note:e.noteKey?Y(e.noteKey):``})),!0),x=1,F(S,ee.map(e=>({id:x++,type:e.type,from:e.fromKey?Y(e.fromKey):``,arrow:e.arrow,to:Y(e.toKey),message:Y(e.messageKey),notePosition:e.notePosition})),!0)}function Ve(){let e=A(`snip-mermaid-type`);e&&(e.value=V(m));let t=A(`snip-mermaid-pie-title`);t&&!t.value.trim()&&(t.value=Re());let n=A(`snip-mermaid-timeline-title`);n&&!n.value.trim()&&(n.value=ze()),M()}function He(){F(m,ut(`snip-mermaid-type`)||`pie`,!0),M()}function Ue(){F(g,[...V(g),{id:h++,label:``,value:`0`}],!0),M()}function We(e,t){let n=V(g).reduce((t,n)=>{if(n.id===e)return t;let r=Number(n.value);return t+(Number.isFinite(r)?Math.max(0,r):0)},0),r=Math.max(0,100-n),i=Number(t.value),a=Number.isFinite(i)?Math.min(r,Math.max(0,i)):0;F(g,V(g).map(t=>t.id===e?{...t,value:String(a)}:t),!0),t.value=String(a),M()}function Ge(e){V(g).length<=1||(F(g,V(g).filter(t=>t.id!==e),!0),M())}function Ke(){F(v,[...V(v),{id:_++,period:``,event:``}],!0),M()}function Ye(e){V(v).length<=1||(F(v,V(v).filter(t=>t.id!==e),!0),M())}function Xe(){F(b,[...V(b),{id:y++,level:`1`,label:``,decorator:``,note:``}],!0),M()}function Ze(e,t){let n=Number(t.value),r=Number.isFinite(n)?Math.min(6,Math.max(0,n)):0;F(b,V(b).map(t=>t.id===e?{...t,level:String(r)}:t),!0),t.value=String(r),M()}function Qe(e){V(b).length<=1||(F(b,V(b).filter(t=>t.id!==e),!0),M())}function $e(){F(S,[...V(S),{id:x++,type:`message`,from:``,arrow:`->>`,to:``,message:``,notePosition:`right of`}],!0),M()}function et(){F(S,[...V(S),{id:x++,type:`note`,from:``,arrow:`->>`,to:``,message:``,notePosition:`right of`}],!0),M()}function tt(e){V(S).length<=1||(F(S,V(S).filter(t=>t.id!==e),!0),M())}function nt(){return[Y(`snippet.kanban_col_todo`),Y(`snippet.kanban_col_doing`),Y(`snippet.kanban_col_done`)].map((e,t)=>({id:C++,label:e,color:nu(void 0,t)}))}function rt(){C=1,F(w,nt(),!0)}function it(e){return(e.length?e:nt().map(({label:e,color:t})=>({label:e,color:t}))).slice(0,6).map((e,t)=>({id:C++,label:e.label||``,color:nu(e.color,t)}))}function at(){V(w).length>=6||(F(w,[...V(w),{id:C++,label:``,color:nu(void 0,V(w).length)}],!0),M())}function ot(e){V(w).length<=1||(F(w,V(w).filter(t=>t.id!==e),!0),M())}function st(e,t){F(w,V(w).map(n=>n.id===e?{...n,label:t}:n),!0),M()}function ct(e,t){F(w,V(w).map((n,r)=>n.id===e?{...n,color:nu(t,r)}:n),!0),M()}function lt(e,t){return e.options[e.selectedIndex]?.text||t}function ut(e){return A(e)?.value??``}function dt(e){switch(e){case`collapsible`:return{summary:ut(`snip-collapsible-summary`),summaryFallback:Y(`snippet.collapsible_summary_value`),body:ut(`snip-collapsible-body`),bodyFallback:`## Titre
|
|
66
66
|
|
|
67
|
-
Texte`};case`link`:return{text:ut(`snip-link-text`),textFallback:Y(`snippet.link_text_placeholder`),url:ut(`snip-link-url`)};case`doc-link`:{let e=A(`snip-doc-select`);return{docId:e.value,title:lt(e,e.value),text:ut(`snip-doc-link-text`)}}case`anchor-link`:return{text:ut(`snip-anchor-text`),textFallback:Y(`snippet.link_section_placeholder`),anchor:ut(`snip-anchor-id`),anchorFallback:Y(`snippet.link_anchor_placeholder`)};case`anchor-doc-link`:return{docId:A(`snip-anchor-doc-select`).value,text:ut(`snip-anchor-doc-text`),textFallback:Y(`snippet.link_section_placeholder`),anchor:ut(`snip-anchor-doc-id`),anchorFallback:Y(`snippet.link_anchor_placeholder`)};case`ordered-list`:return{content:ut(`snip-ordered-list-content`)};case`unordered-list`:return{content:ut(`snip-unordered-list-content`)};case`code-block`:return{lang:ut(`snip-code-lang`),code:ut(`snip-code-content`),width:ut(`snip-code-width`),align:ut(`snip-code-align`),inlineIndent:u};case`blockquote`:{let e=A(`snip-blockquote-icon`);return{type:ut(`snip-blockquote-type`),title:ut(`snip-blockquote-title`),icon:!!(e&&e.checked),content:ut(`snip-blockquote-content`)}}case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:return{text:ut(`snip-heading-content`),fallback:Y(`snippet.heading_text_placeholder`)||`Titre`};case`image`:return{alt:ut(`snip-image-alt`),url:ut(`snip-image-url`),width:ut(`snip-image-width`),align:ut(`snip-image-align`)};case`table`:{let e=A(`snip-table-bordered`);return{markdown:
|
|
67
|
+
Texte`};case`link`:return{text:ut(`snip-link-text`),textFallback:Y(`snippet.link_text_placeholder`),url:ut(`snip-link-url`)};case`doc-link`:{let e=A(`snip-doc-select`);return{docId:e.value,title:lt(e,e.value),text:ut(`snip-doc-link-text`)}}case`anchor-link`:return{text:ut(`snip-anchor-text`),textFallback:Y(`snippet.link_section_placeholder`),anchor:ut(`snip-anchor-id`),anchorFallback:Y(`snippet.link_anchor_placeholder`)};case`anchor-doc-link`:return{docId:A(`snip-anchor-doc-select`).value,text:ut(`snip-anchor-doc-text`),textFallback:Y(`snippet.link_section_placeholder`),anchor:ut(`snip-anchor-doc-id`),anchorFallback:Y(`snippet.link_anchor_placeholder`)};case`ordered-list`:return{content:ut(`snip-ordered-list-content`)};case`unordered-list`:return{content:ut(`snip-unordered-list-content`)};case`code-block`:return{lang:ut(`snip-code-lang`),code:ut(`snip-code-content`),width:ut(`snip-code-width`),align:ut(`snip-code-align`),inlineIndent:u};case`blockquote`:{let e=A(`snip-blockquote-icon`);return{type:ut(`snip-blockquote-type`),title:ut(`snip-blockquote-title`),icon:!!(e&&e.checked),content:ut(`snip-blockquote-content`)}}case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:return{text:ut(`snip-heading-content`),fallback:Y(`snippet.heading_text_placeholder`)||`Titre`};case`image`:return{alt:ut(`snip-image-alt`),url:ut(`snip-image-url`),width:ut(`snip-image-width`),align:ut(`snip-image-align`)};case`table`:{let e=A(`snip-table-bordered`);return{markdown:gl(O),style:ut(`snip-table-style`),bordered:!!(e&&e.checked),color:ut(`snip-table-color`),inlineIndent:u}}case`tree`:return{markdown:Tl(k)};case`diagram`:{let e=A(`snip-diag-mode-new`)?.checked??!1,t=ut(`snip-diag-img-name`).trim()||`diagram.png`;if(e)return{id:`d`+Date.now(),label:ut(`snip-diag-new-name`).trim()||`Diagram`,imageName:t};let n=A(`snip-diag-select`);return{id:n.value,label:lt(n,`Diagram`),imageName:t}}case`mermaid`:return{kind:ut(`snip-mermaid-type`),pieTitle:ut(`snip-mermaid-pie-title`),pieTitleFallback:Re(),pieItems:V(g),pieItemLabelFallback:Y(`snippet.mermaid_pie_item_fallback`),timelineTitle:ut(`snip-mermaid-timeline-title`),timelineTitleFallback:ze(),timelineItems:V(v),timelinePeriodFallback:Y(`snippet.mermaid_timeline_period_fallback`),timelineEventFallback:Y(`snippet.mermaid_timeline_event_fallback`),treeItems:V(b),treeLabelFallback:Y(`snippet.mermaid_tree_label_fallback`),sequenceItems:V(S),sequenceActorFallback:Y(`snippet.mermaid_sequence_actor_fallback`),sequenceMessageFallback:Y(`snippet.mermaid_sequence_message_fallback`)};case`colored-text`:return{color:we(p),content:ut(`snip-colored-text-content`)||Y(`snippet.colored_text_content_placeholder`)};case`colored-section`:return{color:we(f),content:ut(`snip-colored-content`)||Y(`snippet.colored_section_content_placeholder`)};case`emojis`:return{value:ut(`snip-emoji-string`)};case`compare`:return{content:ut(`snip-compare-content`)};case`columns`:return{columns:Number(ut(`snip-columns-count`))||2,ratio:ut(`snip-columns-ratio`),verticalAlign:ut(`snip-columns-valign`),textAlign:ut(`snip-columns-text`),gap:ut(`snip-columns-gap`),bodyFallback:Y(`snippet.columns_body_fallback`)};case`kanban`:return{columns:V(w).slice(0,6).map((e,t)=>({label:e.label.trim(),color:nu(e.color,t)})).filter(e=>!!e.label),columnsFallback:[Y(`snippet.kanban_col_todo`),Y(`snippet.kanban_col_doing`),Y(`snippet.kanban_col_done`)]};default:return{}}}function ft(){let e=A(`snippet-type`).value;return uu(e,dt(e))}function M(){let e=A(`snippet-preview`);e&&(e.textContent=ft())}function pt(){hl(O)}function mt(){let e=ut(`snip-blockquote-type`),t=A(`snip-blockquote-icon`),n=A(`snip-blockquote-title`),r=new Set([`info`,`success`,`warning`,`error`].map(e=>Y(`snippet.blockquote_default_title_${e}`)).filter(Boolean)),i=n?n.value.trim():``,a=i===``||r.has(i);e?(t&&(t.checked=!0),n&&a&&(n.value=Y(`snippet.blockquote_default_title_${e}`)||e)):(t&&(t.checked=!1),n&&r.has(i)&&(n.value=``)),M()}function ht(){t.onclose()}function gt(e){if(!n())return;let t=c,r=l,i=n().value.slice(0,t),a=n().value.slice(r);n().value=i+e+a,n().selectionStart=n().selectionEnd=t+e.length,n().dispatchEvent(new Event(`input`,{bubbles:!0})),n().focus()}async function _t(){let e=A(`snippet-type`).value;if(r()===`inline-edit`&&(e===`diagram`||e===`attachment`)||r()===`inline-insert`&&e===`attachment`)return;if(e===`diagram`){await N();return}if(e===`attachment`){await yt();return}let t=ft();if(r()===`inline-edit`){let e=i().slice(0,c)+t+i().slice(l);try{s()&&await s()(e)}catch(e){alert(Y(`snippet.inline_save_failed`)+(e instanceof Error?e.message:String(e)))}ht();return}if(r()===`inline-insert`){let e=i().slice(0,c),n=i().slice(c),r=e.length===0||/\n\n$/.test(e)?``:e.endsWith(`
|
|
68
68
|
`)?`
|
|
69
69
|
`:`
|
|
70
70
|
|
|
@@ -80,15 +80,15 @@ Texte`};case`link`:return{text:ut(`snip-link-text`),textFallback:Y(`snippet.link
|
|
|
80
80
|
`)?`
|
|
81
81
|
`:`
|
|
82
82
|
|
|
83
|
-
`,a=e+n+l+r+t;try{s()&&await s()(a)}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)));return}}else if(gt(l),X.currentDocId&&n())try{await fetch(`/api/documents/`+X.currentDocId,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:n().value})})}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)));return}ht(),window.location.href=`/diagram?id=${a}&img=${encodeURIComponent(t)}`}function bt(e,t){if(Array.from(e.options).some(e=>e.value===t))return;let n=document.createElement(`option`);n.value=t,n.textContent=t,e.insertBefore(n,e.firstChild)}function xt(e,t){for(let n of Array.from(e.options))if(n.value===t){e.value=n.value;return}}function St(e){let t=Object.entries(Gd).find(([,t])=>t.border===e);return t?t[0]:null}function Ct(e){e&&(p=e,document.querySelectorAll(`.color-text-swatch-btn`).forEach(e=>{e.classList.remove(`selected-text-swatch`,`ring-offset-2`)}),document.querySelector(`[data-color-text-swatch="${p}"]`)?.classList.add(`selected-text-swatch`,`ring-offset-2`))}function wt(e){e&&(f=e,document.querySelectorAll(`.color-swatch-btn`).forEach(e=>{e.classList.remove(`selected-swatch`,`ring-offset-2`)}),document.querySelector(`[data-color-swatch="${f}"]`)?.classList.add(`selected-swatch`,`ring-offset-2`))}function Tt(e,t){let n=ju(t,e,{inlineIndent:u});switch(t){case`collapsible`:n.summary!==void 0&&Et(`snip-collapsible-summary`,n.summary),Et(`snip-collapsible-body`,n.body||``);break;case`link`:n.text!==void 0&&(Et(`snip-link-text`,n.text),Et(`snip-link-url`,n.url));break;case`doc-link`:if(n.docId!==void 0){let e=A(`snip-doc-select`);xt(e,n.docId);let t=e.options[e.selectedIndex]?.text??``;Et(`snip-doc-link-text`,n.text===t?``:n.text)}break;case`anchor-link`:if(n.anchor!==void 0){Et(`snip-anchor-text`,n.text);let e=A(`snip-anchor-id`);bt(e,n.anchor),e.value=n.anchor}break;case`anchor-doc-link`:n.docId!==void 0&&(xt(A(`snip-anchor-doc-select`),n.docId),Et(`snip-anchor-doc-text`,n.text),je().then(()=>{let e=A(`snip-anchor-doc-id`);e&&(bt(e,n.anchor),e.value=n.anchor,M())}));break;case`ordered-list`:Et(`snip-ordered-list-content`,n.content);break;case`unordered-list`:Et(`snip-unordered-list-content`,n.content);break;case`code-block`:Et(`snip-code-lang`,n.lang),Et(`snip-code-content`,n.code),Et(`snip-code-width`,n.width||``),Et(`snip-code-align`,n.align||``);break;case`blockquote`:{Et(`snip-blockquote-type`,n.type||``),Et(`snip-blockquote-title`,n.title||``);let e=A(`snip-blockquote-icon`);e&&(e.checked=!!n.icon),Et(`snip-blockquote-content`,n.content);break}case`image`:n.alt!==void 0&&(Et(`snip-image-alt`,n.alt),Et(`snip-image-url`,n.url)),Et(`snip-image-width`,n.width||``),Et(`snip-image-align`,n.align||``);break;case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:Et(`snip-heading-content`,n.text);break;case`table`:{Et(`snip-table-style`,n.attrs.style||``);let e=A(`snip-table-bordered`);e&&(e.checked=n.attrs.border===`bordered`),Et(`snip-table-color`,n.attrs.color||``),O.data=n.rows,_l(O);break}case`tree`:k.items=n.items,Cl(k);break;case`colored-text`:n.color!==void 0&&(Ct(St(n.color)),Et(`snip-colored-text-content`,n.content));break;case`colored-section`:n.borderColor&&wt(St(n.borderColor)),n.content!==void 0&&Et(`snip-colored-content`,n.content);break;case`compare`:Et(`snip-compare-content`,n.content||``);break;case`kanban`:F(w,it(n.columns||[]),!0);break}M()}function Et(e,t){let n=A(e);n&&(n.value=t??``)}function Dt(){let e=X.allDocs.map(e=>`<option value="${ne(e.id)}">${ne(e.title)}</option>`).join(``),t=A(`snip-doc-select`);t&&(t.innerHTML=e);let n=A(`snip-anchor-doc-select`);n&&(n.innerHTML=e),Ae(),je()}function Ot(){let e=r()===`inline-edit`,t=A(`snippet-modal-title`);if(t){let n=`snippet.modal_title`;e?n=`snippet.inline_modal_title`:r()===`inline-insert`&&(n=`snippet.inline_insert_modal_title`),t.textContent=Y(n)}let n=A(`snippet-submit-btn`);n&&(n.textContent=Y(e?`snippet.inline_save_btn`:`snippet.insert_btn`));let i=A(`snippet-type`);i&&(i.disabled=e,i.classList.toggle(`cursor-not-allowed`,e),i.classList.toggle(`opacity-70`,e));let a=A(`snippet-delete-btn`);a&&a.classList.toggle(`hidden`,!e);let o=A(`snippet-modal-card`);o&&(o.classList.toggle(`max-w-6xl`,!e),o.classList.toggle(`max-w-5xl`,e))}let kt=!1;kn(()=>{t.open&&!kt?(kt=!0,u=``,r()===`inline-edit`&&a()?(c=a().start,l=a().end,u=a().indent||``):r()===`inline-insert`?c=l=Math.max(0,Math.min(i().length,Number(o())||0)):n()&&(c=n().selectionStart,l=n().selectionEnd),f=`info`,p=`info`,Be(),rt(),queueMicrotask(()=>{if(Ot(),Dt(),r()===`inline-edit`&&a()){let e=i().slice(c,l),t=A(`snippet-type`);t&&(t.value=a().type),Ne(),Tt(e,a().type),se(!1),a().type===`table`&&a().tableFocusCell&&sl(a().tableFocusCell.row,a().tableFocusCell.col,!0)}else if(r()===`inline-insert`)oe();else{let e=n()?n().value.slice(c,l):``,t=e?qd(e):null;if(t){let n=A(`snippet-type`);n&&(n.value=t),Ne(),Tt(e,t),se()}else oe()}})):t.open||(kt=!1)});var At=rf(),jt=R(At),Mt=e=>{var t=nf(),n=L(t),r=L(n),i=L(r),a=L(i,!0);j(i),j(r);var o=z(r,4),s=L(o),c=z(s,4),l=L(c,!0);j(c),j(o);var u=z(o,2),d=z(L(u),2),f=L(d,!0);j(d),j(u);var p=z(u,2),h=L(p),_=L(h,!0);j(h);var y=z(h,2),x=L(y),C=L(x,!0);j(x),x.value=x.__value=`diagram`;var T=z(x),E=L(T,!0);j(T),T.value=T.__value=`heading-1`;var D=z(T),ee=L(D,!0);j(D),D.value=D.__value=`heading-2`;var O=z(D),ne=L(O,!0);j(O),O.value=O.__value=`heading-3`;var A=z(O),re=L(A,!0);j(A),A.value=A.__value=`heading-4`;var ie=z(A),ae=L(ie,!0);j(ie),ie.value=ie.__value=`collapsible`;var oe=z(ie),se=L(oe,!0);j(oe),oe.value=oe.__value=`link`;var ce=z(oe),de=L(ce,!0);j(ce),ce.value=ce.__value=`doc-link`;var pe=z(ce),me=L(pe,!0);j(pe),pe.value=pe.__value=`anchor-link`;var he=z(pe),ge=L(he,!0);j(he),he.value=he.__value=`anchor-doc-link`;var _e=z(he),ve=L(_e,!0);j(_e),_e.value=_e.__value=`ordered-list`;var ye=z(_e),xe=L(ye,!0);j(ye),ye.value=ye.__value=`unordered-list`;var we=z(ye),Te=L(we,!0);j(we),we.value=we.__value=`code-block`;var Ee=z(we),De=L(Ee,!0);j(Ee),Ee.value=Ee.__value=`mermaid`;var Oe=z(Ee),ke=L(Oe,!0);j(Oe),Oe.value=Oe.__value=`blockquote`;var Ae=z(Oe),Me=L(Ae,!0);j(Ae),Ae.value=Ae.__value=`separator`;var Pe=z(Ae),Be=L(Pe,!0);j(Pe),Pe.value=Pe.__value=`image`;var Ve=z(Pe),qe=L(Ve,!0);j(Ve),Ve.value=Ve.__value=`table`;var Je=z(Ve),nt=L(Je,!0);j(Je),Je.value=Je.__value=`tree`;var rt=z(Je),it=L(rt,!0);j(rt),rt.value=rt.__value=`colored-section`;var lt=z(rt),ut=L(lt,!0);j(lt),lt.value=lt.__value=`colored-text`;var dt=z(lt),ft=L(dt,!0);j(dt),dt.value=dt.__value=`emojis`;var gt=z(dt),yt=L(gt,!0);j(gt),gt.value=gt.__value=`attachment`;var N=z(gt),bt=L(N,!0);j(N),N.value=N.__value=`local-search`;var xt=z(N),St=L(xt,!0);j(xt),xt.value=xt.__value=`compare`;var Ct=z(xt),wt=L(Ct,!0);j(Ct),Ct.value=Ct.__value=`columns`;var Tt=z(Ct),Et=L(Tt,!0);j(Tt),Tt.value=Tt.__value=`kanban`,j(y),j(p);var Dt=z(p,2),Ot=L(Dt),kt=L(Ot),At=L(kt,!0);j(kt);var jt=z(kt,2);j(Ot),j(Dt);var Mt=z(Dt,2),Nt=L(Mt),Pt=L(Nt),Ft=L(Pt,!0);j(Pt);var It=z(Pt,2);j(Nt);var Lt=z(Nt,2),Rt=L(Lt),zt=L(Rt,!0);j(Rt);var Bt=z(Rt,2);j(Lt),j(Mt);var Vt=z(Mt,2),Ht=L(Vt),Ut=L(Ht),Wt=L(Ut,!0);j(Ut);var Gt=z(Ut,2);j(Ht);var Kt=z(Ht,2),qt=L(Kt),Jt=L(qt,!0);j(qt);var Yt=z(qt,2);j(Kt),j(Vt);var Xt=z(Vt,2),Zt=L(Xt),P=L(Zt),Qt=L(P,!0);j(P);var $t=z(P,2);j(Zt);var en=z(Zt,2),tn=L(en),nn=L(tn),I=L(nn,!0);j(nn);var rn=z(nn,2),an=L(rn,!0);j(rn),j(tn);var on=z(tn,2);j(en),j(Xt);var sn=z(Xt,2),cn=L(sn),ln=L(cn),un=L(ln,!0);j(ln);var dn=z(ln,2);j(cn);var fn=z(cn,2),pn=L(fn),R=L(pn),mn=L(R,!0);j(R);var hn=z(R,2),gn=L(hn,!0);j(hn),j(pn);var _n=z(pn,2);j(fn),j(sn);var vn=z(sn,2),yn=L(vn),bn=L(yn),xn=L(bn,!0);j(bn);var Sn=z(bn,2);j(yn);var Cn=z(yn,2),wn=L(Cn),Tn=L(wn,!0);j(wn);var En=z(wn,2);j(Cn);var Dn=z(Cn,2),On=L(Dn),kn=L(On),An=L(kn,!0);j(kn);var jn=z(kn,2),Mn=L(jn,!0);j(jn),j(On);var Nn=z(On,2);j(Dn),j(vn);var Pn=z(vn,2),Fn=L(Pn),In=L(Fn),Ln=L(In,!0);j(In);var Rn=z(In,2);j(Fn),j(Pn);var zn=z(Pn,2),Bn=L(zn),Vn=L(Bn),Hn=L(Vn,!0);j(Vn);var Un=z(Vn,2);j(Bn),j(zn);var Wn=z(zn,2),Gn=L(Wn),Kn=L(Gn),qn=L(Kn),Jn=L(qn,!0);j(qn);var Yn=z(qn,2),Xn=L(Yn,!0);j(Yn),j(Kn);var Zn=z(Kn,2);j(Gn);var Qn=z(Gn,2),$n=L(Qn),er=L($n),tr=L(er,!0);j(er);var nr=z(er,2),rr=L(nr),ir=L(rr,!0);j(rr),rr.value=rr.__value=``;var ar=z(rr),or=L(ar,!0);j(ar),ar.value=ar.__value=`full`;var sr=z(ar),cr=L(sr,!0);j(sr),sr.value=sr.__value=`3/4`;var lr=z(sr),ur=L(lr,!0);j(lr),lr.value=lr.__value=`2/3`;var dr=z(lr),fr=L(dr,!0);j(dr),dr.value=dr.__value=`1/2`;var pr=z(dr),mr=L(pr,!0);j(pr),pr.value=pr.__value=`1/3`;var hr=z(pr),gr=L(hr,!0);j(hr),hr.value=hr.__value=`1/4`,j(nr),j($n);var _r=z($n,2),vr=L(_r),yr=L(vr,!0);j(vr);var br=z(vr,2),xr=L(br),Sr=L(xr,!0);j(xr),xr.value=xr.__value=``;var Cr=z(xr),wr=L(Cr,!0);j(Cr),Cr.value=Cr.__value=`left`;var Tr=z(Cr),Er=L(Tr,!0);j(Tr),Tr.value=Tr.__value=`center`;var Dr=z(Tr),Or=L(Dr,!0);j(Dr),Dr.value=Dr.__value=`right`,j(br),j(_r),j(Qn);var kr=z(Qn,2),Ar=L(kr,!0);j(kr);var jr=z(kr,2),Mr=L(jr),Nr=L(Mr,!0);j(Mr);var Pr=z(Mr,2);j(jr),j(Wn);var Fr=z(Wn,2),Ir=L(Fr),Lr=L(Ir),Rr=L(Lr,!0);j(Lr);var zr=z(Lr,2),Br=L(zr),U=L(Br,!0);j(Br),Br.value=Br.__value=`pie`;var Vr=z(Br),Hr=L(Vr,!0);j(Vr),Vr.value=Vr.__value=`timeline`;var Ur=z(Vr),Wr=L(Ur,!0);j(Ur),Ur.value=Ur.__value=`tree-view`;var Gr=z(Ur),Kr=L(Gr,!0);j(Gr),Gr.value=Gr.__value=`sequence`,j(zr),j(Ir);var qr=z(Ir,2);let Jr;var Yr=L(qr),Zr=L(Yr),Qr=L(Zr,!0);j(Zr);var $r=z(Zr,2);Di($r),j(Yr);var ei=z(Yr,2),ti=L(ei),ni=L(ti),ri=L(ni,!0);j(ni);var ii=z(ni,2),oi=z(L(ii));j(ii),j(ti);var si=z(ti,2);q(si,23,()=>V(g),e=>e.id,(e,t,n)=>{var r=Jd(),i=L(r);Di(i);var a=z(i,2);Di(a);var o=z(a,2);j(r),B((e,n,r,s,c)=>{J(i,`aria-label`,e),J(i,`placeholder`,n),Oi(a,V(t).value),J(a,`aria-label`,r),J(o,`title`,s),J(o,`aria-label`,c),o.disabled=V(g).length<=1},[()=>`${Y(`snippet.mermaid_pie_item_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_pie_item_label_placeholder`),()=>`${Y(`snippet.mermaid_pie_item_value`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_pie_remove_item`),()=>Y(`snippet.mermaid_pie_remove_item`)]),H(`input`,i,M),Ni(i,()=>V(t).label,e=>V(t).label=e),H(`input`,a,e=>We(V(t).id,e.currentTarget)),H(`click`,o,()=>Ge(V(t).id)),W(e,r)}),j(si),j(ei),j(qr);var ci=z(qr,2);let li;var ui=L(ci),di=L(ui),fi=L(di,!0);j(di);var pi=z(di,2);Di(pi),j(ui);var mi=z(ui,2),hi=L(mi),_i=L(hi),vi=L(_i,!0);j(_i);var Si=z(_i,2),Ci=z(L(Si));j(Si),j(hi);var wi=z(hi,2);q(wi,23,()=>V(v),e=>e.id,(e,t,n)=>{var r=Yd(),i=L(r);Di(i);var a=z(i,2);Di(a);var o=z(a,2);j(r),B((e,t,n,r,s,c)=>{J(i,`aria-label`,e),J(i,`placeholder`,t),J(a,`aria-label`,n),J(a,`placeholder`,r),J(o,`title`,s),J(o,`aria-label`,c),o.disabled=V(v).length<=1},[()=>`${Y(`snippet.mermaid_timeline_period_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_timeline_period_placeholder`),()=>`${Y(`snippet.mermaid_timeline_event_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_timeline_event_placeholder`),()=>Y(`snippet.mermaid_timeline_remove_item`),()=>Y(`snippet.mermaid_timeline_remove_item`)]),H(`input`,i,M),Ni(i,()=>V(t).period,e=>V(t).period=e),H(`input`,a,M),Ni(a,()=>V(t).event,e=>V(t).event=e),H(`click`,o,()=>Ye(V(t).id)),W(e,r)}),j(wi),j(mi),j(ci);var Ti=z(ci,2);let Ei;var ki=L(Ti),Ai=L(ki),ji=L(Ai,!0);j(Ai);var Mi=z(Ai,2),Pi=z(L(Mi));j(Mi),j(ki);var Fi=z(ki,2);q(Fi,23,()=>V(b),e=>e.id,(e,t,n)=>{var r=Xd(),i=L(r);Di(i),J(i,`max`,6);var a=z(i,2);Di(a);var o=z(a,2);Di(o);var s=z(o,2);Di(s);var c=z(s,2);j(r),B((e,n,r,l,u,d,f,p,m)=>{Oi(i,V(t).level),J(i,`aria-label`,e),J(a,`aria-label`,n),J(a,`placeholder`,r),J(o,`aria-label`,l),J(o,`placeholder`,u),J(s,`aria-label`,d),J(s,`placeholder`,f),J(c,`title`,p),J(c,`aria-label`,m),c.disabled=V(b).length<=1},[()=>`${Y(`snippet.mermaid_tree_level_label`)} ${V(n)+1}`,()=>`${Y(`snippet.mermaid_tree_label_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_tree_label_placeholder`),()=>`${Y(`snippet.mermaid_tree_decorator_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_tree_decorator_placeholder`),()=>`${Y(`snippet.mermaid_tree_note_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_tree_note_placeholder`),()=>Y(`snippet.mermaid_tree_remove_item`),()=>Y(`snippet.mermaid_tree_remove_item`)]),H(`input`,i,e=>Ze(V(t).id,e.currentTarget)),H(`input`,a,M),Ni(a,()=>V(t).label,e=>V(t).label=e),H(`input`,o,M),Ni(o,()=>V(t).decorator,e=>V(t).decorator=e),H(`input`,s,M),Ni(s,()=>V(t).note,e=>V(t).note=e),H(`click`,c,()=>Qe(V(t).id)),W(e,r)}),j(Fi),j(Ti);var Ii=z(Ti,2);let Li;var Ri=L(Ii),zi=L(Ri),Bi=L(zi,!0);j(zi);var Vi=z(zi,2),Hi=L(Vi),Ui=z(L(Hi));j(Hi);var Wi=z(Hi,2),Gi=z(L(Wi));j(Wi),j(Vi),j(Ri);var Ki=z(Ri,2);q(Ki,23,()=>V(S),e=>e.id,(e,t,n)=>{var r=$d(),i=L(r),a=L(i),o=L(a,!0);j(a),a.value=a.__value=`message`;var s=z(a),c=L(s,!0);j(s),s.value=s.__value=`note`,j(i);var l=z(i,2),u=e=>{var r=Zd(),i=L(r),a=L(i,!0);j(i),i.value=i.__value=`left of`;var o=z(i),s=L(o,!0);j(o),o.value=o.__value=`right of`;var c=z(o),l=L(c,!0);j(c),c.value=c.__value=`over`,j(r),B((e,t,n,i)=>{J(r,`aria-label`,e),G(a,t),G(s,n),G(l,i)},[()=>`${Y(`snippet.mermaid_sequence_note_position_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_note_left`),()=>Y(`snippet.mermaid_sequence_note_right`),()=>Y(`snippet.mermaid_sequence_note_over`)]),H(`change`,r,M),xi(r,()=>V(t).notePosition,e=>V(t).notePosition=e),W(e,r)},d=e=>{var r=Qd();Di(r),B((e,t)=>{J(r,`aria-label`,e),J(r,`placeholder`,t)},[()=>`${Y(`snippet.mermaid_sequence_from_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_from_placeholder`)]),H(`input`,r,M),Ni(r,()=>V(t).from,e=>V(t).from=e),W(e,r)};K(l,e=>{V(t).type===`note`?e(u):e(d,-1)});var f=z(l,2),p=L(f);p.value=p.__value=`->>`;var m=z(p);m.value=m.__value=`-->>`;var h=z(m);h.value=h.__value=`--x`;var g=z(h);g.value=g.__value=`-x`;var _=z(g);_.value=_.__value=`-->`;var v=z(_);v.value=v.__value=`->`,j(f);var y=z(f,2);Di(y);var b=z(y,2);Di(b);var x=z(b,2);j(r),B((e,n,r,a,s,l,u,d,p,m)=>{J(i,`aria-label`,e),G(o,n),G(c,r),J(f,`aria-label`,a),f.disabled=V(t).type===`note`,J(y,`aria-label`,s),J(y,`placeholder`,l),J(b,`aria-label`,u),J(b,`placeholder`,d),J(x,`title`,p),J(x,`aria-label`,m),x.disabled=V(S).length<=1},[()=>`${Y(`snippet.mermaid_sequence_type_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_type_message`),()=>Y(`snippet.mermaid_sequence_type_note`),()=>`${Y(`snippet.mermaid_sequence_arrow_label`)} ${V(n)+1}`,()=>`${Y(`snippet.mermaid_sequence_to_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_to_placeholder`),()=>`${Y(`snippet.mermaid_sequence_message_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_message_placeholder`),()=>Y(`snippet.mermaid_sequence_remove_item`),()=>Y(`snippet.mermaid_sequence_remove_item`)]),H(`change`,i,M),xi(i,()=>V(t).type,e=>V(t).type=e),H(`change`,f,M),xi(f,()=>V(t).arrow,e=>V(t).arrow=e),H(`input`,y,M),Ni(y,()=>V(t).to,e=>V(t).to=e),H(`input`,b,M),Ni(b,()=>V(t).message,e=>V(t).message=e),H(`click`,x,()=>tt(V(t).id)),W(e,r)}),j(Ki),j(Ii),j(Fr);var qi=z(Fr,2),Ji=L(qi),Yi=L(Ji),Xi=L(Yi),Zi=L(Xi,!0);j(Xi);var Qi=z(Xi,2),$i=L(Qi),ea=L($i,!0);j($i),$i.value=$i.__value=``;var ta=z($i),na=L(ta,!0);j(ta),ta.value=ta.__value=`info`;var ra=z(ta),ia=L(ra,!0);j(ra),ra.value=ra.__value=`success`;var aa=z(ra),oa=L(aa,!0);j(aa),aa.value=aa.__value=`warning`;var sa=z(aa),ca=L(sa,!0);j(sa),sa.value=sa.__value=`error`,j(Qi),j(Yi);var la=z(Yi,2),ua=L(la),da=z(ua,2),fa=L(da,!0);j(da),j(la),j(Ji);var pa=z(Ji,2),ma=L(pa),ha=L(ma,!0);j(ma);var ga=z(ma,2);j(pa);var _a=z(pa,2),va=L(_a),ya=L(va,!0);j(va);var ba=z(va,2);j(_a),j(qi);var xa=z(qi,2),X=L(xa),Sa=L(X),Ca=L(Sa),wa=L(Ca,!0);j(Ca);var Ta=z(Ca,2),Ea=L(Ta),Da=L(Ea,!0);j(Ea),Ea.value=Ea.__value=``;var Oa=z(Ea),ka=L(Oa,!0);j(Oa),Oa.value=Oa.__value=`full`;var Aa=z(Oa),ja=L(Aa,!0);j(Aa),Aa.value=Aa.__value=`3/4`;var Ma=z(Aa),Na=L(Ma,!0);j(Ma),Ma.value=Ma.__value=`2/3`;var Pa=z(Ma),Fa=L(Pa,!0);j(Pa),Pa.value=Pa.__value=`1/2`;var Ia=z(Pa),La=L(Ia,!0);j(Ia),Ia.value=Ia.__value=`1/3`;var Ra=z(Ia),za=L(Ra,!0);j(Ra),Ra.value=Ra.__value=`1/4`,j(Ta),j(Sa);var Ba=z(Sa,2),Va=L(Ba),Ha=L(Va,!0);j(Va);var Ua=z(Va,2),Wa=L(Ua),Ga=L(Wa,!0);j(Wa),Wa.value=Wa.__value=``;var Ka=z(Wa),qa=L(Ka,!0);j(Ka),Ka.value=Ka.__value=`left`;var Ja=z(Ka),Ya=L(Ja,!0);j(Ja),Ja.value=Ja.__value=`center`;var Xa=z(Ja),Za=L(Xa,!0);j(Xa),Xa.value=Xa.__value=`right`,j(Ua),j(Ba),j(X);var Qa=z(X,2),$a=L(Qa),eo=L($a,!0);j($a);var to=z($a,2);j(Qa);var no=z(Qa,2),ro=L(no),io=L(ro,!0);j(ro);var ao=z(ro,2);j(no),j(xa);var oo=z(xa,2),so=L(oo),co=L(so),lo=L(co),uo=L(lo,!0);j(lo);var fo=z(lo,2),po=L(fo);po.value=po.__value=`2`;var mo=z(po);mo.value=mo.__value=`3`;var ho=z(mo);ho.value=ho.__value=`4`,j(fo),j(co);var go=z(co,2),_o=L(go),vo=L(_o,!0);j(_o);var yo=z(_o,2),bo=L(yo),xo=L(bo,!0);j(bo),bo.value=bo.__value=`center`;var So=z(bo),Co=L(So,!0);j(So),So.value=So.__value=`top`;var wo=z(So),To=L(wo,!0);j(wo),wo.value=wo.__value=`bottom`;var Eo=z(wo),Do=L(Eo,!0);j(Eo),Eo.value=Eo.__value=`stretch`,j(yo),j(go);var Oo=z(go,2),ko=L(Oo),Ao=L(ko,!0);j(ko);var jo=z(ko,2),Mo=L(jo),No=L(Mo,!0);j(Mo),Mo.value=Mo.__value=``;var Po=z(Mo),Fo=L(Po,!0);j(Po),Po.value=Po.__value=`left`;var Io=z(Po),Lo=L(Io,!0);j(Io),Io.value=Io.__value=`center`;var Ro=z(Io),zo=L(Ro,!0);j(Ro),Ro.value=Ro.__value=`right`;var Bo=z(Ro),Vo=L(Bo,!0);j(Bo),Bo.value=Bo.__value=`justify`,j(jo),j(Oo);var Ho=z(Oo,2),Uo=L(Ho),Wo=L(Uo,!0);j(Uo);var Go=z(Uo,2),Ko=L(Go),qo=L(Ko,!0);j(Ko),Ko.value=Ko.__value=`sm`;var Jo=z(Ko),Yo=L(Jo,!0);j(Jo),Jo.value=Jo.__value=`md`;var Xo=z(Jo),Zo=L(Xo,!0);j(Xo),Xo.value=Xo.__value=`lg`,j(Go),j(Ho),j(so);var Qo=z(so,2),$o=L(Qo),es=L($o,!0);j($o);var ts=z($o,2);j(Qo);var ns=z(Qo,2),rs=L(ns,!0);j(ns),j(oo);var is=z(oo,2),as=L(is),os=L(as),ss=L(os),cs=L(ss,!0);j(ss);var ls=z(ss,2),us=L(ls),ds=L(us,!0);j(us),us.value=us.__value=``;var fs=z(us),ps=L(fs,!0);j(fs),fs.value=fs.__value=`compact`;var ms=z(fs),hs=L(ms,!0);j(ms),ms.value=ms.__value=`striped`;var gs=z(ms),_s=L(gs,!0);j(gs),gs.value=gs.__value=`full`,j(ls),j(os);var vs=z(os,2),ys=L(vs),bs=z(ys,2),xs=L(bs,!0);j(bs),j(vs);var Ss=z(vs,2),Cs=L(Ss),ws=L(Cs,!0);j(Cs);var Ts=z(Cs,2),Es=L(Ts),Ds=L(Es,!0);j(Es),Es.value=Es.__value=``;var Os=z(Es),ks=L(Os,!0);j(Os),Os.value=Os.__value=`info`;var As=z(Os),js=L(As,!0);j(As),As.value=As.__value=`success`;var Ms=z(As),Ns=L(Ms,!0);j(Ms),Ms.value=Ms.__value=`warning`;var Ps=z(Ms),Fs=L(Ps,!0);j(Ps),Ps.value=Ps.__value=`danger`;var Is=z(Ps),Ls=L(Is,!0);j(Is),Is.value=Is.__value=`note`,j(Ts),j(Ss);var Rs=z(Ss,2),zs=L(Rs,!0);j(Rs),j(as),Ie(2),j(is);var Bs=z(is,2),Vs=L(Bs),Hs=L(Vs,!0);j(Vs);var Us=z(Vs,4),Ws=L(Us,!0);j(Us),j(Bs);var Gs=z(Bs,2),Ks=L(Gs),qs=L(Ks),Js=L(qs);Di(Js);var Ys=z(Js,2),Xs=L(Ys,!0);j(Ys),j(qs);var Zs=z(qs,2),Qs=L(Zs),$s=z(Qs,2),ec=L($s,!0);j($s),j(Zs),j(Ks);var tc=z(Ks,2),nc=L(tc),rc=L(nc,!0);j(nc);var ic=z(nc,2);j(tc);var ac=z(tc,2),oc=L(ac),sc=L(oc,!0);j(oc);var cc=z(oc,2);j(ac);var lc=z(ac,2),uc=L(lc),dc=L(uc),fc=L(dc,!0);j(dc);var pc=z(dc,2),mc=L(pc,!0);j(pc),j(uc);var hc=z(uc,2);j(lc),j(Gs);var gc=z(Gs,2),_c=L(gc),vc=L(_c),yc=L(vc,!0);j(vc);var bc=z(vc,2),xc=L(bc),Sc=z(xc,2),Cc=z(Sc,2),wc=z(Cc,2),Tc=z(wc,2),Ec=z(Tc,2);j(bc),j(_c);var Dc=z(_c,2),Oc=L(Dc),kc=L(Oc,!0);j(Oc);var Ac=z(Oc,2);j(Dc),j(gc);var jc=z(gc,2),Mc=L(jc),Nc=L(Mc),Pc=L(Nc,!0);j(Nc);var Fc=z(Nc,2),Ic=L(Fc),Lc=z(Ic,2),Rc=z(Lc,2),zc=z(Rc,2),Bc=z(zc,2),Vc=z(Bc,2);j(Fc),j(Mc);var Hc=z(Mc,2),Uc=L(Hc),Wc=L(Uc,!0);j(Uc);var Gc=z(Uc,2);j(Hc),j(jc);var Kc=z(jc,2),qc=L(Kc),Jc=L(qc),Yc=L(Jc,!0);j(Jc);var Xc=z(Jc,2),Zc=L(Xc),Qc=z(Zc,2),$c=L(Qc,!0);j(Qc),j(Xc),j(qc);var el=z(qc,2),tl=L(el);j(el),Ie(2),j(Kc);var nl=z(Kc,2),rl=L(nl),il=L(rl);ai(il,()=>Y(`snippet.attachment_help`),!0),j(il);var al=z(il,2);ai(al,()=>Y(`snippet.attachment_alt`),!0),j(al),j(rl),j(nl);var ol=z(nl,2),sl=L(ol),cl=L(sl),ll=L(cl,!0);j(cl);var ul=z(cl,2);j(sl),j(ol);var dl=z(ol,2),fl=L(dl),pl=L(fl),ml=L(pl),hl=L(ml,!0);j(ml);var gl=z(ml,2),_l=L(gl,!0);j(gl),j(pl);var vl=z(pl,2);q(vl,23,()=>V(w),e=>e.id,(e,t)=>{var n=tf(),r=L(n);Di(r);var i=z(r,2);q(i,21,()=>te,Xr,(e,t)=>{var n=ef(),r=L(n,!0);j(n);var i={};B(e=>{G(r,e),i!==(i=V(t).value)&&(n.value=(n.__value=V(t).value)??``)},[()=>Y(V(t).labelKey)]),W(e,n)}),j(i);var a;bi(i);var o=z(i,2);j(n),B((e,n,s,c,l)=>{Oi(r,V(t).label),J(r,`aria-label`,e),J(r,`placeholder`,n),J(i,`aria-label`,s),a!==(a=V(t).color)&&(i.value=(i.__value=V(t).color)??``,yi(i,V(t).color)),J(o,`aria-label`,c),J(o,`title`,l),o.disabled=V(w).length<=1},[()=>Y(`snippet.kanban_column_name_label`),()=>Y(`snippet.kanban_column_name_placeholder`),()=>Y(`snippet.kanban_column_color_label`),()=>Y(`snippet.kanban_remove_column`),()=>Y(`snippet.kanban_remove_column`)]),H(`input`,r,e=>st(V(t).id,e.currentTarget.value)),H(`change`,i,e=>ct(V(t).id,e.currentTarget.value)),H(`click`,o,()=>ot(V(t).id)),W(e,n)}),j(vl);var yl=z(vl,2),bl=L(yl,!0);j(yl),j(fl),j(dl);var xl=z(dl,2),Sl=L(xl),Cl=L(Sl,!0);j(Sl),Ie(2),j(xl);var wl=z(xl,2),El=L(wl),Dl=L(El,!0);j(El);var Ol=z(El,2),kl=L(Ol,!0);j(Ol);var Al=z(Ol,2),jl=L(Al,!0);j(Al),j(wl),j(n),j(t),B((e,t,n,r,i,o,c,u,d,p,h,g,v,y,b,x,S,T,D,te,O,k,A,ie,oe,ce,le,ue,fe,pe,he,_e,ye,be,Se,Ce,we,Ee,Oe,Ae,je,Ne,Pe,Fe,j,Ie,Le,Re,ze,Ve,He,Ue,We,Ge,Ke,Je,Ye,Xe,Ze,Qe,$e,et,tt,rt,at,ot,st,ct,lt,dt,M,pt,mt,ht,gt,_t,vt,N,xt,Ct,Tt,Dt,Ot,kt,Mt,Nt,Pt,It,Lt,Rt,Vt,Ht,Ut,Kt,qt,Xt,Zt,P,F,$t,en,tn,nn,rn,on,sn,cn,ln,fn,pn,L,R,z,hn,_n,vn,yn,bn,Sn,Cn,wn,Dn,On,kn,jn,Nn,Pn,Fn,B,In,zn,Bn,Vn,Wn,Gn,Kn,qn,Yn,Zn,Qn,$n,er,nr,rr,ar,sr,lr,dr,pr,hr,_r,vr,br,xr,Cr,Tr,Dr,kr,jr,Mr,H,Fr,Ir,Lr,zr,Br,Vr,Ur,W,Gr,Yr,K,Xr,Zr,q,ei,ti,ni,ii,ai,si,ui,di,mi,hi,_i,yi,bi,xi,Si,wi,Di,ki,Ai,Mi,Ni,Fi,Ri,zi,Vi,Hi,Wi,Ki,qi,Ji,Yi,Xi)=>{G(a,e),J(s,`placeholder`,t),G(l,n),G(f,r),G(_,i),G(C,o),G(E,c),G(ee,u),G(ne,d),G(re,p),G(ae,h),G(se,g),G(de,v),G(me,y),G(ge,b),G(ve,x),G(xe,S),G(Te,T),G(De,D),G(ke,te),G(Me,O),G(Be,k),G(qe,A),G(nt,ie),G(it,oe),G(ut,ce),G(ft,le),G(yt,ue),G(bt,fe),G(St,pe),G(wt,he),G(Et,_e),G(At,ye),J(jt,`placeholder`,be),G(Ft,Se),G(zt,Ce),J(Bt,`placeholder`,we),G(Wt,Ee),J(Gt,`placeholder`,Oe),G(Jt,Ae),J(Yt,`placeholder`,je),G(Qt,Ne),G(I,Pe),G(an,Fe),G(un,j),J(dn,`placeholder`,Ie),G(mn,Le),G(gn,Re),G(xn,ze),G(Tn,Ve),J(En,`placeholder`,He),G(An,Ue),G(Mn,We),G(Ln,Ge),J(Rn,`placeholder`,Ke),G(Hn,Je),J(Un,`placeholder`,Ye),G(Jn,Xe),G(Xn,Ze),G(tr,Qe),G(ir,$e),G(or,et),G(cr,tt),G(ur,rt),G(fr,at),G(mr,ot),G(gr,st),G(yr,ct),G(Sr,lt),G(wr,dt),G(Er,M),G(Or,pt),G(Ar,mt),G(Nr,ht),J(Pr,`placeholder`,gt),G(Rr,_t),G(U,vt),G(Hr,N),G(Wr,xt),G(Kr,Ct),Jr=gi(qr,1,`space-y-3`,null,Jr,{hidden:V(m)!==`pie`}),G(Qr,Tt),Oi($r,Dt),J($r,`placeholder`,Ot),G(ri,kt),G(oi,` ${Mt??``}`),li=gi(ci,1,`space-y-3`,null,li,{hidden:V(m)!==`timeline`}),G(fi,Nt),Oi(pi,Pt),J(pi,`placeholder`,It),G(vi,Lt),G(Ci,` ${Rt??``}`),Ei=gi(Ti,1,`space-y-3`,null,Ei,{hidden:V(m)!==`tree-view`}),G(ji,Vt),G(Pi,` ${Ht??``}`),Li=gi(Ii,1,`space-y-3`,null,Li,{hidden:V(m)!==`sequence`}),G(Bi,Ut),G(Ui,` ${Kt??``}`),G(Gi,` ${qt??``}`),G(Zi,Xt),G(ea,Zt),G(na,P),G(ia,F),G(oa,$t),G(ca,en),G(fa,tn),G(ha,nn),J(ga,`placeholder`,rn),G(ya,on),J(ba,`placeholder`,sn),G(wa,cn),G(Da,ln),G(ka,fn),G(ja,pn),G(Na,L),G(Fa,R),G(La,z),G(za,hn),G(Ha,_n),G(Ga,vn),G(qa,yn),G(Ya,bn),G(Za,Sn),G(eo,Cn),J(to,`placeholder`,wn),G(io,Dn),J(ao,`placeholder`,On),G(uo,kn),G(vo,jn),G(xo,Nn),G(Co,Pn),G(To,Fn),G(Do,B),G(Ao,In),G(No,zn),G(Fo,Bn),G(Lo,Vn),G(zo,Wn),G(Vo,Gn),G(Wo,Kn),G(qo,qn),G(Yo,Yn),G(Zo,Zn),G(es,Qn),J(ts,`placeholder`,$n),G(rs,er),G(cs,nr),G(ds,rr),G(ps,ar),G(hs,sr),G(_s,lr),G(xs,dr),G(ws,pr),G(Ds,hr),G(ks,_r),G(js,vr),G(Ns,br),G(Fs,xr),G(Ls,Cr),G(zs,Tr),G(Hs,Dr),G(Ws,kr),G(Xs,jr),G(ec,Mr),G(rc,H),G(sc,Fr),J(cc,`placeholder`,Ir),G(fc,Lr),G(mc,zr),G(yc,Br),J(xc,`title`,Vr),J(xc,`aria-label`,Ur),J(Sc,`title`,W),J(Sc,`aria-label`,Gr),J(Cc,`title`,Yr),J(Cc,`aria-label`,K),J(wc,`title`,Xr),J(wc,`aria-label`,Zr),J(Tc,`title`,q),J(Tc,`aria-label`,ei),J(Ec,`title`,ti),J(Ec,`aria-label`,ni),G(kc,ii),J(Ac,`placeholder`,ai),G(Pc,si),J(Ic,`title`,ui),J(Ic,`aria-label`,di),J(Lc,`title`,mi),J(Lc,`aria-label`,hi),J(Rc,`title`,_i),J(Rc,`aria-label`,yi),J(zc,`title`,bi),J(zc,`aria-label`,xi),J(Bc,`title`,Si),J(Bc,`aria-label`,wi),J(Vc,`title`,Di),J(Vc,`aria-label`,ki),G(Wc,Ai),J(Gc,`placeholder`,Mi),G(Yc,Ni),G($c,Fi),J(tl,`placeholder`,Ri),G(ll,zi),J(ul,`placeholder`,Vi),G(hl,Hi),gl.disabled=V(w).length>=6,G(_l,Wi),G(bl,Ki),G(Cl,qi),G(Dl,Ji),G(kl,Yi),G(jl,Xi)},[()=>Y(`snippet.modal_title`),()=>Y(`snippet.picker_search_placeholder`),()=>Y(`snippet.picker_no_results`),()=>Y(`snippet.picker_back`),()=>Y(`snippet.type_label`),()=>Y(`snippet.diagram`),()=>Y(`snippet.heading_1`),()=>Y(`snippet.heading_2`),()=>Y(`snippet.heading_3`),()=>Y(`snippet.heading_4`),()=>Y(`snippet.collapsible`),()=>Y(`snippet.link`),()=>Y(`snippet.link_doc`),()=>Y(`snippet.link_anchor`),()=>Y(`snippet.link_doc_anchor`),()=>Y(`snippet.numbered_list`),()=>Y(`snippet.bullet_list`),()=>Y(`snippet.code_block`),()=>Y(`snippet.mermaid`),()=>Y(`snippet.blockquote`),()=>Y(`snippet.separator`),()=>Y(`snippet.image`),()=>Y(`snippet.table`),()=>Y(`snippet.tree`),()=>Y(`snippet.colored_section`),()=>Y(`snippet.colored_text`),()=>Y(`snippet.emojis`),()=>Y(`snippet.attachment`),()=>Y(`snippet.local_search`),()=>Y(`snippet.compare`),()=>Y(`snippet.columns`),()=>Y(`snippet.kanban`),()=>Y(`snippet.heading_text_label`),()=>Y(`snippet.heading_text_placeholder`),()=>Y(`snippet.collapsible_summary_label`),()=>Y(`snippet.collapsible_body_label`),()=>Y(`snippet.collapsible_body_placeholder`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_text_placeholder`),()=>Y(`snippet.link_url_label`),()=>Y(`snippet.link_url_placeholder`),()=>Y(`snippet.link_doc_label`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_doc_text_hint`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_section_placeholder`),()=>Y(`snippet.link_anchor_label`),()=>Y(`snippet.link_anchor_select_hint`),()=>Y(`snippet.link_target_doc_label`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_section_placeholder`),()=>Y(`snippet.link_anchor_label`),()=>Y(`snippet.link_anchor_select_hint`),()=>Y(`snippet.ordered_list_content_label`),()=>Y(`snippet.ordered_list_content_placeholder`),()=>Y(`snippet.unordered_list_content_label`),()=>Y(`snippet.unordered_list_content_placeholder`),()=>Y(`snippet.code_lang_label`),()=>Y(`snippet.code_lang_hint`),()=>Y(`snippet.code_width_label`),()=>Y(`snippet.code_width_default`),()=>Y(`snippet.code_width_full`),()=>Y(`snippet.code_width_three_quarters`),()=>Y(`snippet.code_width_two_thirds`),()=>Y(`snippet.code_width_half`),()=>Y(`snippet.code_width_third`),()=>Y(`snippet.code_width_quarter`),()=>Y(`snippet.code_align_label`),()=>Y(`snippet.code_align_default`),()=>Y(`snippet.code_align_left`),()=>Y(`snippet.code_align_center`),()=>Y(`snippet.code_align_right`),()=>Y(`snippet.code_layout_hint`),()=>Y(`snippet.code_content_label`),()=>Y(`snippet.code_content_placeholder`),()=>Y(`snippet.mermaid_builder_type_label`),()=>Y(`snippet.mermaid_type_pie`),()=>Y(`snippet.mermaid_type_timeline`),()=>Y(`snippet.mermaid_type_tree_view`),()=>Y(`snippet.mermaid_type_sequence`),()=>Y(`snippet.mermaid_pie_title_label`),()=>Re(),()=>Y(`snippet.mermaid_pie_title_placeholder`),()=>Y(`snippet.mermaid_pie_items_label`),()=>Y(`snippet.mermaid_pie_add_item`),()=>Y(`snippet.mermaid_timeline_title_label`),()=>ze(),()=>Y(`snippet.mermaid_timeline_title_placeholder`),()=>Y(`snippet.mermaid_timeline_items_label`),()=>Y(`snippet.mermaid_timeline_add_item`),()=>Y(`snippet.mermaid_tree_items_label`),()=>Y(`snippet.mermaid_tree_add_item`),()=>Y(`snippet.mermaid_sequence_items_label`),()=>Y(`snippet.mermaid_sequence_add_message`),()=>Y(`snippet.mermaid_sequence_add_note`),()=>Y(`snippet.blockquote_type_label`),()=>Y(`snippet.blockquote_type_none`),()=>Y(`snippet.blockquote_type_info`),()=>Y(`snippet.blockquote_type_success`),()=>Y(`snippet.blockquote_type_warning`),()=>Y(`snippet.blockquote_type_error`),()=>Y(`snippet.blockquote_icon_label`),()=>Y(`snippet.blockquote_title_label`),()=>Y(`snippet.blockquote_title_placeholder`),()=>Y(`snippet.blockquote_content_label`),()=>Y(`snippet.blockquote_content_placeholder`),()=>Y(`snippet.image_width_label`),()=>Y(`snippet.image_width_default`),()=>Y(`snippet.image_width_full`),()=>Y(`snippet.image_width_three_quarters`),()=>Y(`snippet.image_width_two_thirds`),()=>Y(`snippet.image_width_half`),()=>Y(`snippet.image_width_third`),()=>Y(`snippet.image_width_quarter`),()=>Y(`snippet.image_align_label`),()=>Y(`snippet.image_align_default`),()=>Y(`snippet.image_align_left`),()=>Y(`snippet.image_align_center`),()=>Y(`snippet.image_align_right`),()=>Y(`snippet.image_alt_label`),()=>Y(`snippet.image_alt_placeholder`),()=>Y(`snippet.image_url_label`),()=>Y(`snippet.image_src_placeholder`),()=>Y(`snippet.columns_count_label`),()=>Y(`snippet.columns_valign_label`),()=>Y(`snippet.columns_valign_center`),()=>Y(`snippet.columns_valign_top`),()=>Y(`snippet.columns_valign_bottom`),()=>Y(`snippet.columns_valign_stretch`),()=>Y(`snippet.columns_text_label`),()=>Y(`snippet.columns_text_default`),()=>Y(`snippet.columns_text_left`),()=>Y(`snippet.columns_text_center`),()=>Y(`snippet.columns_text_right`),()=>Y(`snippet.columns_text_justify`),()=>Y(`snippet.columns_gap_label`),()=>Y(`snippet.columns_gap_sm`),()=>Y(`snippet.columns_gap_md`),()=>Y(`snippet.columns_gap_lg`),()=>Y(`snippet.columns_ratio_label`),()=>Y(`snippet.columns_ratio_placeholder`),()=>Y(`snippet.columns_hint`),()=>Y(`snippet.table_style_label`),()=>Y(`snippet.table_style_default`),()=>Y(`snippet.table_style_compact`),()=>Y(`snippet.table_style_striped`),()=>Y(`snippet.table_style_full`),()=>Y(`snippet.table_border_label`),()=>Y(`snippet.table_color_label`),()=>Y(`snippet.table_color_default`),()=>Y(`snippet.table_color_info`),()=>Y(`snippet.table_color_success`),()=>Y(`snippet.table_color_warning`),()=>Y(`snippet.table_color_danger`),()=>Y(`snippet.table_color_note`),()=>Y(`snippet.table_keyboard_hint`),()=>Y(`snippet.tree_hint`),()=>Y(`snippet.tree_add_btn`),()=>Y(`snippet.diagram_existing`),()=>Y(`snippet.diagram_new`),()=>Y(`snippet.diagram_select_label`),()=>Y(`snippet.diagram_name_label`),()=>Y(`snippet.diagram_name_placeholder`),()=>Y(`snippet.diag_img_label`),()=>Y(`snippet.diag_img_saved_hint`),()=>Y(`snippet.colored_section_color_label`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_section_content_label`),()=>Y(`snippet.colored_section_content_placeholder`),()=>Y(`snippet.colored_text_color_label`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_text_content_label`),()=>Y(`snippet.colored_text_content_placeholder`),()=>Y(`snippet.emoji_selected_label`),()=>Y(`snippet.emoji_clear_btn`),()=>Y(`snippet.emoji_search_placeholder`),()=>Y(`snippet.compare_content_label`),()=>Y(`snippet.compare_content_placeholder`),()=>Y(`snippet.kanban_columns_label`),()=>Y(`snippet.kanban_add_column`),()=>Y(`snippet.kanban_columns_hint`),()=>Y(`snippet.markdown_preview_label`),()=>Y(`snippet.inline_delete_btn`),()=>Y(`common.cancel`),()=>Y(`snippet.insert_btn`)]),H(`click`,t,e=>{e.target===e.currentTarget&&ht()}),H(`input`,s,le),H(`keydown`,s,ue),H(`click`,u,fe),H(`change`,y,Ne),H(`input`,jt,M),H(`input`,It,M),H(`input`,Bt,M),H(`input`,Gt,M),H(`input`,Yt,M),H(`change`,$t,M),H(`input`,on,M),H(`input`,dn,M),H(`change`,_n,M),H(`change`,Sn,je),H(`input`,En,M),H(`change`,Nn,M),H(`input`,Rn,M),H(`input`,Un,M),H(`input`,Zn,M),H(`change`,nr,M),H(`change`,br,M),H(`input`,Pr,M),H(`change`,zr,He),xi(zr,()=>V(m),e=>F(m,e)),H(`input`,$r,M),H(`click`,ii,Ue),H(`input`,pi,M),H(`click`,Si,Ke),H(`click`,Mi,Xe),H(`click`,Hi,$e),H(`click`,Wi,et),H(`change`,Qi,mt),H(`change`,ua,M),H(`input`,ga,M),H(`input`,ba,M),H(`change`,Ta,M),H(`change`,Ua,M),H(`input`,to,M),H(`input`,ao,M),H(`change`,fo,M),H(`change`,yo,M),H(`change`,jo,M),H(`change`,Go,M),H(`input`,ts,M),H(`change`,ls,pt),H(`change`,ys,pt),H(`change`,Ts,pt),H(`click`,Us,()=>Tl(k)),H(`change`,Js,Fe),H(`change`,Qs,Fe),H(`change`,ic,()=>{Le(),M()}),H(`input`,cc,()=>{Le(),M()}),H(`input`,hc,M),H(`click`,xc,e=>Se(e.currentTarget)),H(`click`,Sc,e=>Se(e.currentTarget)),H(`click`,Cc,e=>Se(e.currentTarget)),H(`click`,wc,e=>Se(e.currentTarget)),H(`click`,Tc,e=>Se(e.currentTarget)),H(`click`,Ec,e=>Se(e.currentTarget)),H(`input`,Ac,M),H(`click`,Ic,e=>Ce(e.currentTarget)),H(`click`,Lc,e=>Ce(e.currentTarget)),H(`click`,Rc,e=>Ce(e.currentTarget)),H(`click`,zc,e=>Ce(e.currentTarget)),H(`click`,Bc,e=>Ce(e.currentTarget)),H(`click`,Vc,e=>Ce(e.currentTarget)),H(`input`,Gc,M),H(`input`,Zc,M),H(`click`,Qc,be),H(`input`,ul,M),H(`click`,gl,at),H(`click`,El,vt),H(`click`,Ol,ht),H(`click`,Al,_t),W(e,t)};K(jt,e=>{t.open&&e(Mt)}),Vi(Ua(z(jt,2),{}),e=>F(d,e,!0),()=>V(d)),W(e,At),Je()}Pr([`click`,`input`,`keydown`,`change`]);var of=new Set([`anchor-doc-link`,`doc-link`,`anchor-link`,`image`,`link`,`collapsible`,`colored-text`,`colored-section`,`tree`,`code-block`,`table`,`blockquote`,`separator`,`ordered-list`,`unordered-list`,`heading-1`,`heading-2`,`heading-3`,`heading-4`,`compare`,`kanban`]),sf={table:{labelKey:`snippet.inline_edit_btn_table`,iconClass:`fa-solid fa-table-cells`},"code-block":{labelKey:`snippet.inline_edit_btn_code_block`,iconClass:`fa-solid fa-code`},blockquote:{labelKey:`snippet.inline_edit_btn_blockquote`,iconClass:`fa-solid fa-quote-right`},"ordered-list":{labelKey:`snippet.inline_edit_btn_ordered_list`,iconClass:`fa-solid fa-list-ol`},"unordered-list":{labelKey:`snippet.inline_edit_btn_unordered_list`,iconClass:`fa-solid fa-list-ul`},tree:{labelKey:`snippet.inline_edit_btn_tree`,iconClass:`fa-solid fa-folder-tree`},"colored-section":{labelKey:`snippet.inline_edit_btn_colored_section`,iconClass:`fa-solid fa-fill-drip`},"colored-text":{labelKey:`snippet.inline_edit_btn_colored_text`,iconClass:`fa-solid fa-highlighter`},collapsible:{labelKey:`snippet.inline_edit_btn_collapsible`,iconClass:`fa-solid fa-caret-right`},link:{labelKey:`snippet.inline_edit_btn_link`,iconClass:`fa-solid fa-link`},"doc-link":{labelKey:`snippet.inline_edit_btn_doc_link`,iconClass:`fa-solid fa-file-lines`},"anchor-link":{labelKey:`snippet.inline_edit_btn_anchor_link`,iconClass:`fa-solid fa-anchor`},"anchor-doc-link":{labelKey:`snippet.inline_edit_btn_anchor_doc_link`,iconClass:`fa-solid fa-anchor`},image:{labelKey:`snippet.inline_edit_btn_image`,iconClass:`fa-solid fa-image`},separator:{labelKey:`snippet.inline_edit_btn_separator`,iconClass:`fa-solid fa-minus`},"heading-1":{labelKey:`snippet.inline_edit_btn_heading_1`,iconClass:`fa-solid fa-heading`},"heading-2":{labelKey:`snippet.inline_edit_btn_heading_2`,iconClass:`fa-solid fa-heading`},"heading-3":{labelKey:`snippet.inline_edit_btn_heading_3`,iconClass:`fa-solid fa-heading`},"heading-4":{labelKey:`snippet.inline_edit_btn_heading_4`,iconClass:`fa-solid fa-heading`},compare:{labelKey:`snippet.inline_edit_btn_compare`,iconClass:`fa-solid fa-table-columns`},kanban:{labelKey:`snippet.inline_edit_btn_kanban`,iconClass:`fa-solid fa-table-columns`}};function cf(e){return sf[e]||{labelKey:`snippet.inline_edit_btn`,iconClass:`fa-solid fa-pen-to-square`}}var lf={table:`snippet.inline_delete_btn_table`,"code-block":`snippet.inline_delete_btn_code_block`,blockquote:`snippet.inline_delete_btn_blockquote`,"ordered-list":`snippet.inline_delete_btn_ordered_list`,"unordered-list":`snippet.inline_delete_btn_unordered_list`,tree:`snippet.inline_delete_btn_tree`,"colored-section":`snippet.inline_delete_btn_colored_section`,"colored-text":`snippet.inline_delete_btn_colored_text`,collapsible:`snippet.inline_delete_btn_collapsible`,link:`snippet.inline_delete_btn_link`,"doc-link":`snippet.inline_delete_btn_doc_link`,"anchor-link":`snippet.inline_delete_btn_anchor_link`,"anchor-doc-link":`snippet.inline_delete_btn_anchor_doc_link`,image:`snippet.inline_delete_btn_image`,separator:`snippet.inline_delete_btn_separator`,"heading-1":`snippet.inline_delete_btn_heading_1`,"heading-2":`snippet.inline_delete_btn_heading_2`,"heading-3":`snippet.inline_delete_btn_heading_3`,"heading-4":`snippet.inline_delete_btn_heading_4`,compare:`snippet.inline_delete_btn_compare`,kanban:`snippet.inline_delete_btn_kanban`};function uf(e){return{labelKey:lf[e]||`snippet.inline_delete_btn`,iconClass:`fa-solid fa-trash`}}var df=[{types:[`collapsible`],selector:`details`},{types:[`colored-section`],selector:`div[style*="border-left"]`},{types:[`colored-text`],selector:`span[style*="color"]`},{types:[`tree`,`code-block`],selector:`pre, .mermaid`},{types:[`table`],selector:`table`},{types:[`blockquote`],selector:`blockquote`},{types:[`separator`],selector:`hr`},{types:[`ordered-list`],selector:`ol`},{types:[`unordered-list`],selector:`ul`},{types:[`heading-1`],selector:`h1`},{types:[`heading-2`],selector:`h2`},{types:[`heading-3`],selector:`h3`},{types:[`heading-4`],selector:`h4`},{types:[`image`],selector:`img`},{types:[`compare`],selector:`.ld-compare`},{types:[`kanban`],selector:`[data-ld-kanban-root]`},{types:[`anchor-doc-link`,`doc-link`,`anchor-link`,`link`],selector:`a[href]`}],ff=null;function pf(e,t){return e.start===t.start&&e.end===t.end?!0:e.start>=t.start&&e.end<=t.end||t.start>=e.start&&t.end<=e.end?!1:e.start<t.end&&t.start<e.end}function mf(e,t,n){if(!n?.trim())return;let r=qd(n);if(!r||!of.has(r))return;let i=t+n.length,a={start:t,end:i,type:r};e.some(e=>!!(pf(e,a)||(e.type===`code-block`||e.type===`compare`)&&t>=e.start&&i<=e.end))||e.push(a)}function hf(e,t,n,r=0){for(let i of t.matchAll(n)){let t=i[r];mf(e,i.index+(r>0?i[0].indexOf(t):0),t)}}function gf(e,t){let n=/^:::compare[ \t]*\n[\s\S]*?^:::[ \t]*$/gm,r;for(;r=n.exec(t);){let t=r[0];if(!t.trim()){t.length===0&&(n.lastIndex+=1);continue}let i=r.index,a={start:i,end:i+t.length,type:`compare`};e.some(e=>pf(e,a))||e.push(a)}}function _f(e,t){let n=RegExp(`^${Hc()}`,`gm`),r;for(;r=n.exec(t);){let t=r[0];if(!t.trim()){t.length===0&&(n.lastIndex+=1);continue}let i=qd(t);if(!i||!of.has(i))continue;let a=t.match(/^([ \t]*)(?:<!--|```)/)?.[1]||``,o=r.index,s={start:o,end:o+t.length,type:i,indent:a};e.some(e=>pf(e,s))||e.push(s)}}function vf(e,t){let n=`(?:>[ \\t]?)+`,r=RegExp(`(?:^${n}<!--\\s*table-(?:style|border|color):[^\\n]*-->\\n)*^${n}\\|[^\\n]*\\|\\n${n}\\|[ \\t:|-]*-[ \\t:|-]*\\|(?:\\n${n}\\|[^\\n]*\\|)*`,`gm`);for(let n of t.matchAll(r)){let t=n[0],r=t.match(/^(?:>[ \t]?)+/)?.[0]??`> `,i=n.index,a=i+t.length,o={start:i,end:a,type:`table`,indent:r};e.some(e=>!!(pf(e,o)||(e.type===`code-block`||e.type===`compare`)&&i>=e.start&&a<=e.end))||e.push(o)}}function yf(e){let t=[];hf(t,e,/<details[\s\S]*?<\/details>/gi),hf(t,e,/<div\b[^>]*border-left[^>]*>[\s\S]*?<\/div>/gi),gf(t,e),hf(t,e,/^<div\s+data-ld-kanban\b[^\n]*<\/div>[ \t]*$/gim),_f(t,e),hf(t,e,/(?:^|\n\n)(#{1,4} [^\n]+)/g,1),hf(t,e,/<span\b[^>]*color:[^>]*>[\s\S]*?<\/span>/gi),hf(t,e,RegExp(`(?:^|\\n)((${tc()}))`,`g`),1),vf(t,e),hf(t,e,RegExp(`(?:^|\\n)((${Cc()}))`,`g`),1),hf(t,e,Nl()),hf(t,e,Pl()),hf(t,e,RegExp(`(?:^|\\n)((${jc()}))`,`g`),1),hf(t,e,/\[[^\]\n]+\]\([^)]+\)/g);let n=e.match(/^---\s*\n[\s\S]*?\n---/);return hf(t,e,/^---$/gm),t.filter(e=>e.type===`separator`?!n||e.start>n[0].length:!0).sort((e,t)=>e.start-t.start)}function bf(e,t){return Array.from(e.querySelectorAll(t)).filter(e=>!e.parentElement?.closest(`ol, ul`))}function xf(e,t){e.querySelectorAll(`[data-inline-snippet-index]`).forEach(e=>{e.removeAttribute(`data-inline-snippet-index`),e.classList.remove(`ld-inline-snippet-target`)});for(let{types:n,selector:r}of df){let i=t.filter(e=>n.includes(e.type));if(!i.length)continue;let a=r===`ol`||r===`ul`?bf(e,r):Array.from(e.querySelectorAll(r)).filter(e=>!e.closest(`.ld-compare-render`)),o=Math.min(i.length,a.length);for(let e=0;e<o;e+=1)a[e].dataset.inlineSnippetIndex=String(t.indexOf(i[e])),a[e].classList.add(`ld-inline-snippet-target`)}}function Sf(){ff&&=(ff.remove(),null)}function Cf(e,t){Sf();let n=Array.isArray(t)?t:[t],r=n[0]||{},i=document.createElement(`div`);i.id=`inline-snippet-popup`,r.dataAction&&(i.dataset.action=r.dataAction),r.dataType&&(i.dataset.snippetType=r.dataType),i.className=`fixed z-50 flex flex-col rounded-lg border border-blue-200 dark:border-blue-800 bg-white dark:bg-gray-900 shadow-lg p-1`,i.style.position=`fixed`,i.style.display=`flex`,i.style.flexDirection=`column`,i.style.width=`max-content`,i.style.zIndex=`50`;for(let e of n){let t=e.dataAction===`delete`,n=document.createElement(`button`);n.type=`button`,e.dataAction&&(n.dataset.action=e.dataAction),n.className=`inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold `+(t?`text-red-700 dark:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/30`:`text-blue-700 dark:text-blue-300 hover:bg-blue-50 dark:hover:bg-blue-900/30`);let r=document.createElement(`i`);r.className=e.iconClass,r.setAttribute(`aria-hidden`,`true`);let a=document.createElement(`span`);a.textContent=Y(e.labelKey),n.append(r,a),n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),Sf(),e.onActivate()}),i.appendChild(n)}document.body.appendChild(i);let a=i.getBoundingClientRect(),o=Math.min(window.innerWidth-a.width-8,Math.max(8,e.clientX)),s=Math.max(8,e.clientY-a.height-8);i.style.left=`${o}px`,i.style.top=`${s}px`,ff=i}function wf(e,t){let n=t instanceof Element?t:null;for(;n?.parentElement&&n.parentElement!==e;)n=n.parentElement;return!n||n===e||n.parentElement!==e?null:n}function Tf(e,t){let n=e?.closest(`th, td`);if(!n||!t.contains(n))return null;let r=n.closest(`tr`);if(!r)return null;let i=Array.from(t.querySelectorAll(`tr`)).indexOf(r),a=Array.from(r.children).indexOf(n);return i<0||a<0?null:{row:i,col:a}}function Ef(e,t){if(typeof t!=`number`)return null;let n=Array.from(e.children);if(!n.length)return null;let r=null,i=null;for(let e of n){let n=e.getBoundingClientRect();if(n.bottom<t)r=e;else if(n.top>t)i||=e;else return e}return r||i}function Df(e,t,n){if(t.matches(`[data-inline-snippet-index]`)){let e=n[Number(t.dataset.inlineSnippetIndex)];if(e)return e.end}let r=null,i=Array.from(t.querySelectorAll(`[data-inline-snippet-index]`));if(i.length>0){let e=-1;for(let t of i){let r=n[Number(t.dataset.inlineSnippetIndex)];r&&r.end>e&&(e=r.end)}e>=0&&(r=e)}else{let n=(t.textContent||``).trim();if(n){let t=n.split(`
|
|
83
|
+
`,a=e+n+l+r+t;try{s()&&await s()(a)}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)));return}}else if(gt(l),X.currentDocId&&n())try{await fetch(`/api/documents/`+X.currentDocId,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:n().value})})}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)));return}ht(),window.location.href=`/diagram?id=${a}&img=${encodeURIComponent(t)}`}function bt(e,t){if(Array.from(e.options).some(e=>e.value===t))return;let n=document.createElement(`option`);n.value=t,n.textContent=t,e.insertBefore(n,e.firstChild)}function xt(e,t){for(let n of Array.from(e.options))if(n.value===t){e.value=n.value;return}}function St(e){let t=Object.entries(Ud).find(([,t])=>t.border===e);return t?t[0]:null}function Ct(e){e&&(p=e,document.querySelectorAll(`.color-text-swatch-btn`).forEach(e=>{e.classList.remove(`selected-text-swatch`,`ring-offset-2`)}),document.querySelector(`[data-color-text-swatch="${p}"]`)?.classList.add(`selected-text-swatch`,`ring-offset-2`))}function wt(e){e&&(f=e,document.querySelectorAll(`.color-swatch-btn`).forEach(e=>{e.classList.remove(`selected-swatch`,`ring-offset-2`)}),document.querySelector(`[data-color-swatch="${f}"]`)?.classList.add(`selected-swatch`,`ring-offset-2`))}function Tt(e,t){let n=ku(t,e,{inlineIndent:u});switch(t){case`collapsible`:n.summary!==void 0&&Et(`snip-collapsible-summary`,n.summary),Et(`snip-collapsible-body`,n.body||``);break;case`link`:n.text!==void 0&&(Et(`snip-link-text`,n.text),Et(`snip-link-url`,n.url));break;case`doc-link`:if(n.docId!==void 0){let e=A(`snip-doc-select`);xt(e,n.docId);let t=e.options[e.selectedIndex]?.text??``;Et(`snip-doc-link-text`,n.text===t?``:n.text)}break;case`anchor-link`:if(n.anchor!==void 0){Et(`snip-anchor-text`,n.text);let e=A(`snip-anchor-id`);bt(e,n.anchor),e.value=n.anchor}break;case`anchor-doc-link`:n.docId!==void 0&&(xt(A(`snip-anchor-doc-select`),n.docId),Et(`snip-anchor-doc-text`,n.text),je().then(()=>{let e=A(`snip-anchor-doc-id`);e&&(bt(e,n.anchor),e.value=n.anchor,M())}));break;case`ordered-list`:Et(`snip-ordered-list-content`,n.content);break;case`unordered-list`:Et(`snip-unordered-list-content`,n.content);break;case`code-block`:Et(`snip-code-lang`,n.lang),Et(`snip-code-content`,n.code),Et(`snip-code-width`,n.width||``),Et(`snip-code-align`,n.align||``);break;case`blockquote`:{Et(`snip-blockquote-type`,n.type||``),Et(`snip-blockquote-title`,n.title||``);let e=A(`snip-blockquote-icon`);e&&(e.checked=!!n.icon),Et(`snip-blockquote-content`,n.content);break}case`image`:n.alt!==void 0&&(Et(`snip-image-alt`,n.alt),Et(`snip-image-url`,n.url)),Et(`snip-image-width`,n.width||``),Et(`snip-image-align`,n.align||``);break;case`heading-1`:case`heading-2`:case`heading-3`:case`heading-4`:Et(`snip-heading-content`,n.text);break;case`table`:{Et(`snip-table-style`,n.attrs.style||``);let e=A(`snip-table-bordered`);e&&(e.checked=n.attrs.border===`bordered`),Et(`snip-table-color`,n.attrs.color||``),O.data=n.rows,hl(O);break}case`tree`:k.items=n.items,xl(k);break;case`colored-text`:n.color!==void 0&&(Ct(St(n.color)),Et(`snip-colored-text-content`,n.content));break;case`colored-section`:n.borderColor&&wt(St(n.borderColor)),n.content!==void 0&&Et(`snip-colored-content`,n.content);break;case`compare`:Et(`snip-compare-content`,n.content||``);break;case`kanban`:F(w,it(n.columns||[]),!0);break}M()}function Et(e,t){let n=A(e);n&&(n.value=t??``)}function Dt(){let e=X.allDocs.map(e=>`<option value="${ne(e.id)}">${ne(e.title)}</option>`).join(``),t=A(`snip-doc-select`);t&&(t.innerHTML=e);let n=A(`snip-anchor-doc-select`);n&&(n.innerHTML=e),Ae(),je()}function Ot(){let e=r()===`inline-edit`,t=A(`snippet-modal-title`);if(t){let n=`snippet.modal_title`;e?n=`snippet.inline_modal_title`:r()===`inline-insert`&&(n=`snippet.inline_insert_modal_title`),t.textContent=Y(n)}let n=A(`snippet-submit-btn`);n&&(n.textContent=Y(e?`snippet.inline_save_btn`:`snippet.insert_btn`));let i=A(`snippet-type`);i&&(i.disabled=e,i.classList.toggle(`cursor-not-allowed`,e),i.classList.toggle(`opacity-70`,e));let a=A(`snippet-delete-btn`);a&&a.classList.toggle(`hidden`,!e);let o=A(`snippet-modal-card`);o&&(o.classList.toggle(`max-w-6xl`,!e),o.classList.toggle(`max-w-5xl`,e))}let kt=!1;kn(()=>{t.open&&!kt?(kt=!0,u=``,r()===`inline-edit`&&a()?(c=a().start,l=a().end,u=a().indent||``):r()===`inline-insert`?c=l=Math.max(0,Math.min(i().length,Number(o())||0)):n()&&(c=n().selectionStart,l=n().selectionEnd),f=`info`,p=`info`,Be(),rt(),queueMicrotask(()=>{if(Ot(),Dt(),r()===`inline-edit`&&a()){let e=i().slice(c,l),t=A(`snippet-type`);t&&(t.value=a().type),Ne(),Tt(e,a().type),se(!1),a().type===`table`&&a().tableFocusCell&&al(a().tableFocusCell.row,a().tableFocusCell.col,!0)}else if(r()===`inline-insert`)oe();else{let e=n()?n().value.slice(c,l):``,t=e?Gd(e):null;if(t){let n=A(`snippet-type`);n&&(n.value=t),Ne(),Tt(e,t),se()}else oe()}})):t.open||(kt=!1)});var At=sf(),jt=R(At),Mt=e=>{var t=of(),n=L(t),r=L(n),i=L(r),a=L(i,!0);j(i),j(r);var o=z(r,4),s=L(o),c=z(s,4),l=L(c,!0);j(c),j(o);var u=z(o,2),d=z(L(u),2),f=L(d,!0);j(d),j(u);var p=z(u,2),h=L(p),_=L(h,!0);j(h);var y=z(h,2),x=L(y),C=L(x,!0);j(x),x.value=x.__value=`diagram`;var T=z(x),E=L(T,!0);j(T),T.value=T.__value=`heading-1`;var D=z(T),ee=L(D,!0);j(D),D.value=D.__value=`heading-2`;var O=z(D),ne=L(O,!0);j(O),O.value=O.__value=`heading-3`;var A=z(O),re=L(A,!0);j(A),A.value=A.__value=`heading-4`;var ie=z(A),ae=L(ie,!0);j(ie),ie.value=ie.__value=`collapsible`;var oe=z(ie),se=L(oe,!0);j(oe),oe.value=oe.__value=`link`;var ce=z(oe),de=L(ce,!0);j(ce),ce.value=ce.__value=`doc-link`;var pe=z(ce),me=L(pe,!0);j(pe),pe.value=pe.__value=`anchor-link`;var he=z(pe),ge=L(he,!0);j(he),he.value=he.__value=`anchor-doc-link`;var _e=z(he),ve=L(_e,!0);j(_e),_e.value=_e.__value=`ordered-list`;var ye=z(_e),xe=L(ye,!0);j(ye),ye.value=ye.__value=`unordered-list`;var we=z(ye),Te=L(we,!0);j(we),we.value=we.__value=`code-block`;var Ee=z(we),De=L(Ee,!0);j(Ee),Ee.value=Ee.__value=`mermaid`;var Oe=z(Ee),ke=L(Oe,!0);j(Oe),Oe.value=Oe.__value=`blockquote`;var Ae=z(Oe),Me=L(Ae,!0);j(Ae),Ae.value=Ae.__value=`separator`;var Pe=z(Ae),Be=L(Pe,!0);j(Pe),Pe.value=Pe.__value=`image`;var Ve=z(Pe),qe=L(Ve,!0);j(Ve),Ve.value=Ve.__value=`table`;var Je=z(Ve),nt=L(Je,!0);j(Je),Je.value=Je.__value=`tree`;var rt=z(Je),it=L(rt,!0);j(rt),rt.value=rt.__value=`colored-section`;var lt=z(rt),ut=L(lt,!0);j(lt),lt.value=lt.__value=`colored-text`;var dt=z(lt),ft=L(dt,!0);j(dt),dt.value=dt.__value=`emojis`;var gt=z(dt),yt=L(gt,!0);j(gt),gt.value=gt.__value=`attachment`;var N=z(gt),bt=L(N,!0);j(N),N.value=N.__value=`local-search`;var xt=z(N),St=L(xt,!0);j(xt),xt.value=xt.__value=`compare`;var Ct=z(xt),wt=L(Ct,!0);j(Ct),Ct.value=Ct.__value=`columns`;var Tt=z(Ct),Et=L(Tt,!0);j(Tt),Tt.value=Tt.__value=`kanban`,j(y),j(p);var Dt=z(p,2),Ot=L(Dt),kt=L(Ot),At=L(kt,!0);j(kt);var jt=z(kt,2);j(Ot),j(Dt);var Mt=z(Dt,2),Nt=L(Mt),Pt=L(Nt),Ft=L(Pt,!0);j(Pt);var It=z(Pt,2);j(Nt);var Lt=z(Nt,2),Rt=L(Lt),zt=L(Rt,!0);j(Rt);var Bt=z(Rt,2);j(Lt),j(Mt);var Vt=z(Mt,2),Ht=L(Vt),Ut=L(Ht),Wt=L(Ut,!0);j(Ut);var Gt=z(Ut,2);j(Ht);var Kt=z(Ht,2),qt=L(Kt),Jt=L(qt,!0);j(qt);var Yt=z(qt,2);j(Kt),j(Vt);var Xt=z(Vt,2),Zt=L(Xt),P=L(Zt),Qt=L(P,!0);j(P);var $t=z(P,2);j(Zt);var en=z(Zt,2),tn=L(en),nn=L(tn),I=L(nn,!0);j(nn);var rn=z(nn,2),an=L(rn,!0);j(rn),j(tn);var on=z(tn,2);j(en),j(Xt);var sn=z(Xt,2),cn=L(sn),ln=L(cn),un=L(ln,!0);j(ln);var dn=z(ln,2);j(cn);var fn=z(cn,2),pn=L(fn),R=L(pn),mn=L(R,!0);j(R);var hn=z(R,2),gn=L(hn,!0);j(hn),j(pn);var _n=z(pn,2);j(fn),j(sn);var vn=z(sn,2),yn=L(vn),bn=L(yn),xn=L(bn,!0);j(bn);var Sn=z(bn,2);j(yn);var Cn=z(yn,2),wn=L(Cn),Tn=L(wn,!0);j(wn);var En=z(wn,2);j(Cn);var Dn=z(Cn,2),On=L(Dn),kn=L(On),An=L(kn,!0);j(kn);var jn=z(kn,2),Mn=L(jn,!0);j(jn),j(On);var Nn=z(On,2);j(Dn),j(vn);var Pn=z(vn,2),Fn=L(Pn),In=L(Fn),Ln=L(In,!0);j(In);var Rn=z(In,2);j(Fn),j(Pn);var zn=z(Pn,2),Bn=L(zn),Vn=L(Bn),Hn=L(Vn,!0);j(Vn);var Un=z(Vn,2);j(Bn),j(zn);var Wn=z(zn,2),Gn=L(Wn),Kn=L(Gn),qn=L(Kn),Jn=L(qn,!0);j(qn);var Yn=z(qn,2),Xn=L(Yn,!0);j(Yn),j(Kn);var Zn=z(Kn,2);j(Gn);var Qn=z(Gn,2),$n=L(Qn),er=L($n),tr=L(er,!0);j(er);var nr=z(er,2),rr=L(nr),ir=L(rr,!0);j(rr),rr.value=rr.__value=``;var ar=z(rr),or=L(ar,!0);j(ar),ar.value=ar.__value=`full`;var sr=z(ar),cr=L(sr,!0);j(sr),sr.value=sr.__value=`3/4`;var lr=z(sr),ur=L(lr,!0);j(lr),lr.value=lr.__value=`2/3`;var dr=z(lr),fr=L(dr,!0);j(dr),dr.value=dr.__value=`1/2`;var pr=z(dr),mr=L(pr,!0);j(pr),pr.value=pr.__value=`1/3`;var hr=z(pr),gr=L(hr,!0);j(hr),hr.value=hr.__value=`1/4`,j(nr),j($n);var _r=z($n,2),vr=L(_r),yr=L(vr,!0);j(vr);var br=z(vr,2),xr=L(br),Sr=L(xr,!0);j(xr),xr.value=xr.__value=``;var Cr=z(xr),wr=L(Cr,!0);j(Cr),Cr.value=Cr.__value=`left`;var Tr=z(Cr),Er=L(Tr,!0);j(Tr),Tr.value=Tr.__value=`center`;var Dr=z(Tr),Or=L(Dr,!0);j(Dr),Dr.value=Dr.__value=`right`,j(br),j(_r),j(Qn);var kr=z(Qn,2),Ar=L(kr,!0);j(kr);var jr=z(kr,2),Mr=L(jr),Nr=L(Mr,!0);j(Mr);var Pr=z(Mr,2);j(jr),j(Wn);var Fr=z(Wn,2),Ir=L(Fr),Lr=L(Ir),Rr=L(Lr,!0);j(Lr);var zr=z(Lr,2),Br=L(zr),U=L(Br,!0);j(Br),Br.value=Br.__value=`pie`;var Vr=z(Br),Hr=L(Vr,!0);j(Vr),Vr.value=Vr.__value=`timeline`;var Ur=z(Vr),Wr=L(Ur,!0);j(Ur),Ur.value=Ur.__value=`tree-view`;var Gr=z(Ur),Kr=L(Gr,!0);j(Gr),Gr.value=Gr.__value=`sequence`,j(zr),j(Ir);var qr=z(Ir,2);let Jr;var Yr=L(qr),Xr=L(Yr),Zr=L(Xr,!0);j(Xr);var $r=z(Xr,2);ki($r),j(Yr);var ei=z(Yr,2),ti=L(ei),ni=L(ti),ri=L(ni,!0);j(ni);var ii=z(ni,2),ai=z(L(ii));j(ii),j(ti);var oi=z(ti,2);q(oi,23,()=>V(g),e=>e.id,(e,t,n)=>{var r=Zd(),i=L(r);ki(i);var a=z(i,2);ki(a);var o=z(a,2);j(r),B((e,n,r,s,c)=>{J(i,`aria-label`,e),J(i,`placeholder`,n),Ai(a,V(t).value),J(a,`aria-label`,r),J(o,`title`,s),J(o,`aria-label`,c),o.disabled=V(g).length<=1},[()=>`${Y(`snippet.mermaid_pie_item_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_pie_item_label_placeholder`),()=>`${Y(`snippet.mermaid_pie_item_value`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_pie_remove_item`),()=>Y(`snippet.mermaid_pie_remove_item`)]),H(`input`,i,M),Fi(i,()=>V(t).label,e=>V(t).label=e),H(`input`,a,e=>We(V(t).id,e.currentTarget)),H(`click`,o,()=>Ge(V(t).id)),W(e,r)}),j(oi),j(ei),j(qr);var ci=z(qr,2);let li;var ui=L(ci),di=L(ui),fi=L(di,!0);j(di);var pi=z(di,2);ki(pi),j(ui);var mi=z(ui,2),hi=L(mi),gi=L(hi),_i=L(gi,!0);j(gi);var yi=z(gi,2),bi=z(L(yi));j(yi),j(hi);var wi=z(hi,2);q(wi,23,()=>V(v),e=>e.id,(e,t,n)=>{var r=Qd(),i=L(r);ki(i);var a=z(i,2);ki(a);var o=z(a,2);j(r),B((e,t,n,r,s,c)=>{J(i,`aria-label`,e),J(i,`placeholder`,t),J(a,`aria-label`,n),J(a,`placeholder`,r),J(o,`title`,s),J(o,`aria-label`,c),o.disabled=V(v).length<=1},[()=>`${Y(`snippet.mermaid_timeline_period_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_timeline_period_placeholder`),()=>`${Y(`snippet.mermaid_timeline_event_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_timeline_event_placeholder`),()=>Y(`snippet.mermaid_timeline_remove_item`),()=>Y(`snippet.mermaid_timeline_remove_item`)]),H(`input`,i,M),Fi(i,()=>V(t).period,e=>V(t).period=e),H(`input`,a,M),Fi(a,()=>V(t).event,e=>V(t).event=e),H(`click`,o,()=>Ye(V(t).id)),W(e,r)}),j(wi),j(mi),j(ci);var Ti=z(ci,2);let Ei;var Di=L(Ti),Oi=L(Di),ji=L(Oi,!0);j(Oi);var Mi=z(Oi,2),Ni=z(L(Mi));j(Mi),j(Di);var Pi=z(Di,2);q(Pi,23,()=>V(b),e=>e.id,(e,t,n)=>{var r=$d(),i=L(r);ki(i),J(i,`max`,6);var a=z(i,2);ki(a);var o=z(a,2);ki(o);var s=z(o,2);ki(s);var c=z(s,2);j(r),B((e,n,r,l,u,d,f,p,m)=>{Ai(i,V(t).level),J(i,`aria-label`,e),J(a,`aria-label`,n),J(a,`placeholder`,r),J(o,`aria-label`,l),J(o,`placeholder`,u),J(s,`aria-label`,d),J(s,`placeholder`,f),J(c,`title`,p),J(c,`aria-label`,m),c.disabled=V(b).length<=1},[()=>`${Y(`snippet.mermaid_tree_level_label`)} ${V(n)+1}`,()=>`${Y(`snippet.mermaid_tree_label_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_tree_label_placeholder`),()=>`${Y(`snippet.mermaid_tree_decorator_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_tree_decorator_placeholder`),()=>`${Y(`snippet.mermaid_tree_note_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_tree_note_placeholder`),()=>Y(`snippet.mermaid_tree_remove_item`),()=>Y(`snippet.mermaid_tree_remove_item`)]),H(`input`,i,e=>Ze(V(t).id,e.currentTarget)),H(`input`,a,M),Fi(a,()=>V(t).label,e=>V(t).label=e),H(`input`,o,M),Fi(o,()=>V(t).decorator,e=>V(t).decorator=e),H(`input`,s,M),Fi(s,()=>V(t).note,e=>V(t).note=e),H(`click`,c,()=>Qe(V(t).id)),W(e,r)}),j(Pi),j(Ti);var Ii=z(Ti,2);let Li;var Ri=L(Ii),zi=L(Ri),Bi=L(zi,!0);j(zi);var Vi=z(zi,2),Hi=L(Vi),Ui=z(L(Hi));j(Hi);var Wi=z(Hi,2),Gi=z(L(Wi));j(Wi),j(Vi),j(Ri);var Ki=z(Ri,2);q(Ki,23,()=>V(S),e=>e.id,(e,t,n)=>{var r=nf(),i=L(r),a=L(i),o=L(a,!0);j(a),a.value=a.__value=`message`;var s=z(a),c=L(s,!0);j(s),s.value=s.__value=`note`,j(i);var l=z(i,2),u=e=>{var r=ef(),i=L(r),a=L(i,!0);j(i),i.value=i.__value=`left of`;var o=z(i),s=L(o,!0);j(o),o.value=o.__value=`right of`;var c=z(o),l=L(c,!0);j(c),c.value=c.__value=`over`,j(r),B((e,t,n,i)=>{J(r,`aria-label`,e),G(a,t),G(s,n),G(l,i)},[()=>`${Y(`snippet.mermaid_sequence_note_position_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_note_left`),()=>Y(`snippet.mermaid_sequence_note_right`),()=>Y(`snippet.mermaid_sequence_note_over`)]),H(`change`,r,M),Ci(r,()=>V(t).notePosition,e=>V(t).notePosition=e),W(e,r)},d=e=>{var r=tf();ki(r),B((e,t)=>{J(r,`aria-label`,e),J(r,`placeholder`,t)},[()=>`${Y(`snippet.mermaid_sequence_from_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_from_placeholder`)]),H(`input`,r,M),Fi(r,()=>V(t).from,e=>V(t).from=e),W(e,r)};K(l,e=>{V(t).type===`note`?e(u):e(d,-1)});var f=z(l,2),p=L(f);p.value=p.__value=`->>`;var m=z(p);m.value=m.__value=`-->>`;var h=z(m);h.value=h.__value=`--x`;var g=z(h);g.value=g.__value=`-x`;var _=z(g);_.value=_.__value=`-->`;var v=z(_);v.value=v.__value=`->`,j(f);var y=z(f,2);ki(y);var b=z(y,2);ki(b);var x=z(b,2);j(r),B((e,n,r,a,s,l,u,d,p,m)=>{J(i,`aria-label`,e),G(o,n),G(c,r),J(f,`aria-label`,a),f.disabled=V(t).type===`note`,J(y,`aria-label`,s),J(y,`placeholder`,l),J(b,`aria-label`,u),J(b,`placeholder`,d),J(x,`title`,p),J(x,`aria-label`,m),x.disabled=V(S).length<=1},[()=>`${Y(`snippet.mermaid_sequence_type_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_type_message`),()=>Y(`snippet.mermaid_sequence_type_note`),()=>`${Y(`snippet.mermaid_sequence_arrow_label`)} ${V(n)+1}`,()=>`${Y(`snippet.mermaid_sequence_to_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_to_placeholder`),()=>`${Y(`snippet.mermaid_sequence_message_label`)} ${V(n)+1}`,()=>Y(`snippet.mermaid_sequence_message_placeholder`),()=>Y(`snippet.mermaid_sequence_remove_item`),()=>Y(`snippet.mermaid_sequence_remove_item`)]),H(`change`,i,M),Ci(i,()=>V(t).type,e=>V(t).type=e),H(`change`,f,M),Ci(f,()=>V(t).arrow,e=>V(t).arrow=e),H(`input`,y,M),Fi(y,()=>V(t).to,e=>V(t).to=e),H(`input`,b,M),Fi(b,()=>V(t).message,e=>V(t).message=e),H(`click`,x,()=>tt(V(t).id)),W(e,r)}),j(Ki),j(Ii),j(Fr);var qi=z(Fr,2),Ji=L(qi),Yi=L(Ji),Xi=L(Yi),Zi=L(Xi,!0);j(Xi);var Qi=z(Xi,2),$i=L(Qi),ea=L($i,!0);j($i),$i.value=$i.__value=``;var ta=z($i),na=L(ta,!0);j(ta),ta.value=ta.__value=`info`;var ra=z(ta),ia=L(ra,!0);j(ra),ra.value=ra.__value=`success`;var aa=z(ra),oa=L(aa,!0);j(aa),aa.value=aa.__value=`warning`;var sa=z(aa),ca=L(sa,!0);j(sa),sa.value=sa.__value=`error`,j(Qi),j(Yi);var la=z(Yi,2),ua=L(la),da=z(ua,2),fa=L(da,!0);j(da),j(la),j(Ji);var pa=z(Ji,2),ma=L(pa),ha=L(ma,!0);j(ma);var ga=z(ma,2);j(pa);var _a=z(pa,2),va=L(_a),ya=L(va,!0);j(va);var ba=z(va,2);j(_a),j(qi);var xa=z(qi,2),Sa=L(xa),Ca=L(Sa),wa=L(Ca),Ta=L(wa,!0);j(wa);var X=z(wa,2),Ea=L(X),Da=L(Ea,!0);j(Ea),Ea.value=Ea.__value=``;var Oa=z(Ea),ka=L(Oa,!0);j(Oa),Oa.value=Oa.__value=`full`;var Aa=z(Oa),ja=L(Aa,!0);j(Aa),Aa.value=Aa.__value=`3/4`;var Ma=z(Aa),Na=L(Ma,!0);j(Ma),Ma.value=Ma.__value=`2/3`;var Pa=z(Ma),Fa=L(Pa,!0);j(Pa),Pa.value=Pa.__value=`1/2`;var Ia=z(Pa),La=L(Ia,!0);j(Ia),Ia.value=Ia.__value=`1/3`;var Ra=z(Ia),za=L(Ra,!0);j(Ra),Ra.value=Ra.__value=`1/4`,j(X),j(Ca);var Ba=z(Ca,2),Va=L(Ba),Ha=L(Va,!0);j(Va);var Ua=z(Va,2),Wa=L(Ua),Ga=L(Wa,!0);j(Wa),Wa.value=Wa.__value=``;var Ka=z(Wa),qa=L(Ka,!0);j(Ka),Ka.value=Ka.__value=`left`;var Ja=z(Ka),Ya=L(Ja,!0);j(Ja),Ja.value=Ja.__value=`center`;var Xa=z(Ja),Za=L(Xa,!0);j(Xa),Xa.value=Xa.__value=`right`,j(Ua),j(Ba),j(Sa);var Qa=z(Sa,2),$a=L(Qa),eo=L($a,!0);j($a);var to=z($a,2);j(Qa);var no=z(Qa,2),ro=L(no),io=L(ro,!0);j(ro);var ao=z(ro,2);j(no),j(xa);var oo=z(xa,2),so=L(oo),co=L(so),lo=L(co),uo=L(lo,!0);j(lo);var fo=z(lo,2),po=L(fo);po.value=po.__value=`2`;var mo=z(po);mo.value=mo.__value=`3`;var ho=z(mo);ho.value=ho.__value=`4`,j(fo),j(co);var go=z(co,2),_o=L(go),vo=L(_o,!0);j(_o);var yo=z(_o,2),bo=L(yo),xo=L(bo,!0);j(bo),bo.value=bo.__value=`center`;var So=z(bo),Co=L(So,!0);j(So),So.value=So.__value=`top`;var wo=z(So),To=L(wo,!0);j(wo),wo.value=wo.__value=`bottom`;var Eo=z(wo),Do=L(Eo,!0);j(Eo),Eo.value=Eo.__value=`stretch`,j(yo),j(go);var Oo=z(go,2),ko=L(Oo),Ao=L(ko,!0);j(ko);var jo=z(ko,2),Mo=L(jo),No=L(Mo,!0);j(Mo),Mo.value=Mo.__value=``;var Po=z(Mo),Fo=L(Po,!0);j(Po),Po.value=Po.__value=`left`;var Io=z(Po),Lo=L(Io,!0);j(Io),Io.value=Io.__value=`center`;var Ro=z(Io),zo=L(Ro,!0);j(Ro),Ro.value=Ro.__value=`right`;var Bo=z(Ro),Vo=L(Bo,!0);j(Bo),Bo.value=Bo.__value=`justify`,j(jo),j(Oo);var Ho=z(Oo,2),Uo=L(Ho),Wo=L(Uo,!0);j(Uo);var Go=z(Uo,2),Ko=L(Go),qo=L(Ko,!0);j(Ko),Ko.value=Ko.__value=`sm`;var Jo=z(Ko),Yo=L(Jo,!0);j(Jo),Jo.value=Jo.__value=`md`;var Xo=z(Jo),Zo=L(Xo,!0);j(Xo),Xo.value=Xo.__value=`lg`,j(Go),j(Ho),j(so);var Qo=z(so,2),$o=L(Qo),es=L($o,!0);j($o);var ts=z($o,2);j(Qo);var ns=z(Qo,2),rs=L(ns,!0);j(ns),j(oo);var is=z(oo,2),as=L(is),os=L(as),ss=L(os),cs=L(ss,!0);j(ss);var ls=z(ss,2),us=L(ls),ds=L(us,!0);j(us),us.value=us.__value=``;var fs=z(us),ps=L(fs,!0);j(fs),fs.value=fs.__value=`compact`;var ms=z(fs),hs=L(ms,!0);j(ms),ms.value=ms.__value=`striped`;var gs=z(ms),_s=L(gs,!0);j(gs),gs.value=gs.__value=`full`,j(ls),j(os);var vs=z(os,2),ys=L(vs),bs=z(ys,2),xs=L(bs,!0);j(bs),j(vs);var Ss=z(vs,2),Cs=L(Ss),ws=L(Cs,!0);j(Cs);var Ts=z(Cs,2),Es=L(Ts),Ds=L(Es,!0);j(Es),Es.value=Es.__value=``;var Os=z(Es),ks=L(Os,!0);j(Os),Os.value=Os.__value=`info`;var As=z(Os),js=L(As,!0);j(As),As.value=As.__value=`success`;var Ms=z(As),Ns=L(Ms,!0);j(Ms),Ms.value=Ms.__value=`warning`;var Ps=z(Ms),Fs=L(Ps,!0);j(Ps),Ps.value=Ps.__value=`danger`;var Is=z(Ps),Ls=L(Is,!0);j(Is),Is.value=Is.__value=`note`,j(Ts),j(Ss);var Rs=z(Ss,2),zs=L(Rs,!0);j(Rs),j(as),Ie(2),j(is);var Bs=z(is,2),Vs=L(Bs),Hs=L(Vs,!0);j(Vs);var Us=z(Vs,4),Ws=L(Us,!0);j(Us),j(Bs);var Gs=z(Bs,2),Ks=L(Gs),qs=L(Ks),Js=L(qs);ki(Js);var Ys=z(Js,2),Xs=L(Ys,!0);j(Ys),j(qs);var Zs=z(qs,2),Qs=L(Zs),$s=z(Qs,2),ec=L($s,!0);j($s),j(Zs),j(Ks);var tc=z(Ks,2),nc=L(tc),rc=L(nc,!0);j(nc);var ic=z(nc,2);j(tc);var ac=z(tc,2),oc=L(ac),sc=L(oc,!0);j(oc);var cc=z(oc,2);j(ac);var lc=z(ac,2),uc=L(lc),dc=L(uc),fc=L(dc,!0);j(dc);var pc=z(dc,2),mc=L(pc,!0);j(pc),j(uc);var hc=z(uc,2);j(lc),j(Gs);var gc=z(Gs,2),_c=L(gc),vc=L(_c),yc=L(vc,!0);j(vc);var bc=z(vc,2),xc=L(bc),Sc=z(xc,2),Cc=z(Sc,2),wc=z(Cc,2),Tc=z(wc,2),Ec=z(Tc,2);j(bc),j(_c);var Dc=z(_c,2),Oc=L(Dc),kc=L(Oc,!0);j(Oc);var Ac=z(Oc,2);j(Dc),j(gc);var jc=z(gc,2),Mc=L(jc),Nc=L(Mc),Pc=L(Nc,!0);j(Nc);var Fc=z(Nc,2),Ic=L(Fc),Lc=z(Ic,2),Rc=z(Lc,2),zc=z(Rc,2),Bc=z(zc,2),Vc=z(Bc,2);j(Fc),j(Mc);var Hc=z(Mc,2),Uc=L(Hc),Wc=L(Uc,!0);j(Uc);var Gc=z(Uc,2);j(Hc),j(jc);var Kc=z(jc,2),qc=L(Kc),Jc=L(qc),Yc=L(Jc,!0);j(Jc);var Xc=z(Jc,2),Zc=L(Xc),Qc=z(Zc,2),$c=L(Qc,!0);j(Qc),j(Xc),j(qc);var el=z(qc,2),tl=L(el);j(el),Ie(2),j(Kc);var nl=z(Kc,2),rl=L(nl),il=L(rl);si(il,()=>Y(`snippet.attachment_help`),!0),j(il);var al=z(il,2);si(al,()=>Y(`snippet.attachment_alt`),!0),j(al),j(rl),j(nl);var ol=z(nl,2),sl=L(ol),cl=L(sl),ll=L(cl,!0);j(cl);var ul=z(cl,2);j(sl),j(ol);var dl=z(ol,2),fl=L(dl),pl=L(fl),ml=L(pl),hl=L(ml,!0);j(ml);var gl=z(ml,2),_l=L(gl,!0);j(gl),j(pl);var vl=z(pl,2);q(vl,23,()=>V(w),e=>e.id,(e,t)=>{var n=af(),r=L(n);ki(r);var i=z(r,2);q(i,21,()=>te,Qr,(e,t)=>{var n=rf(),r=L(n,!0);j(n);var i={};B(e=>{G(r,e),i!==(i=V(t).value)&&(n.value=(n.__value=V(t).value)??``)},[()=>Y(V(t).labelKey)]),W(e,n)}),j(i);var a;Si(i);var o=z(i,2);j(n),B((e,n,s,c,l)=>{Ai(r,V(t).label),J(r,`aria-label`,e),J(r,`placeholder`,n),J(i,`aria-label`,s),a!==(a=V(t).color)&&(i.value=(i.__value=V(t).color)??``,xi(i,V(t).color)),J(o,`aria-label`,c),J(o,`title`,l),o.disabled=V(w).length<=1},[()=>Y(`snippet.kanban_column_name_label`),()=>Y(`snippet.kanban_column_name_placeholder`),()=>Y(`snippet.kanban_column_color_label`),()=>Y(`snippet.kanban_remove_column`),()=>Y(`snippet.kanban_remove_column`)]),H(`input`,r,e=>st(V(t).id,e.currentTarget.value)),H(`change`,i,e=>ct(V(t).id,e.currentTarget.value)),H(`click`,o,()=>ot(V(t).id)),W(e,n)}),j(vl);var yl=z(vl,2),bl=L(yl,!0);j(yl),j(fl),j(dl);var xl=z(dl,2),Sl=L(xl),wl=L(Sl,!0);j(Sl),Ie(2),j(xl);var Tl=z(xl,2),El=L(Tl),Dl=L(El,!0);j(El);var Ol=z(El,2),kl=L(Ol,!0);j(Ol);var Al=z(Ol,2),jl=L(Al,!0);j(Al),j(Tl),j(n),j(t),B((e,t,n,r,i,o,c,u,d,p,h,g,v,y,b,x,S,T,D,te,O,k,A,ie,oe,ce,le,ue,fe,pe,he,_e,ye,be,Se,Ce,we,Ee,Oe,Ae,je,Ne,Pe,Fe,j,Ie,Le,Re,ze,Ve,He,Ue,We,Ge,Ke,Je,Ye,Xe,Ze,Qe,$e,et,tt,rt,at,ot,st,ct,lt,dt,M,pt,mt,ht,gt,_t,vt,N,xt,Ct,Tt,Dt,Ot,kt,Mt,Nt,Pt,It,Lt,Rt,Vt,Ht,Ut,Kt,qt,Xt,Zt,P,F,$t,en,tn,nn,rn,on,sn,cn,ln,fn,pn,L,R,z,hn,_n,vn,yn,bn,Sn,Cn,wn,Dn,On,kn,jn,Nn,Pn,Fn,B,In,zn,Bn,Vn,Wn,Gn,Kn,qn,Yn,Zn,Qn,$n,er,nr,rr,ar,sr,lr,dr,pr,hr,_r,vr,br,xr,Cr,Tr,Dr,kr,jr,Mr,H,Fr,Ir,Lr,zr,Br,Vr,Ur,W,Gr,Yr,K,Xr,Qr,ei,ti,q,ni,ii,oi,si,ui,di,mi,hi,gi,yi,xi,Si,Ci,wi,Di,Oi,ki,Mi,Pi,Fi,Ri,zi,Vi,Hi,Wi,Ki,qi,Ji,Yi,Xi)=>{G(a,e),J(s,`placeholder`,t),G(l,n),G(f,r),G(_,i),G(C,o),G(E,c),G(ee,u),G(ne,d),G(re,p),G(ae,h),G(se,g),G(de,v),G(me,y),G(ge,b),G(ve,x),G(xe,S),G(Te,T),G(De,D),G(ke,te),G(Me,O),G(Be,k),G(qe,A),G(nt,ie),G(it,oe),G(ut,ce),G(ft,le),G(yt,ue),G(bt,fe),G(St,pe),G(wt,he),G(Et,_e),G(At,ye),J(jt,`placeholder`,be),G(Ft,Se),G(zt,Ce),J(Bt,`placeholder`,we),G(Wt,Ee),J(Gt,`placeholder`,Oe),G(Jt,Ae),J(Yt,`placeholder`,je),G(Qt,Ne),G(I,Pe),G(an,Fe),G(un,j),J(dn,`placeholder`,Ie),G(mn,Le),G(gn,Re),G(xn,ze),G(Tn,Ve),J(En,`placeholder`,He),G(An,Ue),G(Mn,We),G(Ln,Ge),J(Rn,`placeholder`,Ke),G(Hn,Je),J(Un,`placeholder`,Ye),G(Jn,Xe),G(Xn,Ze),G(tr,Qe),G(ir,$e),G(or,et),G(cr,tt),G(ur,rt),G(fr,at),G(mr,ot),G(gr,st),G(yr,ct),G(Sr,lt),G(wr,dt),G(Er,M),G(Or,pt),G(Ar,mt),G(Nr,ht),J(Pr,`placeholder`,gt),G(Rr,_t),G(U,vt),G(Hr,N),G(Wr,xt),G(Kr,Ct),Jr=vi(qr,1,`space-y-3`,null,Jr,{hidden:V(m)!==`pie`}),G(Zr,Tt),Ai($r,Dt),J($r,`placeholder`,Ot),G(ri,kt),G(ai,` ${Mt??``}`),li=vi(ci,1,`space-y-3`,null,li,{hidden:V(m)!==`timeline`}),G(fi,Nt),Ai(pi,Pt),J(pi,`placeholder`,It),G(_i,Lt),G(bi,` ${Rt??``}`),Ei=vi(Ti,1,`space-y-3`,null,Ei,{hidden:V(m)!==`tree-view`}),G(ji,Vt),G(Ni,` ${Ht??``}`),Li=vi(Ii,1,`space-y-3`,null,Li,{hidden:V(m)!==`sequence`}),G(Bi,Ut),G(Ui,` ${Kt??``}`),G(Gi,` ${qt??``}`),G(Zi,Xt),G(ea,Zt),G(na,P),G(ia,F),G(oa,$t),G(ca,en),G(fa,tn),G(ha,nn),J(ga,`placeholder`,rn),G(ya,on),J(ba,`placeholder`,sn),G(Ta,cn),G(Da,ln),G(ka,fn),G(ja,pn),G(Na,L),G(Fa,R),G(La,z),G(za,hn),G(Ha,_n),G(Ga,vn),G(qa,yn),G(Ya,bn),G(Za,Sn),G(eo,Cn),J(to,`placeholder`,wn),G(io,Dn),J(ao,`placeholder`,On),G(uo,kn),G(vo,jn),G(xo,Nn),G(Co,Pn),G(To,Fn),G(Do,B),G(Ao,In),G(No,zn),G(Fo,Bn),G(Lo,Vn),G(zo,Wn),G(Vo,Gn),G(Wo,Kn),G(qo,qn),G(Yo,Yn),G(Zo,Zn),G(es,Qn),J(ts,`placeholder`,$n),G(rs,er),G(cs,nr),G(ds,rr),G(ps,ar),G(hs,sr),G(_s,lr),G(xs,dr),G(ws,pr),G(Ds,hr),G(ks,_r),G(js,vr),G(Ns,br),G(Fs,xr),G(Ls,Cr),G(zs,Tr),G(Hs,Dr),G(Ws,kr),G(Xs,jr),G(ec,Mr),G(rc,H),G(sc,Fr),J(cc,`placeholder`,Ir),G(fc,Lr),G(mc,zr),G(yc,Br),J(xc,`title`,Vr),J(xc,`aria-label`,Ur),J(Sc,`title`,W),J(Sc,`aria-label`,Gr),J(Cc,`title`,Yr),J(Cc,`aria-label`,K),J(wc,`title`,Xr),J(wc,`aria-label`,Qr),J(Tc,`title`,ei),J(Tc,`aria-label`,ti),J(Ec,`title`,q),J(Ec,`aria-label`,ni),G(kc,ii),J(Ac,`placeholder`,oi),G(Pc,si),J(Ic,`title`,ui),J(Ic,`aria-label`,di),J(Lc,`title`,mi),J(Lc,`aria-label`,hi),J(Rc,`title`,gi),J(Rc,`aria-label`,yi),J(zc,`title`,xi),J(zc,`aria-label`,Si),J(Bc,`title`,Ci),J(Bc,`aria-label`,wi),J(Vc,`title`,Di),J(Vc,`aria-label`,Oi),G(Wc,ki),J(Gc,`placeholder`,Mi),G(Yc,Pi),G($c,Fi),J(tl,`placeholder`,Ri),G(ll,zi),J(ul,`placeholder`,Vi),G(hl,Hi),gl.disabled=V(w).length>=6,G(_l,Wi),G(bl,Ki),G(wl,qi),G(Dl,Ji),G(kl,Yi),G(jl,Xi)},[()=>Y(`snippet.modal_title`),()=>Y(`snippet.picker_search_placeholder`),()=>Y(`snippet.picker_no_results`),()=>Y(`snippet.picker_back`),()=>Y(`snippet.type_label`),()=>Y(`snippet.diagram`),()=>Y(`snippet.heading_1`),()=>Y(`snippet.heading_2`),()=>Y(`snippet.heading_3`),()=>Y(`snippet.heading_4`),()=>Y(`snippet.collapsible`),()=>Y(`snippet.link`),()=>Y(`snippet.link_doc`),()=>Y(`snippet.link_anchor`),()=>Y(`snippet.link_doc_anchor`),()=>Y(`snippet.numbered_list`),()=>Y(`snippet.bullet_list`),()=>Y(`snippet.code_block`),()=>Y(`snippet.mermaid`),()=>Y(`snippet.blockquote`),()=>Y(`snippet.separator`),()=>Y(`snippet.image`),()=>Y(`snippet.table`),()=>Y(`snippet.tree`),()=>Y(`snippet.colored_section`),()=>Y(`snippet.colored_text`),()=>Y(`snippet.emojis`),()=>Y(`snippet.attachment`),()=>Y(`snippet.local_search`),()=>Y(`snippet.compare`),()=>Y(`snippet.columns`),()=>Y(`snippet.kanban`),()=>Y(`snippet.heading_text_label`),()=>Y(`snippet.heading_text_placeholder`),()=>Y(`snippet.collapsible_summary_label`),()=>Y(`snippet.collapsible_body_label`),()=>Y(`snippet.collapsible_body_placeholder`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_text_placeholder`),()=>Y(`snippet.link_url_label`),()=>Y(`snippet.link_url_placeholder`),()=>Y(`snippet.link_doc_label`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_doc_text_hint`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_section_placeholder`),()=>Y(`snippet.link_anchor_label`),()=>Y(`snippet.link_anchor_select_hint`),()=>Y(`snippet.link_target_doc_label`),()=>Y(`snippet.link_text_label`),()=>Y(`snippet.link_section_placeholder`),()=>Y(`snippet.link_anchor_label`),()=>Y(`snippet.link_anchor_select_hint`),()=>Y(`snippet.ordered_list_content_label`),()=>Y(`snippet.ordered_list_content_placeholder`),()=>Y(`snippet.unordered_list_content_label`),()=>Y(`snippet.unordered_list_content_placeholder`),()=>Y(`snippet.code_lang_label`),()=>Y(`snippet.code_lang_hint`),()=>Y(`snippet.code_width_label`),()=>Y(`snippet.code_width_default`),()=>Y(`snippet.code_width_full`),()=>Y(`snippet.code_width_three_quarters`),()=>Y(`snippet.code_width_two_thirds`),()=>Y(`snippet.code_width_half`),()=>Y(`snippet.code_width_third`),()=>Y(`snippet.code_width_quarter`),()=>Y(`snippet.code_align_label`),()=>Y(`snippet.code_align_default`),()=>Y(`snippet.code_align_left`),()=>Y(`snippet.code_align_center`),()=>Y(`snippet.code_align_right`),()=>Y(`snippet.code_layout_hint`),()=>Y(`snippet.code_content_label`),()=>Y(`snippet.code_content_placeholder`),()=>Y(`snippet.mermaid_builder_type_label`),()=>Y(`snippet.mermaid_type_pie`),()=>Y(`snippet.mermaid_type_timeline`),()=>Y(`snippet.mermaid_type_tree_view`),()=>Y(`snippet.mermaid_type_sequence`),()=>Y(`snippet.mermaid_pie_title_label`),()=>Re(),()=>Y(`snippet.mermaid_pie_title_placeholder`),()=>Y(`snippet.mermaid_pie_items_label`),()=>Y(`snippet.mermaid_pie_add_item`),()=>Y(`snippet.mermaid_timeline_title_label`),()=>ze(),()=>Y(`snippet.mermaid_timeline_title_placeholder`),()=>Y(`snippet.mermaid_timeline_items_label`),()=>Y(`snippet.mermaid_timeline_add_item`),()=>Y(`snippet.mermaid_tree_items_label`),()=>Y(`snippet.mermaid_tree_add_item`),()=>Y(`snippet.mermaid_sequence_items_label`),()=>Y(`snippet.mermaid_sequence_add_message`),()=>Y(`snippet.mermaid_sequence_add_note`),()=>Y(`snippet.blockquote_type_label`),()=>Y(`snippet.blockquote_type_none`),()=>Y(`snippet.blockquote_type_info`),()=>Y(`snippet.blockquote_type_success`),()=>Y(`snippet.blockquote_type_warning`),()=>Y(`snippet.blockquote_type_error`),()=>Y(`snippet.blockquote_icon_label`),()=>Y(`snippet.blockquote_title_label`),()=>Y(`snippet.blockquote_title_placeholder`),()=>Y(`snippet.blockquote_content_label`),()=>Y(`snippet.blockquote_content_placeholder`),()=>Y(`snippet.image_width_label`),()=>Y(`snippet.image_width_default`),()=>Y(`snippet.image_width_full`),()=>Y(`snippet.image_width_three_quarters`),()=>Y(`snippet.image_width_two_thirds`),()=>Y(`snippet.image_width_half`),()=>Y(`snippet.image_width_third`),()=>Y(`snippet.image_width_quarter`),()=>Y(`snippet.image_align_label`),()=>Y(`snippet.image_align_default`),()=>Y(`snippet.image_align_left`),()=>Y(`snippet.image_align_center`),()=>Y(`snippet.image_align_right`),()=>Y(`snippet.image_alt_label`),()=>Y(`snippet.image_alt_placeholder`),()=>Y(`snippet.image_url_label`),()=>Y(`snippet.image_src_placeholder`),()=>Y(`snippet.columns_count_label`),()=>Y(`snippet.columns_valign_label`),()=>Y(`snippet.columns_valign_center`),()=>Y(`snippet.columns_valign_top`),()=>Y(`snippet.columns_valign_bottom`),()=>Y(`snippet.columns_valign_stretch`),()=>Y(`snippet.columns_text_label`),()=>Y(`snippet.columns_text_default`),()=>Y(`snippet.columns_text_left`),()=>Y(`snippet.columns_text_center`),()=>Y(`snippet.columns_text_right`),()=>Y(`snippet.columns_text_justify`),()=>Y(`snippet.columns_gap_label`),()=>Y(`snippet.columns_gap_sm`),()=>Y(`snippet.columns_gap_md`),()=>Y(`snippet.columns_gap_lg`),()=>Y(`snippet.columns_ratio_label`),()=>Y(`snippet.columns_ratio_placeholder`),()=>Y(`snippet.columns_hint`),()=>Y(`snippet.table_style_label`),()=>Y(`snippet.table_style_default`),()=>Y(`snippet.table_style_compact`),()=>Y(`snippet.table_style_striped`),()=>Y(`snippet.table_style_full`),()=>Y(`snippet.table_border_label`),()=>Y(`snippet.table_color_label`),()=>Y(`snippet.table_color_default`),()=>Y(`snippet.table_color_info`),()=>Y(`snippet.table_color_success`),()=>Y(`snippet.table_color_warning`),()=>Y(`snippet.table_color_danger`),()=>Y(`snippet.table_color_note`),()=>Y(`snippet.table_keyboard_hint`),()=>Y(`snippet.tree_hint`),()=>Y(`snippet.tree_add_btn`),()=>Y(`snippet.diagram_existing`),()=>Y(`snippet.diagram_new`),()=>Y(`snippet.diagram_select_label`),()=>Y(`snippet.diagram_name_label`),()=>Y(`snippet.diagram_name_placeholder`),()=>Y(`snippet.diag_img_label`),()=>Y(`snippet.diag_img_saved_hint`),()=>Y(`snippet.colored_section_color_label`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_section_content_label`),()=>Y(`snippet.colored_section_content_placeholder`),()=>Y(`snippet.colored_text_color_label`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_info`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_success`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_warning`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_danger`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_note`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_section_swatch_neutral`),()=>Y(`snippet.colored_text_content_label`),()=>Y(`snippet.colored_text_content_placeholder`),()=>Y(`snippet.emoji_selected_label`),()=>Y(`snippet.emoji_clear_btn`),()=>Y(`snippet.emoji_search_placeholder`),()=>Y(`snippet.compare_content_label`),()=>Y(`snippet.compare_content_placeholder`),()=>Y(`snippet.kanban_columns_label`),()=>Y(`snippet.kanban_add_column`),()=>Y(`snippet.kanban_columns_hint`),()=>Y(`snippet.markdown_preview_label`),()=>Y(`snippet.inline_delete_btn`),()=>Y(`common.cancel`),()=>Y(`snippet.insert_btn`)]),H(`click`,t,e=>{e.target===e.currentTarget&&ht()}),H(`input`,s,le),H(`keydown`,s,ue),H(`click`,u,fe),H(`change`,y,Ne),H(`input`,jt,M),H(`input`,It,M),H(`input`,Bt,M),H(`input`,Gt,M),H(`input`,Yt,M),H(`change`,$t,M),H(`input`,on,M),H(`input`,dn,M),H(`change`,_n,M),H(`change`,Sn,je),H(`input`,En,M),H(`change`,Nn,M),H(`input`,Rn,M),H(`input`,Un,M),H(`input`,Zn,M),H(`change`,nr,M),H(`change`,br,M),H(`input`,Pr,M),H(`change`,zr,He),Ci(zr,()=>V(m),e=>F(m,e)),H(`input`,$r,M),H(`click`,ii,Ue),H(`input`,pi,M),H(`click`,yi,Ke),H(`click`,Mi,Xe),H(`click`,Hi,$e),H(`click`,Wi,et),H(`change`,Qi,mt),H(`change`,ua,M),H(`input`,ga,M),H(`input`,ba,M),H(`change`,X,M),H(`change`,Ua,M),H(`input`,to,M),H(`input`,ao,M),H(`change`,fo,M),H(`change`,yo,M),H(`change`,jo,M),H(`change`,Go,M),H(`input`,ts,M),H(`change`,ls,pt),H(`change`,ys,pt),H(`change`,Ts,pt),H(`click`,Us,()=>Cl(k)),H(`change`,Js,Fe),H(`change`,Qs,Fe),H(`change`,ic,()=>{Le(),M()}),H(`input`,cc,()=>{Le(),M()}),H(`input`,hc,M),H(`click`,xc,e=>Se(e.currentTarget)),H(`click`,Sc,e=>Se(e.currentTarget)),H(`click`,Cc,e=>Se(e.currentTarget)),H(`click`,wc,e=>Se(e.currentTarget)),H(`click`,Tc,e=>Se(e.currentTarget)),H(`click`,Ec,e=>Se(e.currentTarget)),H(`input`,Ac,M),H(`click`,Ic,e=>Ce(e.currentTarget)),H(`click`,Lc,e=>Ce(e.currentTarget)),H(`click`,Rc,e=>Ce(e.currentTarget)),H(`click`,zc,e=>Ce(e.currentTarget)),H(`click`,Bc,e=>Ce(e.currentTarget)),H(`click`,Vc,e=>Ce(e.currentTarget)),H(`input`,Gc,M),H(`input`,Zc,M),H(`click`,Qc,be),H(`input`,ul,M),H(`click`,gl,at),H(`click`,El,vt),H(`click`,Ol,ht),H(`click`,Al,_t),W(e,t)};K(jt,e=>{t.open&&e(Mt)}),Ui(Xd(z(jt,2),{}),e=>F(d,e,!0),()=>V(d)),W(e,At),Je()}Pr([`click`,`input`,`keydown`,`change`]);var lf=new Set([`anchor-doc-link`,`doc-link`,`anchor-link`,`image`,`link`,`collapsible`,`colored-text`,`colored-section`,`tree`,`code-block`,`table`,`blockquote`,`separator`,`ordered-list`,`unordered-list`,`heading-1`,`heading-2`,`heading-3`,`heading-4`,`compare`,`kanban`]),uf={table:{labelKey:`snippet.inline_edit_btn_table`,iconClass:`fa-solid fa-table-cells`},"code-block":{labelKey:`snippet.inline_edit_btn_code_block`,iconClass:`fa-solid fa-code`},blockquote:{labelKey:`snippet.inline_edit_btn_blockquote`,iconClass:`fa-solid fa-quote-right`},"ordered-list":{labelKey:`snippet.inline_edit_btn_ordered_list`,iconClass:`fa-solid fa-list-ol`},"unordered-list":{labelKey:`snippet.inline_edit_btn_unordered_list`,iconClass:`fa-solid fa-list-ul`},tree:{labelKey:`snippet.inline_edit_btn_tree`,iconClass:`fa-solid fa-folder-tree`},"colored-section":{labelKey:`snippet.inline_edit_btn_colored_section`,iconClass:`fa-solid fa-fill-drip`},"colored-text":{labelKey:`snippet.inline_edit_btn_colored_text`,iconClass:`fa-solid fa-highlighter`},collapsible:{labelKey:`snippet.inline_edit_btn_collapsible`,iconClass:`fa-solid fa-caret-right`},link:{labelKey:`snippet.inline_edit_btn_link`,iconClass:`fa-solid fa-link`},"doc-link":{labelKey:`snippet.inline_edit_btn_doc_link`,iconClass:`fa-solid fa-file-lines`},"anchor-link":{labelKey:`snippet.inline_edit_btn_anchor_link`,iconClass:`fa-solid fa-anchor`},"anchor-doc-link":{labelKey:`snippet.inline_edit_btn_anchor_doc_link`,iconClass:`fa-solid fa-anchor`},image:{labelKey:`snippet.inline_edit_btn_image`,iconClass:`fa-solid fa-image`},separator:{labelKey:`snippet.inline_edit_btn_separator`,iconClass:`fa-solid fa-minus`},"heading-1":{labelKey:`snippet.inline_edit_btn_heading_1`,iconClass:`fa-solid fa-heading`},"heading-2":{labelKey:`snippet.inline_edit_btn_heading_2`,iconClass:`fa-solid fa-heading`},"heading-3":{labelKey:`snippet.inline_edit_btn_heading_3`,iconClass:`fa-solid fa-heading`},"heading-4":{labelKey:`snippet.inline_edit_btn_heading_4`,iconClass:`fa-solid fa-heading`},compare:{labelKey:`snippet.inline_edit_btn_compare`,iconClass:`fa-solid fa-table-columns`},kanban:{labelKey:`snippet.inline_edit_btn_kanban`,iconClass:`fa-solid fa-table-columns`}};function df(e){return uf[e]||{labelKey:`snippet.inline_edit_btn`,iconClass:`fa-solid fa-pen-to-square`}}var ff={table:`snippet.inline_delete_btn_table`,"code-block":`snippet.inline_delete_btn_code_block`,blockquote:`snippet.inline_delete_btn_blockquote`,"ordered-list":`snippet.inline_delete_btn_ordered_list`,"unordered-list":`snippet.inline_delete_btn_unordered_list`,tree:`snippet.inline_delete_btn_tree`,"colored-section":`snippet.inline_delete_btn_colored_section`,"colored-text":`snippet.inline_delete_btn_colored_text`,collapsible:`snippet.inline_delete_btn_collapsible`,link:`snippet.inline_delete_btn_link`,"doc-link":`snippet.inline_delete_btn_doc_link`,"anchor-link":`snippet.inline_delete_btn_anchor_link`,"anchor-doc-link":`snippet.inline_delete_btn_anchor_doc_link`,image:`snippet.inline_delete_btn_image`,separator:`snippet.inline_delete_btn_separator`,"heading-1":`snippet.inline_delete_btn_heading_1`,"heading-2":`snippet.inline_delete_btn_heading_2`,"heading-3":`snippet.inline_delete_btn_heading_3`,"heading-4":`snippet.inline_delete_btn_heading_4`,compare:`snippet.inline_delete_btn_compare`,kanban:`snippet.inline_delete_btn_kanban`};function pf(e){return{labelKey:ff[e]||`snippet.inline_delete_btn`,iconClass:`fa-solid fa-trash`}}var mf=[{types:[`collapsible`],selector:`details`},{types:[`colored-section`],selector:`div[style*="border-left"]`},{types:[`colored-text`],selector:`span[style*="color"]`},{types:[`tree`,`code-block`],selector:`pre, .mermaid`},{types:[`table`],selector:`table`},{types:[`blockquote`],selector:`blockquote`},{types:[`separator`],selector:`hr`},{types:[`ordered-list`],selector:`ol`},{types:[`unordered-list`],selector:`ul`},{types:[`heading-1`],selector:`h1`},{types:[`heading-2`],selector:`h2`},{types:[`heading-3`],selector:`h3`},{types:[`heading-4`],selector:`h4`},{types:[`image`],selector:`img`},{types:[`compare`],selector:`.ld-compare`},{types:[`kanban`],selector:`[data-ld-kanban-root]`},{types:[`anchor-doc-link`,`doc-link`,`anchor-link`,`link`],selector:`a[href]`}],hf=null;function gf(e,t){return e.start===t.start&&e.end===t.end?!0:e.start>=t.start&&e.end<=t.end||t.start>=e.start&&t.end<=e.end?!1:e.start<t.end&&t.start<e.end}function _f(e,t,n){if(!n?.trim())return;let r=Gd(n);if(!r||!lf.has(r))return;let i=t+n.length,a={start:t,end:i,type:r};e.some(e=>!!(gf(e,a)||(e.type===`code-block`||e.type===`compare`)&&t>=e.start&&i<=e.end))||e.push(a)}function vf(e,t,n,r=0){for(let i of t.matchAll(n)){let t=i[r];_f(e,i.index+(r>0?i[0].indexOf(t):0),t)}}function yf(e,t){let n=/^:::compare[ \t]*\n[\s\S]*?^:::[ \t]*$/gm,r;for(;r=n.exec(t);){let t=r[0];if(!t.trim()){t.length===0&&(n.lastIndex+=1);continue}let i=r.index,a={start:i,end:i+t.length,type:`compare`};e.some(e=>gf(e,a))||e.push(a)}}function bf(e,t){let n=RegExp(`^${Bc()}`,`gm`),r;for(;r=n.exec(t);){let t=r[0];if(!t.trim()){t.length===0&&(n.lastIndex+=1);continue}let i=Gd(t);if(!i||!lf.has(i))continue;let a=t.match(/^([ \t]*)(?:<!--|```)/)?.[1]||``,o=r.index,s={start:o,end:o+t.length,type:i,indent:a};e.some(e=>gf(e,s))||e.push(s)}}function xf(e,t){let n=`(?:>[ \\t]?)+`,r=RegExp(`(?:^${n}<!--\\s*table-(?:style|border|color):[^\\n]*-->\\n)*^${n}\\|[^\\n]*\\|\\n${n}\\|[ \\t:|-]*-[ \\t:|-]*\\|(?:\\n${n}\\|[^\\n]*\\|)*`,`gm`);for(let n of t.matchAll(r)){let t=n[0],r=t.match(/^(?:>[ \t]?)+/)?.[0]??`> `,i=n.index,a=i+t.length,o={start:i,end:a,type:`table`,indent:r};e.some(e=>!!(gf(e,o)||(e.type===`code-block`||e.type===`compare`)&&i>=e.start&&a<=e.end))||e.push(o)}}function Sf(e){let t=[];vf(t,e,/<details[\s\S]*?<\/details>/gi),vf(t,e,/<div\b[^>]*border-left[^>]*>[\s\S]*?<\/div>/gi),yf(t,e),vf(t,e,/^<div\s+data-ld-kanban\b[^\n]*<\/div>[ \t]*$/gim),bf(t,e),vf(t,e,/(?:^|\n\n)(#{1,4} [^\n]+)/g,1),vf(t,e,/<span\b[^>]*color:[^>]*>[\s\S]*?<\/span>/gi),vf(t,e,RegExp(`(?:^|\\n)((${$s()}))`,`g`),1),xf(t,e),vf(t,e,RegExp(`(?:^|\\n)((${xc()}))`,`g`),1),vf(t,e,jl()),vf(t,e,Ml()),vf(t,e,RegExp(`(?:^|\\n)((${kc()}))`,`g`),1),vf(t,e,/\[[^\]\n]+\]\([^)]+\)/g);let n=e.match(/^---\s*\n[\s\S]*?\n---/);return vf(t,e,/^---$/gm),t.filter(e=>e.type===`separator`?!n||e.start>n[0].length:!0).sort((e,t)=>e.start-t.start)}function Cf(e,t){return Array.from(e.querySelectorAll(t)).filter(e=>!e.parentElement?.closest(`ol, ul`))}function wf(e,t){e.querySelectorAll(`[data-inline-snippet-index]`).forEach(e=>{e.removeAttribute(`data-inline-snippet-index`),e.classList.remove(`ld-inline-snippet-target`)});for(let{types:n,selector:r}of mf){let i=t.filter(e=>n.includes(e.type));if(!i.length)continue;let a=r===`ol`||r===`ul`?Cf(e,r):Array.from(e.querySelectorAll(r)).filter(e=>!e.closest(`.ld-compare-render`)),o=Math.min(i.length,a.length);for(let e=0;e<o;e+=1)a[e].dataset.inlineSnippetIndex=String(t.indexOf(i[e])),a[e].classList.add(`ld-inline-snippet-target`)}}function Tf(){hf&&=(hf.remove(),null)}function Ef(e,t){Tf();let n=Array.isArray(t)?t:[t],r=n[0]||{},i=document.createElement(`div`);i.id=`inline-snippet-popup`,r.dataAction&&(i.dataset.action=r.dataAction),r.dataType&&(i.dataset.snippetType=r.dataType),i.className=`fixed z-50 flex flex-col rounded-lg border border-blue-200 dark:border-blue-800 bg-white dark:bg-gray-900 shadow-lg p-1`,i.style.position=`fixed`,i.style.display=`flex`,i.style.flexDirection=`column`,i.style.width=`max-content`,i.style.zIndex=`50`;for(let e of n){let t=e.dataAction===`delete`,n=document.createElement(`button`);n.type=`button`,e.dataAction&&(n.dataset.action=e.dataAction),n.className=`inline-flex items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold `+(t?`text-red-700 dark:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/30`:`text-blue-700 dark:text-blue-300 hover:bg-blue-50 dark:hover:bg-blue-900/30`);let r=document.createElement(`i`);r.className=e.iconClass,r.setAttribute(`aria-hidden`,`true`);let a=document.createElement(`span`);a.textContent=Y(e.labelKey),n.append(r,a),n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),Tf(),e.onActivate()}),i.appendChild(n)}document.body.appendChild(i);let a=i.getBoundingClientRect(),o=Math.min(window.innerWidth-a.width-8,Math.max(8,e.clientX)),s=Math.max(8,e.clientY-a.height-8);i.style.left=`${o}px`,i.style.top=`${s}px`,hf=i}function Df(e,t){let n=t instanceof Element?t:null;for(;n?.parentElement&&n.parentElement!==e;)n=n.parentElement;return!n||n===e||n.parentElement!==e?null:n}function Of(e,t){let n=e?.closest(`th, td`);if(!n||!t.contains(n))return null;let r=n.closest(`tr`);if(!r)return null;let i=Array.from(t.querySelectorAll(`tr`)).indexOf(r),a=Array.from(r.children).indexOf(n);return i<0||a<0?null:{row:i,col:a}}function kf(e,t){if(typeof t!=`number`)return null;let n=Array.from(e.children);if(!n.length)return null;let r=null,i=null;for(let e of n){let n=e.getBoundingClientRect();if(n.bottom<t)r=e;else if(n.top>t)i||=e;else return e}return r||i}function Af(e,t,n){if(t.matches(`[data-inline-snippet-index]`)){let e=n[Number(t.dataset.inlineSnippetIndex)];if(e)return e.end}let r=null,i=Array.from(t.querySelectorAll(`[data-inline-snippet-index]`));if(i.length>0){let e=-1;for(let t of i){let r=n[Number(t.dataset.inlineSnippetIndex)];r&&r.end>e&&(e=r.end)}e>=0&&(r=e)}else{let n=(t.textContent||``).trim();if(n){let t=n.split(`
|
|
84
84
|
`)[0].trim().slice(0,60);if(t){let n=e.indexOf(t);n>=0&&(r=n)}}}if(r===null)return null;let a=e.indexOf(`
|
|
85
85
|
|
|
86
|
-
`,r);return a>=0?a:e.length}function
|
|
87
|
-
`)[0].trim().slice(0,60);if(t){let n=e.indexOf(t);if(n>=0)return n}}return null}function
|
|
86
|
+
`,r);return a>=0?a:e.length}function jf(e,t,n){if(t.matches(`[data-inline-snippet-index]`)){let e=n[Number(t.dataset.inlineSnippetIndex)];if(e)return e.start}let r=Array.from(t.querySelectorAll(`[data-inline-snippet-index]`));if(r.length>0){let e=1/0;for(let t of r){let r=n[Number(t.dataset.inlineSnippetIndex)];r&&r.start<e&&(e=r.start)}if(e<1/0)return e}let i=(t.textContent||``).trim();if(i){let t=i.split(`
|
|
87
|
+
`)[0].trim().slice(0,60);if(t){let n=e.indexOf(t);if(n>=0)return n}}return null}function Mf(e,t,n,r,i){let a=Df(t,n)||kf(t,i);if(!a)return e.length;let o=Af(e,a,r);if(o!==null)return o;let s=a.previousElementSibling;for(;s;){let t=Af(e,s,r);if(t!==null){let n=e.indexOf(`
|
|
88
88
|
|
|
89
|
-
`,t+1);return n>=0?n:e.length}s=s.previousElementSibling}let c=a.nextElementSibling;for(;c;){let t=
|
|
89
|
+
`,t+1);return n>=0?n:e.length}s=s.previousElementSibling}let c=a.nextElementSibling;for(;c;){let t=jf(e,c,r);if(t!==null){let n=e.lastIndexOf(`
|
|
90
90
|
|
|
91
|
-
`,t);return n>=0?n:0}c=c.nextElementSibling}return e.length}function Af(e,t,n){if(!e||typeof t!=`string`)return()=>{};let r=yf(t);xf(e,r);let i=i=>{let a=i.target?.closest(`[data-inline-snippet-index]`);if(a&&e.contains(a)){let e=r[Number(a.dataset.inlineSnippetIndex)];if(!e)return;i.preventDefault();let t=cf(e.type),o=uf(e.type);Cf(i,[{iconClass:t.iconClass,labelKey:t.labelKey,dataAction:`edit`,dataType:e.type,onActivate:()=>n.onEdit(e)},{iconClass:o.iconClass,labelKey:o.labelKey,dataAction:`delete`,dataType:e.type,onActivate:()=>n.onDelete(e)}]);return}if(!e.contains(i.target))return;let o=kf(t,e,i.target,r,i.clientY);o!==null&&(i.preventDefault(),Cf(i,{iconClass:`fa-solid fa-plus`,labelKey:`snippet.inline_insert_btn`,dataAction:`insert`,onActivate:()=>n.onInsert(o)}))};e.addEventListener(`contextmenu`,i);let a=t=>{let i=t.target?.closest(`[data-inline-snippet-index]`);if(!i||!e.contains(i))return;let a=r[Number(i.dataset.inlineSnippetIndex)];a?.type===`table`&&(t.preventDefault(),t.stopPropagation(),Sf(),n.onEdit({...a,tableFocusCell:Tf(t.target,i)||void 0}))};e.addEventListener(`dblclick`,a);let o=e.closest(`#home-content-area`)||e.closest(`main`),s=null;o&&(s=r=>{r.defaultPrevented||e.offsetParent!==null&&(r.target?.closest(`textarea, input, [data-inline-snippet-index]`)||e.contains(r.target)||(r.preventDefault(),Cf(r,{iconClass:`fa-solid fa-plus`,labelKey:`snippet.inline_insert_btn`,dataAction:`insert`,onActivate:()=>n.onInsert(t.length)})))},o.addEventListener(`contextmenu`,s));let c=e=>{ff&&!ff.contains(e.target)&&Sf()},l=e=>{e.key===`Escape`&&Sf()};return document.addEventListener(`click`,c),document.addEventListener(`keydown`,l),()=>{e.removeEventListener(`contextmenu`,i),e.removeEventListener(`dblclick`,a),o&&s&&o.removeEventListener(`contextmenu`,s),document.removeEventListener(`click`,c),document.removeEventListener(`keydown`,l),Sf(),e.querySelectorAll(`[data-inline-snippet-index]`).forEach(e=>{e.removeAttribute(`data-inline-snippet-index`),e.classList.remove(`ld-inline-snippet-target`)})}}var jf=200*1024*1024,Mf=Math.round(jf/1024/1024);Math.ceil(jf*1.4);var Nf=U(`<textarea id="doc-editor" data-testid="doc-editor" spellcheck="false" class="w-full min-h-[70vh] px-4 py-3 text-sm font-mono leading-relaxed rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y"></textarea>`),Pf=U(`<div id="doc-content" data-testid="doc-content"></div>`),Ff=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-sm mx-4 p-6 space-y-5"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"> </h3> <div class="space-y-1.5"><label for="img-paste-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> <span class="font-normal text-gray-400"> </span></label> <div class="flex items-center gap-2"><input id="img-paste-name" type="text" class="flex-1 px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="text-xs text-gray-400 shrink-0"> </span></div></div> <div class="flex justify-end gap-3 pt-1"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`),If=U(`<div data-testid="content-lightbox" class="fixed inset-0 z-50 bg-white flex items-center justify-center cursor-pointer p-4"><img data-testid="lightbox-image" class="max-w-full max-h-full object-contain select-none"/> <button class="absolute top-4 right-4 text-gray-500 hover:text-gray-950 text-2xl leading-none">×</button></div>`),Lf=U(`<!> <!> <!> <!>`,1);function Rf(e,t){qe(t,!0);let n=Wi(t,`onopen`,3,()=>{}),r=Wi(t,`onanchor`,3,D),i=Wi(t,`onconfirmdelete`,3,void 0),a=Wi(t,`oncontentwired`,3,void 0),o=Wi(t,`rewireSignal`,3,void 0),s=Wi(t,`editing`,15,!1),c=Wi(t,`saveMsg`,15,null),l=P(null),u=P(null),d=P(``),f=null,p=P(!1),m=P(`insert`),h=P(null),g=P(0),_=P(!1),v=P(``),y=P(`png`),b=null,x=0,S=0,C=P(null),w=P(``),T=/[̀-ͯ]/g;function E(e){return(e||``).normalize(`NFD`).replace(T,``).toLowerCase().replace(/[^a-z0-9]/g,`_`)}function D(e){document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})}Gi(()=>{let e=window;return e.openSnippetsModal=()=>{F(m,`insert`),F(p,!0)},e.openSnippetsModalForInlineInsert=e=>{F(m,`inline-insert`),F(g,Math.max(0,Number(e)||0),!0),F(p,!0)},()=>{delete e.openSnippetsModal,delete e.openSnippetsModalForInlineInsert}}),kn(()=>{if(o(),t.html,t.content,f?.(),f=null,!(s()||!V(l)))return vd(V(l),t.html,{content:t.content,codeBlockMaxHeight:X.codeBlockMaxHeight,t:Y,onDocLink:(e,t)=>n()(e,t),onAnchor:r(),docId:t.docId,docs:X.allDocs,docsFolder:X.docsFolder,folderPaths:X.allFolderPaths,onKanbanDocsChange:e=>{X.allDocs=e},onKanbanFolderPathsChange:e=>{X.allFolderPaths=e}})||(f=Af(V(l),t.content,{onEdit:e=>{F(m,`inline-edit`),F(h,e,!0),F(p,!0)},onInsert:e=>{F(m,`inline-insert`),F(g,e,!0),F(p,!0)},onDelete:async e=>{(i()?await i()():confirm(Y(`snippet.inline_delete_message`)))&&await t.onsave(t.content.slice(0,e.start)+t.content.slice(e.end))}})),a()?.(V(l)),()=>{f?.(),f=null}});function ee(){F(d,t.content,!0),s(!0),c(null),requestAnimationFrame(()=>V(u)?.focus())}function te(){s(!1),c(null)}async function O(){c({text:Y(`doc.saving`),cls:`text-gray-400`});try{await t.onsave(V(d)),s(!1),c(null)}catch(e){c({text:Y(`error.save`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`})}}function k(){F(m,`insert`),F(p,!0)}function ne(){let e=Wu(t.content);e&&(F(m,`inline-edit`),F(h,e,!0),F(p,!0))}function A(){return s()}function re(e){let t=Array.from(e.clipboardData?.items??[]).find(e=>e.type.startsWith(`image/`));if(t){e.preventDefault(),x=V(u).selectionStart,S=V(u).selectionEnd,F(y,t.type.split(`/`)[1].replace(`jpeg`,`jpg`)||`png`,!0);let n=t.getAsFile();if(!n)return;b=n,F(v,E(Date.now().toString()),!0),F(_,!0);return}let n=Array.from(e.clipboardData?.files??[]).filter(e=>!e.type.startsWith(`image/`));if(n.length){e.preventDefault();let t=V(u).selectionStart,r=V(u).selectionEnd;(async()=>{for(let e of n)await le(e,t,r)})()}}function ie(e){let t=Array.from(e.dataTransfer?.files??[]).filter(e=>!e.type.startsWith(`image/`));if(!t.length)return;e.preventDefault(),e.stopPropagation();let n=V(u).selectionStart,r=V(u).selectionEnd;(async()=>{for(let e of t)await le(e,n,r)})()}function ae(e){e.dataTransfer?.types?.includes(`Files`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)}function oe(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}function se(e,t,n){let r=V(d).slice(0,t),i=V(d).slice(n);F(d,r+e+i),requestAnimationFrame(()=>{V(u).selectionStart=V(u).selectionEnd=t+e.length,V(u).focus()})}let ce=jf;async function le(e,n,r){if(e.size>ce){c({text:Y(`doc.file_too_large`)+` (${(e.size/1024/1024).toFixed(1)} MB, max ${Mf} MB)`,cls:`text-red-500 dark:text-red-400`});return}c({text:Y(`doc.uploading_file`),cls:`text-gray-400`});try{let i=await oe(e),a=await fetch(`/api/files/upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:i,name:e.name,documentId:t.docId})});if(!a.ok){let e=``;try{e=(await a.json()).error||``}catch{e=await a.text()}throw Error(e||`HTTP ${a.status}`)}let{url:o,originalName:s}=await a.json();se(`[📎 ${s||e.name}](${o})`,n,r),c(null)}catch(e){c({text:Y(`doc.file_upload_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`})}}function ue(){F(_,!1),b=null}async function de(){let e=E(V(v))||Date.now().toString();if(F(_,!1),b){c({text:Y(`doc.uploading_image`),cls:`text-gray-400`});try{let t=await oe(b),n=await fetch(`/api/images/upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:t,ext:V(y),name:e})});if(!n.ok)throw Error(await n.text());let{filename:r}=await n.json();se(``,x,S),c(null)}catch(e){c({text:Y(`doc.image_upload_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`})}finally{b=null}}}function fe(){F(C,null),F(w,``)}function pe(e){if(!e.shiftKey&&!e.metaKey)return;let t=e.target,n=t.closest(`img`),r=t.closest(`.mermaid`)?.querySelector(`svg`);if(!n&&!r)return;if(e.preventDefault(),e.stopPropagation(),n){F(C,n.src,!0),F(w,n.alt||``,!0);return}let i=new XMLSerializer().serializeToString(r);F(C,`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`),F(w,Y(`doc.mermaid_diagram_alt`),!0)}function me(e){e.key===`Escape`&&V(C)&&fe()}var he={enterEdit:ee,cancelEdit:te,save:O,openSnippets:k,openKanbanColumnsEditor:ne,isEditing:A},ge=Lf();Nr(`keydown`,on,me);var _e=R(ge),ve=e=>{var t=Nf();yn(t),Vi(t,e=>F(u,e),()=>V(u)),Nr(`paste`,t,re),Nr(`drop`,t,ie),Nr(`dragover`,t,ae),Ni(t,()=>V(d),e=>F(d,e)),W(e,t)},ye=e=>{var t=Pf();Vi(t,e=>F(l,e),()=>V(l)),B(()=>gi(t,1,`prose prose-gray dark:prose-invert max-w-none prose-headings:scroll-mt-4 prose-headings:font-semibold prose-h1:text-[2.1875rem] prose-h2:text-[1.8125rem] prose-h3:text-[1.5rem] prose-h4:text-[1.25rem] prose-a:text-blue-600 dark:prose-a:text-blue-400 prose-code:before:content-none prose-code:after:content-none ${X.codeBlockLightTheme?`prose-pre:bg-[#f6f8fa] prose-pre:text-gray-800 prose-pre:border prose-pre:border-gray-200 prose-pre:rounded-lg dark:prose-pre:bg-[#0d1117] dark:prose-pre:text-gray-100 dark:prose-pre:border-gray-700`:`prose-pre:bg-[#0d1117] prose-pre:border prose-pre:border-gray-700`} ${X.imageRoundedCorners?`[&_img]:rounded-xl`:``} ${X.imageCentered?`[&_img]:mx-auto [&_img]:block`:``} ${X.imageBorder?`[&_img]:[box-shadow:0_0_0_1px_rgba(0,0,0,0.10),0_4px_12px_rgba(0,0,0,0.04)] dark:[&_img]:[box-shadow:0_0_0_1px_rgba(255,255,255,0.08),0_4px_12px_rgba(255,255,255,0.25)]`:``}`)),H(`click`,t,pe),W(e,t)};K(_e,e=>{s()?e(ve):e(ye,-1)});var be=z(_e,2);af(be,{get open(){return V(p)},get editor(){return V(u)},get mode(){return V(m)},get docId(){return t.docId},get content(){return t.content},get range(){return V(h)},get insertPos(){return V(g)},get onsave(){return t.onsave},onclose:()=>F(p,!1)});var xe=z(be,2),Se=e=>{var t=Ff(),n=L(t),r=L(n),i=L(r);j(r);var a=z(r,2),o=L(a),s=L(o),c=z(s),l=L(c,!0);j(c),j(o);var u=z(o,2),d=L(u);Di(d);var f=z(d,2),p=L(f);j(f),j(u),j(a);var m=z(a,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),b=L(_,!0);j(_),j(m),j(n),j(t),B((e,t,n,r,a)=>{G(i,`🖼️ ${e??``}`),G(s,`${t??``} `),G(l,n),Oi(d,V(v)),G(p,`.${V(y)??``}`),G(g,r),G(b,a)},[()=>Y(`modal.img_paste.title`),()=>Y(`modal.img_paste.filename_label`),()=>Y(`modal.img_paste.saved_hint`),()=>Y(`common.cancel`),()=>Y(`modal.img_paste.paste_btn`)]),H(`input`,d,e=>F(v,E(e.target.value),!0)),H(`click`,h,ue),H(`click`,_,de),W(e,t)};K(xe,e=>{V(_)&&e(Se)});var Ce=z(xe,2),we=e=>{var t=If(),n=L(t),r=z(n,2);j(t),B(()=>{J(n,`src`,V(C)),J(n,`alt`,V(w))}),H(`click`,t,fe),H(`click`,n,e=>e.stopPropagation()),H(`click`,r,fe),W(e,t)};return K(Ce,e=>{V(C)&&e(we)}),W(e,ge),Je(he)}Pr([`click`,`input`]);var zf=U(`<span> </span> <code> </code>`,1),Bf=U(`<button type="button" data-testid="bp-copy-doc-id"><i aria-hidden="true"></i></button>`),Vf=U(`<button class="bpadr-icon-btn" data-testid="bp-edit" type="button">✏️</button> <button class="bpadr-icon-btn" data-testid="bp-delete" type="button">🗑️</button>`,1),Hf=U(`<span> </span>`),Uf=U(`<footer class="bpadr-footer bpadr-doc-footer"><!> <button type="button" class="bpadr-btn-ghost" data-testid="bp-cancel"> </button> <button type="button" class="bpadr-btn-ghost" data-testid="bp-snippets"> </button> <button type="button" class="bpadr-btn-primary" data-testid="bp-save"> </button></footer>`),Wf=U(`<div class="bpadr-read"><!></div> <!>`,1),Gf=U(`<form class="bpadr-form"><input type="hidden" name="category"/> <input type="hidden" name="folder"/> <div class="bpadr-field"><label for="adr-title"> </label> <input id="adr-title" type="text" class="bpadr-input"/></div> <div class="bpadr-field bpadr-field-grow"><label for="adr-content"> </label> <textarea id="adr-content" class="bpadr-textarea"></textarea></div> <footer class="bpadr-footer"><button type="button" class="bpadr-btn-ghost"> </button> <button type="button" data-testid="bp-form-snippets" class="bpadr-btn-ghost"> </button> <button type="submit" class="bpadr-btn-primary"> </button></footer></form> <!>`,1),Kf=U(`<div class="bpadr-folder-confirm"><p></p> <p class="bpadr-muted"> </p> <footer class="bpadr-footer"><button type="button" class="bpadr-btn-ghost"> </button> <button type="button" class="bpadr-btn-primary"> </button></footer></div>`),qf=U(`<div class="bpadr-overlay"><div class="bpadr-modal"><header class="bpadr-header"><div class="bpadr-title-row"><h2 class="bpadr-title"><!></h2> <!></div> <div class="bpadr-header-actions"><!> <button class="bpadr-icon-btn" type="button" title="Close">×</button></div></header> <!></div></div>`),Jf=U(`<div class="fixed inset-0 z-[60] flex items-center justify-center bg-black/50 p-4"><div class="w-full max-w-sm bg-white dark:bg-gray-900 border border-red-200 dark:border-red-700 rounded-xl shadow-2xl p-5 flex flex-col gap-3"><p class="text-sm text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-500 dark:text-gray-400 italic truncate"> </p> <div class="flex justify-end gap-2 mt-2"><button type="button" data-testid="bp-delete-cancel" class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button type="button" data-testid="bp-delete-confirm" class="text-sm px-4 py-1.5 rounded-lg bg-red-500 hover:bg-red-600 text-white font-semibold transition-colors"> </button></div></div></div>`),Yf=U(`<!> <!>`,1);function Xf(e,t){qe(t,!0);let n=Wi(t,`onchanged`,3,()=>{}),r=`001_BLUEPRINT`;function i(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toUpperCase().replace(/[^A-Z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`FOLDER`}function a(e){return`/${(e.folder.path||e.folder.name).replace(/^\/+|\/+$/g,``)||e.folder.name}`}let o=P(`closed`),s=P(``),c=P(``),l=P(``),u=P(``),d=P(``),f=P(``),p=P(``),m=P(``),h=P(null),g=P(null),_=P(null),v=P(!1),y=P(null),b=P(null),x=P(!1),S=P(!1),C=P(!1);async function w(e){F(g,e,!0),F(h,null),F(v,!1),F(y,null);let t=i(e.folder.name);if(F(l,t,!0),F(c,e.folder.name,!0),F(u,``),F(d,``),F(f,``),F(m,a(e),!0),F(s,Y(`blueprint.adr.new_title`,{folder:e.folder.name}),!0),F(o,`form`),!(await fetch(`/api/blueprint/blueprint-folder`).then(e=>e.json())).exists){F(p,r),F(o,`folder-confirm`);return}await E(e,t)}async function T(e){return fetch(`/api/documents/${encodeURIComponent(e)}`).then(e=>e.json())}async function E(e,t){let n=await fetch(`/api/blueprint/blueprint-adr?category=${encodeURIComponent(t)}`).then(e=>e.json());if(n.found&&n.doc){F(h,n.doc.id,!0);let e=await T(n.doc.id);F(c,e.title,!0),F(d,e.content,!0),F(f,e.html,!0),F(s,e.title,!0),F(v,!1),F(o,`doc`)}else F(c,e.folder.name,!0),F(u,``),F(o,`form`)}function D(){F(o,`closed`),F(v,!1),F(h,null),F(g,null),F(m,``),F(C,!1)}async function ee(){if(V(h))try{await navigator.clipboard.writeText(decodeURIComponent(V(h))),F(C,!0),setTimeout(()=>F(C,!1),1800)}catch{}}async function te(){await fetch(`/api/blueprint/blueprint-folder`,{method:`POST`}),V(g)&&await E(V(g),i(V(g).folder.name))}async function O(e){if(!V(h))return;await fetch(`/api/documents/${encodeURIComponent(V(h))}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:V(c).trim()||V(g)?.folder.name||Y(`common.untitled`),category:V(l),folder:r,content:e})});let t=await T(V(h));F(s,t.title,!0),F(d,t.content,!0),F(f,t.html,!0)}async function k(e){e.preventDefault();let t={title:V(c).trim()||V(g)?.folder.name||Y(`common.untitled`),category:V(l),folder:r},i=await fetch(`/api/documents/`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}).then(e=>e.json());F(h,i.id,!0);let a=await T(i.id);F(s,a.title,!0),F(d,a.content,!0),F(f,a.html,!0),F(v,!1),F(o,`doc`),n()()}async function ne(){F(S,!1),V(h)&&(await fetch(`/api/documents/${encodeURIComponent(V(h))}`,{method:`DELETE`}),D(),n()())}var A={open:w},re=Yf(),ie=R(re),ae=e=>{var t=qf(),n=L(t),i=L(n),a=L(i),g=L(a),w=L(g),T=e=>{var t=zf(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i,!0);j(i),B(e=>{G(r,e),G(a,V(m))},[()=>Y(`blueprint.adr.folder_title`)]),W(e,t)},E=e=>{var t=Ur();B(()=>G(t,V(s))),W(e,t)};K(w,e=>{V(m)?e(T):e(E,-1)}),j(g);var ne=z(g,2),A=e=>{var t=Bf(),n=L(t);j(t),B(e=>{J(t,`title`,e),gi(t,1,`bpadr-copy-btn ${V(C)?`copied`:``}`),gi(n,1,`fa-${V(C)?`solid fa-check`:`regular fa-copy`}`)},[()=>Y(`doc.copy_mcp_id`)]),H(`click`,t,ee),W(e,t)};K(ne,e=>{V(h)&&e(A)}),j(a);var re=z(a,2),ie=L(re),ae=e=>{var t=Vf(),n=R(t),r=z(n,2);B((e,t)=>{J(n,`title`,e),J(r,`title`,t)},[()=>Y(`doc.edit`),()=>Y(`doc.delete`)]),H(`click`,n,()=>V(_).enterEdit()),H(`click`,r,()=>F(S,!0)),W(e,t)};K(ie,e=>{V(o)===`doc`&&!V(v)&&e(ae)});var oe=z(ie,2);j(re),j(i);var se=z(i,2),ce=e=>{var t=Wf(),n=R(t),r=L(n);{let e=N(()=>V(h)??``);Vi(Rf(r,{get docId(){return V(e)},get content(){return V(d)},get html(){return V(f)},onsave:O,get editing(){return V(v)},set editing(e){F(v,e,!0)},get saveMsg(){return V(y)},set saveMsg(e){F(y,e,!0)}}),e=>F(_,e,!0),()=>V(_))}j(n);var i=z(n,2),a=e=>{var t=Uf(),n=L(t),r=e=>{var t=Hf(),n=L(t,!0);j(t),B(()=>{gi(t,1,`text-xs ${V(y).cls??``}`),G(n,V(y).text)}),W(e,t)};K(n,e=>{V(y)&&e(r)});var i=z(n,2),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c,!0);j(c),j(t),B((e,t,n)=>{G(a,e),G(s,t),G(l,n)},[()=>Y(`common.cancel`),()=>Y(`doc.snippets_btn`),()=>Y(`common.save`)]),H(`click`,i,()=>V(_).cancelEdit()),H(`click`,o,()=>V(_).openSnippets()),H(`click`,c,()=>V(_).save()),W(e,t)};K(i,e=>{V(v)&&e(a)}),W(e,t)},le=e=>{var t=Gf(),n=R(t),i=L(n);Di(i);var a=z(i,2);Di(a),Oi(a,r);var s=z(a,2),d=L(s),f=L(d,!0);j(d);var p=z(d,2);Di(p),j(s);var m=z(s,2),g=L(m),_=L(g,!0);j(g);var v=z(g,2);yn(v),Vi(v,e=>F(b,e),()=>V(b)),j(m);var y=z(m,2),S=L(y),C=L(S,!0);j(S);var w=z(S,2),T=L(w,!0);j(w);var E=z(w,2),ee=L(E,!0);j(E),j(y),j(n),af(z(n,2),{get open(){return V(x)},get editor(){return V(b)},mode:`insert`,get content(){return V(u)},onclose:()=>F(x,!1)}),B((e,t,n,r,a)=>{Oi(i,V(l)),G(f,e),G(_,t),G(C,n),G(T,r),G(ee,a)},[()=>Y(`blueprint.adr.title_label`),()=>Y(`blueprint.adr.content_label`),()=>Y(`common.cancel`),()=>Y(`doc.snippets_btn`),()=>Y(`common.save`)]),Nr(`submit`,n,k),Ni(p,()=>V(c),e=>F(c,e)),Ni(v,()=>V(u),e=>F(u,e)),H(`click`,S,()=>{V(h)?F(o,`doc`):D()}),H(`click`,w,()=>F(x,!0)),W(e,t)},ue=e=>{var t=Kf(),n=L(t);ai(n,()=>Y(`blueprint.adr.folder_missing`,{name:V(p)}),!0),j(n);var r=z(n,2),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c,!0);j(c),j(a),j(t),B((e,t,n)=>{G(i,e),G(s,t),G(l,n)},[()=>Y(`blueprint.adr.folder_create_prompt`),()=>Y(`common.cancel`),()=>Y(`blueprint.adr.create_folder_btn`)]),H(`click`,o,D),H(`click`,c,te),W(e,t)};K(se,e=>{V(o)===`doc`?e(ce):V(o)===`form`?e(le,1):V(o)===`folder-confirm`&&e(ue,2)}),j(n),j(t),H(`click`,t,e=>{e.target===e.currentTarget&&D()}),H(`click`,oe,D),W(e,t)};K(ie,e=>{V(o)!==`closed`&&e(ae)});var oe=z(ie,2),se=e=>{var t=Jf(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var c=z(a,2),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d),j(c),j(n),j(t),B((e,t,n)=>{G(i,e),G(o,V(s)),G(u,t),G(f,n)},[()=>Y(`doc.confirm_delete`),()=>Y(`common.cancel`),()=>Y(`doc.confirm_delete_btn`)]),H(`click`,t,e=>{e.target===e.currentTarget&&F(S,!1)}),H(`click`,l,()=>F(S,!1)),H(`click`,d,ne),W(e,t)};return K(oe,e=>{V(S)&&e(se)}),W(e,re),Je(A)}Pr([`click`]);var Zf=U(`<span class="breadcrumb-sep">›</span>`),Qf=U(`<span class="breadcrumb-item current"> </span>`),$f=U(`<button class="breadcrumb-item" type="button"> </button>`),ep=U(`<!> <!>`,1),tp=U(`<nav class="breadcrumb"></nav>`),np=U(`<div class="app-shell"><!> <section class="workspace-shell"><!> <!></section></div> <!>`,1);function rp(e,t){qe(t,!0),Gi(async()=>{try{await ya((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}});let n=P(I([])),r=P(null),i=P(null),a=P(null),o=P(null);function s(e){l(),V(i).loadPath(e,!0)}async function c(e){F(r,e.folder.path,!0),await xr(),await V(a).open(e.folder.path)}function l(){F(r,null)}async function u(e){await V(i).navigateToFolder(e)}var d=np(),f=R(d),p=L(f);{let e=N(()=>Y(`blueprint.subtitle`));Qo(p,{title:`Blueprint`,get subtitle(){return V(e)},children:(e,t)=>{var r=tp();q(r,21,()=>V(n),Xr,(e,t,r)=>{var i=ep(),a=R(i),o=e=>{W(e,Zf())};K(a,e=>{r>0&&e(o)});var c=z(a,2),l=e=>{var n=Qf(),r=L(n,!0);j(n),B(()=>G(r,V(t).name)),W(e,n)},u=e=>{var n=$f(),r=L(n,!0);j(n),B(()=>G(r,V(t).name)),H(`click`,n,()=>s(V(t).path)),W(e,n)};K(c,e=>{r===V(n).length-1?e(l):e(u,-1)}),W(e,i)}),j(r),W(e,r)},$$slots:{default:!0}})}var m=z(p,2),h=L(m);Vi(js(h,{get activeExplorerPath(){return V(r)},onbreadcrumbchange:e=>F(n,e,!0),onopenexplorer:c,onclosefilerexplorer:l,onopenAdr:e=>V(o).open(e)}),e=>F(i,e,!0),()=>V(i));var g=z(h,2),_=e=>{Vi(Zs(e,{onclose:l,onnavigate:u}),e=>F(a,e,!0),()=>V(a))};K(g,e=>{V(r)!==null&&e(_)}),j(m),j(f),Vi(Xf(z(f,2),{onchanged:()=>V(i).loadPath(V(n).at(-1)?.path??``,!1)}),e=>F(o,e,!0),()=>V(o)),W(e,d),Je()}Pr([`click`]);var ip=164,ap=64,op=132,sp=78,cp=6,lp=24,up=96,dp=540,fp=780,pp=1/2,mp=9999,hp=44,gp=255,_p=178,vp=Math.PI*.7,yp=Math.PI*1.1,bp=Math.PI*1.45,xp=Math.PI*1.75,Sp=14,Cp=260,wp=56,Tp=32,Ep=[`pointerdown`,`mousedown`,`click`,`dblclick`,`touchstart`,`wheel`],Dp=.35,Op=2.2,kp=.0018,Ap=4,jp=46,Mp=4,Np=44,Pp=360,Fp=300,Ip=44,Lp=48,Rp=7,zp=875,Bp=450,Vp=600*1e3,Hp,Z,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm=null,gm=null,_m=null,Q,$,vm,ym=!1;function bm(){return Hp=document.getElementById(`workspaceCanvas`),Z=Hp.getContext(`2d`),Up=document.getElementById(`apiStatus`),Wp=document.getElementById(`addButton`),Gp=document.getElementById(`fitButton`),Kp=document.getElementById(`testNodeButton`),qp=document.getElementById(`loadModelsButton`),Jp=document.getElementById(`closePanelButton`),Yp=document.getElementById(`deleteNodeButton`),Xp=document.getElementById(`renameConfirmOverlay`),Zp=document.getElementById(`renameConfirmMessage`),Qp=document.getElementById(`cancelRenameButton`),$p=document.getElementById(`confirmRenameButton`),em=document.getElementById(`deleteConfirmOverlay`),tm=document.getElementById(`deleteConfirmMessage`),nm=document.getElementById(`cancelDeleteButton`),rm=document.getElementById(`confirmDeleteButton`),im=document.getElementById(`agentRunOverlay`),am=document.getElementById(`agentRunTitle`),om=document.getElementById(`agentRunHint`),sm=document.getElementById(`agentRunInputField`),cm=document.getElementById(`agentRunInput`),lm=document.getElementById(`agentRunResult`),um=document.getElementById(`cancelAgentRunButton`),dm=document.getElementById(`executeAgentRunButton`),fm=document.getElementById(`fallbackPanelHost`),pm=document.getElementById(`configSurface`),mm=pm,hm=null,gm=null,_m=null,Q={name:document.getElementById(`nodeName`),kind:document.getElementById(`nodeKind`),providerIdField:document.getElementById(`providerIdField`),providerId:document.getElementById(`nodeProviderId`),copyProviderId:document.getElementById(`copyProviderIdButton`),endpoint:document.getElementById(`nodeEndpoint`),token:document.getElementById(`nodeToken`),model:document.getElementById(`nodeModel`),providerTypeChat:document.getElementById(`nodeProviderTypeChat`),providerTypeImage:document.getElementById(`nodeProviderTypeImage`),toolModeField:document.getElementById(`toolModeField`),toolModeTools:document.getElementById(`nodeToolModeTools`),toolModeChat:document.getElementById(`nodeToolModeChat`),workspaceField:document.getElementById(`agentWorkspaceField`),workspaceFolder:document.getElementById(`nodeWorkspaceFolder`),timeout:document.getElementById(`nodeTimeout`),description:document.getElementById(`nodeDescription`),typeBadge:document.getElementById(`nodeTypeBadge`),llmFields:document.getElementById(`llmFields`),mcpInventory:document.getElementById(`mcpInventory`),mcpInventoryStatus:document.getElementById(`mcpInventoryStatus`),mcpToolsList:document.getElementById(`mcpToolsList`),mcpPromptsList:document.getElementById(`mcpPromptsList`),agentSection:document.getElementById(`agentSection`),agentProvider:document.getElementById(`nodeAgentProvider`),systemPrompt:document.getElementById(`nodeSystemPrompt`),requiresUserInput:document.getElementById(`nodeRequiresUserInput`),userInputDescriptionField:document.getElementById(`agentUserInputDescriptionField`),userInputDescription:document.getElementById(`nodeUserInputDescription`),expectedOutputMarker:document.getElementById(`nodeExpectedOutputMarker`)},$={entities:Bm([zm(`root`,`Living AI Documentation`,`system`,null),zm(`mcp`,`MCP`,`mcp`,`root`)]),selectedId:null,cameraX:0,cameraY:0,zoom:1,isPanning:!1,panStartX:0,panStartY:0,panStartCameraX:0,panStartCameraY:0,didPan:!1,viewAnimationId:null,dpr:window.devicePixelRatio||1,apiMode:`fallback`,lastSaveAt:null,pendingDeleteId:null,panelShiftX:0,saveTimerId:null,panelDirty:!1,isHydrated:!1},ym=!!Hp.requestPaint&&typeof Z.drawElementImage==`function`,ym?($.apiMode=`html-in-canvas`,Up.textContent=`HTML-in-Canvas active`,Up.classList.add(`is-live`),Hp.onpaint=Wh):(fm.appendChild(pm),Up.textContent=`DOM fallback`,Up.classList.add(`is-fallback`)),vm=new ResizeObserver(([e])=>{let t=e.devicePixelContentBoxSize?.[0],n=e.contentRect.width,r=e.contentRect.height;$.dpr=t?t.inlineSize/n:window.devicePixelRatio||1,Hp.width=t?t.inlineSize:Math.floor(n*$.dpr),Hp.height=t?t.blockSize:Math.floor(r*$.dpr),Jm(),eg(!1,!$.cameraX&&!$.cameraY),Uh()}),vm.observe(Hp,{box:`device-pixel-content-box`}),xm(),Sm(),Wp.addEventListener(`click`,()=>{Gm()}),Gp.addEventListener(`click`,()=>{Jm(),eg(!0,!0),Dm(),Uh()}),Hp.addEventListener(`pointerdown`,e=>{if(e.target!==Hp)return;let t=Cg(e),n=ug(t),r=[...$.entities].reverse().find(e=>gg(e,n));if(r){r.id!==`root`&&oh(r.id);return}$.isPanning=!0,$.didPan=!1,$.panStartX=t.x,$.panStartY=t.y,$.panStartCameraX=$.cameraX,$.panStartCameraY=$.cameraY,Hp.classList.add(`is-panning`),Hp.setPointerCapture?.(e.pointerId)}),Hp.addEventListener(`pointermove`,e=>{if(!$.isPanning)return;let t=Cg(e),n=t.x-$.panStartX,r=t.y-$.panStartY;Math.hypot(n,r)>Ap&&($.didPan=!0),$.cameraX=$.panStartCameraX+n,$.cameraY=$.panStartCameraY+r,Uh()}),Hp.addEventListener(`pointerup`,e=>{$.isPanning&&($.isPanning=!1,Hp.classList.remove(`is-panning`),Hp.releasePointerCapture?.(e.pointerId),!$.didPan&&$.selectedId?oh(null):$.didPan&&Dm())}),Hp.addEventListener(`pointercancel`,e=>{$.isPanning=!1,Hp.classList.remove(`is-panning`),Hp.releasePointerCapture?.(e.pointerId)}),Hp.addEventListener(`wheel`,e=>{e.target===Hp&&(e.preventDefault(),lg(Cg(e),Math.exp(-e.deltaY*kp)),Dm())},{passive:!1}),mm.addEventListener(`submit`,e=>{e.preventDefault(),mh(),$.lastSaveAt=new Date,Jm(),km(!0),Uh()}),mm.addEventListener(`input`,()=>{mh(),Jm(),$.panelDirty=!0,Uh()}),Jp.addEventListener(`click`,()=>{oh(null)}),Yp.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation();let t=$.selectedId,n=t?zh(t):null;!n||Bh(t)||sh(n)}),nm.addEventListener(`click`,ch),em.addEventListener(`click`,e=>{e.target===em&&ch()}),rm.addEventListener(`click`,()=>{$.pendingDeleteId&&lh($.pendingDeleteId),ch()}),Kp.addEventListener(`click`,()=>{if(Rh()?.kind===`agent`){bh();return}Nh()}),qp.addEventListener(`click`,()=>{Mh()}),Q.copyProviderId.addEventListener(`click`,()=>{Fh()}),Q.name.addEventListener(`blur`,()=>{if(Rh()?.kind!==`agent`)return;let e=Q.name.value.trim();if(!e||!hm||!gm||e===hm)return;let t=Hm(e);t!==gm&&(Zp.textContent=`Renommer le dossier "${gm}" en "${t}" ?`,Xp.hidden=!1,Qp.focus())}),Qp.addEventListener(`click`,()=>{Xp.hidden=!0;let e=Rh();e&&hm&&(e.label=hm,Q.name.value=hm,Jm(),Uh())}),$p.addEventListener(`click`,()=>{Xp.hidden=!0;let e=Rh();if(!e||!gm)return;e.config.workspaceFolder=gm,Q.workspaceFolder.value=gm;let t=Q.name.value.trim();t&&(hm=t),gm=Hm(t),Dm()}),Q.model.addEventListener(`change`,()=>{Kp.disabled=!Q.model.value;let e=Rh();e&&(e.config.model=Q.model.value)}),Q.agentProvider.addEventListener(`change`,()=>{gh(Q.agentProvider.value)}),um.addEventListener(`click`,()=>{xh()}),dm.addEventListener(`click`,()=>{Sh()}),im.addEventListener(`click`,e=>{e.target===im&&xh()}),wm(),()=>{Om(),vm.disconnect(),$?.saveTimerId&&clearTimeout($.saveTimerId)}}function xm(){for(let e of Ep)pm.addEventListener(e,Cm),fm.addEventListener(e,Cm)}function Sm(){for(let e of Ep)em.addEventListener(e,Cm),Xp.addEventListener(e,Cm),im.addEventListener(e,Cm)}function Cm(e){e.stopPropagation()}async function wm(){let e=await Oo();e?.entities?.length&&($.entities=Tm(e.entities),$.cameraX=Rm(e.camera?.x,$.cameraX),$.cameraY=Rm(e.camera?.y,$.cameraY),$.zoom=dg(Rm(e.camera?.zoom,$.zoom),Dp,Op),$.lastSaveAt=e.updatedAt?new Date(e.updatedAt):null),$.isHydrated=!0,Jm(),e?.entities?.length||eg(!1,!0),ph(),Uh()}function Tm(e){let t=e.map(Em).filter(e=>!!e),n=t.some(e=>e.id===`root`),r=t.some(e=>e.id===`mcp`),i=[...n?[]:[zm(`root`,`Living AI Documentation`,`system`,null)],...t,...r?[]:[zm(`mcp`,`MCP`,`mcp`,`root`)]],a=new Set(i.map(e=>e.id));return i.map(e=>{let t=e.id===`root`?`system`:e.id===`mcp`?`mcp`:e.kind,n=e.id===`root`?null:e.id===`mcp`?`root`:e.parentId&&a.has(e.parentId)?e.parentId:null;return{...e,kind:t,parentId:n,config:{...zm(e.id,e.label,t,n).config,...e.config}}})}function Em(e){if(!Nm(e))return null;let t=Pm(e.id),n=Pm(e.label),r=Fm(e.kind);if(!t||!n||!r)return null;let i=e.parentId===null?null:Pm(e.parentId),a=Nm(e.config)?e.config:{};return{id:t,label:n,kind:r,parentId:i,x:Rm(e.x,0),y:Rm(e.y,0),angle:Rm(e.angle,0),config:{endpoint:Pm(a.endpoint)||Vm(t,r),token:Pm(a.token),model:Pm(a.model),providerType:Lm(a.providerType),toolMode:Im(a.toolMode),timeout:Rm(a.timeout,180),description:Pm(a.description)||Wm(r),workspaceFolder:Pm(a.workspaceFolder)||(r===`agent`?Hm(n):``),systemPrompt:Pm(a.systemPrompt),requiresUserInput:a.requiresUserInput===!0,userInputDescription:Pm(a.userInputDescription),expectedOutputMarker:Pm(a.expectedOutputMarker)}}}function Dm(){$.isHydrated&&($.saveTimerId&&clearTimeout($.saveTimerId),$.saveTimerId=window.setTimeout(()=>{$.saveTimerId=null,km(!1)},Bp))}function Om(){$.panelDirty&&km(!1)}async function km(e=!1){if(!$.isHydrated)return;$.panelDirty=!1,$.saveTimerId&&(clearTimeout($.saveTimerId),$.saveTimerId=null);let t=$.selectedId&&document.activeElement===Q.token&&kh(Q.token.value)?{entityId:$.selectedId,value:Q.token.value,selectionStart:Q.token.selectionStart,selectionEnd:Q.token.selectionEnd}:null,n=await ko(Mm());if(n){if($.entities=Tm(n.entities),t&&$.selectedId===t.entityId){let e=Rh();e?.kind===`llm`&&(e.config.token=t.value)}$.lastSaveAt=new Date(n.updatedAt),Rh()&&!mm.contains(document.activeElement)&&ph(),t&&$.selectedId===t.entityId&&(Q.token.value=t.value,Q.token.setSelectionRange(t.selectionStart,t.selectionEnd)),e&&jm(`Workspace saved`)}else e&&jm(`Save failed`)}function Am(e,t){return To(e,t)}function jm(e,t=`success`,n,r){return Eo(e,t,n,r)}function Mm(){return{version:1,updatedAt:new Date().toISOString(),entities:$.entities.map(e=>{let t={...e.config,token:Ah(e.config.token)};return{id:e.id,label:e.label,kind:e.kind,parentId:e.parentId,x:e.x,y:e.y,angle:e.angle,config:t}}),camera:{x:$.cameraX,y:$.cameraY,zoom:$.zoom}}}function Nm(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pm(e){return typeof e==`string`?e:``}function Fm(e){return e===`system`||e===`llm`||e===`agent`||e===`mcp`?e:null}function Im(e){return e===`chat`?`chat`:`tools`}function Lm(e){return e===`image`?`image`:`chat`}function Rm(e,t){return typeof e==`number`&&Number.isFinite(e)?e:t}function zm(e,t,n,r){return{id:e,label:t,kind:n,parentId:r,x:0,y:0,angle:0,config:{endpoint:Vm(e,n),token:``,model:``,providerType:`chat`,toolMode:`tools`,timeout:180,description:Wm(n),workspaceFolder:n===`agent`?Hm(t):``,systemPrompt:``,requiresUserInput:!1,userInputDescription:``,expectedOutputMarker:``}}}function Bm(e){return e.map(e=>({...e,config:{...e.config}}))}function Vm(e,t){return t===`llm`?`http://localhost:11434`:t===`mcp`?`http://localhost:4321/mcp`:``}function Hm(e){return`AI/WORKSPACE/${Um(e)}`}function Um(e){return e.normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`llm_provider`}function Wm(e){let t={system:`Owns the documentation workspace, MCP access, providers, and agent topology.`,llm:`Routes model calls and hosts the agents assigned to this provider.`,agent:`Runs focused automation against documentation, source, or quality signals.`,mcp:`Exposes the local Living Documentation MCP consultation panel to agents.`};return t[e]||t.agent}function Gm(){let e=Rh(),t=e?.kind===`llm`?e:zh(e?.parentId);if(t?.kind===`llm`&&t.config.providerType!==`image`){qm(t.id);return}Km()}function Km(){let e=!!$.selectedId,t=Vh(`root`).filter(e=>e.kind===`llm`).length+1,n=zm(`provider-${Date.now().toString(36)}`,`LLM Provider ${t}`,`llm`,`root`);$.entities=[...$.entities,n],$.selectedId=n.id,Jm(),tg(e,!0,!0),ph(),Dm(),Uh()}function qm(e){let t=!!$.selectedId,n=Vh(e).filter(e=>e.kind===`agent`).length+1,r=zm(`agent-${Date.now().toString(36)}`,`Agent ${n}`,`agent`,e);$.entities=[...$.entities,r],$.selectedId=r.id,Jm(),tg(t,!0,!0),ph(),Dm(),Uh()}function Jm(){let e=zh(`root`);e.x=0,e.y=0,e.angle=0,Ym(e)}function Ym(e){let t=Vh(e.id),n=th(t,op,gp,{spread:Math.PI*2,includeSubtree:!1}),r=new Map(t.map(e=>[e.id,$m(e,n)]));for(let n=0;n<=Rp;n+=1)if(Xm(e,t,r),Zm(),!Qm(t,r))return;Xm(e,t,r),Zm()}function Xm(e,t,n){let r=Math.max(1,t.length);t.forEach((t,i)=>{let a=-Math.PI/2+i/r*Math.PI*2,o=n.get(t.id)||gp;t.angle=a,t.x=e.x+Math.cos(a)*o,t.y=e.y+Math.sin(a)*o})}function Zm(){for(let e of $.entities.filter(e=>e.kind===`llm`))eh(e)}function Qm(e,t){let n=!1;for(let r=0;r<e.length;r+=1)for(let i=r+1;i<e.length;i+=1){let a=e[r],o=e[i];Sg(yg(a),yg(o),Ip)&&(t.set(a.id,Math.min(zp,t.get(a.id)+Lp)),t.set(o.id,Math.min(zp,t.get(o.id)+Lp)),n=!0)}return n}function $m(e,t){if(e.kind!==`llm`)return t;let n=Vh(e.id).length;if(n<=Mp)return t;let r=(n-Mp)*Np,i=Math.max(0,ih(e)-Fp)*.65;return t+Math.min(Pp,Math.max(r,i))}function eh(e){let t=Vh(e.id);if(!t.length)return;let n=Math.atan2(e.y,e.x),r=nh(t.length),i=th(t,sp,_p,{spread:r,includeSubtree:!1});t.forEach((a,o)=>{let s=rh(n,r,o,t.length);a.angle=s,a.x=e.x+Math.cos(s)*i,a.y=e.y+Math.sin(s)*i})}function th(e,t,n,r={}){if(!e.length)return n;let i=!!r.includeSubtree,a=r.spread||Math.PI*2,o=Math.max(...e.map(e=>i?ih(e):ah(e))),s=t+o+jp;if(e.length===1)return Math.max(n,s);let c=o*2+jp,l=a>=Math.PI*2-.001?Math.PI*2/e.length:a/(e.length-1),u=c/(2*Math.sin(l/2));return Math.max(n,s,u)}function nh(e){return e<=1?0:e<=2?vp:e<=4?yp:e<=7?bp:xp}function rh(e,t,n,r){return r<=1||t===0?e:e-t/2+n/(r-1)*t}function ih(e){if(e.kind!==`llm`)return ah(e);let t=Vh(e.id);return t.length?th(t,sp,_p,{spread:nh(t.length),includeSubtree:!1})+Math.max(...t.map(e=>ah(e))):sp}function ah(e){if(e.kind===`system`)return op;if(e.kind===`llm`)return sp;let{width:t,height:n}=vg(e);return Math.hypot(t/2,n/2)}function oh(e){e!==$.selectedId&&Om();let t=!!$.selectedId;$.selectedId=e;let n=e?zh(e):null;hm=n?.kind===`agent`?n.label:null,gm=n?.kind===`agent`?n.config.workspaceFolder||Hm(n.label):null,Jm(),tg(t,!!e,!0),ph(),Uh()}function sh(e){let t=Hh(e.id),n=Vh(e.id).length,r=t.length?` This node has ${n} direct child${n===1?``:`ren`} and ${t.length} total descendant${t.length===1?``:`s`}; they will also be deleted.`:` This node has no children.`;$.pendingDeleteId=e.id,tm.textContent=`You are about to delete "${e.label}".${r} This action cannot be undone.`,em.hidden=!1,rm.focus()}function ch(){$.pendingDeleteId=null,em.hidden=!0}function lh(e){let t=zh(e);if(!t||Bh(e))return;let n=t.parentId||`root`,r=!!$.selectedId,i=new Set([e,...Hh(e)]);$.entities=$.entities.filter(e=>!i.has(e.id)),$.selectedId=zh(n)?n:null,Jm(),tg(r,!!$.selectedId,!0),ph(),Dm(),Uh()}var uh=0;async function dh(e){let t=++uh,n=e.config.endpoint.trim(),r=Q.mcpInventoryStatus;if(Q.mcpToolsList.replaceChildren(),Q.mcpPromptsList.replaceChildren(),!n){r.hidden=!1,r.textContent=`Set an endpoint to load the MCP tools and prompts.`;return}r.hidden=!1,r.textContent=`Loading MCP tools and prompts…`;let i=await jo({endpoint:n});if(t===uh){if(!i.ok){r.hidden=!1,r.textContent=i.error?`Failed to load MCP inventory: ${i.error}`:`Failed to load MCP inventory.`;return}r.hidden=!0,fh(Q.mcpToolsList,i.tools??[],`No tools exposed.`),fh(Q.mcpPromptsList,i.prompts??[],`No prompts exposed.`)}}function fh(e,t,n){if(e.replaceChildren(),t.length===0){let t=document.createElement(`li`);t.className=`inventory-empty`,t.textContent=n,e.appendChild(t);return}for(let n of t){let t=document.createElement(`li`);t.textContent=n,e.appendChild(t)}}function ph(){let e=Rh(),t=!!e;if(pm.hidden=!t,fm.hidden=!t||ym,!e){Wp.title=`Add LLM provider`,Kp.textContent=`Test`,Kp.hidden=!0,Kp.disabled=!0;return}Q.name.value=e.label,Q.kind.value=e.kind,Q.providerId.value=e.kind===`llm`?e.id:``,Q.endpoint.value=e.config.endpoint,Q.token.value=e.config.token,yh(e.config.model),Q.providerTypeChat.checked=e.config.providerType!==`image`,Q.providerTypeImage.checked=e.config.providerType===`image`,Q.toolModeTools.checked=e.config.toolMode!==`chat`,Q.toolModeChat.checked=e.config.toolMode===`chat`,Q.workspaceFolder.value=e.config.workspaceFolder,Q.workspaceField.hidden=e.kind!==`agent`,Q.timeout.value=String(e.config.timeout),Q.description.value=e.config.description,Q.typeBadge.textContent=Lh(e),Q.kind.disabled=!0,Q.llmFields.hidden=e.kind===`mcp`||e.kind===`agent`,vh(e),Q.mcpInventory.hidden=e.kind!==`mcp`,e.kind===`mcp`?dh(e):uh+=1,Q.agentSection.hidden=e.kind!==`agent`,e.kind===`agent`&&hh(e),Q.systemPrompt.value=e.config.systemPrompt,Q.requiresUserInput.checked=e.config.requiresUserInput,_h(),Q.userInputDescription.value=e.config.userInputDescription,Q.expectedOutputMarker.value=e.config.expectedOutputMarker,Yp.hidden=Bh(e.id),Kp.textContent=`Test`,Kp.hidden=e.kind!==`llm`&&e.kind!==`agent`,Kp.disabled=e.kind===`llm`?!e.config.model:e.kind!==`agent`;let n=e.kind===`llm`?e:zh(e.parentId);Wp.title=n?.kind===`llm`&&n.config.providerType!==`image`?`Add agent`:`Add LLM provider`}function mh(){let e=Rh();if(e&&(e.label=Q.name.value.trim()||`Untitled node`,e.kind=Q.kind.value,e.config.endpoint=Q.endpoint.value,e.config.token=Q.token.value,e.config.model=Q.model.value,e.config.providerType=Q.providerTypeImage.checked?`image`:`chat`,e.config.toolMode=Q.toolModeChat.checked?`chat`:`tools`,e.config.timeout=Number(Q.timeout.value||30),e.config.description=Q.description.value,e.config.systemPrompt=Q.systemPrompt.value,e.config.requiresUserInput=Q.requiresUserInput.checked,e.config.userInputDescription=Q.userInputDescription.value,e.config.expectedOutputMarker=Q.expectedOutputMarker.value,_h(),vh(e),Q.typeBadge.textContent=Lh(e),e.kind===`llm`))for(let t of $.entities)t.parentId===e.id&&t.kind===`agent`&&(t.config.model=e.config.model,t.config.timeout=e.config.timeout)}function hh(e){let t=Q.agentProvider;t.innerHTML=``;let n=$.entities.filter(e=>e.kind===`llm`&&e.config.providerType!==`image`);for(let e of n){let n=document.createElement(`option`);n.value=e.id,n.textContent=e.label,t.appendChild(n)}t.value=e.parentId??``}function gh(e){let t=Rh();if(t?.kind!==`agent`)return;let n=zh(e);n?.kind===`llm`&&t.parentId!==e&&(t.parentId=e,t.config.model=n.config.model,t.config.timeout=n.config.timeout,Jm(),Dm(),Uh())}function _h(){let e=Rh()?.kind===`agent`&&Q.requiresUserInput.checked;Q.userInputDescriptionField.hidden=!e,Q.userInputDescription.required=e}function vh(e){let t=e.kind===`llm`,n=e.config.providerType===`image`;Q.providerIdField.hidden=!t,Q.toolModeField.hidden=!t||n,qp.title=n?`Load image models from endpoint`:`Load chat models from endpoint`,Kp.title=n?`Test image provider configuration`:`Test chat provider configuration`}function yh(e){let t=Array.from(Q.model.options).map(e=>e.value);if(e&&!t.includes(e)){Q.model.innerHTML=``;let t=document.createElement(`option`);t.value=e,t.textContent=e,Q.model.appendChild(t)}Q.model.value=e||(t[0]??``)}function bh(){let e=Rh();if(e?.kind!==`agent`)return;mh();let t=zh(e.parentId??``);if(t?.kind!==`llm`){jm(`No parent LLM found for this agent.`,`error`);return}if(!t.config.model){jm(`Parent LLM has no model selected.`,`error`);return}if(!e.config.systemPrompt.trim()){jm(`Write a system prompt first.`,`error`);return}if(e.config.requiresUserInput&&!e.config.userInputDescription.trim()){jm(`Describe the required user input first.`,`error`);return}_m=e.id,am.textContent=`Test ${e.label}`,om.textContent=e.config.requiresUserInput?e.config.userInputDescription:`Run this agent with its configured system prompt.`,sm.hidden=!e.config.requiresUserInput,cm.required=e.config.requiresUserInput,cm.value=``,lm.hidden=!0,lm.textContent=``,dm.disabled=!1,dm.textContent=`Run`,im.hidden=!1,e.config.requiresUserInput?window.setTimeout(()=>cm.focus(),0):window.setTimeout(()=>dm.focus(),0)}function xh(){im.hidden=!0,_m=null}async function Sh(){if(cm.required&&!cm.value.trim()){cm.reportValidity();return}let e=_m?zh(_m):null;if(e?.kind!==`agent`){Dh(`error`,`The selected agent is no longer available.`);return}let t=zh(e.parentId??``);if(t?.kind!==`llm`){Dh(`error`,`No parent LLM found for this agent.`);return}dm.disabled=!0,dm.textContent=`Running…`;let n=Am(`Running agent…`);wh();let r=$.entities.find(e=>e.kind===`mcp`),i=!1,a=await Mo({providerId:t.id,endpoint:t.config.endpoint,model:t.config.model,systemPrompt:e.config.systemPrompt,userInput:cm.value.trim()||void 0,timeout:t.config.timeout,mcpEndpoint:t.config.toolMode===`chat`?void 0:r?.config.endpoint||void 0,toolMode:t.config.toolMode,expectedOutputMarker:e.config.expectedOutputMarker||void 0},e=>{e.type===`error`&&(i=!0),e.type!==`final`&&e.type!==`error`&&Am(Ch(e),n),Th(e)});dm.disabled=!1,dm.textContent=`Run`,a.ok&&a.content?(Eh(a.content),jm(`Agent responded. Result saved in AI/WORKSPACE.`,`success`,Vp,n)):(i||Th({type:`error`,message:a.error??`Agent failed.`}),lm.dataset.state=`error`,jm(a.error??`Agent failed.`,`error`,Vp,n))}function Ch(e){return e.type===`tool_call`&&e.toolName?`Agent tool call: ${e.toolName}`:e.type===`tool_result`&&e.toolName?`Agent tool result: ${e.toolName}`:`Agent: ${e.message}`}function wh(){lm.hidden=!1,lm.dataset.state=`loading`,lm.textContent=``,Th({type:`status`,message:`Preparing agent request`})}function Th(e){lm.hidden=!1,e.type===`error`&&(lm.dataset.state=`error`);let t=document.createElement(`div`);t.className=`agent-run-event agent-run-event-${e.type.replace(`_`,`-`)}`;let n=document.createElement(`span`);n.className=`agent-run-event-dot`,n.setAttribute(`aria-hidden`,`true`);let r=document.createElement(`div`);r.className=`agent-run-event-body`;let i=document.createElement(`p`);i.className=`agent-run-event-title`,i.textContent=e.message,r.appendChild(i);let a=[];if(e.turn&&a.push(`Turn ${e.turn}`),e.toolName&&a.push(e.toolName),e.detail&&a.push(e.detail),a.length){let e=document.createElement(`p`);e.className=`agent-run-event-meta`,e.textContent=a.join(` · `),r.appendChild(e)}t.append(n,r),lm.appendChild(t),lm.scrollTop=lm.scrollHeight}function Eh(e){lm.dataset.state=`success`;let t=document.createElement(`section`);t.className=`agent-run-final`;let n=document.createElement(`h3`);n.textContent=`Final response`;let r=document.createElement(`pre`);r.textContent=e,t.append(n,r),lm.appendChild(t),lm.scrollTop=lm.scrollHeight}function Dh(e,t){lm.hidden=!1,lm.dataset.state=e,lm.textContent=t}var Oh=/^(?:env:[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\})$/;function kh(e){let t=e.trim();return t!==``&&!Oh.test(t)}function Ah(e){let t=e.trim();return kh(t)?``:t}var jh=`API token must reference an environment variable, e.g. env:LLM_API_KEY`;async function Mh(){let e=Rh();if(e?.kind!==`llm`)return;mh();let t=e.config.endpoint;if(!t){jm(`Set an endpoint first.`);return}if(kh(e.config.token)){jm(jh);return}qp.classList.add(`loading`),qp.disabled=!0,Q.model.disabled=!0;let n=await Ao({endpoint:t,token:e.config.token,providerType:e.config.providerType});if(qp.classList.remove(`loading`),qp.disabled=!1,Q.model.disabled=!1,!n.ok||!n.models?.length){jm(n.error??`No models found.`);return}let r=Q.model.value;Q.model.innerHTML=``;for(let e of n.models){let t=document.createElement(`option`);t.value=e,t.textContent=e,Q.model.appendChild(t)}Q.model.value=n.models.includes(r)?r:n.models[0],e.config.model=Q.model.value,Kp.disabled=!Q.model.value,jm(`${n.models.length} model${n.models.length===1?``:`s`} loaded.`),Uh()}async function Nh(){let e=Rh();if(e?.kind!==`llm`)return;if(mh(),kh(e.config.token)){jm(jh);return}Kp.disabled=!0,Am(`Testing ${e.config.model}…`),Uh();let t=e.config.providerType===`image`?await Ph(e):await Po({endpoint:e.config.endpoint,token:e.config.token,model:e.config.model,timeout:e.config.timeout});Kp.disabled=!1,t.ok?jm(t.detail??`Connection OK`,`success`):jm(t.error||`Connection failed (${t.status||`no status`})`,`error`),Uh()}async function Ph(e){let t=await Ao({endpoint:e.config.endpoint,token:e.config.token,providerType:`image`});if(!t.ok)return{ok:!1,error:t.error??`Image provider test failed`};let n=e.config.model.trim();return n&&t.models?.length&&!t.models.includes(n)?{ok:!1,error:`Image models loaded, but "${n}" was not found.`}:{ok:!0,detail:`${t.models?.length??0} image model${t.models?.length===1?``:`s`} available`}}async function Fh(){let e=Rh();if(e?.kind===`llm`)try{await navigator.clipboard.writeText(e.id),jm(`Provider ID copied`,`success`)}catch{Q.providerId.select(),jm(`Provider ID selected`,`success`)}}function Ih(e){return{system:`System`,llm:`LLM provider`,agent:`Agent`,mcp:`MCP`}[e]||`Node`}function Lh(e){return e.kind===`llm`&&e.config.providerType===`image`?`Image provider`:Ih(e.kind)}function Rh(){return $.selectedId?zh($.selectedId):null}function zh(e){return $.entities.find(t=>t.id===e)}function Bh(e){return e===`root`||e===`mcp`}function Vh(e){return $.entities.filter(t=>t.parentId===e)}function Hh(e){let t=[];for(let n of Vh(e))t.push(n.id,...Hh(n.id));return t}function Uh(){ym?Hp.requestPaint():requestAnimationFrame(Wh)}function Wh(){let e=Hp.width/$.dpr,t=Hp.height/$.dpr;Z.reset(),Z.setTransform($.dpr,0,0,$.dpr,0,0),Z.clearRect(0,0,e,t),Z.save(),Z.translate($.cameraX,$.cameraY),Z.scale($.zoom,$.zoom),Gh(e,t),Kh(),Z.restore(),ym&&$h(e,t)}function Gh(e,t){Z.save(),Z.lineWidth=1/$.zoom;let n=ug({x:0,y:0}),r=ug({x:e,y:t}),i=Math.floor(n.x/lp)*lp,a=Math.ceil(r.x/lp)*lp,o=Math.floor(n.y/lp)*lp,s=Math.ceil(r.y/lp)*lp;for(let e=i;e<=a;e+=lp)Z.strokeStyle=e%up===0?`#d7dce5`:`#edf0f4`,Dg(e,o,e,s);for(let e=o;e<=s;e+=lp)Z.strokeStyle=e%up===0?`#d7dce5`:`#edf0f4`,Dg(i,e,a,e);Z.restore()}function Kh(){qh();for(let e of $.entities)Jh(e)}function qh(){Z.save(),Z.lineWidth=2/$.zoom;for(let e of $.entities){let t=zh(e.parentId);if(!t)continue;let n=Math.atan2(e.y-t.y,e.x-t.x),r=fg(t,n),i=fg(e,n+Math.PI);Z.strokeStyle=Zh(e).connection,Z.beginPath(),Z.moveTo(r.x,r.y),Z.lineTo(i.x,i.y),Z.stroke()}Z.restore()}function Jh(e){if(e.kind===`system`||e.kind===`llm`){Yh(e);return}Xh(e)}function Yh(e){let t=e.id===$.selectedId,n=Zh(e),r=e.kind===`system`?op:sp,i=Vh(e.id),a=Math.max(cp,i.length),o=wg(e.x,e.y,r,a);Z.save(),Z.beginPath(),o.forEach((e,t)=>{t===0?Z.moveTo(e.x,e.y):Z.lineTo(e.x,e.y)}),Z.closePath(),Z.fillStyle=t?n.selectedFill:n.fill,Z.strokeStyle=t?n.selectedStroke:n.stroke,Z.lineWidth=(t?3:2)/$.zoom,Z.shadowColor=n.shadow,Z.shadowBlur=e.kind===`system`?20:14,Z.shadowOffsetY=e.kind===`system`?8:5,Z.fill(),Z.shadowColor=`transparent`,Z.stroke(),Z.fillStyle=t?n.selectedText:n.text,Z.textAlign=`center`,Z.textBaseline=`middle`,Z.font=e.kind===`system`?`800 21px Inter, system-ui, sans-serif`:`800 16px Inter, system-ui, sans-serif`,Eg(e.label,e.x,e.y-8,r*1.32,e.kind===`system`?26:20),Qh(e,t,r),Z.restore()}function Xh(e){let t=e.id===$.selectedId,n=Zh(e),r=e.kind===`mcp`?116:ip,i=e.kind===`mcp`?58:ap;Z.save(),Tg(e.x-r/2,e.y-i/2,r,i,20),Z.fillStyle=t?n.selectedFill:n.fill,Z.strokeStyle=t?n.selectedStroke:n.stroke,Z.lineWidth=(t?3:2)/$.zoom,Z.shadowColor=n.shadow,Z.shadowBlur=10,Z.shadowOffsetY=4,Z.fill(),Z.shadowColor=`transparent`,Z.stroke(),Z.fillStyle=t?n.selectedText:n.text,Z.font=`760 15px Inter, system-ui, sans-serif`,Z.textAlign=`center`,Z.textBaseline=`middle`,Eg(e.label,e.x,e.y,r*.78,18),Qh(e,t,Math.max(r,i)/2),Z.restore()}function Zh(e){if(e.kind===`system`)return{fill:`#111827`,stroke:`#111827`,selectedFill:`#111827`,selectedStroke:`#111827`,text:`#ffffff`,selectedText:`#ffffff`,shadow:`rgb(17 24 39 / 18%)`,connection:`#475569`};if(e.kind===`llm`&&e.config.providerType===`image`)return{fill:`#facc15`,stroke:`#ca8a04`,selectedFill:`#eab308`,selectedStroke:`#a16207`,text:`#111827`,selectedText:`#111827`,shadow:`rgb(250 204 21 / 22%)`,connection:`#ca8a04`};if(e.kind===`llm`&&e.config.toolMode===`chat`)return{fill:`#f472b6`,stroke:`#db2777`,selectedFill:`#ec4899`,selectedStroke:`#be185d`,text:`#500724`,selectedText:`#500724`,shadow:`rgb(244 114 182 / 20%)`,connection:`#db2777`};if(e.kind===`llm`)return{fill:`#f97316`,stroke:`#ea580c`,selectedFill:`#fb923c`,selectedStroke:`#c2410c`,text:`#431407`,selectedText:`#431407`,shadow:`rgb(249 115 22 / 20%)`,connection:`#ea580c`};if(e.kind===`mcp`)return{fill:`#64748b`,stroke:`#475569`,selectedFill:`#475569`,selectedStroke:`#334155`,text:`#ffffff`,selectedText:`#ffffff`,shadow:`rgb(100 116 139 / 18%)`,connection:`#64748b`};if(e.kind===`agent`){let t=zh(e.parentId);return t?.kind===`llm`&&t.config.toolMode===`chat`?{fill:`#f9a8d4`,stroke:`#f472b6`,selectedFill:`#ec4899`,selectedStroke:`#db2777`,text:`#111827`,selectedText:`#111827`,shadow:`rgb(244 114 182 / 18%)`,connection:`#f472b6`}:{fill:`#fdba74`,stroke:`#f97316`,selectedFill:`#fb923c`,selectedStroke:`#ea580c`,text:`#111827`,selectedText:`#111827`,shadow:`rgb(249 115 22 / 18%)`,connection:`#f97316`}}return{fill:`#ffffff`,stroke:`#0f172a`,selectedFill:`#111827`,selectedStroke:`#0f172a`,text:`#111827`,selectedText:`#ffffff`,shadow:`rgb(15 23 42 / 8%)`,connection:`#111827`}}function Qh(e,t,n){t&&(Z.beginPath(),Z.arc(e.x+n*.62,e.y-n*.66,5,0,Math.PI*2),Z.fillStyle=`#34d399`,Z.fill())}function $h(e,t){if(!Rh())return;let n=_g(e),r=Math.min(mp,t-118),i=e-n-24,a=Math.max(24,(t-r)/2);try{let e=Z.drawElementImage(pm,i,a,n,r);pm.style.transform=e.toString()}catch{Up.textContent=`Waiting for HTML snapshot`}}function eg(e,t){let n=Hp.clientWidth,r=Hp.clientHeight,i=Rh()?_g(n)+hp:0,a=Math.max(360,n-i),o=og(),s=sg(o,a,r),c=t?s:Math.min($.zoom,s),l=(o.minX+o.maxX)/2,u=(o.minY+o.maxY)/2,d=a*.5-l*c,f=r*.5-u*c;if(!e||!$.cameraX||!$.cameraY){cg(),$.cameraX=d,$.cameraY=f,$.zoom=c,$.panelShiftX=i;return}$.panelShiftX=i,ag(d,f,c)}function tg(e,t,n){if(t){if(e){let e=ng();$.panelShiftX+=Math.max(0,-e),ig(e,n)}else{let e=Rh();if(e){let t=_g(Hp.clientWidth)+hp,n=(Hp.clientWidth-t)/2-e.x*$.zoom,r=n-$.cameraX;$.panelShiftX=-r,ag(n,$.cameraY,$.zoom)}}return}if(!e)return;let r=$.panelShiftX;$.panelShiftX=0,ig(r,n)}function ng(){let e=Rh();if(!e)return 0;let t=Hp.clientWidth-_g(Hp.clientWidth)-24-Tp,n=rg(e);return n.right<=t?0:t-n.right}function rg(e){let t=bg(e);return{left:t.left*$.zoom+$.cameraX,top:t.top*$.zoom+$.cameraY,right:t.right*$.zoom+$.cameraX,bottom:t.bottom*$.zoom+$.cameraY}}function ig(e,t){if(cg(),!e)return;let n=$.cameraX+e;if(!t){$.cameraX=n;return}ag(n,$.cameraY,$.zoom)}function ag(e,t,n){cg();let r=$.cameraX,i=$.cameraY,a=$.zoom,o=performance.now();function s(c){let l=Math.min(1,(c-o)/Cp),u=1-(1-l)**3;$.cameraX=r+(e-r)*u,$.cameraY=i+(t-i)*u,$.zoom=a+(n-a)*u,Jm(),Uh(),l<1?$.viewAnimationId=requestAnimationFrame(s):$.viewAnimationId=null}$.viewAnimationId=requestAnimationFrame(s)}function og(){return $.entities.reduce((e,t)=>{let n=ah(t);return{minX:Math.min(e.minX,t.x-n),minY:Math.min(e.minY,t.y-n),maxX:Math.max(e.maxX,t.x+n),maxY:Math.max(e.maxY,t.y+n)}},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0})}function sg(e,t,n){let r=e.maxX-e.minX,i=e.maxY-e.minY;if(!Number.isFinite(r)||!Number.isFinite(i)||r<=0||i<=0)return 1;let a=Math.max(1,t-wp*2),o=Math.max(1,n-wp*2);return dg(Math.min(1,a/r,o/i),Dp,1)}function cg(){$.viewAnimationId&&(cancelAnimationFrame($.viewAnimationId),$.viewAnimationId=null)}function lg(e,t){cg();let n=ug(e);$.zoom=dg($.zoom*t,Dp,Op),$.cameraX=e.x-n.x*$.zoom,$.cameraY=e.y-n.y*$.zoom,Uh()}function ug(e){return{x:(e.x-$.cameraX)/$.zoom,y:(e.y-$.cameraY)/$.zoom}}function dg(e,t,n){return Math.min(n,Math.max(t,e))}function fg(e,t){if(e.kind!==`system`&&e.kind!==`llm`)return hg(e,t);let n=e.kind===`system`?op:sp,r=Vh(e.id);return pg(e,n,Math.max(cp,r.length),t)||{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}}function pg(e,t,n,r){let i={x:Math.cos(r),y:Math.sin(r)},a=wg(e.x,e.y,t,n),o=null;for(let t=0;t<a.length;t+=1){let n=a[t],r=a[(t+1)%a.length],s={x:r.x-n.x,y:r.y-n.y},c={x:n.x-e.x,y:n.y-e.y},l=mg(i,s);if(Math.abs(l)<1e-4)continue;let u=mg(c,s)/l,d=mg(c,i)/l;if(u>=0&&d>=0&&d<=1){let t={x:e.x+i.x*u,y:e.y+i.y*u};(!o||u<o.rayDistance)&&(o={...t,rayDistance:u})}}return o?{x:o.x,y:o.y}:null}function mg(e,t){return e.x*t.y-e.y*t.x}function hg(e,t){let n=vg(e),r=n.width/2,i=n.height/2,a=Math.cos(t),o=Math.sin(t),s=Math.min(Math.abs(r/(a||2**-52)),Math.abs(i/(o||2**-52)));return{x:e.x+a*s,y:e.y+o*s}}function gg(e,t){if(e.kind===`system`||e.kind===`llm`){let n=e.kind===`system`?op:sp;return Math.hypot(t.x-e.x,t.y-e.y)<=n+Sp}let{width:n,height:r}=vg(e);return Math.abs(t.x-e.x)<=n/2+Sp&&Math.abs(t.y-e.y)<=r/2+Sp}function _g(e){return Math.min(fp,Math.max(dp,Math.floor(e*pp)))}function vg(e){return e.kind===`mcp`?{width:116,height:58}:{width:ip,height:ap}}function yg(e){return[e,...Hh(e.id).map(zh)].filter(Boolean).map(bg).reduce(xg)}function bg(e){if(e.kind===`system`||e.kind===`llm`){let t=e.kind===`system`?op:sp;return{left:e.x-t,top:e.y-t,right:e.x+t,bottom:e.y+t}}let{width:t,height:n}=vg(e);return{left:e.x-t/2,top:e.y-n/2,right:e.x+t/2,bottom:e.y+n/2}}function xg(e,t){return{left:Math.min(e.left,t.left),top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom)}}function Sg(e,t,n){return!(e.right+n<t.left||e.left-n>t.right||e.bottom+n<t.top||e.top-n>t.bottom)}function Cg(e){let t=Hp.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}}function wg(e,t,n,r){return Array.from({length:r},(i,a)=>{let o=-Math.PI/2+a/r*Math.PI*2;return{x:e+Math.cos(o)*n,y:t+Math.sin(o)*n}})}function Tg(e,t,n,r,i){let a=e+n,o=t+r;Z.beginPath(),Z.moveTo(e+i,t),Z.lineTo(a-i,t),Z.quadraticCurveTo(a,t,a,t+i),Z.lineTo(a,o-i),Z.quadraticCurveTo(a,o,a-i,o),Z.lineTo(e+i,o),Z.quadraticCurveTo(e,o,e,o-i),Z.lineTo(e,t+i),Z.quadraticCurveTo(e,t,e+i,t),Z.closePath()}function Eg(e,t,n,r,i){let a=e.split(/\s+/),o=[],s=``;for(let e of a){let t=s?`${s} ${e}`:e;Z.measureText(t).width>r&&s?(o.push(s),s=e):s=t}o.push(s);let c=n-(o.length-1)*i/2;o.forEach((e,n)=>{Z.fillText(e,t,c+n*i)})}function Dg(e,t,n,r){Z.beginPath(),Z.moveTo(e,t),Z.lineTo(n,r),Z.stroke()}var Og=U(`<div class="status-row"><span id="apiStatus"></span></div>`),kg=U('<div class="app-shell"><!> <section class="workspace-shell" aria-label="Configuration graph workspace"><nav class="rail" aria-label="Workspace tools"><button id="addButton" class="tool-button primary" type="button" title="Add node">+</button> <button id="fitButton" class="tool-button" type="button" title="Fit view">⌖</button></nav> <canvas id="workspaceCanvas" class="workspace-canvas" layoutsubtree=""><form id="configSurface" class="config-surface" autocomplete="off"><div class="panel-kicker"><span id="nodeTypeBadge">Provider</span> <button id="closePanelButton" class="icon-button close" type="button" title="Close panel">×</button></div> <div class="panel-title-row"><label class="eyebrow" for="nodeName">Node name</label> <input id="nodeName" name="nodeName" class="title-input" type="text"/></div> <div class="form-grid"><label class="field"><span>Kind</span> <select id="nodeKind" name="nodeKind"><option>System</option><option>LLM provider</option><option>Agent</option><option>MCP</option></select></label> <div id="llmFields" class="contents"><div id="providerIdField" class="field wide"><span>Provider ID</span> <div class="model-select-wrap"><input id="nodeProviderId" name="nodeProviderId" type="text" readonly=""/> <button id="copyProviderIdButton" class="icon-button" type="button" title="Copy provider ID">⧉</button></div> <small class="field-note">Technical node id. Use it when a tool or agent workflow needs to reference this provider, for example as <code>imageProviderId</code> with <code>generate_image</code>.</small></div> <label class="field wide"><span>Endpoint</span> <input id="nodeEndpoint" name="nodeEndpoint" type="url" placeholder="http://localhost:11434"/></label> <label class="field wide"><span>API token</span> <input id="nodeToken" name="nodeToken" type="text" autocomplete="off" spellcheck="false" placeholder="env:LLM_API_KEY"/> <small class="field-note">Reference an environment variable only — <code>env:VAR_NAME</code> (or <code>{VAR_NAME}</code>). The secret is read from the server environment at request time; literal tokens are not stored (the workspace file is tracked by git).</small></label> <div class="field wide model-field-row"><span>Model</span> <div class="model-select-wrap"><select id="nodeModel" name="nodeModel"><option disabled="" selected="">— click ↻ to load models —</option></select> <button id="loadModelsButton" class="icon-button" type="button" title="Load models from endpoint">↻</button></div></div> <fieldset class="field wide tool-mode-field"><legend>Provider type</legend> <label class="radio-card"><input id="nodeProviderTypeChat" name="nodeProviderType" type="radio" value="chat"/> <span><strong>Chat completion</strong> <small>Uses OpenAI-compatible <code>/chat/completions</code>.</small></span></label> <label class="radio-card"><input id="nodeProviderTypeImage" name="nodeProviderType" type="radio" value="image"/> <span><strong>Image generation</strong> <small>Used by <code>generate_image</code> with the provider id above.</small></span></label></fieldset> <fieldset id="toolModeField" class="field wide tool-mode-field"><legend>Tool calling</legend> <label class="radio-card"><input id="nodeToolModeTools" name="nodeToolMode" type="radio" value="tools"/> <span><strong>Allow MCP tools</strong> <small>Agents can send OpenAI-compatible <code>tools</code> payloads.</small></span></label> <label class="radio-card"><input id="nodeToolModeChat" name="nodeToolMode" type="radio" value="chat"/> <span><strong>Chat only</strong> <small>Agents never send tools, even when an MCP endpoint exists.</small></span></label></fieldset> <label class="field"><span>Timeout</span> <input id="nodeTimeout" name="nodeTimeout" type="number" min="1" max="600" step="1"/></label></div> <label class="field wide"><span>Description</span> <textarea id="nodeDescription" name="nodeDescription" rows="3"></textarea></label></div> <section id="agentSection" class="agent-section" hidden=""><label id="agentProviderField" class="field wide"><span>LLM provider</span> <select id="nodeAgentProvider" name="nodeAgentProvider"></select> <small class="field-note">Move this agent to another LLM provider. It inherits the target provider\'s model and timeout.</small></label> <label id="agentWorkspaceField" class="field wide"><span>Workspace folder</span> <input id="nodeWorkspaceFolder" name="nodeWorkspaceFolder" type="text" readonly=""/></label> <label class="field wide"><span>System prompt</span> <textarea id="nodeSystemPrompt" name="nodeSystemPrompt" rows="5" placeholder="You are a helpful assistant…"></textarea></label> <label class="field wide checkbox-field"><input id="nodeRequiresUserInput" name="nodeRequiresUserInput" type="checkbox"/> <span>Require a user input</span></label> <label id="agentUserInputDescriptionField" class="field wide" hidden=""><span>Describe User input</span> <textarea id="nodeUserInputDescription" name="nodeUserInputDescription" rows="3" placeholder="Describe exactly what the user must provide before running this agent."></textarea></label> <label class="field wide"><span>Required output marker</span> <input id="nodeExpectedOutputMarker" name="nodeExpectedOutputMarker" type="text" placeholder="Optional, e.g. ```mermaid"/></label></section> <section id="mcpInventory" class="mcp-inventory" hidden=""><div class="inventory-header"><span>MCP consultation surface</span> <strong>Streamable HTTP</strong></div> <p id="mcpInventoryStatus" class="inventory-status" hidden=""></p> <div class="inventory-grid"><article><h2>Tools</h2> <ul id="mcpToolsList"></ul></article> <article><h2>Prompts</h2> <ul id="mcpPromptsList"></ul></article></div></section> <footer class="panel-actions"><div class="panel-actions-left"><button id="testNodeButton" class="secondary-button" type="button">Test</button></div> <div class="panel-actions-right"><button id="deleteNodeButton" class="danger-button" type="button">Delete</button></div></footer></form></canvas> <div id="fallbackPanelHost" class="fallback-panel-host" hidden=""></div></section> <div id="deleteConfirmOverlay" class="confirm-overlay" hidden=""><section class="confirm-dialog" role="dialog" aria-modal="true" aria-labelledby="deleteConfirmTitle"><div><p class="confirm-kicker">Destructive change</p> <h2 id="deleteConfirmTitle">Delete node?</h2> <p id="deleteConfirmMessage" class="confirm-message"></p></div> <footer class="confirm-actions"><button id="cancelDeleteButton" class="secondary-button" type="button">Cancel</button> <button id="confirmDeleteButton" class="danger-button" type="button">Delete</button></footer></section></div> <div id="renameConfirmOverlay" class="confirm-overlay" hidden=""><section class="confirm-dialog" role="dialog" aria-modal="true" aria-labelledby="renameConfirmTitle"><div><p class="confirm-kicker">Renommage de dossier</p> <h2 id="renameConfirmTitle">Renommer le dossier ?</h2> <p id="renameConfirmMessage" class="confirm-message"></p></div> <footer class="confirm-actions"><button id="cancelRenameButton" class="secondary-button" type="button">Annuler</button> <button id="confirmRenameButton" class="primary-button" type="button">Renommer</button></footer></section></div> <div id="agentRunOverlay" class="confirm-overlay" hidden=""><section class="agent-run-dialog" role="dialog" aria-modal="true" aria-labelledby="agentRunTitle"><div><p class="confirm-kicker">Agent test</p> <h2 id="agentRunTitle">Run agent</h2> <p id="agentRunHint" class="confirm-message"></p></div> <label id="agentRunInputField" class="field wide agent-run-input-field"><span>User input</span> <textarea id="agentRunInput" name="agentRunInput" rows="6" placeholder="Document ID, question, or any input for the agent…"></textarea></label> <div id="agentRunResult" class="agent-run-result" hidden=""></div> <footer class="confirm-actions"><button id="cancelAgentRunButton" class="secondary-button" type="button">Close</button> <button id="executeAgentRunButton" class="primary-button" type="button">Run</button></footer></section></div></div>');function Ag(e,t){qe(t,!0),Gi(async()=>{try{await ya((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}return bm()});var n=kg(),r=L(n);Qo(r,{title:`Living AI Documentation`,subtitle:`Graph-native configuration workspace`,children:(e,t)=>{var n=Og(),r=L(n);gi(r,1,`status-pill `),r.textContent=`Detecting canvas API`,j(n),W(e,n)},$$slots:{default:!0}});var i=z(r,2),a=z(L(i),2),o=L(a),s=z(L(o),4),c=L(s),l=z(L(c),2),u=L(l);u.value=u.__value=`system`;var d=z(u);d.value=d.__value=`llm`;var f=z(d);f.value=f.__value=`agent`;var p=z(f);p.value=p.__value=`mcp`,j(l),j(c);var m=z(c,2),h=z(L(m),6),g=z(L(h),2),_=L(g),v=L(_);v.value=v.__value=``,j(_),Ie(2),j(g),j(h),Ie(6),j(m),Ie(2),j(s),Ie(6),j(o),j(a),Ie(2),j(i),Ie(6),j(n),W(e,n),Je()}var jg=U(`<p class="files-msg svelte-4q2lov"> </p>`),Mg=U(`<p class="files-msg files-msg--error svelte-4q2lov"> </p>`),Ng=U(`<p class="files-msg files-msg--empty svelte-4q2lov"> </p>`),Pg=U(`<option> </option>`),Fg=U(`<div class="files-toolbar svelte-4q2lov"><label for="files-folder-filter" class="svelte-4q2lov"> </label> <select id="files-folder-filter" data-testid="files-folder-filter" class="svelte-4q2lov"><option> </option><!></select></div>`),Ig=U(`<span class="files-folder svelte-4q2lov"> </span> ·`,1),Lg=U(`<p class="files-row-error svelte-4q2lov"> </p>`),Rg=U(`<li class="files-row svelte-4q2lov"><span class="files-icon svelte-4q2lov">📎</span> <div class="files-info svelte-4q2lov"><a target="_blank" rel="noopener" class="files-name svelte-4q2lov"> </a> <div class="files-meta svelte-4q2lov"><!><!> </div> <!></div> <div class="files-actions svelte-4q2lov"><button type="button" class="files-btn svelte-4q2lov"> </button> <button type="button" class="files-btn files-btn--danger svelte-4q2lov"> </button></div></li>`),zg=U(`<ul class="files-list svelte-4q2lov"></ul>`),Bg=U(`<!> <!>`,1),Vg=U(`<!> <div class="app-shell"><!> <div class="files-page svelte-4q2lov"><!></div></div>`,1);function Hg(e,t){qe(t,!0);let n=P(null),r=P(I([])),i=P(I([])),a=P(``),o=P(!0),s=P(``),c=P(I({})),l=P(I({})),u=P(I({})),d=jf,f=N(()=>V(a)?V(r).filter(e=>e.folder===V(a)||e.folder.startsWith(V(a)+`/`)):V(r));function p(e){return e<1024?Y(`files.size_bytes`).replace(`{n}`,String(e)):e<1024*1024?Y(`files.size_kb`).replace(`{n}`,(e/1024).toFixed(1)):Y(`files.size_mb`).replace(`{n}`,(e/1024/1024).toFixed(2))}function m(e){if(!e)return``;let t=new Date(e);if(isNaN(t.getTime()))return``;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}async function h(){F(o,!0),F(s,``);try{let e=await fetch(`/api/files`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();F(r,Array.isArray(t.files)?t.files:[],!0),F(i,Array.isArray(t.folders)?t.folders:[],!0),V(a)&&!V(i).includes(V(a))&&F(a,``)}catch(e){F(s,Y(`files.error_load`)+(e instanceof Error?e.message:String(e)))}finally{F(o,!1)}}function g(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}function _(e){let t=document.createElement(`input`);t.type=`file`,t.style.display=`none`,document.body.appendChild(t),t.addEventListener(`change`,async()=>{let r=t.files?.[0];if(t.remove(),r&&await V(n).show({kicker:Y(`files.confirm_replace_title`),title:Y(`files.confirm_replace_message`).replace(`{name}`,e.displayName||e.filename).replace(`{newName}`,r.name),message:Y(`files.confirm_replace_detail`),confirmLabel:Y(`files.replace`),cancelLabel:Y(`common.cancel`),danger:!0})){if(r.size>d){F(c,{...V(c),[e.filename]:Y(`files.error_replace`)+`${(r.size/1024/1024).toFixed(1)} MB (max ${Mf} MB)`},!0);return}F(l,{...V(l),[e.filename]:!0},!0),F(c,{...V(c),[e.filename]:``},!0);try{let t=await g(r),n=await fetch(`/api/files/${encodeURIComponent(e.filename)}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||`HTTP ${n.status}`)}await h()}catch(t){F(c,{...V(c),[e.filename]:Y(`files.error_replace`)+(t instanceof Error?t.message:String(t))},!0)}finally{F(l,{...V(l),[e.filename]:!1},!0)}}}),t.click()}async function v(e){if(await V(n).show({kicker:Y(`files.confirm_delete_title`),title:Y(`files.confirm_delete_message`).replace(`{name}`,e.displayName||e.filename),message:Y(`files.confirm_delete_detail`),confirmLabel:Y(`files.delete`),cancelLabel:Y(`common.cancel`),danger:!0})){F(u,{...V(u),[e.filename]:!0},!0),F(c,{...V(c),[e.filename]:``},!0);try{let t=await fetch(`/api/files/${encodeURIComponent(e.filename)}`,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||`HTTP ${t.status}`)}await h()}catch(t){F(c,{...V(c),[e.filename]:Y(`files.error_delete`)+(t instanceof Error?t.message:String(t))},!0)}finally{F(u,{...V(u),[e.filename]:!1},!0)}}}Gi(async()=>{try{await ya((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}await h()});var y=Vg(),b=R(y);Vi(Ua(b,{}),e=>F(n,e,!0),()=>V(n));var x=z(b,2),S=L(x);{let e=N(()=>Y(`files.title`));Qo(S,{get title(){return V(e)},subtitle:``})}var C=z(S,2),w=L(C),T=e=>{var t=jg(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},E=e=>{var t=Mg(),n=L(t,!0);j(t),B(()=>G(n,V(s))),W(e,t)},D=e=>{var t=Ng(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`files.empty`)]),W(e,t)},ee=e=>{var t=Bg(),n=R(t),r=e=>{var t=Fg(),n=L(t),r=L(n,!0);j(n);var o=z(n,2),s=L(o),c=L(s,!0);j(s),s.value=s.__value=``,q(z(s),16,()=>V(i),e=>e,(e,t)=>{var n=Pg(),r=L(n,!0);j(n);var i={};B(()=>{G(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),W(e,n)}),j(o);var l;bi(o),j(t),B((e,t)=>{G(r,e),G(c,t),l!==(l=V(a))&&(o.value=(o.__value=V(a))??``,yi(o,V(a)))},[()=>Y(`files.filter_label`),()=>Y(`files.filter_all`)]),H(`change`,o,e=>F(a,e.target.value,!0)),W(e,t)};K(n,e=>{V(i).length>0&&e(r)});var o=z(n,2),s=e=>{var t=Ng(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`files.empty_filter`)]),W(e,t)},d=e=>{var t=zg();q(t,21,()=>V(f),Xr,(e,t)=>{var n=Rg(),r=z(L(n),2),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o),d=e=>{var n=Ig(),r=R(n),i=L(r,!0);j(r),Ie(),B(()=>G(i,V(t).folder)),W(e,n)};K(s,e=>{V(t).folder&&e(d)});var f=z(s),h=e=>{var n=Ur();B(e=>G(n,`${e??``} ·`),[()=>m(V(t).uploadedAt)]),W(e,n)};K(f,e=>{V(t).uploadedAt&&e(h)});var g=z(f,1,!0);j(o);var y=z(o,2),b=e=>{var n=Lg(),r=L(n,!0);j(n),B(()=>G(r,V(c)[V(t).filename])),W(e,n)};K(y,e=>{V(c)[V(t).filename]&&e(b)}),j(r);var x=z(r,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2),T=L(w,!0);j(w),j(x),j(n),B((e,n,r)=>{J(i,`href`,V(t).url),G(a,V(t).displayName||V(t).filename),G(g,e),S.disabled=V(l)[V(t).filename]||V(u)[V(t).filename],G(C,n),w.disabled=V(l)[V(t).filename]||V(u)[V(t).filename],G(T,r)},[()=>p(V(t).size||0),()=>V(l)[V(t).filename]?Y(`files.replacing`):Y(`files.replace`),()=>V(u)[V(t).filename]?Y(`files.deleting`):Y(`files.delete`)]),H(`click`,S,()=>_(V(t))),H(`click`,w,()=>v(V(t))),W(e,n)}),j(t),W(e,t)};K(o,e=>{V(f).length===0?e(s):e(d,-1)}),W(e,t)};K(w,e=>{V(o)?e(T):V(s)?e(E,1):V(r).length===0?e(D,2):e(ee,-1)}),j(C),j(x),W(e,y),Je()}Pr([`change`,`click`]);var Ug=U(`<p class="browser-msg"> </p>`),Wg=U(`<p class="browser-msg browser-msg--error"> </p>`),Gg=U(`<button class="browser-row browser-row--dir"><span class="browser-row-name"> </span></button>`),Kg=U(`<span class="badge-added"> </span>`),qg=U(`<button class="link-btn"> </button>`),Jg=U(`<div class="browser-row browser-row--file"><span class="browser-row-name"> </span> <!></div>`),Yg=U(`<!> <!>`,1),Xg=U(`<div class="file-browser"><div class="file-browser-toolbar"><button class="link-btn"> </button> <span class="file-browser-path"> </span></div> <div class="file-browser-list" data-testid="instruction-browse-list"><!></div></div>`),Zg=U(`<p class="empty-msg svelte-e5jhdq"> </p>`),Qg=U(`<button class="remove-btn"> </button>`),$g=U(`<div class="instruction-row svelte-e5jhdq"><div class="instruction-info svelte-e5jhdq"><a class="instruction-path svelte-e5jhdq"> </a> <div class="instruction-meta svelte-e5jhdq"> <!></div></div> <div class="instruction-actions svelte-e5jhdq"><span> </span> <!></div></div>`),e_=U(`<div class="section-card svelte-e5jhdq"><div class="section-header svelte-e5jhdq"><span class="section-title svelte-e5jhdq"> </span> <div class="header-actions svelte-e5jhdq"><span class="count-label svelte-e5jhdq"> </span> <button class="secondary-button btn-sm"> </button></div></div> <!> <div class="instruction-list svelte-e5jhdq" data-testid="instruction-list"><!></div></div>`);function t_(e,t){qe(t,!0);let n=Wi(t,`items`,27,()=>I([])),r=P(!1),i=P(``),a=P(``),o=P(I([])),s=P(I([])),c=P(!1),l=P(!1),u=N(()=>new Set(n().map(e=>d(e.path))));function d(e){return String(e||``).split(/[/\\]/).pop()||``}function f(e){let t=encodeURIComponent(String(e||``).replace(/\.md$/i,``));return`/?doc=`+encodeURIComponent(t)}function p(e){return Y(`context.root.${e}`)}function m(e){return Y(`context.type.${e}`)}async function h(e){F(c,!0),F(l,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(i,t.current,!0),F(a,t.parent||``,!0),F(o,t.dirs||[],!0),F(s,t.files||[],!0)}catch{F(l,!0)}finally{F(c,!1)}}async function g(){F(r,!V(r)),V(r)&&!V(i)&&await h((await fetch(`/api/context/orientation`).then(e=>e.json()).catch(()=>({}))).sourceRoot||``)}async function _(e){await t.onAdd(e),V(r)&&V(i)&&await h(V(i))}var v=e_(),y=L(v),b=L(y),x=L(b,!0);j(b);var S=z(b,2),C=L(S),w=L(C);j(C);var T=z(C,2),E=L(T,!0);j(T),j(S),j(y);var D=z(y,2),ee=e=>{var t=Xg(),n=L(t),r=L(n),d=L(r,!0);j(r);var f=z(r,2),p=L(f,!0);j(f),j(n);var m=z(n,2),g=L(m),v=e=>{var t=Ug(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},y=e=>{var t=Wg(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.cannot_read_dir`)]),W(e,t)},b=e=>{var t=Ug(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.empty_dir`)]),W(e,t)},x=e=>{var t=Yg(),n=R(t);q(n,17,()=>V(o),Xr,(e,t)=>{var n=Gg(),r=L(n),i=L(r);j(r),j(n),B(()=>G(i,`📁 ${V(t).name??``}`)),H(`click`,n,()=>h(V(t).path)),W(e,n)}),q(z(n,2),17,()=>V(s),Xr,(e,t)=>{var n=Jg(),r=L(n),i=L(r);j(r);var a=z(r,2),o=e=>{var t=Kg(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.added`)]),W(e,t)},s=N(()=>V(u).has(V(t).name)),c=e=>{var n=qg(),r=L(n,!0);j(n),B(e=>G(r,e),[()=>Y(`context.add_file_action`)]),H(`click`,n,()=>_(V(t).path)),W(e,n)};K(a,e=>{V(s)?e(o):e(c,-1)}),j(n),B(()=>G(i,`📄 ${V(t).name??``}`)),W(e,n)}),W(e,t)};K(g,e=>{V(c)?e(v):V(l)?e(y,1):!V(o).length&&!V(s).length?e(b,2):e(x,-1)}),j(m),j(t),B(e=>{r.disabled=!V(a),G(d,e),G(p,V(i))},[()=>Y(`common.up`)]),H(`click`,r,()=>V(a)&&h(V(a))),W(e,t)};K(D,e=>{V(r)&&e(ee)});var te=z(D,2),O=L(te),k=e=>{var t=Zg(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.no_instructions`)]),W(e,t)},ne=e=>{var r=Wr();q(R(r),17,n,Xr,(e,n)=>{var r=$g(),i=L(r),a=L(i),o=L(a,!0);j(a);var s=z(a,2),c=L(s),l=z(c),u=e=>{var t=Ur();B(e=>G(t,`· ${e??``} KB`),[()=>Math.round(V(n).size/1024)]),W(e,t)};K(l,e=>{V(n).size!==null&&e(u)}),j(s),j(i);var h=z(i,2),g=L(h),_=L(g,!0);j(g);var v=z(g,2),y=e=>{var r=Qg(),i=L(r,!0);j(r),B(e=>G(i,e),[()=>Y(`common.remove`)]),H(`click`,r,()=>t.onRemove(d(V(n).path))),W(e,r)};K(v,e=>{V(n).exists&&e(y)}),j(h),j(r),B((e,t,r,i)=>{J(a,`href`,e),G(o,V(n).path),G(c,`${t??``} · ${r??``} `),gi(g,1,ui(V(n).exists?`status-ok`:`status-missing`),`svelte-e5jhdq`),G(_,i)},[()=>f(V(n).path),()=>p(V(n).root),()=>m(V(n).type),()=>V(n).exists?Y(`context.exists`):Y(`context.missing`)]),W(e,r)}),W(e,r)};K(O,e=>{n().length?e(ne,-1):e(k)}),j(te),j(v),B((e,t,r)=>{G(x,e),G(w,`${t??``}/${n().length??``}`),G(E,r)},[()=>Y(`context.instructions_title`),()=>n().filter(e=>e.exists).length,()=>V(r)?Y(`context.hide_instruction_browser`):Y(`context.add_instruction_file`)]),H(`click`,T,g),W(e,v),Je()}Pr([`click`]);var n_=U(`<span class="rules-folder svelte-1r3tey2"> </span>`),r_=U(`<p class="empty-msg svelte-1r3tey2"> </p>`),i_=U(`<span class="tag svelte-1r3tey2"> </span>`),a_=U(`<div class="rule-tags svelte-1r3tey2"></div>`),o_=U(`<div class="rule-applies svelte-1r3tey2"> </div>`),s_=U(`<article class="rule-row svelte-1r3tey2"><div class="rule-top svelte-1r3tey2"><div class="rule-title-wrap svelte-1r3tey2"><h3 class="rule-title svelte-1r3tey2"><a class="rule-link svelte-1r3tey2"> </a></h3> <a class="rule-path svelte-1r3tey2"> </a></div> <span class="severity-badge svelte-1r3tey2"> </span></div> <p class="rule-desc svelte-1r3tey2"> </p> <!> <!></article>`),c_=U(`<div class="rules-layout svelte-1r3tey2"><div class="section-card svelte-1r3tey2"><div class="section-header svelte-1r3tey2"><span class="section-title svelte-1r3tey2" data-testid="rules-title"> </span> <!></div> <div class="rule-list svelte-1r3tey2" data-testid="rule-list"><!></div></div> <div class="section-card aside-card svelte-1r3tey2"><span class="section-title svelte-1r3tey2" data-testid="add-rule-title"> </span> <div class="field-group"><label class="field-label" for="ruleTitle"> </label> <input id="ruleTitle" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleSeverity"> </label> <select id="ruleSeverity" class="field-input"><option> </option><option> </option><option> </option></select></div> <div class="field-group"><label class="field-label" for="ruleDescription"> </label> <input id="ruleDescription" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleTags"> </label> <input id="ruleTags" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleAppliesTo"> </label> <input id="ruleAppliesTo" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleBody"> </label> <textarea id="ruleBody" rows="7" class="field-input"></textarea></div> <button class="btn-primary" style="width:100%"> </button></div></div>`);function l_(e,t){qe(t,!0);let n=Wi(t,`rules`,19,()=>[]),r=Wi(t,`rulesFolder`,3,``),i=P(``),a=P(`guideline`),o=P(``),s=P(``),c=P(``),l=P(``),u=P(!1);function d(e){let t=encodeURIComponent(String(e||``).replace(/\.md$/i,``));return`/?doc=`+encodeURIComponent(t)}function f(e){let t=`context.rule_severity_${e}`,n=Y(t);return n===t?e:n}function p(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}async function m(){if(V(i).trim()){F(u,!0);try{await t.onAdd({title:V(i).trim(),severity:V(a),description:V(o).trim(),tags:p(V(s)),appliesTo:p(V(c)),body:V(l).trim()}),F(i,``),F(o,``),F(s,``),F(c,``),F(l,``)}finally{F(u,!1)}}}var h=c_(),g=L(h),_=L(g),v=L(_),y=L(v,!0);j(v);var b=z(v,2),x=e=>{var t=n_(),n=L(t,!0);j(t),B(()=>G(n,r())),W(e,t)};K(b,e=>{r()&&e(x)}),j(_);var S=z(_,2),C=L(S),w=e=>{var t=r_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.no_rules`)]),W(e,t)},T=e=>{var t=Wr();q(R(t),17,n,Xr,(e,t)=>{var n=s_(),r=L(n),i=L(r),a=L(i),o=L(a),s=L(o,!0);j(o),j(a);var c=z(a,2),l=L(c,!0);j(c),j(i);var u=z(i,2),p=L(u,!0);j(u),j(r);var m=z(r,2),h=L(m,!0);j(m);var g=z(m,2),_=e=>{var n=a_();q(n,21,()=>V(t).tags,Xr,(e,t)=>{var n=i_(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(n),W(e,n)};K(g,e=>{V(t).tags?.length&&e(_)});var v=z(g,2),y=e=>{var n=o_(),r=L(n,!0);j(n),B(e=>G(r,e),[()=>V(t).appliesTo.join(`, `)]),W(e,n)};K(v,e=>{V(t).appliesTo?.length&&e(y)}),j(n),B((e,n,r)=>{J(o,`href`,e),G(s,V(t).title),J(c,`href`,n),G(l,V(t).path),G(p,r),G(h,V(t).description)},[()=>d(V(t).path),()=>d(V(t).path),()=>f(V(t).severity)]),W(e,n)}),W(e,t)};K(C,e=>{n().length?e(T,-1):e(w)}),j(S),j(g);var E=z(g,2),D=L(E),ee=L(D,!0);j(D);var te=z(D,2),O=L(te),k=L(O,!0);j(O);var ne=z(O,2);Di(ne),j(te);var A=z(te,2),re=L(A),ie=L(re,!0);j(re);var ae=z(re,2),oe=L(ae),se=L(oe,!0);j(oe),oe.value=oe.__value=`guideline`;var ce=z(oe),le=L(ce,!0);j(ce),ce.value=ce.__value=`warning`;var ue=z(ce),de=L(ue,!0);j(ue),ue.value=ue.__value=`required`,j(ae),j(A);var fe=z(A,2),pe=L(fe),me=L(pe,!0);j(pe);var he=z(pe,2);Di(he),j(fe);var ge=z(fe,2),_e=L(ge),ve=L(_e,!0);j(_e);var ye=z(_e,2);Di(ye),j(ge);var be=z(ge,2),xe=L(be),Se=L(xe,!0);j(xe);var Ce=z(xe,2);Di(Ce),j(be);var we=z(be,2),Te=L(we),Ee=L(Te,!0);j(Te);var De=z(Te,2);yn(De),j(we);var Oe=z(we,2),ke=L(Oe,!0);j(Oe),j(E),j(h),B((e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)=>{G(y,e),G(ee,t),G(k,n),J(ne,`placeholder`,r),G(ie,i),G(se,a),G(le,o),G(de,s),G(me,c),J(he,`placeholder`,l),G(ve,u),J(ye,`placeholder`,d),G(Se,f),J(Ce,`placeholder`,p),G(Ee,m),J(De,`placeholder`,h),Oe.disabled=g,G(ke,_)},[()=>Y(`context.rules_title`),()=>Y(`context.add_rule_title`),()=>Y(`context.rule_title_label`),()=>Y(`context.rule_title_placeholder`),()=>Y(`context.rule_severity_label`),()=>Y(`context.rule_severity_guideline`),()=>Y(`context.rule_severity_warning`),()=>Y(`context.rule_severity_required`),()=>Y(`context.rule_description_label`),()=>Y(`context.rule_description_placeholder`),()=>Y(`context.rule_tags_label`),()=>Y(`context.rule_tags_placeholder`),()=>Y(`context.rule_applies_to_label`),()=>Y(`context.rule_applies_to_placeholder`),()=>Y(`context.rule_body_label`),()=>Y(`context.rule_body_placeholder`),()=>V(u)||!V(i).trim(),()=>Y(`context.add_rule_button`)]),Ni(ne,()=>V(i),e=>F(i,e)),xi(ae,()=>V(a),e=>F(a,e)),Ni(he,()=>V(o),e=>F(o,e)),Ni(ye,()=>V(s),e=>F(s,e)),Ni(Ce,()=>V(c),e=>F(c,e)),Ni(De,()=>V(l),e=>F(l,e)),H(`click`,Oe,m),W(e,h),Je()}Pr([`click`]);var u_=U(`<p class="empty-msg svelte-1ui2b6s"> </p>`),d_=U(`<p class="mcp-desc svelte-1ui2b6s"> </p>`),f_=U(`<div class="mcp-schema-wrap svelte-1ui2b6s"><h4 class="mcp-schema-title svelte-1ui2b6s"> </h4> <pre class="mcp-schema-pre svelte-1ui2b6s"> </pre></div>`),p_=U(`<div class="mcp-result svelte-1ui2b6s" data-testid="mcp-result"></div>`),m_=U(`<details class="mcp-detail svelte-1ui2b6s"><summary class="mcp-summary svelte-1ui2b6s"> </summary> <!> <!> <div class="mcp-run-area svelte-1ui2b6s"><label class="mcp-run-label svelte-1ui2b6s"> </label> <textarea rows="4" spellcheck="false" class="field-input mcp-textarea svelte-1ui2b6s" data-testid="mcp-args"></textarea> <div class="mcp-run-footer svelte-1ui2b6s"><span class="mcp-error-text svelte-1ui2b6s" data-testid="mcp-error"> </span> <button class="btn-primary btn-sm"> </button></div> <!></div></details>`),h_=U(`<p class="mcp-arg-desc svelte-1ui2b6s"> </p>`),g_=U(`<li class="mcp-arg-item svelte-1ui2b6s"><div class="mcp-arg-name-row svelte-1ui2b6s"><span class="mcp-arg-name svelte-1ui2b6s"> </span> <span class="mcp-arg-req svelte-1ui2b6s"> </span></div> <!></li>`),__=U(`<div class="mcp-schema-wrap svelte-1ui2b6s"><h4 class="mcp-schema-title svelte-1ui2b6s"> </h4> <ul class="mcp-args-list svelte-1ui2b6s"></ul></div>`),v_=U(`<div class="section-card svelte-1ui2b6s"><div class="section-header svelte-1ui2b6s"><span class="section-title svelte-1ui2b6s" data-testid="mcp-title"> </span> <button class="secondary-button btn-sm"> </button></div> <p class="section-desc svelte-1ui2b6s"> </p> <div class="mcp-info-grid svelte-1ui2b6s"><div class="mcp-info-cell svelte-1ui2b6s"><div class="mcp-info-label svelte-1ui2b6s"> </div> <div> </div></div> <div class="mcp-info-cell svelte-1ui2b6s"><div class="mcp-info-label svelte-1ui2b6s"> </div> <div class="mcp-info-value mono svelte-1ui2b6s"> </div></div> <div class="mcp-info-cell wide svelte-1ui2b6s"><div class="mcp-info-label svelte-1ui2b6s"> </div> <div class="mcp-info-value mono break svelte-1ui2b6s" data-testid="mcp-endpoint"> </div></div></div> <div><div class="subsection-header svelte-1ui2b6s"><span class="subsection-title svelte-1ui2b6s"> </span> <div class="subsection-actions svelte-1ui2b6s"><span class="count-label svelte-1ui2b6s"> </span> <button class="secondary-button btn-sm"> </button></div></div> <div class="mcp-items svelte-1ui2b6s" data-testid="mcp-tool-list"><!></div></div> <div><div class="subsection-header svelte-1ui2b6s"><span class="subsection-title svelte-1ui2b6s"> </span> <div class="subsection-actions svelte-1ui2b6s"><span class="count-label svelte-1ui2b6s"> </span> <button class="secondary-button btn-sm"> </button></div></div> <div class="mcp-items svelte-1ui2b6s" data-testid="mcp-prompt-list"><!></div></div></div>`);function y_(e,t){qe(t,!0);let n=P(`-`),r=P(!1),i=P(`-`),a=P(`-`),o=P(I([])),s=P(I([])),c=P(!1),l=P(I(new Map)),u=P(I(new Map));function d(e,t){let n=V(e===`tool`?l:u);return n.has(t)||n.set(t,{argsJson:`{}`,running:!1,error:``,resultHtml:``}),n.get(t)}function f(e,t,n){let r=V(e===`tool`?l:u).get(t)??{argsJson:`{}`,running:!1,error:``,resultHtml:``};e===`tool`?F(l,new Map(V(l)).set(t,{...r,...n}),!0):F(u,new Map(V(u)).set(t,{...r,...n}),!0)}function p(e){if(!e||typeof e!=`object`)return null;if(e.type===`string`)return``;if(e.type===`number`||e.type===`integer`)return 0;if(e.type===`boolean`)return!1;if(e.type===`array`)return[];if(e.type===`object`||e.properties){let t={},n=e.properties||{};return(Array.isArray(e.required)?e.required:[]).forEach(e=>{t[e]=p(n[e])??``}),t}return null}function m(e){let t=p(e.inputSchema)??{},n=JSON.stringify(t,null,2);F(l,new Map(V(l)).set(e.name,{argsJson:n,running:!1,error:``,resultHtml:``}),!0)}function h(e){let t={};(e.arguments||[]).forEach(e=>{e.required&&(t[e.name]=``)});let n=JSON.stringify(t,null,2);F(u,new Map(V(u)).set(e.name,{argsJson:n,running:!1,error:``,resultHtml:``}),!0)}function g(e){let t=e.match(/^data:\s*(\{.*\})\s*$/m);if(!t)throw Error(e.slice(0,300)||`No MCP response body`);return JSON.parse(t[1])}async function _(e,t,n){let r=await fetch(`/mcp`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json, text/event-stream`},body:JSON.stringify({jsonrpc:`2.0`,id:e,method:t,params:n})}),i=await r.text();if(!r.ok)throw Error(i||`HTTP ${r.status}`);return g(i)}async function v(){await _(1,`initialize`,{protocolVersion:`2025-03-26`,capabilities:{},clientInfo:{name:`living-ai-documentation-context`,version:`1.0.0`}})}function y(e){return"```json\n"+JSON.stringify(e,null,2).replaceAll("```","`\\`\\`")+"\n```"}function b(e){if(typeof e!=`string`)return y(e);try{return y(JSON.parse(e))}catch{return e}}function x(e){if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return String(e??``);if(e.error)return y(e.error);let t=e.result;return!t||typeof t!=`object`?y(e):Array.isArray(t.messages)?t.messages.map(e=>`${e.role?`[${e.role}]`:``}\n${b(e.content?.text??e.content??e)}`.trim()).join(`
|
|
91
|
+
`,t);return n>=0?n:0}c=c.nextElementSibling}return e.length}function Nf(e,t,n){if(!e||typeof t!=`string`)return()=>{};let r=Sf(t);wf(e,r);let i=i=>{let a=i.target?.closest(`[data-inline-snippet-index]`);if(a&&e.contains(a)){let e=r[Number(a.dataset.inlineSnippetIndex)];if(!e)return;i.preventDefault();let t=df(e.type),o=pf(e.type);Ef(i,[{iconClass:t.iconClass,labelKey:t.labelKey,dataAction:`edit`,dataType:e.type,onActivate:()=>n.onEdit(e)},{iconClass:o.iconClass,labelKey:o.labelKey,dataAction:`delete`,dataType:e.type,onActivate:()=>n.onDelete(e)}]);return}if(!e.contains(i.target))return;let o=Mf(t,e,i.target,r,i.clientY);o!==null&&(i.preventDefault(),Ef(i,{iconClass:`fa-solid fa-plus`,labelKey:`snippet.inline_insert_btn`,dataAction:`insert`,onActivate:()=>n.onInsert(o)}))};e.addEventListener(`contextmenu`,i);let a=t=>{let i=t.target?.closest(`[data-inline-snippet-index]`);if(!i||!e.contains(i))return;let a=r[Number(i.dataset.inlineSnippetIndex)];a?.type===`table`&&(t.preventDefault(),t.stopPropagation(),Tf(),n.onEdit({...a,tableFocusCell:Of(t.target,i)||void 0}))};e.addEventListener(`dblclick`,a);let o=e.closest(`#home-content-area`)||e.closest(`main`),s=null;o&&(s=r=>{r.defaultPrevented||e.offsetParent!==null&&(r.target?.closest(`textarea, input, [data-inline-snippet-index]`)||e.contains(r.target)||(r.preventDefault(),Ef(r,{iconClass:`fa-solid fa-plus`,labelKey:`snippet.inline_insert_btn`,dataAction:`insert`,onActivate:()=>n.onInsert(t.length)})))},o.addEventListener(`contextmenu`,s));let c=e=>{hf&&!hf.contains(e.target)&&Tf()},l=e=>{e.key===`Escape`&&Tf()};return document.addEventListener(`click`,c),document.addEventListener(`keydown`,l),()=>{e.removeEventListener(`contextmenu`,i),e.removeEventListener(`dblclick`,a),o&&s&&o.removeEventListener(`contextmenu`,s),document.removeEventListener(`click`,c),document.removeEventListener(`keydown`,l),Tf(),e.querySelectorAll(`[data-inline-snippet-index]`).forEach(e=>{e.removeAttribute(`data-inline-snippet-index`),e.classList.remove(`ld-inline-snippet-target`)})}}var Pf=200*1024*1024,Ff=Math.round(Pf/1024/1024);Math.ceil(Pf*1.4);var If=U(`<textarea id="doc-editor" data-testid="doc-editor" spellcheck="false" class="w-full min-h-[70vh] px-4 py-3 text-sm font-mono leading-relaxed rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 resize-y"></textarea>`),Lf=U(`<div id="doc-content" data-testid="doc-content"></div>`),Rf=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-sm mx-4 p-6 space-y-5"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"> </h3> <div class="space-y-1.5"><label for="img-paste-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> <span class="font-normal text-gray-400"> </span></label> <div class="flex items-center gap-2"><input id="img-paste-name" type="text" class="flex-1 px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="text-xs text-gray-400 shrink-0"> </span></div></div> <div class="flex justify-end gap-3 pt-1"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`),zf=U(`<div data-testid="content-lightbox" class="fixed inset-0 z-50 bg-white flex items-center justify-center cursor-pointer p-4"><img data-testid="lightbox-image" class="max-w-full max-h-full object-contain select-none"/> <button class="absolute top-4 right-4 text-gray-500 hover:text-gray-950 text-2xl leading-none">×</button></div>`),Bf=U(`<!> <!> <!> <!>`,1);function Vf(e,t){qe(t,!0);let n=qi(t,`onopen`,3,()=>{}),r=qi(t,`onanchor`,3,D),i=qi(t,`onconfirmdelete`,3,void 0),a=qi(t,`oncontentwired`,3,void 0),o=qi(t,`rewireSignal`,3,void 0),s=qi(t,`editing`,15,!1),c=qi(t,`saveMsg`,15,null),l=P(null),u=P(null),d=P(``),f=null,p=P(!1),m=P(`insert`),h=P(null),g=P(0),_=P(!1),v=P(``),y=P(`png`),b=null,x=0,S=0,C=P(null),w=P(``),T=/[̀-ͯ]/g;function E(e){return(e||``).normalize(`NFD`).replace(T,``).toLowerCase().replace(/[^a-z0-9]/g,`_`)}function D(e){document.getElementById(e)?.scrollIntoView({behavior:`smooth`,block:`start`})}Ji(()=>{let e=window;return e.openSnippetsModal=()=>{F(m,`insert`),F(p,!0)},e.openSnippetsModalForInlineInsert=e=>{F(m,`inline-insert`),F(g,Math.max(0,Number(e)||0),!0),F(p,!0)},()=>{delete e.openSnippetsModal,delete e.openSnippetsModalForInlineInsert}}),kn(()=>{if(o(),t.html,t.content,f?.(),f=null,!(s()||!V(l)))return gd(V(l),t.html,{content:t.content,codeBlockMaxHeight:X.codeBlockMaxHeight,t:Y,onDocLink:(e,t)=>n()(e,t),onAnchor:r(),docId:t.docId,docs:X.allDocs,docsFolder:X.docsFolder,folderPaths:X.allFolderPaths,onKanbanDocsChange:e=>{X.allDocs=e},onKanbanFolderPathsChange:e=>{X.allFolderPaths=e}})||(f=Nf(V(l),t.content,{onEdit:e=>{F(m,`inline-edit`),F(h,e,!0),F(p,!0)},onInsert:e=>{F(m,`inline-insert`),F(g,e,!0),F(p,!0)},onDelete:async e=>{(i()?await i()():confirm(Y(`snippet.inline_delete_message`)))&&await t.onsave(t.content.slice(0,e.start)+t.content.slice(e.end))}})),a()?.(V(l)),()=>{f?.(),f=null}});function ee(){F(d,t.content,!0),s(!0),c(null),requestAnimationFrame(()=>V(u)?.focus())}function te(){s(!1),c(null)}async function O(){c({text:Y(`doc.saving`),cls:`text-gray-400`});try{await t.onsave(V(d)),s(!1),c(null)}catch(e){c({text:Y(`error.save`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`})}}function k(){F(m,`insert`),F(p,!0)}function ne(){let e=Hu(t.content);e&&(F(m,`inline-edit`),F(h,e,!0),F(p,!0))}function A(){return s()}function re(e){let t=Array.from(e.clipboardData?.items??[]).find(e=>e.type.startsWith(`image/`));if(t){e.preventDefault(),x=V(u).selectionStart,S=V(u).selectionEnd,F(y,t.type.split(`/`)[1].replace(`jpeg`,`jpg`)||`png`,!0);let n=t.getAsFile();if(!n)return;b=n,F(v,E(Date.now().toString()),!0),F(_,!0);return}let n=Array.from(e.clipboardData?.files??[]).filter(e=>!e.type.startsWith(`image/`));if(n.length){e.preventDefault();let t=V(u).selectionStart,r=V(u).selectionEnd;(async()=>{for(let e of n)await le(e,t,r)})()}}function ie(e){let t=Array.from(e.dataTransfer?.files??[]).filter(e=>!e.type.startsWith(`image/`));if(!t.length)return;e.preventDefault(),e.stopPropagation();let n=V(u).selectionStart,r=V(u).selectionEnd;(async()=>{for(let e of t)await le(e,n,r)})()}function ae(e){e.dataTransfer?.types?.includes(`Files`)&&(e.preventDefault(),e.dataTransfer.dropEffect=`copy`)}function oe(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}function se(e,t,n){let r=V(d).slice(0,t),i=V(d).slice(n);F(d,r+e+i),requestAnimationFrame(()=>{V(u).selectionStart=V(u).selectionEnd=t+e.length,V(u).focus()})}let ce=Pf;async function le(e,n,r){if(e.size>ce){c({text:Y(`doc.file_too_large`)+` (${(e.size/1024/1024).toFixed(1)} MB, max ${Ff} MB)`,cls:`text-red-500 dark:text-red-400`});return}c({text:Y(`doc.uploading_file`),cls:`text-gray-400`});try{let i=await oe(e),a=await fetch(`/api/files/upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:i,name:e.name,documentId:t.docId})});if(!a.ok){let e=``;try{e=(await a.json()).error||``}catch{e=await a.text()}throw Error(e||`HTTP ${a.status}`)}let{url:o,originalName:s}=await a.json();se(`[📎 ${s||e.name}](${o})`,n,r),c(null)}catch(e){c({text:Y(`doc.file_upload_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`})}}function ue(){F(_,!1),b=null}async function de(){let e=E(V(v))||Date.now().toString();if(F(_,!1),b){c({text:Y(`doc.uploading_image`),cls:`text-gray-400`});try{let t=await oe(b),n=await fetch(`/api/images/upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:t,ext:V(y),name:e})});if(!n.ok)throw Error(await n.text());let{filename:r}=await n.json();se(``,x,S),c(null)}catch(e){c({text:Y(`doc.image_upload_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`})}finally{b=null}}}function fe(){F(C,null),F(w,``)}function pe(e){if(!e.shiftKey&&!e.metaKey)return;let t=e.target,n=t.closest(`img`),r=t.closest(`.mermaid`)?.querySelector(`svg`);if(!n&&!r)return;if(e.preventDefault(),e.stopPropagation(),n){F(C,n.src,!0),F(w,n.alt||``,!0);return}let i=new XMLSerializer().serializeToString(r);F(C,`data:image/svg+xml;charset=utf-8,${encodeURIComponent(i)}`),F(w,Y(`doc.mermaid_diagram_alt`),!0)}function me(e){e.key===`Escape`&&V(C)&&fe()}var he={enterEdit:ee,cancelEdit:te,save:O,openSnippets:k,openKanbanColumnsEditor:ne,isEditing:A},ge=Bf();Nr(`keydown`,on,me);var _e=R(ge),ve=e=>{var t=If();yn(t),Ui(t,e=>F(u,e),()=>V(u)),Nr(`paste`,t,re),Nr(`drop`,t,ie),Nr(`dragover`,t,ae),Fi(t,()=>V(d),e=>F(d,e)),W(e,t)},ye=e=>{var t=Lf();Ui(t,e=>F(l,e),()=>V(l)),B(()=>vi(t,1,`prose prose-gray dark:prose-invert max-w-none prose-headings:scroll-mt-4 prose-headings:font-semibold prose-h1:text-[2.1875rem] prose-h2:text-[1.8125rem] prose-h3:text-[1.5rem] prose-h4:text-[1.25rem] prose-a:text-blue-600 dark:prose-a:text-blue-400 prose-code:before:content-none prose-code:after:content-none ${X.codeBlockLightTheme?`prose-pre:bg-[#f6f8fa] prose-pre:text-gray-800 prose-pre:border prose-pre:border-gray-200 prose-pre:rounded-lg dark:prose-pre:bg-[#0d1117] dark:prose-pre:text-gray-100 dark:prose-pre:border-gray-700`:`prose-pre:bg-[#0d1117] prose-pre:border prose-pre:border-gray-700`} ${X.imageRoundedCorners?`[&_img]:rounded-xl`:``} ${X.imageCentered?`[&_img]:mx-auto [&_img]:block`:``} ${X.imageBorder?`[&_img]:[box-shadow:0_0_0_1px_rgba(0,0,0,0.10),0_4px_12px_rgba(0,0,0,0.04)] dark:[&_img]:[box-shadow:0_0_0_1px_rgba(255,255,255,0.08),0_4px_12px_rgba(255,255,255,0.25)]`:``}`)),H(`click`,t,pe),W(e,t)};K(_e,e=>{s()?e(ve):e(ye,-1)});var be=z(_e,2);cf(be,{get open(){return V(p)},get editor(){return V(u)},get mode(){return V(m)},get docId(){return t.docId},get content(){return t.content},get range(){return V(h)},get insertPos(){return V(g)},get onsave(){return t.onsave},onclose:()=>F(p,!1)});var xe=z(be,2),Se=e=>{var t=Rf(),n=L(t),r=L(n),i=L(r);j(r);var a=z(r,2),o=L(a),s=L(o),c=z(s),l=L(c,!0);j(c),j(o);var u=z(o,2),d=L(u);ki(d);var f=z(d,2),p=L(f);j(f),j(u),j(a);var m=z(a,2),h=L(m),g=L(h,!0);j(h);var _=z(h,2),b=L(_,!0);j(_),j(m),j(n),j(t),B((e,t,n,r,a)=>{G(i,`🖼️ ${e??``}`),G(s,`${t??``} `),G(l,n),Ai(d,V(v)),G(p,`.${V(y)??``}`),G(g,r),G(b,a)},[()=>Y(`modal.img_paste.title`),()=>Y(`modal.img_paste.filename_label`),()=>Y(`modal.img_paste.saved_hint`),()=>Y(`common.cancel`),()=>Y(`modal.img_paste.paste_btn`)]),H(`input`,d,e=>F(v,E(e.target.value),!0)),H(`click`,h,ue),H(`click`,_,de),W(e,t)};K(xe,e=>{V(_)&&e(Se)});var Ce=z(xe,2),we=e=>{var t=zf(),n=L(t),r=z(n,2);j(t),B(()=>{J(n,`src`,V(C)),J(n,`alt`,V(w))}),H(`click`,t,fe),H(`click`,n,e=>e.stopPropagation()),H(`click`,r,fe),W(e,t)};return K(Ce,e=>{V(C)&&e(we)}),W(e,ge),Je(he)}Pr([`click`,`input`]);var Hf=U(`<span> </span> <code> </code>`,1),Uf=U(`<button type="button" data-testid="bp-copy-doc-id"><i aria-hidden="true"></i></button>`),Wf=U(`<button class="bpadr-icon-btn" data-testid="bp-edit" type="button">✏️</button> <button class="bpadr-icon-btn" data-testid="bp-delete" type="button">🗑️</button>`,1),Gf=U(`<span> </span>`),Kf=U(`<footer class="bpadr-footer bpadr-doc-footer"><!> <button type="button" class="bpadr-btn-ghost" data-testid="bp-cancel"> </button> <button type="button" class="bpadr-btn-ghost" data-testid="bp-snippets"> </button> <button type="button" class="bpadr-btn-primary" data-testid="bp-save"> </button></footer>`),qf=U(`<div class="bpadr-read"><!></div> <!>`,1),Jf=U(`<form class="bpadr-form"><input type="hidden" name="category"/> <input type="hidden" name="folder"/> <div class="bpadr-field"><label for="adr-title"> </label> <input id="adr-title" type="text" class="bpadr-input"/></div> <div class="bpadr-field bpadr-field-grow"><label for="adr-content"> </label> <textarea id="adr-content" class="bpadr-textarea"></textarea></div> <footer class="bpadr-footer"><button type="button" class="bpadr-btn-ghost"> </button> <button type="button" data-testid="bp-form-snippets" class="bpadr-btn-ghost"> </button> <button type="submit" class="bpadr-btn-primary"> </button></footer></form> <!>`,1),Yf=U(`<div class="bpadr-folder-confirm"><p></p> <p class="bpadr-muted"> </p> <footer class="bpadr-footer"><button type="button" class="bpadr-btn-ghost"> </button> <button type="button" class="bpadr-btn-primary"> </button></footer></div>`),Xf=U(`<div class="bpadr-overlay"><div class="bpadr-modal"><header class="bpadr-header"><div class="bpadr-title-row"><h2 class="bpadr-title"><!></h2> <!></div> <div class="bpadr-header-actions"><!> <button class="bpadr-icon-btn" type="button" title="Close">×</button></div></header> <!></div></div>`),Zf=U(`<div class="fixed inset-0 z-[60] flex items-center justify-center bg-black/50 p-4"><div class="w-full max-w-sm bg-white dark:bg-gray-900 border border-red-200 dark:border-red-700 rounded-xl shadow-2xl p-5 flex flex-col gap-3"><p class="text-sm text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-500 dark:text-gray-400 italic truncate"> </p> <div class="flex justify-end gap-2 mt-2"><button type="button" data-testid="bp-delete-cancel" class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button type="button" data-testid="bp-delete-confirm" class="text-sm px-4 py-1.5 rounded-lg bg-red-500 hover:bg-red-600 text-white font-semibold transition-colors"> </button></div></div></div>`),Qf=U(`<!> <!>`,1);function $f(e,t){qe(t,!0);let n=qi(t,`onchanged`,3,()=>{}),r=`001_BLUEPRINT`;function i(e){return e.normalize(`NFKD`).replace(/[̀-ͯ]/g,``).toUpperCase().replace(/[^A-Z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`FOLDER`}function a(e){return`/${(e.folder.path||e.folder.name).replace(/^\/+|\/+$/g,``)||e.folder.name}`}let o=P(`closed`),s=P(``),c=P(``),l=P(``),u=P(``),d=P(``),f=P(``),p=P(``),m=P(``),h=P(null),g=P(null),_=P(null),v=P(!1),y=P(null),b=P(null),x=P(!1),S=P(!1),C=P(!1);async function w(e){F(g,e,!0),F(h,null),F(v,!1),F(y,null);let t=i(e.folder.name);if(F(l,t,!0),F(c,e.folder.name,!0),F(u,``),F(d,``),F(f,``),F(m,a(e),!0),F(s,Y(`blueprint.adr.new_title`,{folder:e.folder.name}),!0),F(o,`form`),!(await fetch(`/api/blueprint/blueprint-folder`).then(e=>e.json())).exists){F(p,r),F(o,`folder-confirm`);return}await E(e,t)}async function T(e){return fetch(`/api/documents/${encodeURIComponent(e)}`).then(e=>e.json())}async function E(e,t){let n=await fetch(`/api/blueprint/blueprint-adr?category=${encodeURIComponent(t)}`).then(e=>e.json());if(n.found&&n.doc){F(h,n.doc.id,!0);let e=await T(n.doc.id);F(c,e.title,!0),F(d,e.content,!0),F(f,e.html,!0),F(s,e.title,!0),F(v,!1),F(o,`doc`)}else F(c,e.folder.name,!0),F(u,``),F(o,`form`)}function D(){F(o,`closed`),F(v,!1),F(h,null),F(g,null),F(m,``),F(C,!1)}async function ee(){if(V(h))try{await navigator.clipboard.writeText(decodeURIComponent(V(h))),F(C,!0),setTimeout(()=>F(C,!1),1800)}catch{}}async function te(){await fetch(`/api/blueprint/blueprint-folder`,{method:`POST`}),V(g)&&await E(V(g),i(V(g).folder.name))}async function O(e){if(!V(h))return;await fetch(`/api/documents/${encodeURIComponent(V(h))}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({title:V(c).trim()||V(g)?.folder.name||Y(`common.untitled`),category:V(l),folder:r,content:e})});let t=await T(V(h));F(s,t.title,!0),F(d,t.content,!0),F(f,t.html,!0)}async function k(e){e.preventDefault();let t={title:V(c).trim()||V(g)?.folder.name||Y(`common.untitled`),category:V(l),folder:r},i=await fetch(`/api/documents/`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)}).then(e=>e.json());F(h,i.id,!0);let a=await T(i.id);F(s,a.title,!0),F(d,a.content,!0),F(f,a.html,!0),F(v,!1),F(o,`doc`),n()()}async function ne(){F(S,!1),V(h)&&(await fetch(`/api/documents/${encodeURIComponent(V(h))}`,{method:`DELETE`}),D(),n()())}var A={open:w},re=Qf(),ie=R(re),ae=e=>{var t=Xf(),n=L(t),i=L(n),a=L(i),g=L(a),w=L(g),T=e=>{var t=Hf(),n=R(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i,!0);j(i),B(e=>{G(r,e),G(a,V(m))},[()=>Y(`blueprint.adr.folder_title`)]),W(e,t)},E=e=>{var t=Ur();B(()=>G(t,V(s))),W(e,t)};K(w,e=>{V(m)?e(T):e(E,-1)}),j(g);var ne=z(g,2),A=e=>{var t=Uf(),n=L(t);j(t),B(e=>{J(t,`title`,e),vi(t,1,`bpadr-copy-btn ${V(C)?`copied`:``}`),vi(n,1,`fa-${V(C)?`solid fa-check`:`regular fa-copy`}`)},[()=>Y(`doc.copy_mcp_id`)]),H(`click`,t,ee),W(e,t)};K(ne,e=>{V(h)&&e(A)}),j(a);var re=z(a,2),ie=L(re),ae=e=>{var t=Wf(),n=R(t),r=z(n,2);B((e,t)=>{J(n,`title`,e),J(r,`title`,t)},[()=>Y(`doc.edit`),()=>Y(`doc.delete`)]),H(`click`,n,()=>V(_).enterEdit()),H(`click`,r,()=>F(S,!0)),W(e,t)};K(ie,e=>{V(o)===`doc`&&!V(v)&&e(ae)});var oe=z(ie,2);j(re),j(i);var se=z(i,2),ce=e=>{var t=qf(),n=R(t),r=L(n);{let e=N(()=>V(h)??``);Ui(Vf(r,{get docId(){return V(e)},get content(){return V(d)},get html(){return V(f)},onsave:O,get editing(){return V(v)},set editing(e){F(v,e,!0)},get saveMsg(){return V(y)},set saveMsg(e){F(y,e,!0)}}),e=>F(_,e,!0),()=>V(_))}j(n);var i=z(n,2),a=e=>{var t=Kf(),n=L(t),r=e=>{var t=Gf(),n=L(t,!0);j(t),B(()=>{vi(t,1,`text-xs ${V(y).cls??``}`),G(n,V(y).text)}),W(e,t)};K(n,e=>{V(y)&&e(r)});var i=z(n,2),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c,!0);j(c),j(t),B((e,t,n)=>{G(a,e),G(s,t),G(l,n)},[()=>Y(`common.cancel`),()=>Y(`doc.snippets_btn`),()=>Y(`common.save`)]),H(`click`,i,()=>V(_).cancelEdit()),H(`click`,o,()=>V(_).openSnippets()),H(`click`,c,()=>V(_).save()),W(e,t)};K(i,e=>{V(v)&&e(a)}),W(e,t)},le=e=>{var t=Jf(),n=R(t),i=L(n);ki(i);var a=z(i,2);ki(a),Ai(a,r);var s=z(a,2),d=L(s),f=L(d,!0);j(d);var p=z(d,2);ki(p),j(s);var m=z(s,2),g=L(m),_=L(g,!0);j(g);var v=z(g,2);yn(v),Ui(v,e=>F(b,e),()=>V(b)),j(m);var y=z(m,2),S=L(y),C=L(S,!0);j(S);var w=z(S,2),T=L(w,!0);j(w);var E=z(w,2),ee=L(E,!0);j(E),j(y),j(n),cf(z(n,2),{get open(){return V(x)},get editor(){return V(b)},mode:`insert`,get content(){return V(u)},onclose:()=>F(x,!1)}),B((e,t,n,r,a)=>{Ai(i,V(l)),G(f,e),G(_,t),G(C,n),G(T,r),G(ee,a)},[()=>Y(`blueprint.adr.title_label`),()=>Y(`blueprint.adr.content_label`),()=>Y(`common.cancel`),()=>Y(`doc.snippets_btn`),()=>Y(`common.save`)]),Nr(`submit`,n,k),Fi(p,()=>V(c),e=>F(c,e)),Fi(v,()=>V(u),e=>F(u,e)),H(`click`,S,()=>{V(h)?F(o,`doc`):D()}),H(`click`,w,()=>F(x,!0)),W(e,t)},ue=e=>{var t=Yf(),n=L(t);si(n,()=>Y(`blueprint.adr.folder_missing`,{name:V(p)}),!0),j(n);var r=z(n,2),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c,!0);j(c),j(a),j(t),B((e,t,n)=>{G(i,e),G(s,t),G(l,n)},[()=>Y(`blueprint.adr.folder_create_prompt`),()=>Y(`common.cancel`),()=>Y(`blueprint.adr.create_folder_btn`)]),H(`click`,o,D),H(`click`,c,te),W(e,t)};K(se,e=>{V(o)===`doc`?e(ce):V(o)===`form`?e(le,1):V(o)===`folder-confirm`&&e(ue,2)}),j(n),j(t),H(`click`,t,e=>{e.target===e.currentTarget&&D()}),H(`click`,oe,D),W(e,t)};K(ie,e=>{V(o)!==`closed`&&e(ae)});var oe=z(ie,2),se=e=>{var t=Zf(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var c=z(a,2),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d),j(c),j(n),j(t),B((e,t,n)=>{G(i,e),G(o,V(s)),G(u,t),G(f,n)},[()=>Y(`doc.confirm_delete`),()=>Y(`common.cancel`),()=>Y(`doc.confirm_delete_btn`)]),H(`click`,t,e=>{e.target===e.currentTarget&&F(S,!1)}),H(`click`,l,()=>F(S,!1)),H(`click`,d,ne),W(e,t)};return K(oe,e=>{V(S)&&e(se)}),W(e,re),Je(A)}Pr([`click`]);var ep=U(`<span class="breadcrumb-sep">›</span>`),tp=U(`<span class="breadcrumb-item current"> </span>`),np=U(`<button class="breadcrumb-item" type="button"> </button>`),rp=U(`<!> <!>`,1),ip=U(`<nav class="breadcrumb"></nav>`),ap=U(`<div class="app-shell"><!> <section class="workspace-shell"><!> <!></section></div> <!>`,1);function op(e,t){qe(t,!0),Ji(async()=>{try{await Sa((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}});let n=P(I([])),r=P(null),i=P(null),a=P(null),o=P(null);function s(e){l(),V(i).loadPath(e,!0)}async function c(e){F(r,e.folder.path,!0),await xr(),await V(a).open(e.folder.path)}function l(){F(r,null)}async function u(e){await V(i).navigateToFolder(e)}var d=ap(),f=R(d),p=L(f);{let e=N(()=>Y(`blueprint.subtitle`));Xo(p,{title:`Blueprint`,get subtitle(){return V(e)},children:(e,t)=>{var r=ip();q(r,21,()=>V(n),Qr,(e,t,r)=>{var i=rp(),a=R(i),o=e=>{W(e,ep())};K(a,e=>{r>0&&e(o)});var c=z(a,2),l=e=>{var n=tp(),r=L(n,!0);j(n),B(()=>G(r,V(t).name)),W(e,n)},u=e=>{var n=np(),r=L(n,!0);j(n),B(()=>G(r,V(t).name)),H(`click`,n,()=>s(V(t).path)),W(e,n)};K(c,e=>{r===V(n).length-1?e(l):e(u,-1)}),W(e,i)}),j(r),W(e,r)},$$slots:{default:!0}})}var m=z(p,2),h=L(m);Ui(ks(h,{get activeExplorerPath(){return V(r)},onbreadcrumbchange:e=>F(n,e,!0),onopenexplorer:c,onclosefilerexplorer:l,onopenAdr:e=>V(o).open(e)}),e=>F(i,e,!0),()=>V(i));var g=z(h,2),_=e=>{Ui(Ys(e,{onclose:l,onnavigate:u}),e=>F(a,e,!0),()=>V(a))};K(g,e=>{V(r)!==null&&e(_)}),j(m),j(f),Ui($f(z(f,2),{onchanged:()=>V(i).loadPath(V(n).at(-1)?.path??``,!1)}),e=>F(o,e,!0),()=>V(o)),W(e,d),Je()}Pr([`click`]);var sp=164,cp=64,lp=132,up=78,dp=6,fp=24,pp=96,mp=540,hp=780,gp=1/2,_p=9999,vp=44,yp=255,bp=178,xp=Math.PI*.7,Sp=Math.PI*1.1,Cp=Math.PI*1.45,wp=Math.PI*1.75,Tp=14,Ep=260,Dp=56,Op=32,kp=[`pointerdown`,`mousedown`,`click`,`dblclick`,`touchstart`,`wheel`],Ap=.35,jp=2.2,Mp=.0018,Np=4,Pp=46,Fp=4,Ip=44,Lp=360,Rp=300,zp=44,Bp=48,Vp=7,Hp=875,Up=450,Wp=600*1e3,Gp,Z,Kp,qp,Jp,Yp,Xp,Zp=[],Qp=new Map,$p=[],em=-1,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm=null,Cm=null,wm=null,Q,$,Tm,Em=!1;function Dm(){return Gp=document.getElementById(`workspaceCanvas`),Z=Gp.getContext(`2d`),Kp=document.getElementById(`apiStatus`),qp=document.getElementById(`addButton`),Jp=document.getElementById(`fitButton`),Yp=document.getElementById(`testNodeButton`),Xp=document.getElementById(`loadModelsButton`),tm=document.getElementById(`closePanelButton`),nm=document.getElementById(`deleteNodeButton`),rm=document.getElementById(`renameConfirmOverlay`),im=document.getElementById(`renameConfirmMessage`),am=document.getElementById(`cancelRenameButton`),om=document.getElementById(`confirmRenameButton`),sm=document.getElementById(`deleteConfirmOverlay`),cm=document.getElementById(`deleteConfirmMessage`),lm=document.getElementById(`cancelDeleteButton`),um=document.getElementById(`confirmDeleteButton`),dm=document.getElementById(`agentRunOverlay`),fm=document.getElementById(`agentRunTitle`),pm=document.getElementById(`agentRunHint`),mm=document.getElementById(`agentRunInputField`),hm=document.getElementById(`agentRunInput`),gm=document.getElementById(`agentRunResult`),_m=document.getElementById(`cancelAgentRunButton`),vm=document.getElementById(`executeAgentRunButton`),ym=document.getElementById(`fallbackPanelHost`),bm=document.getElementById(`configSurface`),xm=bm,Sm=null,Cm=null,wm=null,Q={name:document.getElementById(`nodeName`),kind:document.getElementById(`nodeKind`),providerIdField:document.getElementById(`providerIdField`),providerId:document.getElementById(`nodeProviderId`),copyProviderId:document.getElementById(`copyProviderIdButton`),endpoint:document.getElementById(`nodeEndpoint`),token:document.getElementById(`nodeToken`),model:document.getElementById(`nodeModel`),modelFilter:document.getElementById(`nodeModelFilter`),modelResults:document.getElementById(`nodeModelResults`),providerTypeChat:document.getElementById(`nodeProviderTypeChat`),providerTypeImage:document.getElementById(`nodeProviderTypeImage`),toolModeField:document.getElementById(`toolModeField`),toolModeTools:document.getElementById(`nodeToolModeTools`),toolModeChat:document.getElementById(`nodeToolModeChat`),workspaceField:document.getElementById(`agentWorkspaceField`),workspaceFolder:document.getElementById(`nodeWorkspaceFolder`),timeout:document.getElementById(`nodeTimeout`),description:document.getElementById(`nodeDescription`),typeBadge:document.getElementById(`nodeTypeBadge`),llmFields:document.getElementById(`llmFields`),mcpInventory:document.getElementById(`mcpInventory`),mcpInventoryStatus:document.getElementById(`mcpInventoryStatus`),mcpToolsList:document.getElementById(`mcpToolsList`),mcpPromptsList:document.getElementById(`mcpPromptsList`),agentSection:document.getElementById(`agentSection`),agentProvider:document.getElementById(`nodeAgentProvider`),systemPrompt:document.getElementById(`nodeSystemPrompt`),requiresUserInput:document.getElementById(`nodeRequiresUserInput`),userInputDescriptionField:document.getElementById(`agentUserInputDescriptionField`),userInputDescription:document.getElementById(`nodeUserInputDescription`),expectedOutputMarker:document.getElementById(`nodeExpectedOutputMarker`)},$={entities:qm([Km(`root`,`Living AI Documentation`,`system`,null),Km(`mcp`,`MCP`,`mcp`,`root`)]),selectedId:null,cameraX:0,cameraY:0,zoom:1,isPanning:!1,panStartX:0,panStartY:0,panStartCameraX:0,panStartCameraY:0,didPan:!1,viewAnimationId:null,dpr:window.devicePixelRatio||1,apiMode:`fallback`,lastSaveAt:null,pendingDeleteId:null,panelShiftX:0,saveTimerId:null,panelDirty:!1,isHydrated:!1},Em=!!Gp.requestPaint&&typeof Z.drawElementImage==`function`,Em?($.apiMode=`html-in-canvas`,Kp.textContent=`HTML-in-Canvas active`,Kp.classList.add(`is-live`),Gp.onpaint=ng):(ym.appendChild(bm),Kp.textContent=`DOM fallback`,Kp.classList.add(`is-fallback`)),Tm=new ResizeObserver(([e])=>{let t=e.devicePixelContentBoxSize?.[0],n=e.contentRect.width,r=e.contentRect.height;$.dpr=t?t.inlineSize/n:window.devicePixelRatio||1,Gp.width=t?t.inlineSize:Math.floor(n*$.dpr),Gp.height=t?t.blockSize:Math.floor(r*$.dpr),th(),fg(!1,!$.cameraX&&!$.cameraY),tg()}),Tm.observe(Gp,{box:`device-pixel-content-box`}),Om(),km(),qp.addEventListener(`click`,()=>{Qm()}),Jp.addEventListener(`click`,()=>{th(),fg(!0,!0),Pm(),tg()}),Gp.addEventListener(`pointerdown`,e=>{if(e.target!==Gp)return;let t=Fg(e),n=Sg(t),r=[...$.entities].reverse().find(e=>Og(e,n));if(r){r.id!==`root`&&ph(r.id);return}$.isPanning=!0,$.didPan=!1,$.panStartX=t.x,$.panStartY=t.y,$.panStartCameraX=$.cameraX,$.panStartCameraY=$.cameraY,Gp.classList.add(`is-panning`),Gp.setPointerCapture?.(e.pointerId)}),Gp.addEventListener(`pointermove`,e=>{if(!$.isPanning)return;let t=Fg(e),n=t.x-$.panStartX,r=t.y-$.panStartY;Math.hypot(n,r)>Np&&($.didPan=!0),$.cameraX=$.panStartCameraX+n,$.cameraY=$.panStartCameraY+r,tg()}),Gp.addEventListener(`pointerup`,e=>{$.isPanning&&($.isPanning=!1,Gp.classList.remove(`is-panning`),Gp.releasePointerCapture?.(e.pointerId),!$.didPan&&$.selectedId?ph(null):$.didPan&&Pm())}),Gp.addEventListener(`pointercancel`,e=>{$.isPanning=!1,Gp.classList.remove(`is-panning`),Gp.releasePointerCapture?.(e.pointerId)}),Gp.addEventListener(`wheel`,e=>{e.target===Gp&&(e.preventDefault(),xg(Fg(e),Math.exp(-e.deltaY*Mp)),Pm())},{passive:!1}),xm.addEventListener(`submit`,e=>{e.preventDefault(),xh(),$.lastSaveAt=new Date,th(),Im(!0),tg()}),xm.addEventListener(`input`,()=>{xh(),th(),$.panelDirty=!0,tg()}),tm.addEventListener(`click`,()=>{ph(null)}),nm.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation();let t=$.selectedId,n=t?Zh(t):null;!n||Qh(t)||mh(n)}),lm.addEventListener(`click`,hh),sm.addEventListener(`click`,e=>{e.target===sm&&hh()}),um.addEventListener(`click`,()=>{$.pendingDeleteId&&gh($.pendingDeleteId),hh()}),Yp.addEventListener(`click`,()=>{if(Xh()?.kind===`agent`){Dh();return}Gh()}),Xp.addEventListener(`click`,()=>{Wh()}),Q.copyProviderId.addEventListener(`click`,()=>{qh()}),Q.name.addEventListener(`blur`,()=>{if(Xh()?.kind!==`agent`)return;let e=Q.name.value.trim();if(!e||!Sm||!Cm||e===Sm)return;let t=Ym(e);t!==Cm&&(im.textContent=`Renommer le dossier "${Cm}" en "${t}" ?`,rm.hidden=!1,am.focus())}),am.addEventListener(`click`,()=>{rm.hidden=!0;let e=Xh();e&&Sm&&(e.label=Sm,Q.name.value=Sm,th(),tg())}),om.addEventListener(`click`,()=>{rm.hidden=!0;let e=Xh();if(!e||!Cm)return;e.config.workspaceFolder=Cm,Q.workspaceFolder.value=Cm;let t=Q.name.value.trim();t&&(Sm=t),Cm=Ym(t),Pm()}),Q.modelFilter.addEventListener(`input`,e=>{e.stopPropagation(),em=-1,Vh()}),Q.modelFilter.addEventListener(`focus`,()=>{Vh()}),Q.modelFilter.addEventListener(`blur`,()=>{Hh()}),Q.modelFilter.addEventListener(`keydown`,e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if($p.length===0)return;e.preventDefault();let t=$p.length;em=e.key===`ArrowDown`?(em+1)%t:em<=0?t-1:em-1,Vh()}else if(e.key===`Enter`){e.preventDefault();let t=$p[em]??($p.length===1?$p[0]:void 0);t&&Uh(t)}else e.key===`Escape`&&Q.modelFilter.value&&(e.preventDefault(),e.stopPropagation(),Q.modelFilter.value=``,Hh())}),Q.modelResults.addEventListener(`mousedown`,e=>{e.preventDefault()}),Q.modelResults.addEventListener(`click`,e=>{let t=e.target.closest(`[data-model]`);t?.dataset.model&&Uh(t.dataset.model)}),Q.model.addEventListener(`change`,()=>{Yp.disabled=!Q.model.value;let e=Xh();e&&(e.config.model=Q.model.value)}),Q.agentProvider.addEventListener(`change`,()=>{Ch(Q.agentProvider.value)}),_m.addEventListener(`click`,()=>{Oh()}),vm.addEventListener(`click`,()=>{kh()}),dm.addEventListener(`click`,e=>{e.target===dm&&Oh()}),jm(),()=>{Fm(),Tm.disconnect(),$?.saveTimerId&&clearTimeout($.saveTimerId)}}function Om(){for(let e of kp)bm.addEventListener(e,Am),ym.addEventListener(e,Am)}function km(){for(let e of kp)sm.addEventListener(e,Am),rm.addEventListener(e,Am),dm.addEventListener(e,Am)}function Am(e){e.stopPropagation()}async function jm(){let e=await So();e?.entities?.length&&($.entities=Mm(e.entities),$.cameraX=Gm(e.camera?.x,$.cameraX),$.cameraY=Gm(e.camera?.y,$.cameraY),$.zoom=Cg(Gm(e.camera?.zoom,$.zoom),Ap,jp),$.lastSaveAt=e.updatedAt?new Date(e.updatedAt):null),$.isHydrated=!0,th(),e?.entities?.length||fg(!1,!0),bh(),tg()}function Mm(e){let t=e.map(Nm).filter(e=>!!e),n=t.some(e=>e.id===`root`),r=t.some(e=>e.id===`mcp`),i=[...n?[]:[Km(`root`,`Living AI Documentation`,`system`,null)],...t,...r?[]:[Km(`mcp`,`MCP`,`mcp`,`root`)]],a=new Set(i.map(e=>e.id));return i.map(e=>{let t=e.id===`root`?`system`:e.id===`mcp`?`mcp`:e.kind,n=e.id===`root`?null:e.id===`mcp`?`root`:e.parentId&&a.has(e.parentId)?e.parentId:null;return{...e,kind:t,parentId:n,config:{...Km(e.id,e.label,t,n).config,...e.config}}})}function Nm(e){if(!Bm(e))return null;let t=Vm(e.id),n=Vm(e.label),r=Hm(e.kind);if(!t||!n||!r)return null;let i=e.parentId===null?null:Vm(e.parentId),a=Bm(e.config)?e.config:{};return{id:t,label:n,kind:r,parentId:i,x:Gm(e.x,0),y:Gm(e.y,0),angle:Gm(e.angle,0),config:{endpoint:Vm(a.endpoint)||Jm(t,r),token:Vm(a.token),model:Vm(a.model),providerType:Wm(a.providerType),toolMode:Um(a.toolMode),timeout:Gm(a.timeout,180),description:Vm(a.description)||Zm(r),workspaceFolder:Vm(a.workspaceFolder)||(r===`agent`?Ym(n):``),systemPrompt:Vm(a.systemPrompt),requiresUserInput:a.requiresUserInput===!0,userInputDescription:Vm(a.userInputDescription),expectedOutputMarker:Vm(a.expectedOutputMarker)}}}function Pm(){$.isHydrated&&($.saveTimerId&&clearTimeout($.saveTimerId),$.saveTimerId=window.setTimeout(()=>{$.saveTimerId=null,Im(!1)},Up))}function Fm(){$.panelDirty&&Im(!1)}async function Im(e=!1){if(!$.isHydrated)return;$.panelDirty=!1,$.saveTimerId&&(clearTimeout($.saveTimerId),$.saveTimerId=null);let t=$.selectedId&&document.activeElement===Q.token&&Ih(Q.token.value)?{entityId:$.selectedId,value:Q.token.value,selectionStart:Q.token.selectionStart,selectionEnd:Q.token.selectionEnd}:null,n=await Co(zm());if(n){if($.entities=Mm(n.entities),t&&$.selectedId===t.entityId){let e=Xh();e?.kind===`llm`&&(e.config.token=t.value)}$.lastSaveAt=new Date(n.updatedAt),Xh()&&!xm.contains(document.activeElement)&&bh(),t&&$.selectedId===t.entityId&&(Q.token.value=t.value,Q.token.setSelectionRange(t.selectionStart,t.selectionEnd)),e&&Rm(`Workspace saved`)}else e&&Rm(`Save failed`)}function Lm(e,t){return yo(e,t)}function Rm(e,t=`success`,n,r){return bo(e,t,n,r)}function zm(){return{version:1,updatedAt:new Date().toISOString(),entities:$.entities.map(e=>{let t={...e.config,token:Lh(e.config.token)};return{id:e.id,label:e.label,kind:e.kind,parentId:e.parentId,x:e.x,y:e.y,angle:e.angle,config:t}}),camera:{x:$.cameraX,y:$.cameraY,zoom:$.zoom}}}function Bm(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Vm(e){return typeof e==`string`?e:``}function Hm(e){return e===`system`||e===`llm`||e===`agent`||e===`mcp`?e:null}function Um(e){return e===`chat`?`chat`:`tools`}function Wm(e){return e===`image`?`image`:`chat`}function Gm(e,t){return typeof e==`number`&&Number.isFinite(e)?e:t}function Km(e,t,n,r){return{id:e,label:t,kind:n,parentId:r,x:0,y:0,angle:0,config:{endpoint:Jm(e,n),token:``,model:``,providerType:`chat`,toolMode:`tools`,timeout:180,description:Zm(n),workspaceFolder:n===`agent`?Ym(t):``,systemPrompt:``,requiresUserInput:!1,userInputDescription:``,expectedOutputMarker:``}}}function qm(e){return e.map(e=>({...e,config:{...e.config}}))}function Jm(e,t){return t===`llm`?`http://localhost:11434`:t===`mcp`?`http://localhost:4321/mcp`:``}function Ym(e){return`AI/WORKSPACE/${Xm(e)}`}function Xm(e){return e.normalize(`NFKD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`llm_provider`}function Zm(e){let t={system:`Owns the documentation workspace, MCP access, providers, and agent topology.`,llm:`Routes model calls and hosts the agents assigned to this provider.`,agent:`Runs focused automation against documentation, source, or quality signals.`,mcp:`Exposes the local Living Documentation MCP consultation panel to agents.`};return t[e]||t.agent}function Qm(){let e=Xh(),t=e?.kind===`llm`?e:Zh(e?.parentId);if(t?.kind===`llm`&&t.config.providerType!==`image`){eh(t.id);return}$m()}function $m(){let e=!!$.selectedId,t=$h(`root`).filter(e=>e.kind===`llm`).length+1,n=Km(`provider-${Date.now().toString(36)}`,`LLM Provider ${t}`,`llm`,`root`);$.entities=[...$.entities,n],$.selectedId=n.id,th(),pg(e,!0,!0),bh(),Pm(),tg()}function eh(e){let t=!!$.selectedId,n=$h(e).filter(e=>e.kind===`agent`).length+1,r=Km(`agent-${Date.now().toString(36)}`,`Agent ${n}`,`agent`,e);$.entities=[...$.entities,r],$.selectedId=r.id,th(),pg(t,!0,!0),bh(),Pm(),tg()}function th(){let e=Zh(`root`);e.x=0,e.y=0,e.angle=0,nh(e)}function nh(e){let t=$h(e.id),n=ch(t,lp,yp,{spread:Math.PI*2,includeSubtree:!1}),r=new Map(t.map(e=>[e.id,oh(e,n)]));for(let n=0;n<=Vp;n+=1)if(rh(e,t,r),ih(),!ah(t,r))return;rh(e,t,r),ih()}function rh(e,t,n){let r=Math.max(1,t.length);t.forEach((t,i)=>{let a=-Math.PI/2+i/r*Math.PI*2,o=n.get(t.id)||yp;t.angle=a,t.x=e.x+Math.cos(a)*o,t.y=e.y+Math.sin(a)*o})}function ih(){for(let e of $.entities.filter(e=>e.kind===`llm`))sh(e)}function ah(e,t){let n=!1;for(let r=0;r<e.length;r+=1)for(let i=r+1;i<e.length;i+=1){let a=e[r],o=e[i];Pg(jg(a),jg(o),zp)&&(t.set(a.id,Math.min(Hp,t.get(a.id)+Bp)),t.set(o.id,Math.min(Hp,t.get(o.id)+Bp)),n=!0)}return n}function oh(e,t){if(e.kind!==`llm`)return t;let n=$h(e.id).length;if(n<=Fp)return t;let r=(n-Fp)*Ip,i=Math.max(0,dh(e)-Rp)*.65;return t+Math.min(Lp,Math.max(r,i))}function sh(e){let t=$h(e.id);if(!t.length)return;let n=Math.atan2(e.y,e.x),r=lh(t.length),i=ch(t,up,bp,{spread:r,includeSubtree:!1});t.forEach((a,o)=>{let s=uh(n,r,o,t.length);a.angle=s,a.x=e.x+Math.cos(s)*i,a.y=e.y+Math.sin(s)*i})}function ch(e,t,n,r={}){if(!e.length)return n;let i=!!r.includeSubtree,a=r.spread||Math.PI*2,o=Math.max(...e.map(e=>i?dh(e):fh(e))),s=t+o+Pp;if(e.length===1)return Math.max(n,s);let c=o*2+Pp,l=a>=Math.PI*2-.001?Math.PI*2/e.length:a/(e.length-1),u=c/(2*Math.sin(l/2));return Math.max(n,s,u)}function lh(e){return e<=1?0:e<=2?xp:e<=4?Sp:e<=7?Cp:wp}function uh(e,t,n,r){return r<=1||t===0?e:e-t/2+n/(r-1)*t}function dh(e){if(e.kind!==`llm`)return fh(e);let t=$h(e.id);return t.length?ch(t,up,bp,{spread:lh(t.length),includeSubtree:!1})+Math.max(...t.map(e=>fh(e))):up}function fh(e){if(e.kind===`system`)return lp;if(e.kind===`llm`)return up;let{width:t,height:n}=Ag(e);return Math.hypot(t/2,n/2)}function ph(e){e!==$.selectedId&&Fm();let t=!!$.selectedId;$.selectedId=e;let n=e?Zh(e):null;Sm=n?.kind===`agent`?n.label:null,Cm=n?.kind===`agent`?n.config.workspaceFolder||Ym(n.label):null,th(),pg(t,!!e,!0),bh(),tg()}function mh(e){let t=eg(e.id),n=$h(e.id).length,r=t.length?` This node has ${n} direct child${n===1?``:`ren`} and ${t.length} total descendant${t.length===1?``:`s`}; they will also be deleted.`:` This node has no children.`;$.pendingDeleteId=e.id,cm.textContent=`You are about to delete "${e.label}".${r} This action cannot be undone.`,sm.hidden=!1,um.focus()}function hh(){$.pendingDeleteId=null,sm.hidden=!0}function gh(e){let t=Zh(e);if(!t||Qh(e))return;let n=t.parentId||`root`,r=!!$.selectedId,i=new Set([e,...eg(e)]);$.entities=$.entities.filter(e=>!i.has(e.id)),$.selectedId=Zh(n)?n:null,th(),pg(r,!!$.selectedId,!0),bh(),Pm(),tg()}var _h=0;async function vh(e){let t=++_h,n=e.config.endpoint.trim(),r=Q.mcpInventoryStatus;if(Q.mcpToolsList.replaceChildren(),Q.mcpPromptsList.replaceChildren(),!n){r.hidden=!1,r.textContent=`Set an endpoint to load the MCP tools and prompts.`;return}r.hidden=!1,r.textContent=`Loading MCP tools and prompts…`;let i=await To({endpoint:n});if(t===_h){if(!i.ok){r.hidden=!1,r.textContent=i.error?`Failed to load MCP inventory: ${i.error}`:`Failed to load MCP inventory.`;return}r.hidden=!0,yh(Q.mcpToolsList,i.tools??[],`No tools exposed.`),yh(Q.mcpPromptsList,i.prompts??[],`No prompts exposed.`)}}function yh(e,t,n){if(e.replaceChildren(),t.length===0){let t=document.createElement(`li`);t.className=`inventory-empty`,t.textContent=n,e.appendChild(t);return}for(let n of t){let t=document.createElement(`li`);t.textContent=n,e.appendChild(t)}}function bh(){let e=Xh(),t=!!e;if(bm.hidden=!t,ym.hidden=!t||Em,!e){qp.title=`Add LLM provider`,Yp.textContent=`Test`,Yp.hidden=!0,Yp.disabled=!0;return}Q.name.value=e.label,Q.kind.value=e.kind,Q.providerId.value=e.kind===`llm`?e.id:``,Q.endpoint.value=e.config.endpoint,Q.token.value=e.config.token,Eh(e.config.model),Q.providerTypeChat.checked=e.config.providerType!==`image`,Q.providerTypeImage.checked=e.config.providerType===`image`,Q.toolModeTools.checked=e.config.toolMode!==`chat`,Q.toolModeChat.checked=e.config.toolMode===`chat`,Q.workspaceFolder.value=e.config.workspaceFolder,Q.workspaceField.hidden=e.kind!==`agent`,Q.timeout.value=String(e.config.timeout),Q.description.value=e.config.description,Q.typeBadge.textContent=Yh(e),Q.kind.disabled=!0,Q.llmFields.hidden=e.kind===`mcp`||e.kind===`agent`,Th(e),Q.mcpInventory.hidden=e.kind!==`mcp`,e.kind===`mcp`?vh(e):_h+=1,Q.agentSection.hidden=e.kind!==`agent`,e.kind===`agent`&&Sh(e),Q.systemPrompt.value=e.config.systemPrompt,Q.requiresUserInput.checked=e.config.requiresUserInput,wh(),Q.userInputDescription.value=e.config.userInputDescription,Q.expectedOutputMarker.value=e.config.expectedOutputMarker,nm.hidden=Qh(e.id),Yp.textContent=`Test`,Yp.hidden=e.kind!==`llm`&&e.kind!==`agent`,Yp.disabled=e.kind===`llm`?!e.config.model:e.kind!==`agent`;let n=e.kind===`llm`?e:Zh(e.parentId);qp.title=n?.kind===`llm`&&n.config.providerType!==`image`?`Add agent`:`Add LLM provider`}function xh(){let e=Xh();if(e&&(e.label=Q.name.value.trim()||`Untitled node`,e.kind=Q.kind.value,e.config.endpoint=Q.endpoint.value,e.config.token=Q.token.value,e.config.model=Q.model.value,e.config.providerType=Q.providerTypeImage.checked?`image`:`chat`,e.config.toolMode=Q.toolModeChat.checked?`chat`:`tools`,e.config.timeout=Number(Q.timeout.value||30),e.config.description=Q.description.value,e.config.systemPrompt=Q.systemPrompt.value,e.config.requiresUserInput=Q.requiresUserInput.checked,e.config.userInputDescription=Q.userInputDescription.value,e.config.expectedOutputMarker=Q.expectedOutputMarker.value,wh(),Th(e),Q.typeBadge.textContent=Yh(e),e.kind===`llm`))for(let t of $.entities)t.parentId===e.id&&t.kind===`agent`&&(t.config.model=e.config.model,t.config.timeout=e.config.timeout)}function Sh(e){let t=Q.agentProvider;t.innerHTML=``;let n=$.entities.filter(e=>e.kind===`llm`&&e.config.providerType!==`image`);for(let e of n){let n=document.createElement(`option`);n.value=e.id,n.textContent=e.label,t.appendChild(n)}t.value=e.parentId??``}function Ch(e){let t=Xh();if(t?.kind!==`agent`)return;let n=Zh(e);n?.kind===`llm`&&t.parentId!==e&&(t.parentId=e,t.config.model=n.config.model,t.config.timeout=n.config.timeout,th(),Pm(),tg())}function wh(){let e=Xh()?.kind===`agent`&&Q.requiresUserInput.checked;Q.userInputDescriptionField.hidden=!e,Q.userInputDescription.required=e}function Th(e){let t=e.kind===`llm`,n=e.config.providerType===`image`;Q.providerIdField.hidden=!t,Q.toolModeField.hidden=!t||n,Xp.title=Y(n?`workspace.model.load_image`:`workspace.model.load_chat`),Yp.title=n?`Test image provider configuration`:`Test chat provider configuration`}function Eh(e){let t=Xh(),n=t?.kind===`llm`?Qp.get(zh(t)):void 0;if(n){let t=e&&!n.includes(e)?[e,...n]:n;t!==Zp&&Bh(t),Q.model.value=e||t[0];return}Zp.length>0&&(Bh([]),Q.model.innerHTML=``);let r=Array.from(Q.model.options).map(e=>e.value);if(e&&!r.includes(e)){Q.model.innerHTML=``;let t=document.createElement(`option`);t.value=e,t.textContent=e,Q.model.appendChild(t)}Q.model.value=e||(r[0]??``)}function Dh(){let e=Xh();if(e?.kind!==`agent`)return;xh();let t=Zh(e.parentId??``);if(t?.kind!==`llm`){Rm(`No parent LLM found for this agent.`,`error`);return}if(!t.config.model){Rm(`Parent LLM has no model selected.`,`error`);return}if(!e.config.systemPrompt.trim()){Rm(`Write a system prompt first.`,`error`);return}if(e.config.requiresUserInput&&!e.config.userInputDescription.trim()){Rm(`Describe the required user input first.`,`error`);return}wm=e.id,fm.textContent=`Test ${e.label}`,pm.textContent=e.config.requiresUserInput?e.config.userInputDescription:`Run this agent with its configured system prompt.`,mm.hidden=!e.config.requiresUserInput,hm.required=e.config.requiresUserInput,hm.value=``,gm.hidden=!0,gm.textContent=``,vm.disabled=!1,vm.textContent=`Run`,dm.hidden=!1,e.config.requiresUserInput?window.setTimeout(()=>hm.focus(),0):window.setTimeout(()=>vm.focus(),0)}function Oh(){dm.hidden=!0,wm=null}async function kh(){if(hm.required&&!hm.value.trim()){hm.reportValidity();return}let e=wm?Zh(wm):null;if(e?.kind!==`agent`){Ph(`error`,`The selected agent is no longer available.`);return}let t=Zh(e.parentId??``);if(t?.kind!==`llm`){Ph(`error`,`No parent LLM found for this agent.`);return}vm.disabled=!0,vm.textContent=`Running…`;let n=Lm(`Running agent…`);jh();let r=$.entities.find(e=>e.kind===`mcp`),i=!1,a=await Eo({providerId:t.id,endpoint:t.config.endpoint,model:t.config.model,systemPrompt:e.config.systemPrompt,userInput:hm.value.trim()||void 0,timeout:t.config.timeout,mcpEndpoint:t.config.toolMode===`chat`?void 0:r?.config.endpoint||void 0,toolMode:t.config.toolMode,expectedOutputMarker:e.config.expectedOutputMarker||void 0},e=>{e.type===`error`&&(i=!0),e.type!==`final`&&e.type!==`error`&&Lm(Ah(e),n),Mh(e)});vm.disabled=!1,vm.textContent=`Run`,a.ok&&a.content?(Nh(a.content),Rm(`Agent responded. Result saved in AI/WORKSPACE.`,`success`,Wp,n)):(i||Mh({type:`error`,message:a.error??`Agent failed.`}),gm.dataset.state=`error`,Rm(a.error??`Agent failed.`,`error`,Wp,n))}function Ah(e){return e.type===`tool_call`&&e.toolName?`Agent tool call: ${e.toolName}`:e.type===`tool_result`&&e.toolName?`Agent tool result: ${e.toolName}`:`Agent: ${e.message}`}function jh(){gm.hidden=!1,gm.dataset.state=`loading`,gm.textContent=``,Mh({type:`status`,message:`Preparing agent request`})}function Mh(e){gm.hidden=!1,e.type===`error`&&(gm.dataset.state=`error`);let t=document.createElement(`div`);t.className=`agent-run-event agent-run-event-${e.type.replace(`_`,`-`)}`;let n=document.createElement(`span`);n.className=`agent-run-event-dot`,n.setAttribute(`aria-hidden`,`true`);let r=document.createElement(`div`);r.className=`agent-run-event-body`;let i=document.createElement(`p`);i.className=`agent-run-event-title`,i.textContent=e.message,r.appendChild(i);let a=[];if(e.turn&&a.push(`Turn ${e.turn}`),e.toolName&&a.push(e.toolName),e.detail&&a.push(e.detail),a.length){let e=document.createElement(`p`);e.className=`agent-run-event-meta`,e.textContent=a.join(` · `),r.appendChild(e)}t.append(n,r),gm.appendChild(t),gm.scrollTop=gm.scrollHeight}function Nh(e){gm.dataset.state=`success`;let t=document.createElement(`section`);t.className=`agent-run-final`;let n=document.createElement(`h3`);n.textContent=`Final response`;let r=document.createElement(`pre`);r.textContent=e,t.append(n,r),gm.appendChild(t),gm.scrollTop=gm.scrollHeight}function Ph(e,t){gm.hidden=!1,gm.dataset.state=e,gm.textContent=t}var Fh=/^(?:env:[A-Za-z_][A-Za-z0-9_]*|\$\{[A-Za-z_][A-Za-z0-9_]*\})$/;function Ih(e){let t=e.trim();return t!==``&&!Fh.test(t)}function Lh(e){let t=e.trim();return Ih(t)?``:t}var Rh=`API token must reference an environment variable, e.g. env:LLM_API_KEY`;function zh(e){return`${e.config.providerType}|${e.config.endpoint}`}function Bh(e){if(Zp=e,e.length>0){Q.model.innerHTML=``;for(let t of e){let e=document.createElement(`option`);e.value=t,e.textContent=t,Q.model.appendChild(e)}}Q.modelFilter.value=``,Q.modelFilter.hidden=e.length===0,Hh()}function Vh(){let e=Q.modelFilter.value.toLowerCase().split(/\s+/).filter(Boolean);if(e.length===0||Zp.length===0){Hh();return}if($p=Zp.filter(t=>{let n=t.toLowerCase();return e.every(e=>n.includes(e))}),em>=$p.length&&(em=-1),Q.modelResults.innerHTML=``,$p.forEach((e,t)=>{let n=document.createElement(`li`);n.id=`nodeModelResult-${t}`,n.role=`option`,n.dataset.model=e,n.textContent=e,n.classList.toggle(`active`,t===em),n.setAttribute(`aria-selected`,String(e===Q.model.value)),Q.modelResults.appendChild(n)}),$p.length===0){let e=document.createElement(`li`);e.className=`empty`,e.textContent=Y(`workspace.model.no_match`),Q.modelResults.appendChild(e)}let t=Y(`workspace.model.filter_count`,{shown:String($p.length),total:String(Zp.length)});Q.modelResults.setAttribute(`aria-label`,t),Q.modelFilter.title=t,Q.modelResults.hidden=!1,Q.modelFilter.setAttribute(`aria-expanded`,`true`),em>=0?(Q.modelFilter.setAttribute(`aria-activedescendant`,`nodeModelResult-${em}`),Q.modelResults.children[em]?.scrollIntoView({block:`nearest`})):Q.modelFilter.removeAttribute(`aria-activedescendant`)}function Hh(){$p=[],em=-1,Q.modelResults.hidden=!0,Q.modelResults.innerHTML=``,Q.modelFilter.setAttribute(`aria-expanded`,`false`),Q.modelFilter.removeAttribute(`aria-activedescendant`)}function Uh(e){Q.model.value=e,Q.model.dispatchEvent(new Event(`input`,{bubbles:!0})),Q.model.dispatchEvent(new Event(`change`,{bubbles:!0})),Q.modelFilter.value=``,Hh()}async function Wh(){let e=Xh();if(e?.kind!==`llm`)return;xh();let t=e.config.endpoint;if(!t){Rm(Y(`workspace.model.endpoint_required`));return}if(Ih(e.config.token)){Rm(Rh);return}Xp.classList.add(`loading`),Xp.disabled=!0,Q.model.disabled=!0;let n=await wo({endpoint:t,token:e.config.token,providerType:e.config.providerType});if(Xp.classList.remove(`loading`),Xp.disabled=!1,Q.model.disabled=!1,!n.ok||!n.models?.length){Rm(n.error??Y(`workspace.model.none_found`));return}let r=Q.model.value;Qp.set(zh(e),n.models),Bh(n.models),Q.model.value=n.models.includes(r)?r:n.models[0],e.config.model=Q.model.value,Yp.disabled=!Q.model.value,Rm(n.models.length===1?Y(`workspace.model.loaded_one`):Y(`workspace.model.loaded_many`,{count:String(n.models.length)})),tg()}async function Gh(){let e=Xh();if(e?.kind!==`llm`)return;if(xh(),Ih(e.config.token)){Rm(Rh);return}Yp.disabled=!0,Lm(`Testing ${e.config.model}…`),tg();let t=e.config.providerType===`image`?await Kh(e):await Oo({endpoint:e.config.endpoint,token:e.config.token,model:e.config.model,timeout:e.config.timeout});Yp.disabled=!1,t.ok?Rm(t.detail??`Connection OK`,`success`):Rm(t.error||`Connection failed (${t.status||`no status`})`,`error`),tg()}async function Kh(e){let t=await wo({endpoint:e.config.endpoint,token:e.config.token,providerType:`image`});if(!t.ok)return{ok:!1,error:t.error??`Image provider test failed`};let n=e.config.model.trim();return n&&t.models?.length&&!t.models.includes(n)?{ok:!1,error:`Image models loaded, but "${n}" was not found.`}:{ok:!0,detail:`${t.models?.length??0} image model${t.models?.length===1?``:`s`} available`}}async function qh(){let e=Xh();if(e?.kind===`llm`)try{await navigator.clipboard.writeText(e.id),Rm(`Provider ID copied`,`success`)}catch{Q.providerId.select(),Rm(`Provider ID selected`,`success`)}}function Jh(e){return{system:`System`,llm:`LLM provider`,agent:`Agent`,mcp:`MCP`}[e]||`Node`}function Yh(e){return e.kind===`llm`&&e.config.providerType===`image`?`Image provider`:Jh(e.kind)}function Xh(){return $.selectedId?Zh($.selectedId):null}function Zh(e){return $.entities.find(t=>t.id===e)}function Qh(e){return e===`root`||e===`mcp`}function $h(e){return $.entities.filter(t=>t.parentId===e)}function eg(e){let t=[];for(let n of $h(e))t.push(n.id,...eg(n.id));return t}function tg(){Em?Gp.requestPaint():requestAnimationFrame(ng)}function ng(){let e=Gp.width/$.dpr,t=Gp.height/$.dpr;Z.reset(),Z.setTransform($.dpr,0,0,$.dpr,0,0),Z.clearRect(0,0,e,t),Z.save(),Z.translate($.cameraX,$.cameraY),Z.scale($.zoom,$.zoom),rg(e,t),ig(),Z.restore(),Em&&dg(e,t)}function rg(e,t){Z.save(),Z.lineWidth=1/$.zoom;let n=Sg({x:0,y:0}),r=Sg({x:e,y:t}),i=Math.floor(n.x/fp)*fp,a=Math.ceil(r.x/fp)*fp,o=Math.floor(n.y/fp)*fp,s=Math.ceil(r.y/fp)*fp;for(let e=i;e<=a;e+=fp)Z.strokeStyle=e%pp===0?`#d7dce5`:`#edf0f4`,zg(e,o,e,s);for(let e=o;e<=s;e+=fp)Z.strokeStyle=e%pp===0?`#d7dce5`:`#edf0f4`,zg(i,e,a,e);Z.restore()}function ig(){ag();for(let e of $.entities)og(e)}function ag(){Z.save(),Z.lineWidth=2/$.zoom;for(let e of $.entities){let t=Zh(e.parentId);if(!t)continue;let n=Math.atan2(e.y-t.y,e.x-t.x),r=wg(t,n),i=wg(e,n+Math.PI);Z.strokeStyle=lg(e).connection,Z.beginPath(),Z.moveTo(r.x,r.y),Z.lineTo(i.x,i.y),Z.stroke()}Z.restore()}function og(e){if(e.kind===`system`||e.kind===`llm`){sg(e);return}cg(e)}function sg(e){let t=e.id===$.selectedId,n=lg(e),r=e.kind===`system`?lp:up,i=$h(e.id),a=Math.max(dp,i.length),o=Ig(e.x,e.y,r,a);Z.save(),Z.beginPath(),o.forEach((e,t)=>{t===0?Z.moveTo(e.x,e.y):Z.lineTo(e.x,e.y)}),Z.closePath(),Z.fillStyle=t?n.selectedFill:n.fill,Z.strokeStyle=t?n.selectedStroke:n.stroke,Z.lineWidth=(t?3:2)/$.zoom,Z.shadowColor=n.shadow,Z.shadowBlur=e.kind===`system`?20:14,Z.shadowOffsetY=e.kind===`system`?8:5,Z.fill(),Z.shadowColor=`transparent`,Z.stroke(),Z.fillStyle=t?n.selectedText:n.text,Z.textAlign=`center`,Z.textBaseline=`middle`,Z.font=e.kind===`system`?`800 21px Inter, system-ui, sans-serif`:`800 16px Inter, system-ui, sans-serif`,Rg(e.label,e.x,e.y-8,r*1.32,e.kind===`system`?26:20),ug(e,t,r),Z.restore()}function cg(e){let t=e.id===$.selectedId,n=lg(e),r=e.kind===`mcp`?116:sp,i=e.kind===`mcp`?58:cp;Z.save(),Lg(e.x-r/2,e.y-i/2,r,i,20),Z.fillStyle=t?n.selectedFill:n.fill,Z.strokeStyle=t?n.selectedStroke:n.stroke,Z.lineWidth=(t?3:2)/$.zoom,Z.shadowColor=n.shadow,Z.shadowBlur=10,Z.shadowOffsetY=4,Z.fill(),Z.shadowColor=`transparent`,Z.stroke(),Z.fillStyle=t?n.selectedText:n.text,Z.font=`760 15px Inter, system-ui, sans-serif`,Z.textAlign=`center`,Z.textBaseline=`middle`,Rg(e.label,e.x,e.y,r*.78,18),ug(e,t,Math.max(r,i)/2),Z.restore()}function lg(e){if(e.kind===`system`)return{fill:`#111827`,stroke:`#111827`,selectedFill:`#111827`,selectedStroke:`#111827`,text:`#ffffff`,selectedText:`#ffffff`,shadow:`rgb(17 24 39 / 18%)`,connection:`#475569`};if(e.kind===`llm`&&e.config.providerType===`image`)return{fill:`#facc15`,stroke:`#ca8a04`,selectedFill:`#eab308`,selectedStroke:`#a16207`,text:`#111827`,selectedText:`#111827`,shadow:`rgb(250 204 21 / 22%)`,connection:`#ca8a04`};if(e.kind===`llm`&&e.config.toolMode===`chat`)return{fill:`#f472b6`,stroke:`#db2777`,selectedFill:`#ec4899`,selectedStroke:`#be185d`,text:`#500724`,selectedText:`#500724`,shadow:`rgb(244 114 182 / 20%)`,connection:`#db2777`};if(e.kind===`llm`)return{fill:`#f97316`,stroke:`#ea580c`,selectedFill:`#fb923c`,selectedStroke:`#c2410c`,text:`#431407`,selectedText:`#431407`,shadow:`rgb(249 115 22 / 20%)`,connection:`#ea580c`};if(e.kind===`mcp`)return{fill:`#64748b`,stroke:`#475569`,selectedFill:`#475569`,selectedStroke:`#334155`,text:`#ffffff`,selectedText:`#ffffff`,shadow:`rgb(100 116 139 / 18%)`,connection:`#64748b`};if(e.kind===`agent`){let t=Zh(e.parentId);return t?.kind===`llm`&&t.config.toolMode===`chat`?{fill:`#f9a8d4`,stroke:`#f472b6`,selectedFill:`#ec4899`,selectedStroke:`#db2777`,text:`#111827`,selectedText:`#111827`,shadow:`rgb(244 114 182 / 18%)`,connection:`#f472b6`}:{fill:`#fdba74`,stroke:`#f97316`,selectedFill:`#fb923c`,selectedStroke:`#ea580c`,text:`#111827`,selectedText:`#111827`,shadow:`rgb(249 115 22 / 18%)`,connection:`#f97316`}}return{fill:`#ffffff`,stroke:`#0f172a`,selectedFill:`#111827`,selectedStroke:`#0f172a`,text:`#111827`,selectedText:`#ffffff`,shadow:`rgb(15 23 42 / 8%)`,connection:`#111827`}}function ug(e,t,n){t&&(Z.beginPath(),Z.arc(e.x+n*.62,e.y-n*.66,5,0,Math.PI*2),Z.fillStyle=`#34d399`,Z.fill())}function dg(e,t){if(!Xh())return;let n=kg(e),r=Math.min(_p,t-118),i=e-n-24,a=Math.max(24,(t-r)/2);try{let e=Z.drawElementImage(bm,i,a,n,r);bm.style.transform=e.toString()}catch{Kp.textContent=`Waiting for HTML snapshot`}}function fg(e,t){let n=Gp.clientWidth,r=Gp.clientHeight,i=Xh()?kg(n)+vp:0,a=Math.max(360,n-i),o=vg(),s=yg(o,a,r),c=t?s:Math.min($.zoom,s),l=(o.minX+o.maxX)/2,u=(o.minY+o.maxY)/2,d=a*.5-l*c,f=r*.5-u*c;if(!e||!$.cameraX||!$.cameraY){bg(),$.cameraX=d,$.cameraY=f,$.zoom=c,$.panelShiftX=i;return}$.panelShiftX=i,_g(d,f,c)}function pg(e,t,n){if(t){if(e){let e=mg();$.panelShiftX+=Math.max(0,-e),gg(e,n)}else{let e=Xh();if(e){let t=kg(Gp.clientWidth)+vp,n=(Gp.clientWidth-t)/2-e.x*$.zoom,r=n-$.cameraX;$.panelShiftX=-r,_g(n,$.cameraY,$.zoom)}}return}if(!e)return;let r=$.panelShiftX;$.panelShiftX=0,gg(r,n)}function mg(){let e=Xh();if(!e)return 0;let t=Gp.clientWidth-kg(Gp.clientWidth)-24-Op,n=hg(e);return n.right<=t?0:t-n.right}function hg(e){let t=Mg(e);return{left:t.left*$.zoom+$.cameraX,top:t.top*$.zoom+$.cameraY,right:t.right*$.zoom+$.cameraX,bottom:t.bottom*$.zoom+$.cameraY}}function gg(e,t){if(bg(),!e)return;let n=$.cameraX+e;if(!t){$.cameraX=n;return}_g(n,$.cameraY,$.zoom)}function _g(e,t,n){bg();let r=$.cameraX,i=$.cameraY,a=$.zoom,o=performance.now();function s(c){let l=Math.min(1,(c-o)/Ep),u=1-(1-l)**3;$.cameraX=r+(e-r)*u,$.cameraY=i+(t-i)*u,$.zoom=a+(n-a)*u,th(),tg(),l<1?$.viewAnimationId=requestAnimationFrame(s):$.viewAnimationId=null}$.viewAnimationId=requestAnimationFrame(s)}function vg(){return $.entities.reduce((e,t)=>{let n=fh(t);return{minX:Math.min(e.minX,t.x-n),minY:Math.min(e.minY,t.y-n),maxX:Math.max(e.maxX,t.x+n),maxY:Math.max(e.maxY,t.y+n)}},{minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0})}function yg(e,t,n){let r=e.maxX-e.minX,i=e.maxY-e.minY;if(!Number.isFinite(r)||!Number.isFinite(i)||r<=0||i<=0)return 1;let a=Math.max(1,t-Dp*2),o=Math.max(1,n-Dp*2);return Cg(Math.min(1,a/r,o/i),Ap,1)}function bg(){$.viewAnimationId&&(cancelAnimationFrame($.viewAnimationId),$.viewAnimationId=null)}function xg(e,t){bg();let n=Sg(e);$.zoom=Cg($.zoom*t,Ap,jp),$.cameraX=e.x-n.x*$.zoom,$.cameraY=e.y-n.y*$.zoom,tg()}function Sg(e){return{x:(e.x-$.cameraX)/$.zoom,y:(e.y-$.cameraY)/$.zoom}}function Cg(e,t,n){return Math.min(n,Math.max(t,e))}function wg(e,t){if(e.kind!==`system`&&e.kind!==`llm`)return Dg(e,t);let n=e.kind===`system`?lp:up,r=$h(e.id);return Tg(e,n,Math.max(dp,r.length),t)||{x:e.x+Math.cos(t)*n,y:e.y+Math.sin(t)*n}}function Tg(e,t,n,r){let i={x:Math.cos(r),y:Math.sin(r)},a=Ig(e.x,e.y,t,n),o=null;for(let t=0;t<a.length;t+=1){let n=a[t],r=a[(t+1)%a.length],s={x:r.x-n.x,y:r.y-n.y},c={x:n.x-e.x,y:n.y-e.y},l=Eg(i,s);if(Math.abs(l)<1e-4)continue;let u=Eg(c,s)/l,d=Eg(c,i)/l;if(u>=0&&d>=0&&d<=1){let t={x:e.x+i.x*u,y:e.y+i.y*u};(!o||u<o.rayDistance)&&(o={...t,rayDistance:u})}}return o?{x:o.x,y:o.y}:null}function Eg(e,t){return e.x*t.y-e.y*t.x}function Dg(e,t){let n=Ag(e),r=n.width/2,i=n.height/2,a=Math.cos(t),o=Math.sin(t),s=Math.min(Math.abs(r/(a||2**-52)),Math.abs(i/(o||2**-52)));return{x:e.x+a*s,y:e.y+o*s}}function Og(e,t){if(e.kind===`system`||e.kind===`llm`){let n=e.kind===`system`?lp:up;return Math.hypot(t.x-e.x,t.y-e.y)<=n+Tp}let{width:n,height:r}=Ag(e);return Math.abs(t.x-e.x)<=n/2+Tp&&Math.abs(t.y-e.y)<=r/2+Tp}function kg(e){return Math.min(hp,Math.max(mp,Math.floor(e*gp)))}function Ag(e){return e.kind===`mcp`?{width:116,height:58}:{width:sp,height:cp}}function jg(e){return[e,...eg(e.id).map(Zh)].filter(Boolean).map(Mg).reduce(Ng)}function Mg(e){if(e.kind===`system`||e.kind===`llm`){let t=e.kind===`system`?lp:up;return{left:e.x-t,top:e.y-t,right:e.x+t,bottom:e.y+t}}let{width:t,height:n}=Ag(e);return{left:e.x-t/2,top:e.y-n/2,right:e.x+t/2,bottom:e.y+n/2}}function Ng(e,t){return{left:Math.min(e.left,t.left),top:Math.min(e.top,t.top),right:Math.max(e.right,t.right),bottom:Math.max(e.bottom,t.bottom)}}function Pg(e,t,n){return!(e.right+n<t.left||e.left-n>t.right||e.bottom+n<t.top||e.top-n>t.bottom)}function Fg(e){let t=Gp.getBoundingClientRect();return{x:e.clientX-t.left,y:e.clientY-t.top}}function Ig(e,t,n,r){return Array.from({length:r},(i,a)=>{let o=-Math.PI/2+a/r*Math.PI*2;return{x:e+Math.cos(o)*n,y:t+Math.sin(o)*n}})}function Lg(e,t,n,r,i){let a=e+n,o=t+r;Z.beginPath(),Z.moveTo(e+i,t),Z.lineTo(a-i,t),Z.quadraticCurveTo(a,t,a,t+i),Z.lineTo(a,o-i),Z.quadraticCurveTo(a,o,a-i,o),Z.lineTo(e+i,o),Z.quadraticCurveTo(e,o,e,o-i),Z.lineTo(e,t+i),Z.quadraticCurveTo(e,t,e+i,t),Z.closePath()}function Rg(e,t,n,r,i){let a=e.split(/\s+/),o=[],s=``;for(let e of a){let t=s?`${s} ${e}`:e;Z.measureText(t).width>r&&s?(o.push(s),s=e):s=t}o.push(s);let c=n-(o.length-1)*i/2;o.forEach((e,n)=>{Z.fillText(e,t,c+n*i)})}function zg(e,t,n,r){Z.beginPath(),Z.moveTo(e,t),Z.lineTo(n,r),Z.stroke()}var Bg=U(`<div class="status-row"><span id="apiStatus"></span></div>`),Vg=U('<div class="app-shell"><!> <section class="workspace-shell" aria-label="Configuration graph workspace"><nav class="rail" aria-label="Workspace tools"><button id="addButton" class="tool-button primary" type="button" title="Add node">+</button> <button id="fitButton" class="tool-button" type="button" title="Fit view">⌖</button></nav> <canvas id="workspaceCanvas" class="workspace-canvas" layoutsubtree=""><form id="configSurface" class="config-surface" autocomplete="off"><div class="panel-kicker"><span id="nodeTypeBadge">Provider</span> <button id="closePanelButton" class="icon-button close" type="button" title="Close panel">×</button></div> <div class="panel-title-row"><label class="eyebrow" for="nodeName">Node name</label> <input id="nodeName" name="nodeName" class="title-input" type="text"/></div> <div class="form-grid"><label class="field"><span>Kind</span> <select id="nodeKind" name="nodeKind"><option>System</option><option>LLM provider</option><option>Agent</option><option>MCP</option></select></label> <div id="llmFields" class="contents"><div id="providerIdField" class="field wide"><span>Provider ID</span> <div class="model-select-wrap"><input id="nodeProviderId" name="nodeProviderId" type="text" readonly=""/> <button id="copyProviderIdButton" class="icon-button" type="button" title="Copy provider ID">⧉</button></div> <small class="field-note">Technical node id. Use it when a tool or agent workflow needs to reference this provider, for example as <code>imageProviderId</code> with <code>generate_image</code>.</small></div> <label class="field wide"><span>Endpoint</span> <input id="nodeEndpoint" name="nodeEndpoint" type="url" placeholder="http://localhost:11434"/></label> <label class="field wide"><span>API token</span> <input id="nodeToken" name="nodeToken" type="text" autocomplete="off" spellcheck="false" placeholder="env:LLM_API_KEY"/> <small class="field-note">Reference an environment variable only — <code>env:VAR_NAME</code> (or <code>{VAR_NAME}</code>). The secret is read from the server environment at request time; literal tokens are not stored (the workspace file is tracked by git).</small></label> <div class="field wide model-field-row"><span> </span> <input id="nodeModelFilter" class="model-filter" type="search" role="combobox" aria-autocomplete="list" aria-controls="nodeModelResults" aria-expanded="false" autocomplete="off" spellcheck="false" hidden=""/> <ul id="nodeModelResults" class="model-results" role="listbox" hidden=""></ul> <div class="model-select-wrap"><select id="nodeModel" name="nodeModel"><option disabled="" selected=""> </option></select> <button id="loadModelsButton" class="icon-button" type="button">↻</button></div></div> <fieldset class="field wide tool-mode-field"><legend>Provider type</legend> <label class="radio-card"><input id="nodeProviderTypeChat" name="nodeProviderType" type="radio" value="chat"/> <span><strong>Chat completion</strong> <small>Uses OpenAI-compatible <code>/chat/completions</code>.</small></span></label> <label class="radio-card"><input id="nodeProviderTypeImage" name="nodeProviderType" type="radio" value="image"/> <span><strong>Image generation</strong> <small>Used by <code>generate_image</code> with the provider id above.</small></span></label></fieldset> <fieldset id="toolModeField" class="field wide tool-mode-field"><legend>Tool calling</legend> <label class="radio-card"><input id="nodeToolModeTools" name="nodeToolMode" type="radio" value="tools"/> <span><strong>Allow MCP tools</strong> <small>Agents can send OpenAI-compatible <code>tools</code> payloads.</small></span></label> <label class="radio-card"><input id="nodeToolModeChat" name="nodeToolMode" type="radio" value="chat"/> <span><strong>Chat only</strong> <small>Agents never send tools, even when an MCP endpoint exists.</small></span></label></fieldset> <label class="field"><span>Timeout</span> <input id="nodeTimeout" name="nodeTimeout" type="number" min="1" max="600" step="1"/></label></div> <label class="field wide"><span>Description</span> <textarea id="nodeDescription" name="nodeDescription" rows="3"></textarea></label></div> <section id="agentSection" class="agent-section" hidden=""><label id="agentProviderField" class="field wide"><span>LLM provider</span> <select id="nodeAgentProvider" name="nodeAgentProvider"></select> <small class="field-note">Move this agent to another LLM provider. It inherits the target provider\'s model and timeout.</small></label> <label id="agentWorkspaceField" class="field wide"><span>Workspace folder</span> <input id="nodeWorkspaceFolder" name="nodeWorkspaceFolder" type="text" readonly=""/></label> <label class="field wide"><span>System prompt</span> <textarea id="nodeSystemPrompt" name="nodeSystemPrompt" rows="5" placeholder="You are a helpful assistant…"></textarea></label> <label class="field wide checkbox-field"><input id="nodeRequiresUserInput" name="nodeRequiresUserInput" type="checkbox"/> <span>Require a user input</span></label> <label id="agentUserInputDescriptionField" class="field wide" hidden=""><span>Describe User input</span> <textarea id="nodeUserInputDescription" name="nodeUserInputDescription" rows="3" placeholder="Describe exactly what the user must provide before running this agent."></textarea></label> <label class="field wide"><span>Required output marker</span> <input id="nodeExpectedOutputMarker" name="nodeExpectedOutputMarker" type="text" placeholder="Optional, e.g. ```mermaid"/></label></section> <section id="mcpInventory" class="mcp-inventory" hidden=""><div class="inventory-header"><span>MCP consultation surface</span> <strong>Streamable HTTP</strong></div> <p id="mcpInventoryStatus" class="inventory-status" hidden=""></p> <div class="inventory-grid"><article><h2>Tools</h2> <ul id="mcpToolsList"></ul></article> <article><h2>Prompts</h2> <ul id="mcpPromptsList"></ul></article></div></section> <footer class="panel-actions"><div class="panel-actions-left"><button id="testNodeButton" class="secondary-button" type="button">Test</button></div> <div class="panel-actions-right"><button id="deleteNodeButton" class="danger-button" type="button">Delete</button></div></footer></form></canvas> <div id="fallbackPanelHost" class="fallback-panel-host" hidden=""></div></section> <div id="deleteConfirmOverlay" class="confirm-overlay" hidden=""><section class="confirm-dialog" role="dialog" aria-modal="true" aria-labelledby="deleteConfirmTitle"><div><p class="confirm-kicker">Destructive change</p> <h2 id="deleteConfirmTitle">Delete node?</h2> <p id="deleteConfirmMessage" class="confirm-message"></p></div> <footer class="confirm-actions"><button id="cancelDeleteButton" class="secondary-button" type="button">Cancel</button> <button id="confirmDeleteButton" class="danger-button" type="button">Delete</button></footer></section></div> <div id="renameConfirmOverlay" class="confirm-overlay" hidden=""><section class="confirm-dialog" role="dialog" aria-modal="true" aria-labelledby="renameConfirmTitle"><div><p class="confirm-kicker">Renommage de dossier</p> <h2 id="renameConfirmTitle">Renommer le dossier ?</h2> <p id="renameConfirmMessage" class="confirm-message"></p></div> <footer class="confirm-actions"><button id="cancelRenameButton" class="secondary-button" type="button">Annuler</button> <button id="confirmRenameButton" class="primary-button" type="button">Renommer</button></footer></section></div> <div id="agentRunOverlay" class="confirm-overlay" hidden=""><section class="agent-run-dialog" role="dialog" aria-modal="true" aria-labelledby="agentRunTitle"><div><p class="confirm-kicker">Agent test</p> <h2 id="agentRunTitle">Run agent</h2> <p id="agentRunHint" class="confirm-message"></p></div> <label id="agentRunInputField" class="field wide agent-run-input-field"><span>User input</span> <textarea id="agentRunInput" name="agentRunInput" rows="6" placeholder="Document ID, question, or any input for the agent…"></textarea></label> <div id="agentRunResult" class="agent-run-result" hidden=""></div> <footer class="confirm-actions"><button id="cancelAgentRunButton" class="secondary-button" type="button">Close</button> <button id="executeAgentRunButton" class="primary-button" type="button">Run</button></footer></section></div></div>');function Hg(e,t){qe(t,!0),Ji(async()=>{try{await Sa((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}return Dm()});var n=Vg(),r=L(n);Xo(r,{title:`Living AI Documentation`,subtitle:`Graph-native configuration workspace`,children:(e,t)=>{var n=Bg(),r=L(n);vi(r,1,`status-pill `),r.textContent=`Detecting canvas API`,j(n),W(e,n)},$$slots:{default:!0}});var i=z(r,2),a=z(L(i),2),o=L(a),s=z(L(o),4),c=L(s),l=z(L(c),2),u=L(l);u.value=u.__value=`system`;var d=z(u);d.value=d.__value=`llm`;var f=z(d);f.value=f.__value=`agent`;var p=z(f);p.value=p.__value=`mcp`,j(l),j(c);var m=z(c,2),h=z(L(m),6),g=L(h),_=L(g,!0);j(g);var v=z(g,2),y=z(v,4),b=L(y),x=L(b),S=L(x,!0);j(x),x.value=x.__value=``,j(b);var C=z(b,2);j(y),j(h),Ie(6),j(m),Ie(2),j(s),Ie(6),j(o),j(a),Ie(2),j(i),Ie(6),j(n),B((e,t,n,r)=>{G(_,e),J(v,`placeholder`,t),G(S,n),J(C,`title`,r)},[()=>Y(`workspace.model.label`),()=>Y(`workspace.model.filter_placeholder`),()=>Y(`workspace.model.placeholder`),()=>Y(`workspace.model.load`)]),W(e,n),Je()}var Ug=U(`<p class="files-msg svelte-4q2lov"> </p>`),Wg=U(`<p class="files-msg files-msg--error svelte-4q2lov"> </p>`),Gg=U(`<p class="files-msg files-msg--empty svelte-4q2lov"> </p>`),Kg=U(`<option> </option>`),qg=U(`<div class="files-toolbar svelte-4q2lov"><label for="files-folder-filter" class="svelte-4q2lov"> </label> <select id="files-folder-filter" data-testid="files-folder-filter" class="svelte-4q2lov"><option> </option><!></select></div>`),Jg=U(`<span class="files-folder svelte-4q2lov"> </span> ·`,1),Yg=U(`<p class="files-row-error svelte-4q2lov"> </p>`),Xg=U(`<li class="files-row svelte-4q2lov"><span class="files-icon svelte-4q2lov">📎</span> <div class="files-info svelte-4q2lov"><a target="_blank" rel="noopener" class="files-name svelte-4q2lov"> </a> <div class="files-meta svelte-4q2lov"><!><!> </div> <!></div> <div class="files-actions svelte-4q2lov"><button type="button" class="files-btn svelte-4q2lov"> </button> <button type="button" class="files-btn files-btn--danger svelte-4q2lov"> </button></div></li>`),Zg=U(`<ul class="files-list svelte-4q2lov"></ul>`),Qg=U(`<!> <!>`,1),$g=U(`<!> <div class="app-shell"><!> <div class="files-page svelte-4q2lov"><!></div></div>`,1);function e_(e,t){qe(t,!0);let n=P(null),r=P(I([])),i=P(I([])),a=P(``),o=P(!0),s=P(``),c=P(I({})),l=P(I({})),u=P(I({})),d=Pf,f=N(()=>V(a)?V(r).filter(e=>e.folder===V(a)||e.folder.startsWith(V(a)+`/`)):V(r));function p(e){return e<1024?Y(`files.size_bytes`).replace(`{n}`,String(e)):e<1024*1024?Y(`files.size_kb`).replace(`{n}`,(e/1024).toFixed(1)):Y(`files.size_mb`).replace(`{n}`,(e/1024/1024).toFixed(2))}function m(e){if(!e)return``;let t=new Date(e);if(isNaN(t.getTime()))return``;let n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}:${n(t.getMinutes())}`}async function h(){F(o,!0),F(s,``);try{let e=await fetch(`/api/files`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();F(r,Array.isArray(t.files)?t.files:[],!0),F(i,Array.isArray(t.folders)?t.folders:[],!0),V(a)&&!V(i).includes(V(a))&&F(a,``)}catch(e){F(s,Y(`files.error_load`)+(e instanceof Error?e.message:String(e)))}finally{F(o,!1)}}function g(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(r.result),r.onerror=n,r.readAsDataURL(e)})}function _(e){let t=document.createElement(`input`);t.type=`file`,t.style.display=`none`,document.body.appendChild(t),t.addEventListener(`change`,async()=>{let r=t.files?.[0];if(t.remove(),r&&await V(n).show({kicker:Y(`files.confirm_replace_title`),title:Y(`files.confirm_replace_message`).replace(`{name}`,e.displayName||e.filename).replace(`{newName}`,r.name),message:Y(`files.confirm_replace_detail`),confirmLabel:Y(`files.replace`),cancelLabel:Y(`common.cancel`),danger:!0})){if(r.size>d){F(c,{...V(c),[e.filename]:Y(`files.error_replace`)+`${(r.size/1024/1024).toFixed(1)} MB (max ${Ff} MB)`},!0);return}F(l,{...V(l),[e.filename]:!0},!0),F(c,{...V(c),[e.filename]:``},!0);try{let t=await g(r),n=await fetch(`/api/files/${encodeURIComponent(e.filename)}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||`HTTP ${n.status}`)}await h()}catch(t){F(c,{...V(c),[e.filename]:Y(`files.error_replace`)+(t instanceof Error?t.message:String(t))},!0)}finally{F(l,{...V(l),[e.filename]:!1},!0)}}}),t.click()}async function v(e){if(await V(n).show({kicker:Y(`files.confirm_delete_title`),title:Y(`files.confirm_delete_message`).replace(`{name}`,e.displayName||e.filename),message:Y(`files.confirm_delete_detail`),confirmLabel:Y(`files.delete`),cancelLabel:Y(`common.cancel`),danger:!0})){F(u,{...V(u),[e.filename]:!0},!0),F(c,{...V(c),[e.filename]:``},!0);try{let t=await fetch(`/api/files/${encodeURIComponent(e.filename)}`,{method:`DELETE`});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||`HTTP ${t.status}`)}await h()}catch(t){F(c,{...V(c),[e.filename]:Y(`files.error_delete`)+(t instanceof Error?t.message:String(t))},!0)}finally{F(u,{...V(u),[e.filename]:!1},!0)}}}Ji(async()=>{try{await Sa((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}await h()});var y=$g(),b=R(y);Ui(Xd(b,{}),e=>F(n,e,!0),()=>V(n));var x=z(b,2),S=L(x);{let e=N(()=>Y(`files.title`));Xo(S,{get title(){return V(e)},subtitle:``})}var C=z(S,2),w=L(C),T=e=>{var t=Ug(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},E=e=>{var t=Wg(),n=L(t,!0);j(t),B(()=>G(n,V(s))),W(e,t)},D=e=>{var t=Gg(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`files.empty`)]),W(e,t)},ee=e=>{var t=Qg(),n=R(t),r=e=>{var t=qg(),n=L(t),r=L(n,!0);j(n);var o=z(n,2),s=L(o),c=L(s,!0);j(s),s.value=s.__value=``,q(z(s),16,()=>V(i),e=>e,(e,t)=>{var n=Kg(),r=L(n,!0);j(n);var i={};B(()=>{G(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),W(e,n)}),j(o);var l;Si(o),j(t),B((e,t)=>{G(r,e),G(c,t),l!==(l=V(a))&&(o.value=(o.__value=V(a))??``,xi(o,V(a)))},[()=>Y(`files.filter_label`),()=>Y(`files.filter_all`)]),H(`change`,o,e=>F(a,e.target.value,!0)),W(e,t)};K(n,e=>{V(i).length>0&&e(r)});var o=z(n,2),s=e=>{var t=Gg(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`files.empty_filter`)]),W(e,t)},d=e=>{var t=Zg();q(t,21,()=>V(f),Qr,(e,t)=>{var n=Xg(),r=z(L(n),2),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o),d=e=>{var n=Jg(),r=R(n),i=L(r,!0);j(r),Ie(),B(()=>G(i,V(t).folder)),W(e,n)};K(s,e=>{V(t).folder&&e(d)});var f=z(s),h=e=>{var n=Ur();B(e=>G(n,`${e??``} ·`),[()=>m(V(t).uploadedAt)]),W(e,n)};K(f,e=>{V(t).uploadedAt&&e(h)});var g=z(f,1,!0);j(o);var y=z(o,2),b=e=>{var n=Yg(),r=L(n,!0);j(n),B(()=>G(r,V(c)[V(t).filename])),W(e,n)};K(y,e=>{V(c)[V(t).filename]&&e(b)}),j(r);var x=z(r,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2),T=L(w,!0);j(w),j(x),j(n),B((e,n,r)=>{J(i,`href`,V(t).url),G(a,V(t).displayName||V(t).filename),G(g,e),S.disabled=V(l)[V(t).filename]||V(u)[V(t).filename],G(C,n),w.disabled=V(l)[V(t).filename]||V(u)[V(t).filename],G(T,r)},[()=>p(V(t).size||0),()=>V(l)[V(t).filename]?Y(`files.replacing`):Y(`files.replace`),()=>V(u)[V(t).filename]?Y(`files.deleting`):Y(`files.delete`)]),H(`click`,S,()=>_(V(t))),H(`click`,w,()=>v(V(t))),W(e,n)}),j(t),W(e,t)};K(o,e=>{V(f).length===0?e(s):e(d,-1)}),W(e,t)};K(w,e=>{V(o)?e(T):V(s)?e(E,1):V(r).length===0?e(D,2):e(ee,-1)}),j(C),j(x),W(e,y),Je()}Pr([`change`,`click`]);var t_=U(`<p class="browser-msg"> </p>`),n_=U(`<p class="browser-msg browser-msg--error"> </p>`),r_=U(`<button class="browser-row browser-row--dir"><span class="browser-row-name"> </span></button>`),i_=U(`<span class="badge-added"> </span>`),a_=U(`<button class="link-btn"> </button>`),o_=U(`<div class="browser-row browser-row--file"><span class="browser-row-name"> </span> <!></div>`),s_=U(`<!> <!>`,1),c_=U(`<div class="file-browser"><div class="file-browser-toolbar"><button class="link-btn"> </button> <span class="file-browser-path"> </span></div> <div class="file-browser-list" data-testid="instruction-browse-list"><!></div></div>`),l_=U(`<p class="empty-msg svelte-e5jhdq"> </p>`),u_=U(`<button class="remove-btn"> </button>`),d_=U(`<div class="instruction-row svelte-e5jhdq"><div class="instruction-info svelte-e5jhdq"><a class="instruction-path svelte-e5jhdq"> </a> <div class="instruction-meta svelte-e5jhdq"> <!></div></div> <div class="instruction-actions svelte-e5jhdq"><span> </span> <!></div></div>`),f_=U(`<div class="section-card svelte-e5jhdq"><div class="section-header svelte-e5jhdq"><span class="section-title svelte-e5jhdq"> </span> <div class="header-actions svelte-e5jhdq"><span class="count-label svelte-e5jhdq"> </span> <button class="secondary-button btn-sm"> </button></div></div> <!> <div class="instruction-list svelte-e5jhdq" data-testid="instruction-list"><!></div></div>`);function p_(e,t){qe(t,!0);let n=qi(t,`items`,27,()=>I([])),r=P(!1),i=P(``),a=P(``),o=P(I([])),s=P(I([])),c=P(!1),l=P(!1),u=N(()=>new Set(n().map(e=>d(e.path))));function d(e){return String(e||``).split(/[/\\]/).pop()||``}function f(e){let t=encodeURIComponent(String(e||``).replace(/\.md$/i,``));return`/?doc=`+encodeURIComponent(t)}function p(e){return Y(`context.root.${e}`)}function m(e){return Y(`context.type.${e}`)}async function h(e){F(c,!0),F(l,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(i,t.current,!0),F(a,t.parent||``,!0),F(o,t.dirs||[],!0),F(s,t.files||[],!0)}catch{F(l,!0)}finally{F(c,!1)}}async function g(){F(r,!V(r)),V(r)&&!V(i)&&await h((await fetch(`/api/context/orientation`).then(e=>e.json()).catch(()=>({}))).sourceRoot||``)}async function _(e){await t.onAdd(e),V(r)&&V(i)&&await h(V(i))}var v=f_(),y=L(v),b=L(y),x=L(b,!0);j(b);var S=z(b,2),C=L(S),w=L(C);j(C);var T=z(C,2),E=L(T,!0);j(T),j(S),j(y);var D=z(y,2),ee=e=>{var t=c_(),n=L(t),r=L(n),d=L(r,!0);j(r);var f=z(r,2),p=L(f,!0);j(f),j(n);var m=z(n,2),g=L(m),v=e=>{var t=t_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},y=e=>{var t=n_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.cannot_read_dir`)]),W(e,t)},b=e=>{var t=t_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.empty_dir`)]),W(e,t)},x=e=>{var t=s_(),n=R(t);q(n,17,()=>V(o),Qr,(e,t)=>{var n=r_(),r=L(n),i=L(r);j(r),j(n),B(()=>G(i,`📁 ${V(t).name??``}`)),H(`click`,n,()=>h(V(t).path)),W(e,n)}),q(z(n,2),17,()=>V(s),Qr,(e,t)=>{var n=o_(),r=L(n),i=L(r);j(r);var a=z(r,2),o=e=>{var t=i_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.added`)]),W(e,t)},s=N(()=>V(u).has(V(t).name)),c=e=>{var n=a_(),r=L(n,!0);j(n),B(e=>G(r,e),[()=>Y(`context.add_file_action`)]),H(`click`,n,()=>_(V(t).path)),W(e,n)};K(a,e=>{V(s)?e(o):e(c,-1)}),j(n),B(()=>G(i,`📄 ${V(t).name??``}`)),W(e,n)}),W(e,t)};K(g,e=>{V(c)?e(v):V(l)?e(y,1):!V(o).length&&!V(s).length?e(b,2):e(x,-1)}),j(m),j(t),B(e=>{r.disabled=!V(a),G(d,e),G(p,V(i))},[()=>Y(`common.up`)]),H(`click`,r,()=>V(a)&&h(V(a))),W(e,t)};K(D,e=>{V(r)&&e(ee)});var te=z(D,2),O=L(te),k=e=>{var t=l_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.no_instructions`)]),W(e,t)},ne=e=>{var r=Wr();q(R(r),17,n,Qr,(e,n)=>{var r=d_(),i=L(r),a=L(i),o=L(a,!0);j(a);var s=z(a,2),c=L(s),l=z(c),u=e=>{var t=Ur();B(e=>G(t,`· ${e??``} KB`),[()=>Math.round(V(n).size/1024)]),W(e,t)};K(l,e=>{V(n).size!==null&&e(u)}),j(s),j(i);var h=z(i,2),g=L(h),_=L(g,!0);j(g);var v=z(g,2),y=e=>{var r=u_(),i=L(r,!0);j(r),B(e=>G(i,e),[()=>Y(`common.remove`)]),H(`click`,r,()=>t.onRemove(d(V(n).path))),W(e,r)};K(v,e=>{V(n).exists&&e(y)}),j(h),j(r),B((e,t,r,i)=>{J(a,`href`,e),G(o,V(n).path),G(c,`${t??``} · ${r??``} `),vi(g,1,fi(V(n).exists?`status-ok`:`status-missing`),`svelte-e5jhdq`),G(_,i)},[()=>f(V(n).path),()=>p(V(n).root),()=>m(V(n).type),()=>V(n).exists?Y(`context.exists`):Y(`context.missing`)]),W(e,r)}),W(e,r)};K(O,e=>{n().length?e(ne,-1):e(k)}),j(te),j(v),B((e,t,r)=>{G(x,e),G(w,`${t??``}/${n().length??``}`),G(E,r)},[()=>Y(`context.instructions_title`),()=>n().filter(e=>e.exists).length,()=>V(r)?Y(`context.hide_instruction_browser`):Y(`context.add_instruction_file`)]),H(`click`,T,g),W(e,v),Je()}Pr([`click`]);var m_=U(`<span class="rules-folder svelte-1r3tey2"> </span>`),h_=U(`<p class="empty-msg svelte-1r3tey2"> </p>`),g_=U(`<span class="tag svelte-1r3tey2"> </span>`),__=U(`<div class="rule-tags svelte-1r3tey2"></div>`),v_=U(`<div class="rule-applies svelte-1r3tey2"> </div>`),y_=U(`<article class="rule-row svelte-1r3tey2"><div class="rule-top svelte-1r3tey2"><div class="rule-title-wrap svelte-1r3tey2"><h3 class="rule-title svelte-1r3tey2"><a class="rule-link svelte-1r3tey2"> </a></h3> <a class="rule-path svelte-1r3tey2"> </a></div> <span class="severity-badge svelte-1r3tey2"> </span></div> <p class="rule-desc svelte-1r3tey2"> </p> <!> <!></article>`),b_=U(`<div class="rules-layout svelte-1r3tey2"><div class="section-card svelte-1r3tey2"><div class="section-header svelte-1r3tey2"><span class="section-title svelte-1r3tey2" data-testid="rules-title"> </span> <!></div> <div class="rule-list svelte-1r3tey2" data-testid="rule-list"><!></div></div> <div class="section-card aside-card svelte-1r3tey2"><span class="section-title svelte-1r3tey2" data-testid="add-rule-title"> </span> <div class="field-group"><label class="field-label" for="ruleTitle"> </label> <input id="ruleTitle" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleSeverity"> </label> <select id="ruleSeverity" class="field-input"><option> </option><option> </option><option> </option></select></div> <div class="field-group"><label class="field-label" for="ruleDescription"> </label> <input id="ruleDescription" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleTags"> </label> <input id="ruleTags" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleAppliesTo"> </label> <input id="ruleAppliesTo" class="field-input"/></div> <div class="field-group"><label class="field-label" for="ruleBody"> </label> <textarea id="ruleBody" rows="7" class="field-input"></textarea></div> <button class="btn-primary" style="width:100%"> </button></div></div>`);function x_(e,t){qe(t,!0);let n=qi(t,`rules`,19,()=>[]),r=qi(t,`rulesFolder`,3,``),i=P(``),a=P(`guideline`),o=P(``),s=P(``),c=P(``),l=P(``),u=P(!1);function d(e){let t=encodeURIComponent(String(e||``).replace(/\.md$/i,``));return`/?doc=`+encodeURIComponent(t)}function f(e){let t=`context.rule_severity_${e}`,n=Y(t);return n===t?e:n}function p(e){return e.split(`,`).map(e=>e.trim()).filter(Boolean)}async function m(){if(V(i).trim()){F(u,!0);try{await t.onAdd({title:V(i).trim(),severity:V(a),description:V(o).trim(),tags:p(V(s)),appliesTo:p(V(c)),body:V(l).trim()}),F(i,``),F(o,``),F(s,``),F(c,``),F(l,``)}finally{F(u,!1)}}}var h=b_(),g=L(h),_=L(g),v=L(_),y=L(v,!0);j(v);var b=z(v,2),x=e=>{var t=m_(),n=L(t,!0);j(t),B(()=>G(n,r())),W(e,t)};K(b,e=>{r()&&e(x)}),j(_);var S=z(_,2),C=L(S),w=e=>{var t=h_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.no_rules`)]),W(e,t)},T=e=>{var t=Wr();q(R(t),17,n,Qr,(e,t)=>{var n=y_(),r=L(n),i=L(r),a=L(i),o=L(a),s=L(o,!0);j(o),j(a);var c=z(a,2),l=L(c,!0);j(c),j(i);var u=z(i,2),p=L(u,!0);j(u),j(r);var m=z(r,2),h=L(m,!0);j(m);var g=z(m,2),_=e=>{var n=__();q(n,21,()=>V(t).tags,Qr,(e,t)=>{var n=g_(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(n),W(e,n)};K(g,e=>{V(t).tags?.length&&e(_)});var v=z(g,2),y=e=>{var n=v_(),r=L(n,!0);j(n),B(e=>G(r,e),[()=>V(t).appliesTo.join(`, `)]),W(e,n)};K(v,e=>{V(t).appliesTo?.length&&e(y)}),j(n),B((e,n,r)=>{J(o,`href`,e),G(s,V(t).title),J(c,`href`,n),G(l,V(t).path),G(p,r),G(h,V(t).description)},[()=>d(V(t).path),()=>d(V(t).path),()=>f(V(t).severity)]),W(e,n)}),W(e,t)};K(C,e=>{n().length?e(T,-1):e(w)}),j(S),j(g);var E=z(g,2),D=L(E),ee=L(D,!0);j(D);var te=z(D,2),O=L(te),k=L(O,!0);j(O);var ne=z(O,2);ki(ne),j(te);var A=z(te,2),re=L(A),ie=L(re,!0);j(re);var ae=z(re,2),oe=L(ae),se=L(oe,!0);j(oe),oe.value=oe.__value=`guideline`;var ce=z(oe),le=L(ce,!0);j(ce),ce.value=ce.__value=`warning`;var ue=z(ce),de=L(ue,!0);j(ue),ue.value=ue.__value=`required`,j(ae),j(A);var fe=z(A,2),pe=L(fe),me=L(pe,!0);j(pe);var he=z(pe,2);ki(he),j(fe);var ge=z(fe,2),_e=L(ge),ve=L(_e,!0);j(_e);var ye=z(_e,2);ki(ye),j(ge);var be=z(ge,2),xe=L(be),Se=L(xe,!0);j(xe);var Ce=z(xe,2);ki(Ce),j(be);var we=z(be,2),Te=L(we),Ee=L(Te,!0);j(Te);var De=z(Te,2);yn(De),j(we);var Oe=z(we,2),ke=L(Oe,!0);j(Oe),j(E),j(h),B((e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)=>{G(y,e),G(ee,t),G(k,n),J(ne,`placeholder`,r),G(ie,i),G(se,a),G(le,o),G(de,s),G(me,c),J(he,`placeholder`,l),G(ve,u),J(ye,`placeholder`,d),G(Se,f),J(Ce,`placeholder`,p),G(Ee,m),J(De,`placeholder`,h),Oe.disabled=g,G(ke,_)},[()=>Y(`context.rules_title`),()=>Y(`context.add_rule_title`),()=>Y(`context.rule_title_label`),()=>Y(`context.rule_title_placeholder`),()=>Y(`context.rule_severity_label`),()=>Y(`context.rule_severity_guideline`),()=>Y(`context.rule_severity_warning`),()=>Y(`context.rule_severity_required`),()=>Y(`context.rule_description_label`),()=>Y(`context.rule_description_placeholder`),()=>Y(`context.rule_tags_label`),()=>Y(`context.rule_tags_placeholder`),()=>Y(`context.rule_applies_to_label`),()=>Y(`context.rule_applies_to_placeholder`),()=>Y(`context.rule_body_label`),()=>Y(`context.rule_body_placeholder`),()=>V(u)||!V(i).trim(),()=>Y(`context.add_rule_button`)]),Fi(ne,()=>V(i),e=>F(i,e)),Ci(ae,()=>V(a),e=>F(a,e)),Fi(he,()=>V(o),e=>F(o,e)),Fi(ye,()=>V(s),e=>F(s,e)),Fi(Ce,()=>V(c),e=>F(c,e)),Fi(De,()=>V(l),e=>F(l,e)),H(`click`,Oe,m),W(e,h),Je()}Pr([`click`]);var S_=U(`<p class="empty-msg svelte-1ui2b6s"> </p>`),C_=U(`<p class="mcp-desc svelte-1ui2b6s"> </p>`),w_=U(`<div class="mcp-schema-wrap svelte-1ui2b6s"><h4 class="mcp-schema-title svelte-1ui2b6s"> </h4> <pre class="mcp-schema-pre svelte-1ui2b6s"> </pre></div>`),T_=U(`<div class="mcp-result svelte-1ui2b6s" data-testid="mcp-result"></div>`),E_=U(`<details class="mcp-detail svelte-1ui2b6s"><summary class="mcp-summary svelte-1ui2b6s"> </summary> <!> <!> <div class="mcp-run-area svelte-1ui2b6s"><label class="mcp-run-label svelte-1ui2b6s"> </label> <textarea rows="4" spellcheck="false" class="field-input mcp-textarea svelte-1ui2b6s" data-testid="mcp-args"></textarea> <div class="mcp-run-footer svelte-1ui2b6s"><span class="mcp-error-text svelte-1ui2b6s" data-testid="mcp-error"> </span> <button class="btn-primary btn-sm"> </button></div> <!></div></details>`),D_=U(`<p class="mcp-arg-desc svelte-1ui2b6s"> </p>`),O_=U(`<li class="mcp-arg-item svelte-1ui2b6s"><div class="mcp-arg-name-row svelte-1ui2b6s"><span class="mcp-arg-name svelte-1ui2b6s"> </span> <span class="mcp-arg-req svelte-1ui2b6s"> </span></div> <!></li>`),k_=U(`<div class="mcp-schema-wrap svelte-1ui2b6s"><h4 class="mcp-schema-title svelte-1ui2b6s"> </h4> <ul class="mcp-args-list svelte-1ui2b6s"></ul></div>`),A_=U(`<div class="section-card svelte-1ui2b6s"><div class="section-header svelte-1ui2b6s"><span class="section-title svelte-1ui2b6s" data-testid="mcp-title"> </span> <button class="secondary-button btn-sm"> </button></div> <p class="section-desc svelte-1ui2b6s"> </p> <div class="mcp-info-grid svelte-1ui2b6s"><div class="mcp-info-cell svelte-1ui2b6s"><div class="mcp-info-label svelte-1ui2b6s"> </div> <div> </div></div> <div class="mcp-info-cell svelte-1ui2b6s"><div class="mcp-info-label svelte-1ui2b6s"> </div> <div class="mcp-info-value mono svelte-1ui2b6s"> </div></div> <div class="mcp-info-cell wide svelte-1ui2b6s"><div class="mcp-info-label svelte-1ui2b6s"> </div> <div class="mcp-info-value mono break svelte-1ui2b6s" data-testid="mcp-endpoint"> </div></div></div> <div><div class="subsection-header svelte-1ui2b6s"><span class="subsection-title svelte-1ui2b6s"> </span> <div class="subsection-actions svelte-1ui2b6s"><span class="count-label svelte-1ui2b6s"> </span> <button class="secondary-button btn-sm"> </button></div></div> <div class="mcp-items svelte-1ui2b6s" data-testid="mcp-tool-list"><!></div></div> <div><div class="subsection-header svelte-1ui2b6s"><span class="subsection-title svelte-1ui2b6s"> </span> <div class="subsection-actions svelte-1ui2b6s"><span class="count-label svelte-1ui2b6s"> </span> <button class="secondary-button btn-sm"> </button></div></div> <div class="mcp-items svelte-1ui2b6s" data-testid="mcp-prompt-list"><!></div></div></div>`);function j_(e,t){qe(t,!0);let n=P(`-`),r=P(!1),i=P(`-`),a=P(`-`),o=P(I([])),s=P(I([])),c=P(!1),l=P(I(new Map)),u=P(I(new Map));function d(e,t){let n=V(e===`tool`?l:u);return n.has(t)||n.set(t,{argsJson:`{}`,running:!1,error:``,resultHtml:``}),n.get(t)}function f(e,t,n){let r=V(e===`tool`?l:u).get(t)??{argsJson:`{}`,running:!1,error:``,resultHtml:``};e===`tool`?F(l,new Map(V(l)).set(t,{...r,...n}),!0):F(u,new Map(V(u)).set(t,{...r,...n}),!0)}function p(e){if(!e||typeof e!=`object`)return null;if(e.type===`string`)return``;if(e.type===`number`||e.type===`integer`)return 0;if(e.type===`boolean`)return!1;if(e.type===`array`)return[];if(e.type===`object`||e.properties){let t={},n=e.properties||{};return(Array.isArray(e.required)?e.required:[]).forEach(e=>{t[e]=p(n[e])??``}),t}return null}function m(e){let t=p(e.inputSchema)??{},n=JSON.stringify(t,null,2);F(l,new Map(V(l)).set(e.name,{argsJson:n,running:!1,error:``,resultHtml:``}),!0)}function h(e){let t={};(e.arguments||[]).forEach(e=>{e.required&&(t[e.name]=``)});let n=JSON.stringify(t,null,2);F(u,new Map(V(u)).set(e.name,{argsJson:n,running:!1,error:``,resultHtml:``}),!0)}function g(e){let t=e.match(/^data:\s*(\{.*\})\s*$/m);if(!t)throw Error(e.slice(0,300)||`No MCP response body`);return JSON.parse(t[1])}async function _(e,t,n){let r=await fetch(`/mcp`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`application/json, text/event-stream`},body:JSON.stringify({jsonrpc:`2.0`,id:e,method:t,params:n})}),i=await r.text();if(!r.ok)throw Error(i||`HTTP ${r.status}`);return g(i)}async function v(){await _(1,`initialize`,{protocolVersion:`2025-03-26`,capabilities:{},clientInfo:{name:`living-ai-documentation-context`,version:`1.0.0`}})}function y(e){return"```json\n"+JSON.stringify(e,null,2).replaceAll("```","`\\`\\`")+"\n```"}function b(e){if(typeof e!=`string`)return y(e);try{return y(JSON.parse(e))}catch{return e}}function x(e){if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return String(e??``);if(e.error)return y(e.error);let t=e.result;return!t||typeof t!=`object`?y(e):Array.isArray(t.messages)?t.messages.map(e=>`${e.role?`[${e.role}]`:``}\n${b(e.content?.text??e.content??e)}`.trim()).join(`
|
|
92
92
|
|
|
93
93
|
`):Array.isArray(t.content)?t.content.map(e=>e&&e.type===`text`&&typeof e.text==`string`?b(e.text):y(e)).join(`
|
|
94
94
|
|
|
@@ -96,75 +96,75 @@ Texte`};case`link`:return{text:ut(`snip-link-text`),textFallback:Y(`snippet.link
|
|
|
96
96
|
`)}function T(e){if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return String(e??``);if(e.error)return JSON.stringify(e.error,null,2);let t=e.result;return t?.isError?(Array.isArray(t.content)?t.content.map(e=>e&&e.type===`text`&&typeof e.text==`string`?e.text:JSON.stringify(e,null,2)).filter(Boolean):[]).join(`
|
|
97
97
|
|
|
98
98
|
`)||JSON.stringify(t,null,2):JSON.stringify(e,null,2)}async function E(e,t,n){let r=await fetch(`/api/context/mcp-result`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e,content:t,kind:n})});if(!r.ok)throw Error(await r.text()||`HTTP ${r.status}`);return r.json()}function D(e){let t=encodeURIComponent(String(e||``).replace(/\.md$/i,``));return`/?doc=`+encodeURIComponent(t)}async function ee(e,t){let n=d(e,t),r={};try{r=n.argsJson.trim()?JSON.parse(n.argsJson):{}}catch{f(e,t,{error:Y(`context.mcp_invalid_json`)});return}f(e,t,{running:!0,error:``,resultHtml:`<span class="mcp-running">${Y(`context.mcp_running`)}</span>`});try{await v();let n=e===`tool`?await _(2,`tools/call`,{name:t,arguments:r}):await _(2,`prompts/get`,{name:t,arguments:r});if(n.error||n.result?.isError){let r=T(n);f(e,t,{running:!1,error:Y(`context.mcp_error`),resultHtml:r?`<pre class="mcp-error-pre">${O(r)}</pre>`:``});return}let i=e===`tool`?V(o).find(e=>e.name===t):null,{path:a}=await E(t,e===`tool`&&i?w(i,r,n):x(n),e),s=D(a);f(e,t,{running:!1,error:``,resultHtml:`<div class="mcp-saved-label">${O(Y(`context.mcp_saved_to`))}</div>
|
|
99
|
-
<a href="${O(s)}" target="_blank" rel="noopener" class="mcp-saved-link">📄 ${O(a)}</a>`})}catch(n){f(e,t,{running:!1,error:n.message||String(n),resultHtml:``})}}async function te(e){let n=V(e===`tool`?o:s);if(!n.length)return;F(c,!0);let r=n.length;try{for(let i=0;i<n.length;i++)t.onStatus(Y(`context.mcp_running_all`).replace(`{current}`,String(i+1)).replace(`{total}`,String(r))),await ee(e,n[i].name);t.onStatus(Y(`context.mcp_done_all`).replace(`{total}`,String(r)))}finally{F(c,!1)}}function O(e){return String(e??``).replace(/[&<>"']/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e])}async function k(){try{let e=await fetch(`/mcp`);if(!e.ok)throw Error(await e.text());let t=await e.json(),c=Array.isArray(t.tools)?t.tools:[],l=Array.isArray(t.prompts)?t.prompts:[];F(n,Y(`context.mcp_available`),!0),F(r,!0),F(i,t.transport||`-`,!0),F(a,t.endpoint||`POST /mcp`,!0),F(o,c,!0),F(s,l,!0),c.forEach(m),l.forEach(h)}catch{F(n,Y(`context.mcp_unavailable`),!0),F(r,!1),F(i,`-`),F(a,`/mcp`),F(o,[],!0),F(s,[],!0)}}var ne={load:k},A=v_(),re=L(A),ie=L(re),ae=L(ie,!0);j(ie);var oe=z(ie,2),se=L(oe,!0);j(oe),j(re);var ce=z(re,2),le=L(ce,!0);j(ce);var ue=z(ce,2),de=L(ue),fe=L(de),pe=L(fe,!0);j(fe);var me=z(fe,2),he=L(me,!0);j(me),j(de);var ge=z(de,2),_e=L(ge),ve=L(_e,!0);j(_e);var ye=z(_e,2),be=L(ye,!0);j(ye),j(ge);var xe=z(ge,2),Se=L(xe),Ce=L(Se,!0);j(Se);var we=z(Se,2),Te=L(we,!0);j(we),j(xe),j(ue);var Ee=z(ue,2),De=L(Ee),Oe=L(De),ke=L(Oe,!0);j(Oe);var Ae=z(Oe,2),je=L(Ae),Me=L(je,!0);j(je);var Ne=z(je,2),Pe=L(Ne,!0);j(Ne),j(Ae),j(De);var Fe=z(De,2),Ie=L(Fe),Le=e=>{var t=u_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.mcp_no_tools`)]),W(e,t)},Re=e=>{var t=Wr();q(R(t),17,()=>V(o),Xr,(e,t)=>{let n=N(()=>V(l).get(V(t).name)??{argsJson:`{}`,running:!1,error:``,resultHtml:``});var r=m_(),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=e=>{var n=d_(),r=L(n,!0);j(n),B(()=>G(r,V(t).description)),W(e,n)};K(o,e=>{V(t).description&&e(s)});var c=z(o,2),u=e=>{var n=f_(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n),B((e,t)=>{G(i,e),G(o,t)},[()=>Y(`context.mcp_input_schema`),()=>JSON.stringify(V(t).inputSchema,null,2)]),W(e,n)};K(c,e=>{V(t).inputSchema&&e(u)});var d=z(c,2),p=L(d),m=L(p,!0);j(p);var h=z(p,2);yn(h);var g=z(h,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g);var x=z(g,2),S=e=>{var t=p_();ai(t,()=>V(n).resultHtml,!0),j(t),W(e,t)};K(x,e=>{V(n).resultHtml&&e(S)}),j(d),j(r),B((e,r)=>{G(a,V(t).name),G(m,e),Oi(h,V(n).argsJson),G(v,V(n).error),y.disabled=V(n).running,G(b,r)},[()=>Y(`context.mcp_request_json`),()=>Y(`context.mcp_run_tool`)]),H(`input`,h,e=>f(`tool`,V(t).name,{argsJson:e.target.value})),H(`click`,y,()=>ee(`tool`,V(t).name)),W(e,r)}),W(e,t)};K(Ie,e=>{V(o).length?e(Re,-1):e(Le)}),j(Fe),j(Ee);var ze=z(Ee,2),Be=L(ze),Ve=L(Be),He=L(Ve,!0);j(Ve);var Ue=z(Ve,2),We=L(Ue),Ge=L(We,!0);j(We);var Ke=z(We,2),Ye=L(Ke,!0);j(Ke),j(Ue),j(Be);var Xe=z(Be,2),Ze=L(Xe),Qe=e=>{var t=u_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.mcp_no_prompts`)]),W(e,t)},$e=e=>{var t=Wr();q(R(t),17,()=>V(s),Xr,(e,t)=>{let n=N(()=>V(u).get(V(t).name)??{argsJson:`{}`,running:!1,error:``,resultHtml:``});var r=m_(),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=e=>{var n=d_(),r=L(n,!0);j(n),B(()=>G(r,V(t).description)),W(e,n)};K(o,e=>{V(t).description&&e(s)});var c=z(o,2),l=e=>{var n=__(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);q(a,21,()=>V(t).arguments,Xr,(e,t)=>{var n=g_(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(r);var c=z(r,2),l=e=>{var n=h_(),r=L(n,!0);j(n),B(()=>G(r,V(t).description)),W(e,n)};K(c,e=>{V(t).description&&e(l)}),j(n),B(e=>{G(a,V(t).name),G(s,e)},[()=>V(t).required?Y(`context.mcp_required`):Y(`context.mcp_optional`)]),W(e,n)}),j(a),j(n),B(e=>G(i,e),[()=>Y(`context.mcp_arguments`)]),W(e,n)};K(c,e=>{V(t).arguments?.length&&e(l)});var d=z(c,2),p=L(d),m=L(p,!0);j(p);var h=z(p,2);yn(h);var g=z(h,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g);var x=z(g,2),S=e=>{var t=p_();ai(t,()=>V(n).resultHtml,!0),j(t),W(e,t)};K(x,e=>{V(n).resultHtml&&e(S)}),j(d),j(r),B((e,r)=>{G(a,V(t).name),G(m,e),Oi(h,V(n).argsJson),G(v,V(n).error),y.disabled=V(n).running,G(b,r)},[()=>Y(`context.mcp_request_json`),()=>Y(`context.mcp_get_prompt`)]),H(`input`,h,e=>f(`prompt`,V(t).name,{argsJson:e.target.value})),H(`click`,y,()=>ee(`prompt`,V(t).name)),W(e,r)}),W(e,t)};return K(Ze,e=>{V(s).length?e($e,-1):e(Qe)}),j(Xe),j(ze),j(A),B((e,t,l,u,d,f,p,m,h,g)=>{G(ae,e),G(se,t),G(le,l),G(pe,u),gi(me,1,ui(V(r)?`mcp-info-value ok`:`mcp-info-value err`),`svelte-1ui2b6s`),G(he,V(n)),G(ve,d),G(be,V(i)),G(Ce,f),G(Te,V(a)),G(ke,p),G(Me,V(o).length),Ne.disabled=V(c)||!V(o).length,G(Pe,m),G(He,h),G(Ge,V(s).length),Ke.disabled=V(c)||!V(s).length,G(Ye,g)},[()=>Y(`context.mcp_title`),()=>Y(`context.mcp_refresh`),()=>Y(`context.mcp_intro`),()=>Y(`context.mcp_status`),()=>Y(`context.mcp_transport`),()=>Y(`context.mcp_endpoint`),()=>Y(`context.mcp_tools`),()=>Y(`context.mcp_run_all_tools`),()=>Y(`context.mcp_prompts`),()=>Y(`context.mcp_get_all_prompts`)]),H(`click`,oe,k),H(`click`,Ne,()=>te(`tool`)),H(`click`,Ke,()=>te(`prompt`)),W(e,A),Je(ne)}Pr([`click`,`input`]);var b_=U(`<p class="status-text svelte-rpj1e5"> </p>`),x_=U(`<div class="app-shell"><!> <main class="context-scroll svelte-rpj1e5"><div class="context-inner svelte-rpj1e5"><section class="page-intro svelte-rpj1e5"><h2 class="page-title svelte-rpj1e5"> </h2> <p class="page-desc svelte-rpj1e5"> </p> <!></section> <!> <!> <!></div></main></div> <!>`,1);function S_(e,t){qe(t,!0);let n=P(``),r=P(I([])),i=P(I([])),a=P(``),o=P(null),s=P(null),c=P(null);function l(e){F(n,e,!0)}async function u(){l(Y(`context.loading`));let e=await fetch(`/api/context/orientation`);if(!e.ok)throw Error(await e.text());let t=await e.json();F(o,t,!0),F(r,t.instructions||[],!0),F(i,t.rules||[],!0),F(a,t.rulesFolder||``,!0),l(``)}async function d(e){l(Y(`context.adding_instruction_file`));let t=await fetch(`/api/context/instructions`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})});if(!t.ok)throw Error(await t.text());await u()}async function f(e){if(!await V(s).show({kicker:Y(`context.remove_instruction_title`),title:Y(`context.remove_instruction_title`),message:Y(`context.remove_instruction_message`).replace(`{name}`,e),confirmLabel:Y(`common.remove`),cancelLabel:Y(`common.cancel`)||`Cancel`,danger:!0}))return;l(Y(`context.removing_instruction_file`));let t=await fetch(`/api/context/instructions/`+encodeURIComponent(e),{method:`DELETE`});if(!t.ok)throw Error(await t.text());await u()}async function p(e){l(Y(`context.saving_rule`));let t=await fetch(`/api/context/rules`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());await u()}Gi(async()=>{try{let e=await fetch(`/api/config`);await ya((e.ok?await e.json():{}).language||`en`)}catch{await ya(`en`)}document.title=Y(`context.title`),await u().catch(e=>l(e.message)),await V(c).load().catch(()=>{})});var m=x_(),h=R(m),g=L(h);Qo(g,{get navigate(){return t.navigate}});var _=z(g,2),v=L(_),y=L(v),b=L(y),x=L(b,!0);j(b);var S=z(b,2),C=L(S,!0);j(S);var w=z(S,2),T=e=>{var t=b_(),r=L(t,!0);j(t),B(()=>G(r,V(n))),W(e,t)};K(w,e=>{V(n)&&e(T)}),j(y);var E=z(y,2);t_(E,{onAdd:d,onRemove:f,get items(){return V(r)},set items(e){F(r,e,!0)}});var D=z(E,2);l_(D,{get rules(){return V(i)},get rulesFolder(){return V(a)},onAdd:p}),Vi(y_(z(D,2),{onStatus:l}),e=>F(c,e,!0),()=>V(c)),j(v),j(_),j(h),Vi(Ua(z(h,2),{}),e=>F(s,e,!0),()=>V(s)),B((e,t)=>{G(x,e),G(C,t)},[()=>Y(`context.orientation_title`),()=>Y(`context.orientation_intro`)]),W(e,m),Je()}async function C_(){return fetch(`/api/config`).then(e=>e.json())}async function w_(){return fetch(`/api/documents`).then(e=>e.json())}async function T_(e){return fetch(`/api/browse/alldirs?path=${encodeURIComponent(e)}`).then(e=>e.json())}async function E_(e){let t=await fetch(`/api/documents/${e}`);if(!t.ok)throw Error(t.statusText);return t.json()}async function D_(){try{let e=await fetch(`/api/annotations`).then(e=>e.json()),t={};for(let[n,r]of Object.entries(e||{})){t[n]=r;try{t[encodeURIComponent(n)]=r}catch{}}return t}catch{return{}}}async function O_(){try{return await fetch(`/api/documents/file-counts`).then(e=>e.json())}catch{return{}}}async function k_(){try{return await fetch(`/api/documents/statuses`).then(e=>e.json())}catch{return{}}}async function A_(e){return fetch(`/api/documents/search?q=${encodeURIComponent(e)}`).then(e=>e.json())}function j_(e){return((e.filename||``).split(`/`).pop()??``).match(/^(\d{4}_\d{2}_\d{2}(?:_\d{2}_\d{2})?)/)?.[1]??``}function M_(e){return e===`alphabetical`?(e,t)=>(e.title||e.filename||``).localeCompare(t.title||t.filename||``):(t,n)=>{let r=j_(t),i=j_(n);return r&&i?e===`oldest`?r.localeCompare(i):i.localeCompare(r):r?-1:i?1:(t.filename||``).localeCompare(n.filename||``)}}function N_(e,t){for(let n of Object.values(e.categories))n.sort(t);for(let n of Object.values(e.children))N_(n,t)}function P_(e,t,n,r=`recent`){let i={categories:{},children:{}};for(let t of e){let e=i;for(let n of t.folder||[])e.children[n]||(e.children[n]={categories:{},children:{}}),e=e.children[n];e.categories[t.category]||(e.categories[t.category]=[]),e.categories[t.category].push(t)}if(n)for(let e of t){let t=e.split(`/`).filter(Boolean),n=i;for(let e of t)n.children[e]||(n.children[e]={categories:{},children:{}}),n=n.children[e]}return N_(i,M_(r)),i}function F_(e){let t=Object.values(e.categories).reduce((e,t)=>e+t.length,0);for(let n of Object.values(e.children))t+=F_(n);return t}function I_(e,t){let n=0;for(let r of Object.values(e.categories))for(let e of r)t[e.id]>0&&(n+=1);for(let r of Object.values(e.children))n+=I_(r,t);return n}function L_(e,t){let n=0;for(let r of Object.values(e.categories))for(let e of r)t[e.id]>0&&(n+=1);for(let r of Object.values(e.children))n+=L_(r,t);return n}function R_(e){return e.replace(/^\d+_/,``).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function z_(e){return Object.keys(e.children).sort((e,t)=>e.localeCompare(t))}function B_(e){return Object.keys(e.categories).filter(e=>e!==`General`).sort((e,t)=>e.localeCompare(t))}function V_(e,t=`recent`){return Object.values(e.categories).flat().sort(M_(t))}var H_=U(`<span class="inline-flex items-center justify-center w-5 h-5 rounded-full bg-green-500 text-[10px] font-bold text-white border border-green-600 shadow-sm">V</span>`),U_=U(`<span class="inline-flex items-center justify-center w-5 h-5 rounded-full bg-orange-500 text-[10px] font-bold text-white border border-orange-600 shadow-sm">S</span>`),W_=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-yellow-300 dark:bg-yellow-400 text-[10px] font-bold text-yellow-900 border border-yellow-500 shadow-sm"> </span>`),G_=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-sky-200 dark:bg-sky-300 text-[10px] font-bold text-sky-900 border border-sky-500 shadow-sm"> </span>`),K_=U(`<div class="text-xs text-gray-400 dark:text-gray-500 mt-0.5"> </div>`),q_=U(`<button><div class="leading-snug flex items-center justify-between gap-2"><span class="truncate"> </span> <span class="flex items-center gap-1 shrink-0"><!> <!> <!></span></div> <!></button>`),J_=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-orange-400 dark:bg-orange-500 text-[10px] font-bold text-white border border-orange-600 shadow-sm"> </span>`),Y_=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-slate-400 dark:bg-slate-500 text-[10px] font-bold text-white border border-slate-600 shadow-sm"> </span>`),X_=U(`<div class="pl-2"></div>`),Z_=U(`<div class="mb-0.5"><button class="w-full flex items-center justify-between px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-md transition-colors"><span class="flex items-center gap-2"><span> </span> <!> <!></span> <span class="flex items-center gap-1.5"><span class="font-normal normal-case text-gray-400"> </span> <span>▸</span></span></button> <!></div>`),Q_=U(`<div class="pl-3"><!></div>`),$_=U(`<div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-1.5 text-xs font-semibold text-violet-600 dark:text-violet-400 uppercase tracking-wider hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-md transition-colors"><span class="flex items-center gap-2 min-w-0"><span class="truncate"> </span> <!> <!></span> <span class="flex items-center gap-1.5"><span class="font-normal normal-case text-gray-400"> </span> <span>▸</span></span></button> <!></div>`),ev=U(`<!> <!>`,1),tv=U(`<!> <!> <!>`,1);function nv(e,t){qe(t,!0);let n=(e,n=f)=>{let r=N(()=>X.annotationCounts[n().id]||0),i=N(()=>X.fileAttachmentCounts[n().id]||0),a=N(()=>c(n()));var o=q_(),l=L(o),u=L(l),d=L(u,!0);j(u);var p=z(u,2),m=L(p),h=e=>{var t=H_();B(e=>J(t,`title`,e),[()=>Y(`sidebar.status_to_validate`)]),W(e,t)},g=e=>{var t=U_();B(e=>J(t,`title`,e),[()=>Y(`sidebar.status_superseeded`)]),W(e,t)};K(m,e=>{V(a)===`V`?e(h):V(a)===`S`&&e(g,1)});var _=z(m,2),v=e=>{var t=W_(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(r))},[()=>s(V(r),`sidebar.annotation_badge`)]),W(e,t)};K(_,e=>{V(r)>0&&!X.markerHidden&&e(v)});var y=z(_,2),b=e=>{var t=G_(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(i))},[()=>s(V(i),`sidebar.file_attachment_badge`)]),W(e,t)};K(y,e=>{V(i)>0&&!X.hideAttachments&&e(b)}),j(p),j(l);var x=z(l,2),S=e=>{var t=K_(),r=L(t,!0);j(t),B(()=>G(r,n().formattedDate)),W(e,t)};K(x,e=>{n().formattedDate&&e(S)}),j(o),B(()=>{J(o,`id`,`item-${n().id??``}`),gi(o,1,`doc-item w-full text-left px-3 py-1.5 rounded-md text-sm transition-colors text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800/60 ${n().id===X.currentDocId?`active`:``}`),G(d,n().title)}),H(`click`,o,()=>t.onopen(n().id)),W(e,o)},r=(e,r=f)=>{let i=N(()=>a(r())),o=N(()=>X.expandedCategories.has(V(i))),c=N(()=>t.node.categories[r()]),l=N(()=>V(c).reduce((e,t)=>e+ +(X.annotationCounts[t.id]>0),0)),u=N(()=>V(c).reduce((e,t)=>e+ +(X.fileAttachmentCounts[t.id]>0),0));var d=Z_(),p=L(d),m=L(p),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=e=>{var t=J_(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(l))},[()=>s(V(l),`sidebar.annotated_docs_badge`)]),W(e,t)};K(_,e=>{V(l)>0&&!X.markerHidden&&e(v)});var y=z(_,2),b=e=>{var t=Y_(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(u))},[()=>s(V(u),`sidebar.file_attached_docs_badge`)]),W(e,t)};K(y,e=>{V(u)>0&&!X.hideAttachments&&e(b)}),j(m);var x=z(m,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2);j(x),j(p);var T=z(p,2),E=e=>{var t=X_();q(t,21,()=>V(c),e=>e.id,(e,t)=>{n(e,()=>V(t))}),j(t),W(e,t)};K(T,e=>{V(o)&&e(E)}),j(d),B(()=>{G(g,r()),G(C,V(c).length),gi(w,1,`transition-transform duration-200 ${V(o)?`rotate-90`:``}`)}),H(`click`,p,()=>X.toggleCategory(V(i))),W(e,d)},i=(e,n=f)=>{let r=N(()=>o(n())),i=N(()=>X.expandedFolders.has(V(r))),a=N(()=>t.node.children[n()]),c=N(()=>F_(V(a))),l=N(()=>I_(V(a),X.annotationCounts)),u=N(()=>L_(V(a),X.fileAttachmentCounts));var d=$_(),p=L(d),m=L(p),h=L(m),g=L(h);j(h);var _=z(h,2),v=e=>{var t=J_(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(l))},[()=>s(V(l),`sidebar.annotated_docs_badge`)]),W(e,t)};K(_,e=>{V(l)>0&&!X.markerHidden&&e(v)});var y=z(_,2),b=e=>{var t=Y_(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(u))},[()=>s(V(u),`sidebar.file_attached_docs_badge`)]),W(e,t)};K(y,e=>{V(u)>0&&!X.hideAttachments&&e(b)}),j(m);var x=z(m,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2);j(x),j(p);var T=z(p,2),E=e=>{var r=Q_(),i=L(r);{let e=N(()=>[...t.folderPath,n()]);nv(i,{get node(){return V(a)},get folderPath(){return V(e)},get onopen(){return t.onopen}})}j(r),W(e,r)};K(T,e=>{V(i)&&e(E)}),j(d),B(e=>{J(h,`title`,n()),G(g,`📁 ${e??``}`),G(C,V(c)),gi(w,1,`transition-transform duration-200 ${V(i)?`rotate-90`:``}`)},[()=>R_(n())]),H(`click`,p,()=>X.toggleFolder(V(r))),W(e,d)};function a(e){return[...t.folderPath,e].join(`|`)}function o(e){return[...t.folderPath,e].join(`|`)}function s(e,t){return`${e} ${Y(t)}${e>1?`s`:``}`}function c(e){if(!X.highlightStatusState)return null;let t=String(X.docStatuses[e.id]||``).trim().toLowerCase();return t===`to be validated`?`V`:X.highlightStatusState===2&&t===`superseeded`?`S`:null}var l=Wr(),u=R(l),d=e=>{var r=ev(),a=R(r);q(a,17,()=>V_(t.node,X.sidebarSort),e=>e.id,(e,t)=>{n(e,()=>V(t))}),q(z(a,2),16,()=>z_(t.node),e=>e,(e,t)=>{i(e,()=>t)}),W(e,r)},p=e=>{var n=tv(),a=R(n),o=e=>{r(e,()=>`General`)};K(a,e=>{t.node.categories.General&&e(o)});var s=z(a,2);q(s,16,()=>z_(t.node),e=>e,(e,t)=>{i(e,()=>t)}),q(z(s,2),16,()=>B_(t.node),e=>e,(e,t)=>{r(e,()=>t)}),W(e,n)};K(u,e=>{X.hideCategories?e(d):e(p,-1)}),W(e,l),Je()}Pr([`click`]);var rv=U(`<p class="px-4 py-8 text-sm text-gray-400 text-center"> </p>`),iv=U(`<aside><div class="sticky top-0 z-10 bg-white dark:bg-gray-900 p-3 border-b border-gray-100 dark:border-gray-800"><div class="relative sm:hidden"><input type="search" class="w-full pl-8 pr-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="absolute left-2.5 top-2 text-gray-400 text-sm pointer-events-none">🔍</span></div> <div class="flex items-center justify-between mt-2 sm:mt-0"><p class="text-xs text-gray-400 dark:text-gray-500"> </p> <div class="flex items-center gap-2"><button><i class="fa-solid fa-certificate"></i></button> <button><i class="fa-solid fa-paperclip"></i></button> <button><i class="fa-solid fa-tags"></i></button> <button class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"><i class="fa-solid fa-file-export"></i></button> <button class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"><i class="fa-solid fa-folder-plus"></i></button> <button class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"><i class="fa-solid fa-file-circle-plus"></i></button></div></div></div> <nav data-testid="category-tree" class="flex-1 py-2 space-y-0.5"><!></nav> <div aria-hidden="true"></div></aside>`);function av(e,t){qe(t,!0);let n=N(()=>P_(X.filteredDocs,X.allFolderPaths,!X.searchQuery,X.sidebarSort)),r=N(()=>X.filteredDocs.length),i=N(()=>X.filteredDocs.length===0&&X.allFolderPaths.length===0),a=`ld-sidebar-w`,o=P(null),s=P(!1),c=P(null);kn(()=>{let e=parseInt(localStorage.getItem(a)||``,10);Number.isFinite(e)&&F(o,Math.max(200,Math.min(600,e)),!0)});function l(e){e.preventDefault();let t=e.clientX,n=V(c).getBoundingClientRect().width;F(s,!0),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let r=e=>{F(o,Math.max(200,Math.min(600,n+e.clientX-t)),!0)},i=()=>{if(document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i),document.body.style.cursor=``,document.body.style.userSelect=``,F(s,!1),V(o)!=null)try{localStorage.setItem(a,String(V(o)))}catch{}};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)}var u=iv(),d=L(u),f=L(d),p=L(f);Di(p),Ie(2),j(f);var m=z(f,2),h=L(m),g=L(h);j(h);var _=z(h,2),v=L(_),y=z(v,2),b=z(y,2),x=z(b,2),S=z(x,2),C=z(S,2);j(_),j(m),j(d);var w=z(d,2),T=L(w),E=e=>{var t=rv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`sidebar.no_docs`)]),W(e,t)},D=e=>{nv(e,{get node(){return V(n)},folderPath:[],get onopen(){return t.onopen}})};K(T,e=>{V(i)?e(E):e(D,-1)}),j(w);var ee=z(w,2);j(u),Vi(u,e=>F(c,e),()=>V(c)),B((e,t,n,i,a,c,l)=>{gi(u,1,`no-print ${V(o)==null?`w-72`:``} shrink-0 flex flex-col border-r border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 overflow-y-auto relative`),vi(u,V(o)==null?``:`width:${V(o)}px`),J(p,`placeholder`,e),Oi(p,X.searchQuery),G(g,`${V(r)??``} document${V(r)===1?``:`s`}`),J(v,`title`,t),gi(v,1,`hover:opacity-80 transition-colors leading-none ${X.highlightStatusState===0?`text-gray-400 dark:text-gray-500`:X.highlightStatusState===1?`text-green-500 dark:text-green-400`:`text-orange-500 dark:text-orange-400`}`),J(y,`title`,n),gi(y,1,`transition-colors leading-none ${X.hideAttachments?`text-gray-400 dark:text-gray-500`:`text-blue-500 dark:text-blue-400`}`),J(b,`title`,i),gi(b,1,`transition-colors leading-none ${X.hideCategories?`text-gray-400 dark:text-gray-500`:`text-blue-500 dark:text-blue-400`}`),J(x,`title`,a),J(S,`title`,c),J(C,`title`,l),gi(ee,1,`absolute top-0 right-[-2px] w-1.5 h-full cursor-col-resize z-20 select-none transition-colors ${V(s)?`bg-blue-500/55`:`hover:bg-blue-500/35`}`)},[()=>Y(`nav.search_mobile_placeholder`),()=>Y(`nav.toggle_status_highlight`),()=>Y(`nav.toggle_attachments`),()=>Y(`nav.toggle_categories`),()=>Y(`nav.export`),()=>Y(`nav.new_folder`),()=>Y(`nav.new_document`)]),H(`input`,p,e=>t.onsearch(e.target.value)),H(`click`,v,()=>X.cycleHighlightStatus()),H(`click`,y,()=>X.toggleHideAttachments()),H(`click`,b,()=>X.toggleHideCategories()),H(`click`,x,function(...e){t.onexport?.apply(this,e)}),H(`click`,S,function(...e){t.onnewfolder?.apply(this,e)}),H(`click`,C,function(...e){t.onnewdoc?.apply(this,e)}),H(`mousedown`,ee,l),W(e,u),Je()}Pr([`input`,`click`,`mousedown`]);var ov=`background:rgba(250,204,21,0.5);border-radius:2px;cursor:pointer;padding:0 1px;`;function sv(e,t,n){e.querySelectorAll(`mark[data-annotation-id]`).forEach(e=>{let t=e.parentNode;t&&(t.replaceChild(document.createTextNode(e.textContent||``),e),t.normalize())});for(let n of t)lv(e,n);e.querySelectorAll(`mark[data-annotation-id]`).forEach(e=>{(e.textContent||``).trim()||e.remove()}),n&&cv(e,!1)}function cv(e,t){e.querySelectorAll(`mark[data-annotation-id]`).forEach(e=>{let n=e;n.style.background=t?`rgba(250,204,21,0.5)`:`transparent`,n.style.cursor=t?`pointer`:`default`,n.style.pointerEvents=t?`auto`:`none`})}function lv(e,t){let n=(t.selectedText||``).replace(/\s+/g,` `).trim(),r=(t.contextBefore||``).replace(/\s+/g,` `).trim(),i=(t.contextAfter||``).replace(/\s+/g,` `).trim();if(!n)return;let a=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),o=e=>e.split(/\s+/).filter(Boolean).map(a).join(`\\s+`),s=e.textContent||``,c=o(n),l=null;if(r||i){let e=(r?`${o(r)}\\s*`:``)+`(`+c+`)`+(i?`\\s*${o(i)}`:``);try{l=new RegExp(e,`d`).exec(s)}catch{}}if(!l)try{l=RegExp(`(${c})`,`d`).exec(s)}catch{return}let u=l&&l.indices;if(!l||!u?.[1])return;let[d,f]=u[1],p=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),m=[],h=0;for(;p.nextNode();){let e=p.currentNode,t=e.nodeValue?.length,n=h,r=h+t;if(h=r,r<=d)continue;if(n>=f)break;let i=Math.max(0,d-n),a=Math.min(t,f-n);i<a&&m.push({node:e,start:i,end:a})}for(let{node:e,start:n,end:r}of m){let i=e;n>0&&n<i.nodeValue?.length&&(i=i.splitText(n));let a=r-n;a>0&&a<i.nodeValue?.length&&i.splitText(a);let o=document.createElement(`mark`);o.setAttribute(`data-annotation-id`,t.id),o.setAttribute(`style`,ov),i.parentNode?.insertBefore(o,i),o.appendChild(i)}}var uv=U(`<div class="fixed z-50 w-80 bg-yellow-50 dark:bg-yellow-900/80 border-2 border-yellow-300 dark:border-yellow-600 rounded-xl shadow-2xl p-4 flex flex-col gap-3"><div class="text-xs font-semibold text-yellow-700 dark:text-yellow-300 flex items-center gap-2"><span>✎</span><span> </span></div> <div class="text-xs text-yellow-800 dark:text-yellow-200 bg-yellow-100 dark:bg-yellow-800/50 rounded px-2 py-1 italic max-h-16 overflow-y-auto border border-yellow-200 dark:border-yellow-700"> </div> <textarea rows="4" class="w-full text-sm rounded-lg border border-yellow-300 dark:border-yellow-600 bg-white dark:bg-yellow-950 text-gray-900 dark:text-gray-100 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-yellow-400 resize-none"></textarea> <div class="flex justify-end gap-2"><button class="text-sm px-3 py-1.5 rounded-lg border border-yellow-300 dark:border-yellow-600 text-yellow-700 dark:text-yellow-300 hover:bg-yellow-100 dark:hover:bg-yellow-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-yellow-400 hover:bg-yellow-500 dark:bg-yellow-600 dark:hover:bg-yellow-500 text-yellow-900 dark:text-white font-semibold transition-colors"> </button></div></div>`),dv=U(`<div class="text-xs font-semibold text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-700 rounded px-2 py-1"> </div>`),fv=U(`<div class="fixed z-50 w-80 bg-yellow-50 dark:bg-yellow-900/80 border-2 border-yellow-300 dark:border-yellow-600 rounded-xl shadow-2xl p-4 flex flex-col gap-2"><div class="text-xs font-semibold text-yellow-700 dark:text-yellow-300 flex items-center gap-2"><span>✎</span><span class="font-normal text-yellow-600 dark:text-yellow-400"> </span></div> <!> <div class="text-sm text-gray-800 dark:text-gray-100 whitespace-pre-wrap max-h-48 overflow-y-auto"> </div> <div class="flex justify-end pt-1 border-t border-yellow-200 dark:border-yellow-700"><button class="text-xs px-3 py-1.5 rounded-lg border border-red-200 dark:border-red-700 text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/40 transition-colors flex items-center gap-1"> </button></div></div>`),pv=U(`<div class="fixed z-50 w-72 bg-white dark:bg-gray-900 border border-red-200 dark:border-red-700 rounded-xl shadow-2xl p-4 flex flex-col gap-3"><p class="text-sm text-gray-700 dark:text-gray-200"> </p> <div class="flex justify-end gap-2"><button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-red-500 hover:bg-red-600 text-white font-semibold transition-colors"> </button></div></div>`),mv=U(`<button> </button>`),hv=U(`<div class="fixed top-14 right-0 w-10 flex flex-col items-center py-2 gap-2 z-40 overflow-y-auto" style="max-height: calc(100vh - 3.5rem)"></div>`),gv=U(`<!> <!> <!> <!>`,1);function _v(e,t){qe(t,!0);let n=P(I([])),r=P(null),i=P(``),a=P(null),o=P(null),s=P(I([])),c=null;Gi(()=>{let e=document.getElementById(`home-content-area`);if(!e)return;let t=()=>{c&&clearTimeout(c),F(a,null)};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)});function l(e,t,n=320,r=260){let i=window.innerWidth,a=window.innerHeight,o=e;return o+n>i-16&&(o=i-n-16),o<8&&(o=8),{x:o,y:Math.min(t,a-r)}}async function u(e){F(n,[],!0);try{F(n,await fetch(`/api/annotations/`+encodeURIComponent(e)).then(e=>e.json()),!0)}catch{F(n,[],!0)}d()}function d(){t.contentEl&&(sv(t.contentEl,V(n),X.markerHidden),f())}kn(()=>{t.contentEl&&cv(t.contentEl,!X.markerHidden)});function f(){if(!t.contentEl){F(s,[],!0);return}F(s,V(n).map(e=>({id:e.id,note:e.note.length>60?e.note.slice(0,60)+`…`:e.note,orphan:!t.contentEl.querySelector(`mark[data-annotation-id="${e.id}"]`)})),!0)}function p(){if(!X.markerActive||V(r)||!t.contentEl)return;let e=window.getSelection();if(!e||e.isCollapsed||!e.toString().trim()||!t.contentEl.contains(e.anchorNode))return;let n=e.getRangeAt(0),a=document.createRange();a.selectNodeContents(t.contentEl),a.setEnd(n.startContainer,n.startOffset);let o=a.toString().length,s=n.toString(),c=t.contentEl.textContent||``,u=e=>e.replace(/\s+/g,` `).trim(),d=u(s),f=u(c.slice(Math.max(0,o-30),o)),p=u(c.slice(o+s.length,o+s.length+30)),m=n.getBoundingClientRect(),h=l(m.left,m.bottom+8);F(r,{x:h.x,y:h.y,preview:d.length>120?d.slice(0,120)+`…`:d,selectedText:d,contextBefore:f,contextAfter:p},!0),F(i,``)}function m(){F(r,null),window.getSelection()?.removeAllRanges()}async function h(){if(!V(r)||!t.docId)return;let e=V(i).trim();if(e)try{let i=await fetch(`/api/annotations/`+encodeURIComponent(t.docId),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({selectedText:V(r).selectedText,contextBefore:V(r).contextBefore,contextAfter:V(r).contextAfter,note:e})}).then(e=>e.json());F(n,[...V(n),i],!0),m(),d(),X.annotationCounts={...X.annotationCounts,[t.docId]:(X.annotationCounts[t.docId]||0)+1}}catch{}}kn(()=>{if(!t.contentEl)return;let e=t.contentEl,r=e=>{let t=e.target.closest(`mark[data-annotation-id]`);if(!t)return;let r=V(n).find(e=>e.id===t.dataset.annotationId);r&&g(r,t)},i=e=>{let t=e;t.target.closest(`mark[data-annotation-id]`)&&(t.relatedTarget&&t.relatedTarget.closest?.(`mark[data-annotation-id]`)||_())};return e.addEventListener(`mouseover`,r),e.addEventListener(`mouseout`,i),()=>{e.removeEventListener(`mouseover`,r),e.removeEventListener(`mouseout`,i)}});function g(e,n){c&&clearTimeout(c);let r=!t.contentEl?.querySelector(`mark[data-annotation-id="${e.id}"]`),i=n.getBoundingClientRect(),o=l(i.left,i.bottom+8);F(a,{ann:e,x:o.x,y:o.y,orphan:r},!0)}function _(){c=window.setTimeout(()=>{F(a,null)},1500)}function v(){V(a)&&(F(o,{id:V(a).ann.id,x:V(a).x,y:V(a).y},!0),F(a,null))}async function y(){if(!V(o)||!t.docId)return;let e=V(o).id;try{await fetch(`/api/annotations/${encodeURIComponent(t.docId)}/${e}`,{method:`DELETE`}),F(n,V(n).filter(t=>t.id!==e),!0),F(o,null),d();let r=(X.annotationCounts[t.docId]||0)-1,i={...X.annotationCounts};r<=0?delete i[t.docId]:i[t.docId]=r,X.annotationCounts=i}catch{}}function b(e,t){return e.getBoundingClientRect().top+t.scrollTop-t.getBoundingClientRect().top}function x(e,t){let n=e.parentElement;for(;n&&n!==t;)n.tagName===`DETAILS`&&(n.open=!0),n=n.parentElement}function S(e,r){let i=t.contentEl?.querySelector(`mark[data-annotation-id="${e}"]`),o=document.getElementById(`home-content-area`);if(i&&o){if(V(a)?.ann.id===e){c&&clearTimeout(c);return}x(i,o),o.scrollTo({top:b(i,o)-o.clientHeight/2,behavior:`smooth`})}else{let t=V(n).find(t=>t.id===e);t&&g(t,r.currentTarget)}}function C(e,r){c&&clearTimeout(c);let i=V(n).find(t=>t.id===e);if(!i)return;let a=t.contentEl?.querySelector(`mark[data-annotation-id="${e}"]`),o=document.getElementById(`home-content-area`);if(!a||!o){g(i,r.currentTarget);return}x(a,o),o.scrollTo({top:b(a,o)-o.clientHeight/2,behavior:`smooth`});let s,l=()=>{clearTimeout(s),s=window.setTimeout(()=>{o.removeEventListener(`scroll`,l),g(i,a)},80)};o.addEventListener(`scroll`,l),s=window.setTimeout(()=>{o.removeEventListener(`scroll`,l),g(i,a)},600)}function w(e){let t=V(a)?.ann.id===e.id;return e.orphan?t?`#b91c1c`:`#ef4444`:t?`#f97316`:`#facc15`}function T(e){return new Date(e).toLocaleDateString(`fr-FR`,{day:`2-digit`,month:`short`,year:`numeric`})}var E={load:u,apply:d},D=gv();Nr(`mouseup`,on,p);var ee=R(D),te=e=>{var t=uv(),n=L(t),a=z(L(n)),o=L(a,!0);j(a),j(n);var s=z(n,2),c=L(s,!0);j(s);var l=z(s,2);yn(l),vn(l,!0);var u=z(l,2),d=L(u),f=L(d,!0);j(d);var p=z(d,2),g=L(p,!0);j(p),j(u),j(t),B((e,n,i,a)=>{vi(t,`left:${V(r).x??``}px;top:${V(r).y??``}px`),G(o,e),G(c,V(r).preview),J(l,`placeholder`,n),G(f,i),G(g,a)},[()=>Y(`annotation.title`),()=>Y(`annotation.placeholder`),()=>Y(`common.cancel`),()=>Y(`annotation.save_btn`)]),Ni(l,()=>V(i),e=>F(i,e)),H(`click`,d,m),H(`click`,p,h),W(e,t)};K(ee,e=>{V(r)&&e(te)});var O=z(ee,2),k=e=>{var t=fv(),n=L(t),r=z(L(n)),i=L(r,!0);j(r),j(n);var o=z(n,2),s=e=>{var t=dv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`annotation.orphan`)]),W(e,t)};K(o,e=>{V(a).orphan&&e(s)});var l=z(o,2),u=L(l,!0);j(l);var d=z(l,2),f=L(d),p=L(f,!0);j(f),j(d),j(t),B((e,n)=>{vi(t,`left:${V(a).x??``}px;top:${V(a).y??``}px`),G(i,e),G(u,V(a).ann.note),G(p,n)},[()=>T(V(a).ann.createdAt),()=>Y(`annotation.delete_btn`)]),Nr(`mouseenter`,t,()=>{c&&clearTimeout(c)}),Nr(`mouseleave`,t,_),H(`click`,f,v),W(e,t)};K(O,e=>{V(a)&&e(k)});var ne=z(O,2),A=e=>{var t=pv(),n=L(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i),s=L(a,!0);j(a);var c=z(a,2),l=L(c,!0);j(c),j(i),j(t),B((e,n,i)=>{vi(t,`left:${V(o).x??``}px;top:${V(o).y??``}px`),G(r,e),G(s,n),G(l,i)},[()=>Y(`annotation.confirm_delete`),()=>Y(`common.cancel`),()=>Y(`annotation.confirm_btn`)]),H(`click`,a,()=>F(o,null)),H(`click`,c,y),W(e,t)};K(ne,e=>{V(o)&&e(A)});var re=z(ne,2),ie=e=>{var t=hv();q(t,21,()=>V(s),e=>e.id,(e,t)=>{var n=mv(),r=L(n,!0);j(n),B((e,i)=>{J(n,`title`,e),gi(n,1,`w-8 h-8 rounded border-2 shadow text-xs flex items-center justify-center transition-colors shrink-0 ${V(t).orphan?`border-red-600 text-white`:`border-yellow-500`}`),vi(n,`background:${i??``}`),G(r,V(t).orphan?`⚠`:`✎`)},[()=>V(t).orphan?`${Y(`annotation.orphan`)}\n\n${V(t).note}`:V(t).note,()=>w(V(t))]),H(`click`,n,e=>S(V(t).id,e)),Nr(`mouseenter`,n,e=>C(V(t).id,e)),Nr(`mouseleave`,n,_),W(e,n)}),j(t),W(e,t)};return K(re,e=>{V(s).length>0&&!X.markerHidden&&e(ie)}),W(e,D),Je(E)}Pr([`click`]);var vv=`#dc2626`,yv=`#eab308`,bv=`#16a34a`;function xv(e){let t=Math.max(0,Math.min(1,e))*100;return t>80?bv:t>=60?yv:t>=40?`#f97316`:vv}function Sv(e){let t=Math.max(0,Math.min(1,e))*100;return t>=100?bv:t<30?vv:t<60?`linear-gradient(to right, ${vv} 0%, ${vv} 60%, ${yv} 100%)`:t<80?`linear-gradient(to right, ${vv} 0%, ${yv} 40%, ${yv} 100%)`:`linear-gradient(to right, ${yv} 0%, ${bv} 40%, ${bv} 100%)`}var Cv=new class{#e=P(null);get report(){return V(this.#e)}set report(e){F(this.#e,e,!0)}async load(e){if(!e)return this.report=null,null;try{let t=await fetch(`/api/metadata/${encodeURIComponent(e)}`);if(!t.ok)throw Error(t.statusText);this.report=await t.json()}catch{this.report=null}return this.report}async refresh(e){let t=await fetch(`/api/metadata/${encodeURIComponent(e)}/refresh`,{method:`POST`});if(!t.ok)throw Error(t.statusText);this.report=await t.json()}async addPath(e,t){let n=await fetch(`/api/metadata/${encodeURIComponent(e)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||n.statusText)}this.report=await n.json()}async removePath(e,t){let n=await fetch(`/api/metadata/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t})});if(!n.ok)throw Error(n.statusText);this.report=await n.json()}},wv=U(`<div data-testid="accuracy-gauge" class="no-print mt-5 flex items-center gap-3 mr-auto w-full sm:w-80 cursor-pointer select-none"><span class="text-xs text-gray-500 dark:text-gray-400 shrink-0"> </span> <div class="flex-1 h-4 rounded-full bg-gray-200 dark:bg-gray-700 overflow-hidden"><div class="h-full w-full transition-all"></div></div> <span data-testid="accuracy-gauge-value" class="text-xs font-semibold shrink-0 tabular-nums"> </span></div>`);function Tv(e,t){qe(t,!0);let n=N(()=>Cv.report),r=N(()=>V(n)?Math.round(V(n).accuracy*100):0),i=N(()=>V(n)?Y(`accuracy.tooltip`).replace(`{unchanged}`,String(V(n).unchanged)).replace(`{modified}`,String(V(n).modified)).replace(`{missing}`,String(V(n).missing)).replace(`{total}`,String(V(n).total)):``);var a=Wr(),o=R(a),s=e=>{var a=wv(),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);j(c);var u=z(c,2),d=L(u);j(u),j(a),B((e,t,n)=>{J(a,`title`,V(i)),G(s,e),vi(l,`background:${t??``}`),vi(u,`color:${n??``}`),G(d,`${V(r)??``}%`)},[()=>Y(`accuracy.label`),()=>Sv(V(n).accuracy),()=>xv(V(n).accuracy)]),H(`click`,a,function(...e){t.onopen?.apply(this,e)}),W(e,a)};K(o,e=>{V(n)&&V(n).total>0&&e(s)}),W(e,a),Je()}Pr([`click`]);var Ev=/^(\s*(?:\*\*status:\*\*|status:)\s*).+?\s*$/im;function Dv(e){if(typeof e!=`string`)return null;let t=e.match(/^---\s*\n([\s\S]*?)\n---/);if(!t)return null;let n=t[1].match(/^\s*(?:\*\*status:\*\*|status:)\s*(.+?)\s*$/im);return n?n[1].trim():null}function Ov(e,t){return e.replace(Ev,`$1${t}`)}function kv(e){return/%5BWORKLOG%5D/i.test(e)}var Av=U(`<div data-testid="metadata-readonly-banner" class="text-xs text-amber-800 dark:text-amber-200 bg-amber-50 dark:bg-amber-900/30 border-l-4 border-amber-500 rounded-r px-3 py-2"> </div>`),jv=U(`<div class="px-3 py-4 text-center text-xs text-gray-400"> </div>`),Mv=U(`<span class="inline-flex items-center gap-1 text-xs font-semibold px-2 py-0.5 rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><i class="fa-solid fa-check"></i> </span>`),Nv=U(`<span class="inline-flex items-center gap-1 text-xs font-semibold px-2 py-0.5 rounded-full bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300"><i class="fa-solid fa-triangle-exclamation"></i> </span>`),Pv=U(`<span class="inline-flex items-center gap-1 text-xs font-semibold px-2 py-0.5 rounded-full bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300"><i class="fa-solid fa-circle-xmark"></i> </span>`),Fv=U(`<button class="metadata-row-remove text-xs px-2 py-1 rounded-lg border border-red-200 dark:border-red-700 text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/40 transition-colors"><i class="fa-solid fa-trash"></i></button>`),Iv=U(`<div class="flex items-center gap-2 px-3 py-2 border-b border-gray-100 dark:border-gray-800"><div class="flex-1 min-w-0"><div class="text-sm font-mono truncate text-gray-800 dark:text-gray-200"> </div></div> <!> <!></div>`),Lv=U(`<div class="flex items-center gap-2 flex-wrap"><button data-testid="metadata-add-btn" class="text-sm px-3 py-1.5 rounded-lg border border-blue-200 dark:border-blue-700 text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30 transition-colors"><i class="fa-solid fa-plus"></i> </button> <button data-testid="metadata-refresh-btn" class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-arrows-rotate"></i> </button></div>`),Rv=U(`<div class="px-3 py-2 text-xs text-gray-400"> </div>`),zv=U(`<div class="px-3 py-2 text-xs text-red-500"> </div>`),Bv=U(`<button class="w-full text-left px-3 py-1.5 text-sm hover:bg-gray-50 dark:hover:bg-gray-800 flex items-center gap-2"><i class="fa-solid fa-folder text-yellow-500"></i> <span class="truncate"> </span></button>`),Vv=U(`<button class="w-full text-left px-3 py-1.5 text-sm hover:bg-blue-50 dark:hover:bg-blue-900/30 flex items-center gap-2"><i class="fa-solid fa-file text-gray-400"></i> <span class="truncate"> </span> <i class="fa-solid fa-plus ml-auto text-blue-500 text-xs"></i></button>`),Hv=U(`<!> <!>`,1),Uv=U(`<div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden text-sm"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"> </button> <span class="text-xs text-gray-500 dark:text-gray-400 font-mono truncate flex-1"> </span></div> <div class="max-h-56 overflow-y-auto divide-y divide-gray-100 dark:divide-gray-800"><!></div></div>`),Wv=U(`<p class="text-xs text-red-500"> </p>`),Gv=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div data-testid="metadata-modal" class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-2xl mx-4 p-6 space-y-4"><div class="flex items-start justify-between gap-4"><div><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><i class="fa-solid fa-code-compare mr-1"></i> </h3> <p class="text-xs text-gray-500 dark:text-gray-400 mt-1"> </p></div> <button class="text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors"><i class="fa-solid fa-xmark text-lg"></i></button></div> <div class="text-xs text-gray-600 dark:text-gray-300 bg-gray-50 dark:bg-gray-800 rounded-lg px-3 py-2"></div> <!> <div data-testid="metadata-list" class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden"><div class="max-h-64 overflow-y-auto"><!></div></div> <!> <!> <!> <div class="flex justify-end"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button></div></div></div>`);function Kv(e,t){qe(t,!0);let n=N(()=>Cv.report),r=N(()=>Dv(t.content)===`SuperSeeded`),i=P(``),a=P(!1),o=P(!1),s=P(``),c=P(null),l=P(I([])),u=P(I([])),d=P(!1),f=P(``);kn(()=>{t.open||(F(o,!1),F(s,``),F(i,``))});function p(e){F(i,Y(`common.error_prefix`)+e),setTimeout(()=>{F(i,``)},5e3)}function m(){return!V(n)||V(n).total===0?``:`<span class="font-semibold">${Math.round(V(n).accuracy*100)}%</span> · ${V(n).unchanged}/${V(n).total} ${Y(`metadata.status.unchanged`)} · ${V(n).modified} ${Y(`metadata.status.modified`)} · ${V(n).missing} ${Y(`metadata.status.missing`)}`}async function h(){F(a,!0);try{await Cv.refresh(t.docId)}catch(e){p(e instanceof Error?e.message:String(e))}finally{F(a,!1)}}async function g(e){try{await Cv.removePath(t.docId,e),V(o)&&y(V(s))}catch(e){p(e instanceof Error?e.message:String(e))}}async function _(e){try{await Cv.addPath(t.docId,e),V(o)&&y(V(s))}catch(e){p(e instanceof Error?e.message:String(e))}}function v(){F(o,!V(o)),V(o)&&y(``)}async function y(e){F(d,!0),F(f,``);try{let t=await fetch(`/api/browse-source?path=`+encodeURIComponent(e||``));if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||t.statusText)}let r=await t.json();F(s,r.current||``,!0),F(c,r.parent,!0),F(l,r.dirs||[],!0);let i=new Set((V(n)?.items||[]).map(e=>e.path));F(u,(r.files||[]).filter(e=>!i.has(e.path)),!0)}catch(e){F(f,e instanceof Error?e.message:String(e),!0)}finally{F(d,!1)}}function b(){V(c)!==null&&y(V(c))}var x=Wr(),S=R(x),C=e=>{var p=Gv(),x=L(p),S=L(x),C=L(S),w=L(C),T=z(L(w));j(w);var E=z(w,2),D=L(E,!0);j(E),j(C);var ee=z(C,2);j(S);var te=z(S,2);ai(te,m,!0),j(te);var O=z(te,2),k=e=>{var t=Av(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`metadata.readonly_banner`)]),W(e,t)};K(O,e=>{V(r)&&e(k)});var ne=z(O,2),A=L(ne),re=L(A),ie=e=>{var t=jv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`metadata.empty`)]),W(e,t)},ae=e=>{var t=Wr();q(R(t),17,()=>V(n).items,e=>e.path,(e,t)=>{var n=Iv(),i=L(n),a=L(i),o=L(a,!0);j(a),j(i);var s=z(i,2),c=e=>{var t=Mv(),n=z(L(t));j(t),B(e=>G(n,` ${e??``}`),[()=>Y(`metadata.status.unchanged`)]),W(e,t)},l=e=>{var t=Nv(),n=z(L(t));j(t),B(e=>G(n,` ${e??``}`),[()=>Y(`metadata.status.modified`)]),W(e,t)},u=e=>{var t=Pv(),n=z(L(t));j(t),B(e=>G(n,` ${e??``}`),[()=>Y(`metadata.status.missing`)]),W(e,t)};K(s,e=>{V(t).status===`unchanged`?e(c):V(t).status===`modified`?e(l,1):e(u,-1)});var d=z(s,2),f=e=>{var n=Fv();B(e=>J(n,`title`,e),[()=>Y(`metadata.remove`)]),H(`click`,n,()=>g(V(t).path)),W(e,n)};K(d,e=>{V(r)||e(f)}),j(n),B(()=>{J(a,`title`,V(t).path),G(o,V(t).path)}),W(e,n)}),W(e,t)};K(re,e=>{!V(n)||V(n).items.length===0?e(ie):e(ae,-1)}),j(A),j(ne);var oe=z(ne,2),se=e=>{var t=Lv(),n=L(t),r=z(L(n));j(n);var i=z(n,2),o=z(L(i));j(i),j(t),B((e,t)=>{G(r,` ${e??``}`),i.disabled=V(a),G(o,` ${t??``}`)},[()=>Y(`metadata.add`),()=>Y(`metadata.refresh`)]),H(`click`,n,v),H(`click`,i,h),W(e,t)};K(oe,e=>{V(r)||e(se)});var ce=z(oe,2),le=e=>{var t=Uv(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n);var p=z(n,2),m=L(p),h=e=>{var t=Rv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},g=e=>{var t=zv(),n=L(t,!0);j(t),B(()=>G(n,V(f))),W(e,t)},v=e=>{var t=Rv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.empty_dir`)]),W(e,t)},x=e=>{var t=Hv(),n=R(t);q(n,17,()=>V(l),e=>e.path,(e,t)=>{var n=Bv(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>y(V(t).path)),W(e,n)}),q(z(n,2),17,()=>V(u),e=>e.path,(e,t)=>{var n=Vv(),r=z(L(n),2),i=L(r,!0);j(r),Ie(2),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>_(V(t).path)),W(e,n)}),W(e,t)};K(m,e=>{V(d)?e(h):V(f)?e(g,1):V(l).length===0&&V(u).length===0?e(v,2):e(x,-1)}),j(p),j(t),B(e=>{r.disabled=V(c)===null,G(i,e),G(o,V(s)?`/`+V(s):`/ (sourceRoot)`)},[()=>Y(`common.up`)]),H(`click`,r,b),W(e,t)};K(ce,e=>{V(o)&&e(le)});var ue=z(ce,2),de=e=>{var t=Wv(),n=L(t,!0);j(t),B(()=>G(n,V(i))),W(e,t)};K(ue,e=>{V(i)&&e(de)});var fe=z(ue,2),pe=L(fe),me=L(pe,!0);j(pe),j(fe),j(x),j(p),B((e,t,n,r)=>{G(T,` ${e??``}`),G(D,t),J(ee,`title`,n),G(me,r)},[()=>Y(`metadata.title`),()=>Y(`metadata.subtitle`),()=>Y(`common.close`),()=>Y(`common.close`)]),H(`click`,p,e=>{e.target===e.currentTarget&&t.onclose()}),H(`click`,ee,function(...e){t.onclose?.apply(this,e)}),H(`click`,pe,function(...e){t.onclose?.apply(this,e)}),W(e,p)};K(S,e=>{t.open&&e(C)}),W(e,x),Je()}Pr([`click`]);var qv=U(`<div class="text-xs font-medium text-amber-700 dark:text-amber-300"> </div>`),Jv=U(`<div> </div>`),Yv=U(`<button type="button"><div class="flex items-center gap-2 font-semibold text-gray-800 dark:text-gray-100"><span class="font-mono text-blue-600 dark:text-blue-400"> </span> <span class="truncate"> </span></div> <div class="mt-1 text-gray-500 dark:text-gray-400"> </div></button>`),Xv=U(`<div class="mt-3 flex gap-2 overflow-x-auto pb-1"></div>`),Zv=U(`<p class="mt-3 text-sm text-gray-500 dark:text-gray-400"> </p>`),Qv=U(`<div class="flex h-full items-center justify-center text-sm text-gray-500 dark:text-gray-400"> </div>`),$v=U(`<div class="m-5 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-300"> </div>`),ey=U(`<div class="mx-5 mt-4 rounded-lg border border-amber-200 bg-amber-50 px-4 py-2 text-sm text-amber-800 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-200"> </div>`),ty=U(`<button type="button" class="mt-0.5 inline-flex h-7 w-8 items-center justify-center rounded-md border border-blue-200 bg-white font-mono text-sm font-bold text-blue-600 transition-colors hover:bg-blue-50 disabled:cursor-wait disabled:opacity-50 dark:border-blue-800 dark:bg-gray-950 dark:text-blue-300 dark:hover:bg-blue-950/40"> </button>`),ny=U(`<div><span> </span> <pre class="m-0 whitespace-pre-wrap break-words px-2 py-0.5 font-mono"> </pre></div> <div class="flex items-start justify-center border-r border-gray-200 bg-gray-50 px-1 py-0.5 dark:border-gray-800 dark:bg-gray-900/70"><!></div> <div><span> </span> <pre class="m-0 whitespace-pre-wrap break-words px-2 py-0.5 font-mono"> </pre></div>`,1),ry=U(`<!> <div class="h-full overflow-auto p-5"><div class="grid min-w-[980px] grid-cols-[minmax(0,1fr)_3.25rem_minmax(0,1fr)] overflow-hidden rounded-lg border border-gray-200 text-xs dark:border-gray-800"><div class="border-b border-r border-gray-200 bg-gray-100 px-3 py-2 font-semibold text-gray-700 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-200"> </div> <div class="border-b border-r border-gray-200 bg-gray-100 px-2 py-2 text-center font-semibold text-gray-400 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-500"></div> <div class="border-b border-gray-200 bg-gray-100 px-3 py-2 font-semibold text-gray-700 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-200"> </div> <!></div></div>`,1),iy=U(`<div data-testid="versions-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4"><div class="flex h-[90vh] w-full max-w-7xl flex-col overflow-hidden rounded-xl border border-gray-200 bg-white shadow-2xl dark:border-gray-700 dark:bg-gray-950"><header class="flex shrink-0 items-start justify-between gap-4 border-b border-gray-200 px-5 py-4 dark:border-gray-800"><div><h2 class="text-lg font-semibold text-gray-900 dark:text-gray-50"><i class="fa-solid fa-code-branch mr-2"></i> </h2> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400"> </p></div> <button type="button" class="rounded-lg border border-gray-200 px-3 py-1.5 text-sm text-gray-600 transition-colors hover:bg-gray-50 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-gray-800"><i class="fa-solid fa-xmark"></i></button></header> <div class="shrink-0 border-b border-gray-200 px-5 py-3 dark:border-gray-800"><div class="flex flex-wrap items-end gap-3"><label class="text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"> <input type="number" class="mt-1 block w-28 rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-sm text-gray-800 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100"/></label> <button type="button" class="rounded-lg bg-blue-600 px-3 py-1.5 text-sm font-semibold text-white transition-colors hover:bg-blue-700 disabled:opacity-50"><i class="fa-solid fa-arrows-rotate mr-1"></i> </button> <button type="button" class="rounded-lg bg-green-600 px-3 py-1.5 text-sm font-semibold text-white transition-colors hover:bg-green-700 disabled:cursor-not-allowed disabled:opacity-50"><i class="fa-solid fa-floppy-disk mr-1"></i> </button> <div class="text-xs text-gray-500 dark:text-gray-400"> </div> <!> <!></div> <!></div> <section class="min-h-0 flex-1 overflow-hidden"><!></section></div></div>`);function ay(e,t){qe(t,!0);let n=3650,r=P(30),i=P(30),a=P(!1),o=P(``),s=P(null),c=P(null),l=P(null),u=P(``),d=``,f=P(``),p=P(!1),m=N(()=>V(l)?.headContent??t.content),h=N(()=>V(f)),g=N(()=>V(f)!==V(m)),_=N(()=>T(V(l)?.baseContent??``,V(h))),v=N(()=>V(_).rows),y=N(()=>V(l)?.baseContent!==null&&V(l)?.baseContent!==void 0);kn(()=>{t.docId,F(f,t.content,!0)});function b(e){return Number.isFinite(e)?Math.max(1,Math.min(n,Math.floor(e))):30}function x(e){return e.length?e.replace(/\r\n/g,`
|
|
99
|
+
<a href="${O(s)}" target="_blank" rel="noopener" class="mcp-saved-link">📄 ${O(a)}</a>`})}catch(n){f(e,t,{running:!1,error:n.message||String(n),resultHtml:``})}}async function te(e){let n=V(e===`tool`?o:s);if(!n.length)return;F(c,!0);let r=n.length;try{for(let i=0;i<n.length;i++)t.onStatus(Y(`context.mcp_running_all`).replace(`{current}`,String(i+1)).replace(`{total}`,String(r))),await ee(e,n[i].name);t.onStatus(Y(`context.mcp_done_all`).replace(`{total}`,String(r)))}finally{F(c,!1)}}function O(e){return String(e??``).replace(/[&<>"']/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e])}async function k(){try{let e=await fetch(`/mcp`);if(!e.ok)throw Error(await e.text());let t=await e.json(),c=Array.isArray(t.tools)?t.tools:[],l=Array.isArray(t.prompts)?t.prompts:[];F(n,Y(`context.mcp_available`),!0),F(r,!0),F(i,t.transport||`-`,!0),F(a,t.endpoint||`POST /mcp`,!0),F(o,c,!0),F(s,l,!0),c.forEach(m),l.forEach(h)}catch{F(n,Y(`context.mcp_unavailable`),!0),F(r,!1),F(i,`-`),F(a,`/mcp`),F(o,[],!0),F(s,[],!0)}}var ne={load:k},A=A_(),re=L(A),ie=L(re),ae=L(ie,!0);j(ie);var oe=z(ie,2),se=L(oe,!0);j(oe),j(re);var ce=z(re,2),le=L(ce,!0);j(ce);var ue=z(ce,2),de=L(ue),fe=L(de),pe=L(fe,!0);j(fe);var me=z(fe,2),he=L(me,!0);j(me),j(de);var ge=z(de,2),_e=L(ge),ve=L(_e,!0);j(_e);var ye=z(_e,2),be=L(ye,!0);j(ye),j(ge);var xe=z(ge,2),Se=L(xe),Ce=L(Se,!0);j(Se);var we=z(Se,2),Te=L(we,!0);j(we),j(xe),j(ue);var Ee=z(ue,2),De=L(Ee),Oe=L(De),ke=L(Oe,!0);j(Oe);var Ae=z(Oe,2),je=L(Ae),Me=L(je,!0);j(je);var Ne=z(je,2),Pe=L(Ne,!0);j(Ne),j(Ae),j(De);var Fe=z(De,2),Ie=L(Fe),Le=e=>{var t=S_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.mcp_no_tools`)]),W(e,t)},Re=e=>{var t=Wr();q(R(t),17,()=>V(o),Qr,(e,t)=>{let n=N(()=>V(l).get(V(t).name)??{argsJson:`{}`,running:!1,error:``,resultHtml:``});var r=E_(),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=e=>{var n=C_(),r=L(n,!0);j(n),B(()=>G(r,V(t).description)),W(e,n)};K(o,e=>{V(t).description&&e(s)});var c=z(o,2),u=e=>{var n=w_(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n),B((e,t)=>{G(i,e),G(o,t)},[()=>Y(`context.mcp_input_schema`),()=>JSON.stringify(V(t).inputSchema,null,2)]),W(e,n)};K(c,e=>{V(t).inputSchema&&e(u)});var d=z(c,2),p=L(d),m=L(p,!0);j(p);var h=z(p,2);yn(h);var g=z(h,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g);var x=z(g,2),S=e=>{var t=T_();si(t,()=>V(n).resultHtml,!0),j(t),W(e,t)};K(x,e=>{V(n).resultHtml&&e(S)}),j(d),j(r),B((e,r)=>{G(a,V(t).name),G(m,e),Ai(h,V(n).argsJson),G(v,V(n).error),y.disabled=V(n).running,G(b,r)},[()=>Y(`context.mcp_request_json`),()=>Y(`context.mcp_run_tool`)]),H(`input`,h,e=>f(`tool`,V(t).name,{argsJson:e.target.value})),H(`click`,y,()=>ee(`tool`,V(t).name)),W(e,r)}),W(e,t)};K(Ie,e=>{V(o).length?e(Re,-1):e(Le)}),j(Fe),j(Ee);var ze=z(Ee,2),Be=L(ze),Ve=L(Be),He=L(Ve,!0);j(Ve);var Ue=z(Ve,2),We=L(Ue),Ge=L(We,!0);j(We);var Ke=z(We,2),Ye=L(Ke,!0);j(Ke),j(Ue),j(Be);var Xe=z(Be,2),Ze=L(Xe),Qe=e=>{var t=S_(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`context.mcp_no_prompts`)]),W(e,t)},$e=e=>{var t=Wr();q(R(t),17,()=>V(s),Qr,(e,t)=>{let n=N(()=>V(u).get(V(t).name)??{argsJson:`{}`,running:!1,error:``,resultHtml:``});var r=E_(),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=e=>{var n=C_(),r=L(n,!0);j(n),B(()=>G(r,V(t).description)),W(e,n)};K(o,e=>{V(t).description&&e(s)});var c=z(o,2),l=e=>{var n=k_(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);q(a,21,()=>V(t).arguments,Qr,(e,t)=>{var n=O_(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(r);var c=z(r,2),l=e=>{var n=D_(),r=L(n,!0);j(n),B(()=>G(r,V(t).description)),W(e,n)};K(c,e=>{V(t).description&&e(l)}),j(n),B(e=>{G(a,V(t).name),G(s,e)},[()=>V(t).required?Y(`context.mcp_required`):Y(`context.mcp_optional`)]),W(e,n)}),j(a),j(n),B(e=>G(i,e),[()=>Y(`context.mcp_arguments`)]),W(e,n)};K(c,e=>{V(t).arguments?.length&&e(l)});var d=z(c,2),p=L(d),m=L(p,!0);j(p);var h=z(p,2);yn(h);var g=z(h,2),_=L(g),v=L(_,!0);j(_);var y=z(_,2),b=L(y,!0);j(y),j(g);var x=z(g,2),S=e=>{var t=T_();si(t,()=>V(n).resultHtml,!0),j(t),W(e,t)};K(x,e=>{V(n).resultHtml&&e(S)}),j(d),j(r),B((e,r)=>{G(a,V(t).name),G(m,e),Ai(h,V(n).argsJson),G(v,V(n).error),y.disabled=V(n).running,G(b,r)},[()=>Y(`context.mcp_request_json`),()=>Y(`context.mcp_get_prompt`)]),H(`input`,h,e=>f(`prompt`,V(t).name,{argsJson:e.target.value})),H(`click`,y,()=>ee(`prompt`,V(t).name)),W(e,r)}),W(e,t)};return K(Ze,e=>{V(s).length?e($e,-1):e(Qe)}),j(Xe),j(ze),j(A),B((e,t,l,u,d,f,p,m,h,g)=>{G(ae,e),G(se,t),G(le,l),G(pe,u),vi(me,1,fi(V(r)?`mcp-info-value ok`:`mcp-info-value err`),`svelte-1ui2b6s`),G(he,V(n)),G(ve,d),G(be,V(i)),G(Ce,f),G(Te,V(a)),G(ke,p),G(Me,V(o).length),Ne.disabled=V(c)||!V(o).length,G(Pe,m),G(He,h),G(Ge,V(s).length),Ke.disabled=V(c)||!V(s).length,G(Ye,g)},[()=>Y(`context.mcp_title`),()=>Y(`context.mcp_refresh`),()=>Y(`context.mcp_intro`),()=>Y(`context.mcp_status`),()=>Y(`context.mcp_transport`),()=>Y(`context.mcp_endpoint`),()=>Y(`context.mcp_tools`),()=>Y(`context.mcp_run_all_tools`),()=>Y(`context.mcp_prompts`),()=>Y(`context.mcp_get_all_prompts`)]),H(`click`,oe,k),H(`click`,Ne,()=>te(`tool`)),H(`click`,Ke,()=>te(`prompt`)),W(e,A),Je(ne)}Pr([`click`,`input`]);var M_=U(`<p class="status-text svelte-rpj1e5"> </p>`),N_=U(`<div class="app-shell"><!> <main class="context-scroll svelte-rpj1e5"><div class="context-inner svelte-rpj1e5"><section class="page-intro svelte-rpj1e5"><h2 class="page-title svelte-rpj1e5"> </h2> <p class="page-desc svelte-rpj1e5"> </p> <!></section> <!> <!> <!></div></main></div> <!>`,1);function P_(e,t){qe(t,!0);let n=P(``),r=P(I([])),i=P(I([])),a=P(``),o=P(null),s=P(null),c=P(null);function l(e){F(n,e,!0)}async function u(){l(Y(`context.loading`));let e=await fetch(`/api/context/orientation`);if(!e.ok)throw Error(await e.text());let t=await e.json();F(o,t,!0),F(r,t.instructions||[],!0),F(i,t.rules||[],!0),F(a,t.rulesFolder||``,!0),l(``)}async function d(e){l(Y(`context.adding_instruction_file`));let t=await fetch(`/api/context/instructions`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e})});if(!t.ok)throw Error(await t.text());await u()}async function f(e){if(!await V(s).show({kicker:Y(`context.remove_instruction_title`),title:Y(`context.remove_instruction_title`),message:Y(`context.remove_instruction_message`).replace(`{name}`,e),confirmLabel:Y(`common.remove`),cancelLabel:Y(`common.cancel`)||`Cancel`,danger:!0}))return;l(Y(`context.removing_instruction_file`));let t=await fetch(`/api/context/instructions/`+encodeURIComponent(e),{method:`DELETE`});if(!t.ok)throw Error(await t.text());await u()}async function p(e){l(Y(`context.saving_rule`));let t=await fetch(`/api/context/rules`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());await u()}Ji(async()=>{try{let e=await fetch(`/api/config`);await Sa((e.ok?await e.json():{}).language||`en`)}catch{await Sa(`en`)}document.title=Y(`context.title`),await u().catch(e=>l(e.message)),await V(c).load().catch(()=>{})});var m=N_(),h=R(m),g=L(h);Xo(g,{get navigate(){return t.navigate}});var _=z(g,2),v=L(_),y=L(v),b=L(y),x=L(b,!0);j(b);var S=z(b,2),C=L(S,!0);j(S);var w=z(S,2),T=e=>{var t=M_(),r=L(t,!0);j(t),B(()=>G(r,V(n))),W(e,t)};K(w,e=>{V(n)&&e(T)}),j(y);var E=z(y,2);p_(E,{onAdd:d,onRemove:f,get items(){return V(r)},set items(e){F(r,e,!0)}});var D=z(E,2);x_(D,{get rules(){return V(i)},get rulesFolder(){return V(a)},onAdd:p}),Ui(j_(z(D,2),{onStatus:l}),e=>F(c,e,!0),()=>V(c)),j(v),j(_),j(h),Ui(Xd(z(h,2),{}),e=>F(s,e,!0),()=>V(s)),B((e,t)=>{G(x,e),G(C,t)},[()=>Y(`context.orientation_title`),()=>Y(`context.orientation_intro`)]),W(e,m),Je()}async function F_(){return fetch(`/api/config`).then(e=>e.json())}async function I_(){return fetch(`/api/documents`).then(e=>e.json())}async function L_(e){return fetch(`/api/browse/alldirs?path=${encodeURIComponent(e)}`).then(e=>e.json())}async function R_(e){let t=await fetch(`/api/documents/${e}`);if(!t.ok)throw Error(t.statusText);return t.json()}async function z_(){try{let e=await fetch(`/api/annotations`).then(e=>e.json()),t={};for(let[n,r]of Object.entries(e||{})){t[n]=r;try{t[encodeURIComponent(n)]=r}catch{}}return t}catch{return{}}}async function B_(){try{return await fetch(`/api/documents/file-counts`).then(e=>e.json())}catch{return{}}}async function V_(){try{return await fetch(`/api/documents/statuses`).then(e=>e.json())}catch{return{}}}async function H_(e){return fetch(`/api/documents/search?q=${encodeURIComponent(e)}`).then(e=>e.json())}function U_(e){return((e.filename||``).split(`/`).pop()??``).match(/^(\d{4}_\d{2}_\d{2}(?:_\d{2}_\d{2})?)/)?.[1]??``}function W_(e){return e===`alphabetical`?(e,t)=>(e.title||e.filename||``).localeCompare(t.title||t.filename||``):(t,n)=>{let r=U_(t),i=U_(n);return r&&i?e===`oldest`?r.localeCompare(i):i.localeCompare(r):r?-1:i?1:(t.filename||``).localeCompare(n.filename||``)}}function G_(e,t){for(let n of Object.values(e.categories))n.sort(t);for(let n of Object.values(e.children))G_(n,t)}function K_(e,t,n,r=`recent`){let i={categories:{},children:{}};for(let t of e){let e=i;for(let n of t.folder||[])e.children[n]||(e.children[n]={categories:{},children:{}}),e=e.children[n];e.categories[t.category]||(e.categories[t.category]=[]),e.categories[t.category].push(t)}if(n)for(let e of t){let t=e.split(`/`).filter(Boolean),n=i;for(let e of t)n.children[e]||(n.children[e]={categories:{},children:{}}),n=n.children[e]}return G_(i,W_(r)),i}function q_(e){let t=Object.values(e.categories).reduce((e,t)=>e+t.length,0);for(let n of Object.values(e.children))t+=q_(n);return t}function J_(e,t){let n=0;for(let r of Object.values(e.categories))for(let e of r)t[e.id]>0&&(n+=1);for(let r of Object.values(e.children))n+=J_(r,t);return n}function Y_(e,t){let n=0;for(let r of Object.values(e.categories))for(let e of r)t[e.id]>0&&(n+=1);for(let r of Object.values(e.children))n+=Y_(r,t);return n}function X_(e){return e.replace(/^\d+_/,``).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Z_(e){return Object.keys(e.children).sort((e,t)=>e.localeCompare(t))}function Q_(e){return Object.keys(e.categories).filter(e=>e!==`General`).sort((e,t)=>e.localeCompare(t))}function $_(e,t=`recent`){return Object.values(e.categories).flat().sort(W_(t))}var ev=U(`<span class="inline-flex items-center justify-center w-5 h-5 rounded-full bg-green-500 text-[10px] font-bold text-white border border-green-600 shadow-sm">V</span>`),tv=U(`<span class="inline-flex items-center justify-center w-5 h-5 rounded-full bg-orange-500 text-[10px] font-bold text-white border border-orange-600 shadow-sm">S</span>`),nv=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-yellow-300 dark:bg-yellow-400 text-[10px] font-bold text-yellow-900 border border-yellow-500 shadow-sm"> </span>`),rv=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-sky-200 dark:bg-sky-300 text-[10px] font-bold text-sky-900 border border-sky-500 shadow-sm"> </span>`),iv=U(`<div class="text-xs text-gray-400 dark:text-gray-500 mt-0.5"> </div>`),av=U(`<button><div class="leading-snug flex items-center justify-between gap-2"><span class="truncate"> </span> <span class="flex items-center gap-1 shrink-0"><!> <!> <!></span></div> <!></button>`),ov=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-orange-400 dark:bg-orange-500 text-[10px] font-bold text-white border border-orange-600 shadow-sm"> </span>`),sv=U(`<span class="inline-flex items-center justify-center min-w-[1.25rem] h-5 px-1.5 rounded-full bg-slate-400 dark:bg-slate-500 text-[10px] font-bold text-white border border-slate-600 shadow-sm"> </span>`),cv=U(`<div class="pl-2"></div>`),lv=U(`<div class="mb-0.5"><button class="w-full flex items-center justify-between px-3 py-1.5 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-md transition-colors"><span class="flex items-center gap-2"><span> </span> <!> <!></span> <span class="flex items-center gap-1.5"><span class="font-normal normal-case text-gray-400"> </span> <span>▸</span></span></button> <!></div>`),uv=U(`<div class="pl-3"><!></div>`),dv=U(`<div class="mb-1"><button class="w-full flex items-center justify-between px-3 py-1.5 text-xs font-semibold text-violet-600 dark:text-violet-400 uppercase tracking-wider hover:bg-gray-50 dark:hover:bg-gray-800/60 rounded-md transition-colors"><span class="flex items-center gap-2 min-w-0"><span class="truncate"> </span> <!> <!></span> <span class="flex items-center gap-1.5"><span class="font-normal normal-case text-gray-400"> </span> <span>▸</span></span></button> <!></div>`),fv=U(`<!> <!>`,1),pv=U(`<!> <!> <!>`,1);function mv(e,t){qe(t,!0);let n=(e,n=f)=>{let r=N(()=>X.annotationCounts[n().id]||0),i=N(()=>X.fileAttachmentCounts[n().id]||0),a=N(()=>c(n()));var o=av(),l=L(o),u=L(l),d=L(u,!0);j(u);var p=z(u,2),m=L(p),h=e=>{var t=ev();B(e=>J(t,`title`,e),[()=>Y(`sidebar.status_to_validate`)]),W(e,t)},g=e=>{var t=tv();B(e=>J(t,`title`,e),[()=>Y(`sidebar.status_superseeded`)]),W(e,t)};K(m,e=>{V(a)===`V`?e(h):V(a)===`S`&&e(g,1)});var _=z(m,2),v=e=>{var t=nv(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(r))},[()=>s(V(r),`sidebar.annotation_badge`)]),W(e,t)};K(_,e=>{V(r)>0&&!X.markerHidden&&e(v)});var y=z(_,2),b=e=>{var t=rv(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(i))},[()=>s(V(i),`sidebar.file_attachment_badge`)]),W(e,t)};K(y,e=>{V(i)>0&&!X.hideAttachments&&e(b)}),j(p),j(l);var x=z(l,2),S=e=>{var t=iv(),r=L(t,!0);j(t),B(()=>G(r,n().formattedDate)),W(e,t)};K(x,e=>{n().formattedDate&&e(S)}),j(o),B(()=>{J(o,`id`,`item-${n().id??``}`),vi(o,1,`doc-item w-full text-left px-3 py-1.5 rounded-md text-sm transition-colors text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-800/60 ${n().id===X.currentDocId?`active`:``}`),G(d,n().title)}),H(`click`,o,()=>t.onopen(n().id)),W(e,o)},r=(e,r=f)=>{let i=N(()=>a(r())),o=N(()=>X.expandedCategories.has(V(i))),c=N(()=>t.node.categories[r()]),l=N(()=>V(c).reduce((e,t)=>e+ +(X.annotationCounts[t.id]>0),0)),u=N(()=>V(c).reduce((e,t)=>e+ +(X.fileAttachmentCounts[t.id]>0),0));var d=lv(),p=L(d),m=L(p),h=L(m),g=L(h,!0);j(h);var _=z(h,2),v=e=>{var t=ov(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(l))},[()=>s(V(l),`sidebar.annotated_docs_badge`)]),W(e,t)};K(_,e=>{V(l)>0&&!X.markerHidden&&e(v)});var y=z(_,2),b=e=>{var t=sv(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(u))},[()=>s(V(u),`sidebar.file_attached_docs_badge`)]),W(e,t)};K(y,e=>{V(u)>0&&!X.hideAttachments&&e(b)}),j(m);var x=z(m,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2);j(x),j(p);var T=z(p,2),E=e=>{var t=cv();q(t,21,()=>V(c),e=>e.id,(e,t)=>{n(e,()=>V(t))}),j(t),W(e,t)};K(T,e=>{V(o)&&e(E)}),j(d),B(()=>{G(g,r()),G(C,V(c).length),vi(w,1,`transition-transform duration-200 ${V(o)?`rotate-90`:``}`)}),H(`click`,p,()=>X.toggleCategory(V(i))),W(e,d)},i=(e,n=f)=>{let r=N(()=>o(n())),i=N(()=>X.expandedFolders.has(V(r))),a=N(()=>t.node.children[n()]),c=N(()=>q_(V(a))),l=N(()=>J_(V(a),X.annotationCounts)),u=N(()=>Y_(V(a),X.fileAttachmentCounts));var d=dv(),p=L(d),m=L(p),h=L(m),g=L(h);j(h);var _=z(h,2),v=e=>{var t=ov(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(l))},[()=>s(V(l),`sidebar.annotated_docs_badge`)]),W(e,t)};K(_,e=>{V(l)>0&&!X.markerHidden&&e(v)});var y=z(_,2),b=e=>{var t=sv(),n=L(t,!0);j(t),B(e=>{J(t,`title`,e),G(n,V(u))},[()=>s(V(u),`sidebar.file_attached_docs_badge`)]),W(e,t)};K(y,e=>{V(u)>0&&!X.hideAttachments&&e(b)}),j(m);var x=z(m,2),S=L(x),C=L(S,!0);j(S);var w=z(S,2);j(x),j(p);var T=z(p,2),E=e=>{var r=uv(),i=L(r);{let e=N(()=>[...t.folderPath,n()]);mv(i,{get node(){return V(a)},get folderPath(){return V(e)},get onopen(){return t.onopen}})}j(r),W(e,r)};K(T,e=>{V(i)&&e(E)}),j(d),B(e=>{J(h,`title`,n()),G(g,`📁 ${e??``}`),G(C,V(c)),vi(w,1,`transition-transform duration-200 ${V(i)?`rotate-90`:``}`)},[()=>X_(n())]),H(`click`,p,()=>X.toggleFolder(V(r))),W(e,d)};function a(e){return[...t.folderPath,e].join(`|`)}function o(e){return[...t.folderPath,e].join(`|`)}function s(e,t){return`${e} ${Y(t)}${e>1?`s`:``}`}function c(e){if(!X.highlightStatusState)return null;let t=String(X.docStatuses[e.id]||``).trim().toLowerCase();return t===`to be validated`?`V`:X.highlightStatusState===2&&t===`superseeded`?`S`:null}var l=Wr(),u=R(l),d=e=>{var r=fv(),a=R(r);q(a,17,()=>$_(t.node,X.sidebarSort),e=>e.id,(e,t)=>{n(e,()=>V(t))}),q(z(a,2),16,()=>Z_(t.node),e=>e,(e,t)=>{i(e,()=>t)}),W(e,r)},p=e=>{var n=pv(),a=R(n),o=e=>{r(e,()=>`General`)};K(a,e=>{t.node.categories.General&&e(o)});var s=z(a,2);q(s,16,()=>Z_(t.node),e=>e,(e,t)=>{i(e,()=>t)}),q(z(s,2),16,()=>Q_(t.node),e=>e,(e,t)=>{r(e,()=>t)}),W(e,n)};K(u,e=>{X.hideCategories?e(d):e(p,-1)}),W(e,l),Je()}Pr([`click`]);var hv=U(`<p class="px-4 py-8 text-sm text-gray-400 text-center"> </p>`),gv=U(`<aside><div class="sticky top-0 z-10 bg-white dark:bg-gray-900 p-3 border-b border-gray-100 dark:border-gray-800"><div class="relative sm:hidden"><input type="search" class="w-full pl-8 pr-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="absolute left-2.5 top-2 text-gray-400 text-sm pointer-events-none">🔍</span></div> <div class="flex items-center justify-between mt-2 sm:mt-0"><p class="text-xs text-gray-400 dark:text-gray-500"> </p> <div class="flex items-center gap-2"><button><i class="fa-solid fa-certificate"></i></button> <button><i class="fa-solid fa-paperclip"></i></button> <button><i class="fa-solid fa-tags"></i></button> <button class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"><i class="fa-solid fa-file-export"></i></button> <button class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"><i class="fa-solid fa-folder-plus"></i></button> <button class="text-gray-400 hover:text-blue-500 dark:text-gray-500 dark:hover:text-blue-400 transition-colors leading-none"><i class="fa-solid fa-file-circle-plus"></i></button></div></div></div> <nav data-testid="category-tree" class="flex-1 py-2 space-y-0.5"><!></nav> <div aria-hidden="true"></div></aside>`);function _v(e,t){qe(t,!0);let n=N(()=>K_(X.filteredDocs,X.allFolderPaths,!X.searchQuery,X.sidebarSort)),r=N(()=>X.filteredDocs.length),i=N(()=>X.filteredDocs.length===0&&X.allFolderPaths.length===0),a=`ld-sidebar-w`,o=P(null),s=P(!1),c=P(null);kn(()=>{let e=parseInt(localStorage.getItem(a)||``,10);Number.isFinite(e)&&F(o,Math.max(200,Math.min(600,e)),!0)});function l(e){e.preventDefault();let t=e.clientX,n=V(c).getBoundingClientRect().width;F(s,!0),document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let r=e=>{F(o,Math.max(200,Math.min(600,n+e.clientX-t)),!0)},i=()=>{if(document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i),document.body.style.cursor=``,document.body.style.userSelect=``,F(s,!1),V(o)!=null)try{localStorage.setItem(a,String(V(o)))}catch{}};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)}var u=gv(),d=L(u),f=L(d),p=L(f);ki(p),Ie(2),j(f);var m=z(f,2),h=L(m),g=L(h);j(h);var _=z(h,2),v=L(_),y=z(v,2),b=z(y,2),x=z(b,2),S=z(x,2),C=z(S,2);j(_),j(m),j(d);var w=z(d,2),T=L(w),E=e=>{var t=hv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`sidebar.no_docs`)]),W(e,t)},D=e=>{mv(e,{get node(){return V(n)},folderPath:[],get onopen(){return t.onopen}})};K(T,e=>{V(i)?e(E):e(D,-1)}),j(w);var ee=z(w,2);j(u),Ui(u,e=>F(c,e),()=>V(c)),B((e,t,n,i,a,c,l)=>{vi(u,1,`no-print ${V(o)==null?`w-72`:``} shrink-0 flex flex-col border-r border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 overflow-y-auto relative`),bi(u,V(o)==null?``:`width:${V(o)}px`),J(p,`placeholder`,e),Ai(p,X.searchQuery),G(g,`${V(r)??``} document${V(r)===1?``:`s`}`),J(v,`title`,t),vi(v,1,`hover:opacity-80 transition-colors leading-none ${X.highlightStatusState===0?`text-gray-400 dark:text-gray-500`:X.highlightStatusState===1?`text-green-500 dark:text-green-400`:`text-orange-500 dark:text-orange-400`}`),J(y,`title`,n),vi(y,1,`transition-colors leading-none ${X.hideAttachments?`text-gray-400 dark:text-gray-500`:`text-blue-500 dark:text-blue-400`}`),J(b,`title`,i),vi(b,1,`transition-colors leading-none ${X.hideCategories?`text-gray-400 dark:text-gray-500`:`text-blue-500 dark:text-blue-400`}`),J(x,`title`,a),J(S,`title`,c),J(C,`title`,l),vi(ee,1,`absolute top-0 right-[-2px] w-1.5 h-full cursor-col-resize z-20 select-none transition-colors ${V(s)?`bg-blue-500/55`:`hover:bg-blue-500/35`}`)},[()=>Y(`nav.search_mobile_placeholder`),()=>Y(`nav.toggle_status_highlight`),()=>Y(`nav.toggle_attachments`),()=>Y(`nav.toggle_categories`),()=>Y(`nav.export`),()=>Y(`nav.new_folder`),()=>Y(`nav.new_document`)]),H(`input`,p,e=>t.onsearch(e.target.value)),H(`click`,v,()=>X.cycleHighlightStatus()),H(`click`,y,()=>X.toggleHideAttachments()),H(`click`,b,()=>X.toggleHideCategories()),H(`click`,x,function(...e){t.onexport?.apply(this,e)}),H(`click`,S,function(...e){t.onnewfolder?.apply(this,e)}),H(`click`,C,function(...e){t.onnewdoc?.apply(this,e)}),H(`mousedown`,ee,l),W(e,u),Je()}Pr([`input`,`click`,`mousedown`]);var vv=`background:rgba(250,204,21,0.5);border-radius:2px;cursor:pointer;padding:0 1px;`;function yv(e,t,n){e.querySelectorAll(`mark[data-annotation-id]`).forEach(e=>{let t=e.parentNode;t&&(t.replaceChild(document.createTextNode(e.textContent||``),e),t.normalize())});for(let n of t)xv(e,n);e.querySelectorAll(`mark[data-annotation-id]`).forEach(e=>{(e.textContent||``).trim()||e.remove()}),n&&bv(e,!1)}function bv(e,t){e.querySelectorAll(`mark[data-annotation-id]`).forEach(e=>{let n=e;n.style.background=t?`rgba(250,204,21,0.5)`:`transparent`,n.style.cursor=t?`pointer`:`default`,n.style.pointerEvents=t?`auto`:`none`})}function xv(e,t){let n=(t.selectedText||``).replace(/\s+/g,` `).trim(),r=(t.contextBefore||``).replace(/\s+/g,` `).trim(),i=(t.contextAfter||``).replace(/\s+/g,` `).trim();if(!n)return;let a=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),o=e=>e.split(/\s+/).filter(Boolean).map(a).join(`\\s+`),s=e.textContent||``,c=o(n),l=null;if(r||i){let e=(r?`${o(r)}\\s*`:``)+`(`+c+`)`+(i?`\\s*${o(i)}`:``);try{l=new RegExp(e,`d`).exec(s)}catch{}}if(!l)try{l=RegExp(`(${c})`,`d`).exec(s)}catch{return}let u=l&&l.indices;if(!l||!u?.[1])return;let[d,f]=u[1],p=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),m=[],h=0;for(;p.nextNode();){let e=p.currentNode,t=e.nodeValue?.length,n=h,r=h+t;if(h=r,r<=d)continue;if(n>=f)break;let i=Math.max(0,d-n),a=Math.min(t,f-n);i<a&&m.push({node:e,start:i,end:a})}for(let{node:e,start:n,end:r}of m){let i=e;n>0&&n<i.nodeValue?.length&&(i=i.splitText(n));let a=r-n;a>0&&a<i.nodeValue?.length&&i.splitText(a);let o=document.createElement(`mark`);o.setAttribute(`data-annotation-id`,t.id),o.setAttribute(`style`,vv),i.parentNode?.insertBefore(o,i),o.appendChild(i)}}var Sv=U(`<div class="fixed z-50 w-80 bg-yellow-50 dark:bg-yellow-900/80 border-2 border-yellow-300 dark:border-yellow-600 rounded-xl shadow-2xl p-4 flex flex-col gap-3"><div class="text-xs font-semibold text-yellow-700 dark:text-yellow-300 flex items-center gap-2"><span>✎</span><span> </span></div> <div class="text-xs text-yellow-800 dark:text-yellow-200 bg-yellow-100 dark:bg-yellow-800/50 rounded px-2 py-1 italic max-h-16 overflow-y-auto border border-yellow-200 dark:border-yellow-700"> </div> <textarea rows="4" class="w-full text-sm rounded-lg border border-yellow-300 dark:border-yellow-600 bg-white dark:bg-yellow-950 text-gray-900 dark:text-gray-100 px-3 py-2 focus:outline-none focus:ring-2 focus:ring-yellow-400 resize-none"></textarea> <div class="flex justify-end gap-2"><button class="text-sm px-3 py-1.5 rounded-lg border border-yellow-300 dark:border-yellow-600 text-yellow-700 dark:text-yellow-300 hover:bg-yellow-100 dark:hover:bg-yellow-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-yellow-400 hover:bg-yellow-500 dark:bg-yellow-600 dark:hover:bg-yellow-500 text-yellow-900 dark:text-white font-semibold transition-colors"> </button></div></div>`),Cv=U(`<div class="text-xs font-semibold text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/30 border border-red-200 dark:border-red-700 rounded px-2 py-1"> </div>`),wv=U(`<div class="fixed z-50 w-80 bg-yellow-50 dark:bg-yellow-900/80 border-2 border-yellow-300 dark:border-yellow-600 rounded-xl shadow-2xl p-4 flex flex-col gap-2"><div class="text-xs font-semibold text-yellow-700 dark:text-yellow-300 flex items-center gap-2"><span>✎</span><span class="font-normal text-yellow-600 dark:text-yellow-400"> </span></div> <!> <div class="text-sm text-gray-800 dark:text-gray-100 whitespace-pre-wrap max-h-48 overflow-y-auto"> </div> <div class="flex justify-end pt-1 border-t border-yellow-200 dark:border-yellow-700"><button class="text-xs px-3 py-1.5 rounded-lg border border-red-200 dark:border-red-700 text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/40 transition-colors flex items-center gap-1"> </button></div></div>`),Tv=U(`<div class="fixed z-50 w-72 bg-white dark:bg-gray-900 border border-red-200 dark:border-red-700 rounded-xl shadow-2xl p-4 flex flex-col gap-3"><p class="text-sm text-gray-700 dark:text-gray-200"> </p> <div class="flex justify-end gap-2"><button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-red-500 hover:bg-red-600 text-white font-semibold transition-colors"> </button></div></div>`),Ev=U(`<button> </button>`),Dv=U(`<div class="fixed top-14 right-0 w-10 flex flex-col items-center py-2 gap-2 z-40 overflow-y-auto" style="max-height: calc(100vh - 3.5rem)"></div>`),Ov=U(`<!> <!> <!> <!>`,1);function kv(e,t){qe(t,!0);let n=P(I([])),r=P(null),i=P(``),a=P(null),o=P(null),s=P(I([])),c=null;Ji(()=>{let e=document.getElementById(`home-content-area`);if(!e)return;let t=()=>{c&&clearTimeout(c),F(a,null)};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)});function l(e,t,n=320,r=260){let i=window.innerWidth,a=window.innerHeight,o=e;return o+n>i-16&&(o=i-n-16),o<8&&(o=8),{x:o,y:Math.min(t,a-r)}}async function u(e){F(n,[],!0);try{F(n,await fetch(`/api/annotations/`+encodeURIComponent(e)).then(e=>e.json()),!0)}catch{F(n,[],!0)}d()}function d(){t.contentEl&&(yv(t.contentEl,V(n),X.markerHidden),f())}kn(()=>{t.contentEl&&bv(t.contentEl,!X.markerHidden)});function f(){if(!t.contentEl){F(s,[],!0);return}F(s,V(n).map(e=>({id:e.id,note:e.note.length>60?e.note.slice(0,60)+`…`:e.note,orphan:!t.contentEl.querySelector(`mark[data-annotation-id="${e.id}"]`)})),!0)}function p(){if(!X.markerActive||V(r)||!t.contentEl)return;let e=window.getSelection();if(!e||e.isCollapsed||!e.toString().trim()||!t.contentEl.contains(e.anchorNode))return;let n=e.getRangeAt(0),a=document.createRange();a.selectNodeContents(t.contentEl),a.setEnd(n.startContainer,n.startOffset);let o=a.toString().length,s=n.toString(),c=t.contentEl.textContent||``,u=e=>e.replace(/\s+/g,` `).trim(),d=u(s),f=u(c.slice(Math.max(0,o-30),o)),p=u(c.slice(o+s.length,o+s.length+30)),m=n.getBoundingClientRect(),h=l(m.left,m.bottom+8);F(r,{x:h.x,y:h.y,preview:d.length>120?d.slice(0,120)+`…`:d,selectedText:d,contextBefore:f,contextAfter:p},!0),F(i,``)}function m(){F(r,null),window.getSelection()?.removeAllRanges()}async function h(){if(!V(r)||!t.docId)return;let e=V(i).trim();if(e)try{let i=await fetch(`/api/annotations/`+encodeURIComponent(t.docId),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({selectedText:V(r).selectedText,contextBefore:V(r).contextBefore,contextAfter:V(r).contextAfter,note:e})}).then(e=>e.json());F(n,[...V(n),i],!0),m(),d(),X.annotationCounts={...X.annotationCounts,[t.docId]:(X.annotationCounts[t.docId]||0)+1}}catch{}}kn(()=>{if(!t.contentEl)return;let e=t.contentEl,r=e=>{let t=e.target.closest(`mark[data-annotation-id]`);if(!t)return;let r=V(n).find(e=>e.id===t.dataset.annotationId);r&&g(r,t)},i=e=>{let t=e;t.target.closest(`mark[data-annotation-id]`)&&(t.relatedTarget&&t.relatedTarget.closest?.(`mark[data-annotation-id]`)||_())};return e.addEventListener(`mouseover`,r),e.addEventListener(`mouseout`,i),()=>{e.removeEventListener(`mouseover`,r),e.removeEventListener(`mouseout`,i)}});function g(e,n){c&&clearTimeout(c);let r=!t.contentEl?.querySelector(`mark[data-annotation-id="${e.id}"]`),i=n.getBoundingClientRect(),o=l(i.left,i.bottom+8);F(a,{ann:e,x:o.x,y:o.y,orphan:r},!0)}function _(){c=window.setTimeout(()=>{F(a,null)},1500)}function v(){V(a)&&(F(o,{id:V(a).ann.id,x:V(a).x,y:V(a).y},!0),F(a,null))}async function y(){if(!V(o)||!t.docId)return;let e=V(o).id;try{await fetch(`/api/annotations/${encodeURIComponent(t.docId)}/${e}`,{method:`DELETE`}),F(n,V(n).filter(t=>t.id!==e),!0),F(o,null),d();let r=(X.annotationCounts[t.docId]||0)-1,i={...X.annotationCounts};r<=0?delete i[t.docId]:i[t.docId]=r,X.annotationCounts=i}catch{}}function b(e,t){return e.getBoundingClientRect().top+t.scrollTop-t.getBoundingClientRect().top}function x(e,t){let n=e.parentElement;for(;n&&n!==t;)n.tagName===`DETAILS`&&(n.open=!0),n=n.parentElement}function S(e,r){let i=t.contentEl?.querySelector(`mark[data-annotation-id="${e}"]`),o=document.getElementById(`home-content-area`);if(i&&o){if(V(a)?.ann.id===e){c&&clearTimeout(c);return}x(i,o),o.scrollTo({top:b(i,o)-o.clientHeight/2,behavior:`smooth`})}else{let t=V(n).find(t=>t.id===e);t&&g(t,r.currentTarget)}}function C(e,r){c&&clearTimeout(c);let i=V(n).find(t=>t.id===e);if(!i)return;let a=t.contentEl?.querySelector(`mark[data-annotation-id="${e}"]`),o=document.getElementById(`home-content-area`);if(!a||!o){g(i,r.currentTarget);return}x(a,o),o.scrollTo({top:b(a,o)-o.clientHeight/2,behavior:`smooth`});let s,l=()=>{clearTimeout(s),s=window.setTimeout(()=>{o.removeEventListener(`scroll`,l),g(i,a)},80)};o.addEventListener(`scroll`,l),s=window.setTimeout(()=>{o.removeEventListener(`scroll`,l),g(i,a)},600)}function w(e){let t=V(a)?.ann.id===e.id;return e.orphan?t?`#b91c1c`:`#ef4444`:t?`#f97316`:`#facc15`}function T(e){return new Date(e).toLocaleDateString(`fr-FR`,{day:`2-digit`,month:`short`,year:`numeric`})}var E={load:u,apply:d},D=Ov();Nr(`mouseup`,on,p);var ee=R(D),te=e=>{var t=Sv(),n=L(t),a=z(L(n)),o=L(a,!0);j(a),j(n);var s=z(n,2),c=L(s,!0);j(s);var l=z(s,2);yn(l),vn(l,!0);var u=z(l,2),d=L(u),f=L(d,!0);j(d);var p=z(d,2),g=L(p,!0);j(p),j(u),j(t),B((e,n,i,a)=>{bi(t,`left:${V(r).x??``}px;top:${V(r).y??``}px`),G(o,e),G(c,V(r).preview),J(l,`placeholder`,n),G(f,i),G(g,a)},[()=>Y(`annotation.title`),()=>Y(`annotation.placeholder`),()=>Y(`common.cancel`),()=>Y(`annotation.save_btn`)]),Fi(l,()=>V(i),e=>F(i,e)),H(`click`,d,m),H(`click`,p,h),W(e,t)};K(ee,e=>{V(r)&&e(te)});var O=z(ee,2),k=e=>{var t=wv(),n=L(t),r=z(L(n)),i=L(r,!0);j(r),j(n);var o=z(n,2),s=e=>{var t=Cv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`annotation.orphan`)]),W(e,t)};K(o,e=>{V(a).orphan&&e(s)});var l=z(o,2),u=L(l,!0);j(l);var d=z(l,2),f=L(d),p=L(f,!0);j(f),j(d),j(t),B((e,n)=>{bi(t,`left:${V(a).x??``}px;top:${V(a).y??``}px`),G(i,e),G(u,V(a).ann.note),G(p,n)},[()=>T(V(a).ann.createdAt),()=>Y(`annotation.delete_btn`)]),Nr(`mouseenter`,t,()=>{c&&clearTimeout(c)}),Nr(`mouseleave`,t,_),H(`click`,f,v),W(e,t)};K(O,e=>{V(a)&&e(k)});var ne=z(O,2),A=e=>{var t=Tv(),n=L(t),r=L(n,!0);j(n);var i=z(n,2),a=L(i),s=L(a,!0);j(a);var c=z(a,2),l=L(c,!0);j(c),j(i),j(t),B((e,n,i)=>{bi(t,`left:${V(o).x??``}px;top:${V(o).y??``}px`),G(r,e),G(s,n),G(l,i)},[()=>Y(`annotation.confirm_delete`),()=>Y(`common.cancel`),()=>Y(`annotation.confirm_btn`)]),H(`click`,a,()=>F(o,null)),H(`click`,c,y),W(e,t)};K(ne,e=>{V(o)&&e(A)});var re=z(ne,2),ie=e=>{var t=Dv();q(t,21,()=>V(s),e=>e.id,(e,t)=>{var n=Ev(),r=L(n,!0);j(n),B((e,i)=>{J(n,`title`,e),vi(n,1,`w-8 h-8 rounded border-2 shadow text-xs flex items-center justify-center transition-colors shrink-0 ${V(t).orphan?`border-red-600 text-white`:`border-yellow-500`}`),bi(n,`background:${i??``}`),G(r,V(t).orphan?`⚠`:`✎`)},[()=>V(t).orphan?`${Y(`annotation.orphan`)}\n\n${V(t).note}`:V(t).note,()=>w(V(t))]),H(`click`,n,e=>S(V(t).id,e)),Nr(`mouseenter`,n,e=>C(V(t).id,e)),Nr(`mouseleave`,n,_),W(e,n)}),j(t),W(e,t)};return K(re,e=>{V(s).length>0&&!X.markerHidden&&e(ie)}),W(e,D),Je(E)}Pr([`click`]);var Av=`#dc2626`,jv=`#eab308`,Mv=`#16a34a`;function Nv(e){let t=Math.max(0,Math.min(1,e))*100;return t>80?Mv:t>=60?jv:t>=40?`#f97316`:Av}function Pv(e){let t=Math.max(0,Math.min(1,e))*100;return t>=100?Mv:t<30?Av:t<60?`linear-gradient(to right, ${Av} 0%, ${Av} 60%, ${jv} 100%)`:t<80?`linear-gradient(to right, ${Av} 0%, ${jv} 40%, ${jv} 100%)`:`linear-gradient(to right, ${jv} 0%, ${Mv} 40%, ${Mv} 100%)`}var Fv=new class{#e=P(null);get report(){return V(this.#e)}set report(e){F(this.#e,e,!0)}async load(e){if(!e)return this.report=null,null;try{let t=await fetch(`/api/metadata/${encodeURIComponent(e)}`);if(!t.ok)throw Error(t.statusText);this.report=await t.json()}catch{this.report=null}return this.report}async refresh(e){let t=await fetch(`/api/metadata/${encodeURIComponent(e)}/refresh`,{method:`POST`});if(!t.ok)throw Error(t.statusText);this.report=await t.json()}async addPath(e,t){let n=await fetch(`/api/metadata/${encodeURIComponent(e)}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t})});if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(e.error||n.statusText)}this.report=await n.json()}async removePath(e,t){let n=await fetch(`/api/metadata/${encodeURIComponent(e)}`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:t})});if(!n.ok)throw Error(n.statusText);this.report=await n.json()}},Iv=U(`<div data-testid="accuracy-gauge" class="no-print mt-5 flex items-center gap-3 mr-auto w-full sm:w-80 cursor-pointer select-none"><span class="text-xs text-gray-500 dark:text-gray-400 shrink-0"> </span> <div class="flex-1 h-4 rounded-full bg-gray-200 dark:bg-gray-700 overflow-hidden"><div class="h-full w-full transition-all"></div></div> <span data-testid="accuracy-gauge-value" class="text-xs font-semibold shrink-0 tabular-nums"> </span></div>`);function Lv(e,t){qe(t,!0);let n=N(()=>Fv.report),r=N(()=>V(n)?Math.round(V(n).accuracy*100):0),i=N(()=>V(n)?Y(`accuracy.tooltip`).replace(`{unchanged}`,String(V(n).unchanged)).replace(`{modified}`,String(V(n).modified)).replace(`{missing}`,String(V(n).missing)).replace(`{total}`,String(V(n).total)):``);var a=Wr(),o=R(a),s=e=>{var a=Iv(),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c);j(c);var u=z(c,2),d=L(u);j(u),j(a),B((e,t,n)=>{J(a,`title`,V(i)),G(s,e),bi(l,`background:${t??``}`),bi(u,`color:${n??``}`),G(d,`${V(r)??``}%`)},[()=>Y(`accuracy.label`),()=>Pv(V(n).accuracy),()=>Nv(V(n).accuracy)]),H(`click`,a,function(...e){t.onopen?.apply(this,e)}),W(e,a)};K(o,e=>{V(n)&&V(n).total>0&&e(s)}),W(e,a),Je()}Pr([`click`]);var Rv=/^(\s*(?:\*\*status:\*\*|status:)\s*).+?\s*$/im;function zv(e){if(typeof e!=`string`)return null;let t=e.match(/^---\s*\n([\s\S]*?)\n---/);if(!t)return null;let n=t[1].match(/^\s*(?:\*\*status:\*\*|status:)\s*(.+?)\s*$/im);return n?n[1].trim():null}function Bv(e,t){return e.replace(Rv,`$1${t}`)}function Vv(e){return/%5BWORKLOG%5D/i.test(e)}var Hv=U(`<div data-testid="metadata-readonly-banner" class="text-xs text-amber-800 dark:text-amber-200 bg-amber-50 dark:bg-amber-900/30 border-l-4 border-amber-500 rounded-r px-3 py-2"> </div>`),Uv=U(`<div class="px-3 py-4 text-center text-xs text-gray-400"> </div>`),Wv=U(`<span class="inline-flex items-center gap-1 text-xs font-semibold px-2 py-0.5 rounded-full bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"><i class="fa-solid fa-check"></i> </span>`),Gv=U(`<span class="inline-flex items-center gap-1 text-xs font-semibold px-2 py-0.5 rounded-full bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300"><i class="fa-solid fa-triangle-exclamation"></i> </span>`),Kv=U(`<span class="inline-flex items-center gap-1 text-xs font-semibold px-2 py-0.5 rounded-full bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300"><i class="fa-solid fa-circle-xmark"></i> </span>`),qv=U(`<button class="metadata-row-remove text-xs px-2 py-1 rounded-lg border border-red-200 dark:border-red-700 text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/40 transition-colors"><i class="fa-solid fa-trash"></i></button>`),Jv=U(`<div class="flex items-center gap-2 px-3 py-2 border-b border-gray-100 dark:border-gray-800"><div class="flex-1 min-w-0"><div class="text-sm font-mono truncate text-gray-800 dark:text-gray-200"> </div></div> <!> <!></div>`),Yv=U(`<div class="flex items-center gap-2 flex-wrap"><button data-testid="metadata-add-btn" class="text-sm px-3 py-1.5 rounded-lg border border-blue-200 dark:border-blue-700 text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/30 transition-colors"><i class="fa-solid fa-plus"></i> </button> <button data-testid="metadata-refresh-btn" class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><i class="fa-solid fa-arrows-rotate"></i> </button></div>`),Xv=U(`<div class="px-3 py-2 text-xs text-gray-400"> </div>`),Zv=U(`<div class="px-3 py-2 text-xs text-red-500"> </div>`),Qv=U(`<button class="w-full text-left px-3 py-1.5 text-sm hover:bg-gray-50 dark:hover:bg-gray-800 flex items-center gap-2"><i class="fa-solid fa-folder text-yellow-500"></i> <span class="truncate"> </span></button>`),$v=U(`<button class="w-full text-left px-3 py-1.5 text-sm hover:bg-blue-50 dark:hover:bg-blue-900/30 flex items-center gap-2"><i class="fa-solid fa-file text-gray-400"></i> <span class="truncate"> </span> <i class="fa-solid fa-plus ml-auto text-blue-500 text-xs"></i></button>`),ey=U(`<!> <!>`,1),ty=U(`<div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden text-sm"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"> </button> <span class="text-xs text-gray-500 dark:text-gray-400 font-mono truncate flex-1"> </span></div> <div class="max-h-56 overflow-y-auto divide-y divide-gray-100 dark:divide-gray-800"><!></div></div>`),ny=U(`<p class="text-xs text-red-500"> </p>`),ry=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div data-testid="metadata-modal" class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-2xl mx-4 p-6 space-y-4"><div class="flex items-start justify-between gap-4"><div><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><i class="fa-solid fa-code-compare mr-1"></i> </h3> <p class="text-xs text-gray-500 dark:text-gray-400 mt-1"> </p></div> <button class="text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 transition-colors"><i class="fa-solid fa-xmark text-lg"></i></button></div> <div class="text-xs text-gray-600 dark:text-gray-300 bg-gray-50 dark:bg-gray-800 rounded-lg px-3 py-2"></div> <!> <div data-testid="metadata-list" class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden"><div class="max-h-64 overflow-y-auto"><!></div></div> <!> <!> <!> <div class="flex justify-end"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button></div></div></div>`);function iy(e,t){qe(t,!0);let n=N(()=>Fv.report),r=N(()=>zv(t.content)===`SuperSeeded`),i=P(``),a=P(!1),o=P(!1),s=P(``),c=P(null),l=P(I([])),u=P(I([])),d=P(!1),f=P(``);kn(()=>{t.open||(F(o,!1),F(s,``),F(i,``))});function p(e){F(i,Y(`common.error_prefix`)+e),setTimeout(()=>{F(i,``)},5e3)}function m(){return!V(n)||V(n).total===0?``:`<span class="font-semibold">${Math.round(V(n).accuracy*100)}%</span> · ${V(n).unchanged}/${V(n).total} ${Y(`metadata.status.unchanged`)} · ${V(n).modified} ${Y(`metadata.status.modified`)} · ${V(n).missing} ${Y(`metadata.status.missing`)}`}async function h(){F(a,!0);try{await Fv.refresh(t.docId)}catch(e){p(e instanceof Error?e.message:String(e))}finally{F(a,!1)}}async function g(e){try{await Fv.removePath(t.docId,e),V(o)&&y(V(s))}catch(e){p(e instanceof Error?e.message:String(e))}}async function _(e){try{await Fv.addPath(t.docId,e),V(o)&&y(V(s))}catch(e){p(e instanceof Error?e.message:String(e))}}function v(){F(o,!V(o)),V(o)&&y(``)}async function y(e){F(d,!0),F(f,``);try{let t=await fetch(`/api/browse-source?path=`+encodeURIComponent(e||``));if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error||t.statusText)}let r=await t.json();F(s,r.current||``,!0),F(c,r.parent,!0),F(l,r.dirs||[],!0);let i=new Set((V(n)?.items||[]).map(e=>e.path));F(u,(r.files||[]).filter(e=>!i.has(e.path)),!0)}catch(e){F(f,e instanceof Error?e.message:String(e),!0)}finally{F(d,!1)}}function b(){V(c)!==null&&y(V(c))}var x=Wr(),S=R(x),C=e=>{var p=ry(),x=L(p),S=L(x),C=L(S),w=L(C),T=z(L(w));j(w);var E=z(w,2),D=L(E,!0);j(E),j(C);var ee=z(C,2);j(S);var te=z(S,2);si(te,m,!0),j(te);var O=z(te,2),k=e=>{var t=Hv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`metadata.readonly_banner`)]),W(e,t)};K(O,e=>{V(r)&&e(k)});var ne=z(O,2),A=L(ne),re=L(A),ie=e=>{var t=Uv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`metadata.empty`)]),W(e,t)},ae=e=>{var t=Wr();q(R(t),17,()=>V(n).items,e=>e.path,(e,t)=>{var n=Jv(),i=L(n),a=L(i),o=L(a,!0);j(a),j(i);var s=z(i,2),c=e=>{var t=Wv(),n=z(L(t));j(t),B(e=>G(n,` ${e??``}`),[()=>Y(`metadata.status.unchanged`)]),W(e,t)},l=e=>{var t=Gv(),n=z(L(t));j(t),B(e=>G(n,` ${e??``}`),[()=>Y(`metadata.status.modified`)]),W(e,t)},u=e=>{var t=Kv(),n=z(L(t));j(t),B(e=>G(n,` ${e??``}`),[()=>Y(`metadata.status.missing`)]),W(e,t)};K(s,e=>{V(t).status===`unchanged`?e(c):V(t).status===`modified`?e(l,1):e(u,-1)});var d=z(s,2),f=e=>{var n=qv();B(e=>J(n,`title`,e),[()=>Y(`metadata.remove`)]),H(`click`,n,()=>g(V(t).path)),W(e,n)};K(d,e=>{V(r)||e(f)}),j(n),B(()=>{J(a,`title`,V(t).path),G(o,V(t).path)}),W(e,n)}),W(e,t)};K(re,e=>{!V(n)||V(n).items.length===0?e(ie):e(ae,-1)}),j(A),j(ne);var oe=z(ne,2),se=e=>{var t=Yv(),n=L(t),r=z(L(n));j(n);var i=z(n,2),o=z(L(i));j(i),j(t),B((e,t)=>{G(r,` ${e??``}`),i.disabled=V(a),G(o,` ${t??``}`)},[()=>Y(`metadata.add`),()=>Y(`metadata.refresh`)]),H(`click`,n,v),H(`click`,i,h),W(e,t)};K(oe,e=>{V(r)||e(se)});var ce=z(oe,2),le=e=>{var t=ty(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n);var p=z(n,2),m=L(p),h=e=>{var t=Xv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},g=e=>{var t=Zv(),n=L(t,!0);j(t),B(()=>G(n,V(f))),W(e,t)},v=e=>{var t=Xv(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.empty_dir`)]),W(e,t)},x=e=>{var t=ey(),n=R(t);q(n,17,()=>V(l),e=>e.path,(e,t)=>{var n=Qv(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>y(V(t).path)),W(e,n)}),q(z(n,2),17,()=>V(u),e=>e.path,(e,t)=>{var n=$v(),r=z(L(n),2),i=L(r,!0);j(r),Ie(2),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>_(V(t).path)),W(e,n)}),W(e,t)};K(m,e=>{V(d)?e(h):V(f)?e(g,1):V(l).length===0&&V(u).length===0?e(v,2):e(x,-1)}),j(p),j(t),B(e=>{r.disabled=V(c)===null,G(i,e),G(o,V(s)?`/`+V(s):`/ (sourceRoot)`)},[()=>Y(`common.up`)]),H(`click`,r,b),W(e,t)};K(ce,e=>{V(o)&&e(le)});var ue=z(ce,2),de=e=>{var t=ny(),n=L(t,!0);j(t),B(()=>G(n,V(i))),W(e,t)};K(ue,e=>{V(i)&&e(de)});var fe=z(ue,2),pe=L(fe),me=L(pe,!0);j(pe),j(fe),j(x),j(p),B((e,t,n,r)=>{G(T,` ${e??``}`),G(D,t),J(ee,`title`,n),G(me,r)},[()=>Y(`metadata.title`),()=>Y(`metadata.subtitle`),()=>Y(`common.close`),()=>Y(`common.close`)]),H(`click`,p,e=>{e.target===e.currentTarget&&t.onclose()}),H(`click`,ee,function(...e){t.onclose?.apply(this,e)}),H(`click`,pe,function(...e){t.onclose?.apply(this,e)}),W(e,p)};K(S,e=>{t.open&&e(C)}),W(e,x),Je()}Pr([`click`]);var ay=U(`<div class="text-xs font-medium text-amber-700 dark:text-amber-300"> </div>`),oy=U(`<div> </div>`),sy=U(`<button type="button"><div class="flex items-center gap-2 font-semibold text-gray-800 dark:text-gray-100"><span class="font-mono text-blue-600 dark:text-blue-400"> </span> <span class="truncate"> </span></div> <div class="mt-1 text-gray-500 dark:text-gray-400"> </div></button>`),cy=U(`<div class="mt-3 flex gap-2 overflow-x-auto pb-1"></div>`),ly=U(`<p class="mt-3 text-sm text-gray-500 dark:text-gray-400"> </p>`),uy=U(`<div class="flex h-full items-center justify-center text-sm text-gray-500 dark:text-gray-400"> </div>`),dy=U(`<div class="m-5 rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-800 dark:bg-red-950/30 dark:text-red-300"> </div>`),fy=U(`<div class="mx-5 mt-4 rounded-lg border border-amber-200 bg-amber-50 px-4 py-2 text-sm text-amber-800 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-200"> </div>`),py=U(`<button type="button" class="mt-0.5 inline-flex h-7 w-8 items-center justify-center rounded-md border border-blue-200 bg-white font-mono text-sm font-bold text-blue-600 transition-colors hover:bg-blue-50 disabled:cursor-wait disabled:opacity-50 dark:border-blue-800 dark:bg-gray-950 dark:text-blue-300 dark:hover:bg-blue-950/40"> </button>`),my=U(`<div><span> </span> <pre class="m-0 whitespace-pre-wrap break-words px-2 py-0.5 font-mono"> </pre></div> <div class="flex items-start justify-center border-r border-gray-200 bg-gray-50 px-1 py-0.5 dark:border-gray-800 dark:bg-gray-900/70"><!></div> <div><span> </span> <pre class="m-0 whitespace-pre-wrap break-words px-2 py-0.5 font-mono"> </pre></div>`,1),hy=U(`<!> <div class="h-full overflow-auto p-5"><div class="grid min-w-[980px] grid-cols-[minmax(0,1fr)_3.25rem_minmax(0,1fr)] overflow-hidden rounded-lg border border-gray-200 text-xs dark:border-gray-800"><div class="border-b border-r border-gray-200 bg-gray-100 px-3 py-2 font-semibold text-gray-700 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-200"> </div> <div class="border-b border-r border-gray-200 bg-gray-100 px-2 py-2 text-center font-semibold text-gray-400 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-500"></div> <div class="border-b border-gray-200 bg-gray-100 px-3 py-2 font-semibold text-gray-700 dark:border-gray-800 dark:bg-gray-900 dark:text-gray-200"> </div> <!></div></div>`,1),gy=U(`<div data-testid="versions-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4"><div class="flex h-[90vh] w-full max-w-7xl flex-col overflow-hidden rounded-xl border border-gray-200 bg-white shadow-2xl dark:border-gray-700 dark:bg-gray-950"><header class="flex shrink-0 items-start justify-between gap-4 border-b border-gray-200 px-5 py-4 dark:border-gray-800"><div><h2 class="text-lg font-semibold text-gray-900 dark:text-gray-50"><i class="fa-solid fa-code-branch mr-2"></i> </h2> <p class="mt-1 text-xs text-gray-500 dark:text-gray-400"> </p></div> <button type="button" class="rounded-lg border border-gray-200 px-3 py-1.5 text-sm text-gray-600 transition-colors hover:bg-gray-50 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-gray-800"><i class="fa-solid fa-xmark"></i></button></header> <div class="shrink-0 border-b border-gray-200 px-5 py-3 dark:border-gray-800"><div class="flex flex-wrap items-end gap-3"><label class="text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"> <input type="number" class="mt-1 block w-28 rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-sm text-gray-800 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100"/></label> <button type="button" class="rounded-lg bg-blue-600 px-3 py-1.5 text-sm font-semibold text-white transition-colors hover:bg-blue-700 disabled:opacity-50"><i class="fa-solid fa-arrows-rotate mr-1"></i> </button> <button type="button" class="rounded-lg bg-green-600 px-3 py-1.5 text-sm font-semibold text-white transition-colors hover:bg-green-700 disabled:cursor-not-allowed disabled:opacity-50"><i class="fa-solid fa-floppy-disk mr-1"></i> </button> <div class="text-xs text-gray-500 dark:text-gray-400"> </div> <!> <!></div> <!></div> <section class="min-h-0 flex-1 overflow-hidden"><!></section></div></div>`);function _y(e,t){qe(t,!0);let n=3650,r=P(30),i=P(30),a=P(!1),o=P(``),s=P(null),c=P(null),l=P(null),u=P(``),d=``,f=P(``),p=P(!1),m=N(()=>V(l)?.headContent??t.content),h=N(()=>V(f)),g=N(()=>V(f)!==V(m)),_=N(()=>T(V(l)?.baseContent??``,V(h))),v=N(()=>V(_).rows),y=N(()=>V(l)?.baseContent!==null&&V(l)?.baseContent!==void 0);kn(()=>{t.docId,F(f,t.content,!0)});function b(e){return Number.isFinite(e)?Math.max(1,Math.min(n,Math.floor(e))):30}function x(e){return e.length?e.replace(/\r\n/g,`
|
|
100
100
|
`).split(`
|
|
101
101
|
`):[]}function S(){return{text:``,lineNumber:null,kind:`empty`}}function C(e,t){let n=[],r=[],i=Math.max(e.length,t.length);for(let a=0;a<i;a+=1){let i=e[a],o=t[a];if(i===o)n.push({left:{text:i??``,lineNumber:i===void 0?null:a+1,kind:i===void 0?`empty`:`context`},right:{text:o??``,lineNumber:o===void 0?null:a+1,kind:o===void 0?`empty`:`context`},hunkId:null,showApply:!1});else{let e={id:r.length,oldStart:a,oldDeleteCount:i===void 0?0:1,newStart:a,newDeleteCount:o===void 0?0:1,oldLines:i===void 0?[]:[i],newLines:o===void 0?[]:[o]};r.push(e),n.push({left:i===void 0?S():{text:i,lineNumber:a+1,kind:`removed`},right:o===void 0?S():{text:o,lineNumber:a+1,kind:`added`},hunkId:e.id,showApply:!0})}}return{rows:n,hunks:r}}function w(e,t,n){let r=n.filter(e=>e.kind===`removed`),i=n.filter(e=>e.kind===`added`),a={id:t.length,oldStart:r[0]?r[0].oldLine-1:i[0]?.oldIndex??0,oldDeleteCount:r.length,newStart:i[0]?i[0].newLine-1:r[0]?.newIndex??0,newDeleteCount:i.length,oldLines:r.map(e=>e.text),newLines:i.map(e=>e.text)};t.push(a);let o=Math.max(r.length,i.length);for(let t=0;t<o;t+=1){let n=r[t],o=i[t];e.push({left:n?{text:n.text,lineNumber:n.oldLine,kind:`removed`}:S(),right:o?{text:o.text,lineNumber:o.newLine,kind:`added`}:S(),hunkId:a.id,showApply:t===0})}}function T(e,t){let n=x(e),r=x(t);if(n.length*r.length>4e6)return C(n,r);let i=r.length+1,a=new Uint32Array((n.length+1)*i);for(let e=n.length-1;e>=0;--e)for(let t=r.length-1;t>=0;--t){let o=e*i+t;a[o]=n[e]===r[t]?a[(e+1)*i+t+1]+1:Math.max(a[(e+1)*i+t],a[e*i+t+1])}let o=[],s=0,c=0;for(;s<n.length||c<r.length;)s<n.length&&c<r.length&&n[s]===r[c]?(o.push({kind:`context`,oldText:n[s],newText:r[c],oldLine:s+1,newLine:c+1}),s+=1,c+=1):c<r.length&&(s===n.length||a[s*i+c+1]>=a[(s+1)*i+c])?(o.push({kind:`added`,text:r[c],newLine:c+1,oldIndex:s}),c+=1):s<n.length&&(o.push({kind:`removed`,text:n[s],oldLine:s+1,newIndex:c}),s+=1);let l=[],u=[],d=[];for(let e of o)e.kind===`context`?(d.length&&(w(l,u,d),d=[]),l.push({left:{text:e.oldText,lineNumber:e.oldLine,kind:`context`},right:{text:e.newText,lineNumber:e.newLine,kind:`context`},hunkId:null,showApply:!1})):d.push(e);return d.length&&w(l,u,d),{rows:l,hunks:u}}function E(e){return e===`added`?`bg-green-50 text-green-900 dark:bg-green-950/40 dark:text-green-100`:e===`removed`?`bg-red-50 text-red-900 dark:bg-red-950/40 dark:text-red-100`:e===`empty`?`bg-gray-50 dark:bg-gray-900/60`:`bg-white text-gray-800 dark:bg-gray-950 dark:text-gray-200`}function D(e){return e===`added`?`bg-green-100 text-green-700 dark:bg-green-950 dark:text-green-300`:e===`removed`?`bg-red-100 text-red-700 dark:bg-red-950 dark:text-red-300`:`bg-gray-100 text-gray-400 dark:bg-gray-900 dark:text-gray-500`}function ee(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function te(e){return V(u)===e||V(l)?.baseRef===e}function O(e){return e===null?null:V(_).hunks.find(t=>t.id===e)||null}async function k(e){if(V(c)!==null)return;let n=x(V(f)||t.content);if(n.slice(e.newStart,e.newStart+e.newDeleteCount).join(`
|
|
102
102
|
`)!==e.newLines.join(`
|
|
103
103
|
`)){F(s,{text:Y(`versions.apply_stale`),cls:`text-red-600 dark:text-red-400`},!0);return}F(c,e.id,!0),F(s,null);try{F(f,[...n.slice(0,e.newStart),...e.oldLines,...n.slice(e.newStart+e.newDeleteCount)].join(`
|
|
104
|
-
`),!0),F(s,{text:Y(`versions.apply_success`),cls:`text-green-600 dark:text-green-400`},!0)}catch(e){F(s,{text:Y(`versions.apply_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-600 dark:text-red-400`},!0)}finally{F(c,null)}}async function ne(){if(!(!V(g)||V(p))){F(p,!0),F(s,null);try{await t.onsave(V(f)),d=``,await ie(V(u)),F(s,{text:Y(`versions.save_success`),cls:`text-green-600 dark:text-green-400`},!0)}catch(e){F(s,{text:Y(`versions.save_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-600 dark:text-red-400`},!0)}finally{F(p,!1)}}}function A(){F(f,t.content,!0),F(s,null),F(c,null),F(p,!1)}function re(){A(),t.onclose()}async function ie(e=V(u)){let n=b(V(i)),r=`${t.docId}:${n}:${e||`default`}`;if(!t.open||V(a)||r===d)return;F(a,!0),F(o,``);let c=V(g);c||F(s,null);try{let i=new URLSearchParams({documentId:t.docId,sinceDays:String(n)});e&&i.set(`baseRef`,e);let a=await fetch(`/api/git/document-versions?${i.toString()}`),o=await a.json();if(!a.ok||!o.ok)throw Error(o.message||o.error||Y(`versions.load_failed`));let s=o;F(l,s,!0),F(u,s.baseRef,!0),c||F(f,s.headContent??t.content,!0),d=r}catch(e){F(o,e instanceof Error?e.message:String(e),!0),F(l,null),d=``}finally{F(a,!1)}}function ae(){F(i,b(Number(V(r))),!0),F(r,V(i),!0),F(u,``),d=``,ie(``)}function oe(e){F(u,e,!0),d=``,ie(e)}kn(()=>{if(!t.open){A(),d=``,F(u,``);return}t.docId,V(i),ie()});var se=Wr(),ce=R(se),le=e=>{var t=
|
|
104
|
+
`),!0),F(s,{text:Y(`versions.apply_success`),cls:`text-green-600 dark:text-green-400`},!0)}catch(e){F(s,{text:Y(`versions.apply_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-600 dark:text-red-400`},!0)}finally{F(c,null)}}async function ne(){if(!(!V(g)||V(p))){F(p,!0),F(s,null);try{await t.onsave(V(f)),d=``,await ie(V(u)),F(s,{text:Y(`versions.save_success`),cls:`text-green-600 dark:text-green-400`},!0)}catch(e){F(s,{text:Y(`versions.save_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-600 dark:text-red-400`},!0)}finally{F(p,!1)}}}function A(){F(f,t.content,!0),F(s,null),F(c,null),F(p,!1)}function re(){A(),t.onclose()}async function ie(e=V(u)){let n=b(V(i)),r=`${t.docId}:${n}:${e||`default`}`;if(!t.open||V(a)||r===d)return;F(a,!0),F(o,``);let c=V(g);c||F(s,null);try{let i=new URLSearchParams({documentId:t.docId,sinceDays:String(n)});e&&i.set(`baseRef`,e);let a=await fetch(`/api/git/document-versions?${i.toString()}`),o=await a.json();if(!a.ok||!o.ok)throw Error(o.message||o.error||Y(`versions.load_failed`));let s=o;F(l,s,!0),F(u,s.baseRef,!0),c||F(f,s.headContent??t.content,!0),d=r}catch(e){F(o,e instanceof Error?e.message:String(e),!0),F(l,null),d=``}finally{F(a,!1)}}function ae(){F(i,b(Number(V(r))),!0),F(r,V(i),!0),F(u,``),d=``,ie(``)}function oe(e){F(u,e,!0),d=``,ie(e)}kn(()=>{if(!t.open){A(),d=``,F(u,``);return}t.docId,V(i),ie()});var se=Wr(),ce=R(se),le=e=>{var t=gy(),i=L(t),u=L(i),d=L(u),f=L(d),m=z(L(f),1,!0);j(f);var h=z(f,2),_=L(h,!0);j(h),j(d);var b=z(d,2);j(u);var x=z(u,2),S=L(x),C=L(S),w=L(C),T=z(w);ki(T),J(T,`min`,1),J(T,`max`,n),j(C);var A=z(C,2),ie=z(L(A),1,!0);j(A);var se=z(A,2),ce=z(L(se),1,!0);j(se);var le=z(se,2),ue=L(le,!0);j(le);var de=z(le,2),fe=e=>{var t=ay(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`versions.unsaved_changes`)]),W(e,t)};K(de,e=>{V(g)&&e(fe)});var pe=z(de,2),me=e=>{var t=oy(),n=L(t,!0);j(t),B(()=>{vi(t,1,`text-xs font-medium ${V(s).cls??``}`),G(n,V(s).text)}),W(e,t)};K(pe,e=>{V(s)&&e(me)}),j(S);var he=z(S,2),ge=e=>{var t=cy();q(t,21,()=>V(l).commits,e=>e.hash,(e,t)=>{var n=sy(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(r);var c=z(r,2),l=L(c);j(c),j(n),B((e,r,i)=>{J(n,`title`,e),vi(n,1,`min-w-64 rounded-lg border px-3 py-2 text-left text-xs transition-colors ${r??``}`),G(a,V(t).shortHash),G(s,V(t).subject),G(l,`${i??``} · ${V(t).author??``}`)},[()=>Y(`versions.select_commit`).replace(`{hash}`,V(t).shortHash),()=>te(V(t).hash)?`border-blue-500 bg-blue-50 ring-2 ring-blue-500/30 dark:border-blue-400 dark:bg-blue-950/40`:`border-gray-200 bg-gray-50 hover:border-blue-300 hover:bg-blue-50/70 dark:border-gray-700 dark:bg-gray-900 dark:hover:border-blue-700 dark:hover:bg-blue-950/30`,()=>ee(V(t).date)]),H(`click`,n,()=>oe(V(t).hash)),W(e,n)}),j(t),W(e,t)},_e=e=>{var t=ly(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`versions.no_commits`)]),W(e,t)};K(he,e=>{V(l)?.commits?.length?e(ge):V(l)&&!V(a)&&e(_e,1)}),j(x);var ve=z(x,2),ye=L(ve),be=e=>{var t=uy(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},xe=e=>{var t=dy(),n=L(t,!0);j(t),B(()=>G(n,V(o))),W(e,t)},Se=e=>{var t=hy(),n=R(t),r=e=>{var t=fy(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`versions.no_head_content`)]),W(e,t)};K(n,e=>{V(y)||e(r)});var i=z(n,2),a=L(i),o=L(a),s=L(o,!0);j(o);var u=z(o,4),d=L(u,!0);j(u),q(z(u,2),17,()=>V(v),Qr,(e,t)=>{var n=my(),r=R(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(r);var l=z(r,2),u=L(l),d=e=>{let n=N(()=>O(V(t).hunkId));var r=Wr(),i=R(r),a=e=>{var t=py(),r=L(t,!0);j(t),B(e=>{t.disabled=V(c)!==null,J(t,`title`,e),G(r,V(c)===V(n).id?`...`:`<`)},[()=>Y(`versions.apply_hunk`)]),H(`click`,t,()=>k(V(n))),W(e,t)};K(i,e=>{V(n)&&e(a)}),W(e,r)};K(u,e=>{V(t).showApply&&e(d)}),j(l);var f=z(l,2),p=L(f),m=L(p,!0);j(p);var h=z(p,2),g=L(h,!0);j(h),j(f),B((e,n,o,c)=>{vi(r,1,`grid grid-cols-[4rem_1fr] border-r border-gray-200 font-mono leading-5 dark:border-gray-800 ${e??``}`),vi(i,1,`select-none px-2 py-0.5 text-right ${n??``}`),G(a,V(t).right.lineNumber??``),G(s,V(t).right.text),vi(f,1,`grid grid-cols-[4rem_1fr] font-mono leading-5 ${o??``}`),vi(p,1,`select-none px-2 py-0.5 text-right ${c??``}`),G(m,V(t).left.lineNumber??``),G(g,V(t).left.text)},[()=>E(V(t).right.kind),()=>D(V(t).right.kind),()=>E(V(t).left.kind),()=>D(V(t).left.kind)]),W(e,n)}),j(a),j(i),B((e,t)=>{G(s,e),G(d,t)},[()=>Y(V(g)?`versions.right_title_draft`:`versions.right_title`),()=>Y(`versions.left_title`).replace(`{ref}`,V(l).baseRef)]),W(e,t)},Ce=e=>{var t=uy(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`versions.path_pending`)]),W(e,t)};K(ye,e=>{V(a)?e(be):V(o)?e(xe,1):V(l)?e(Se,2):e(Ce,-1)}),j(ve),j(i),j(t),B((e,t,n,r,i,o,s)=>{G(m,e),G(_,t),J(b,`title`,n),G(w,`${r??``} `),A.disabled=V(a),G(ie,i),se.disabled=!V(g)||V(p)||V(a),G(ce,o),G(ue,s)},[()=>Y(`versions.title`),()=>V(l)?.relativePath||Y(`versions.path_pending`),()=>Y(`common.close`),()=>Y(`versions.period_label`),()=>Y(`versions.refresh`),()=>V(p)?Y(`versions.saving`):Y(`common.save`),()=>Y(`versions.base_ref`).replace(`{ref}`,V(l)?.baseRef||`HEAD`)]),H(`click`,t,e=>{e.target===e.currentTarget&&re()}),H(`click`,b,re),Fi(T,()=>V(r),e=>F(r,e)),H(`click`,A,ae),H(`click`,se,ne),W(e,t)};K(ce,e=>{t.open&&e(le)}),W(e,se),Je()}Pr([`click`]);function vy(e){let t=``,n=[],r=!0;for(let i=0;i<e.length;i++){let a=e[i].normalize(`NFD`);for(let e=0;e<a.length;e++){let o=a.charCodeAt(e);if(!(o>=768&&o<=879))if(o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122){let e=o>=65&&o<=90?o+32:o;t+=String.fromCharCode(e),n.push(i),r=!1}else r||=(t+=` `,n.push(i),!0)}}return n.push(e.length),t.endsWith(` `)&&(t=t.slice(0,-1),n.splice(n.length-2,1)),{normalized:t,map:n}}function yy(e){return vy(e).normalized}function by(e,t,n){if(e===t)return 0;let r=e.length,i=t.length;if(Math.abs(r-i)>n)return n+1;let a=null,o=Array(i+1),s=Array(i+1);for(let e=0;e<=i;e++)o[e]=e;for(let c=1;c<=r;c++){s[0]=c;let r=c;for(let n=1;n<=i;n++){let i=e.charCodeAt(c-1)===t.charCodeAt(n-1)?0:1,l=Math.min(o[n]+1,s[n-1]+1,o[n-1]+i);c>1&&n>1&&e.charCodeAt(c-1)===t.charCodeAt(n-2)&&e.charCodeAt(c-2)===t.charCodeAt(n-1)&&(l=Math.min(l,a?.[n-2]+1)),s[n]=l,l<r&&(r=l)}if(r>n)return n+1;a=o,o=s,s=Array(i+1)}return o[i]}function xy(e){return e>=7?2:+(e>=4)}function Sy(e){return String(e).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function Cy(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function wy(e,t,n){t.innerHTML=``,t.classList.add(`hidden`);let r=e.querySelectorAll(`[data-ld-local-search]`);if(!r.length)return;r.forEach(e=>{e.remove()});let i=(()=>{let t=new Set;return yy(e.textContent||``).split(` `).forEach(e=>{e.length>=3&&t.add(e)}),Array.from(t)})(),a=n(`local_search.placeholder`)||`Search in this document…`,o=n(`local_search.clear`)||`Clear`,s=document.createElement(`div`);s.className=`no-print mt-4 rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 overflow-hidden`,s.innerHTML=`
|
|
105
105
|
<div class="flex items-center gap-2 px-3 py-2 border-b border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50">
|
|
106
106
|
<span class="text-gray-400 select-none" aria-hidden="true">🔎</span>
|
|
107
107
|
<input type="text" id="ld-local-search-input" autocomplete="off"
|
|
108
108
|
class="flex-1 bg-transparent border-0 text-sm text-gray-700 dark:text-gray-300 placeholder:text-gray-400 focus:outline-none focus:ring-0"
|
|
109
|
-
placeholder="${
|
|
109
|
+
placeholder="${Sy(a)}" />
|
|
110
110
|
<button type="button" id="ld-local-search-clear"
|
|
111
111
|
class="hidden text-xs text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 shrink-0 px-1"
|
|
112
|
-
title="${
|
|
112
|
+
title="${Sy(o)}" aria-label="${Sy(o)}">✕</button>
|
|
113
113
|
</div>
|
|
114
114
|
<div id="ld-local-search-results" class="hidden">
|
|
115
115
|
<div id="ld-local-search-title" class="px-3 py-1.5 text-xs font-medium text-gray-500 dark:text-gray-400 border-b border-gray-100 dark:border-gray-800"></div>
|
|
116
116
|
<ol id="ld-local-search-list" class="max-h-40 overflow-y-auto divide-y divide-gray-100 dark:divide-gray-800 list-none m-0 p-0"></ol>
|
|
117
|
-
</div>`,t.appendChild(s),t.classList.remove(`hidden`);let c=s.querySelector(`#ld-local-search-input`),l=s.querySelector(`#ld-local-search-clear`),u=s.querySelector(`#ld-local-search-results`),d=s.querySelector(`#ld-local-search-title`),f=s.querySelector(`#ld-local-search-list`),p=null;function m(){e.querySelectorAll(`mark.ld-local-mark`).forEach(e=>{let t=e.parentNode;for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}),e.normalize()}function h(e,t){let n=new Set;t.includes(e)&&n.add(e);let r=ly(e.length);if(r===0)return n;let a=e[0];for(let t of i)t!==e&&(Math.abs(t.length-e.length)>r||e.length>=3&&t[0]!==a||cy(e,t,r)<=r&&n.add(t));return n}function g(t){if(m(),!t){u.classList.add(`hidden`),l.classList.add(`hidden`),f.innerHTML=``;return}l.classList.remove(`hidden`);let r=sy(t),i=r.split(` `).filter(Boolean);if(!i.length){u.classList.add(`hidden`);return}let a=sy(e.textContent||``),o=i.map(e=>h(e,a));if(!o.some(e=>e.size>0)){d.textContent=n(`local_search.no_results`)||`No matches found.`,f.innerHTML=``,u.classList.remove(`hidden`);return}let s=new Set;o.forEach((e,t)=>{e.forEach(e=>{let n=e===i[t];s.add(n?e:`\\b${dy(e)}\\b`)})});let c=Array.from(s).sort((e,t)=>t.length-e.length),p=RegExp(`(${c.map(e=>e.startsWith(`\\b`)?e:dy(e)).join(`|`)})`,`g`),g=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(e){return e.parentElement?.closest(`mark`)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),v=[];for(;g.nextNode();)v.push(g.currentNode);let y=0,b=new Map;v.forEach(e=>{let t=e.textContent||``,{normalized:n,map:r}=oy(t);if(!n)return;let i=[],a;for(p.lastIndex=0;(a=p.exec(n))!==null;){if(a[0].length===0){p.lastIndex++;continue}i.push({start:a.index,end:a.index+a[0].length,term:a[0]})}if(!i.length)return;let s=e.parentElement?.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre, blockquote`)||e.parentElement,c=``,l=0;i.forEach(e=>{let n=r[e.start],i=r[e.end];if(!(n<l)&&(c+=uy(t.slice(l,n)),c+=`<mark class="ld-local-mark" id="ld-local-match-${y++}">${uy(t.slice(n,i))}</mark>`,l=i,s)){b.has(s)||b.set(s,new Set);let t=b.get(s);o.forEach((n,r)=>{n.has(e.term)&&t.add(r)})}}),c+=uy(t.slice(l));let u=document.createElement(`span`);u.innerHTML=c,e.parentNode?.replaceChild(u,e)});let x=i.length,S=[];for(let[e,t]of b.entries())t.size===x&&S.push(e);let C;if(S.length>0){let t=new Set(S);C=Array.from(e.querySelectorAll(`mark.ld-local-mark`)).filter(e=>{let n=e.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre, blockquote`)||e.parentElement;return t.has(n)})}else C=Array.from(e.querySelectorAll(`mark.ld-local-mark`));if(!C.length){d.textContent=n(`local_search.no_results`)||`No matches found.`,f.innerHTML=``,u.classList.remove(`hidden`);return}d.textContent=(C.length===1?n(`local_search.count_singular`)||`{count} match`:n(`local_search.count_plural`)||`{count} matches`).replace(`{count}`,String(C.length)),f.innerHTML=C.map((e,t)=>{let n=e.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre, blockquote`)||e.parentElement,i=(n?n.textContent||``:e.textContent||``).trim(),a=sy(i),s=-1;for(let e of o)for(let t of e){let e=a.indexOf(t);e>=0&&(s<0||e<s)&&(s=e)}s<0&&(s=a.indexOf(r.split(` `)[0])),s<0&&(s=0);let c=Math.max(0,s-40),l=Math.min(i.length,s+80),u=(c>0?`…`:``)+i.slice(c,l)+(l<i.length?`…`:``);return`<li><button type="button" data-target="${e.id}" class="ld-local-item w-full text-left px-3 py-1.5 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors text-xs"><span class="text-gray-400 font-mono mr-2">${t+1}.</span>${uy(u)}</button></li>`}).join(``),u.classList.remove(`hidden`),f.querySelectorAll(`.ld-local-item`).forEach(e=>{e.addEventListener(`click`,()=>_(e.dataset.target))})}function _(t){let n=document.getElementById(t),r=document.getElementById(`home-content-area`);if(!n||!r)return;let i=n.parentElement;for(;i&&i!==r;)i.tagName===`DETAILS`&&!i.open&&(i.open=!0),i=i.parentElement;e.querySelectorAll(`mark.ld-local-mark.ld-local-active`).forEach(e=>e.classList.remove(`ld-local-active`)),n.classList.add(`ld-local-active`),f.querySelectorAll(`.ld-local-item`).forEach(e=>{e.classList.toggle(`ld-local-item-active`,e.dataset.target===t)});let a=document.querySelector(`#home-doc-view header`),o=a?a.getBoundingClientRect().height:0,s=n.getBoundingClientRect().top,c=r.getBoundingClientRect().top,l=o+(r.clientHeight-o)/3;r.scrollTop+=s-c-l}c.addEventListener(`input`,()=>{p&&clearTimeout(p),p=window.setTimeout(()=>g(c.value.trim()),250)}),l.addEventListener(`click`,()=>{c.value=``,g(``),c.focus()}),c.addEventListener(`keydown`,e=>{e.key===`Escape`&&(c.value=``,g(``),c.blur())})}var py={codeLabel:`Code block.`,imageLabel:`Image: {alt}.`,diagramLabel:`Diagram.`,tableLabel:`Table.`,readCode:!1},my=new Set([`H1`,`H2`,`H3`,`H4`,`H5`,`H6`]);function hy(e){return e.classList.contains(`mermaid`)||e.querySelector(`.mermaid`)!==null}function gy(e){let t=[];for(let n of e.matchAll(/[^.!?…\n]*(?:[.!?…]+|\n+|$)/g)){let e=n[0];if(e.length===0)continue;let r=e.length-e.trimStart().length,i=e.trim();if(i){let e=n.index+r;t.push({text:i,start:e,end:e+i.length})}}return t}function _y(e,t){let n=(e.textContent??``).replace(/\s+/g,` `).trim();if(!n)return null;let r=gy(n);return{type:t,el:e,spokenText:n,sentences:r.length?r:[{text:n,start:0,end:n.length}],highlightWhole:!1}}function vy(e,t,n){let r=n.trim();return r?{type:t,el:e,spokenText:r,sentences:[{text:r,start:0,end:r.length}],highlightWhole:!0}:null}function yy(e,t,n){for(let r of Array.from(e.children)){let e=r.tagName;if(hy(r)){by(n,vy(r,`diagram`,t.diagramLabel));continue}if(e===`PRE`||e===`DIV`&&r.querySelector(`:scope > pre`)){by(n,t.readCode?_y(r,`code`):vy(r,`code`,t.codeLabel));continue}if(e===`TABLE`){by(n,vy(r,`table`,t.tableLabel));continue}if(e===`IMG`||e===`FIGURE`&&r.querySelector(`img`)){let i=(e===`IMG`?r:r.querySelector(`img`))?.getAttribute(`alt`)?.trim()??``;by(n,vy(r,`image`,t.imageLabel.includes(`{alt}`)?i?t.imageLabel.replace(`{alt}`,i):t.imageLabel.replace(/:?\s*\{alt\}/,``).trim()||`Image.`:t.imageLabel));continue}if(my.has(e)){by(n,_y(r,`heading`));continue}if(e===`P`){by(n,_y(r,`paragraph`));continue}if(e===`LI`){by(n,_y(r,`list-item`));continue}if(e===`BLOCKQUOTE`){r.querySelector(`:scope > p, :scope > ul, :scope > ol`)?yy(r,t,n):by(n,_y(r,`quote`));continue}if(e===`UL`||e===`OL`||e===`DIV`||e===`SECTION`||e===`DETAILS`){yy(r,t,n);continue}}}function by(e,t){t&&e.push(t)}function xy(e,t={}){let n={...py,...t},r=[];return yy(e,n,r),r}var Sy=`tts-sentence`;function Cy(){if(typeof document>`u`||document.getElementById(`tts-highlight-style`))return;let e=document.createElement(`style`);e.id=`tts-highlight-style`,e.textContent=`::highlight(${Sy}){background-color:rgba(250,204,21,0.45);color:inherit;}.dark ::highlight(${Sy}){background-color:rgba(250,204,21,0.35);}`,document.head.appendChild(e)}function wy(e,t,n){let r=[],i=!0,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),o=a.nextNode();for(;o;){let e=o.data;for(let t=0;t<e.length;t++)/\s/.test(e[t])?i||=(r.push({node:o,offset:t}),!0):(r.push({node:o,offset:t}),i=!1);o=a.nextNode()}if(t>=r.length)return null;let s=r[t],c=document.createRange();if(c.setStart(s.node,s.offset),n<r.length){let e=r[n];c.setEnd(e.node,e.offset)}else{let e=r[r.length-1];c.setEnd(e.node,e.offset+1)}return c}var Ty=new class{#e=P(`idle`);get status(){return V(this.#e)}set status(e){F(this.#e,e,!0)}#t=P(-1);get index(){return V(this.#t)}set index(e){F(this.#t,e,!0)}#n=P(0);get total(){return V(this.#n)}set total(e){F(this.#n,e,!0)}#r=P(null);get error(){return V(this.#r)}set error(e){F(this.#r,e,!0)}units=[];ctx=null;source=null;cache=new Map;token=0;voice;speed;language=`en`;fallbackEl=null;get active(){return this.status===`playing`||this.status===`paused`||this.status===`loading`}async start(e,t={}){this.stop();let{voice:n,speed:r,language:i,...a}=t;this.voice=n,this.speed=r,this.language=i??`en`;let o=xy(e,a);if(this.units=o.flatMap(e=>e.highlightWhole?[{seg:e,text:e.spokenText,start:0,end:e.spokenText.length,whole:!0}]:e.sentences.map(t=>({seg:e,text:t.text,start:t.start,end:t.end,whole:!1}))),this.total=this.units.length,this.units.length===0)return;this.ctx=new AudioContext,this.error=null;let s=++this.token;this.status=`loading`,await this.playFrom(0,s)}async playFrom(e,t){if(t!==this.token)return;if(e>=this.units.length){this.stop();return}this.index=e,this.highlight(this.units[e]);let n;try{n=await this.audioFor(e)}catch(e){if(t!==this.token)return;this.error=e instanceof Error?e.message:String(e),this.stop(!1);return}if(t!==this.token||!this.ctx)return;this.prefetch(e+1);let r=this.ctx.createBufferSource();r.buffer=n,r.connect(this.ctx.destination),r.onended=()=>{t===this.token&&(this.source=null,this.playFrom(e+1,t))},this.source=r,this.status=`playing`,r.start()}audioFor(e){let t=this.cache.get(e);return t||(t=this.fetchAudio(this.units[e].text),this.cache.set(e,t)),t}prefetch(e){e<this.units.length&&!this.cache.has(e)&&this.cache.set(e,this.fetchAudio(this.units[e].text).catch(e=>Promise.reject(e)))}async fetchAudio(e){let t=await fetch(`/api/tts`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({text:e,voice:this.voice,speed:this.speed,language:this.language})});if(!t.ok){let e=`HTTP ${t.status}`;try{e=(await t.json()).error||e}catch{}throw Error(e)}let n=await t.arrayBuffer();return this.ctx?.decodeAudioData(n)}pause(){this.status===`playing`&&this.ctx&&(this.ctx.suspend(),this.status=`paused`)}resume(){this.status===`paused`&&this.ctx&&(this.ctx.resume(),this.status=`playing`)}toggle(){this.status===`playing`?this.pause():this.status===`paused`&&this.resume()}stop(e=!0){if(this.token++,this.source){try{this.source.onended=null,this.source.stop()}catch{}this.source=null}this.ctx&&=(this.ctx.close(),null),this.cache.clear(),this.clearHighlight(),this.status=`idle`,this.index=-1,this.total=0,e&&(this.error=null)}highlight(e){Cy(),this.clearHighlight();let t=typeof CSS<`u`&&`highlights`in CSS&&typeof Highlight<`u`;if(t&&!e.whole){let t=wy(e.seg.el,e.start,e.end);t?CSS.highlights.set(Sy,new Highlight(t)):this.fallbackHighlight(e.seg.el)}else if(t){let t=document.createRange();t.selectNodeContents(e.seg.el),CSS.highlights.set(Sy,new Highlight(t))}else this.fallbackHighlight(e.seg.el);e.seg.el.scrollIntoView({block:`center`,behavior:`smooth`})}fallbackHighlight(e){e.classList.add(`tts-active`),this.fallbackEl=e}clearHighlight(){typeof CSS<`u`&&`highlights`in CSS&&CSS.highlights.delete(Sy),this.fallbackEl&&=(this.fallbackEl.classList.remove(`tts-active`),null)}},Ey=Symbol.for(`yaml.alias`),Dy=Symbol.for(`yaml.document`),Oy=Symbol.for(`yaml.map`),ky=Symbol.for(`yaml.pair`),Ay=Symbol.for(`yaml.scalar`),jy=Symbol.for(`yaml.seq`),My=Symbol.for(`yaml.node.type`),Ny=e=>!!e&&typeof e==`object`&&e[My]===Ey,Py=e=>!!e&&typeof e==`object`&&e[My]===Dy,Fy=e=>!!e&&typeof e==`object`&&e[My]===Oy,Iy=e=>!!e&&typeof e==`object`&&e[My]===ky,Ly=e=>!!e&&typeof e==`object`&&e[My]===Ay,Ry=e=>!!e&&typeof e==`object`&&e[My]===jy;function zy(e){if(e&&typeof e==`object`)switch(e[My]){case Oy:case jy:return!0}return!1}function By(e){if(e&&typeof e==`object`)switch(e[My]){case Ey:case Oy:case Ay:case jy:return!0}return!1}var Vy=e=>(Ly(e)||zy(e))&&!!e.anchor,Hy=Symbol(`break visit`),Uy=Symbol(`skip children`),Wy=Symbol(`remove node`);function Gy(e,t){let n=Yy(t);Py(e)?Ky(null,e.contents,n,Object.freeze([e]))===Wy&&(e.contents=null):Ky(null,e,n,Object.freeze([]))}Gy.BREAK=Hy,Gy.SKIP=Uy,Gy.REMOVE=Wy;function Ky(e,t,n,r){let i=Xy(e,t,n,r);if(By(i)||Iy(i))return Zy(e,r,i),Ky(e,i,n,r);if(typeof i!=`symbol`){if(zy(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=Ky(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===Hy)return Hy;else i===Wy&&(t.items.splice(e,1),--e)}}else if(Iy(t)){r=Object.freeze(r.concat(t));let e=Ky(`key`,t.key,n,r);if(e===Hy)return Hy;e===Wy&&(t.key=null);let i=Ky(`value`,t.value,n,r);if(i===Hy)return Hy;i===Wy&&(t.value=null)}}return i}async function qy(e,t){let n=Yy(t);Py(e)?await Jy(null,e.contents,n,Object.freeze([e]))===Wy&&(e.contents=null):await Jy(null,e,n,Object.freeze([]))}qy.BREAK=Hy,qy.SKIP=Uy,qy.REMOVE=Wy;async function Jy(e,t,n,r){let i=await Xy(e,t,n,r);if(By(i)||Iy(i))return Zy(e,r,i),Jy(e,i,n,r);if(typeof i!=`symbol`){if(zy(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await Jy(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===Hy)return Hy;else i===Wy&&(t.items.splice(e,1),--e)}}else if(Iy(t)){r=Object.freeze(r.concat(t));let e=await Jy(`key`,t.key,n,r);if(e===Hy)return Hy;e===Wy&&(t.key=null);let i=await Jy(`value`,t.value,n,r);if(i===Hy)return Hy;i===Wy&&(t.value=null)}}return i}function Yy(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function Xy(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(Fy(t))return n.Map?.(e,t,r);if(Ry(t))return n.Seq?.(e,t,r);if(Iy(t))return n.Pair?.(e,t,r);if(Ly(t))return n.Scalar?.(e,t,r);if(Ny(t))return n.Alias?.(e,t,r)}function Zy(e,t,n){let r=t[t.length-1];if(zy(r))r.items[e]=n;else if(Iy(r))e===`key`?r.key=n:r.value=n;else if(Py(r))r.contents=n;else{let e=Ny(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var Qy={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},$y=e=>e.replace(/[!,[\]{}]/g,e=>Qy[e]),eb=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+$y(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&By(e.contents)){let t={};Gy(e.contents,(e,n)=>{By(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
|
|
118
|
-
`)}};
|
|
119
|
-
`)?
|
|
117
|
+
</div>`,t.appendChild(s),t.classList.remove(`hidden`);let c=s.querySelector(`#ld-local-search-input`),l=s.querySelector(`#ld-local-search-clear`),u=s.querySelector(`#ld-local-search-results`),d=s.querySelector(`#ld-local-search-title`),f=s.querySelector(`#ld-local-search-list`),p=null;function m(){e.querySelectorAll(`mark.ld-local-mark`).forEach(e=>{let t=e.parentNode;for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}),e.normalize()}function h(e,t){let n=new Set;t.includes(e)&&n.add(e);let r=xy(e.length);if(r===0)return n;let a=e[0];for(let t of i)t!==e&&(Math.abs(t.length-e.length)>r||e.length>=3&&t[0]!==a||by(e,t,r)<=r&&n.add(t));return n}function g(t){if(m(),!t){u.classList.add(`hidden`),l.classList.add(`hidden`),f.innerHTML=``;return}l.classList.remove(`hidden`);let r=yy(t),i=r.split(` `).filter(Boolean);if(!i.length){u.classList.add(`hidden`);return}let a=yy(e.textContent||``),o=i.map(e=>h(e,a));if(!o.some(e=>e.size>0)){d.textContent=n(`local_search.no_results`)||`No matches found.`,f.innerHTML=``,u.classList.remove(`hidden`);return}let s=new Set;o.forEach((e,t)=>{e.forEach(e=>{let n=e===i[t];s.add(n?e:`\\b${Cy(e)}\\b`)})});let c=Array.from(s).sort((e,t)=>t.length-e.length),p=RegExp(`(${c.map(e=>e.startsWith(`\\b`)?e:Cy(e)).join(`|`)})`,`g`),g=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(e){return e.parentElement?.closest(`mark`)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),v=[];for(;g.nextNode();)v.push(g.currentNode);let y=0,b=new Map;v.forEach(e=>{let t=e.textContent||``,{normalized:n,map:r}=vy(t);if(!n)return;let i=[],a;for(p.lastIndex=0;(a=p.exec(n))!==null;){if(a[0].length===0){p.lastIndex++;continue}i.push({start:a.index,end:a.index+a[0].length,term:a[0]})}if(!i.length)return;let s=e.parentElement?.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre, blockquote`)||e.parentElement,c=``,l=0;i.forEach(e=>{let n=r[e.start],i=r[e.end];if(!(n<l)&&(c+=Sy(t.slice(l,n)),c+=`<mark class="ld-local-mark" id="ld-local-match-${y++}">${Sy(t.slice(n,i))}</mark>`,l=i,s)){b.has(s)||b.set(s,new Set);let t=b.get(s);o.forEach((n,r)=>{n.has(e.term)&&t.add(r)})}}),c+=Sy(t.slice(l));let u=document.createElement(`span`);u.innerHTML=c,e.parentNode?.replaceChild(u,e)});let x=i.length,S=[];for(let[e,t]of b.entries())t.size===x&&S.push(e);let C;if(S.length>0){let t=new Set(S);C=Array.from(e.querySelectorAll(`mark.ld-local-mark`)).filter(e=>{let n=e.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre, blockquote`)||e.parentElement;return t.has(n)})}else C=Array.from(e.querySelectorAll(`mark.ld-local-mark`));if(!C.length){d.textContent=n(`local_search.no_results`)||`No matches found.`,f.innerHTML=``,u.classList.remove(`hidden`);return}d.textContent=(C.length===1?n(`local_search.count_singular`)||`{count} match`:n(`local_search.count_plural`)||`{count} matches`).replace(`{count}`,String(C.length)),f.innerHTML=C.map((e,t)=>{let n=e.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre, blockquote`)||e.parentElement,i=(n?n.textContent||``:e.textContent||``).trim(),a=yy(i),s=-1;for(let e of o)for(let t of e){let e=a.indexOf(t);e>=0&&(s<0||e<s)&&(s=e)}s<0&&(s=a.indexOf(r.split(` `)[0])),s<0&&(s=0);let c=Math.max(0,s-40),l=Math.min(i.length,s+80),u=(c>0?`…`:``)+i.slice(c,l)+(l<i.length?`…`:``);return`<li><button type="button" data-target="${e.id}" class="ld-local-item w-full text-left px-3 py-1.5 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors text-xs"><span class="text-gray-400 font-mono mr-2">${t+1}.</span>${Sy(u)}</button></li>`}).join(``),u.classList.remove(`hidden`),f.querySelectorAll(`.ld-local-item`).forEach(e=>{e.addEventListener(`click`,()=>_(e.dataset.target))})}function _(t){let n=document.getElementById(t),r=document.getElementById(`home-content-area`);if(!n||!r)return;let i=n.parentElement;for(;i&&i!==r;)i.tagName===`DETAILS`&&!i.open&&(i.open=!0),i=i.parentElement;e.querySelectorAll(`mark.ld-local-mark.ld-local-active`).forEach(e=>e.classList.remove(`ld-local-active`)),n.classList.add(`ld-local-active`),f.querySelectorAll(`.ld-local-item`).forEach(e=>{e.classList.toggle(`ld-local-item-active`,e.dataset.target===t)});let a=document.querySelector(`#home-doc-view header`),o=a?a.getBoundingClientRect().height:0,s=n.getBoundingClientRect().top,c=r.getBoundingClientRect().top,l=o+(r.clientHeight-o)/3;r.scrollTop+=s-c-l}c.addEventListener(`input`,()=>{p&&clearTimeout(p),p=window.setTimeout(()=>g(c.value.trim()),250)}),l.addEventListener(`click`,()=>{c.value=``,g(``),c.focus()}),c.addEventListener(`keydown`,e=>{e.key===`Escape`&&(c.value=``,g(``),c.blur())})}var Ty={codeLabel:`Code block.`,imageLabel:`Image: {alt}.`,diagramLabel:`Diagram.`,tableLabel:`Table.`,readCode:!1},Ey=new Set([`H1`,`H2`,`H3`,`H4`,`H5`,`H6`]);function Dy(e){return e.classList.contains(`mermaid`)||e.querySelector(`.mermaid`)!==null}function Oy(e){let t=[];for(let n of e.matchAll(/[^.!?…\n]*(?:[.!?…]+|\n+|$)/g)){let e=n[0];if(e.length===0)continue;let r=e.length-e.trimStart().length,i=e.trim();if(i){let e=n.index+r;t.push({text:i,start:e,end:e+i.length})}}return t}function ky(e,t){let n=(e.textContent??``).replace(/\s+/g,` `).trim();if(!n)return null;let r=Oy(n);return{type:t,el:e,spokenText:n,sentences:r.length?r:[{text:n,start:0,end:n.length}],highlightWhole:!1}}function Ay(e,t,n){let r=n.trim();return r?{type:t,el:e,spokenText:r,sentences:[{text:r,start:0,end:r.length}],highlightWhole:!0}:null}function jy(e,t,n){for(let r of Array.from(e.children)){let e=r.tagName;if(Dy(r)){My(n,Ay(r,`diagram`,t.diagramLabel));continue}if(e===`PRE`||e===`DIV`&&r.querySelector(`:scope > pre`)){My(n,t.readCode?ky(r,`code`):Ay(r,`code`,t.codeLabel));continue}if(e===`TABLE`){My(n,Ay(r,`table`,t.tableLabel));continue}if(e===`IMG`||e===`FIGURE`&&r.querySelector(`img`)){let i=(e===`IMG`?r:r.querySelector(`img`))?.getAttribute(`alt`)?.trim()??``;My(n,Ay(r,`image`,t.imageLabel.includes(`{alt}`)?i?t.imageLabel.replace(`{alt}`,i):t.imageLabel.replace(/:?\s*\{alt\}/,``).trim()||`Image.`:t.imageLabel));continue}if(Ey.has(e)){My(n,ky(r,`heading`));continue}if(e===`P`){My(n,ky(r,`paragraph`));continue}if(e===`LI`){My(n,ky(r,`list-item`));continue}if(e===`BLOCKQUOTE`){r.querySelector(`:scope > p, :scope > ul, :scope > ol`)?jy(r,t,n):My(n,ky(r,`quote`));continue}if(e===`UL`||e===`OL`||e===`DIV`||e===`SECTION`||e===`DETAILS`){jy(r,t,n);continue}}}function My(e,t){t&&e.push(t)}function Ny(e,t={}){let n={...Ty,...t},r=[];return jy(e,n,r),r}var Py=`tts-sentence`;function Fy(){if(typeof document>`u`||document.getElementById(`tts-highlight-style`))return;let e=document.createElement(`style`);e.id=`tts-highlight-style`,e.textContent=`::highlight(${Py}){background-color:rgba(250,204,21,0.45);color:inherit;}.dark ::highlight(${Py}){background-color:rgba(250,204,21,0.35);}`,document.head.appendChild(e)}function Iy(e,t,n){let r=[],i=!0,a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),o=a.nextNode();for(;o;){let e=o.data;for(let t=0;t<e.length;t++)/\s/.test(e[t])?i||=(r.push({node:o,offset:t}),!0):(r.push({node:o,offset:t}),i=!1);o=a.nextNode()}if(t>=r.length)return null;let s=r[t],c=document.createRange();if(c.setStart(s.node,s.offset),n<r.length){let e=r[n];c.setEnd(e.node,e.offset)}else{let e=r[r.length-1];c.setEnd(e.node,e.offset+1)}return c}var Ly=new class{#e=P(`idle`);get status(){return V(this.#e)}set status(e){F(this.#e,e,!0)}#t=P(-1);get index(){return V(this.#t)}set index(e){F(this.#t,e,!0)}#n=P(0);get total(){return V(this.#n)}set total(e){F(this.#n,e,!0)}#r=P(null);get error(){return V(this.#r)}set error(e){F(this.#r,e,!0)}units=[];ctx=null;source=null;cache=new Map;token=0;voice;speed;language=`en`;fallbackEl=null;get active(){return this.status===`playing`||this.status===`paused`||this.status===`loading`}async start(e,t={}){this.stop();let{voice:n,speed:r,language:i,...a}=t;this.voice=n,this.speed=r,this.language=i??`en`;let o=Ny(e,a);if(this.units=o.flatMap(e=>e.highlightWhole?[{seg:e,text:e.spokenText,start:0,end:e.spokenText.length,whole:!0}]:e.sentences.map(t=>({seg:e,text:t.text,start:t.start,end:t.end,whole:!1}))),this.total=this.units.length,this.units.length===0)return;this.ctx=new AudioContext,this.error=null;let s=++this.token;this.status=`loading`,await this.playFrom(0,s)}async playFrom(e,t){if(t!==this.token)return;if(e>=this.units.length){this.stop();return}this.index=e,this.highlight(this.units[e]);let n;try{n=await this.audioFor(e)}catch(e){if(t!==this.token)return;this.error=e instanceof Error?e.message:String(e),this.stop(!1);return}if(t!==this.token||!this.ctx)return;this.prefetch(e+1);let r=this.ctx.createBufferSource();r.buffer=n,r.connect(this.ctx.destination),r.onended=()=>{t===this.token&&(this.source=null,this.playFrom(e+1,t))},this.source=r,this.status=`playing`,r.start()}audioFor(e){let t=this.cache.get(e);return t||(t=this.fetchAudio(this.units[e].text),this.cache.set(e,t)),t}prefetch(e){e<this.units.length&&!this.cache.has(e)&&this.cache.set(e,this.fetchAudio(this.units[e].text).catch(e=>Promise.reject(e)))}async fetchAudio(e){let t=await fetch(`/api/tts`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({text:e,voice:this.voice,speed:this.speed,language:this.language})});if(!t.ok){let e=`HTTP ${t.status}`;try{e=(await t.json()).error||e}catch{}throw Error(e)}let n=await t.arrayBuffer();return this.ctx?.decodeAudioData(n)}pause(){this.status===`playing`&&this.ctx&&(this.ctx.suspend(),this.status=`paused`)}resume(){this.status===`paused`&&this.ctx&&(this.ctx.resume(),this.status=`playing`)}toggle(){this.status===`playing`?this.pause():this.status===`paused`&&this.resume()}stop(e=!0){if(this.token++,this.source){try{this.source.onended=null,this.source.stop()}catch{}this.source=null}this.ctx&&=(this.ctx.close(),null),this.cache.clear(),this.clearHighlight(),this.status=`idle`,this.index=-1,this.total=0,e&&(this.error=null)}highlight(e){Fy(),this.clearHighlight();let t=typeof CSS<`u`&&`highlights`in CSS&&typeof Highlight<`u`;if(t&&!e.whole){let t=Iy(e.seg.el,e.start,e.end);t?CSS.highlights.set(Py,new Highlight(t)):this.fallbackHighlight(e.seg.el)}else if(t){let t=document.createRange();t.selectNodeContents(e.seg.el),CSS.highlights.set(Py,new Highlight(t))}else this.fallbackHighlight(e.seg.el);e.seg.el.scrollIntoView({block:`center`,behavior:`smooth`})}fallbackHighlight(e){e.classList.add(`tts-active`),this.fallbackEl=e}clearHighlight(){typeof CSS<`u`&&`highlights`in CSS&&CSS.highlights.delete(Py),this.fallbackEl&&=(this.fallbackEl.classList.remove(`tts-active`),null)}},Ry=Symbol.for(`yaml.alias`),zy=Symbol.for(`yaml.document`),By=Symbol.for(`yaml.map`),Vy=Symbol.for(`yaml.pair`),Hy=Symbol.for(`yaml.scalar`),Uy=Symbol.for(`yaml.seq`),Wy=Symbol.for(`yaml.node.type`),Gy=e=>!!e&&typeof e==`object`&&e[Wy]===Ry,Ky=e=>!!e&&typeof e==`object`&&e[Wy]===zy,qy=e=>!!e&&typeof e==`object`&&e[Wy]===By,Jy=e=>!!e&&typeof e==`object`&&e[Wy]===Vy,Yy=e=>!!e&&typeof e==`object`&&e[Wy]===Hy,Xy=e=>!!e&&typeof e==`object`&&e[Wy]===Uy;function Zy(e){if(e&&typeof e==`object`)switch(e[Wy]){case By:case Uy:return!0}return!1}function Qy(e){if(e&&typeof e==`object`)switch(e[Wy]){case Ry:case By:case Hy:case Uy:return!0}return!1}var $y=e=>(Yy(e)||Zy(e))&&!!e.anchor,eb=Symbol(`break visit`),tb=Symbol(`skip children`),nb=Symbol(`remove node`);function rb(e,t){let n=sb(t);Ky(e)?ib(null,e.contents,n,Object.freeze([e]))===nb&&(e.contents=null):ib(null,e,n,Object.freeze([]))}rb.BREAK=eb,rb.SKIP=tb,rb.REMOVE=nb;function ib(e,t,n,r){let i=cb(e,t,n,r);if(Qy(i)||Jy(i))return lb(e,r,i),ib(e,i,n,r);if(typeof i!=`symbol`){if(Zy(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=ib(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===eb)return eb;else i===nb&&(t.items.splice(e,1),--e)}}else if(Jy(t)){r=Object.freeze(r.concat(t));let e=ib(`key`,t.key,n,r);if(e===eb)return eb;e===nb&&(t.key=null);let i=ib(`value`,t.value,n,r);if(i===eb)return eb;i===nb&&(t.value=null)}}return i}async function ab(e,t){let n=sb(t);Ky(e)?await ob(null,e.contents,n,Object.freeze([e]))===nb&&(e.contents=null):await ob(null,e,n,Object.freeze([]))}ab.BREAK=eb,ab.SKIP=tb,ab.REMOVE=nb;async function ob(e,t,n,r){let i=await cb(e,t,n,r);if(Qy(i)||Jy(i))return lb(e,r,i),ob(e,i,n,r);if(typeof i!=`symbol`){if(Zy(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await ob(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===eb)return eb;else i===nb&&(t.items.splice(e,1),--e)}}else if(Jy(t)){r=Object.freeze(r.concat(t));let e=await ob(`key`,t.key,n,r);if(e===eb)return eb;e===nb&&(t.key=null);let i=await ob(`value`,t.value,n,r);if(i===eb)return eb;i===nb&&(t.value=null)}}return i}function sb(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function cb(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(qy(t))return n.Map?.(e,t,r);if(Xy(t))return n.Seq?.(e,t,r);if(Jy(t))return n.Pair?.(e,t,r);if(Yy(t))return n.Scalar?.(e,t,r);if(Gy(t))return n.Alias?.(e,t,r)}function lb(e,t,n){let r=t[t.length-1];if(Zy(r))r.items[e]=n;else if(Jy(r))e===`key`?r.key=n:r.value=n;else if(Ky(r))r.contents=n;else{let e=Gy(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var ub={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},db=e=>e.replace(/[!,[\]{}]/g,e=>ub[e]),fb=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+db(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&Qy(e.contents)){let t={};rb(e.contents,(e,n)=>{Qy(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)i===`!!`&&a===`tag:yaml.org,2002:`||(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
|
|
118
|
+
`)}};fb.defaultYaml={explicit:!1,version:`1.2`},fb.defaultTags={"!!":`tag:yaml.org,2002:`};function pb(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function mb(e){let t=new Set;return rb(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function hb(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function gb(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i||=mb(e);let a=hb(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(Yy(t.node)||Zy(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}function _b(e,t,n,r){if(r&&typeof r==`object`)if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=_b(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=_b(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=_b(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=_b(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}return e.call(t,n,r)}function vb(e,t,n){if(Array.isArray(e))return e.map((e,t)=>vb(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!$y(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var yb=class{constructor(e){Object.defineProperty(this,Wy,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!Ky(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=vb(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?_b(i,{"":o},``,o):o}},bb=class extends yb{constructor(e){super(Ry),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e){let t;return rb(e,{Node:(e,n)=>{if(n===this)return rb.BREAK;n.anchor===this.source&&(t=n)}}),t}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(vb(a,null,t),n.get(a)),!o||o.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=xb(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(pb(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}};function xb(e,t,n){if(Gy(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}else if(Zy(t)){let r=0;for(let i of t.items){let t=xb(e,i,n);t>r&&(r=t)}return r}else if(Jy(t)){let r=xb(e,t.key,n),i=xb(e,t.value,n);return Math.max(r,i)}return 1}var Sb=e=>!e||typeof e!=`function`&&typeof e!=`object`,Cb=class extends yb{constructor(e){super(Hy),this.value=e}toJSON(e,t){return t?.keep?this.value:vb(this.value,e,t)}toString(){return String(this.value)}};Cb.BLOCK_FOLDED=`BLOCK_FOLDED`,Cb.BLOCK_LITERAL=`BLOCK_LITERAL`,Cb.PLAIN=`PLAIN`,Cb.QUOTE_DOUBLE=`QUOTE_DOUBLE`,Cb.QUOTE_SINGLE=`QUOTE_SINGLE`;var wb=`tag:yaml.org,2002:`;function Tb(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function Eb(e,t,n){if(Ky(e)&&(e=e.contents),Qy(e))return e;if(Jy(e)){let t=n.schema[By].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor||=i(e),new bb(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=wb+t.slice(2));let l=Tb(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new Cb(e);return c&&(c.node=t),t}l=e instanceof Map?o[By]:Symbol.iterator in Object(e)?o[Uy]:o[By]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new Cb(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}function Db(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return Eb(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Ob=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,kb=class extends yb{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>Qy(t)||Jy(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ob(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(Zy(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,Db(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(Zy(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&Yy(i)?i.value:i:Zy(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!Jy(t))return!1;let n=t.value;return n==null||e&&Yy(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return Zy(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(Zy(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,Db(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}},Ab=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function jb(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Mb=(e,t,n)=>e.endsWith(`
|
|
119
|
+
`)?jb(n,t):n.includes(`
|
|
120
120
|
`)?`
|
|
121
|
-
`+
|
|
122
|
-
`)n===`block`&&(h=
|
|
121
|
+
`+jb(n,t):(e.endsWith(` `)?``:` `)+n,Nb=`flow`,Pb=`block`,Fb=`quoted`;function Ib(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=Lb(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
|
|
122
|
+
`)n===`block`&&(h=Lb(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
|
|
123
123
|
`&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
|
|
124
|
-
`&&t!==` `&&(f=h)}if(h>=d)if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function
|
|
125
|
-
`);r=t,i=t+1,a=e[i]}return r}var
|
|
126
|
-
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function
|
|
124
|
+
`&&t!==` `&&(f=h)}if(h>=d)if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function Lb(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
|
|
125
|
+
`);r=t,i=t+1,a=e[i]}return r}var Rb=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),zb=e=>/^(%|---|\.\.\.)/m.test(e);function Bb(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
|
|
126
|
+
`){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function Vb(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(zb(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
|
|
127
127
|
|
|
128
128
|
`;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
|
|
129
|
-
`,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:
|
|
130
|
-
`)||/[ \t]\n|\n[ \t]/.test(e))return
|
|
129
|
+
`,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:Ib(o,a,Fb,Rb(t,!1))}function Hb(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
|
|
130
|
+
`)||/[ \t]\n|\n[ \t]/.test(e))return Vb(e,t);let n=t.indent||(zb(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:Ib(r,n,Nb,Rb(t,!1))}function Ub(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=Vb;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?Hb:i&&!t?Vb:n?Hb:Vb}return r(e,t)}var Wb;try{Wb=RegExp(`(^|(?<!
|
|
131
131
|
))
|
|
132
132
|
+(?!
|
|
133
|
-
|$)`,`g`)}catch{
|
|
133
|
+
|$)`,`g`)}catch{Wb=/\n+(?!\n|$)/g}function Gb({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n)||/^\s*$/.test(n))return Ub(n,r);let l=r.indent||(r.forceBlockIndent||zb(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===Cb.BLOCK_FOLDED?!1:t===Cb.BLOCK_LITERAL?!0:!Bb(n,c,l.length);if(!n)return u?`|
|
|
134
134
|
`:`>
|
|
135
135
|
`;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
|
|
136
136
|
`&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
|
|
137
137
|
`);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
|
|
138
|
-
`&&(p=p.slice(0,-1)),p.replace(
|
|
138
|
+
`&&(p=p.slice(0,-1)),p.replace(Wb,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
|
|
139
139
|
`)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&=(n=n.substring(v.length),v.replace(/\n+/g,`$&${l}`));let y=(u?`|`:`>`)+(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),u)return n=n.replace(/\n+/g,`$&${l}`),`${y}\n${l}${v}${n}${p}`;n=n.replace(/\n+/g,`
|
|
140
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`);let b=
|
|
141
|
-
`)||u&&/[[\]{},]/.test(a))return
|
|
142
|
-
`)?
|
|
143
|
-
`))return
|
|
144
|
-
`:``,v){let e=l(v);S+=`\n${
|
|
140
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`);let b=Ib(`${v}${n}${p}`,l,Pb,Rb(r,!0));return`${y}\n${l}${b}`}function Kb(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
|
|
141
|
+
`)||u&&/[[\]{},]/.test(a))return Ub(a,t);if(!a||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
|
|
142
|
+
`)?Ub(a,t):Gb(e,t,n,r);if(!s&&!u&&i!==Cb.PLAIN&&a.includes(`
|
|
143
|
+
`))return Gb(e,t,n,r);if(zb(a)){if(c===``)return t.forceBlockIndent=!0,Gb(e,t,n,r);if(s&&c===l)return Ub(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return Ub(a,t)}return s?d:Ib(d,c,Nb,Rb(t,!1))}function qb(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==Cb.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=Cb.QUOTE_DOUBLE);let c=e=>{switch(e){case Cb.BLOCK_FOLDED:case Cb.BLOCK_LITERAL:return i||a?Ub(o.value,t):Gb(o,t,n,r);case Cb.QUOTE_DOUBLE:return Vb(o.value,t);case Cb.QUOTE_SINGLE:return Hb(o.value,t);case Cb.PLAIN:return Kb(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}function Jb(e,t){let n=Object.assign({blockQuote:!0,commentString:Ab,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function Yb(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(Yy(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??typeof r;throw Error(`Tag not resolved for ${e} value`)}return n}function Xb(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(Yy(e)||Zy(e))&&e.anchor;a&&pb(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag?e.tag:t.default?null:t.tag;return o&&i.push(r.directives.tagString(o)),i.join(` `)}function Zb(e,t,n,r){if(Jy(e))return e.toString(t,n,r);if(Gy(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=Qy(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i||=Yb(t.doc.schema.tags,a);let o=Xb(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):Yy(a)?qb(a,t,n,r):a.toString(t,n,r);return o?Yy(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}function Qb({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=Qy(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(Zy(e)||!Qy(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||Zy(e)||(Yy(e)?e.type===Cb.BLOCK_FOLDED||e.type===Cb.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=Zb(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=Mb(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=Mb(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=Mb(g,n.indent,l(f))));let _,v,y;Qy(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&Yy(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&Xy(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=Zb(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
|
|
144
|
+
`:``,v){let e=l(v);S+=`\n${jb(e,n.indent)}`}x===``&&!n.inFlow?S===`
|
|
145
145
|
`&&(S=`
|
|
146
146
|
|
|
147
|
-
`):S+=`\n${n.indent}`}else if(!p&&
|
|
147
|
+
`):S+=`\n${n.indent}`}else if(!p&&Zy(t)){let e=x[0],r=x.indexOf(`
|
|
148
148
|
`),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=x.indexOf(` `);e===`&`&&n!==-1&&n<r&&x[n+1]===`!`&&(n=x.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(S=`\n${n.indent}`)}}else(x===``||x[0]===`
|
|
149
|
-
`)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=
|
|
149
|
+
`)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=Mb(g,n.indent,l(y)):h&&i&&i(),g}function $b(e,t){(e===`debug`||e===`warn`)&&(typeof process<`u`&&process.emitWarning?process.emitWarning(t):console.warn(t))}var ex=`<<`;function tx(e,t,{key:n,value:r}){if(e?.doc.schema.merge&&nx(n))if(r=Gy(r)?r.resolve(e.doc):r,Xy(r))for(let n of r.items)rx(e,t,n);else if(Array.isArray(r))for(let n of r)rx(e,t,n);else rx(e,t,r);else{let i=vb(n,``,e);if(t instanceof Map)t.set(i,vb(r,i,e));else if(t instanceof Set)t.add(i);else{let a=ix(n,i,e),o=vb(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}var nx=e=>e===ex||Yy(e)&&e.value===ex&&(!e.type||e.type===Cb.PLAIN);function rx(e,t,n){let r=e&&Gy(n)?n.resolve(e.doc):n;if(!qy(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function ix(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(Qy(e)&&n?.doc){let t=Jb(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),$b(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}function ax(e,t,n){return new ox(Eb(e,void 0,n),Eb(t,void 0,n))}var ox=class e{constructor(e,t=null){Object.defineProperty(this,Wy,{value:Vy}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return Qy(n)&&(n=n.clone(t)),Qy(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return tx(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?Qb(this,e,t,n):JSON.stringify(this)}};function sx(e,t,n){return(t.inFlow??e.flow?lx:cx)(e,t,n)}function cx({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(Qy(i))!d&&i.spaceBefore&&f.push(``),ux(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(Jy(i)){let e=Qy(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),ux(n,f,e.commentBefore,d))}d=!1;let s=Zb(i,u,()=>o=null,()=>d=!0);o&&(s+=Mb(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
|
|
150
150
|
`}}return e?(p+=`
|
|
151
|
-
`+
|
|
151
|
+
`+jb(l(e),c),s&&s()):d&&o&&o(),p}function lx({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(Qy(i))i.spaceBefore&&d.push(``),ux(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(Jy(i)){let e=Qy(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),ux(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=Qy(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=Zb(i,c,()=>a=null);n<e.length-1&&(o+=`,`),a&&(o+=Mb(o,r,s(a))),!l&&(d.length>u||o.includes(`
|
|
152
152
|
`))&&(l=!0),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
|
|
153
|
-
`;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function
|
|
154
|
-
`:` `)}return
|
|
155
|
-
`)?(n.push(`...`),n.push(
|
|
153
|
+
`;return`${e}\n${i}${p}`}else return`${f}${o}${d.join(` `)}${o}${p}`}function ux({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=jb(t(r),e);n.push(i.trimStart())}}function dx(e,t){let n=Yy(t)?t.value:t;for(let r of e)if(Jy(r)&&(r.key===t||r.key===n||Yy(r.key)&&r.key.value===n))return r}var fx=class extends kb{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(By,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(ax(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=Jy(e)?e:!e||typeof e!=`object`||!(`key`in e)?new ox(e,e?.value):new ox(e.key,e.value);let r=dx(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);Yy(r.value)&&Sb(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=dx(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=dx(this.items,e)?.value;return(!t&&Yy(n)?n.value:n)??void 0}has(e){return!!dx(this.items,e)}set(e,t){this.add(new ox(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)tx(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!Jy(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),sx(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}},px={collection:`map`,default:!0,nodeClass:fx,tag:`tag:yaml.org,2002:map`,resolve(e,t){return qy(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>fx.from(e,t,n)},mx=class extends kb{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(Uy,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=hx(e);return typeof t==`number`?this.items.splice(t,1).length>0:!1}get(e,t){let n=hx(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&Yy(r)?r.value:r}has(e){let t=hx(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=hx(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];Yy(r)&&Sb(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(vb(e,String(r++),t));return n}toString(e,t,n){return e?sx(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(Eb(a,void 0,n))}}return i}};function hx(e){let t=Yy(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var gx={collection:`seq`,default:!0,nodeClass:mx,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return Xy(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>mx.from(e,t,n)},_x={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),qb(e,t,n,r)}},vx={identify:e=>e==null,createNode:()=>new Cb(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Cb(null),stringify:({source:e},t)=>typeof e==`string`&&vx.test.test(e)?e:t.options.nullStr},yx={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new Cb(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&yx.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}};function bx({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^\d/.test(a)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}var xx={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:bx},Sx={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():bx(e)}},Cx={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new Cb(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:bx},wx=e=>typeof e==`bigint`||Number.isInteger(e),Tx=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function Ex(e,t,n){let{value:r}=e;return wx(r)&&r>=0?n+r.toString(t):bx(e)}var Dx={identify:e=>wx(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>Tx(e,2,8,n),stringify:e=>Ex(e,8,`0o`)},Ox={identify:wx,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>Tx(e,0,10,n),stringify:bx},kx={identify:e=>wx(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>Tx(e,2,16,n),stringify:e=>Ex(e,16,`0x`)},Ax=[px,gx,_x,vx,yx,Dx,Ox,kx,xx,Sx,Cx];function jx(e){return typeof e==`bigint`||Number.isInteger(e)}var Mx=({value:e})=>JSON.stringify(e),Nx=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:Mx},{identify:e=>e==null,createNode:()=>new Cb(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:Mx},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true|false$/,resolve:e=>e===`true`,stringify:Mx},{identify:jx,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>jx(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:Mx}],Px=[px,gx].concat(Nx,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}}),Fx={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof Buffer==`function`)return Buffer.from(e,`base64`);if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}else return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){let o=n,s;if(typeof Buffer==`function`)s=o instanceof Buffer?o.toString(`base64`):Buffer.from(o.buffer).toString(`base64`);else if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t||=Cb.BLOCK_LITERAL,t!==Cb.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===Cb.BLOCK_LITERAL?`
|
|
154
|
+
`:` `)}return qb({comment:e,type:t,value:s},r,i,a)}};function Ix(e,t){if(Xy(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!Jy(r)){if(qy(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new ox(new Cb(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=Jy(r)?r:new ox(r)}}else t(`Expected a sequence for this tag`);return e}function Lx(e,t,n){let{replacer:r}=n,i=new mx(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e))if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`);else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(ax(o,s,n))}return i}var Rx={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:Ix,createNode:Lx},zx=class e extends mx{constructor(){super(),this.add=fx.prototype.add.bind(this),this.delete=fx.prototype.delete.bind(this),this.get=fx.prototype.get.bind(this),this.has=fx.prototype.has.bind(this),this.set=fx.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(Jy(e)?(r=vb(e.key,``,t),i=vb(e.value,r,t)):r=vb(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=Lx(e,t,n),i=new this;return i.items=r.items,i}};zx.tag=`tag:yaml.org,2002:omap`;var Bx={collection:`seq`,identify:e=>e instanceof Map,nodeClass:zx,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=Ix(e,t),r=[];for(let{key:e}of n.items)Yy(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new zx,n)},createNode:(e,t,n)=>zx.from(e,t,n)};function Vx({value:e,source:t},n){return t&&(e?Hx:Ux).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var Hx={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Cb(!0),stringify:Vx},Ux={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Cb(!1),stringify:Vx},Wx={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:bx},Gx={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():bx(e)}},Kx={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new Cb(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:bx},qx=e=>typeof e==`bigint`||Number.isInteger(e);function Jx(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function Yx(e,t,n){let{value:r}=e;if(qx(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return bx(e)}var Xx={identify:qx,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>Jx(e,2,2,n),stringify:e=>Yx(e,2,`0b`)},Zx={identify:qx,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>Jx(e,1,8,n),stringify:e=>Yx(e,8,`0`)},Qx={identify:qx,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>Jx(e,0,10,n),stringify:bx},$x={identify:qx,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>Jx(e,2,16,n),stringify:e=>Yx(e,16,`0x`)},eS=class e extends fx{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=Jy(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new ox(e.key,null):new ox(e,null),dx(this.items,t.key)||this.items.push(t)}get(e,t){let n=dx(this.items,e);return!t&&Jy(n)?Yy(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=dx(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new ox(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(ax(e,null,n));return i}};eS.tag=`tag:yaml.org,2002:set`;var tS={collection:`map`,identify:e=>e instanceof Set,nodeClass:eS,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>eS.from(e,t,n),resolve(e,t){if(qy(e)){if(e.hasAllNullValues(!0))return Object.assign(new eS,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}};function nS(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function rS(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return bx(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var iS={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>nS(e,n),stringify:rS},aS={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>nS(e,!1),stringify:rS},oS={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(oS.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=nS(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,``)},sS=[px,gx,_x,vx,Hx,Ux,Xx,Zx,Qx,$x,Wx,Gx,Kx,Fx,Bx,Rx,tS,iS,aS,oS],cS=new Map([[`core`,Ax],[`failsafe`,[px,gx,_x]],[`json`,Px],[`yaml11`,sS],[`yaml-1.1`,sS]]),lS={binary:Fx,bool:yx,float:Cx,floatExp:Sx,floatNaN:xx,floatTime:aS,int:Ox,intHex:kx,intOct:Dx,intTime:iS,map:px,null:vx,omap:Bx,pairs:Rx,seq:gx,set:tS,timestamp:oS},uS={"tag:yaml.org,2002:binary":Fx,"tag:yaml.org,2002:omap":Bx,"tag:yaml.org,2002:pairs":Rx,"tag:yaml.org,2002:set":tS,"tag:yaml.org,2002:timestamp":oS};function dS(e,t){let n=cS.get(t);if(!n)if(Array.isArray(e))n=[];else{let e=Array.from(cS.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}if(Array.isArray(e))for(let t of e)n=n.concat(t);else typeof e==`function`&&(n=e(n.slice()));return n.map(e=>{if(typeof e!=`string`)return e;let t=lS[e];if(t)return t;let n=Object.keys(lS).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag "${e}"; use one of ${n}`)})}var fS=(e,t)=>e.key<t.key?-1:+(e.key>t.key),pS=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?dS(e,`compat`):e?dS(null,e):null,this.merge=!!n,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?uS:{},this.tags=dS(t,this.name),this.toStringOptions=o??null,Object.defineProperty(this,By,{value:px}),Object.defineProperty(this,Hy,{value:_x}),Object.defineProperty(this,Uy,{value:gx}),this.sortMapEntries=typeof a==`function`?a:a===!0?fS:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function mS(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=Jb(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(jb(t,``))}let o=!1,s=null;if(e.contents){if(Qy(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(jb(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=Zb(e.contents,i,()=>s=null,t);s&&(c+=Mb(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(Zb(e.contents,i));if(e.directives?.docEnd)if(e.comment){let t=a(e.comment);t.includes(`
|
|
155
|
+
`)?(n.push(`...`),n.push(jb(t,``))):n.push(`... ${t}`)}else n.push(`...`);else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(jb(a(t),``)))}return n.join(`
|
|
156
156
|
`)+`
|
|
157
|
-
`}var
|
|
158
|
-
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t&&t.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function
|
|
159
|
-
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(
|
|
160
|
-
`+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||
|
|
161
|
-
`+_.comment:g.comment=_.comment);let e=new
|
|
162
|
-
`+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&
|
|
163
|
-
`+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],
|
|
164
|
-
`+_.comment:g.comment=_.comment);let y=new
|
|
165
|
-
`+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function
|
|
157
|
+
`}var hS=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Wy,{value:zy});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new fb({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[Wy]:{value:zy}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Qy(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){gS(this.contents)&&this.contents.add(e)}addIn(e,t){gS(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=mb(this);e.anchor=!t||n.has(t)?hb(t||`a`,n):t}return new bb(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=gb(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=Eb(e,l,p);return o&&Zy(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){return new ox(this.createNode(e,null,n),this.createNode(t,null,n))}delete(e){return gS(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Ob(e)?this.contents==null?!1:(this.contents=null,!0):gS(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Zy(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Ob(e)?!t&&Yy(this.contents)?this.contents.value:this.contents:Zy(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Zy(this.contents)?this.contents.has(e):!1}hasIn(e){return Ob(e)?this.contents!==void 0:Zy(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Db(this.schema,[e],t):gS(this.contents)&&this.contents.set(e,t)}setIn(e,t){Ob(e)?this.contents=t:this.contents==null?this.contents=Db(this.schema,Array.from(e),t):gS(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new fb({version:`1.1`}),n={merge:!0,resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new fb({version:e}),n={merge:!1,resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new pS(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=vb(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?_b(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return mS(this,e)}};function gS(e){if(Zy(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var _S=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},vS=class extends _S{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},yS=class extends _S{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},bS=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
|
|
158
|
+
`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t&&t.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}};function xS(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:c=!0:f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x===null&&(x=i.offset),l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x===null&&(x=i.offset),l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}function SS(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
|
|
159
|
+
`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(SS(t.key)||SS(t.value))return!0}return!1;default:return!0}}function CS(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&SS(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}function wS(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(t,n)=>t===n||Yy(t)&&Yy(n)&&t.value===n.value&&!(t.value===`<<`&&e.schema.merge);return t.some(e=>i(e.key,n))}var TS=`All mapping items must start at the same column`;function ES({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??fx)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=xS(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,TS)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
|
|
160
|
+
`+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||SS(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,TS);let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&CS(r.indent,u,i),wS(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=xS(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&CS(r.indent,f,i),s=c.range[2];let l=new ox(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
|
|
161
|
+
`+_.comment:g.comment=_.comment);let e=new ox(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}function DS({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??mx)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=xS(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found)if(u.anchor||u.tag||l)l&&l.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&CS(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}function OS(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var kS=`Block collections are not allowed within flow collections`,AS=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function jS({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new((a?.nodeClass)??(o?fx:mx))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1);let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=xS(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
|
|
162
|
+
`+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&SS(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];Jy(t)&&(t=t.value??t.key),t.comment?t.comment+=`
|
|
163
|
+
`+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],AS(m)&&i(r.range,`BLOCK_IN_FLOW`,kS)}else{let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);AS(f)&&i(g.range,`BLOCK_IN_FLOW`,kS);let _=xS(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source&&m.source[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?AS(m)&&i(v.range,`BLOCK_IN_FLOW`,kS):_.comment&&(g.comment?g.comment+=`
|
|
164
|
+
`+_.comment:g.comment=_.comment);let y=new ox(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;wS(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new fx(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f&&f.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=OS(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
|
|
165
|
+
`+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}function MS(e,t,n,r,i,a){let o=n.type===`block-map`?ES(e,t,n,r,a):n.type===`block-seq`?DS(e,t,n,r,a):jS(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function NS(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===fx.tagName&&s===`map`||o===mx.tagName&&s===`seq`)return MS(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r&&r.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?.collection?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),MS(e,t,n,i,o)}let l=MS(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=Qy(u)?u:new Cb(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function PS(e,t,n){let r=t.offset,i=FS(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?Cb.BLOCK_FOLDED:Cb.BLOCK_LITERAL,o=t.source?IS(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
|
|
166
166
|
`.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
|
|
167
|
-
`;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===
|
|
167
|
+
`;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===Cb.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
|
|
168
168
|
`):t.length>c||r[0]===` `?(f===` `?f=`
|
|
169
169
|
`:!p&&f===`
|
|
170
170
|
`&&(f=`
|
|
@@ -177,51 +177,51 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
177
177
|
`+o[e][0].slice(c);d[d.length-1]!==`
|
|
178
178
|
`&&(d+=`
|
|
179
179
|
`);break;default:d+=`
|
|
180
|
-
`}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function
|
|
180
|
+
`}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function FS({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function IS(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}function LS(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=Cb.PLAIN,c=RS(a,l);break;case`single-quoted-scalar`:s=Cb.QUOTE_SINGLE,c=zS(a,l);break;case`double-quoted-scalar`:s=Cb.QUOTE_DOUBLE,c=VS(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=OS(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function RS(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`;break}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),BS(e)}function zS(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),BS(e.slice(1,-1)).replace(/''/g,`'`)}function BS(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
181
181
|
`,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
182
182
|
`,`sy`)}catch{t=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=t.exec(e);if(!r)return e;let i=r[1],a=` `,o=t.lastIndex;for(n.lastIndex=o;r=n.exec(e);)r[1]===``?a===`
|
|
183
183
|
`?i+=a:a=`
|
|
184
|
-
`:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function
|
|
184
|
+
`:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function VS(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(!(i===`\r`&&e[r+1]===`
|
|
185
185
|
`))if(i===`
|
|
186
|
-
`){let{fold:t,offset:i}=
|
|
186
|
+
`){let{fold:t,offset:i}=HS(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=US[i];if(a)n+=a;else if(i===`
|
|
187
187
|
`)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
|
|
188
|
-
`)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a={x:2,u:4,U:8}[i];n+=
|
|
188
|
+
`)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a={x:2,u:4,U:8}[i];n+=WS(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
|
|
189
189
|
`&&!(a===`\r`&&e[r+2]===`
|
|
190
|
-
`)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function
|
|
190
|
+
`)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function HS(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
|
|
191
191
|
`||r===`\r`)&&!(r===`\r`&&e[t+2]!==`
|
|
192
192
|
`);)r===`
|
|
193
193
|
`&&(n+=`
|
|
194
|
-
`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var
|
|
195
|
-
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function
|
|
194
|
+
`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}var US={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
|
|
195
|
+
`,r:`\r`,t:` `,v:`\v`,N:`
`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function WS(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;if(isNaN(a)){let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}return String.fromCodePoint(a)}function GS(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?PS(e,t,r):LS(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l=n&&c?KS(e.schema,i,c,n,r):t.type===`scalar`?qS(e,i,t,r):e.schema[Hy],u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=Yy(a)?a:new Cb(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new Cb(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function KS(e,t,n,r,i){if(n===`!`)return e[Hy];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n)if(t.default&&t.test)a.push(t);else return t;for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[Hy])}function qS({directives:e,schema:t},n,r,i){let a=t.tags.find(e=>e.default&&e.test?.test(n))||t[Hy];if(t.compat){let o=t.compat.find(e=>e.default&&e.test?.test(n))??t[Hy];a.tag!==o.tag&&i(r,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${e.tagString(a.tag)} or ${e.tagString(o.tag)}`,!0)}return a}function JS(e,t,n){if(t){n===null&&(n=t.length);for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var YS={composeNode:XS,composeEmptyNode:ZS};function XS(e,t,n,r){let{spaceBefore:i,comment:a,anchor:o,tag:s}=n,c,l=!0;switch(t.type){case`alias`:c=QS(e,t,r),(o||s)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:c=GS(e,t,s,r),o&&(c.anchor=o.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:c=NS(YS,e,t,n,r),o&&(c.anchor=o.source.substring(1));break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),c=ZS(e,t.offset,void 0,null,n,r),l=!1}return o&&c.anchor===``&&r(o,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&(c.spaceBefore=!0),a&&(t.type===`scalar`&&t.source===``?c.comment=a:c.commentBefore=a),e.options.keepSourceTokens&&l&&(c.srcToken=t),c}function ZS(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=GS(e,{type:`scalar`,offset:JS(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function QS({options:e},{offset:t,source:n,end:r},i){let a=new bb(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=OS(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}function $S(e,t,{offset:n,start:r,value:i,end:a},o){let s=new hS(void 0,Object.assign({_directives:t},e)),c={atRoot:!0,directives:s.directives,options:s.options,schema:s.schema},l=xS(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});l.found&&(s.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!l.hasNewline&&o(l.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),s.contents=i?XS(c,i,l,o):ZS(c,l.end,r,null,l,o);let u=s.contents.range[2],d=OS(a,u,!1,o);return d.comment&&(s.comment=d.comment),s.range=[n,u,d.offset],s}function eC(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function tC(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
|
|
196
196
|
|
|
197
197
|
`:`
|
|
198
|
-
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var
|
|
198
|
+
`)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var nC=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=eC(e);r?this.warnings.push(new yS(i,t,n)):this.errors.push(new vS(i,t,n))},this.directives=new fb({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=tC(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(Zy(i)&&!i.flow&&i.items.length>0){let e=i.items[0];Jy(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:tC(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=eC(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=$S(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new vS(eC(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new vS(eC(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=OS(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new vS(eC(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=new hS(void 0,Object.assign({_directives:this.directives},this.options));this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),e.range=[0,t,t],this.decorate(e,!1),yield e}}},rC=Symbol(`break visit`),iC=Symbol(`skip children`),aC=Symbol(`remove item`);function oC(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),sC(Object.freeze([]),e,t)}oC.BREAK=rC,oC.SKIP=iC,oC.REMOVE=aC,oC.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},oC.parentCollection=(e,t)=>{let n=oC.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)};function sC(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=sC(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===rC)return rC;else r===aC&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}function cC(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
|
|
199
199
|
`:case`\r
|
|
200
|
-
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function
|
|
201
|
-
`:case`\r`:case` `:return!0;default:return!1}}var
|
|
202
|
-
\r `),
|
|
200
|
+
`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}function lC(e){switch(e){case void 0:case` `:case`
|
|
201
|
+
`:case`\r`:case` `:return!0;default:return!1}}var uC=new Set(`0123456789ABCDEFabcdef`),dC=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),fC=new Set(`,[]{}`),pC=new Set(` ,[]{}
|
|
202
|
+
\r `),mC=e=>!e||pC.has(e),hC=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
|
|
203
203
|
`?!0:t===`\r`?this.buffer[e+1]===`
|
|
204
204
|
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
|
|
205
205
|
`||!t&&!this.atEnd)return e+n+1}return t===`
|
|
206
|
-
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&
|
|
207
|
-
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}else n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&
|
|
206
|
+
`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&lC(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
207
|
+
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}else n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&lC(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!lC(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&lC(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,yield*this.parseBlockStart()}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(mC),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&lC(r[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(r[0]===`]`||r[0]===`}`)))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(mC),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||lC(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
|
|
208
208
|
`,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
|
|
209
|
-
`,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>
|
|
209
|
+
`,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>lC(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
|
|
210
210
|
`:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
|
|
211
211
|
`)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
|
|
212
212
|
`,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
|
|
213
213
|
`;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
|
|
214
|
-
`&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(
|
|
214
|
+
`&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(lC(r)||e&&fC.has(r))break;t=n}else if(lC(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
|
|
215
215
|
`?(n+=1,r=`
|
|
216
|
-
`,i=this.buffer[n+1]):t=n),i===`#`||e&&
|
|
217
|
-
`){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&
|
|
216
|
+
`,i=this.buffer[n+1]):t=n),i===`#`||e&&fC.has(i))break;if(r===`
|
|
217
|
+
`){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&fC.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){switch(this.charAt(0)){case`!`:return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case`&`:return(yield*this.pushUntil(mC))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case`-`:case`?`:case`:`:{let e=this.flowLevel>0,t=this.charAt(1);if(lC(t)||e&&fC.has(t))return e?this.flowKey&&=!1:this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!lC(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(dC.has(t))t=this.buffer[++e];else if(t===`%`&&uC.has(this.buffer[e+1])&&uC.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
218
218
|
`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
|
|
219
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},
|
|
219
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}},gC=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}};function _C(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function vC(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function yC(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function bC(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function xC(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function SC(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!_C(t.start,`explicit-key-ind`)&&!_C(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,yC(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep)}var CC=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new hC,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=cC(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&(!e||e.type!==`doc-end`)){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&SC(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&vC(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:vC(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=xC(bC(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
|
|
220
220
|
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
221
|
-
`,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(
|
|
221
|
+
`,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(_C(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=xC(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(_C(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(yC(t.key)&&!_C(t.sep,`newline`)){let e=xC(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):_C(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let t=this.startBlockValue(e);if(t){n&&t.type!==`block-seq`&&e.items.push({start:i}),this.stack.push(t);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Array.prototype.push.apply(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||_C(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e&&e.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=xC(bC(t));SC(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
|
|
222
222
|
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
|
223
|
-
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=
|
|
224
|
-
`)}\n---\n`+e.slice(r.length)}var OC=e=>e.normalize(`NFC`).normalize(`NFD`).replace(/[̀-ͯ]/g,``).toLowerCase();function kC(e,t){let n=OC(t);if(!n)return[];let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),i=[];for(;r.nextNode();)i.push(r.currentNode);let a=0;i.forEach(e=>{let t=(e.textContent||``).normalize(`NFC`),r=OC(t);if(!r.includes(n))return;let i=``,o=0;for(;o<=r.length;){let e=r.indexOf(n,o);if(e===-1){i+=t.slice(o);break}i+=t.slice(o,e),i+=`<mark id="match-${a++}">${t.slice(e,e+n.length)}</mark>`,o=e+n.length}let s=document.createElement(`span`);s.innerHTML=i,e.parentNode?.replaceChild(s,e)});let o=[];return e.querySelectorAll(`mark[id^='match-']`).forEach(e=>{let r=((e.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre`)||e.parentElement).textContent||``).trim(),i=OC(r).indexOf(n),a=Math.max(0,i-40),s=Math.min(r.length,i+t.length+40),c=(a>0?`…`:``)+r.slice(a,s)+(s<r.length?`…`:``);o.push({id:e.id,snippet:c})}),o}function AC(e){let t=document.getElementById(e),n=document.getElementById(`home-content-area`);if(!t||!n)return;let r=t.parentElement;for(;r&&r!==n;)r.tagName===`DETAILS`&&!r.open&&(r.open=!0),r=r.parentElement;document.querySelectorAll(`mark.match-active`).forEach(e=>{e.classList.remove(`match-active`)}),t.classList.add(`match-active`);let i=document.querySelector(`#home-doc-view header`),a=i?i.getBoundingClientRect().height:0,o=t.getBoundingClientRect().top,s=n.getBoundingClientRect().top,c=a+(n.clientHeight-a)/3;n.scrollTop+=o-s-c}var jC=U(`<span class="inline-block text-xs font-semibold px-2.5 py-0.5 rounded-full bg-violet-100 text-violet-700 dark:bg-violet-900/40 dark:text-violet-300"> </span>`),MC=U(`<span class="text-xs text-gray-400 dark:text-gray-500"> </span>`),NC=U(`<button type="button" data-testid="copy-doc-id-btn"><i aria-hidden="true"></i></button>`),PC=U(`<span class="inline-block text-[11px] px-2 py-0.5 rounded-full bg-gray-100 dark:bg-gray-800 text-gray-500 dark:text-gray-400 border border-gray-200 dark:border-gray-700"> </span>`),FC=U(`<div class="mt-1.5 flex items-center gap-1.5 flex-wrap" data-testid="doc-tags"></div>`),IC=U(`<span> </span>`),LC=U(`<div data-testid="edit-actions" class="flex items-center gap-2"><!> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div>`),RC=U(`<button data-testid="validate-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-green-700 bg-green-600 text-white font-semibold hover:bg-green-700 transition-colors"><i class="fa-solid fa-check" style="margin-right:4px"></i> </button>`),zC=U(`<button data-testid="tts-toggle" class="no-print text-sm px-3 py-1.5 rounded-lg border border-blue-300 dark:border-blue-700 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 hover:bg-blue-100 dark:hover:bg-blue-900/50 transition-colors"><i></i></button> <button data-testid="tts-stop" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-stop"></i></button>`,1),BC=U(`<button data-testid="tts-play" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-headphones" style="margin-right:4px"></i> </button>`),VC=Hr(`<g><line x1="8" y1="8" x2="92" y2="92" stroke="currentColor" stroke-width="8" stroke-linecap="round"></line><line x1="92" y1="8" x2="8" y2="92" stroke="currentColor" stroke-width="8" stroke-linecap="round"></line></g>`),HC=U(`<button data-testid="versions-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-code-branch"></i> </button>`),UC=U(`<!> <button data-testid="marker-doc-btn"><svg width="18" height="18" viewBox="0 0 100 100" fill="none" style="display:inline-block;vertical-align:middle;margin-right:4px"><rect x="28" y="10" width="44" height="52" rx="6" transform="rotate(40 50 50)" stroke="currentColor" stroke-width="6"></rect><rect x="52" y="8" width="22" height="30" rx="6" transform="rotate(40 50 50)" stroke="currentColor" stroke-width="6"></rect><polygon points="28,60 10,80 30,80 38,72" stroke="currentColor" stroke-width="5" stroke-linejoin="round"></polygon><polygon points="28,48 19,70 36,75 55,70" stroke="currentColor" stroke-width="5" stroke-linejoin="round"></polygon><line x1="10" y1="90" x2="72" y2="90" stroke="currentColor" stroke-width="6" stroke-linecap="round"></line><!></svg> </button> <button data-testid="export-pdf-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"> </button> <button data-testid="metadata-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-code-compare"></i> </button> <!> <button data-testid="edit-doc-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-file-pen"></i> </button>`,1),WC=U(`<button data-testid="kanban-edit-columns" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-gear"></i> </button>`),GC=U(`<button data-testid="toc-toggle-btn"><i class="fa-solid fa-list-ul"></i></button>`),KC=U(`<div data-testid="view-actions" class="flex items-center gap-2"><button data-testid="favorite-doc-btn"><i style="margin-right:4px"></i> </button> <!> <!> <!> <button data-testid="delete-doc-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-red-200 dark:border-red-700 text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/40 transition-colors"><i class="fa-solid fa-trash"></i> </button> <!></div>`),qC=U(`<span class="text-gray-300 dark:text-gray-600 mx-1">·</span>`),JC=U(`<!> <button class="text-blue-600 dark:text-blue-400 hover:underline"> </button>`,1),YC=U(`<div class="no-print mt-2 flex flex-wrap gap-1 text-xs"></div>`),XC=U(`<li><button class="w-full text-left px-3 py-1.5 hover:bg-yellow-100 dark:hover:bg-yellow-900/30 transition-colors"><span class="text-yellow-600 dark:text-yellow-500 font-mono text-xs mr-2"> </span><span class="text-xs"> </span></button></li>`),ZC=U(`<div class="mt-4 rounded-lg bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 text-sm text-yellow-800 dark:text-yellow-300 overflow-hidden"><div class="px-3 py-2 font-medium border-b border-yellow-200 dark:border-yellow-800"> </div> <ol class="max-h-40 overflow-y-auto divide-y divide-yellow-100 dark:divide-yellow-900/40 list-none m-0 p-0"></ol></div>`),QC=U(`<div data-testid="tts-error" class="mt-4 rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-800 dark:bg-red-900/20 dark:text-red-300"> </div>`),$C=U(`<div class="hidden no-print"></div>`),ew=U(`<li class="m-0 p-0"><button type="button" class="block w-full text-left bg-transparent border-0 cursor-pointer text-xs text-gray-500 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 hover:underline py-0.5 leading-snug transition-colors truncate"> </button></li>`),tw=U(`<div></div> <aside class="no-print shrink-0 sticky self-start overflow-y-auto py-8 pr-4 pl-3 ld-toc-aside"><p class="text-xs font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500 mb-3"> </p> <nav><ul class="space-y-1 list-none m-0 p-0"></ul></nav></aside>`,1),nw=U(`<div data-testid="tts-language-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4"><div class="w-full max-w-sm rounded-xl border border-gray-200 bg-white p-5 shadow-2xl dark:border-gray-700 dark:bg-gray-900"><h2 class="text-base font-semibold text-gray-900 dark:text-gray-50"> </h2> <p class="mt-2 text-sm text-gray-600 dark:text-gray-300"> </p> <div class="mt-4 grid grid-cols-2 gap-2"><button type="button" data-testid="tts-language-en" class="rounded-lg border border-gray-200 px-3 py-2 text-sm font-semibold text-gray-700 transition-colors hover:bg-gray-50 disabled:opacity-50 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800"> </button> <button type="button" data-testid="tts-language-fr" class="rounded-lg border border-gray-200 px-3 py-2 text-sm font-semibold text-gray-700 transition-colors hover:bg-gray-50 disabled:opacity-50 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800"> </button></div> <div class="mt-3 flex justify-end"><button type="button" class="rounded-lg border border-gray-200 px-3 py-1.5 text-sm text-gray-600 transition-colors hover:bg-gray-50 disabled:opacity-50 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-gray-800"> </button></div></div></div>`),rw=U(`<div class="fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4"><div class="w-full max-w-sm bg-white dark:bg-gray-900 border border-red-200 dark:border-red-700 rounded-xl shadow-2xl p-5 flex flex-col gap-3"><p class="text-sm text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-500 dark:text-gray-400 italic truncate"> </p> <div class="flex justify-end gap-2 mt-2"><button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-red-500 hover:bg-red-600 text-white font-semibold transition-colors"> </button></div></div></div>`),iw=U(`<header id="home-doc-header" class="sticky top-0 z-10 bg-gray-50 dark:bg-gray-950 px-6 pt-8 pb-6 border-b border-gray-300 dark:border-gray-800"><div class="flex items-start gap-4 flex-wrap"><div class="shrink min-w-0"><div class="flex items-center gap-2 flex-wrap"><span class="flex items-center gap-2 flex-wrap"><!> <span class="inline-block text-xs font-semibold px-2.5 py-0.5 rounded-full bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"> </span></span> <!> <h1 data-testid="doc-title" class="min-w-0 text-xs font-normal text-gray-900 dark:text-gray-50 leading-tight"> </h1> <!></div> <!></div> <div class="flex items-center gap-2 flex-wrap ml-auto"><!></div></div> <!> <!> <!> <!> <!></header> <div class="flex min-h-full items-start"><article id="home-doc-view" data-testid="doc-view" class="flex-1 min-w-0 px-6 pt-8 pb-8"><!></article> <!></div> <!> <!> <!> <!> <!> <!>`,1);function aw(e,t){qe(t,!0);let n=/<div\s+data-ld-kanban\b/i,r=Wi(t,`navHistory`,19,()=>[]),i=P(null),a=P(null),o=P(null),s=P(null),c=P(!1),l=P(!1),u=P(!1),d=P(null),f=P(I([])),p=``,m=N(()=>V(f).length?Y(V(f).length===1?`search.notice_singular`:`search.notice_plural`).replace(`{count}`,String(V(f).length)).replace(`{query}`,X.searchQuery):``),h=N(()=>Dv(t.doc.content)),g=N(()=>n.test(t.doc.content)),_=N(()=>Wo.has(t.doc.id)),v=N(()=>(V(h)||``).toUpperCase()===`TO BE VALIDATED`),y=P(!1),b=P(null),x=P(!1),S=P(!1),C=P(!1),w=P(!1),T=P(!1);async function E(){try{let e=await(await fetch(`/api/git/status`)).json();F(u,e.mode===`enabled`&&e.ok===!0,!0)}catch{F(u,!1)}}kn(()=>{if(t.doc.id,V(g),V(g)){F(u,!1);return}E()}),kn(()=>{V(g)&&V(y)&&(F(y,!1),F(b,null))});function D(e,t){let n=document.getElementById(`home-content-area`);if(!n)return;let r=document.getElementById(`home-doc-header`),i=r?r.getBoundingClientRect().height:0,a=e.getBoundingClientRect().top-n.getBoundingClientRect().top+n.scrollTop;n.scrollTo({top:Math.max(0,a-i-16),behavior:t?`smooth`:`auto`})}function ee(e){let t=document.getElementById(e);t&&D(t,!1)}function te(e){F(i,e,!0);let n=t.doc.id,r=X.searchQuery;if(V(g)){F(f,[],!0),F(A,[],!0),p=n;return}let a=typeof r==`string`&&r.toLowerCase().startsWith(`metadata://`);F(f,r&&!a?kC(e,r):[],!0),V(d)&&fy(e,V(d),Y),n===p?V(o)?.apply():(p=n,V(o)?.load(n),Cv.load(n)),F(A,Array.from(e.querySelectorAll(`h1,h2,h3,h4,h5,h6`)).map(e=>({id:e.id,text:e.textContent?.trim()??``,level:parseInt(e.tagName[1])})).filter(e=>e.id&&e.text),!0)}function O(){return V(s).show({title:Y(`snippet.inline_delete_title`),message:Y(`snippet.inline_delete_message`),confirmLabel:Y(`snippet.inline_delete_confirm_btn`),cancelLabel:Y(`common.cancel`),danger:!0})}async function k(){let e=1;try{let n=await Cv.load(t.doc.id);n&&typeof n.accuracy==`number`&&(e=n.accuracy)}catch{}let n=Math.round(e*100),r=n<100,i=kv(t.doc.id),a=Y(i?`doc.validate_worklog_message`:`doc.validate_message`),o=r?Y(`doc.validate_detail_low_accuracy`).replace(`{accuracy}`,n+`%`):void 0;if(!await V(s).show({title:Y(`doc.validate_title`),message:a,detail:o,confirmLabel:Y(`doc.validate_confirm`),cancelLabel:Y(`common.cancel`)}))return;let c=Ov(t.doc.content,i?`Done`:`Accepted`);if(c!==t.doc.content)try{await t.onsave(c),r&&await fetch(`/api/metadata/`+encodeURIComponent(t.doc.id)+`/refresh`,{method:`POST`}),await Cv.load(t.doc.id),X.docStatuses={...X.docStatuses,[t.doc.id]:i?`Done`:`Accepted`}}catch(e){F(b,{text:Y(`doc.validate_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`},!0)}}kn(()=>{try{F(x,localStorage.getItem(`ld-full-width`)===`1`)}catch{}});let ne=P(!1),A=P(I([])),re=N(()=>!V(g)&&V(ne)&&V(A).length>0),ie=`ld-toc-w`,ae=P(!1),oe=P(null),se=P(null),ce=P(0);kn(()=>{if(!V(se))return;let e=new ResizeObserver(()=>{F(ce,V(se).offsetHeight,!0)});return e.observe(V(se)),F(ce,V(se).offsetHeight,!0),()=>e.disconnect()});function le(e){if(e.preventDefault(),!V(oe))return;let t=e.clientX,n=V(oe).getBoundingClientRect().width;F(ae,!0),V(oe).style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let r=e=>{let r=Math.max(160,Math.min(400,n-(e.clientX-t)));V(oe).style.width=r+`px`},i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i),document.body.style.cursor=``,document.body.style.userSelect=``,F(ae,!1),V(oe).style.transition=``;try{localStorage.setItem(ie,String(parseInt(V(oe).style.width,10)))}catch{}};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)}kn(()=>{try{F(ne,localStorage.getItem(`ld-toc-open`)===`1`)}catch{}try{let e=parseInt(localStorage.getItem(ie)||``,10);V(oe)&&e>=160&&e<=400&&(V(oe).style.width=e+`px`)}catch{}});function ue(){F(ne,!V(ne));try{localStorage.setItem(`ld-toc-open`,V(ne)?`1`:`0`)}catch{}}function de(e){let t=document.getElementById(e),n=document.getElementById(`home-content-area`);if(!t||!n)return;let r=t.parentElement;for(;r&&r!==n;)r.tagName===`DETAILS`&&(r.open=!0),r=r.parentElement;D(t,!0)}async function fe(){try{await navigator.clipboard.writeText(decodeURIComponent(t.doc.id)),F(C,!0),setTimeout(()=>F(C,!1),1800)}catch{}}function pe(){window.print()}function me(e){V(i)&&Ty.start(V(i),{language:e,codeLabel:Y(`tts.code_label`),imageLabel:Y(`tts.image_label`),diagramLabel:Y(`tts.diagram_label`),tableLabel:Y(`tts.table_label`)})}function he(){let e=EC(t.doc.content);if(!e){F(w,!0);return}me(e)}async function ge(e){F(T,!0);try{let n=DC(t.doc.content,e);n!==t.doc.content&&await t.onsave(n),F(w,!1),me(e)}catch(e){F(b,{text:Y(`tts.language_save_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`},!0)}finally{F(T,!1)}}kn(()=>(t.doc.id,V(y),()=>{F(w,!1),Ty.stop()}));var _e=iw(),ve=R(_e),ye=L(ve),be=L(ye),xe=L(be),Se=L(xe),Ce=L(Se);q(Ce,17,()=>t.doc.folder||[],Xr,(e,t)=>{var n=jC(),r=L(n,!0);j(n),B(e=>{J(n,`title`,V(t)),G(r,e)},[()=>R_(V(t))]),W(e,n)});var we=z(Ce,2),Te=L(we,!0);j(we),j(Se);var Ee=z(Se,2),De=e=>{var n=MC(),r=L(n,!0);j(n),B(()=>G(r,t.doc.formattedDate)),W(e,n)};K(Ee,e=>{t.doc.formattedDate&&e(De)});var Oe=z(Ee,2),ke=L(Oe,!0);j(Oe);var Ae=z(Oe,2),je=e=>{var t=NC(),n=L(t);j(t),B(e=>{J(t,`title`,e),gi(t,1,`no-print inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md border border-gray-200 text-xs text-gray-500 transition-colors hover:bg-gray-50 hover:text-blue-600 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-blue-400 ${V(C)?`text-green-600 dark:text-green-400`:``}`),gi(n,1,`fa-${V(C)?`solid fa-check`:`regular fa-copy`}`)},[()=>Y(`doc.copy_mcp_id`)]),H(`click`,t,fe),W(e,t)};K(Ae,e=>{V(g)||e(je)}),j(xe);var Me=z(xe,2),Ne=e=>{var n=FC();q(n,20,()=>t.doc.tags,e=>e,(e,t)=>{var n=PC(),r=L(n);j(n),B(()=>G(r,`#${t??``}`)),W(e,n)}),j(n),W(e,n)};K(Me,e=>{t.doc.tags&&t.doc.tags.length&&e(Ne)}),j(be);var Pe=z(be,2),Fe=L(Pe),Ie=e=>{var t=LC(),n=L(t),r=e=>{var t=IC(),n=L(t,!0);j(t),B(()=>{gi(t,1,`text-xs ${V(b).cls??``}`),G(n,V(b).text)}),W(e,t)};K(n,e=>{V(b)&&e(r)});var i=z(n,2),o=L(i,!0);j(i);var s=z(i,2),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(t),B((e,t,n,r)=>{G(o,e),J(s,`title`,t),G(c,n),G(u,r)},[()=>Y(`common.cancel`),()=>Y(`doc.snippets`),()=>Y(`doc.snippets_btn`),()=>Y(`common.save`)]),H(`click`,i,()=>V(a).cancelEdit()),H(`click`,s,()=>V(a).openSnippets()),H(`click`,l,()=>V(a).save()),W(e,t)},Le=e=>{let n=N(()=>X.markerActive?`#fef08a`:`#bfdbfe`),r=N(()=>X.markerActive?`#fef08a`:`#93c5fd`),i=N(()=>X.markerActive?`#fde047`:`#93c5fd`);var o=KC(),s=L(o),d=L(s),f=z(d,1,!0);j(s);var p=z(s,2),m=e=>{var t=RC(),n=z(L(t),1,!0);j(t),B((e,r)=>{J(t,`title`,e),G(n,r)},[()=>Y(`doc.validate_mode`),()=>Y(`doc.validate_btn`)]),H(`click`,t,k),W(e,t)};K(p,e=>{V(v)&&!V(g)&&e(m)});var h=z(p,2),y=e=>{var t=UC(),o=R(t),s=e=>{var t=zC(),n=R(t),r=L(n);j(n);var i=z(n,2);B((e,t)=>{J(n,`title`,e),gi(r,1,`fa-solid ${Ty.status===`playing`?`fa-pause`:`fa-play`}`),J(i,`title`,t)},[()=>Ty.status===`playing`?Y(`tts.pause`):Y(`tts.resume`),()=>Y(`tts.stop`)]),H(`click`,n,()=>Ty.toggle()),H(`click`,i,()=>Ty.stop()),W(e,t)},d=e=>{var t=BC(),n=z(L(t),1,!0);j(t),B((e,r)=>{J(t,`title`,e),G(n,r)},[()=>Y(`tts.play`),()=>Y(`tts.play_btn`)]),H(`click`,t,he),W(e,t)};K(o,e=>{Ty.active?e(s):e(d,-1)});var f=z(o,2),p=L(f),m=L(p),h=z(m),g=z(h),_=z(g),v=z(_,2),y=e=>{W(e,VC())};K(v,e=>{X.markerHidden&&e(y)}),j(p);var b=z(p,1,!0);j(f);var x=z(f,2),S=L(x);j(x);var C=z(x,2),w=z(L(C));j(C);var T=z(C,2),E=e=>{var t=HC(),n=z(L(t));j(t),B((e,r)=>{J(t,`title`,e),G(n,` ${r??``}`)},[()=>Y(`versions.button_title`),()=>Y(`versions.button`)]),H(`click`,t,()=>F(l,!0)),W(e,t)};K(T,e=>{V(u)&&e(E)});var D=z(T,2),ee=z(L(D));j(D),B((e,t,a,o,s,c,l,u)=>{J(f,`title`,e),gi(f,1,`no-print text-sm px-3 py-1.5 rounded-lg border transition-colors ${X.markerActive?`border-yellow-400 bg-yellow-100 dark:bg-yellow-900/40 text-yellow-700 dark:text-yellow-300`:`border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700`}`),J(m,`fill`,V(n)),J(h,`fill`,V(r)),J(g,`fill`,V(i)),J(_,`fill`,V(i)),G(b,t),J(x,`title`,a),G(S,`📄 ${o??``}`),J(C,`title`,s),G(w,` ${c??``}`),J(D,`title`,l),G(ee,` ${u??``}`)},[()=>Y(`doc.marker_mode`),()=>Y(`doc.marker_btn`),()=>Y(`doc.export_pdf`),()=>Y(`doc.export_pdf_btn`),()=>Y(`metadata.button_title`),()=>Y(`metadata.button`),()=>Y(`doc.edit`),()=>Y(`doc.edit_btn`)]),H(`click`,f,()=>X.toggleMarker()),H(`click`,x,pe),H(`click`,C,()=>F(c,!0)),H(`click`,D,()=>V(a).enterEdit()),W(e,t)};K(h,e=>{V(g)||e(y)});var b=z(h,2),x=e=>{var t=WC(),n=z(L(t));j(t),B((e,r)=>{J(t,`title`,e),G(n,` ${r??``}`)},[()=>Y(`kanban.edit_columns`),()=>Y(`kanban.edit_columns`)]),H(`click`,t,()=>V(a).openKanbanColumnsEditor()),W(e,t)};K(b,e=>{V(g)&&e(x)});var C=z(b,2),w=z(L(C));j(C);var T=z(C,2),E=e=>{var t=GC();B(e=>{J(t,`title`,e),gi(t,1,`no-print text-sm px-3 py-1.5 rounded-lg border transition-colors ${V(ne)?`border-blue-400 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400`:`border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700`}`)},[()=>Y(`doc.toc_toggle`)]),H(`click`,t,ue),W(e,t)};K(T,e=>{V(g)||e(E)}),j(o),B((e,t,n,r)=>{J(s,`aria-pressed`,V(_)),J(s,`title`,e),gi(s,1,`no-print text-sm px-3 py-1.5 rounded-lg border transition-colors ${V(_)?`border-amber-300 bg-amber-50 dark:bg-amber-900/30 text-amber-600 dark:text-amber-400`:`border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700`}`),gi(d,1,`fa-${V(_)?`solid`:`regular`} fa-star`),G(f,t),J(C,`title`,n),G(w,` ${r??``}`)},[()=>V(_)?Y(`favorites.remove`):Y(`favorites.add`),()=>Y(`favorites.button`),()=>Y(`doc.delete`),()=>Y(`doc.delete_btn`)]),H(`click`,s,()=>Wo.toggle({id:t.doc.id,title:t.doc.title})),H(`click`,C,()=>F(S,!0)),W(e,o)};K(Fe,e=>{V(y)?e(Ie):e(Le,-1)}),j(Pe),j(ye);var Re=z(ye,2),ze=e=>{Tv(e,{onopen:()=>F(c,!0)})};K(Re,e=>{!V(y)&&!V(g)&&e(ze)});var Be=z(Re,2),Ve=e=>{var n=YC();q(n,21,r,Xr,(e,n,r)=>{var i=JC(),a=R(i),o=e=>{W(e,qC())};K(a,e=>{r>0&&e(o)});var s=z(a,2),c=L(s);j(s),B(()=>G(c,`← ${V(n).title??``}`)),H(`click`,s,()=>t.ongoback?.(r)),W(e,i)}),j(n),W(e,n)};K(Be,e=>{!V(y)&&r().length&&e(Ve)});var He=z(Be,2),Ue=e=>{var t=ZC(),n=L(t),r=L(n,!0);j(n);var i=z(n,2);q(i,23,()=>V(f),e=>e.id,(e,t,n)=>{var r=XC(),i=L(r),a=L(i),o=L(a);j(a);var s=z(a),c=L(s,!0);j(s),j(i),j(r),B(()=>{G(o,`${V(n)+1}.`),G(c,V(t).snippet)}),H(`click`,i,()=>AC(V(t).id)),W(e,r)}),j(i),j(t),B(()=>G(r,V(m))),W(e,t)};K(He,e=>{!V(y)&&!V(g)&&V(f).length&&X.searchQuery&&e(Ue)});var We=z(He,2),Ge=e=>{var t=QC(),n=L(t,!0);j(t),B(()=>G(n,Ty.error)),W(e,t)};K(We,e=>{!V(y)&&!V(g)&&Ty.error&&e(Ge)});var Ke=z(We,2),Ye=e=>{var t=$C();Vi(t,e=>F(d,e),()=>V(d)),W(e,t)};K(Ke,e=>{V(g)||e(Ye)}),j(ve),Vi(ve,e=>F(se,e),()=>V(se));var Xe=z(ve,2),Ze=L(Xe);Vi(Rf(L(Ze),{get docId(){return t.doc.id},get content(){return t.doc.content},get html(){return t.doc.html},get onsave(){return t.onsave},get onopen(){return t.onopen},onanchor:ee,onconfirmdelete:O,oncontentwired:te,get rewireSignal(){return X.searchQuery},get editing(){return V(y)},set editing(e){F(y,e,!0)},get saveMsg(){return V(b)},set saveMsg(e){F(b,e,!0)}}),e=>F(a,e,!0),()=>V(a)),j(Ze);var Qe=z(Ze,2),$e=e=>{var t=tw(),n=R(t),r=z(n,2),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o);q(s,21,()=>V(A),Xr,(e,t)=>{var n=ew(),r=L(n),i=L(r,!0);j(r),j(n),B(()=>{vi(n,`padding-left: ${(V(t).level-1)*.75}rem`),J(r,`title`,V(t).text),G(i,V(t).text)}),H(`click`,r,()=>de(V(t).id)),W(e,n)}),j(s),j(o),j(r),Vi(r,e=>F(oe,e),()=>V(oe)),B(e=>{gi(n,1,`no-print w-1 shrink-0 self-stretch cursor-col-resize select-none transition-colors ${V(ae)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),vi(r,`width: 224px; top: ${V(ce)??``}px; min-height: calc(100vh - ${V(ce)??``}px); max-height: calc(100vh - ${V(ce)??``}px)`),G(a,e)},[()=>Y(`doc.toc_title`)]),H(`mousedown`,n,le),W(e,t)};K(Qe,e=>{V(re)&&e($e)}),j(Xe);var et=z(Xe,2),tt=e=>{Vi(_v(e,{get contentEl(){return V(i)},get docId(){return t.doc.id}}),e=>F(o,e,!0),()=>V(o))};K(et,e=>{V(g)||e(tt)});var nt=z(et,2);Kv(nt,{get open(){return V(c)},get docId(){return t.doc.id},get content(){return t.doc.content},onclose:()=>F(c,!1)});var rt=z(nt,2);ay(rt,{get open(){return V(l)},get docId(){return t.doc.id},get content(){return t.doc.content},get onsave(){return t.onsave},onclose:()=>F(l,!1)});var it=z(rt,2);Vi(Ua(it,{}),e=>F(s,e,!0),()=>V(s));var at=z(it,2),ot=e=>{var t=nw(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=L(s),l=L(c,!0);j(c);var u=z(c,2),d=L(u,!0);j(u),j(s);var f=z(s,2),p=L(f),m=L(p,!0);j(p),j(f),j(n),j(t),B((e,t,n,r,a)=>{G(i,e),G(o,t),c.disabled=V(T),G(l,n),u.disabled=V(T),G(d,r),p.disabled=V(T),G(m,a)},[()=>Y(`tts.language_title`),()=>Y(`tts.language_message`),()=>Y(`tts.language_en`),()=>Y(`tts.language_fr`),()=>Y(`common.cancel`)]),H(`click`,t,e=>{e.target===e.currentTarget&&!V(T)&&F(w,!1)}),H(`click`,c,()=>ge(`en`)),H(`click`,u,()=>ge(`fr`)),H(`click`,p,()=>F(w,!1)),W(e,t)};K(at,e=>{V(w)&&e(ot)});var st=z(at,2),ct=e=>{var n=rw(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d),j(c),j(r),j(n),B((e,n,r)=>{G(a,e),G(s,t.doc.title),G(u,n),G(f,r)},[()=>Y(`doc.confirm_delete`),()=>Y(`common.cancel`),()=>Y(`doc.confirm_delete_btn`)]),H(`click`,n,e=>{e.target===e.currentTarget&&F(S,!1)}),H(`click`,l,()=>F(S,!1)),H(`click`,d,async()=>{F(S,!1),await t.ondelete()}),W(e,n)};K(st,e=>{V(S)&&e(ct)}),B(()=>{G(Te,t.doc.category),G(ke,t.doc.title)}),W(e,_e),Je()}Pr([`click`,`mousedown`]);var ow=U(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),sw=U(`<p class="px-3 py-3 text-xs text-red-400 text-center"> </p>`),cw=U(`<p class="px-3 py-3 text-xs text-gray-400 text-center"> </p>`),lw=U(`<button class="w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="text-gray-400 shrink-0">📁</span> <span class="truncate text-gray-700 dark:text-gray-300"> </span></button>`),uw=U(`<div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden text-sm"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"> </button> <span class="text-xs text-gray-500 dark:text-gray-400 font-mono truncate flex-1"> </span></div> <div class="max-h-40 overflow-y-auto divide-y divide-gray-100 dark:divide-gray-800"><!></div></div>`),dw=U(`<p class="text-xs text-red-500"> </p>`),fw=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-md mx-4 p-6 space-y-4"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><svg width="16" height="16" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="inline-block mr-1 align-text-bottom"><path d="M2 5a2 2 0 012-2h3.586a1 1 0 01.707.293L9.707 4.707A1 1 0 0010.414 5H16a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V5z" stroke="currentColor" stroke-width="1.5" fill="none"></path><line x1="10" y1="8" x2="10" y2="14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="11" x2="13" y2="11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line></svg> <span> </span></h3> <div class="space-y-1.5"><label for="new-folder-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="new-folder-name" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex items-center gap-2"><span class="flex-1 text-sm text-gray-600 dark:text-gray-300 font-mono truncate"> </span> <button class="text-xs px-2 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0"> </button></div> <!></div> <div class="space-y-1"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <p class="text-xs font-mono text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 truncate"> </p></div> <!> <div class="flex justify-end gap-3 pt-1"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`);function pw(e,t){qe(t,!0);let n=P(``),r=P(null),i=P(null),a=P(``),o=P(``),s=P(`/ (root)`),c=P(!1),l=P(``),u=P(I([])),d=P(!1),f=P(!1),p=P(``),m=P(!1),h=P(null),g=!1;kn(()=>{t.open&&!g?(g=!0,_()):t.open||(g=!1)});async function _(){try{F(n,(await fetch(`/api/config`).then(e=>e.json())).docsFolder||``,!0)}catch{F(n,``)}let e=``;if(X.currentDocId){let t=decodeURIComponent(X.currentDocId);if(!t.startsWith(`/`)){let n=t.split(`/`);n.length>1&&(e=n.slice(0,-1).join(`/`))}}F(a,e?V(n)+`/`+e:V(n),!0),F(r,V(a),!0),F(i,null),F(o,``),F(s,e?`/`+e:`/ (root)`,!0),F(c,!1),F(p,``),F(m,!1),setTimeout(()=>V(h)?.focus(),50)}let v=N(()=>{let e=wa(V(o));if(!e)return Y(`modal.new_folder.enter_name`);let t=V(a)||V(n),r=t.startsWith(V(n))?t.slice(V(n).length).replace(/^\//,``):``;return(r?r+`/`:``)+e});function y(e){let t=e.currentTarget,n=wa(t.value);t.value!==n&&(t.value=n),V(o)!==n&&F(o,n,!0)}function b(){F(c,!V(c)),V(c)&&x(V(r)||V(n))}async function x(e){F(d,!0),F(f,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(r,t.current,!0),F(i,t.parent,!0),F(a,t.current,!0),F(l,t.current,!0),F(s,(t.current.startsWith(V(n)+`/`)?t.current.slice(V(n).length):t.current===V(n)?``:t.current)||`/ (root)`,!0),F(u,t.dirs||[],!0)}catch{F(f,!0),F(u,[],!0)}finally{F(d,!1)}}let S=N(()=>V(r)===V(n));function C(){V(i)&&x(V(i))}async function w(){let e=wa(V(o));if(F(p,``),!e){F(p,Y(`modal.new_folder.error_empty`),!0);return}if(!/^[a-zA-Z0-9_.-]+$/.test(e)){F(p,Y(`modal.new_folder.error_invalid_chars`),!0);return}let r=V(a)||V(n);if(r===V(n)&&(e===`files`||e===`images`)){F(p,Y(`modal.new_folder.error_reserved`),!0);return}let i=r.endsWith(`/`)?r+e:r+`/`+e;F(m,!0);try{let e=await fetch(`/api/browse/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:i})});if(!e.ok)throw Error(await e.text());t.onclose(),t.onsuccess()}catch(e){F(m,!1),F(p,Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)))}}var T=Wr(),E=R(T),D=e=>{var n=fw(),r=L(n),i=L(r),a=z(L(i),2),g=L(a,!0);j(a),j(i);var _=z(i,2),T=L(_),E=L(T,!0);j(T);var D=z(T,2);Di(D),Vi(D,e=>F(h,e),()=>V(h)),j(_);var ee=z(_,2),te=L(ee),O=L(te,!0);j(te);var k=z(te,2),ne=L(k),A=L(ne,!0);j(ne);var re=z(ne,2),ie=L(re,!0);j(re),j(k);var ae=z(k,2),oe=e=>{var t=uw(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n);var s=z(n,2),c=L(s),p=e=>{var t=ow(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},m=e=>{var t=sw(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`modal.new_folder.error_loading`)]),W(e,t)},h=e=>{var t=cw(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`modal.new_folder.no_subfolders`)]),W(e,t)},g=e=>{var t=Wr();q(R(t),17,()=>V(u),e=>e.path,(e,t)=>{var n=lw(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>x(V(t).path)),W(e,n)}),W(e,t)};K(c,e=>{V(d)?e(p):V(f)?e(m,1):V(u).length===0?e(h,2):e(g,-1)}),j(s),j(t),B(e=>{r.disabled=V(S),G(i,e),G(o,V(l))},[()=>Y(`common.up`)]),H(`click`,r,C),W(e,t)};K(ae,e=>{V(c)&&e(oe)}),j(ee);var se=z(ee,2),ce=L(se),le=L(ce,!0);j(ce);var ue=z(ce,2),de=L(ue,!0);j(ue),j(se);var fe=z(se,2),pe=e=>{var t=dw(),n=L(t,!0);j(t),B(()=>G(n,V(p))),W(e,t)};K(fe,e=>{V(p)&&e(pe)});var me=z(fe,2),he=L(me),ge=L(he,!0);j(he);var _e=z(he,2),ve=L(_e,!0);j(_e),j(me),j(r),j(n),B((e,t,n,r,i,a,o,c)=>{G(g,e),G(E,t),J(D,`placeholder`,n),G(O,r),G(A,V(s)),G(ie,i),G(le,a),G(de,V(v)),G(ge,o),_e.disabled=V(m),G(ve,c)},[()=>Y(`modal.new_folder.title`),()=>Y(`modal.new_folder.name_label`),()=>Y(`modal.new_folder.name_placeholder`),()=>Y(`modal.new_folder.location_label`),()=>Y(`modal.new_folder.browse_btn`),()=>Y(`modal.new_folder.will_be_created`),()=>Y(`common.cancel`),()=>V(m)?Y(`modal.new_folder.creating_btn`):Y(`modal.new_folder.create_btn`)]),H(`click`,n,e=>{e.target===e.currentTarget&&t.onclose()}),H(`input`,D,y),Ni(D,()=>V(o),e=>F(o,e)),H(`click`,re,b),H(`click`,he,function(...e){t.onclose?.apply(this,e)}),H(`click`,_e,w),W(e,n)};K(E,e=>{t.open&&e(D)}),W(e,T),Je()}Pr([`click`,`input`]);var mw=U(`<p class="text-sm text-gray-400 py-2"> </p>`),hw=U(`<p class="text-sm text-red-500"> </p>`),gw=U(`<label class="flex items-center gap-3 px-1 py-1.5 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 cursor-pointer"><input type="checkbox" class="w-4 h-4 rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"/> <span class="text-sm text-gray-700 dark:text-gray-300"> </span></label>`),_w=U(`<div><div class="max-h-48 overflow-y-auto space-y-0.5 border border-gray-200 dark:border-gray-700 rounded-lg p-2"><!></div></div>`),vw=U(`<div><p class="text-xs text-gray-500 dark:text-gray-400"> </p> <div class="flex justify-end gap-3 pt-2"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div>`),yw=U(`<div><p class="text-xs text-gray-500 dark:text-gray-400"> </p> <div class="flex justify-end gap-3 pt-2"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg border border-blue-500 text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 font-semibold transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div>`),bw=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-sm mx-4 p-6 space-y-4"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><i class="fa-solid fa-file-export mr-2 text-blue-500"></i> <span> </span></h3> <div class="flex gap-0 border-b border-gray-200 dark:border-gray-700"><button> </button> <button> </button> <button> </button></div> <!> <!> <!> <!></div></div>`);function xw(e,t){qe(t,!0);let n=P(`markdown`),r=!1,i=P(!1),a=P(!1),o=P(I([])),s=P(I({})),c=P(!1),l=P(!1),u=P(!1),d=P(!1),f=!1;kn(()=>{t.open&&!f?(f=!0,F(n,`markdown`),r=!1,F(o,[],!0),F(s,{},!0)):t.open||(f=!1)});function p(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function m(e){F(n,e,!0),e===`html`&&h()}async function h(){if(!r){F(i,!0),F(a,!1);try{let e=await fetch(`/api/documents`).then(e=>e.json()),t=new Set;e.forEach(e=>t.add(e.folder?.[0]??e.category??`General`)),F(o,[...t].sort((e,t)=>e===`General`?-1:t===`General`?1:e.localeCompare(t)),!0),r=!0}catch{F(a,!0)}finally{F(i,!1)}}}async function g(){F(c,!0);try{let e=await fetch(`/api/export/markdown`,{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!e.ok)throw Error(await e.text());let n=await e.blob(),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`export-markdown.zip`,i.click(),URL.revokeObjectURL(r),t.onclose()}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)))}finally{F(c,!1)}}async function _(e){let n=V(o).filter(e=>V(s)[e]);if(n.length){F(e===`confluence`?u:l,!0);try{let r=await fetch(`/api/export/html`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folders:n,mode:e})});if(!r.ok)throw Error(await r.text());let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`export-${e}.zip`,o.click(),URL.revokeObjectURL(a),t.onclose()}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)))}finally{F(u,!1),F(l,!1)}}}async function v(){F(d,!0);try{let e=X.allDocs&&X.allDocs.length?X.allDocs:await fetch(`/api/documents`).then(e=>e.json()),n={};for(let t=0;t<e.length;t+=5){let r=e.slice(t,t+5),i=await Promise.all(r.map(e=>fetch(`/api/documents/`+e.id).then(e=>e.ok?e.json():null).catch(()=>null)));for(let r of i)r&&(n[r.id??e[t]?.id]=r);r.forEach((e,t)=>{i[t]&&(n[e.id]=i[t])})}function r(e){let t={categories:{},children:{}};for(let n of e){let e=t;for(let t of n.folder||[])e.children[t]||(e.children[t]={categories:{},children:{}}),e=e.children[t];e.categories[n.category]||(e.categories[n.category]=[]),e.categories[n.category].push(n)}return t}function i(e){let t=[];e.categories.General&&t.push(...e.categories.General);let n=Object.keys(e.children).sort((e,t)=>e.localeCompare(t));for(let r of n)t.push(...i(e.children[r]));let r=Object.keys(e.categories).filter(e=>e!==`General`).sort((e,t)=>e.localeCompare(t));for(let n of r)t.push(...e.categories[n]);return t}function a(e){return e.replace(/^\d+_/,``).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function o(e,t){let n=``,r=t*1.25,i=(e,i)=>{let a=t===0&&e===`General`?`General`:e;n+=`<li style="margin-left:${r}rem;margin-top:${t===0?`0.75`:`0.4`}rem;">`,n+=`<span style="font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#6b7280;">${a}</span>`,n+=`<ul style="margin:0.2rem 0 0 0;padding:0;list-style:none;">`;for(let e of i)n+=`<li style="margin-left:${r+.75}rem;padding:0.15rem 0;">`,n+=`<a href="#doc-${e.id}" style="color:#1d4ed8;text-decoration:none;font-size:0.875rem;">${p(e.title)}</a>`,e.formattedDate&&(n+=`<span style="color:#9ca3af;font-size:0.7rem;margin-left:0.5rem;">${p(e.formattedDate)}</span>`),n+=`</li>`;n+=`</ul></li>`};e.categories.General&&i(`General`,e.categories.General);let s=Object.keys(e.children).sort((e,t)=>e.localeCompare(t));for(let i of s)n+=`<li style="margin-left:${r}rem;margin-top:0.75rem;">`,n+=`<span style="font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#7c3aed;">📁 ${a(i)}</span>`,n+=`<ul style="margin:0.2rem 0 0 0;padding:0;list-style:none;">`,n+=o(e.children[i],t+1),n+=`</ul></li>`;let c=Object.keys(e.categories).filter(e=>e!==`General`).sort((e,t)=>e.localeCompare(t));for(let t of c)i(t,e.categories[t]);return n}function s(e){return e.replace(/href="[^"]*\?doc=([^"&#]+)(?:#[^"]*)?"/g,(e,t)=>`href="#doc-${t}"`)}let c=p(document.title||`Living Documentation`),l=r(e),u=i(l),d=`<!DOCTYPE html>
|
|
223
|
+
`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=xC(bC(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=xC(bC(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function wC(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new gC||null,prettyErrors:t}}function TC(e,t={}){let{lineCounter:n,prettyErrors:r}=wC(t),i=new CC(n?.addNewLine),a=new nC(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new vS(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(bS(e,n)),o.warnings.forEach(bS(e,n))),o}function EC(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=TC(e,n);if(!i)return null;if(i.warnings.forEach(e=>$b(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}var DC=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/,OC=/^\s*\*\*[A-Za-z0-9_-]+\s*:\s*\*\*/m,kC=/^\s*(?:\*\*)?([A-Za-z0-9_-]+)(?:\*\*)?\s*:\s*(?:\*\*)?\s*(.*?)\s*$/;function AC(e){if(typeof e!=`string`)return{data:{},body:``,format:`none`,raw:``};let t=e.match(DC);if(!t)return{data:{},body:e,format:`none`,raw:``};let n=t[1],r=e.slice(t[0].length);if(OC.test(n))return{data:jC(n),body:r,format:`legacy`,raw:n};try{let e=EC(n);return{data:e&&typeof e==`object`&&!Array.isArray(e)?e:{},body:r,format:`yaml`,raw:n}}catch{return{data:jC(n),body:r,format:`legacy`,raw:n}}}function jC(e){let t={};for(let n of e.split(/\r?\n/)){let e=kC.exec(n);if(!e)continue;let r=e[1],i=e[2];r.toLowerCase()===`tags`?t[r]=i.split(`,`).map(e=>e.trim()).filter(Boolean):t[r]=i}return t}function MC(e,t){let n=t.toLowerCase();for(let t of Object.keys(e))if(t.toLowerCase()===n)return e[t]}function NC(e){return e==null?null:Array.isArray(e)?e.map(e=>String(e)).join(`, `):String(e)}function PC(e,t){let{data:n}=AC(e);for(let e of t){let t=MC(n,e);if(t!=null)return NC(t)}return null}var FC=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/,IC=/^(\s*(?:\*\*)?(?:language|lang|locale|langue)(?:\*\*)?\s*:\s*(?:\*\*)?\s*)(.+?)\s*$/i;function LC(e){let t=(e??``).trim().toLowerCase();return t?t===`en`||t.startsWith(`en-`)||t===`english`||t===`anglais`?`en`:t===`fr`||t.startsWith(`fr-`)||t===`french`||t===`francais`||t===`français`?`fr`:null:null}function RC(e){return LC(PC(e,[`language`,`lang`,`locale`,`langue`]))}function zC(e,t){let n=e.match(FC);if(!n)return`---\n**language:** ${t}\n---\n\n${e}`;let r=n[0],i=n[1].split(/\r?\n/),a=i.findIndex(e=>IC.test(e));if(a>=0)i[a]=i[a].replace(IC,`$1${t}`);else{let e=i.findIndex(e=>/^\s*(?:\*\*)?date(?:\*\*)?\s*:\s*(?:\*\*)?/i.test(e)),n=e>=0?e+1:i.length;i.splice(n,0,`**language:** ${t}`)}return`---\n${i.join(`
|
|
224
|
+
`)}\n---\n`+e.slice(r.length)}var BC=e=>e.normalize(`NFC`).normalize(`NFD`).replace(/[̀-ͯ]/g,``).toLowerCase();function VC(e,t){let n=BC(t);if(!n)return[];let r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),i=[];for(;r.nextNode();)i.push(r.currentNode);let a=0;i.forEach(e=>{let t=(e.textContent||``).normalize(`NFC`),r=BC(t);if(!r.includes(n))return;let i=``,o=0;for(;o<=r.length;){let e=r.indexOf(n,o);if(e===-1){i+=t.slice(o);break}i+=t.slice(o,e),i+=`<mark id="match-${a++}">${t.slice(e,e+n.length)}</mark>`,o=e+n.length}let s=document.createElement(`span`);s.innerHTML=i,e.parentNode?.replaceChild(s,e)});let o=[];return e.querySelectorAll(`mark[id^='match-']`).forEach(e=>{let r=((e.closest(`p, li, td, h1, h2, h3, h4, h5, h6, pre`)||e.parentElement).textContent||``).trim(),i=BC(r).indexOf(n),a=Math.max(0,i-40),s=Math.min(r.length,i+t.length+40),c=(a>0?`…`:``)+r.slice(a,s)+(s<r.length?`…`:``);o.push({id:e.id,snippet:c})}),o}function HC(e){let t=document.getElementById(e),n=document.getElementById(`home-content-area`);if(!t||!n)return;let r=t.parentElement;for(;r&&r!==n;)r.tagName===`DETAILS`&&!r.open&&(r.open=!0),r=r.parentElement;document.querySelectorAll(`mark.match-active`).forEach(e=>{e.classList.remove(`match-active`)}),t.classList.add(`match-active`);let i=document.querySelector(`#home-doc-view header`),a=i?i.getBoundingClientRect().height:0,o=t.getBoundingClientRect().top,s=n.getBoundingClientRect().top,c=a+(n.clientHeight-a)/3;n.scrollTop+=o-s-c}var UC=U(`<span class="inline-block text-xs font-semibold px-2.5 py-0.5 rounded-full bg-violet-100 text-violet-700 dark:bg-violet-900/40 dark:text-violet-300"> </span>`),WC=U(`<span class="text-xs text-gray-400 dark:text-gray-500"> </span>`),GC=U(`<button type="button" data-testid="copy-doc-id-btn"><i aria-hidden="true"></i></button>`),KC=U(`<span class="inline-block text-[11px] px-2 py-0.5 rounded-full bg-gray-100 dark:bg-gray-800 text-gray-500 dark:text-gray-400 border border-gray-200 dark:border-gray-700"> </span>`),qC=U(`<div class="mt-1.5 flex items-center gap-1.5 flex-wrap" data-testid="doc-tags"></div>`),JC=U(`<span> </span>`),YC=U(`<div data-testid="edit-actions" class="flex items-center gap-2"><!> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div>`),XC=U(`<button data-testid="validate-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-green-700 bg-green-600 text-white font-semibold hover:bg-green-700 transition-colors"><i class="fa-solid fa-check" style="margin-right:4px"></i> </button>`),ZC=U(`<button data-testid="tts-toggle" class="no-print text-sm px-3 py-1.5 rounded-lg border border-blue-300 dark:border-blue-700 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 hover:bg-blue-100 dark:hover:bg-blue-900/50 transition-colors"><i></i></button> <button data-testid="tts-stop" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-stop"></i></button>`,1),QC=U(`<button data-testid="tts-play" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-headphones" style="margin-right:4px"></i> </button>`),$C=Hr(`<g><line x1="8" y1="8" x2="92" y2="92" stroke="currentColor" stroke-width="8" stroke-linecap="round"></line><line x1="92" y1="8" x2="8" y2="92" stroke="currentColor" stroke-width="8" stroke-linecap="round"></line></g>`),ew=U(`<button data-testid="versions-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-code-branch"></i> </button>`),tw=U(`<!> <button data-testid="marker-doc-btn"><svg width="18" height="18" viewBox="0 0 100 100" fill="none" style="display:inline-block;vertical-align:middle;margin-right:4px"><rect x="28" y="10" width="44" height="52" rx="6" transform="rotate(40 50 50)" stroke="currentColor" stroke-width="6"></rect><rect x="52" y="8" width="22" height="30" rx="6" transform="rotate(40 50 50)" stroke="currentColor" stroke-width="6"></rect><polygon points="28,60 10,80 30,80 38,72" stroke="currentColor" stroke-width="5" stroke-linejoin="round"></polygon><polygon points="28,48 19,70 36,75 55,70" stroke="currentColor" stroke-width="5" stroke-linejoin="round"></polygon><line x1="10" y1="90" x2="72" y2="90" stroke="currentColor" stroke-width="6" stroke-linecap="round"></line><!></svg> </button> <button data-testid="export-pdf-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"> </button> <button data-testid="metadata-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-code-compare"></i> </button> <!> <button data-testid="edit-doc-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-file-pen"></i> </button>`,1),nw=U(`<button data-testid="kanban-edit-columns" class="no-print text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors"><i class="fa-solid fa-gear"></i> </button>`),rw=U(`<button data-testid="toc-toggle-btn"><i class="fa-solid fa-list-ul"></i></button>`),iw=U(`<div data-testid="view-actions" class="flex items-center gap-2"><button data-testid="favorite-doc-btn"><i style="margin-right:4px"></i> </button> <!> <!> <!> <button data-testid="delete-doc-btn" class="no-print text-sm px-3 py-1.5 rounded-lg border border-red-200 dark:border-red-700 text-red-500 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/40 transition-colors"><i class="fa-solid fa-trash"></i> </button> <!></div>`),aw=U(`<span class="text-gray-300 dark:text-gray-600 mx-1">·</span>`),ow=U(`<!> <button class="text-blue-600 dark:text-blue-400 hover:underline"> </button>`,1),sw=U(`<div class="no-print mt-2 flex flex-wrap gap-1 text-xs"></div>`),cw=U(`<li><button class="w-full text-left px-3 py-1.5 hover:bg-yellow-100 dark:hover:bg-yellow-900/30 transition-colors"><span class="text-yellow-600 dark:text-yellow-500 font-mono text-xs mr-2"> </span><span class="text-xs"> </span></button></li>`),lw=U(`<div class="mt-4 rounded-lg bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 text-sm text-yellow-800 dark:text-yellow-300 overflow-hidden"><div class="px-3 py-2 font-medium border-b border-yellow-200 dark:border-yellow-800"> </div> <ol class="max-h-40 overflow-y-auto divide-y divide-yellow-100 dark:divide-yellow-900/40 list-none m-0 p-0"></ol></div>`),uw=U(`<div data-testid="tts-error" class="mt-4 rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-800 dark:bg-red-900/20 dark:text-red-300"> </div>`),dw=U(`<div class="hidden no-print"></div>`),fw=U(`<li class="m-0 p-0"><button type="button" class="block w-full text-left bg-transparent border-0 cursor-pointer text-xs text-gray-500 dark:text-gray-400 hover:text-blue-600 dark:hover:text-blue-400 hover:underline py-0.5 leading-snug transition-colors truncate"> </button></li>`),pw=U(`<div></div> <aside class="no-print shrink-0 sticky self-start overflow-y-auto py-8 pr-4 pl-3 ld-toc-aside"><p class="text-xs font-semibold uppercase tracking-wider text-gray-400 dark:text-gray-500 mb-3"> </p> <nav><ul class="space-y-1 list-none m-0 p-0"></ul></nav></aside>`,1),mw=U(`<div data-testid="tts-language-modal" class="fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4"><div class="w-full max-w-sm rounded-xl border border-gray-200 bg-white p-5 shadow-2xl dark:border-gray-700 dark:bg-gray-900"><h2 class="text-base font-semibold text-gray-900 dark:text-gray-50"> </h2> <p class="mt-2 text-sm text-gray-600 dark:text-gray-300"> </p> <div class="mt-4 grid grid-cols-2 gap-2"><button type="button" data-testid="tts-language-en" class="rounded-lg border border-gray-200 px-3 py-2 text-sm font-semibold text-gray-700 transition-colors hover:bg-gray-50 disabled:opacity-50 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800"> </button> <button type="button" data-testid="tts-language-fr" class="rounded-lg border border-gray-200 px-3 py-2 text-sm font-semibold text-gray-700 transition-colors hover:bg-gray-50 disabled:opacity-50 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800"> </button></div> <div class="mt-3 flex justify-end"><button type="button" class="rounded-lg border border-gray-200 px-3 py-1.5 text-sm text-gray-600 transition-colors hover:bg-gray-50 disabled:opacity-50 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-gray-800"> </button></div></div></div>`),hw=U(`<div class="fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4"><div class="w-full max-w-sm bg-white dark:bg-gray-900 border border-red-200 dark:border-red-700 rounded-xl shadow-2xl p-5 flex flex-col gap-3"><p class="text-sm text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-500 dark:text-gray-400 italic truncate"> </p> <div class="flex justify-end gap-2 mt-2"><button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-1.5 rounded-lg bg-red-500 hover:bg-red-600 text-white font-semibold transition-colors"> </button></div></div></div>`),gw=U(`<header id="home-doc-header" class="sticky top-0 z-10 bg-gray-50 dark:bg-gray-950 px-6 pt-8 pb-6 border-b border-gray-300 dark:border-gray-800"><div class="flex items-start gap-4 flex-wrap"><div class="shrink min-w-0"><div class="flex items-center gap-2 flex-wrap"><span class="flex items-center gap-2 flex-wrap"><!> <span class="inline-block text-xs font-semibold px-2.5 py-0.5 rounded-full bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"> </span></span> <!> <h1 data-testid="doc-title" class="min-w-0 text-xs font-normal text-gray-900 dark:text-gray-50 leading-tight"> </h1> <!></div> <!></div> <div class="flex items-center gap-2 flex-wrap ml-auto"><!></div></div> <!> <!> <!> <!> <!></header> <div class="flex min-h-full items-start"><article id="home-doc-view" data-testid="doc-view" class="flex-1 min-w-0 px-6 pt-8 pb-8"><!></article> <!></div> <!> <!> <!> <!> <!> <!>`,1);function _w(e,t){qe(t,!0);let n=/<div\s+data-ld-kanban\b/i,r=qi(t,`navHistory`,19,()=>[]),i=P(null),a=P(null),o=P(null),s=P(null),c=P(!1),l=P(!1),u=P(!1),d=P(null),f=P(I([])),p=``,m=N(()=>V(f).length?Y(V(f).length===1?`search.notice_singular`:`search.notice_plural`).replace(`{count}`,String(V(f).length)).replace(`{query}`,X.searchQuery):``),h=N(()=>zv(t.doc.content)),g=N(()=>n.test(t.doc.content)),_=N(()=>Ho.has(t.doc.id)),v=N(()=>(V(h)||``).toUpperCase()===`TO BE VALIDATED`),y=P(!1),b=P(null),x=P(!1),S=P(!1),C=P(!1),w=P(!1),T=P(!1);async function E(){try{let e=await(await fetch(`/api/git/status`)).json();F(u,e.mode===`enabled`&&e.ok===!0,!0)}catch{F(u,!1)}}kn(()=>{if(t.doc.id,V(g),V(g)){F(u,!1);return}E()}),kn(()=>{V(g)&&V(y)&&(F(y,!1),F(b,null))});function D(e,t){let n=document.getElementById(`home-content-area`);if(!n)return;let r=document.getElementById(`home-doc-header`),i=r?r.getBoundingClientRect().height:0,a=e.getBoundingClientRect().top-n.getBoundingClientRect().top+n.scrollTop;n.scrollTo({top:Math.max(0,a-i-16),behavior:t?`smooth`:`auto`})}function ee(e){let t=document.getElementById(e);t&&D(t,!1)}function te(e){F(i,e,!0);let n=t.doc.id,r=X.searchQuery;if(V(g)){F(f,[],!0),F(A,[],!0),p=n;return}let a=typeof r==`string`&&r.toLowerCase().startsWith(`metadata://`);F(f,r&&!a?VC(e,r):[],!0),V(d)&&wy(e,V(d),Y),n===p?V(o)?.apply():(p=n,V(o)?.load(n),Fv.load(n)),F(A,Array.from(e.querySelectorAll(`h1,h2,h3,h4,h5,h6`)).map(e=>({id:e.id,text:e.textContent?.trim()??``,level:parseInt(e.tagName[1])})).filter(e=>e.id&&e.text),!0)}function O(){return V(s).show({title:Y(`snippet.inline_delete_title`),message:Y(`snippet.inline_delete_message`),confirmLabel:Y(`snippet.inline_delete_confirm_btn`),cancelLabel:Y(`common.cancel`),danger:!0})}async function k(){let e=1;try{let n=await Fv.load(t.doc.id);n&&typeof n.accuracy==`number`&&(e=n.accuracy)}catch{}let n=Math.round(e*100),r=n<100,i=Vv(t.doc.id),a=Y(i?`doc.validate_worklog_message`:`doc.validate_message`),o=r?Y(`doc.validate_detail_low_accuracy`).replace(`{accuracy}`,n+`%`):void 0;if(!await V(s).show({title:Y(`doc.validate_title`),message:a,detail:o,confirmLabel:Y(`doc.validate_confirm`),cancelLabel:Y(`common.cancel`)}))return;let c=Bv(t.doc.content,i?`Done`:`Accepted`);if(c!==t.doc.content)try{await t.onsave(c),r&&await fetch(`/api/metadata/`+encodeURIComponent(t.doc.id)+`/refresh`,{method:`POST`}),await Fv.load(t.doc.id),X.docStatuses={...X.docStatuses,[t.doc.id]:i?`Done`:`Accepted`}}catch(e){F(b,{text:Y(`doc.validate_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`},!0)}}kn(()=>{try{F(x,localStorage.getItem(`ld-full-width`)===`1`)}catch{}});let ne=P(!1),A=P(I([])),re=N(()=>!V(g)&&V(ne)&&V(A).length>0),ie=`ld-toc-w`,ae=P(!1),oe=P(null),se=P(null),ce=P(0);kn(()=>{if(!V(se))return;let e=new ResizeObserver(()=>{F(ce,V(se).offsetHeight,!0)});return e.observe(V(se)),F(ce,V(se).offsetHeight,!0),()=>e.disconnect()});function le(e){if(e.preventDefault(),!V(oe))return;let t=e.clientX,n=V(oe).getBoundingClientRect().width;F(ae,!0),V(oe).style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let r=e=>{let r=Math.max(160,Math.min(400,n-(e.clientX-t)));V(oe).style.width=r+`px`},i=()=>{document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i),document.body.style.cursor=``,document.body.style.userSelect=``,F(ae,!1),V(oe).style.transition=``;try{localStorage.setItem(ie,String(parseInt(V(oe).style.width,10)))}catch{}};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)}kn(()=>{try{F(ne,localStorage.getItem(`ld-toc-open`)===`1`)}catch{}try{let e=parseInt(localStorage.getItem(ie)||``,10);V(oe)&&e>=160&&e<=400&&(V(oe).style.width=e+`px`)}catch{}});function ue(){F(ne,!V(ne));try{localStorage.setItem(`ld-toc-open`,V(ne)?`1`:`0`)}catch{}}function de(e){let t=document.getElementById(e),n=document.getElementById(`home-content-area`);if(!t||!n)return;let r=t.parentElement;for(;r&&r!==n;)r.tagName===`DETAILS`&&(r.open=!0),r=r.parentElement;D(t,!0)}async function fe(){try{await navigator.clipboard.writeText(decodeURIComponent(t.doc.id)),F(C,!0),setTimeout(()=>F(C,!1),1800)}catch{}}function pe(){window.print()}function me(e){V(i)&&Ly.start(V(i),{language:e,codeLabel:Y(`tts.code_label`),imageLabel:Y(`tts.image_label`),diagramLabel:Y(`tts.diagram_label`),tableLabel:Y(`tts.table_label`)})}function he(){let e=RC(t.doc.content);if(!e){F(w,!0);return}me(e)}async function ge(e){F(T,!0);try{let n=zC(t.doc.content,e);n!==t.doc.content&&await t.onsave(n),F(w,!1),me(e)}catch(e){F(b,{text:Y(`tts.language_save_failed`)+(e instanceof Error?e.message:String(e)),cls:`text-red-500 dark:text-red-400`},!0)}finally{F(T,!1)}}kn(()=>(t.doc.id,V(y),()=>{F(w,!1),Ly.stop()}));var _e=gw(),ve=R(_e),ye=L(ve),be=L(ye),xe=L(be),Se=L(xe),Ce=L(Se);q(Ce,17,()=>t.doc.folder||[],Qr,(e,t)=>{var n=UC(),r=L(n,!0);j(n),B(e=>{J(n,`title`,V(t)),G(r,e)},[()=>X_(V(t))]),W(e,n)});var we=z(Ce,2),Te=L(we,!0);j(we),j(Se);var Ee=z(Se,2),De=e=>{var n=WC(),r=L(n,!0);j(n),B(()=>G(r,t.doc.formattedDate)),W(e,n)};K(Ee,e=>{t.doc.formattedDate&&e(De)});var Oe=z(Ee,2),ke=L(Oe,!0);j(Oe);var Ae=z(Oe,2),je=e=>{var t=GC(),n=L(t);j(t),B(e=>{J(t,`title`,e),vi(t,1,`no-print inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-md border border-gray-200 text-xs text-gray-500 transition-colors hover:bg-gray-50 hover:text-blue-600 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-blue-400 ${V(C)?`text-green-600 dark:text-green-400`:``}`),vi(n,1,`fa-${V(C)?`solid fa-check`:`regular fa-copy`}`)},[()=>Y(`doc.copy_mcp_id`)]),H(`click`,t,fe),W(e,t)};K(Ae,e=>{V(g)||e(je)}),j(xe);var Me=z(xe,2),Ne=e=>{var n=qC();q(n,20,()=>t.doc.tags,e=>e,(e,t)=>{var n=KC(),r=L(n);j(n),B(()=>G(r,`#${t??``}`)),W(e,n)}),j(n),W(e,n)};K(Me,e=>{t.doc.tags&&t.doc.tags.length&&e(Ne)}),j(be);var Pe=z(be,2),Fe=L(Pe),Ie=e=>{var t=YC(),n=L(t),r=e=>{var t=JC(),n=L(t,!0);j(t),B(()=>{vi(t,1,`text-xs ${V(b).cls??``}`),G(n,V(b).text)}),W(e,t)};K(n,e=>{V(b)&&e(r)});var i=z(n,2),o=L(i,!0);j(i);var s=z(i,2),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(t),B((e,t,n,r)=>{G(o,e),J(s,`title`,t),G(c,n),G(u,r)},[()=>Y(`common.cancel`),()=>Y(`doc.snippets`),()=>Y(`doc.snippets_btn`),()=>Y(`common.save`)]),H(`click`,i,()=>V(a).cancelEdit()),H(`click`,s,()=>V(a).openSnippets()),H(`click`,l,()=>V(a).save()),W(e,t)},Le=e=>{let n=N(()=>X.markerActive?`#fef08a`:`#bfdbfe`),r=N(()=>X.markerActive?`#fef08a`:`#93c5fd`),i=N(()=>X.markerActive?`#fde047`:`#93c5fd`);var o=iw(),s=L(o),d=L(s),f=z(d,1,!0);j(s);var p=z(s,2),m=e=>{var t=XC(),n=z(L(t),1,!0);j(t),B((e,r)=>{J(t,`title`,e),G(n,r)},[()=>Y(`doc.validate_mode`),()=>Y(`doc.validate_btn`)]),H(`click`,t,k),W(e,t)};K(p,e=>{V(v)&&!V(g)&&e(m)});var h=z(p,2),y=e=>{var t=tw(),o=R(t),s=e=>{var t=ZC(),n=R(t),r=L(n);j(n);var i=z(n,2);B((e,t)=>{J(n,`title`,e),vi(r,1,`fa-solid ${Ly.status===`playing`?`fa-pause`:`fa-play`}`),J(i,`title`,t)},[()=>Ly.status===`playing`?Y(`tts.pause`):Y(`tts.resume`),()=>Y(`tts.stop`)]),H(`click`,n,()=>Ly.toggle()),H(`click`,i,()=>Ly.stop()),W(e,t)},d=e=>{var t=QC(),n=z(L(t),1,!0);j(t),B((e,r)=>{J(t,`title`,e),G(n,r)},[()=>Y(`tts.play`),()=>Y(`tts.play_btn`)]),H(`click`,t,he),W(e,t)};K(o,e=>{Ly.active?e(s):e(d,-1)});var f=z(o,2),p=L(f),m=L(p),h=z(m),g=z(h),_=z(g),v=z(_,2),y=e=>{W(e,$C())};K(v,e=>{X.markerHidden&&e(y)}),j(p);var b=z(p,1,!0);j(f);var x=z(f,2),S=L(x);j(x);var C=z(x,2),w=z(L(C));j(C);var T=z(C,2),E=e=>{var t=ew(),n=z(L(t));j(t),B((e,r)=>{J(t,`title`,e),G(n,` ${r??``}`)},[()=>Y(`versions.button_title`),()=>Y(`versions.button`)]),H(`click`,t,()=>F(l,!0)),W(e,t)};K(T,e=>{V(u)&&e(E)});var D=z(T,2),ee=z(L(D));j(D),B((e,t,a,o,s,c,l,u)=>{J(f,`title`,e),vi(f,1,`no-print text-sm px-3 py-1.5 rounded-lg border transition-colors ${X.markerActive?`border-yellow-400 bg-yellow-100 dark:bg-yellow-900/40 text-yellow-700 dark:text-yellow-300`:`border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700`}`),J(m,`fill`,V(n)),J(h,`fill`,V(r)),J(g,`fill`,V(i)),J(_,`fill`,V(i)),G(b,t),J(x,`title`,a),G(S,`📄 ${o??``}`),J(C,`title`,s),G(w,` ${c??``}`),J(D,`title`,l),G(ee,` ${u??``}`)},[()=>Y(`doc.marker_mode`),()=>Y(`doc.marker_btn`),()=>Y(`doc.export_pdf`),()=>Y(`doc.export_pdf_btn`),()=>Y(`metadata.button_title`),()=>Y(`metadata.button`),()=>Y(`doc.edit`),()=>Y(`doc.edit_btn`)]),H(`click`,f,()=>X.toggleMarker()),H(`click`,x,pe),H(`click`,C,()=>F(c,!0)),H(`click`,D,()=>V(a).enterEdit()),W(e,t)};K(h,e=>{V(g)||e(y)});var b=z(h,2),x=e=>{var t=nw(),n=z(L(t));j(t),B((e,r)=>{J(t,`title`,e),G(n,` ${r??``}`)},[()=>Y(`kanban.edit_columns`),()=>Y(`kanban.edit_columns`)]),H(`click`,t,()=>V(a).openKanbanColumnsEditor()),W(e,t)};K(b,e=>{V(g)&&e(x)});var C=z(b,2),w=z(L(C));j(C);var T=z(C,2),E=e=>{var t=rw();B(e=>{J(t,`title`,e),vi(t,1,`no-print text-sm px-3 py-1.5 rounded-lg border transition-colors ${V(ne)?`border-blue-400 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400`:`border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700`}`)},[()=>Y(`doc.toc_toggle`)]),H(`click`,t,ue),W(e,t)};K(T,e=>{V(g)||e(E)}),j(o),B((e,t,n,r)=>{J(s,`aria-pressed`,V(_)),J(s,`title`,e),vi(s,1,`no-print text-sm px-3 py-1.5 rounded-lg border transition-colors ${V(_)?`border-amber-300 bg-amber-50 dark:bg-amber-900/30 text-amber-600 dark:text-amber-400`:`border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700`}`),vi(d,1,`fa-${V(_)?`solid`:`regular`} fa-star`),G(f,t),J(C,`title`,n),G(w,` ${r??``}`)},[()=>V(_)?Y(`favorites.remove`):Y(`favorites.add`),()=>Y(`favorites.button`),()=>Y(`doc.delete`),()=>Y(`doc.delete_btn`)]),H(`click`,s,()=>Ho.toggle({id:t.doc.id,title:t.doc.title})),H(`click`,C,()=>F(S,!0)),W(e,o)};K(Fe,e=>{V(y)?e(Ie):e(Le,-1)}),j(Pe),j(ye);var Re=z(ye,2),ze=e=>{Lv(e,{onopen:()=>F(c,!0)})};K(Re,e=>{!V(y)&&!V(g)&&e(ze)});var Be=z(Re,2),Ve=e=>{var n=sw();q(n,21,r,Qr,(e,n,r)=>{var i=ow(),a=R(i),o=e=>{W(e,aw())};K(a,e=>{r>0&&e(o)});var s=z(a,2),c=L(s);j(s),B(()=>G(c,`← ${V(n).title??``}`)),H(`click`,s,()=>t.ongoback?.(r)),W(e,i)}),j(n),W(e,n)};K(Be,e=>{!V(y)&&r().length&&e(Ve)});var He=z(Be,2),Ue=e=>{var t=lw(),n=L(t),r=L(n,!0);j(n);var i=z(n,2);q(i,23,()=>V(f),e=>e.id,(e,t,n)=>{var r=cw(),i=L(r),a=L(i),o=L(a);j(a);var s=z(a),c=L(s,!0);j(s),j(i),j(r),B(()=>{G(o,`${V(n)+1}.`),G(c,V(t).snippet)}),H(`click`,i,()=>HC(V(t).id)),W(e,r)}),j(i),j(t),B(()=>G(r,V(m))),W(e,t)};K(He,e=>{!V(y)&&!V(g)&&V(f).length&&X.searchQuery&&e(Ue)});var We=z(He,2),Ge=e=>{var t=uw(),n=L(t,!0);j(t),B(()=>G(n,Ly.error)),W(e,t)};K(We,e=>{!V(y)&&!V(g)&&Ly.error&&e(Ge)});var Ke=z(We,2),Ye=e=>{var t=dw();Ui(t,e=>F(d,e),()=>V(d)),W(e,t)};K(Ke,e=>{V(g)||e(Ye)}),j(ve),Ui(ve,e=>F(se,e),()=>V(se));var Xe=z(ve,2),Ze=L(Xe);Ui(Vf(L(Ze),{get docId(){return t.doc.id},get content(){return t.doc.content},get html(){return t.doc.html},get onsave(){return t.onsave},get onopen(){return t.onopen},onanchor:ee,onconfirmdelete:O,oncontentwired:te,get rewireSignal(){return X.searchQuery},get editing(){return V(y)},set editing(e){F(y,e,!0)},get saveMsg(){return V(b)},set saveMsg(e){F(b,e,!0)}}),e=>F(a,e,!0),()=>V(a)),j(Ze);var Qe=z(Ze,2),$e=e=>{var t=pw(),n=R(t),r=z(n,2),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o);q(s,21,()=>V(A),Qr,(e,t)=>{var n=fw(),r=L(n),i=L(r,!0);j(r),j(n),B(()=>{bi(n,`padding-left: ${(V(t).level-1)*.75}rem`),J(r,`title`,V(t).text),G(i,V(t).text)}),H(`click`,r,()=>de(V(t).id)),W(e,n)}),j(s),j(o),j(r),Ui(r,e=>F(oe,e),()=>V(oe)),B(e=>{vi(n,1,`no-print w-1 shrink-0 self-stretch cursor-col-resize select-none transition-colors ${V(ae)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),bi(r,`width: 224px; top: ${V(ce)??``}px; min-height: calc(100vh - ${V(ce)??``}px); max-height: calc(100vh - ${V(ce)??``}px)`),G(a,e)},[()=>Y(`doc.toc_title`)]),H(`mousedown`,n,le),W(e,t)};K(Qe,e=>{V(re)&&e($e)}),j(Xe);var et=z(Xe,2),tt=e=>{Ui(kv(e,{get contentEl(){return V(i)},get docId(){return t.doc.id}}),e=>F(o,e,!0),()=>V(o))};K(et,e=>{V(g)||e(tt)});var nt=z(et,2);iy(nt,{get open(){return V(c)},get docId(){return t.doc.id},get content(){return t.doc.content},onclose:()=>F(c,!1)});var rt=z(nt,2);_y(rt,{get open(){return V(l)},get docId(){return t.doc.id},get content(){return t.doc.content},get onsave(){return t.onsave},onclose:()=>F(l,!1)});var it=z(rt,2);Ui(Xd(it,{}),e=>F(s,e,!0),()=>V(s));var at=z(it,2),ot=e=>{var t=mw(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=L(s),l=L(c,!0);j(c);var u=z(c,2),d=L(u,!0);j(u),j(s);var f=z(s,2),p=L(f),m=L(p,!0);j(p),j(f),j(n),j(t),B((e,t,n,r,a)=>{G(i,e),G(o,t),c.disabled=V(T),G(l,n),u.disabled=V(T),G(d,r),p.disabled=V(T),G(m,a)},[()=>Y(`tts.language_title`),()=>Y(`tts.language_message`),()=>Y(`tts.language_en`),()=>Y(`tts.language_fr`),()=>Y(`common.cancel`)]),H(`click`,t,e=>{e.target===e.currentTarget&&!V(T)&&F(w,!1)}),H(`click`,c,()=>ge(`en`)),H(`click`,u,()=>ge(`fr`)),H(`click`,p,()=>F(w,!1)),W(e,t)};K(at,e=>{V(w)&&e(ot)});var st=z(at,2),ct=e=>{var n=hw(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d,!0);j(d),j(c),j(r),j(n),B((e,n,r)=>{G(a,e),G(s,t.doc.title),G(u,n),G(f,r)},[()=>Y(`doc.confirm_delete`),()=>Y(`common.cancel`),()=>Y(`doc.confirm_delete_btn`)]),H(`click`,n,e=>{e.target===e.currentTarget&&F(S,!1)}),H(`click`,l,()=>F(S,!1)),H(`click`,d,async()=>{F(S,!1),await t.ondelete()}),W(e,n)};K(st,e=>{V(S)&&e(ct)}),B(()=>{G(Te,t.doc.category),G(ke,t.doc.title)}),W(e,_e),Je()}Pr([`click`,`mousedown`]);var vw=U(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),yw=U(`<p class="px-3 py-3 text-xs text-red-400 text-center"> </p>`),bw=U(`<p class="px-3 py-3 text-xs text-gray-400 text-center"> </p>`),xw=U(`<button class="w-full flex items-center gap-2 px-3 py-2 text-sm text-left hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="text-gray-400 shrink-0">📁</span> <span class="truncate text-gray-700 dark:text-gray-300"> </span></button>`),Sw=U(`<div class="border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden text-sm"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0"> </button> <span class="text-xs text-gray-500 dark:text-gray-400 font-mono truncate flex-1"> </span></div> <div class="max-h-40 overflow-y-auto divide-y divide-gray-100 dark:divide-gray-800"><!></div></div>`),Cw=U(`<p class="text-xs text-red-500"> </p>`),ww=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-md mx-4 p-6 space-y-4"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><svg width="16" height="16" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" class="inline-block mr-1 align-text-bottom"><path d="M2 5a2 2 0 012-2h3.586a1 1 0 01.707.293L9.707 4.707A1 1 0 0010.414 5H16a2 2 0 012 2v8a2 2 0 01-2 2H4a2 2 0 01-2-2V5z" stroke="currentColor" stroke-width="1.5" fill="none"></path><line x1="10" y1="8" x2="10" y2="14" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line><line x1="7" y1="11" x2="13" y2="11" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></line></svg> <span> </span></h3> <div class="space-y-1.5"><label for="new-folder-name" class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <input id="new-folder-name" type="text" class="w-full px-3 py-2 text-sm rounded-lg border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500"/></div> <div class="space-y-1.5"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <div class="flex items-center gap-2"><span class="flex-1 text-sm text-gray-600 dark:text-gray-300 font-mono truncate"> </span> <button class="text-xs px-2 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0"> </button></div> <!></div> <div class="space-y-1"><label class="block text-xs font-medium text-gray-500 dark:text-gray-400"> </label> <p class="text-xs font-mono text-gray-500 dark:text-gray-400 bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 truncate"> </p></div> <!> <div class="flex justify-end gap-3 pt-1"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div></div>`);function Tw(e,t){qe(t,!0);let n=P(``),r=P(null),i=P(null),a=P(``),o=P(``),s=P(`/ (root)`),c=P(!1),l=P(``),u=P(I([])),d=P(!1),f=P(!1),p=P(``),m=P(!1),h=P(null),g=!1;kn(()=>{t.open&&!g?(g=!0,_()):t.open||(g=!1)});async function _(){try{F(n,(await fetch(`/api/config`).then(e=>e.json())).docsFolder||``,!0)}catch{F(n,``)}let e=``;if(X.currentDocId){let t=decodeURIComponent(X.currentDocId);if(!t.startsWith(`/`)){let n=t.split(`/`);n.length>1&&(e=n.slice(0,-1).join(`/`))}}F(a,e?V(n)+`/`+e:V(n),!0),F(r,V(a),!0),F(i,null),F(o,``),F(s,e?`/`+e:`/ (root)`,!0),F(c,!1),F(p,``),F(m,!1),setTimeout(()=>V(h)?.focus(),50)}let v=N(()=>{let e=Oa(V(o));if(!e)return Y(`modal.new_folder.enter_name`);let t=V(a)||V(n),r=t.startsWith(V(n))?t.slice(V(n).length).replace(/^\//,``):``;return(r?r+`/`:``)+e});function y(e){let t=e.currentTarget,n=Oa(t.value);t.value!==n&&(t.value=n),V(o)!==n&&F(o,n,!0)}function b(){F(c,!V(c)),V(c)&&x(V(r)||V(n))}async function x(e){F(d,!0),F(f,!1);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(r,t.current,!0),F(i,t.parent,!0),F(a,t.current,!0),F(l,t.current,!0),F(s,(t.current.startsWith(V(n)+`/`)?t.current.slice(V(n).length):t.current===V(n)?``:t.current)||`/ (root)`,!0),F(u,t.dirs||[],!0)}catch{F(f,!0),F(u,[],!0)}finally{F(d,!1)}}let S=N(()=>V(r)===V(n));function C(){V(i)&&x(V(i))}async function w(){let e=Oa(V(o));if(F(p,``),!e){F(p,Y(`modal.new_folder.error_empty`),!0);return}if(!/^[a-zA-Z0-9_.-]+$/.test(e)){F(p,Y(`modal.new_folder.error_invalid_chars`),!0);return}let r=V(a)||V(n);if(r===V(n)&&(e===`files`||e===`images`)){F(p,Y(`modal.new_folder.error_reserved`),!0);return}let i=r.endsWith(`/`)?r+e:r+`/`+e;F(m,!0);try{let e=await fetch(`/api/browse/mkdir`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:i})});if(!e.ok)throw Error(await e.text());t.onclose(),t.onsuccess()}catch(e){F(m,!1),F(p,Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)))}}var T=Wr(),E=R(T),D=e=>{var n=ww(),r=L(n),i=L(r),a=z(L(i),2),g=L(a,!0);j(a),j(i);var _=z(i,2),T=L(_),E=L(T,!0);j(T);var D=z(T,2);ki(D),Ui(D,e=>F(h,e),()=>V(h)),j(_);var ee=z(_,2),te=L(ee),O=L(te,!0);j(te);var k=z(te,2),ne=L(k),A=L(ne,!0);j(ne);var re=z(ne,2),ie=L(re,!0);j(re),j(k);var ae=z(k,2),oe=e=>{var t=Sw(),n=L(t),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a),j(n);var s=z(n,2),c=L(s),p=e=>{var t=vw(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},m=e=>{var t=yw(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`modal.new_folder.error_loading`)]),W(e,t)},h=e=>{var t=bw(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`modal.new_folder.no_subfolders`)]),W(e,t)},g=e=>{var t=Wr();q(R(t),17,()=>V(u),e=>e.path,(e,t)=>{var n=xw(),r=z(L(n),2),i=L(r,!0);j(r),j(n),B(()=>G(i,V(t).name)),H(`click`,n,()=>x(V(t).path)),W(e,n)}),W(e,t)};K(c,e=>{V(d)?e(p):V(f)?e(m,1):V(u).length===0?e(h,2):e(g,-1)}),j(s),j(t),B(e=>{r.disabled=V(S),G(i,e),G(o,V(l))},[()=>Y(`common.up`)]),H(`click`,r,C),W(e,t)};K(ae,e=>{V(c)&&e(oe)}),j(ee);var se=z(ee,2),ce=L(se),le=L(ce,!0);j(ce);var ue=z(ce,2),de=L(ue,!0);j(ue),j(se);var fe=z(se,2),pe=e=>{var t=Cw(),n=L(t,!0);j(t),B(()=>G(n,V(p))),W(e,t)};K(fe,e=>{V(p)&&e(pe)});var me=z(fe,2),he=L(me),ge=L(he,!0);j(he);var _e=z(he,2),ve=L(_e,!0);j(_e),j(me),j(r),j(n),B((e,t,n,r,i,a,o,c)=>{G(g,e),G(E,t),J(D,`placeholder`,n),G(O,r),G(A,V(s)),G(ie,i),G(le,a),G(de,V(v)),G(ge,o),_e.disabled=V(m),G(ve,c)},[()=>Y(`modal.new_folder.title`),()=>Y(`modal.new_folder.name_label`),()=>Y(`modal.new_folder.name_placeholder`),()=>Y(`modal.new_folder.location_label`),()=>Y(`modal.new_folder.browse_btn`),()=>Y(`modal.new_folder.will_be_created`),()=>Y(`common.cancel`),()=>V(m)?Y(`modal.new_folder.creating_btn`):Y(`modal.new_folder.create_btn`)]),H(`click`,n,e=>{e.target===e.currentTarget&&t.onclose()}),H(`input`,D,y),Fi(D,()=>V(o),e=>F(o,e)),H(`click`,re,b),H(`click`,he,function(...e){t.onclose?.apply(this,e)}),H(`click`,_e,w),W(e,n)};K(E,e=>{t.open&&e(D)}),W(e,T),Je()}Pr([`click`,`input`]);var Ew=U(`<p class="text-sm text-gray-400 py-2"> </p>`),Dw=U(`<p class="text-sm text-red-500"> </p>`),Ow=U(`<label class="flex items-center gap-3 px-1 py-1.5 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 cursor-pointer"><input type="checkbox" class="w-4 h-4 rounded border-gray-300 dark:border-gray-600 text-blue-600 focus:ring-blue-500"/> <span class="text-sm text-gray-700 dark:text-gray-300"> </span></label>`),kw=U(`<div><div class="max-h-48 overflow-y-auto space-y-0.5 border border-gray-200 dark:border-gray-700 rounded-lg p-2"><!></div></div>`),Aw=U(`<div><p class="text-xs text-gray-500 dark:text-gray-400"> </p> <div class="flex justify-end gap-3 pt-2"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div>`),jw=U(`<div><p class="text-xs text-gray-500 dark:text-gray-400"> </p> <div class="flex justify-end gap-3 pt-2"><button class="text-sm px-4 py-2 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg border border-blue-500 text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-900/20 font-semibold transition-colors"> </button> <button class="text-sm px-4 py-2 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors"> </button></div></div>`),Mw=U(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/50"><div class="bg-white dark:bg-gray-900 rounded-xl shadow-xl w-full max-w-sm mx-4 p-6 space-y-4"><h3 class="text-base font-semibold text-gray-900 dark:text-gray-50"><i class="fa-solid fa-file-export mr-2 text-blue-500"></i> <span> </span></h3> <div class="flex gap-0 border-b border-gray-200 dark:border-gray-700"><button> </button> <button> </button> <button> </button></div> <!> <!> <!> <!></div></div>`);function Nw(e,t){qe(t,!0);let n=P(`markdown`),r=!1,i=P(!1),a=P(!1),o=P(I([])),s=P(I({})),c=P(!1),l=P(!1),u=P(!1),d=P(!1),f=!1;kn(()=>{t.open&&!f?(f=!0,F(n,`markdown`),r=!1,F(o,[],!0),F(s,{},!0)):t.open||(f=!1)});function p(e){return String(e??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)}function m(e){F(n,e,!0),e===`html`&&h()}async function h(){if(!r){F(i,!0),F(a,!1);try{let e=await fetch(`/api/documents`).then(e=>e.json()),t=new Set;e.forEach(e=>t.add(e.folder?.[0]??e.category??`General`)),F(o,[...t].sort((e,t)=>e===`General`?-1:t===`General`?1:e.localeCompare(t)),!0),r=!0}catch{F(a,!0)}finally{F(i,!1)}}}async function g(){F(c,!0);try{let e=await fetch(`/api/export/markdown`,{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!e.ok)throw Error(await e.text());let n=await e.blob(),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`export-markdown.zip`,i.click(),URL.revokeObjectURL(r),t.onclose()}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)))}finally{F(c,!1)}}async function _(e){let n=V(o).filter(e=>V(s)[e]);if(n.length){F(e===`confluence`?u:l,!0);try{let r=await fetch(`/api/export/html`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({folders:n,mode:e})});if(!r.ok)throw Error(await r.text());let i=await r.blob(),a=URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=`export-${e}.zip`,o.click(),URL.revokeObjectURL(a),t.onclose()}catch(e){alert(Y(`common.error_prefix`)+(e instanceof Error?e.message:String(e)))}finally{F(u,!1),F(l,!1)}}}async function v(){F(d,!0);try{let e=X.allDocs&&X.allDocs.length?X.allDocs:await fetch(`/api/documents`).then(e=>e.json()),n={};for(let t=0;t<e.length;t+=5){let r=e.slice(t,t+5),i=await Promise.all(r.map(e=>fetch(`/api/documents/`+e.id).then(e=>e.ok?e.json():null).catch(()=>null)));for(let r of i)r&&(n[r.id??e[t]?.id]=r);r.forEach((e,t)=>{i[t]&&(n[e.id]=i[t])})}function r(e){let t={categories:{},children:{}};for(let n of e){let e=t;for(let t of n.folder||[])e.children[t]||(e.children[t]={categories:{},children:{}}),e=e.children[t];e.categories[n.category]||(e.categories[n.category]=[]),e.categories[n.category].push(n)}return t}function i(e){let t=[];e.categories.General&&t.push(...e.categories.General);let n=Object.keys(e.children).sort((e,t)=>e.localeCompare(t));for(let r of n)t.push(...i(e.children[r]));let r=Object.keys(e.categories).filter(e=>e!==`General`).sort((e,t)=>e.localeCompare(t));for(let n of r)t.push(...e.categories[n]);return t}function a(e){return e.replace(/^\d+_/,``).replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function o(e,t){let n=``,r=t*1.25,i=(e,i)=>{let a=t===0&&e===`General`?`General`:e;n+=`<li style="margin-left:${r}rem;margin-top:${t===0?`0.75`:`0.4`}rem;">`,n+=`<span style="font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#6b7280;">${a}</span>`,n+=`<ul style="margin:0.2rem 0 0 0;padding:0;list-style:none;">`;for(let e of i)n+=`<li style="margin-left:${r+.75}rem;padding:0.15rem 0;">`,n+=`<a href="#doc-${e.id}" style="color:#1d4ed8;text-decoration:none;font-size:0.875rem;">${p(e.title)}</a>`,e.formattedDate&&(n+=`<span style="color:#9ca3af;font-size:0.7rem;margin-left:0.5rem;">${p(e.formattedDate)}</span>`),n+=`</li>`;n+=`</ul></li>`};e.categories.General&&i(`General`,e.categories.General);let s=Object.keys(e.children).sort((e,t)=>e.localeCompare(t));for(let i of s)n+=`<li style="margin-left:${r}rem;margin-top:0.75rem;">`,n+=`<span style="font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:#7c3aed;">📁 ${a(i)}</span>`,n+=`<ul style="margin:0.2rem 0 0 0;padding:0;list-style:none;">`,n+=o(e.children[i],t+1),n+=`</ul></li>`;let c=Object.keys(e.categories).filter(e=>e!==`General`).sort((e,t)=>e.localeCompare(t));for(let t of c)i(t,e.categories[t]);return n}function s(e){return e.replace(/href="[^"]*\?doc=([^"&#]+)(?:#[^"]*)?"/g,(e,t)=>`href="#doc-${t}"`)}let c=p(document.title||`Living Documentation`),l=r(e),u=i(l),d=`<!DOCTYPE html>
|
|
225
225
|
<html>
|
|
226
226
|
<head>
|
|
227
227
|
<meta charset="UTF-8">
|
|
@@ -261,7 +261,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
261
261
|
${o(l,0)}
|
|
262
262
|
</ul>
|
|
263
263
|
</div>`}
|
|
264
|
-
${u.map((e,t)=>{let r=n[e.id];if(!r)return``;let i=s(
|
|
264
|
+
${u.map((e,t)=>{let r=n[e.id];if(!r)return``;let i=s(Ad(r.html)),o=`${Array.isArray(e.folder)?e.folder.map(e=>p(a(e))).join(` › `)+` › `:``}${p(e.category)}${e.formattedDate?` · `+p(e.formattedDate):``}`;return`${t>0?`<div style="page-break-before:always;height:0;"></div>`:``}
|
|
265
265
|
<section id="doc-${e.id}" style="padding:2rem 0;">
|
|
266
266
|
<div style="border-bottom:2px solid #e5e7eb;padding-bottom:0.75rem;margin-bottom:1.5rem;">
|
|
267
267
|
<div style="font-size:0.7rem;color:#6b7280;margin-bottom:0.25rem;">${o}</div>
|
|
@@ -275,17 +275,54 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
275
275
|
setTimeout(() => window.print(), 800);
|
|
276
276
|
<\/script>
|
|
277
277
|
</body>
|
|
278
|
-
</html>`,f=window.open(``,`_blank`);if(!f){alert(Y(`error.pdf_popup`));return}f.document.write(d),f.document.close(),t.onclose()}catch(e){alert(Y(`error.pdf_export`)+(e instanceof Error?e.message:String(e)))}finally{F(d,!1)}}let y=`px-4 py-2 text-sm border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 font-semibold transition-colors`,b=`px-4 py-2 text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors`;var x=Wr(),S=R(x),C=e=>{var r=bw(),f=L(r),p=L(f),h=z(L(p),2),x=L(h,!0);j(h),j(p);var S=z(p,2),C=L(S),w=L(C,!0);j(C);var T=z(C,2),E=L(T,!0);j(T);var D=z(T,2),ee=L(D,!0);j(D),j(S);var te=z(S,2),O=e=>{var t=_w(),n=L(t),r=L(n),c=e=>{var t=mw(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},l=e=>{var t=hw(),n=L(t);j(t),B(e=>G(n,`${e??``}failed to load folders`),[()=>Y(`common.error_prefix`)]),W(e,t)},u=e=>{var t=Wr();q(R(t),16,()=>V(o),e=>e,(e,t)=>{var n=gw(),r=L(n);Di(r);var i,a=z(r,2),o=L(a,!0);j(a),j(n),B(()=>{i!==(i=t)&&(r.value=(r.__value=t)??``),G(o,t)}),Ii(r,()=>V(s)[t],e=>V(s)[t]=e),W(e,n)}),W(e,t)};K(r,e=>{V(i)?e(c):V(a)?e(l,1):e(u,-1)}),j(n),j(t),W(e,t)};K(te,e=>{V(n)===`html`&&e(O)});var k=z(te,2),ne=e=>{var n=vw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var l=z(o,2),u=L(l,!0);j(l),j(a),j(n),B((e,t,n)=>{G(i,e),G(s,t),l.disabled=V(c),G(u,n)},[()=>Y(`modal.export.markdown_hint`),()=>Y(`common.cancel`),()=>V(c)?`⏳`:Y(`modal.export.markdown_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),H(`click`,l,g),W(e,n)};K(k,e=>{V(n)===`markdown`&&e(ne)});var A=z(k,2),re=e=>{var n=yw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),d=L(c,!0);j(c);var f=z(c,2),p=L(f,!0);j(f),j(a),j(n),B((e,t,n,r)=>{G(i,e),G(s,t),c.disabled=V(l),G(d,n),f.disabled=V(u),G(p,r)},[()=>Y(`modal.export_html.hint`),()=>Y(`common.cancel`),()=>V(l)?`⏳`:Y(`modal.export_html.notion_btn`),()=>V(u)?`⏳`:Y(`modal.export_html.confluence_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),H(`click`,c,()=>_(`notion`)),H(`click`,f,()=>_(`confluence`)),W(e,n)};K(A,e=>{V(n)===`html`&&e(re)});var ie=z(A,2),ae=e=>{var n=vw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c,!0);j(c),j(a),j(n),B((e,t,n)=>{G(i,e),G(s,t),c.disabled=V(d),G(l,n)},[()=>Y(`modal.export.pdf_hint`),()=>Y(`common.cancel`),()=>V(d)?`⏳`:Y(`modal.export.pdf_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),H(`click`,c,v),W(e,n)};K(ie,e=>{V(n)===`pdf`&&e(ae)}),j(f),j(r),B((e,t,r,i)=>{G(x,e),gi(C,1,ui(V(n)===`markdown`?y:b)),G(w,t),gi(T,1,ui(V(n)===`html`?y:b)),G(E,r),gi(D,1,ui(V(n)===`pdf`?y:b)),G(ee,i)},[()=>Y(`modal.export.title`),()=>Y(`modal.export.tab_markdown`),()=>Y(`modal.export.tab_html`),()=>Y(`modal.export.tab_pdf`)]),H(`click`,r,e=>{e.target===e.currentTarget&&t.onclose()}),H(`click`,C,()=>m(`markdown`)),H(`click`,T,()=>m(`html`)),H(`click`,D,()=>m(`pdf`)),W(e,r)};K(S,e=>{t.open&&e(C)}),W(e,x),Je()}Pr([`click`]);var Sw=U(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),Cw=U(`<p> </p>`),ww=U(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">📁</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),Tw=U(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-gray-500 dark:text-gray-400"><span class="shrink-0 opacity-40">📄</span> <span class="truncate font-mono"> </span></span> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),Ew=U(`<div class="border-t border-gray-200 dark:border-gray-700"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0">↑ Up</button> <span class="font-mono text-xs text-gray-400 dark:text-gray-500 truncate flex-1 text-right"> </span></div> <div class="divide-y divide-gray-100 dark:divide-gray-800 max-h-52 overflow-y-auto"><!></div></div>`),Dw=U(`<label class="flex items-center gap-1.5 text-xs text-gray-700 dark:text-gray-300 cursor-pointer"><input type="checkbox"/> </label>`),Ow=U(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">📁</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Exclude this folder" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 px-3 py-2 text-sm transition-opacity">⊖</button></div>`),kw=U(`<button class="w-full px-3 py-2 text-xs text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/30 text-left font-medium border-t border-gray-100 dark:border-gray-800">✓ Select: <span class="font-mono"> </span></button>`),Aw=U(`<!> <!>`,1),jw=U(`<div> </div>`),Mw=U(`<div> </div> <div> </div> <div> </div> <!>`,1),Nw=U(`<div role="button" tabindex="0" class="flex items-center gap-2 px-3 py-1 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors"><span class="text-gray-400 dark:text-gray-600 w-5 text-right shrink-0 tabular-nums text-xs"></span> <div class="flex-1 min-w-0"><div class="flex items-center justify-between gap-1"><span class="text-gray-800 dark:text-gray-200 font-medium truncate text-xs"> </span> <span class="text-gray-400 dark:text-gray-600 tabular-nums shrink-0 text-xs"> </span></div> <div class="h-1 bg-gray-100 dark:bg-gray-800 rounded-full mt-0.5"><div class="h-1 bg-blue-400 dark:bg-blue-600 rounded-full"></div></div></div></div>`),Pw=U(`<div class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 text-xs text-gray-500 dark:text-gray-400 space-y-0.5 border-b border-gray-100 dark:border-gray-800"><!></div> <div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center gap-2"><span class="text-xs text-gray-500 dark:text-gray-400 shrink-0 cursor-help"> </span> <input type="number" min="1" max="20" class="w-12 px-1.5 py-0.5 text-xs rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-800 dark:text-gray-200 focus:outline-none"/> <button class="text-xs text-blue-600 dark:text-blue-400 hover:underline"> </button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto"></div></div>`),Fw=U(`<p class="absolute inset-0 flex items-center justify-center text-gray-400 dark:text-gray-500 text-sm animate-pulse"> </p>`),Iw=U(`<div class="flex items-center gap-1 group py-0.5"><span class="text-gray-600 dark:text-gray-400 break-all font-mono flex-1 text-xs"> </span> <button title="Exclude this file" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 text-xs leading-none px-1 transition-opacity">⊖</button></div>`),Lw=U(`<div class="text-gray-400 text-center py-2">—</div>`),Rw=U(`<div class="w-80 shrink-0 border-l border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center justify-between"><span class="font-bold text-sm text-gray-900 dark:text-gray-100"> </span> <button class="text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 text-xs leading-none">✕</button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto px-3 py-1 space-y-1 text-xs"><!></div></div>`),zw=U(`<div class="fixed inset-0 z-50 flex flex-col bg-white dark:bg-gray-950"><div class="flex items-center justify-between px-6 h-14 border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><h2 class="font-semibold text-base"> </h2> <button class="text-sm px-3 py-1.5 rounded-lg text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"> </button></div> <div class="border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><div class="flex items-center gap-3 px-6 py-3"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </label> <input type="text" readonly="" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono cursor-default focus:outline-none"/> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">📁 <span> </span></button> <button class="text-sm px-4 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors shrink-0"> </button></div> <div class="flex items-start gap-3 px-6 pb-2"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0 pt-1.5"> </label> <textarea rows="3" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-1 focus:ring-blue-400 resize-y"></textarea> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">📁 <span> </span></button></div> <!> <div class="flex items-center gap-x-4 gap-y-2 px-6 pb-3 flex-wrap"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </span> <label class="flex items-center gap-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 cursor-pointer shrink-0"><input type="checkbox"/> </label> <!></div> <!></div> <div class="flex-1 overflow-hidden flex"><!> <div class="flex-1 relative overflow-hidden"><!> <canvas style="position: absolute; inset: 0"></canvas></div> <!></div></div>`);function Bw(e,t){qe(t,!0);let n=new Set(`the.a.an.and.or.but.not.nor.so.yet.both.either.neither.is.are.was.were.be.been.being.have.has.had.do.does.did.will.would.shall.should.may.might.can.could.must.need.dare.ought.used.to.of.in.for.on.with.at.by.from.up.about.into.through.during.before.after.above.below.between.out.off.over.under.again.further.then.once.here.there.when.where.why.how.all.each.few.more.most.other.some.such.no.only.own.same.than.too.very.just.also.still.already.always.never.often.sometimes.usually.this.that.these.those.its.your.our.their.his.her.him.she.you.they.we.me.my.it.who.which.what.whose.whom.if.though.although.because.since.while.unless.until.whether.as.like.via.per.i.am.he.us.see.now.new.old.got.let.put.say.said.says.get.use.make.made.take.come.came.go.went.know.think.look.want.give.seem.back.down.even.much.well.good.work.tell.keep.hold.turn.move.play.live.help.run.start.off.way.too.few.show.hear.etc.eg.ie.one.two.three.four.five.six.seven.eight.nine.ten.le.la.les.un.une.des.du.de.d.l.au.aux.ce.ci.cet.cette.ces.mon.ma.mes.ton.ta.tes.son.sa.ses.notre.nos.votre.vos.leur.leurs.je.tu.il.elle.on.nous.vous.ils.elles.me.te.se.lui.y.en.qui.que.quoi.dont.où.et.ou.mais.donc.or.ni.car.si.ne.pas.plus.moins.très.bien.mal.peu.beaucoup.trop.assez.aussi.comme.pour.par.avec.sans.dans.sur.sous.entre.vers.chez.contre.avant.après.pendant.depuis.selon.malgré.sauf.est.sont.était.être.avoir.fait.faire.dit.dire.peut.pouvoir.doit.devoir.veut.vouloir.sait.savoir.va.aller.vient.venir.tout.tous.toute.toutes.autre.autres.même.chaque.quel.quelle.quels.quelles.aucun.aucune.certain.certaine.plusieurs.quelque.quelques.tel.telle.tels.telles.cela.ceci.ça.celui.celle.ceux.celles.ici.voici.voilà.alors.ainsi.encore.déjà.jamais.toujours.souvent.parfois.rien.personne.chose.fois.jour.temps.part.cas.point.lieu.monde.cependant.néanmoins.pourtant.toutefois.quand.lorsque.puisque.parce.afin.puis.lors.notamment.surtout.seulement.vraiment.enfin.ensuite.ailleurs.là.ici.voici.voilà.dont.lequel.laquelle.lesquels.lesquelles`.split(`.`)),r=new Set(`public.private.protected.static.void.class.interface.abstract.final.const.let.var.function.return.if.else.for.while.do.switch.case.break.continue.try.catch.throw.throws.finally.new.this.self.super.import.export.from.package.module.require.include.using.namespace.struct.enum.trait.impl.fn.def.func.fun.val.mut.async.await.yield.lambda.extends.implements.override.virtual.sealed.data.object.companion.where.when.match.guard.defer.go.chan.select.type.alias.as.is.in.of.with.true.false.null.nil.none.undefined.println.printf.fmt.log.print.main.args.argv.init.setup.teardown.describe.test.expect.assert.before.after.not.and.or.delete.typeof.instanceof.readonly.keyof.infer.never.unknown.declare.satisfies.get.set.add.remove.update.create.find.fetch.load.save.put.post.patch.list.map.filter.reduce.sort.merge.parse.format.convert.transform.validate.check.handle.process.execute.start.stop.reset.clear.close.open.read.write.send.receive.emit.trigger.dispatch.subscribe.unsubscribe.listen.notify.register.unregister.bind.apply.call.invoke.callback.handler.listener.middleware.interceptor.resolver.provider.consumer.producer.builder.factory.adapter.wrapper.proxy.decorator.observer.visitor.strategy.command.controller.service.repository.dao.dto.entity.model.schema.config.context.state.store.action.reducer.selector.hook.ref.effect.memo.component.module.plugin.extension.util.utils.helper.helpers.common.shared.base.default.index.app.core.lib.src.test.spec.mock.stub.fixture.impl.internal.api.sdk.client.server.request.response.status.code.error.exception.message.result.data.value.key.name.label.title.description.item.element.node.child.parent.root.container.wrapper.layout.view.page.screen.panel.header.footer.sidebar.navbar.body.content.section.row.col.column.grid.flex.block.inline.span.div.input.output.param.params.arg.option.options.props.attr.attrs.field.fields.property.properties.method.methods.string.number.boolean.integer.float.double.long.short.byte.char.array.object.map.set.list.vector.queue.stack.hash.table.tree.graph.pair.tuple.optional.nullable.void.unit.any.bool.bytes.none.int.str.bool.all.each.every.some.many.single.multi.first.last.next.prev.previous.current.old.temp.tmp.new.top.bottom.left.right.center.middle.start.end.begin.min.max.count.total.sum.avg.size.length.width.height.depth.flag.num.idx.id.uid.uuid.num.str.val.obj.arr.fn.cb.ctx.req.res.err.msg.src.dst.evt.doc.db.io.fs.os.env.sys.http.https.url.uri.path.port.host.tcp.udp.ssl.tls.html.css.json.xml.yml.yaml.csv.sql.regex.utf.ascii.rgb.rgba.hex.px.em.rem.vh.vw.auto.inherit.initial.application.file.local.source.messages.logging.alerting.programmed.offset.offsets.zone.zoned.decimal.big.integer.constructor.mapper.captor.publisher.verify.subscriber.org.edr.ack.ref.ssr.ssg.csr.isr.mockito.junit.vitest.jest.mocha.rspec.pytest.cypress.playwright.captor.spy.given.then.verify.times.never.invocation.argumentcaptor.inorder.donothing.doreturn.ippon.springframework.jakarta.javax.todo.fixme.hack.note.deprecated.experimental.eslint.prettier.typescript.javascript.java.kotlin.python.golang.rust.csharp.swift.ruby.spring.boot.javax.jakarta.hibernate.lombok.gradle.maven.webpack.vite.react.angular.vue.svelte.nuxt.express.fastapi.flask.django.rails.fiber.gin.actix.tokio.asyncio.junit.jest.mocha.pytest.rspec.docker.kubernetes.aws.gcp.azure.terraform.ansible.nginx.apache.linux.nextjs.remix.astro.sveltekit.gatsby.nuxtjs.qwik.solid.vercel.netlify.cloudflare.supabase.firebase.mongodb.postgres.prisma.drizzle.typeorm.sequelize.mongoose.redis.neon.trpc.graphql.grpc.rest.openapi.swagger.zod.yup.valibot.tailwind.shadcn.radix.headless.chakra.mantine.antd.mui.tanstack.tanstackquery.zustand.jotai.recoil.redux.mobx.storybook.cypress.playwright.vitest.turbopack.turborepo.getserversideprops.getstaticprops.getstaticpaths.generatestaticparams.generatemetadata.serveraction.revalidate.notfound.redirect.permanentredirect.unstablecache.unstablenostore.cookies.headers.userouter.usepathname.usesearchparams.useparams.useformstate.useformstatus.useoptimistic.useserveraction.classname.onclick.onchange.onsubmit.onfocus.onblur.onkeydown.onkeyup.onmousedown.onmouseup.defaultvalue.htmlfor.tabindex.strokewidth.viewbox.fillopacity.strokeopacity.pathdata.children.fragment.portal.suspense.errorboundary.strictmode.createelement.createcontext.createref.forwardref.usestate.useeffect.useref.usecontext.usememo.usecallback.usereducer.useid.usetransition.usedeferredvalue.useimperativehandle.mutex.lock.thread.goroutine.coroutine.channel.buffer.stream.pipe.observable.promise.future.completable.deferred.disposable.lifecycle.scope.annotation.attribute.metadata.reflection.generic.template.macro.preprocessor.compiler.runtime.debug.release.production.development.staging.build.deploy.lint.coverage.report.the.and.for.are.but.not.you.all.this.that.with.have.from.they.will.been.can.has.was.its.our.their.more.also.when.what.about.which.would.into.than.then.each.just.over.after.such.here.some.were.very.only`.split(`.`));function i(e){return n.has(e)||r.has(e)||e.length<3||/^\d+$/.test(e)||/^[^a-z]/.test(e)}function a(e){return e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/[_\-./]+/g,` `).toLowerCase().trim().split(/\s+/).filter(e=>e.length>=3)}function o(e){return e.toLowerCase().split(/[^a-zàâäéèêëïîôùûü]+/).filter(e=>e.length>=3)}let s=[{value:`adoc`,cat:`prose`},{value:`asciidoc`,cat:`prose`},{value:`asm`,cat:`code`},{value:`astro`,cat:`code`},{value:`avsc`,cat:`config`},{value:`bash`,cat:`code`},{value:`bat`,cat:`code`},{value:`bicep`,cat:`config`},{value:`c`,cat:`code`},{value:`cc`,cat:`code`},{value:`cfg`,cat:`config`},{value:`cjs`,cat:`code`},{value:`clj`,cat:`code`},{value:`cljs`,cat:`code`},{value:`cmake`,cat:`code`},{value:`cmd`,cat:`code`},{value:`conf`,cat:`config`},{value:`cpp`,cat:`code`},{value:`cql`,cat:`code`},{value:`cs`,cat:`code`},{value:`cshtml`,cat:`code`},{value:`css`,cat:`config`},{value:`cxx`,cat:`code`},{value:`dart`,cat:`code`},{value:`env`,cat:`config`},{value:`erb`,cat:`code`},{value:`erl`,cat:`code`},{value:`ex`,cat:`code`},{value:`exs`,cat:`code`},{value:`fish`,cat:`code`},{value:`fs`,cat:`code`},{value:`fsx`,cat:`code`},{value:`go`,cat:`code`},{value:`gql`,cat:`code`},{value:`gradle`,cat:`code`},{value:`graphql`,cat:`code`},{value:`groovy`,cat:`code`},{value:`h`,cat:`code`},{value:`hcl`,cat:`config`},{value:`hpp`,cat:`code`},{value:`hs`,cat:`code`},{value:`html`,cat:`config`},{value:`ini`,cat:`config`},{value:`java`,cat:`code`},{value:`jl`,cat:`code`},{value:`js`,cat:`code`},{value:`json`,cat:`config`},{value:`jsx`,cat:`code`,jsx:!0},{value:`kt`,cat:`code`},{value:`less`,cat:`config`},{value:`lua`,cat:`code`},{value:`m`,cat:`code`},{value:`md`,cat:`prose`,def:!0},{value:`mdx`,cat:`prose`},{value:`mjs`,cat:`code`},{value:`mk`,cat:`code`},{value:`ml`,cat:`code`},{value:`mli`,cat:`code`},{value:`mm`,cat:`code`},{value:`nim`,cat:`code`},{value:`php`,cat:`code`},{value:`pl`,cat:`code`},{value:`prisma`,cat:`code`},{value:`properties`,cat:`config`},{value:`proto`,cat:`code`},{value:`ps1`,cat:`code`},{value:`py`,cat:`code`},{value:`r`,cat:`code`},{value:`razor`,cat:`code`},{value:`rb`,cat:`code`},{value:`rs`,cat:`code`},{value:`rst`,cat:`prose`},{value:`s`,cat:`code`},{value:`scala`,cat:`code`},{value:`scss`,cat:`config`},{value:`sh`,cat:`code`},{value:`sol`,cat:`code`},{value:`sql`,cat:`code`},{value:`styl`,cat:`config`},{value:`svelte`,cat:`code`},{value:`swift`,cat:`code`},{value:`tex`,cat:`prose`},{value:`tf`,cat:`config`},{value:`tfvars`,cat:`config`},{value:`thrift`,cat:`code`},{value:`toml`,cat:`config`},{value:`ts`,cat:`code`},{value:`tsx`,cat:`code`,jsx:!0},{value:`txt`,cat:`prose`},{value:`v`,cat:`code`},{value:`vb`,cat:`code`},{value:`vue`,cat:`code`},{value:`xml`,cat:`config`},{value:`yaml`,cat:`config`},{value:`yml`,cat:`config`},{value:`zig`,cat:`code`},{value:`zsh`,cat:`code`}],c=new Set(s.filter(e=>e.cat===`prose`).map(e=>e.value)),l=new Set(s.filter(e=>e.cat===`code`).map(e=>e.value)),u=new Set(s.filter(e=>e.cat===`config`).map(e=>e.value)),d=new Set(s.filter(e=>e.jsx).map(e=>e.value));function f(e,t){let n=[];if(c.has(t)){let t=e.replace(/^\s*(import|export\s+\{[^}]*\}|export\s+\*|package|require|#include|from\s+['"][^'"]+['"]\s*(import)?)\b.*/gm,``).replace(/```[\s\S]*?```/g,` `).replace(/`[^`\n]+`/g,` `).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/https?:\/\/\S+/g,` `).replace(/[#*_~>`|!\[\](){}=+\-]/g,` `);n.push(...o(t))}else l.has(t)?(d.has(t)&&(e=e.replace(/<\/?[A-Z][A-Za-z0-9.]*[^>]*>/g,` `),e=e.replace(/<\/?(div|span|main|section|article|aside|nav|header|footer|form|input|button|select|option|textarea|table|thead|tbody|tr|td|th|ul|ol|li|a|img|p|h[1-6]|label|figure|figcaption|picture|video|audio|canvas|svg|path|circle|rect|g|defs|use|link|meta|head|html|body|script|style|br|hr|strong|em|code|pre|blockquote|small|sub|sup)\b[^>]*>/gi,` `),e=e.replace(/\b(className|onClick|onChange|onSubmit|onFocus|onBlur|onKeyDown|onKeyUp|onMouseDown|onMouseUp|htmlFor|tabIndex|strokeWidth|viewBox|fillOpacity|strokeOpacity|defaultValue|placeholder|disabled|checked|readOnly|required|multiple|autoFocus|autoComplete|type|href|src|alt|width|height|style|key|ref)\s*=/g,` =`)),e=e.replace(/^\s*(import\s+[\w.*{},\s'"@/-]+;?|from\s+['"][^'"]+['"]\s*;?|package\s+[\w.]+;?|namespace\s+[\w.]+;?|using\s+[\w.]+;?|require\s*\(?\s*['"][^'"]+['"]\s*\)?;?)\s*$/gm,``),e.replace(/(?:\/\/|#(?!.*[{}[\]<>])| -- )\s*(.+)$/gm,(e,t)=>(n.push(...o(t)),e)),e.replace(/\/\*[\s\S]*?\*\//g,e=>(n.push(...o(e)),e)),e.replace(/"""[\s\S]*?"""|'''[\s\S]*?'''/g,e=>(n.push(...o(e)),e)),e.replace(/["'`]([A-Za-zÀ-ÿ][A-Za-zÀ-ÿ\s,.'éàèùâêîôûç]{3,})["'`]/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e))):u.has(t)&&(e.replace(/:\s*["']([^"']{3,})["']/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e)));return n.filter(e=>!i(e))}let p=P(``),m=P(``),h=P(1),g=P(``),_=P(!0),v=P(!1),y=P(I(s.map(e=>({value:e.value,label:`.`+e.value,checked:!!e.def}))));function b(){return V(y).filter(e=>e.checked).map(e=>e.value)}let x=N(()=>V(y).every(e=>e.checked)),S=P(null),C=P(null),w=P(0),T=P(null),E=P(I([])),D=P(I([])),ee=P(!1),te=P(``),O=P(0),k=P(I([]));function ne(){localStorage.setItem(`wc-exts`,JSON.stringify(b()))}function A(){let e=V(x);F(y,V(y).map(t=>({...t,checked:!e})),!0),ne()}function re(){ne()}function ie(){return new Set((V(m)||``).split(/[\n,]/).map(e=>e.trim()).filter(Boolean))}function ae(e){let t=ie();t.has(e)||(t.add(e),F(m,[...t].join(`, `),!0),localStorage.setItem(`wc-exclude`,V(m)),V(ue)&&_e(V(fe)),se())}function oe(){localStorage.setItem(`wc-exclude`,V(m)),V(ue)&&_e(V(fe)),se()}function se(){V(ee)&&V(te)&&Ne(V(te))}function ce(){V(S)&&Me()}function le(){let e=localStorage.getItem(`wc-root`);e&&(F(p,e,!0),F(xe,e,!0));let t=localStorage.getItem(`wc-exclude`);t&&F(m,t,!0);let n=localStorage.getItem(`wc-exts`);if(n)try{let e=JSON.parse(n);F(y,V(y).map(t=>({...t,checked:e.includes(t.value)})),!0)}catch{}}let ue=P(!1),de=P(null),fe=P(``),pe=P(``),me=P(null),he=P(``);function ge(){F(ue,!V(ue)),V(ue)&&_e(V(fe)||V(p)||`/`)}async function _e(e){F(me,null),F(he,`Loading…`);try{let t=await fetch(`/api/browse?all=1&path=`+encodeURIComponent(e)).then(e=>e.json());F(fe,t.current,!0),F(de,t.parent,!0),F(pe,t.current,!0);let n=V(p).trim(),r=(e,t)=>n&&e.startsWith(n+`/`)?e.slice(n.length+1):t,i=ie(),a=(t.dirs||[]).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`dir`,name:e.name,path:e.path,entry:r(e.path,e.name)})),o=b(),s=(t.files||[]).filter(e=>o.some(t=>e.name.endsWith(`.`+t))).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`file`,name:e.name,entry:r(e.path,e.name)})),c=[...a,...s];F(me,c,!0),F(he,c.length?``:`Empty directory`,!0)}catch{F(me,[],!0),F(he,`Cannot read directory`)}}function ve(){V(de)&&_e(V(de))}let ye=P(!1),be=P(null),xe=P(``),Se=P(``),Ce=P(null),we=P(``);function Te(){F(ye,!V(ye)),V(ye)&&Ee(V(xe)||V(p)||`/`)}async function Ee(e){F(Ce,null),F(we,`Loading…`);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(xe,t.current,!0),F(be,t.parent,!0),F(Se,t.current,!0),F(Ce,(t.dirs||[]).map(e=>({name:e.name,path:e.path})),!0),F(we,V(Ce).length?``:`No sub-folders`,!0)}catch{F(Ce,[],!0),F(we,`Cannot read directory`)}}function De(){V(be)&&Ee(V(be))}function Oe(){F(p,V(xe),!0),localStorage.setItem(`wc-root`,V(xe)),F(ye,!1),F(m,``),localStorage.removeItem(`wc-exclude`),F(fe,V(xe),!0)}let ke=P(null),Ae=P(null),je=P(!1);function Me(){if(!V(S)||!V(C))return;let e=Math.max(1,V(h)||1),t=[...V(S).entries()].sort((e,t)=>t[1]-e[1]),n=t.filter(([t])=>(V(C).get(t)||new Set).size>=e).slice(0,150);if(!n.length){let n=t.length;F(g,n?`${n} domain word(s) found but none appear in ${e}+ file(s). Lower the "Min files" threshold to 1.`:`No domain words extracted. Try adding more file extensions or a broader folder.`,!0),F(_,!0),F(je,!1),F(v,!1);return}let r=[...V(S).keys()].filter(t=>(V(C).get(t)||new Set).size>=e).length;F(T,{scanned:V(w),unique:r,shown:n.length},!0);let i=n.slice(0,50),a=i[0][1];F(D,i.map(([e,t])=>({word:e,freq:t,pct:Math.round(t/a*100)})),!0),F(v,!0),F(_,!1);let o=document.documentElement.classList.contains(`dark`),s=o?[`#60a5fa`,`#34d399`,`#f9a8d4`,`#a78bfa`,`#fbbf24`,`#6ee7b7`,`#93c5fd`,`#fb923c`,`#4ade80`,`#f472b6`]:[`#1d4ed8`,`#047857`,`#7c3aed`,`#b45309`,`#be123c`,`#0369a1`,`#4338ca`,`#c2410c`,`#15803d`,`#9333ea`];requestAnimationFrame(()=>{if(!V(ke)||!V(Ae))return;let e=V(ke),t=V(Ae);e.width=Math.max(400,t.offsetWidth),e.height=Math.max(300,t.offsetHeight),e.style.width=e.width+`px`,e.style.height=e.height+`px`,F(je,!0);let n=Math.sqrt(e.width*e.height/(800*500)),r=Math.min(220,Math.round(72*n)),c=i.map(([e,t])=>[e,Math.max(12,Math.round(r*t/a))]);window.WordCloud?.(e,{list:c,gridSize:Math.round(4*e.width/1024),fontFamily:`ui-sans-serif, system-ui, sans-serif`,color:()=>s[Math.floor(Math.random()*s.length)],backgroundColor:o?`#030712`:`#ffffff`,rotateRatio:.2,minSize:6,shrinkToFit:!0,click:e=>Ne(e[0])})})}function Ne(e){if(!V(C)||!V(S))return;let t=[...V(C).get(e)||[]].sort(),n=V(S).get(e)||0;F(te,e,!0),F(O,n,!0),F(k,t,!0),F(ee,!0)}function Pe(){F(ee,!1)}async function Fe(){let e=V(p).trim();if(!e){F(g,`Please select a root folder first.`),F(_,!0);return}let t=b();if(!t.length){F(g,`Please select at least one extension.`),F(_,!0);return}F(ye,!1),F(v,!1),F(ee,!1),F(g,`Reading files…`),F(_,!0),F(je,!1);try{let n=V(m).trim(),r=n?n.split(/[\n,]/).map(e=>e.trim()).filter(Boolean):[];localStorage.setItem(`wc-exclude`,n);let i=new URLSearchParams({path:e});t.forEach(e=>i.append(`ext`,e)),r.forEach(e=>i.append(`exclude`,e));let a=await fetch(`/api/wordcloud?`+i);if(!a.ok){F(g,`Error: `+((await a.json()).error||a.statusText));return}let{files:o,fileTexts:s}=await a.json();F(g,`Analyzing ${o} file(s)…`);let c=new Map,l=new Map,u=new Set;F(w,o,!0);for(let{path:e,text:t}of s){let n=(e.split(`.`).pop()||``).toLowerCase();n&&u.add(n);let r=f(t,n),i=new Set;for(let t of r)c.set(t,(c.get(t)||0)+1),i.has(t)||(i.add(t),l.has(t)||l.set(t,new Set),l.get(t).add(e))}F(S,c,!0),F(C,l,!0),F(E,[...u].sort().map(e=>`.`+e),!0),Me()}catch(e){F(g,`Error: `+e.message)}}let Ie=!1;kn(()=>{t.open&&!Ie?(Ie=!0,F(g,`Choose a root folder and click Launch.`),F(_,!0),F(je,!1),F(v,!1),F(ee,!1),F(S,null),F(C,null),F(T,null),F(D,[],!0),F(ye,!1),F(ue,!1),F(h,1),le(),V(p)||fetch(`/api/config`).then(e=>e.json()).then(e=>{e.docsFolder&&(F(p,e.docsFolder,!0),F(xe,e.docsFolder,!0))}).catch(()=>{})):t.open||(Ie=!1)});var Le=Wr(),Re=R(Le),ze=e=>{var n=zw(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(r);var c=z(r,2),l=L(c),u=L(l),d=L(u,!0);j(u);var f=z(u,2);Di(f);var b=z(f,2),S=z(L(b)),C=L(S,!0);j(S),j(b);var w=z(b,2),ne=L(w,!0);j(w),j(l);var ie=z(l,2),se=L(ie),le=L(se,!0);j(se);var fe=z(se,2);yn(fe);var xe=z(fe,2),Me=z(L(xe)),Ie=L(Me,!0);j(Me),j(xe),j(ie);var Le=z(ie,2),Re=e=>{var t=Ew(),n=L(t),r=L(n),i=z(r,2),a=L(i,!0);j(i),j(n);var o=z(n,2),s=L(o),c=e=>{var t=Sw(),n=L(t,!0);j(t),B(()=>G(n,V(he))),W(e,t)},l=e=>{var t=Cw(),n=L(t,!0);j(t),B(()=>{gi(t,1,`px-3 py-3 text-xs ${V(he)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),G(n,V(he))}),W(e,t)},u=e=>{var t=Wr();q(R(t),17,()=>V(me),Xr,(e,t)=>{var n=Wr(),r=R(n),i=e=>{var n=ww(),r=L(n),i=z(L(r),2),a=L(i,!0);j(i),j(r);var o=z(r,2);j(n),B(()=>G(a,V(t).name)),H(`click`,r,()=>_e(V(t).path)),H(`click`,o,()=>ae(V(t).entry)),W(e,n)},a=e=>{var n=Tw(),r=L(n),i=z(L(r),2),a=L(i,!0);j(i),j(r);var o=z(r,2);j(n),B(()=>G(a,V(t).name)),H(`click`,o,()=>ae(V(t).entry)),W(e,n)};K(r,e=>{V(t).kind===`dir`?e(i):e(a,-1)}),W(e,n)}),W(e,t)};K(s,e=>{V(me)===null?e(c):V(me).length===0?e(l,1):e(u,-1)}),j(o),j(t),B(()=>{r.disabled=!V(de),G(a,V(pe))}),H(`click`,r,ve),W(e,t)};K(Le,e=>{V(ue)&&e(Re)});var ze=z(Le,2),Be=L(ze),Ve=L(Be,!0);j(Be);var He=z(Be,2),Ue=L(He);Di(Ue);var We=z(Ue);j(He),q(z(He,2),17,()=>V(y),e=>e.value,(e,t,n)=>{var r=Dw(),i=L(r);Di(i);var a=z(i);j(r),B(()=>G(a,` ${V(t).label??``}`)),H(`change`,i,re),Ii(i,()=>V(t).checked,e=>V(t).checked=e),W(e,r)}),j(ze);var Ge=z(ze,2),Ke=e=>{var t=Ew(),n=L(t),r=L(n),i=z(r,2),a=L(i,!0);j(i),j(n);var o=z(n,2),s=L(o),c=e=>{var t=Sw(),n=L(t,!0);j(t),B(()=>G(n,V(we))),W(e,t)},l=e=>{var t=Aw(),n=R(t),r=e=>{var t=Cw(),n=L(t,!0);j(t),B(()=>{gi(t,1,`px-3 py-3 text-xs ${V(we)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),G(n,V(we))}),W(e,t)},i=e=>{var t=Wr();q(R(t),17,()=>V(Ce),Xr,(e,t)=>{var n=Ow(),r=L(n),i=z(L(r),2),a=L(i,!0);j(i),j(r);var o=z(r,2);j(n),B(()=>G(a,V(t).name)),H(`click`,r,()=>Ee(V(t).path)),H(`click`,o,()=>ae(V(t).name)),W(e,n)}),W(e,t)};K(n,e=>{V(Ce).length===0?e(r):e(i,-1)});var a=z(n,2),o=e=>{var t=kw(),n=z(L(t)),r=L(n,!0);j(n),j(t),B(()=>G(r,V(Se))),H(`click`,t,Oe),W(e,t)};K(a,e=>{V(we)!==`Cannot read directory`&&e(o)}),W(e,t)};K(s,e=>{V(Ce)===null?e(c):e(l,-1)}),j(o),j(t),B(()=>{r.disabled=!V(be),G(a,V(Se))}),H(`click`,r,De),W(e,t)};K(Ge,e=>{V(ye)&&e(Ke)}),j(c);var qe=z(c,2),Je=L(qe),Ye=e=>{var t=Pw(),n=L(t),r=L(n),i=e=>{var t=Mw(),n=R(t),r=L(n);j(n);var i=z(n,2),a=L(i);j(i);var o=z(i,2),s=L(o);j(o);var c=z(o,2),l=e=>{var t=jw(),n=L(t);j(t),B((e,r)=>{J(t,`title`,e),G(n,`${V(E).length??``} extension${V(E).length>1?`s`:``} found (${r??``})`)},[()=>V(E).join(`, `),()=>V(E).join(`, `)]),W(e,t)};K(c,e=>{V(E).length&&e(l)}),B(()=>{G(r,`${V(T).scanned??``} file(s) scanned`),G(a,`${V(T).unique??``} unique domain words`),G(s,`${V(T).shown??``} shown`)}),W(e,t)};K(r,e=>{V(T)&&e(i)}),j(n);var a=z(n,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2);Di(c);var l=z(c,2),u=L(l,!0);j(l),j(a);var d=z(a,2),f=L(d,!0);j(d);var p=z(d,2);q(p,21,()=>V(D),Xr,(e,t,n)=>{var r=Nw(),i=L(r);i.textContent=n+1;var a=z(i,2),o=L(a),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o);var d=z(o,2),f=L(d);j(d),j(a),j(r),B(()=>{G(c,V(t).word),G(u,V(t).freq),vi(f,`width:${V(t).pct??``}%`)}),H(`click`,r,()=>Ne(V(t).word)),W(e,r)}),j(p),j(t),B((e,t,n,r,i,a)=>{J(o,`title`,e),G(s,t),J(c,`title`,n),J(l,`title`,r),G(u,i),G(f,a)},[()=>Y(`wc.min_files_hint`),()=>Y(`wc.min_files_label`),()=>Y(`wc.min_files_hint`),()=>Y(`wc.apply_hint`),()=>Y(`wc.apply_btn`),()=>Y(`wc.top_words`)]),Ni(c,()=>V(h),e=>F(h,e)),H(`click`,l,ce),W(e,t)};K(Je,e=>{V(v)&&e(Ye)});var Xe=z(Je,2),Ze=L(Xe),Qe=e=>{var t=Fw(),n=L(t,!0);j(t),B(()=>G(n,V(g))),W(e,t)};K(Ze,e=>{V(_)&&e(Qe)});var $e=z(Ze,2);let et;Vi($e,e=>F(ke,e),()=>V(ke)),j(Xe),Vi(Xe,e=>F(Ae,e),()=>V(Ae));var tt=z(Xe,2),nt=e=>{var t=Rw(),n=L(t),r=L(n),i=L(r);j(r);var a=z(r,2);j(n);var o=z(n,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=e=>{var t=Wr();q(R(t),17,()=>V(k),Xr,(e,t)=>{var n=Iw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);j(n),B(()=>G(i,V(t))),H(`click`,a,()=>ae(V(t))),W(e,n)}),W(e,t)},d=e=>{W(e,Lw())};K(l,e=>{V(k).length?e(u):e(d,-1)}),j(c),j(t),B(e=>{G(i,`${V(te)??``} ×${V(O)??``}`),G(s,e)},[()=>Y(`wc.found_in`)]),H(`click`,a,Pe),W(e,t)};K(tt,e=>{V(ee)&&e(nt)}),j(qe),j(n),B((e,t,n,r,i,o,c,l,u,f)=>{G(a,e),G(s,t),G(d,n),G(C,r),G(ne,i),G(le,o),J(fe,`placeholder`,c),G(Ie,l),G(Ve,u),ki(Ue,V(x)),G(We,` ${f??``}`),et=gi($e,1,``,null,et,{hidden:!V(je)})},[()=>Y(`wc.title`),()=>Y(`wc.close_btn`),()=>Y(`wc.search_root_label`),()=>Y(`wc.browse_btn`),()=>Y(`wc.launch_btn`),()=>Y(`wc.exclude_label`),()=>Y(`wc.exclude_placeholder`),()=>Y(`wc.browse_btn`),()=>Y(`wc.extensions_label`),()=>Y(`wc.all_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),Ni(f,()=>V(p),e=>F(p,e)),H(`click`,b,Te),H(`click`,w,Fe),H(`input`,fe,oe),Ni(fe,()=>V(m),e=>F(m,e)),H(`click`,xe,ge),H(`change`,Ue,A),W(e,n)};K(Re,e=>{t.open&&e(ze)}),W(e,Le),Je()}Pr([`click`,`input`,`change`]);var Vw=U(`<button title="Toggle dark mode" class="ghost-button" aria-label="Toggle dark mode"> </button>`),Hw=U(`<button class="ghost-button"><i class="fa-solid fa-cloud"></i></button> <!>`,1),Uw=U(`<div class="relative hidden sm:block"><input type="search" class="w-56 pl-8 pr-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="absolute left-2.5 top-2 text-gray-400 text-sm pointer-events-none">🔍</span></div>`),Ww=U(`<p class="p-8 text-red-500"> </p>`),Gw=U(`<div class="h-full flex items-center justify-center p-8"><div class="max-w-md text-center"><div class="text-5xl mb-4 select-none" aria-hidden="true">📚</div> <h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-2"> </h2> <p class="text-sm text-gray-500 dark:text-gray-500"> </p> <p class="mt-4 text-xs text-gray-400 dark:text-gray-600 font-mono bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 inline-block"> </p> <p class="mt-2 text-xs text-gray-400"> </p></div></div>`),Kw=U(`<div class="app-shell bg-gray-50 text-gray-900 dark:bg-gray-900 dark:text-gray-100"><!> <div class="flex overflow-hidden"><!> <main id="home-content-area" class="flex-1 overflow-y-auto"><!></main></div></div> <!> <!> <!> <!>`,1);function qw(e,t){qe(t,!0);let n=P(!1),r=P(!1),i=P(!1),a=P(!1),o=P(null),s=P(!1),c=P(``),l=P(!1),u=P(!1),d=P(`Living AI Documentation`),f=P(`YYYY_MM_DD_HH_mm_[Category]_title.md`),p=null;function m(){try{let e=localStorage.getItem(`ld-dark`);if(e!==null)return e===`true`}catch{}return window.matchMedia(`(prefers-color-scheme: dark)`).matches}function h(e){ns()&&(e=!1),F(l,e,!0),document.documentElement.classList.toggle(`dark`,e)}function g(){h(!V(l));try{localStorage.setItem(`ld-dark`,String(V(l)))}catch{}}kn(()=>{let e=document.getElementById(`hljs-dark`),t=document.getElementById(`hljs-light`);if(!e||!t)return;let n=X.codeBlockLightTheme&&!V(l);e.disabled=n,t.disabled=!n,document.body.classList.toggle(`ld-code-light`,n)});function _(e){let t=e.trim();if(p&&clearTimeout(p),!t){X.searchQuery=``,X.searchResults=null;return}X.searchQuery=t,X.searchResults=X.allDocs.filter(e=>e.title.toLowerCase().includes(t.toLowerCase())||e.category.toLowerCase().includes(t.toLowerCase())),p=window.setTimeout(async()=>{try{let e=await A_(t);t===X.searchQuery&&(X.searchResults=e)}catch{}},350)}let v=P(I([]));function y(e){let t=V(v)[e];t&&(F(v,V(v).slice(0,e),!0),b(t.id,!1,`restore`))}async function b(e,t=!1,n=!1,r=null){if(n===!0&&X.currentDocId&&X.currentDocId!==e){let t=V(v).findIndex(t=>t.id===e);if(t!==-1)F(v,V(v).slice(0,t),!0);else{let e=X.allDocs.find(e=>e.id===X.currentDocId);F(v,[...V(v),{id:X.currentDocId,title:e?e.title:X.currentDocId}],!0)}}else n||F(v,[],!0);X.currentDocId=e;let i=X.allDocs.find(t=>t.id===e);if(i&&X.revealDoc(i),!t){let t=new URL(location.href);t.searchParams.set(`doc`,e),t.hash=r?`#${r}`:``,history.pushState({docId:e,anchor:r||null},``,t)}F(s,!0),F(c,``);try{let t=await E_(e);t.id=e,F(o,t,!0),document.title=t.title,requestAnimationFrame(()=>{let e=document.getElementById(`home-content-area`);if(r){let t=document.getElementById(r);t&&e&&(e.scrollTop+=t.getBoundingClientRect().top-e.getBoundingClientRect().top-80)}else e&&(e.scrollTop=0)})}catch(e){F(c,Y(`doc.failed_to_load`)+(e instanceof Error?e.message:String(e)))}finally{F(s,!1)}}async function x(e){if(!V(o))return;let t=V(o).id,n=await fetch(`/api/documents/`+t,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:e})});if(!n.ok)throw Error(await n.text());let r=await E_(t);r.id=t,F(o,r,!0);let i=e.match(/\]\(\s*\.?\/files\/[^)\s]+/g),a={...X.fileAttachmentCounts};i&&i.length?a[t]=i.length:delete a[t],X.fileAttachmentCounts=a}function S(e){let t=X.allDocs.find(t=>t.id===e);if(!t)return null;let n=(t.folder||[]).join(`/`),r=e=>(e.folder||[]).join(`/`)===n,i=X.hideCategories?X.allDocs.filter(r).slice().sort((e,t)=>(e.filename||``).localeCompare(t.filename||``)):X.allDocs.filter(e=>r(e)&&e.category===t.category),a=i.findIndex(t=>t.id===e);if(a===-1)return null;let o=i[a+1]??i[a-1];return o?o.id:null}async function C(){if(!V(o))return;let e=V(o).id;if(!(await fetch(`/api/documents/`+encodeURIComponent(e),{method:`DELETE`})).ok)return;let t=S(e);X.allDocs=X.allDocs.filter(t=>t.id!==e),Array.isArray(X.searchResults)&&(X.searchResults=X.searchResults.filter(t=>t.id!==e));let n={...X.annotationCounts};delete n[e],X.annotationCounts=n;let r={...X.fileAttachmentCounts};delete r[e],X.fileAttachmentCounts=r,t?await b(t):(X.currentDocId=null,F(o,null),history.pushState({},``,location.pathname))}async function w(){let[e,t]=await Promise.all([w_(),C_()]);if(X.allDocs=e,X.docsFolder=typeof t.docsFolder==`string`?t.docsFolder:``,t.docsFolder)try{X.allFolderPaths=await T_(t.docsFolder)}catch{X.allFolderPaths=[]}let[n,r,i]=await Promise.all([D_(),O_(),k_()]);X.annotationCounts=n,X.fileAttachmentCounts=r,X.docStatuses=i}Gi(async()=>{F(u,ns(),!0),h(m());let e=await C_();await ya(e.language||`en`),e.title&&(document.title=e.title,F(d,e.title,!0)),e.filenamePattern&&F(f,e.filenamePattern+`.md`),X.exclusiveFolderExpansion=!!e.exclusiveFolderExpansion,X.exclusiveCategoryExpansion=!!e.exclusiveCategoryExpansion,X.codeBlockMaxHeight=typeof e.codeBlockMaxHeight==`number`?e.codeBlockMaxHeight:400,X.imageRoundedCorners=!!e.imageRoundedCorners,X.imageCentered=!!e.imageCentered,X.imageBorder=!!e.imageBorder,X.codeBlockLightTheme=!!e.codeBlockLightTheme,X.sidebarSort=[`recent`,`oldest`,`alphabetical`].includes(e.sidebarSort)?e.sidebarSort:`recent`,X.codeBlockMaxHeight>0&&document.documentElement.style.setProperty(`--ld-code-max-h`,X.codeBlockMaxHeight+`px`),X.expandedCategories.size===0&&(X.expandedCategories=new Set([`DOCUMENTATION`,`General`])),await w();let t=new URLSearchParams(location.search).get(`doc`);if(t)b(t,!0,!1,location.hash?location.hash.slice(1):null);else{let t=Array.isArray(e.favorites)?e.favorites:[],n=t.length?t[0]?.id:void 0,r=(n?X.allDocs.find(e=>e.id===n):void 0)??X.allDocs.find(e=>e.category===`DOCUMENTATION`)??X.allDocs.find(e=>e.category===`General`)??X.allDocs[0];r&&b(r.id,!0)}let n=e=>{let t=e.state?.docId||new URLSearchParams(location.search).get(`doc`),n=e.state?.anchor||(location.hash.length>1?location.hash.slice(1):null);t&&b(t,!0,!1,n)};window.addEventListener(`popstate`,n);let r=()=>{w()};return window.addEventListener(`ld:documents-changed`,r),()=>{window.removeEventListener(`popstate`,n),window.removeEventListener(`ld:documents-changed`,r)}});var T=Kw(),E=R(T),D=L(E);Qo(D,{get title(){return V(d)},subtitle:``,actions:e=>{var t=Hw(),n=R(t),r=z(n,2),i=e=>{var t=Vw(),n=L(t,!0);j(t),B(()=>G(n,V(l)?`☀`:`☾`)),H(`click`,t,g),W(e,t)};K(r,e=>{V(u)||e(i)}),B((e,t)=>{J(n,`title`,e),J(n,`aria-label`,t)},[()=>Y(`nav.word_cloud`),()=>Y(`nav.word_cloud`)]),H(`click`,n,()=>F(a,!0)),W(e,t)},children:(e,t)=>{var n=Uw(),r=L(n);Di(r),Ie(2),j(n),B(e=>{J(r,`placeholder`,e),Oi(r,X.searchQuery)},[()=>Y(`nav.search_placeholder`)]),H(`input`,r,e=>_(e.target.value)),W(e,n)},$$slots:{actions:!0,default:!0}});var ee=z(D,2),te=L(ee);av(te,{onopen:e=>b(e),onsearch:_,onexport:()=>F(i,!0),onnewfolder:()=>F(n,!0),onnewdoc:()=>F(r,!0)});var O=z(te,2),k=L(O),ne=e=>{var t=Wr(),n=R(t),r=e=>{var t=Ww(),n=L(t,!0);j(t),B(()=>G(n,V(c))),W(e,t)},i=e=>{aw(e,{get doc(){return V(o)},get navHistory(){return V(v)},ongoback:y,onopen:(e,t)=>b(e,!1,!0,t),onsave:x,ondelete:C})};K(n,e=>{V(c)?e(r):e(i,-1)}),W(e,t)},A=e=>{var t=Gw(),n=L(t),r=z(L(n),2),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(n),j(t),B((e,t,n)=>{G(i,e),G(o,t),G(c,V(f)),G(u,n)},[()=>Y(`welcome.title`),()=>Y(`welcome.hint`),()=>Y(`welcome.pattern_hint`)]),W(e,t)};K(k,e=>{V(o)?e(ne):e(A,-1)}),j(O),j(ee),j(E);var re=z(E,2);pw(re,{get open(){return V(n)},onclose:()=>F(n,!1),onsuccess:w});var ie=z(re,2);Ra(ie,{get open(){return V(r)},onclose:()=>F(r,!1),onsuccess:async e=>{await w(),b(e)}});var ae=z(ie,2);xw(ae,{get open(){return V(i)},onclose:()=>F(i,!1)}),Bw(z(ae,2),{get open(){return V(a)},onclose:()=>F(a,!1)}),W(e,T),Je()}Pr([`click`,`input`]);var Jw=`modulepreload`,Yw=function(e){return`/`+e},Xw={},Zw=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=Yw(t,n),t=s(t),t in Xw)return;Xw[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:Jw,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Qw=U(`<div class="flex flex-col h-screen overflow-hidden bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100"><header class="flex items-center gap-1 px-2 h-12 shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 shadow-sm z-10"><button class="tool-btn !w-auto px-2 text-xs font-medium text-gray-500 dark:text-gray-400"> </button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSidebar" class="tool-btn">☰</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnCopyDiagramId" class="tool-btn"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="8" height="9" rx="1.5"></rect><path d="M3 11V3a1 1 0 0 1 1-1h7"></path></svg></button> <button id="toolSelect" class="tool-btn tool-active"><svg width="11" height="13" viewBox="0 0 11 13" fill="currentColor" stroke="none"><path d="M1 1 L1 12 L4 9 L6.5 13 L8 12.2 L5.5 8.2 L10 8.2 Z"></path></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolBox" class="tool-btn"><svg width="15" height="10" viewBox="0 0 15 10" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="1" width="13" height="8" rx="1"></rect></svg></button> <button id="toolEllipse" class="tool-btn"><svg width="16" height="10" viewBox="0 0 16 10" fill="none" stroke="currentColor" stroke-width="1.5"><ellipse cx="8" cy="5" rx="7" ry="4"></ellipse></svg></button> <button id="toolDatabase" class="tool-btn"><svg width="12" height="16" viewBox="0 0 12 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><ellipse cx="6" cy="3" rx="5" ry="2"></ellipse><path d="M1 3v10c0 1.1 2.2 2 5 2s5-.9 5-2V3"></path><path d="M11 7.5c0 1.1-2.2 2-5 2s-5-.9-5-2"></path></svg></button> <button id="toolCircle" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="6.5" cy="6.5" r="5.5"></circle></svg></button> <button id="toolActor" class="tool-btn"><svg width="12" height="17" viewBox="0 0 12 17" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><circle cx="6" cy="3" r="2.2"></circle><line x1="6" y1="5.2" x2="6" y2="10"></line><line x1="1.5" y1="7.5" x2="10.5" y2="7.5"></line><line x1="6" y1="10" x2="2.5" y2="15"></line><line x1="6" y1="10" x2="9.5" y2="15"></line></svg></button> <button id="toolPostIt" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M1 1 H9 L12 4 V12 H1 Z"></path><path d="M9 1 V4 H12" stroke-opacity="0.5"></path></svg></button> <button id="toolTextFree" class="tool-btn" style="font-size:11px; font-weight:600;">T</button> <button id="toolImage" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" rx="1.5"></rect><circle cx="4.5" cy="4.5" r="1.2"></circle><path d="M1 9.5 L4 6.5 L6.5 9 L9 7 L13 10.5"></path></svg></button> <a href="/shape-editor" class="tool-btn">✦</a> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolArrow" class="tool-btn">→</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDelete" class="tool-btn"><svg width="11" height="11" viewBox="0 0 11 11" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><line x1="1" y1="1" x2="10" y2="10"></line><line x1="10" y1="1" x2="1" y2="10"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDiagramDefaults" class="tool-btn"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button> <button id="btnAlign" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4"><line x1="0.5" y1="7.5" x2="13.5" y2="7.5"></line><line x1="3.5" y1="0.5" x2="3.5" y2="13.5" stroke-dasharray="1.5 1.5"></line><line x1="10.5" y1="0.5" x2="10.5" y2="13.5" stroke-dasharray="1.5 1.5"></line></svg></button> <button id="btnGrid" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.2"><line x1="5" y1="1" x2="5" y2="13"></line><line x1="9" y1="1" x2="9" y2="13"></line><line x1="1" y1="5" x2="13" y2="5"></line><line x1="1" y1="9" x2="13" y2="9"></line><rect x="1" y="1" width="12" height="12" rx="1"></rect></svg></button> <button id="btnEdgeStraight" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="12" x2="12" y2="2"></line><polyline points="8,2 12,2 12,6"></polyline></svg></button> <button id="btnEvidenceMode" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 1.5 H8.5 L11 4 V12.5 H4 Z"></path><path d="M8.5 1.5 V4 H11"></path><path d="M1.5 5.5 H6.5"></path><path d="M1.5 8 H6.5"></path><path d="M1.5 10.5 H5"></path></svg></button> <button id="btnResizeMode" class="tool-btn active-tool"><svg id="icon-resize-corner" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="7,10 10,10 10,7"></polyline></svg> <svg id="icon-resize-center" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="hidden"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="4,6.5 4,4 6.5,4"></polyline><polyline points="10,7.5 10,10 7.5,10"></polyline><line x1="10" y1="4" x2="4" y2="10"></line><polyline points="7.5,4 10,4 10,6.5"></polyline><polyline points="4,7.5 4,10 6.5,10"></polyline></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <input id="diagramTitle" type="text" class="flex-1 min-w-0 px-2 py-1 text-sm bg-transparent border-0 focus:outline-none focus:ring-1 focus:ring-blue-500 rounded text-gray-700 dark:text-gray-300 placeholder:text-gray-400"/> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnZoomOut" class="tool-btn">−</button> <span id="zoomLevel" class="text-xs text-gray-500 dark:text-gray-400 w-10 text-center tabular-nums select-none">100%</span> <button id="btnZoomIn" class="tool-btn">+</button> <button id="btnZoomReset" class="tool-btn">⊡</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDark" class="tool-btn"><span id="darkIcon">☽</span></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDebug" class="hidden tool-btn text-xs font-mono">dbg</button> <div id="sepDebug" class="hidden w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnExportDrawio" class="tool-btn"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSave" disabled="" class="px-3 py-1.5 text-xs font-semibold rounded-lg bg-blue-600 hover:bg-blue-700 text-white disabled:opacity-40 disabled:cursor-not-allowed shrink-0 transition-colors"><span> </span></button></header> <div class="flex flex-1 overflow-hidden"><div id="sidebar" class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex flex-col overflow-hidden" style="transition: width 0.2s ease"><div class="flex items-center justify-between px-3 py-2 border-b border-gray-200 dark:border-gray-700 shrink-0"><span class="text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"> </span> <button id="btnNewDiagram" class="text-xs font-medium text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"> </button></div> <div id="diagramList" class="flex-1 overflow-y-auto py-1"></div></div> <div role="separator" aria-orientation="vertical"></div> <div class="relative flex-1 overflow-hidden bg-gray-50 dark:bg-gray-950"><div id="vis-canvas" class="w-full h-full"></div> <div id="customShapeBar" class="hidden"><div id="customShapeBarBody"></div></div> <div id="debugLayer"></div> <div id="evidenceLayer" class="hidden"></div> <div id="stampOverlay" style="position:absolute;inset:0;display:none;z-index:11;cursor:crosshair;"></div> <div id="selectionOverlay"><div id="rh-tl" class="resize-handle" style="top: -5px; left: -5px; cursor: nw-resize"></div> <div id="rh-tr" class="resize-handle" style="top: -5px; right: -5px; cursor: ne-resize"></div> <div id="rh-bl" class="resize-handle" style="bottom: -5px; left: -5px; cursor: sw-resize"></div> <div id="rh-br" class="resize-handle" style="bottom: -5px; right: -5px; cursor: se-resize"></div> <div id="rh-rotate">↻</div> <div id="rh-label-rotate" style="left: 0; top: -28px;"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(25,5,5)"><line x1="2.5" y1="3" x2="7.5" y2="3"></line><line x1="5" y1="3" x2="5" y2="8"></line></g></svg></div></div> <aside id="evidencePanel" class="hidden absolute top-0 right-0 bottom-0 w-80 max-w-[85vw] z-30 bg-gray-50 dark:bg-gray-900 border-l border-gray-200 dark:border-gray-700 shadow-xl flex flex-col"><div class="flex items-center justify-between gap-2 px-4 py-3 border-b border-gray-200 dark:border-gray-700"><h2 id="evidencePanelTitle" class="text-sm font-semibold text-gray-800 dark:text-gray-100"> </h2> <button id="btnEvidenceClose" class="tool-btn !w-7 !h-7">×</button></div> <div id="evidencePanelBody" class="flex-1 overflow-y-auto p-3 space-y-3"></div></aside> <div id="nodePanel" class="float-panel hidden"><button id="btnNodeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="nodePanelControls" class="contents"><button id="nodeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#f5f5f4;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <input id="nodeBgOpacity" type="range" min="0" max="100" step="5" value="100" class="w-16 h-1 accent-orange-500 cursor-pointer"/> <div class="panel-sep"></div> <button id="btnNodeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnNodeLink" class="tool-btn !w-6 !h-6"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 7.5a3.5 3.5 0 0 0 5 0l1.5-1.5a3.5 3.5 0 0 0-5-5L5 2.5"></path><path d="M8 5.5a3.5 3.5 0 0 0-5 0L1.5 7a3.5 3.5 0 0 0 5 5L8 10.5"></path></svg></button> <div class="panel-sep"></div> <button id="btnNodeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="nodeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">13</span> <button id="btnNodeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnAlignLeft" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="1" y1="5" x2="7" y2="5"></line><line x1="1" y1="8" x2="9" y2="8"></line></svg></button> <button id="btnAlignCenter" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="2.5" y1="5" x2="9.5" y2="5"></line><line x1="1.5" y1="8" x2="10.5" y2="8"></line></svg></button> <button id="btnAlignRight" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="5" y1="5" x2="11" y2="5"></line><line x1="3" y1="8" x2="11" y2="8"></line></svg></button> <div class="panel-sep"></div> <button id="btnValignTop" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="1.5" x2="9" y2="1.5" stroke-width="2"></line><line x1="1" y1="5" x2="8" y2="5" stroke-width="1.3"></line><line x1="1" y1="8.5" x2="6" y2="8.5" stroke-width="1.3"></line></svg></button> <button id="btnValignMiddle" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="2.5" x2="8" y2="2.5" stroke-width="1.3"></line><line x1="1" y1="6" x2="9" y2="6" stroke-width="2"></line><line x1="1" y1="9.5" x2="6" y2="9.5" stroke-width="1.3"></line></svg></button> <button id="btnValignBottom" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="3.5" x2="8" y2="3.5" stroke-width="1.3"></line><line x1="1" y1="7" x2="6" y2="7" stroke-width="1.3"></line><line x1="1" y1="10.5" x2="9" y2="10.5" stroke-width="2"></line></svg></button> <div class="panel-sep"></div> <div id="customShapeLabelPlacementControls" class="hidden"><button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="above">T↑</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="below">T↓</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="left">←T</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="right">T→</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="center">T□</button> <div class="panel-sep"></div></div> <button id="btnZOrderBack" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1"></rect><rect x="5" y="1" width="8" height="8" rx="1" stroke-opacity="0.35"></rect></svg></button> <button id="btnZOrderFront" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1" stroke-opacity="0.35"></rect><rect x="5" y="1" width="8" height="8" rx="1"></rect></svg></button> <div class="panel-sep"></div> <button id="btnStampColor" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M7 2 C7 2 3 6.5 3 9 a4 4 0 0 0 8 0 C11 6.5 7 2 7 2 Z" fill="currentColor" fill-opacity="0.25"></path></svg></button> <button id="btnStampFontSize" class="tool-btn !w-7 !h-6 font-mono text-xs font-bold">Aa</button> <button id="btnStampSize" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="6" height="6" rx="0.8" fill="currentColor" fill-opacity="0.25"></rect><path d="M10 2 L12 2 L12 4"></path><path d="M12 2 L9 5"></path><path d="M10 12 L12 12 L12 10"></path><path d="M12 12 L9 9"></path></svg></button> <div class="panel-sep"></div> <button id="btnRotateCCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↺</button> <button id="btnRotateCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↻</button> <div class="panel-sep"></div> <button id="btnCopyPng" class="tool-btn !h-6 px-1.5 font-mono text-xs font-semibold flex items-center gap-0.5"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="7" x2="5" y2="1"></line><polyline points="2,4 5,1 8,4"></polyline><line x1="1" y1="9" x2="9" y2="9"></line></svg> PNG</button> <div class="panel-sep"></div> <button id="btnGroup" class="tool-btn !w-8 !h-7"><svg width="22" height="14" viewBox="0 0 22 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="20.6" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="4" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="15" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <button id="btnUngroup" class="tool-btn !w-8 !h-7"><svg width="26" height="14" viewBox="0 0 26 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="3" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="16.3" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="19" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <div class="panel-sep"></div> <button id="btnSaveShapeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <div id="linkPanel" class="float-panel hidden" style="min-width:260px; flex-direction:column; align-items:stretch; gap:0.5rem; padding:0.75rem;"><div class="text-xs font-semibold text-gray-500 dark:text-gray-400 mb-1"> </div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeUrl" value="url" class="accent-orange-500"/> <span> </span></label> <div id="linkUrlRow"><input id="linkUrlInput" type="url" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeDiagram" value="diagram" class="accent-orange-500"/> <span> </span></label> <div id="linkDiagramRow" class="hidden"><select id="linkDiagramSelect" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"></select></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeNew" value="new" class="accent-orange-500"/> <span> </span></label> <div id="linkNewRow" class="hidden"><input id="linkNewName" type="text" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <div class="flex gap-1 mt-1"><button id="btnLinkSave" class="flex-1 text-xs bg-orange-500 hover:bg-orange-600 text-white rounded px-2 py-1"> </button> <button id="btnLinkRemove" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-red-50 dark:hover:bg-red-900/20 hover:text-red-600"> </button> <button id="btnLinkCancel" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-gray-100 dark:hover:bg-gray-700">✕</button></div></div> <div id="edgePanel" class="float-panel hidden"><button id="btnEdgeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="edgePanelControls" class="contents"><button id="edgeBtnNone" class="tool-btn !w-7 !h-6 font-mono text-xs">—</button> <button id="edgeBtnFrom" class="tool-btn !w-7 !h-6 text-xs">←</button> <button id="edgeBtnTo" class="tool-btn !w-7 !h-6 text-xs">→</button> <button id="edgeBtnBoth" class="tool-btn !w-8 !h-6 text-xs">←→</button> <div class="panel-sep"></div> <button id="edgeBtnSolid" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line></svg></button> <button id="edgeBtnDashed" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="4,3"></line></svg></button> <div class="panel-sep"></div> <button id="btnEdgeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="edgeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">11</span> <button id="btnEdgeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnEdgeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnEdgeLabelWidthReset" class="tool-btn !w-6 !h-6 text-xs">↔</button> <div class="panel-sep"></div> <button id="btnEdgeLabelRotateCCW" class="tool-btn !w-7 !h-6 text-sm">↺</button> <button id="btnEdgeLabelRotateCW" class="tool-btn !w-7 !h-6 text-sm">↻</button> <div class="panel-sep"></div> <button id="btnEdgeLabelOffsetLeft" class="tool-btn !w-6 !h-6 text-sm">←</button> <button id="btnEdgeLabelOffsetRight" class="tool-btn !w-6 !h-6 text-sm">→</button> <button id="btnEdgeLabelOffsetUp" class="tool-btn !w-6 !h-6 text-sm">↑</button> <button id="btnEdgeLabelOffsetDown" class="tool-btn !w-6 !h-6 text-sm">↓</button> <button id="btnEdgeLabelOffsetReset" class="tool-btn !w-6 !h-6 text-xs">⊙</button> <div class="panel-sep"></div> <button id="btnEdgeWidthDecrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W−</button> <button id="btnEdgeWidthIncrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W+</button> <div class="panel-sep"></div> <button id="edgeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#a8a29e;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <button id="btnEdgeClearPorts" class="tool-btn !w-8 !h-6 text-xs">⊗</button> <div class="panel-sep"></div> <button id="btnSaveEdgeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <textarea id="labelInput" class="hidden" rows="1"></textarea> <div id="emptyState" class="absolute inset-0 flex flex-col items-center justify-center text-gray-400 dark:text-gray-600 pointer-events-none select-none"><svg width="52" height="44" viewBox="0 0 52 44" fill="none" stroke="currentColor" stroke-width="1.5" class="mb-3 opacity-50"><rect x="2" y="4" width="18" height="12" rx="2"></rect><rect x="32" y="28" width="18" height="12" rx="2"></rect><line x1="20" y1="10" x2="32" y2="34" stroke-dasharray="4,3"></line><rect x="17" y="16" width="18" height="12" rx="2"></rect><line x1="26" y1="16" x2="26" y2="10" stroke-dasharray="4,3"></line></svg> <p class="text-sm"> </p></div></div></div> <div id="toastContainer"></div> <div id="imageNameModal" style="display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.5);" class="flex items-center justify-center"><div class="bg-white dark:bg-gray-800 rounded-xl shadow-2xl p-6 w-80 flex flex-col gap-3"><p class="text-sm font-semibold text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-400 dark:text-gray-500">Lettres, chiffres, <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">_</code> et <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">-</code> uniquement.
|
|
278
|
+
</html>`,f=window.open(``,`_blank`);if(!f){alert(Y(`error.pdf_popup`));return}f.document.write(d),f.document.close(),t.onclose()}catch(e){alert(Y(`error.pdf_export`)+(e instanceof Error?e.message:String(e)))}finally{F(d,!1)}}let y=`px-4 py-2 text-sm border-b-2 border-blue-500 text-blue-600 dark:text-blue-400 font-semibold transition-colors`,b=`px-4 py-2 text-sm text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 transition-colors`;var x=Wr(),S=R(x),C=e=>{var r=Mw(),f=L(r),p=L(f),h=z(L(p),2),x=L(h,!0);j(h),j(p);var S=z(p,2),C=L(S),w=L(C,!0);j(C);var T=z(C,2),E=L(T,!0);j(T);var D=z(T,2),ee=L(D,!0);j(D),j(S);var te=z(S,2),O=e=>{var t=kw(),n=L(t),r=L(n),c=e=>{var t=Ew(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},l=e=>{var t=Dw(),n=L(t);j(t),B(e=>G(n,`${e??``}failed to load folders`),[()=>Y(`common.error_prefix`)]),W(e,t)},u=e=>{var t=Wr();q(R(t),16,()=>V(o),e=>e,(e,t)=>{var n=Ow(),r=L(n);ki(r);var i,a=z(r,2),o=L(a,!0);j(a),j(n),B(()=>{i!==(i=t)&&(r.value=(r.__value=t)??``),G(o,t)}),Ri(r,()=>V(s)[t],e=>V(s)[t]=e),W(e,n)}),W(e,t)};K(r,e=>{V(i)?e(c):V(a)?e(l,1):e(u,-1)}),j(n),j(t),W(e,t)};K(te,e=>{V(n)===`html`&&e(O)});var k=z(te,2),ne=e=>{var n=Aw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var l=z(o,2),u=L(l,!0);j(l),j(a),j(n),B((e,t,n)=>{G(i,e),G(s,t),l.disabled=V(c),G(u,n)},[()=>Y(`modal.export.markdown_hint`),()=>Y(`common.cancel`),()=>V(c)?`⏳`:Y(`modal.export.markdown_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),H(`click`,l,g),W(e,n)};K(k,e=>{V(n)===`markdown`&&e(ne)});var A=z(k,2),re=e=>{var n=jw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),d=L(c,!0);j(c);var f=z(c,2),p=L(f,!0);j(f),j(a),j(n),B((e,t,n,r)=>{G(i,e),G(s,t),c.disabled=V(l),G(d,n),f.disabled=V(u),G(p,r)},[()=>Y(`modal.export_html.hint`),()=>Y(`common.cancel`),()=>V(l)?`⏳`:Y(`modal.export_html.notion_btn`),()=>V(u)?`⏳`:Y(`modal.export_html.confluence_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),H(`click`,c,()=>_(`notion`)),H(`click`,f,()=>_(`confluence`)),W(e,n)};K(A,e=>{V(n)===`html`&&e(re)});var ie=z(A,2),ae=e=>{var n=Aw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2),l=L(c,!0);j(c),j(a),j(n),B((e,t,n)=>{G(i,e),G(s,t),c.disabled=V(d),G(l,n)},[()=>Y(`modal.export.pdf_hint`),()=>Y(`common.cancel`),()=>V(d)?`⏳`:Y(`modal.export.pdf_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),H(`click`,c,v),W(e,n)};K(ie,e=>{V(n)===`pdf`&&e(ae)}),j(f),j(r),B((e,t,r,i)=>{G(x,e),vi(C,1,fi(V(n)===`markdown`?y:b)),G(w,t),vi(T,1,fi(V(n)===`html`?y:b)),G(E,r),vi(D,1,fi(V(n)===`pdf`?y:b)),G(ee,i)},[()=>Y(`modal.export.title`),()=>Y(`modal.export.tab_markdown`),()=>Y(`modal.export.tab_html`),()=>Y(`modal.export.tab_pdf`)]),H(`click`,r,e=>{e.target===e.currentTarget&&t.onclose()}),H(`click`,C,()=>m(`markdown`)),H(`click`,T,()=>m(`html`)),H(`click`,D,()=>m(`pdf`)),W(e,r)};K(S,e=>{t.open&&e(C)}),W(e,x),Je()}Pr([`click`]);var Pw=U(`<p class="px-3 py-4 text-xs text-gray-400 text-center"> </p>`),Fw=U(`<p> </p>`),Iw=U(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">📁</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),Lw=U(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><span class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-gray-500 dark:text-gray-400"><span class="shrink-0 opacity-40">📄</span> <span class="truncate font-mono"> </span></span> <button title="Add to exclusions" class="shrink-0 text-red-400 hover:text-red-600 px-3 py-2 text-sm font-bold transition-colors">⊖</button></div>`),Rw=U(`<div class="border-t border-gray-200 dark:border-gray-700"><div class="flex items-center gap-2 px-3 py-2 bg-gray-50 dark:bg-gray-800 border-b border-gray-200 dark:border-gray-700"><button class="text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-30 disabled:pointer-events-none shrink-0">↑ Up</button> <span class="font-mono text-xs text-gray-400 dark:text-gray-500 truncate flex-1 text-right"> </span></div> <div class="divide-y divide-gray-100 dark:divide-gray-800 max-h-52 overflow-y-auto"><!></div></div>`),zw=U(`<label class="flex items-center gap-1.5 text-xs text-gray-700 dark:text-gray-300 cursor-pointer"><input type="checkbox"/> </label>`),Bw=U(`<div class="group flex items-center hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"><button class="flex-1 flex items-center gap-2 px-3 py-2 text-sm text-left"><span class="text-gray-400 shrink-0">📁</span> <span class="text-gray-700 dark:text-gray-300 truncate"> </span></button> <button title="Exclude this folder" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 px-3 py-2 text-sm transition-opacity">⊖</button></div>`),Vw=U(`<button class="w-full px-3 py-2 text-xs text-blue-600 dark:text-blue-400 hover:bg-blue-50 dark:hover:bg-blue-950/30 text-left font-medium border-t border-gray-100 dark:border-gray-800">✓ Select: <span class="font-mono"> </span></button>`),Hw=U(`<!> <!>`,1),Uw=U(`<div> </div>`),Ww=U(`<div> </div> <div> </div> <div> </div> <!>`,1),Gw=U(`<div role="button" tabindex="0" class="flex items-center gap-2 px-3 py-1 cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50 transition-colors"><span class="text-gray-400 dark:text-gray-600 w-5 text-right shrink-0 tabular-nums text-xs"></span> <div class="flex-1 min-w-0"><div class="flex items-center justify-between gap-1"><span class="text-gray-800 dark:text-gray-200 font-medium truncate text-xs"> </span> <span class="text-gray-400 dark:text-gray-600 tabular-nums shrink-0 text-xs"> </span></div> <div class="h-1 bg-gray-100 dark:bg-gray-800 rounded-full mt-0.5"><div class="h-1 bg-blue-400 dark:bg-blue-600 rounded-full"></div></div></div></div>`),Kw=U(`<div class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 text-xs text-gray-500 dark:text-gray-400 space-y-0.5 border-b border-gray-100 dark:border-gray-800"><!></div> <div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center gap-2"><span class="text-xs text-gray-500 dark:text-gray-400 shrink-0 cursor-help"> </span> <input type="number" min="1" max="20" class="w-12 px-1.5 py-0.5 text-xs rounded border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-800 dark:text-gray-200 focus:outline-none"/> <button class="text-xs text-blue-600 dark:text-blue-400 hover:underline"> </button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto"></div></div>`),qw=U(`<p class="absolute inset-0 flex items-center justify-center text-gray-400 dark:text-gray-500 text-sm animate-pulse"> </p>`),Jw=U(`<div class="flex items-center gap-1 group py-0.5"><span class="text-gray-600 dark:text-gray-400 break-all font-mono flex-1 text-xs"> </span> <button title="Exclude this file" class="shrink-0 opacity-0 group-hover:opacity-100 text-red-400 hover:text-red-600 text-xs leading-none px-1 transition-opacity">⊖</button></div>`),Yw=U(`<div class="text-gray-400 text-center py-2">—</div>`),Xw=U(`<div class="w-80 shrink-0 border-l border-gray-200 dark:border-gray-800 flex flex-col bg-white dark:bg-gray-900 overflow-hidden"><div class="px-3 py-2 border-b border-gray-100 dark:border-gray-800 flex items-center justify-between"><span class="font-bold text-sm text-gray-900 dark:text-gray-100"> </span> <button class="text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 text-xs leading-none">✕</button></div> <p class="px-3 pt-2 pb-1 text-xs font-semibold text-gray-400 dark:text-gray-600 uppercase tracking-wider"> </p> <div class="flex-1 overflow-y-auto px-3 py-1 space-y-1 text-xs"><!></div></div>`),Zw=U(`<div class="fixed inset-0 z-50 flex flex-col bg-white dark:bg-gray-950"><div class="flex items-center justify-between px-6 h-14 border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><h2 class="font-semibold text-base"> </h2> <button class="text-sm px-3 py-1.5 rounded-lg text-gray-600 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"> </button></div> <div class="border-b border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-900 shrink-0"><div class="flex items-center gap-3 px-6 py-3"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </label> <input type="text" readonly="" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono cursor-default focus:outline-none"/> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">📁 <span> </span></button> <button class="text-sm px-4 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white font-semibold transition-colors shrink-0"> </button></div> <div class="flex items-start gap-3 px-6 pb-2"><label class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0 pt-1.5"> </label> <textarea rows="3" spellcheck="false" class="flex-1 px-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 font-mono focus:outline-none focus:ring-1 focus:ring-blue-400 resize-y"></textarea> <button class="text-sm px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors shrink-0">📁 <span> </span></button></div> <!> <div class="flex items-center gap-x-4 gap-y-2 px-6 pb-3 flex-wrap"><span class="text-xs font-medium text-gray-500 dark:text-gray-400 shrink-0"> </span> <label class="flex items-center gap-1.5 text-xs font-medium text-blue-600 dark:text-blue-400 cursor-pointer shrink-0"><input type="checkbox"/> </label> <!></div> <!></div> <div class="flex-1 overflow-hidden flex"><!> <div class="flex-1 relative overflow-hidden"><!> <canvas style="position: absolute; inset: 0"></canvas></div> <!></div></div>`);function Qw(e,t){qe(t,!0);let n=new Set(`the.a.an.and.or.but.not.nor.so.yet.both.either.neither.is.are.was.were.be.been.being.have.has.had.do.does.did.will.would.shall.should.may.might.can.could.must.need.dare.ought.used.to.of.in.for.on.with.at.by.from.up.about.into.through.during.before.after.above.below.between.out.off.over.under.again.further.then.once.here.there.when.where.why.how.all.each.few.more.most.other.some.such.no.only.own.same.than.too.very.just.also.still.already.always.never.often.sometimes.usually.this.that.these.those.its.your.our.their.his.her.him.she.you.they.we.me.my.it.who.which.what.whose.whom.if.though.although.because.since.while.unless.until.whether.as.like.via.per.i.am.he.us.see.now.new.old.got.let.put.say.said.says.get.use.make.made.take.come.came.go.went.know.think.look.want.give.seem.back.down.even.much.well.good.work.tell.keep.hold.turn.move.play.live.help.run.start.off.way.too.few.show.hear.etc.eg.ie.one.two.three.four.five.six.seven.eight.nine.ten.le.la.les.un.une.des.du.de.d.l.au.aux.ce.ci.cet.cette.ces.mon.ma.mes.ton.ta.tes.son.sa.ses.notre.nos.votre.vos.leur.leurs.je.tu.il.elle.on.nous.vous.ils.elles.me.te.se.lui.y.en.qui.que.quoi.dont.où.et.ou.mais.donc.or.ni.car.si.ne.pas.plus.moins.très.bien.mal.peu.beaucoup.trop.assez.aussi.comme.pour.par.avec.sans.dans.sur.sous.entre.vers.chez.contre.avant.après.pendant.depuis.selon.malgré.sauf.est.sont.était.être.avoir.fait.faire.dit.dire.peut.pouvoir.doit.devoir.veut.vouloir.sait.savoir.va.aller.vient.venir.tout.tous.toute.toutes.autre.autres.même.chaque.quel.quelle.quels.quelles.aucun.aucune.certain.certaine.plusieurs.quelque.quelques.tel.telle.tels.telles.cela.ceci.ça.celui.celle.ceux.celles.ici.voici.voilà.alors.ainsi.encore.déjà.jamais.toujours.souvent.parfois.rien.personne.chose.fois.jour.temps.part.cas.point.lieu.monde.cependant.néanmoins.pourtant.toutefois.quand.lorsque.puisque.parce.afin.puis.lors.notamment.surtout.seulement.vraiment.enfin.ensuite.ailleurs.là.ici.voici.voilà.dont.lequel.laquelle.lesquels.lesquelles`.split(`.`)),r=new Set(`public.private.protected.static.void.class.interface.abstract.final.const.let.var.function.return.if.else.for.while.do.switch.case.break.continue.try.catch.throw.throws.finally.new.this.self.super.import.export.from.package.module.require.include.using.namespace.struct.enum.trait.impl.fn.def.func.fun.val.mut.async.await.yield.lambda.extends.implements.override.virtual.sealed.data.object.companion.where.when.match.guard.defer.go.chan.select.type.alias.as.is.in.of.with.true.false.null.nil.none.undefined.println.printf.fmt.log.print.main.args.argv.init.setup.teardown.describe.test.expect.assert.before.after.not.and.or.delete.typeof.instanceof.readonly.keyof.infer.never.unknown.declare.satisfies.get.set.add.remove.update.create.find.fetch.load.save.put.post.patch.list.map.filter.reduce.sort.merge.parse.format.convert.transform.validate.check.handle.process.execute.start.stop.reset.clear.close.open.read.write.send.receive.emit.trigger.dispatch.subscribe.unsubscribe.listen.notify.register.unregister.bind.apply.call.invoke.callback.handler.listener.middleware.interceptor.resolver.provider.consumer.producer.builder.factory.adapter.wrapper.proxy.decorator.observer.visitor.strategy.command.controller.service.repository.dao.dto.entity.model.schema.config.context.state.store.action.reducer.selector.hook.ref.effect.memo.component.module.plugin.extension.util.utils.helper.helpers.common.shared.base.default.index.app.core.lib.src.test.spec.mock.stub.fixture.impl.internal.api.sdk.client.server.request.response.status.code.error.exception.message.result.data.value.key.name.label.title.description.item.element.node.child.parent.root.container.wrapper.layout.view.page.screen.panel.header.footer.sidebar.navbar.body.content.section.row.col.column.grid.flex.block.inline.span.div.input.output.param.params.arg.option.options.props.attr.attrs.field.fields.property.properties.method.methods.string.number.boolean.integer.float.double.long.short.byte.char.array.object.map.set.list.vector.queue.stack.hash.table.tree.graph.pair.tuple.optional.nullable.void.unit.any.bool.bytes.none.int.str.bool.all.each.every.some.many.single.multi.first.last.next.prev.previous.current.old.temp.tmp.new.top.bottom.left.right.center.middle.start.end.begin.min.max.count.total.sum.avg.size.length.width.height.depth.flag.num.idx.id.uid.uuid.num.str.val.obj.arr.fn.cb.ctx.req.res.err.msg.src.dst.evt.doc.db.io.fs.os.env.sys.http.https.url.uri.path.port.host.tcp.udp.ssl.tls.html.css.json.xml.yml.yaml.csv.sql.regex.utf.ascii.rgb.rgba.hex.px.em.rem.vh.vw.auto.inherit.initial.application.file.local.source.messages.logging.alerting.programmed.offset.offsets.zone.zoned.decimal.big.integer.constructor.mapper.captor.publisher.verify.subscriber.org.edr.ack.ref.ssr.ssg.csr.isr.mockito.junit.vitest.jest.mocha.rspec.pytest.cypress.playwright.captor.spy.given.then.verify.times.never.invocation.argumentcaptor.inorder.donothing.doreturn.ippon.springframework.jakarta.javax.todo.fixme.hack.note.deprecated.experimental.eslint.prettier.typescript.javascript.java.kotlin.python.golang.rust.csharp.swift.ruby.spring.boot.javax.jakarta.hibernate.lombok.gradle.maven.webpack.vite.react.angular.vue.svelte.nuxt.express.fastapi.flask.django.rails.fiber.gin.actix.tokio.asyncio.junit.jest.mocha.pytest.rspec.docker.kubernetes.aws.gcp.azure.terraform.ansible.nginx.apache.linux.nextjs.remix.astro.sveltekit.gatsby.nuxtjs.qwik.solid.vercel.netlify.cloudflare.supabase.firebase.mongodb.postgres.prisma.drizzle.typeorm.sequelize.mongoose.redis.neon.trpc.graphql.grpc.rest.openapi.swagger.zod.yup.valibot.tailwind.shadcn.radix.headless.chakra.mantine.antd.mui.tanstack.tanstackquery.zustand.jotai.recoil.redux.mobx.storybook.cypress.playwright.vitest.turbopack.turborepo.getserversideprops.getstaticprops.getstaticpaths.generatestaticparams.generatemetadata.serveraction.revalidate.notfound.redirect.permanentredirect.unstablecache.unstablenostore.cookies.headers.userouter.usepathname.usesearchparams.useparams.useformstate.useformstatus.useoptimistic.useserveraction.classname.onclick.onchange.onsubmit.onfocus.onblur.onkeydown.onkeyup.onmousedown.onmouseup.defaultvalue.htmlfor.tabindex.strokewidth.viewbox.fillopacity.strokeopacity.pathdata.children.fragment.portal.suspense.errorboundary.strictmode.createelement.createcontext.createref.forwardref.usestate.useeffect.useref.usecontext.usememo.usecallback.usereducer.useid.usetransition.usedeferredvalue.useimperativehandle.mutex.lock.thread.goroutine.coroutine.channel.buffer.stream.pipe.observable.promise.future.completable.deferred.disposable.lifecycle.scope.annotation.attribute.metadata.reflection.generic.template.macro.preprocessor.compiler.runtime.debug.release.production.development.staging.build.deploy.lint.coverage.report.the.and.for.are.but.not.you.all.this.that.with.have.from.they.will.been.can.has.was.its.our.their.more.also.when.what.about.which.would.into.than.then.each.just.over.after.such.here.some.were.very.only`.split(`.`));function i(e){return n.has(e)||r.has(e)||e.length<3||/^\d+$/.test(e)||/^[^a-z]/.test(e)}function a(e){return e.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).replace(/[_\-./]+/g,` `).toLowerCase().trim().split(/\s+/).filter(e=>e.length>=3)}function o(e){return e.toLowerCase().split(/[^a-zàâäéèêëïîôùûü]+/).filter(e=>e.length>=3)}let s=[{value:`adoc`,cat:`prose`},{value:`asciidoc`,cat:`prose`},{value:`asm`,cat:`code`},{value:`astro`,cat:`code`},{value:`avsc`,cat:`config`},{value:`bash`,cat:`code`},{value:`bat`,cat:`code`},{value:`bicep`,cat:`config`},{value:`c`,cat:`code`},{value:`cc`,cat:`code`},{value:`cfg`,cat:`config`},{value:`cjs`,cat:`code`},{value:`clj`,cat:`code`},{value:`cljs`,cat:`code`},{value:`cmake`,cat:`code`},{value:`cmd`,cat:`code`},{value:`conf`,cat:`config`},{value:`cpp`,cat:`code`},{value:`cql`,cat:`code`},{value:`cs`,cat:`code`},{value:`cshtml`,cat:`code`},{value:`css`,cat:`config`},{value:`cxx`,cat:`code`},{value:`dart`,cat:`code`},{value:`env`,cat:`config`},{value:`erb`,cat:`code`},{value:`erl`,cat:`code`},{value:`ex`,cat:`code`},{value:`exs`,cat:`code`},{value:`fish`,cat:`code`},{value:`fs`,cat:`code`},{value:`fsx`,cat:`code`},{value:`go`,cat:`code`},{value:`gql`,cat:`code`},{value:`gradle`,cat:`code`},{value:`graphql`,cat:`code`},{value:`groovy`,cat:`code`},{value:`h`,cat:`code`},{value:`hcl`,cat:`config`},{value:`hpp`,cat:`code`},{value:`hs`,cat:`code`},{value:`html`,cat:`config`},{value:`ini`,cat:`config`},{value:`java`,cat:`code`},{value:`jl`,cat:`code`},{value:`js`,cat:`code`},{value:`json`,cat:`config`},{value:`jsx`,cat:`code`,jsx:!0},{value:`kt`,cat:`code`},{value:`less`,cat:`config`},{value:`lua`,cat:`code`},{value:`m`,cat:`code`},{value:`md`,cat:`prose`,def:!0},{value:`mdx`,cat:`prose`},{value:`mjs`,cat:`code`},{value:`mk`,cat:`code`},{value:`ml`,cat:`code`},{value:`mli`,cat:`code`},{value:`mm`,cat:`code`},{value:`nim`,cat:`code`},{value:`php`,cat:`code`},{value:`pl`,cat:`code`},{value:`prisma`,cat:`code`},{value:`properties`,cat:`config`},{value:`proto`,cat:`code`},{value:`ps1`,cat:`code`},{value:`py`,cat:`code`},{value:`r`,cat:`code`},{value:`razor`,cat:`code`},{value:`rb`,cat:`code`},{value:`rs`,cat:`code`},{value:`rst`,cat:`prose`},{value:`s`,cat:`code`},{value:`scala`,cat:`code`},{value:`scss`,cat:`config`},{value:`sh`,cat:`code`},{value:`sol`,cat:`code`},{value:`sql`,cat:`code`},{value:`styl`,cat:`config`},{value:`svelte`,cat:`code`},{value:`swift`,cat:`code`},{value:`tex`,cat:`prose`},{value:`tf`,cat:`config`},{value:`tfvars`,cat:`config`},{value:`thrift`,cat:`code`},{value:`toml`,cat:`config`},{value:`ts`,cat:`code`},{value:`tsx`,cat:`code`,jsx:!0},{value:`txt`,cat:`prose`},{value:`v`,cat:`code`},{value:`vb`,cat:`code`},{value:`vue`,cat:`code`},{value:`xml`,cat:`config`},{value:`yaml`,cat:`config`},{value:`yml`,cat:`config`},{value:`zig`,cat:`code`},{value:`zsh`,cat:`code`}],c=new Set(s.filter(e=>e.cat===`prose`).map(e=>e.value)),l=new Set(s.filter(e=>e.cat===`code`).map(e=>e.value)),u=new Set(s.filter(e=>e.cat===`config`).map(e=>e.value)),d=new Set(s.filter(e=>e.jsx).map(e=>e.value));function f(e,t){let n=[];if(c.has(t)){let t=e.replace(/^\s*(import|export\s+\{[^}]*\}|export\s+\*|package|require|#include|from\s+['"][^'"]+['"]\s*(import)?)\b.*/gm,``).replace(/```[\s\S]*?```/g,` `).replace(/`[^`\n]+`/g,` `).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/https?:\/\/\S+/g,` `).replace(/[#*_~>`|!\[\](){}=+\-]/g,` `);n.push(...o(t))}else l.has(t)?(d.has(t)&&(e=e.replace(/<\/?[A-Z][A-Za-z0-9.]*[^>]*>/g,` `),e=e.replace(/<\/?(div|span|main|section|article|aside|nav|header|footer|form|input|button|select|option|textarea|table|thead|tbody|tr|td|th|ul|ol|li|a|img|p|h[1-6]|label|figure|figcaption|picture|video|audio|canvas|svg|path|circle|rect|g|defs|use|link|meta|head|html|body|script|style|br|hr|strong|em|code|pre|blockquote|small|sub|sup)\b[^>]*>/gi,` `),e=e.replace(/\b(className|onClick|onChange|onSubmit|onFocus|onBlur|onKeyDown|onKeyUp|onMouseDown|onMouseUp|htmlFor|tabIndex|strokeWidth|viewBox|fillOpacity|strokeOpacity|defaultValue|placeholder|disabled|checked|readOnly|required|multiple|autoFocus|autoComplete|type|href|src|alt|width|height|style|key|ref)\s*=/g,` =`)),e=e.replace(/^\s*(import\s+[\w.*{},\s'"@/-]+;?|from\s+['"][^'"]+['"]\s*;?|package\s+[\w.]+;?|namespace\s+[\w.]+;?|using\s+[\w.]+;?|require\s*\(?\s*['"][^'"]+['"]\s*\)?;?)\s*$/gm,``),e.replace(/(?:\/\/|#(?!.*[{}[\]<>])| -- )\s*(.+)$/gm,(e,t)=>(n.push(...o(t)),e)),e.replace(/\/\*[\s\S]*?\*\//g,e=>(n.push(...o(e)),e)),e.replace(/"""[\s\S]*?"""|'''[\s\S]*?'''/g,e=>(n.push(...o(e)),e)),e.replace(/["'`]([A-Za-zÀ-ÿ][A-Za-zÀ-ÿ\s,.'éàèùâêîôûç]{3,})["'`]/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e))):u.has(t)&&(e.replace(/:\s*["']([^"']{3,})["']/g,(e,t)=>(n.push(...o(t)),e)),e.replace(/\b([A-Za-z][A-Za-z0-9_]{2,})\b/g,(e,t)=>(n.push(...a(t)),e)));return n.filter(e=>!i(e))}let p=P(``),m=P(``),h=P(1),g=P(``),_=P(!0),v=P(!1),y=P(I(s.map(e=>({value:e.value,label:`.`+e.value,checked:!!e.def}))));function b(){return V(y).filter(e=>e.checked).map(e=>e.value)}let x=N(()=>V(y).every(e=>e.checked)),S=P(null),C=P(null),w=P(0),T=P(null),E=P(I([])),D=P(I([])),ee=P(!1),te=P(``),O=P(0),k=P(I([]));function ne(){localStorage.setItem(`wc-exts`,JSON.stringify(b()))}function A(){let e=V(x);F(y,V(y).map(t=>({...t,checked:!e})),!0),ne()}function re(){ne()}function ie(){return new Set((V(m)||``).split(/[\n,]/).map(e=>e.trim()).filter(Boolean))}function ae(e){let t=ie();t.has(e)||(t.add(e),F(m,[...t].join(`, `),!0),localStorage.setItem(`wc-exclude`,V(m)),V(ue)&&_e(V(fe)),se())}function oe(){localStorage.setItem(`wc-exclude`,V(m)),V(ue)&&_e(V(fe)),se()}function se(){V(ee)&&V(te)&&Ne(V(te))}function ce(){V(S)&&Me()}function le(){let e=localStorage.getItem(`wc-root`);e&&(F(p,e,!0),F(xe,e,!0));let t=localStorage.getItem(`wc-exclude`);t&&F(m,t,!0);let n=localStorage.getItem(`wc-exts`);if(n)try{let e=JSON.parse(n);F(y,V(y).map(t=>({...t,checked:e.includes(t.value)})),!0)}catch{}}let ue=P(!1),de=P(null),fe=P(``),pe=P(``),me=P(null),he=P(``);function ge(){F(ue,!V(ue)),V(ue)&&_e(V(fe)||V(p)||`/`)}async function _e(e){F(me,null),F(he,`Loading…`);try{let t=await fetch(`/api/browse?all=1&path=`+encodeURIComponent(e)).then(e=>e.json());F(fe,t.current,!0),F(de,t.parent,!0),F(pe,t.current,!0);let n=V(p).trim(),r=(e,t)=>n&&e.startsWith(n+`/`)?e.slice(n.length+1):t,i=ie(),a=(t.dirs||[]).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`dir`,name:e.name,path:e.path,entry:r(e.path,e.name)})),o=b(),s=(t.files||[]).filter(e=>o.some(t=>e.name.endsWith(`.`+t))).filter(e=>!i.has(r(e.path,e.name))).map(e=>({kind:`file`,name:e.name,entry:r(e.path,e.name)})),c=[...a,...s];F(me,c,!0),F(he,c.length?``:`Empty directory`,!0)}catch{F(me,[],!0),F(he,`Cannot read directory`)}}function ve(){V(de)&&_e(V(de))}let ye=P(!1),be=P(null),xe=P(``),Se=P(``),Ce=P(null),we=P(``);function Te(){F(ye,!V(ye)),V(ye)&&Ee(V(xe)||V(p)||`/`)}async function Ee(e){F(Ce,null),F(we,`Loading…`);try{let t=await fetch(`/api/browse?path=`+encodeURIComponent(e)).then(e=>e.json());F(xe,t.current,!0),F(be,t.parent,!0),F(Se,t.current,!0),F(Ce,(t.dirs||[]).map(e=>({name:e.name,path:e.path})),!0),F(we,V(Ce).length?``:`No sub-folders`,!0)}catch{F(Ce,[],!0),F(we,`Cannot read directory`)}}function De(){V(be)&&Ee(V(be))}function Oe(){F(p,V(xe),!0),localStorage.setItem(`wc-root`,V(xe)),F(ye,!1),F(m,``),localStorage.removeItem(`wc-exclude`),F(fe,V(xe),!0)}let ke=P(null),Ae=P(null),je=P(!1);function Me(){if(!V(S)||!V(C))return;let e=Math.max(1,V(h)||1),t=[...V(S).entries()].sort((e,t)=>t[1]-e[1]),n=t.filter(([t])=>(V(C).get(t)||new Set).size>=e).slice(0,150);if(!n.length){let n=t.length;F(g,n?`${n} domain word(s) found but none appear in ${e}+ file(s). Lower the "Min files" threshold to 1.`:`No domain words extracted. Try adding more file extensions or a broader folder.`,!0),F(_,!0),F(je,!1),F(v,!1);return}let r=[...V(S).keys()].filter(t=>(V(C).get(t)||new Set).size>=e).length;F(T,{scanned:V(w),unique:r,shown:n.length},!0);let i=n.slice(0,50),a=i[0][1];F(D,i.map(([e,t])=>({word:e,freq:t,pct:Math.round(t/a*100)})),!0),F(v,!0),F(_,!1);let o=document.documentElement.classList.contains(`dark`),s=o?[`#60a5fa`,`#34d399`,`#f9a8d4`,`#a78bfa`,`#fbbf24`,`#6ee7b7`,`#93c5fd`,`#fb923c`,`#4ade80`,`#f472b6`]:[`#1d4ed8`,`#047857`,`#7c3aed`,`#b45309`,`#be123c`,`#0369a1`,`#4338ca`,`#c2410c`,`#15803d`,`#9333ea`];requestAnimationFrame(()=>{if(!V(ke)||!V(Ae))return;let e=V(ke),t=V(Ae);e.width=Math.max(400,t.offsetWidth),e.height=Math.max(300,t.offsetHeight),e.style.width=e.width+`px`,e.style.height=e.height+`px`,F(je,!0);let n=Math.sqrt(e.width*e.height/(800*500)),r=Math.min(220,Math.round(72*n)),c=i.map(([e,t])=>[e,Math.max(12,Math.round(r*t/a))]);window.WordCloud?.(e,{list:c,gridSize:Math.round(4*e.width/1024),fontFamily:`ui-sans-serif, system-ui, sans-serif`,color:()=>s[Math.floor(Math.random()*s.length)],backgroundColor:o?`#030712`:`#ffffff`,rotateRatio:.2,minSize:6,shrinkToFit:!0,click:e=>Ne(e[0])})})}function Ne(e){if(!V(C)||!V(S))return;let t=[...V(C).get(e)||[]].sort(),n=V(S).get(e)||0;F(te,e,!0),F(O,n,!0),F(k,t,!0),F(ee,!0)}function Pe(){F(ee,!1)}async function Fe(){let e=V(p).trim();if(!e){F(g,`Please select a root folder first.`),F(_,!0);return}let t=b();if(!t.length){F(g,`Please select at least one extension.`),F(_,!0);return}F(ye,!1),F(v,!1),F(ee,!1),F(g,`Reading files…`),F(_,!0),F(je,!1);try{let n=V(m).trim(),r=n?n.split(/[\n,]/).map(e=>e.trim()).filter(Boolean):[];localStorage.setItem(`wc-exclude`,n);let i=new URLSearchParams({path:e});t.forEach(e=>i.append(`ext`,e)),r.forEach(e=>i.append(`exclude`,e));let a=await fetch(`/api/wordcloud?`+i);if(!a.ok){F(g,`Error: `+((await a.json()).error||a.statusText));return}let{files:o,fileTexts:s}=await a.json();F(g,`Analyzing ${o} file(s)…`);let c=new Map,l=new Map,u=new Set;F(w,o,!0);for(let{path:e,text:t}of s){let n=(e.split(`.`).pop()||``).toLowerCase();n&&u.add(n);let r=f(t,n),i=new Set;for(let t of r)c.set(t,(c.get(t)||0)+1),i.has(t)||(i.add(t),l.has(t)||l.set(t,new Set),l.get(t).add(e))}F(S,c,!0),F(C,l,!0),F(E,[...u].sort().map(e=>`.`+e),!0),Me()}catch(e){F(g,`Error: `+e.message)}}let Ie=!1;kn(()=>{t.open&&!Ie?(Ie=!0,F(g,`Choose a root folder and click Launch.`),F(_,!0),F(je,!1),F(v,!1),F(ee,!1),F(S,null),F(C,null),F(T,null),F(D,[],!0),F(ye,!1),F(ue,!1),F(h,1),le(),V(p)||fetch(`/api/config`).then(e=>e.json()).then(e=>{e.docsFolder&&(F(p,e.docsFolder,!0),F(xe,e.docsFolder,!0))}).catch(()=>{})):t.open||(Ie=!1)});var Le=Wr(),Re=R(Le),ze=e=>{var n=Zw(),r=L(n),i=L(r),a=L(i,!0);j(i);var o=z(i,2),s=L(o,!0);j(o),j(r);var c=z(r,2),l=L(c),u=L(l),d=L(u,!0);j(u);var f=z(u,2);ki(f);var b=z(f,2),S=z(L(b)),C=L(S,!0);j(S),j(b);var w=z(b,2),ne=L(w,!0);j(w),j(l);var ie=z(l,2),se=L(ie),le=L(se,!0);j(se);var fe=z(se,2);yn(fe);var xe=z(fe,2),Me=z(L(xe)),Ie=L(Me,!0);j(Me),j(xe),j(ie);var Le=z(ie,2),Re=e=>{var t=Rw(),n=L(t),r=L(n),i=z(r,2),a=L(i,!0);j(i),j(n);var o=z(n,2),s=L(o),c=e=>{var t=Pw(),n=L(t,!0);j(t),B(()=>G(n,V(he))),W(e,t)},l=e=>{var t=Fw(),n=L(t,!0);j(t),B(()=>{vi(t,1,`px-3 py-3 text-xs ${V(he)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),G(n,V(he))}),W(e,t)},u=e=>{var t=Wr();q(R(t),17,()=>V(me),Qr,(e,t)=>{var n=Wr(),r=R(n),i=e=>{var n=Iw(),r=L(n),i=z(L(r),2),a=L(i,!0);j(i),j(r);var o=z(r,2);j(n),B(()=>G(a,V(t).name)),H(`click`,r,()=>_e(V(t).path)),H(`click`,o,()=>ae(V(t).entry)),W(e,n)},a=e=>{var n=Lw(),r=L(n),i=z(L(r),2),a=L(i,!0);j(i),j(r);var o=z(r,2);j(n),B(()=>G(a,V(t).name)),H(`click`,o,()=>ae(V(t).entry)),W(e,n)};K(r,e=>{V(t).kind===`dir`?e(i):e(a,-1)}),W(e,n)}),W(e,t)};K(s,e=>{V(me)===null?e(c):V(me).length===0?e(l,1):e(u,-1)}),j(o),j(t),B(()=>{r.disabled=!V(de),G(a,V(pe))}),H(`click`,r,ve),W(e,t)};K(Le,e=>{V(ue)&&e(Re)});var ze=z(Le,2),Be=L(ze),Ve=L(Be,!0);j(Be);var He=z(Be,2),Ue=L(He);ki(Ue);var We=z(Ue);j(He),q(z(He,2),17,()=>V(y),e=>e.value,(e,t,n)=>{var r=zw(),i=L(r);ki(i);var a=z(i);j(r),B(()=>G(a,` ${V(t).label??``}`)),H(`change`,i,re),Ri(i,()=>V(t).checked,e=>V(t).checked=e),W(e,r)}),j(ze);var Ge=z(ze,2),Ke=e=>{var t=Rw(),n=L(t),r=L(n),i=z(r,2),a=L(i,!0);j(i),j(n);var o=z(n,2),s=L(o),c=e=>{var t=Pw(),n=L(t,!0);j(t),B(()=>G(n,V(we))),W(e,t)},l=e=>{var t=Hw(),n=R(t),r=e=>{var t=Fw(),n=L(t,!0);j(t),B(()=>{vi(t,1,`px-3 py-3 text-xs ${V(we)===`Cannot read directory`?`text-red-400`:`text-gray-400`} text-center`),G(n,V(we))}),W(e,t)},i=e=>{var t=Wr();q(R(t),17,()=>V(Ce),Qr,(e,t)=>{var n=Bw(),r=L(n),i=z(L(r),2),a=L(i,!0);j(i),j(r);var o=z(r,2);j(n),B(()=>G(a,V(t).name)),H(`click`,r,()=>Ee(V(t).path)),H(`click`,o,()=>ae(V(t).name)),W(e,n)}),W(e,t)};K(n,e=>{V(Ce).length===0?e(r):e(i,-1)});var a=z(n,2),o=e=>{var t=Vw(),n=z(L(t)),r=L(n,!0);j(n),j(t),B(()=>G(r,V(Se))),H(`click`,t,Oe),W(e,t)};K(a,e=>{V(we)!==`Cannot read directory`&&e(o)}),W(e,t)};K(s,e=>{V(Ce)===null?e(c):e(l,-1)}),j(o),j(t),B(()=>{r.disabled=!V(be),G(a,V(Se))}),H(`click`,r,De),W(e,t)};K(Ge,e=>{V(ye)&&e(Ke)}),j(c);var qe=z(c,2),Je=L(qe),Ye=e=>{var t=Kw(),n=L(t),r=L(n),i=e=>{var t=Ww(),n=R(t),r=L(n);j(n);var i=z(n,2),a=L(i);j(i);var o=z(i,2),s=L(o);j(o);var c=z(o,2),l=e=>{var t=Uw(),n=L(t);j(t),B((e,r)=>{J(t,`title`,e),G(n,`${V(E).length??``} extension${V(E).length>1?`s`:``} found (${r??``})`)},[()=>V(E).join(`, `),()=>V(E).join(`, `)]),W(e,t)};K(c,e=>{V(E).length&&e(l)}),B(()=>{G(r,`${V(T).scanned??``} file(s) scanned`),G(a,`${V(T).unique??``} unique domain words`),G(s,`${V(T).shown??``} shown`)}),W(e,t)};K(r,e=>{V(T)&&e(i)}),j(n);var a=z(n,2),o=L(a),s=L(o,!0);j(o);var c=z(o,2);ki(c);var l=z(c,2),u=L(l,!0);j(l),j(a);var d=z(a,2),f=L(d,!0);j(d);var p=z(d,2);q(p,21,()=>V(D),Qr,(e,t,n)=>{var r=Gw(),i=L(r);i.textContent=n+1;var a=z(i,2),o=L(a),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o);var d=z(o,2),f=L(d);j(d),j(a),j(r),B(()=>{G(c,V(t).word),G(u,V(t).freq),bi(f,`width:${V(t).pct??``}%`)}),H(`click`,r,()=>Ne(V(t).word)),W(e,r)}),j(p),j(t),B((e,t,n,r,i,a)=>{J(o,`title`,e),G(s,t),J(c,`title`,n),J(l,`title`,r),G(u,i),G(f,a)},[()=>Y(`wc.min_files_hint`),()=>Y(`wc.min_files_label`),()=>Y(`wc.min_files_hint`),()=>Y(`wc.apply_hint`),()=>Y(`wc.apply_btn`),()=>Y(`wc.top_words`)]),Fi(c,()=>V(h),e=>F(h,e)),H(`click`,l,ce),W(e,t)};K(Je,e=>{V(v)&&e(Ye)});var Xe=z(Je,2),Ze=L(Xe),Qe=e=>{var t=qw(),n=L(t,!0);j(t),B(()=>G(n,V(g))),W(e,t)};K(Ze,e=>{V(_)&&e(Qe)});var $e=z(Ze,2);let et;Ui($e,e=>F(ke,e),()=>V(ke)),j(Xe),Ui(Xe,e=>F(Ae,e),()=>V(Ae));var tt=z(Xe,2),nt=e=>{var t=Xw(),n=L(t),r=L(n),i=L(r);j(r);var a=z(r,2);j(n);var o=z(n,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=e=>{var t=Wr();q(R(t),17,()=>V(k),Qr,(e,t)=>{var n=Jw(),r=L(n),i=L(r,!0);j(r);var a=z(r,2);j(n),B(()=>G(i,V(t))),H(`click`,a,()=>ae(V(t))),W(e,n)}),W(e,t)},d=e=>{W(e,Yw())};K(l,e=>{V(k).length?e(u):e(d,-1)}),j(c),j(t),B(e=>{G(i,`${V(te)??``} ×${V(O)??``}`),G(s,e)},[()=>Y(`wc.found_in`)]),H(`click`,a,Pe),W(e,t)};K(tt,e=>{V(ee)&&e(nt)}),j(qe),j(n),B((e,t,n,r,i,o,c,l,u,f)=>{G(a,e),G(s,t),G(d,n),G(C,r),G(ne,i),G(le,o),J(fe,`placeholder`,c),G(Ie,l),G(Ve,u),ji(Ue,V(x)),G(We,` ${f??``}`),et=vi($e,1,``,null,et,{hidden:!V(je)})},[()=>Y(`wc.title`),()=>Y(`wc.close_btn`),()=>Y(`wc.search_root_label`),()=>Y(`wc.browse_btn`),()=>Y(`wc.launch_btn`),()=>Y(`wc.exclude_label`),()=>Y(`wc.exclude_placeholder`),()=>Y(`wc.browse_btn`),()=>Y(`wc.extensions_label`),()=>Y(`wc.all_btn`)]),H(`click`,o,function(...e){t.onclose?.apply(this,e)}),Fi(f,()=>V(p),e=>F(p,e)),H(`click`,b,Te),H(`click`,w,Fe),H(`input`,fe,oe),Fi(fe,()=>V(m),e=>F(m,e)),H(`click`,xe,ge),H(`change`,Ue,A),W(e,n)};K(Re,e=>{t.open&&e(ze)}),W(e,Le),Je()}Pr([`click`,`input`,`change`]);var $w=U(`<button title="Toggle dark mode" class="ghost-button" aria-label="Toggle dark mode"> </button>`),eT=U(`<button class="ghost-button"><i class="fa-solid fa-cloud"></i></button> <!>`,1),tT=U(`<div class="relative hidden sm:block"><input type="search" class="w-56 pl-8 pr-3 py-1.5 text-sm rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 placeholder:text-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500"/> <span class="absolute left-2.5 top-2 text-gray-400 text-sm pointer-events-none">🔍</span></div>`),nT=U(`<p class="p-8 text-red-500"> </p>`),rT=U(`<div class="h-full flex items-center justify-center p-8"><div class="max-w-md text-center"><div class="text-5xl mb-4 select-none" aria-hidden="true">📚</div> <h2 class="text-xl font-semibold text-gray-700 dark:text-gray-300 mb-2"> </h2> <p class="text-sm text-gray-500 dark:text-gray-500"> </p> <p class="mt-4 text-xs text-gray-400 dark:text-gray-600 font-mono bg-gray-100 dark:bg-gray-800 rounded-lg px-3 py-2 inline-block"> </p> <p class="mt-2 text-xs text-gray-400"> </p></div></div>`),iT=U(`<div class="app-shell bg-gray-50 text-gray-900 dark:bg-gray-900 dark:text-gray-100"><!> <div class="flex overflow-hidden"><!> <main id="home-content-area" class="flex-1 overflow-y-auto"><!></main></div></div> <!> <!> <!> <!>`,1);function aT(e,t){qe(t,!0);let n=P(!1),r=P(!1),i=P(!1),a=P(!1),o=P(null),s=P(!1),c=P(``),l=P(!1),u=P(!1),d=P(`Living AI Documentation`),f=P(`YYYY_MM_DD_HH_mm_[Category]_title.md`),p=null;function m(){try{let e=localStorage.getItem(`ld-dark`);if(e!==null)return e===`true`}catch{}return window.matchMedia(`(prefers-color-scheme: dark)`).matches}function h(e){es()&&(e=!1),F(l,e,!0),document.documentElement.classList.toggle(`dark`,e)}function g(){h(!V(l));try{localStorage.setItem(`ld-dark`,String(V(l)))}catch{}}kn(()=>{let e=document.getElementById(`hljs-dark`),t=document.getElementById(`hljs-light`);if(!e||!t)return;let n=X.codeBlockLightTheme&&!V(l);e.disabled=n,t.disabled=!n,document.body.classList.toggle(`ld-code-light`,n)});function _(e){let t=e.trim();if(p&&clearTimeout(p),!t){X.searchQuery=``,X.searchResults=null;return}X.searchQuery=t,X.searchResults=X.allDocs.filter(e=>e.title.toLowerCase().includes(t.toLowerCase())||e.category.toLowerCase().includes(t.toLowerCase())),p=window.setTimeout(async()=>{try{let e=await H_(t);t===X.searchQuery&&(X.searchResults=e)}catch{}},350)}let v=P(I([]));function y(e){let t=V(v)[e];t&&(F(v,V(v).slice(0,e),!0),b(t.id,!1,`restore`))}async function b(e,t=!1,n=!1,r=null){if(n===!0&&X.currentDocId&&X.currentDocId!==e){let t=V(v).findIndex(t=>t.id===e);if(t!==-1)F(v,V(v).slice(0,t),!0);else{let e=X.allDocs.find(e=>e.id===X.currentDocId);F(v,[...V(v),{id:X.currentDocId,title:e?e.title:X.currentDocId}],!0)}}else n||F(v,[],!0);X.currentDocId=e;let i=X.allDocs.find(t=>t.id===e);if(i&&X.revealDoc(i),!t){let t=new URL(location.href);t.searchParams.set(`doc`,e),t.hash=r?`#${r}`:``,history.pushState({docId:e,anchor:r||null},``,t)}F(s,!0),F(c,``);try{let t=await R_(e);t.id=e,F(o,t,!0),document.title=t.title,requestAnimationFrame(()=>{let e=document.getElementById(`home-content-area`);if(r){let t=document.getElementById(r);t&&e&&(e.scrollTop+=t.getBoundingClientRect().top-e.getBoundingClientRect().top-80)}else e&&(e.scrollTop=0)})}catch(e){F(c,Y(`doc.failed_to_load`)+(e instanceof Error?e.message:String(e)))}finally{F(s,!1)}}async function x(e){if(!V(o))return;let t=V(o).id,n=await fetch(`/api/documents/`+t,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({content:e})});if(!n.ok)throw Error(await n.text());let r=await R_(t);r.id=t,F(o,r,!0);let i=e.match(/\]\(\s*\.?\/files\/[^)\s]+/g),a={...X.fileAttachmentCounts};i&&i.length?a[t]=i.length:delete a[t],X.fileAttachmentCounts=a}function S(e){let t=X.allDocs.find(t=>t.id===e);if(!t)return null;let n=(t.folder||[]).join(`/`),r=e=>(e.folder||[]).join(`/`)===n,i=X.hideCategories?X.allDocs.filter(r).slice().sort((e,t)=>(e.filename||``).localeCompare(t.filename||``)):X.allDocs.filter(e=>r(e)&&e.category===t.category),a=i.findIndex(t=>t.id===e);if(a===-1)return null;let o=i[a+1]??i[a-1];return o?o.id:null}async function C(){if(!V(o))return;let e=V(o).id;if(!(await fetch(`/api/documents/`+encodeURIComponent(e),{method:`DELETE`})).ok)return;let t=S(e);X.allDocs=X.allDocs.filter(t=>t.id!==e),Array.isArray(X.searchResults)&&(X.searchResults=X.searchResults.filter(t=>t.id!==e));let n={...X.annotationCounts};delete n[e],X.annotationCounts=n;let r={...X.fileAttachmentCounts};delete r[e],X.fileAttachmentCounts=r,t?await b(t):(X.currentDocId=null,F(o,null),history.pushState({},``,location.pathname))}async function w(){let[e,t]=await Promise.all([I_(),F_()]);if(X.allDocs=e,X.docsFolder=typeof t.docsFolder==`string`?t.docsFolder:``,t.docsFolder)try{X.allFolderPaths=await L_(t.docsFolder)}catch{X.allFolderPaths=[]}let[n,r,i]=await Promise.all([z_(),B_(),V_()]);X.annotationCounts=n,X.fileAttachmentCounts=r,X.docStatuses=i}Ji(async()=>{F(u,es(),!0),h(m());let e=await F_();await Sa(e.language||`en`),e.title&&(document.title=e.title,F(d,e.title,!0)),e.filenamePattern&&F(f,e.filenamePattern+`.md`),X.exclusiveFolderExpansion=!!e.exclusiveFolderExpansion,X.exclusiveCategoryExpansion=!!e.exclusiveCategoryExpansion,X.codeBlockMaxHeight=typeof e.codeBlockMaxHeight==`number`?e.codeBlockMaxHeight:400,X.imageRoundedCorners=!!e.imageRoundedCorners,X.imageCentered=!!e.imageCentered,X.imageBorder=!!e.imageBorder,X.codeBlockLightTheme=!!e.codeBlockLightTheme,X.sidebarSort=[`recent`,`oldest`,`alphabetical`].includes(e.sidebarSort)?e.sidebarSort:`recent`,X.codeBlockMaxHeight>0&&document.documentElement.style.setProperty(`--ld-code-max-h`,X.codeBlockMaxHeight+`px`),X.expandedCategories.size===0&&(X.expandedCategories=new Set([`DOCUMENTATION`,`General`])),await w();let t=new URLSearchParams(location.search).get(`doc`);if(t)b(t,!0,!1,location.hash?location.hash.slice(1):null);else{let t=Array.isArray(e.favorites)?e.favorites:[],n=t.length?t[0]?.id:void 0,r=(n?X.allDocs.find(e=>e.id===n):void 0)??X.allDocs.find(e=>e.category===`DOCUMENTATION`)??X.allDocs.find(e=>e.category===`General`)??X.allDocs[0];r&&b(r.id,!0)}let n=e=>{let t=e.state?.docId||new URLSearchParams(location.search).get(`doc`),n=e.state?.anchor||(location.hash.length>1?location.hash.slice(1):null);t&&b(t,!0,!1,n)};window.addEventListener(`popstate`,n);let r=()=>{w()};return window.addEventListener(`ld:documents-changed`,r),()=>{window.removeEventListener(`popstate`,n),window.removeEventListener(`ld:documents-changed`,r)}});var T=iT(),E=R(T),D=L(E);Xo(D,{get title(){return V(d)},subtitle:``,actions:e=>{var t=eT(),n=R(t),r=z(n,2),i=e=>{var t=$w(),n=L(t,!0);j(t),B(()=>G(n,V(l)?`☀`:`☾`)),H(`click`,t,g),W(e,t)};K(r,e=>{V(u)||e(i)}),B((e,t)=>{J(n,`title`,e),J(n,`aria-label`,t)},[()=>Y(`nav.word_cloud`),()=>Y(`nav.word_cloud`)]),H(`click`,n,()=>F(a,!0)),W(e,t)},children:(e,t)=>{var n=tT(),r=L(n);ki(r),Ie(2),j(n),B(e=>{J(r,`placeholder`,e),Ai(r,X.searchQuery)},[()=>Y(`nav.search_placeholder`)]),H(`input`,r,e=>_(e.target.value)),W(e,n)},$$slots:{actions:!0,default:!0}});var ee=z(D,2),te=L(ee);_v(te,{onopen:e=>b(e),onsearch:_,onexport:()=>F(i,!0),onnewfolder:()=>F(n,!0),onnewdoc:()=>F(r,!0)});var O=z(te,2),k=L(O),ne=e=>{var t=Wr(),n=R(t),r=e=>{var t=nT(),n=L(t,!0);j(t),B(()=>G(n,V(c))),W(e,t)},i=e=>{_w(e,{get doc(){return V(o)},get navHistory(){return V(v)},ongoback:y,onopen:(e,t)=>b(e,!1,!0,t),onsave:x,ondelete:C})};K(n,e=>{V(c)?e(r):e(i,-1)}),W(e,t)},A=e=>{var t=rT(),n=L(t),r=z(L(n),2),i=L(r,!0);j(r);var a=z(r,2),o=L(a,!0);j(a);var s=z(a,2),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(n),j(t),B((e,t,n)=>{G(i,e),G(o,t),G(c,V(f)),G(u,n)},[()=>Y(`welcome.title`),()=>Y(`welcome.hint`),()=>Y(`welcome.pattern_hint`)]),W(e,t)};K(k,e=>{V(o)?e(ne):e(A,-1)}),j(O),j(ee),j(E);var re=z(E,2);Tw(re,{get open(){return V(n)},onclose:()=>F(n,!1),onsuccess:w});var ie=z(re,2);Wa(ie,{get open(){return V(r)},onclose:()=>F(r,!1),onsuccess:async e=>{await w(),b(e)}});var ae=z(ie,2);Nw(ae,{get open(){return V(i)},onclose:()=>F(i,!1)}),Qw(z(ae,2),{get open(){return V(a)},onclose:()=>F(a,!1)}),W(e,T),Je()}Pr([`click`,`input`]);var oT=`modulepreload`,sT=function(e){return`/`+e},cT={},lT=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,new URL(`../../../src/node/plugins/importAnalysisBuild.ts`,import.meta.url)).href}r=o(t.map(t=>{if(t=sT(t,n),t=s(t),t in cT)return;cT[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:oT,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},uT=U(`<div class="flex flex-col h-screen overflow-hidden bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100"><header class="flex items-center gap-1 px-2 h-12 shrink-0 border-b border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-900 shadow-sm z-10"><button class="tool-btn !w-auto px-2 text-xs font-medium text-gray-500 dark:text-gray-400"> </button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSidebar" class="tool-btn">☰</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnCopyDiagramId" class="tool-btn"><svg width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="8" height="9" rx="1.5"></rect><path d="M3 11V3a1 1 0 0 1 1-1h7"></path></svg></button> <button id="toolSelect" class="tool-btn tool-active"><svg width="11" height="13" viewBox="0 0 11 13" fill="currentColor" stroke="none"><path d="M1 1 L1 12 L4 9 L6.5 13 L8 12.2 L5.5 8.2 L10 8.2 Z"></path></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolBox" class="tool-btn"><svg width="15" height="10" viewBox="0 0 15 10" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="1" width="13" height="8" rx="1"></rect></svg></button> <button id="toolEllipse" class="tool-btn"><svg width="16" height="10" viewBox="0 0 16 10" fill="none" stroke="currentColor" stroke-width="1.5"><ellipse cx="8" cy="5" rx="7" ry="4"></ellipse></svg></button> <button id="toolDatabase" class="tool-btn"><svg width="12" height="16" viewBox="0 0 12 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><ellipse cx="6" cy="3" rx="5" ry="2"></ellipse><path d="M1 3v10c0 1.1 2.2 2 5 2s5-.9 5-2V3"></path><path d="M11 7.5c0 1.1-2.2 2-5 2s-5-.9-5-2"></path></svg></button> <button id="toolCircle" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="6.5" cy="6.5" r="5.5"></circle></svg></button> <button id="toolActor" class="tool-btn"><svg width="12" height="17" viewBox="0 0 12 17" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><circle cx="6" cy="3" r="2.2"></circle><line x1="6" y1="5.2" x2="6" y2="10"></line><line x1="1.5" y1="7.5" x2="10.5" y2="7.5"></line><line x1="6" y1="10" x2="2.5" y2="15"></line><line x1="6" y1="10" x2="9.5" y2="15"></line></svg></button> <button id="toolPostIt" class="tool-btn"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4"><path d="M1 1 H9 L12 4 V12 H1 Z"></path><path d="M9 1 V4 H12" stroke-opacity="0.5"></path></svg></button> <button id="toolTextFree" class="tool-btn" style="font-size:11px; font-weight:600;">T</button> <button id="toolImage" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" rx="1.5"></rect><circle cx="4.5" cy="4.5" r="1.2"></circle><path d="M1 9.5 L4 6.5 L6.5 9 L9 7 L13 10.5"></path></svg></button> <a href="/shape-editor" class="tool-btn">✦</a> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="toolArrow" class="tool-btn">→</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDelete" class="tool-btn"><svg width="11" height="11" viewBox="0 0 11 11" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><line x1="1" y1="1" x2="10" y2="10"></line><line x1="10" y1="1" x2="1" y2="10"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDiagramDefaults" class="tool-btn"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button> <button id="btnAlign" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4"><line x1="0.5" y1="7.5" x2="13.5" y2="7.5"></line><line x1="3.5" y1="0.5" x2="3.5" y2="13.5" stroke-dasharray="1.5 1.5"></line><line x1="10.5" y1="0.5" x2="10.5" y2="13.5" stroke-dasharray="1.5 1.5"></line></svg></button> <button id="btnGrid" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.2"><line x1="5" y1="1" x2="5" y2="13"></line><line x1="9" y1="1" x2="9" y2="13"></line><line x1="1" y1="5" x2="13" y2="5"></line><line x1="1" y1="9" x2="13" y2="9"></line><rect x="1" y="1" width="12" height="12" rx="1"></rect></svg></button> <button id="btnEdgeStraight" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="2" y1="12" x2="12" y2="2"></line><polyline points="8,2 12,2 12,6"></polyline></svg></button> <button id="btnEvidenceMode" class="tool-btn"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M4 1.5 H8.5 L11 4 V12.5 H4 Z"></path><path d="M8.5 1.5 V4 H11"></path><path d="M1.5 5.5 H6.5"></path><path d="M1.5 8 H6.5"></path><path d="M1.5 10.5 H5"></path></svg></button> <button id="btnResizeMode" class="tool-btn active-tool"><svg id="icon-resize-corner" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="7,10 10,10 10,7"></polyline></svg> <svg id="icon-resize-center" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="hidden"><rect x="1" y="1" width="12" height="12" stroke-dasharray="2.5 2"></rect><line x1="4" y1="4" x2="10" y2="10"></line><polyline points="4,6.5 4,4 6.5,4"></polyline><polyline points="10,7.5 10,10 7.5,10"></polyline><line x1="10" y1="4" x2="4" y2="10"></line><polyline points="7.5,4 10,4 10,6.5"></polyline><polyline points="4,7.5 4,10 6.5,10"></polyline></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <input id="diagramTitle" type="text" class="flex-1 min-w-0 px-2 py-1 text-sm bg-transparent border-0 focus:outline-none focus:ring-1 focus:ring-blue-500 rounded text-gray-700 dark:text-gray-300 placeholder:text-gray-400"/> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnZoomOut" class="tool-btn">−</button> <span id="zoomLevel" class="text-xs text-gray-500 dark:text-gray-400 w-10 text-center tabular-nums select-none">100%</span> <button id="btnZoomIn" class="tool-btn">+</button> <button id="btnZoomReset" class="tool-btn">⊡</button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDark" class="tool-btn"><span id="darkIcon">☽</span></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnDebug" class="hidden tool-btn text-xs font-mono">dbg</button> <div id="sepDebug" class="hidden w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnExportDrawio" class="tool-btn"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg></button> <div class="w-px h-6 bg-gray-200 dark:bg-gray-700 mx-0.5"></div> <button id="btnSave" disabled="" class="px-3 py-1.5 text-xs font-semibold rounded-lg bg-blue-600 hover:bg-blue-700 text-white disabled:opacity-40 disabled:cursor-not-allowed shrink-0 transition-colors"><span> </span></button></header> <div class="flex flex-1 overflow-hidden"><div id="sidebar" class="w-56 shrink-0 border-r border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800 flex flex-col overflow-hidden" style="transition: width 0.2s ease"><div class="flex items-center justify-between px-3 py-2 border-b border-gray-200 dark:border-gray-700 shrink-0"><span class="text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"> </span> <button id="btnNewDiagram" class="text-xs font-medium text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 transition-colors"> </button></div> <div id="diagramList" class="flex-1 overflow-y-auto py-1"></div></div> <div role="separator" aria-orientation="vertical"></div> <div class="relative flex-1 overflow-hidden bg-gray-50 dark:bg-gray-950"><div id="vis-canvas" class="w-full h-full"></div> <div id="customShapeBar" class="hidden"><div id="customShapeBarBody"></div></div> <div id="debugLayer"></div> <div id="evidenceLayer" class="hidden"></div> <div id="stampOverlay" style="position:absolute;inset:0;display:none;z-index:11;cursor:crosshair;"></div> <div id="selectionOverlay"><div id="rh-tl" class="resize-handle" style="top: -5px; left: -5px; cursor: nw-resize"></div> <div id="rh-tr" class="resize-handle" style="top: -5px; right: -5px; cursor: ne-resize"></div> <div id="rh-bl" class="resize-handle" style="bottom: -5px; left: -5px; cursor: sw-resize"></div> <div id="rh-br" class="resize-handle" style="bottom: -5px; right: -5px; cursor: se-resize"></div> <div id="rh-rotate">↻</div> <div id="rh-label-rotate" style="left: 0; top: -28px;"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><g transform="rotate(25,5,5)"><line x1="2.5" y1="3" x2="7.5" y2="3"></line><line x1="5" y1="3" x2="5" y2="8"></line></g></svg></div></div> <aside id="evidencePanel" class="hidden absolute top-0 right-0 bottom-0 w-80 max-w-[85vw] z-30 bg-gray-50 dark:bg-gray-900 border-l border-gray-200 dark:border-gray-700 shadow-xl flex flex-col"><div class="flex items-center justify-between gap-2 px-4 py-3 border-b border-gray-200 dark:border-gray-700"><h2 id="evidencePanelTitle" class="text-sm font-semibold text-gray-800 dark:text-gray-100"> </h2> <button id="btnEvidenceClose" class="tool-btn !w-7 !h-7">×</button></div> <div id="evidencePanelBody" class="flex-1 overflow-y-auto p-3 space-y-3"></div></aside> <div id="nodePanel" class="float-panel hidden"><button id="btnNodeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="nodePanelControls" class="contents"><button id="nodeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#f5f5f4;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <input id="nodeBgOpacity" type="range" min="0" max="100" step="5" value="100" class="w-16 h-1 accent-orange-500 cursor-pointer"/> <div class="panel-sep"></div> <button id="btnNodeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnNodeLink" class="tool-btn !w-6 !h-6"><svg width="13" height="13" viewBox="0 0 13 13" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M5 7.5a3.5 3.5 0 0 0 5 0l1.5-1.5a3.5 3.5 0 0 0-5-5L5 2.5"></path><path d="M8 5.5a3.5 3.5 0 0 0-5 0L1.5 7a3.5 3.5 0 0 0 5 5L8 10.5"></path></svg></button> <div class="panel-sep"></div> <button id="btnNodeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="nodeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">13</span> <button id="btnNodeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnAlignLeft" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="1" y1="5" x2="7" y2="5"></line><line x1="1" y1="8" x2="9" y2="8"></line></svg></button> <button id="btnAlignCenter" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="2.5" y1="5" x2="9.5" y2="5"></line><line x1="1.5" y1="8" x2="10.5" y2="8"></line></svg></button> <button id="btnAlignRight" class="tool-btn !w-6 !h-6"><svg width="12" height="10" viewBox="0 0 12 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"><line x1="1" y1="2" x2="11" y2="2"></line><line x1="5" y1="5" x2="11" y2="5"></line><line x1="3" y1="8" x2="11" y2="8"></line></svg></button> <div class="panel-sep"></div> <button id="btnValignTop" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="1.5" x2="9" y2="1.5" stroke-width="2"></line><line x1="1" y1="5" x2="8" y2="5" stroke-width="1.3"></line><line x1="1" y1="8.5" x2="6" y2="8.5" stroke-width="1.3"></line></svg></button> <button id="btnValignMiddle" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="2.5" x2="8" y2="2.5" stroke-width="1.3"></line><line x1="1" y1="6" x2="9" y2="6" stroke-width="2"></line><line x1="1" y1="9.5" x2="6" y2="9.5" stroke-width="1.3"></line></svg></button> <button id="btnValignBottom" class="tool-btn !w-6 !h-6"><svg width="10" height="12" viewBox="0 0 10 12" fill="none" stroke="currentColor" stroke-linecap="round"><line x1="1" y1="3.5" x2="8" y2="3.5" stroke-width="1.3"></line><line x1="1" y1="7" x2="6" y2="7" stroke-width="1.3"></line><line x1="1" y1="10.5" x2="9" y2="10.5" stroke-width="2"></line></svg></button> <div class="panel-sep"></div> <div id="customShapeLabelPlacementControls" class="hidden"><button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="above">T↑</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="below">T↓</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="left">←T</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="right">T→</button> <button class="tool-btn !w-7 !h-6 font-mono text-[10px]" data-label-placement="center">T□</button> <div class="panel-sep"></div></div> <button id="btnZOrderBack" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1"></rect><rect x="5" y="1" width="8" height="8" rx="1" stroke-opacity="0.35"></rect></svg></button> <button id="btnZOrderFront" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="5" width="8" height="8" rx="1" stroke-opacity="0.35"></rect><rect x="5" y="1" width="8" height="8" rx="1"></rect></svg></button> <div class="panel-sep"></div> <button id="btnStampColor" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><path d="M7 2 C7 2 3 6.5 3 9 a4 4 0 0 0 8 0 C11 6.5 7 2 7 2 Z" fill="currentColor" fill-opacity="0.25"></path></svg></button> <button id="btnStampFontSize" class="tool-btn !w-7 !h-6 font-mono text-xs font-bold">Aa</button> <button id="btnStampSize" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="6" height="6" rx="0.8" fill="currentColor" fill-opacity="0.25"></rect><path d="M10 2 L12 2 L12 4"></path><path d="M12 2 L9 5"></path><path d="M10 12 L12 12 L12 10"></path><path d="M12 12 L9 9"></path></svg></button> <div class="panel-sep"></div> <button id="btnRotateCCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↺</button> <button id="btnRotateCW" class="tool-btn !w-7 !h-6" style="font-size:15px; line-height:1;">↻</button> <div class="panel-sep"></div> <button id="btnCopyPng" class="tool-btn !h-6 px-1.5 font-mono text-xs font-semibold flex items-center gap-0.5"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="7" x2="5" y2="1"></line><polyline points="2,4 5,1 8,4"></polyline><line x1="1" y1="9" x2="9" y2="9"></line></svg> PNG</button> <div class="panel-sep"></div> <button id="btnGroup" class="tool-btn !w-8 !h-7"><svg width="22" height="14" viewBox="0 0 22 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="20.6" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="4" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="15" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <button id="btnUngroup" class="tool-btn !w-8 !h-7"><svg width="26" height="14" viewBox="0 0 26 14" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="0.7" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="3" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect><rect x="16.3" y="1" width="9" height="12" rx="2" stroke-dasharray="2.5,1.5"></rect><rect x="19" y="4.5" width="3" height="5" rx="1" fill="currentColor"></rect></svg></button> <div class="panel-sep"></div> <button id="btnSaveShapeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <div id="linkPanel" class="float-panel hidden" style="min-width:260px; flex-direction:column; align-items:stretch; gap:0.5rem; padding:0.75rem;"><div class="text-xs font-semibold text-gray-500 dark:text-gray-400 mb-1"> </div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeUrl" value="url" class="accent-orange-500"/> <span> </span></label> <div id="linkUrlRow"><input id="linkUrlInput" type="url" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeDiagram" value="diagram" class="accent-orange-500"/> <span> </span></label> <div id="linkDiagramRow" class="hidden"><select id="linkDiagramSelect" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"></select></div> <label class="flex items-center gap-2 text-xs cursor-pointer"><input type="radio" name="linkType" id="linkTypeNew" value="new" class="accent-orange-500"/> <span> </span></label> <div id="linkNewRow" class="hidden"><input id="linkNewName" type="text" class="w-full text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 bg-white dark:bg-gray-800 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-1 focus:ring-orange-400"/></div> <div class="flex gap-1 mt-1"><button id="btnLinkSave" class="flex-1 text-xs bg-orange-500 hover:bg-orange-600 text-white rounded px-2 py-1"> </button> <button id="btnLinkRemove" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-red-50 dark:hover:bg-red-900/20 hover:text-red-600"> </button> <button id="btnLinkCancel" class="text-xs border border-gray-300 dark:border-gray-600 rounded px-2 py-1 hover:bg-gray-100 dark:hover:bg-gray-700">✕</button></div></div> <div id="edgePanel" class="float-panel hidden"><button id="btnEdgeLock" class="tool-btn !w-6 !h-6 text-sm">🔒</button> <div class="panel-sep"></div> <div id="edgePanelControls" class="contents"><button id="edgeBtnNone" class="tool-btn !w-7 !h-6 font-mono text-xs">—</button> <button id="edgeBtnFrom" class="tool-btn !w-7 !h-6 text-xs">←</button> <button id="edgeBtnTo" class="tool-btn !w-7 !h-6 text-xs">→</button> <button id="edgeBtnBoth" class="tool-btn !w-8 !h-6 text-xs">←→</button> <div class="panel-sep"></div> <button id="edgeBtnSolid" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round"></line></svg></button> <button id="edgeBtnDashed" class="tool-btn !w-8 !h-6"><svg width="22" height="4" viewBox="0 0 22 4"><line x1="1" y1="2" x2="21" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="4,3"></line></svg></button> <div class="panel-sep"></div> <button id="btnEdgeFontDecrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa−</button> <span id="edgeFontSizeValue" class="inline-flex items-center justify-center min-w-[2.25rem] h-6 px-1 text-[11px] font-mono text-gray-700 dark:text-gray-200 border border-gray-300 dark:border-gray-600 rounded bg-white/80 dark:bg-gray-800/80">11</span> <button id="btnEdgeFontIncrease" class="tool-btn !w-8 !h-6" style="font-size: 10px">Aa+</button> <div class="panel-sep"></div> <button id="btnEdgeLabelEdit" class="tool-btn !w-6 !h-6">✎</button> <button id="btnEdgeLabelWidthReset" class="tool-btn !w-6 !h-6 text-xs">↔</button> <div class="panel-sep"></div> <button id="btnEdgeLabelRotateCCW" class="tool-btn !w-7 !h-6 text-sm">↺</button> <button id="btnEdgeLabelRotateCW" class="tool-btn !w-7 !h-6 text-sm">↻</button> <div class="panel-sep"></div> <button id="btnEdgeLabelOffsetLeft" class="tool-btn !w-6 !h-6 text-sm">←</button> <button id="btnEdgeLabelOffsetRight" class="tool-btn !w-6 !h-6 text-sm">→</button> <button id="btnEdgeLabelOffsetUp" class="tool-btn !w-6 !h-6 text-sm">↑</button> <button id="btnEdgeLabelOffsetDown" class="tool-btn !w-6 !h-6 text-sm">↓</button> <button id="btnEdgeLabelOffsetReset" class="tool-btn !w-6 !h-6 text-xs">⊙</button> <div class="panel-sep"></div> <button id="btnEdgeWidthDecrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W−</button> <button id="btnEdgeWidthIncrease" class="tool-btn !w-7 !h-6" style="font-size:10px">W+</button> <div class="panel-sep"></div> <button id="edgeColorSwatch" style="width:1.5rem;height:1.5rem;border-radius:0.25rem;border:2px solid #a8a29e;background:#a8a29e;cursor:pointer;flex-shrink:0;"></button> <div class="panel-sep"></div> <button id="btnEdgeClearPorts" class="tool-btn !w-8 !h-6 text-xs">⊗</button> <div class="panel-sep"></div> <button id="btnSaveEdgeDefault" class="tool-btn !w-7 !h-6"><svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor"><path d="M8 4.754a3.246 3.246 0 1 0 0 6.492 3.246 3.246 0 0 0 0-6.492M5.754 8a2.246 2.246 0 1 1 4.492 0 2.246 2.246 0 0 1-4.492 0"></path><path d="M9.796 1.343c-.527-1.79-3.065-1.79-3.592 0l-.094.319a.873.873 0 0 1-1.255.52l-.292-.16c-1.64-.892-3.433.902-2.54 2.541l.159.292a.873.873 0 0 1-.52 1.255l-.319.094c-1.79.527-1.79 3.065 0 3.592l.319.094a.873.873 0 0 1 .52 1.255l-.16.292c-.892 1.64.901 3.434 2.541 2.54l.292-.159a.873.873 0 0 1 1.255.52l.094.319c.527 1.79 3.065 1.79 3.592 0l.094-.319a.873.873 0 0 1 1.255-.52l.292.16c1.64.893 3.434-.902 2.54-2.541l-.159-.292a.873.873 0 0 1 .52-1.255l.319-.094c1.79-.527 1.79-3.065 0-3.592l-.319-.094a.873.873 0 0 1-.52-1.255l.16-.292c.893-1.64-.902-3.433-2.541-2.54l-.292.159a.873.873 0 0 1-1.255-.52zm-2.633.283c.246-.835 1.428-.835 1.674 0l.094.319a1.873 1.873 0 0 0 2.693 1.115l.291-.16c.764-.415 1.6.42 1.184 1.185l-.159.292a1.873 1.873 0 0 0 1.116 2.692l.318.094c.835.246.835 1.428 0 1.674l-.319.094a1.873 1.873 0 0 0-1.115 2.693l.16.291c.415.764-.42 1.6-1.185 1.184l-.291-.159a1.873 1.873 0 0 0-2.693 1.116l-.094.318c-.246.835-1.428.835-1.674 0l-.094-.319a1.873 1.873 0 0 0-2.692-1.115l-.292.16c-.764.415-1.6-.42-1.184-1.185l.159-.291A1.873 1.873 0 0 0 1.945 8.93l-.319-.094c-.835-.246-.835-1.428 0-1.674l.319-.094A1.873 1.873 0 0 0 3.06 4.474l-.16-.292c-.415-.764.42-1.6 1.185-1.184l.292.159a1.873 1.873 0 0 0 2.692-1.115z"></path></svg></button></div></div> <textarea id="labelInput" class="hidden" rows="1"></textarea> <div id="emptyState" class="absolute inset-0 flex flex-col items-center justify-center text-gray-400 dark:text-gray-600 pointer-events-none select-none"><svg width="52" height="44" viewBox="0 0 52 44" fill="none" stroke="currentColor" stroke-width="1.5" class="mb-3 opacity-50"><rect x="2" y="4" width="18" height="12" rx="2"></rect><rect x="32" y="28" width="18" height="12" rx="2"></rect><line x1="20" y1="10" x2="32" y2="34" stroke-dasharray="4,3"></line><rect x="17" y="16" width="18" height="12" rx="2"></rect><line x1="26" y1="16" x2="26" y2="10" stroke-dasharray="4,3"></line></svg> <p class="text-sm"> </p></div></div></div> <div id="toastContainer"></div> <div id="imageNameModal" style="display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,0.5);" class="flex items-center justify-center"><div class="bg-white dark:bg-gray-800 rounded-xl shadow-2xl p-6 w-80 flex flex-col gap-3"><p class="text-sm font-semibold text-gray-700 dark:text-gray-200"> </p> <p class="text-xs text-gray-400 dark:text-gray-500">Lettres, chiffres, <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">_</code> et <code class="bg-gray-100 dark:bg-gray-700 px-0.5 rounded">-</code> uniquement.
|
|
279
279
|
Laisser vide pour un nom automatique.</p> <div class="flex items-center gap-1"><input id="imageNameInput" type="text" autocomplete="off" spellcheck="false" class="flex-1 rounded border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700
|
|
280
280
|
text-gray-900 dark:text-gray-100 text-sm px-2 py-1 outline-none focus:ring-2 focus:ring-blue-400"/> <span class="text-xs text-gray-400 dark:text-gray-500 whitespace-nowrap">.png</span></div> <p id="imageNameError" class="text-xs text-red-500 hidden"> </p> <div class="flex gap-2 justify-end"><button id="imageNameCancel" class="px-3 py-1 text-xs rounded border border-gray-300 dark:border-gray-600
|
|
281
|
-
text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"> </button> <button id="imageNameConfirm" class="px-3 py-1 text-xs rounded bg-blue-500 text-white hover:bg-blue-600"> </button></div></div></div></div>`);function $w(e,t){qe(t,!0),Gi(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await ya(t);let{initDiagram:r}=await Zw(async()=>{let{initDiagram:e}=await import(`./main-vSl2O7Hg.js`);return{initDiagram:e}},[]);e=r();let i=document.getElementById(`sidebar`),a=parseInt(localStorage.getItem(n)||``,10);i&&Number.isFinite(a)&&(i.style.width=a+`px`)})(),()=>e?.()});let n=`ld-diagram-sidebar-w`,r=P(!1);function i(e){e.preventDefault();let t=document.getElementById(`sidebar`);if(!t)return;let i=e.clientX,a=t.getBoundingClientRect().width;F(r,!0),t.style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=Math.max(160,Math.min(480,a+e.clientX-i));t.style.width=n+`px`},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),document.body.style.cursor=``,document.body.style.userSelect=``,F(r,!1),t.style.transition=``;try{localStorage.setItem(n,String(parseInt(t.style.width,10)))}catch{}};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)}var a=Qw(),o=L(a),s=L(o),c=L(s,!0);j(s);var l=z(s,4),u=z(l,4),d=z(u,2),f=z(d,4),p=z(f,2),m=z(p,2),h=z(m,2),g=z(h,2),_=z(g,2),v=z(_,2),y=z(v,2),b=z(y,2),x=z(b,4),S=z(x,4),C=z(S,4),w=z(C,2),T=z(w,2),E=z(T,2),D=z(E,2),ee=z(D,2),te=z(ee,4),O=z(te,4),k=z(O,4),ne=z(k,2),A=z(ne,8),re=z(A,4),ie=z(re,4),ae=L(ie),oe=L(ae,!0);j(ae),j(ie),j(o);var se=z(o,2),ce=L(se),le=L(ce),ue=L(le),de=L(ue,!0);j(ue);var fe=z(ue,2),pe=L(fe,!0);j(fe),j(le),Ie(2),j(ce);var me=z(ce,2),he=z(me,2),ge=z(L(he),10),_e=z(L(ge),8),ve=z(_e,2);j(ge);var ye=z(ge,2),be=L(ye),xe=L(be),Se=L(xe,!0);j(xe);var Ce=z(xe,2);j(be),Ie(2),j(ye);var we=z(ye,2),Te=L(we),Ee=z(Te,4),De=L(Ee),Oe=z(De,4),ke=z(Oe,4),Ae=z(ke,2),je=z(Ae,4),Me=z(je,2),Ne=z(Me,2),Pe=z(Ne,4),Fe=z(Pe,2),Le=z(Fe,2),Re=z(Le,4),ze=z(Re,2),Be=z(ze,2),Ve=z(Be,4),He=L(Ve),Ue=z(He,2),We=z(Ue,2),Ge=z(We,2),Ke=z(Ge,2);Ie(2),j(Ve);var Ye=z(Ve,2),Xe=z(Ye,2),Ze=z(Xe,4),Qe=z(Ze,2),$e=z(Qe,2),et=z($e,4),tt=z(et,2),nt=z(tt,4),rt=z(nt,4),it=z(rt,2),at=z(it,4);j(Ee),j(we);var ot=z(we,2),st=L(ot),ct=L(st,!0);j(st);var lt=z(st,2),ut=z(L(lt),2),dt=L(ut,!0);j(ut),j(lt);var ft=z(lt,2),M=L(ft);j(ft);var pt=z(ft,2),mt=z(L(pt),2),ht=L(mt,!0);j(mt),j(pt);var gt=z(pt,4),_t=z(L(gt),2),vt=L(_t,!0);j(_t),j(gt);var yt=z(gt,2),N=L(yt);j(yt);var bt=z(yt,2),xt=L(bt),St=L(xt,!0);j(xt);var Ct=z(xt,2),wt=L(Ct,!0);j(Ct),Ie(2),j(bt),j(ot);var Tt=z(ot,2),Et=L(Tt),Dt=z(Et,4),Ot=L(Dt),kt=z(Ot,2),At=z(kt,2),jt=z(At,2),Mt=z(jt,4),Nt=z(Mt,2),Pt=z(Nt,4),Ft=z(Pt,2),It=z(Ft,2),Lt=z(It,4),Rt=z(Lt,2),zt=z(Rt,4),Bt=z(zt,2),Vt=z(Bt,4),Ht=z(Vt,2),Ut=z(Ht,2),Wt=z(Ut,2),Gt=z(Wt,2),Kt=z(Gt,4),qt=z(Kt,2),Jt=z(qt,4),Yt=z(Jt,4),Xt=z(Yt,4);j(Dt),j(Tt);var Zt=z(Tt,2),Qt=z(Zt,2),$t=z(L(Qt),2),en=L($t,!0);j($t),j(Qt),j(he),j(se);var tn=z(se,4),nn=L(tn),I=L(nn),rn=L(I,!0);j(I);var an=z(I,4),on=L(an);Ie(2),j(an);var sn=z(an,2),cn=L(sn,!0);j(sn);var ln=z(sn,2),un=L(ln),dn=L(un,!0);j(un);var fn=z(un,2),pn=L(fn,!0);j(fn),j(ln),j(nn),j(tn),j(a),B((e,t,n,i,a,o,s,ie,ae,se,ce,le,ue,fe,he,ge,ye,be,xe,we,Ee,j,Ie,Ve,qe,Je,ot,st,lt,ut,ft,pt,mt,gt,_t,yt,bt,xt,Ct,Tt,Dt,P,Qt,F,$t,tn,nn,I,an,sn,ln,un,fn,L,R,z,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,B,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar)=>{G(c,e),J(l,`title`,t),J(u,`title`,n),J(d,`title`,i),J(f,`title`,a),J(p,`title`,o),J(m,`title`,s),J(h,`title`,ie),J(g,`title`,ae),J(_,`title`,se),J(v,`title`,ce),J(y,`title`,le),J(b,`title`,ue),J(x,`title`,fe),J(S,`title`,he),J(C,`title`,ge),J(w,`title`,ye),J(T,`title`,be),J(E,`title`,xe),J(D,`title`,we),J(ee,`title`,Ee),J(te,`placeholder`,j),J(O,`title`,Ie),J(k,`title`,Ve),J(ne,`title`,qe),J(A,`title`,Je),J(re,`title`,ot),G(oe,st),G(de,lt),G(pe,ut),gi(me,1,`w-1 shrink-0 cursor-col-resize select-none transition-colors ${V(r)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),J(_e,`title`,ft),J(ve,`title`,pt),G(Se,mt),J(Ce,`title`,gt),J(Te,`title`,_t),J(De,`title`,yt),J(Oe,`title`,bt),J(ke,`title`,xt),J(Ae,`title`,Ct),J(je,`title`,Tt),J(Me,`title`,Dt),J(Ne,`title`,P),J(Pe,`title`,Qt),J(Fe,`title`,F),J(Le,`title`,$t),J(Re,`title`,tn),J(ze,`title`,nn),J(Be,`title`,I),J(He,`title`,an),J(Ue,`title`,sn),J(We,`title`,ln),J(Ge,`title`,un),J(Ke,`title`,fn),J(Ye,`title`,L),J(Xe,`title`,R),J(Ze,`title`,z),J(Qe,`title`,mn),J($e,`title`,hn),J(et,`title`,gn),J(tt,`title`,_n),J(nt,`title`,vn),J(rt,`title`,yn),J(it,`title`,bn),J(at,`title`,xn),G(ct,Sn),G(dt,Cn),J(M,`placeholder`,wn),G(ht,Tn),G(vt,En),J(N,`placeholder`,Dn),G(St,On),G(wt,kn),J(Et,`title`,An),J(Ot,`title`,jn),J(kt,`title`,Mn),J(At,`title`,Nn),J(jt,`title`,Pn),J(Mt,`title`,Fn),J(Nt,`title`,B),J(Pt,`title`,In),J(Ft,`title`,Ln),J(It,`title`,Rn),J(Lt,`title`,zn),J(Rt,`title`,Bn),J(zt,`title`,Vn),J(Bt,`title`,Hn),J(Vt,`title`,Un),J(Ht,`title`,Wn),J(Ut,`title`,Gn),J(Wt,`title`,Kn),J(Gt,`title`,qn),J(Kt,`title`,Jn),J(qt,`title`,Yn),J(Jt,`title`,Xn),J(Yt,`title`,Zn),J(Xt,`title`,Qn),J(Zt,`placeholder`,$n),G(en,er),G(rn,tr),J(on,`placeholder`,nr),G(cn,rr),G(dn,ir),G(pn,ar)},[()=>Y(`diagram.back_btn`),()=>Y(`diagram.diagrams_list_title`),()=>Y(`diagram.toolbar.copy_mcp_id`),()=>Y(`diagram.toolbar.select`),()=>Y(`diagram.toolbar.box`),()=>Y(`diagram.toolbar.ellipse`),()=>Y(`diagram.toolbar.database`),()=>Y(`diagram.toolbar.circle`),()=>Y(`diagram.toolbar.actor`),()=>Y(`diagram.toolbar.postit`),()=>Y(`diagram.toolbar.text_free`),()=>Y(`diagram.toolbar.image`),()=>Y(`diagram.toolbar.shape_editor`),()=>Y(`diagram.toolbar.arrow`),()=>Y(`diagram.toolbar.delete`),()=>Y(`diagram.toolbar.defaults`),()=>Y(`diagram.toolbar.align_guides`),()=>Y(`diagram.toolbar.grid`),()=>Y(`diagram.toolbar.edge_style`),()=>Y(`diagram.toolbar.evidence_mode`),()=>Y(`diagram.toolbar.resize_corner`),()=>Y(`diagram.toolbar.title_placeholder`),()=>Y(`diagram.toolbar.zoom_out`),()=>Y(`diagram.toolbar.zoom_in`),()=>Y(`diagram.toolbar.fit`),()=>Y(`diagram.toolbar.debug`),()=>Y(`diagram.toolbar.export_drawio`),()=>Y(`diagram.toolbar.save`),()=>Y(`diagram.sidebar.title`),()=>Y(`diagram.sidebar.new_btn`),()=>Y(`diagram.selection.rotate_shape`),()=>Y(`diagram.selection.rotate_text`),()=>Y(`diagram.evidence.panel_title`),()=>Y(`diagram.evidence.close`),()=>Y(`diagram.node_panel.lock`),()=>Y(`diagram.node_panel.color`),()=>Y(`diagram.node_panel.bg_opacity`),()=>Y(`diagram.node_panel.edit_label`),()=>Y(`diagram.node_panel.edit_link`),()=>Y(`diagram.node_panel.font_decrease`),()=>Y(`diagram.node_panel.font_size_value`),()=>Y(`diagram.node_panel.font_increase`),()=>Y(`diagram.node_panel.align_left`),()=>Y(`diagram.node_panel.align_center`),()=>Y(`diagram.node_panel.align_right`),()=>Y(`diagram.node_panel.align_top`),()=>Y(`diagram.node_panel.align_middle`),()=>Y(`diagram.node_panel.align_bottom`),()=>Y(`diagram.node_panel.custom_label_above`),()=>Y(`diagram.node_panel.custom_label_below`),()=>Y(`diagram.node_panel.custom_label_left`),()=>Y(`diagram.node_panel.custom_label_right`),()=>Y(`diagram.node_panel.custom_label_center`),()=>Y(`diagram.node_panel.send_back`),()=>Y(`diagram.node_panel.bring_front`),()=>Y(`diagram.node_panel.stamp_color`),()=>Y(`diagram.node_panel.stamp_font`),()=>Y(`diagram.node_panel.stamp_size`),()=>Y(`diagram.node_panel.rotate_ccw`),()=>Y(`diagram.node_panel.rotate_cw`),()=>Y(`diagram.node_panel.copy_png`),()=>Y(`diagram.node_panel.group`),()=>Y(`diagram.node_panel.ungroup`),()=>Y(`diagram.node_panel.save_as_default`),()=>Y(`diagram.link_panel.title`),()=>Y(`diagram.link_panel.external`),()=>Y(`diagram.link_panel.url_placeholder`),()=>Y(`diagram.link_panel.existing_diagram`),()=>Y(`diagram.link_panel.new_diagram`),()=>Y(`diagram.link_panel.diagram_name_placeholder`),()=>Y(`diagram.link_panel.save_btn`),()=>Y(`diagram.link_panel.remove_btn`),()=>Y(`diagram.edge_panel.lock`),()=>Y(`diagram.edge_panel.no_arrow`),()=>Y(`diagram.edge_panel.arrow_from`),()=>Y(`diagram.edge_panel.arrow_to`),()=>Y(`diagram.edge_panel.arrow_both`),()=>Y(`diagram.edge_panel.solid`),()=>Y(`diagram.edge_panel.dashed`),()=>Y(`diagram.edge_panel.font_decrease`),()=>Y(`diagram.edge_panel.font_size_value`),()=>Y(`diagram.edge_panel.font_increase`),()=>Y(`diagram.edge_panel.edit_label`),()=>Y(`diagram.edge_panel.reset_label_width`),()=>Y(`diagram.edge_panel.rotate_label_ccw`),()=>Y(`diagram.edge_panel.rotate_label_cw`),()=>Y(`diagram.edge_panel.offset_label_left`),()=>Y(`diagram.edge_panel.offset_label_right`),()=>Y(`diagram.edge_panel.offset_label_up`),()=>Y(`diagram.edge_panel.offset_label_down`),()=>Y(`diagram.edge_panel.offset_label_reset`),()=>Y(`diagram.edge_panel.width_decrease`),()=>Y(`diagram.edge_panel.width_increase`),()=>Y(`diagram.edge_panel.color`),()=>Y(`diagram.edge_panel.clear_ports`),()=>Y(`diagram.edge_panel.save_as_default`),()=>Y(`diagram.label_input.placeholder`),()=>Y(`diagram.empty_state`),()=>Y(`diagram.image_modal.title`),()=>Y(`diagram.image_modal.placeholder`),()=>Y(`diagram.image_modal.error_chars`),()=>Y(`diagram.image_modal.cancel_btn`),()=>Y(`diagram.image_modal.paste_btn`)]),H(`click`,s,()=>history.back()),H(`mousedown`,me,i),W(e,a),Je()}Pr([`click`,`mousedown`]);var eT=U(`<span class="legend-item svelte-1bqlvrg"><span class="legend-dot svelte-1bqlvrg"></span> </span>`),tT=U(`<p class="graph-msg svelte-1bqlvrg"> </p>`),nT=U(`<p class="graph-msg graph-error svelte-1bqlvrg"> </p>`),rT=U(`<div class="graph-page svelte-1bqlvrg"><!> <div class="graph-toolbar svelte-1bqlvrg"><span class="graph-counts svelte-1bqlvrg"> </span> <div class="graph-legend svelte-1bqlvrg"></div></div> <div class="graph-canvas-wrap svelte-1bqlvrg"><!> <div class="graph-canvas svelte-1bqlvrg"></div></div></div>`);function iT(e,t){qe(t,!0);let n={ADR:`#3b82f6`,Worklog:`#22c55e`,Rule:`#f97316`,"Technical Doc":`#a855f7`,Document:`#64748b`,Concept:`#14b8a6`},r,i=P(!0),a=P(``),o=P(I({nodes:0,edges:0})),s=P(I([]));function c(e){return n[e]??`#94a3b8`}Gi(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await ya(t);try{let t=await fetch(`/api/graph`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();F(o,{nodes:n.nodes.length,edges:n.edges.length},!0),F(s,[...new Set(n.nodes.map(e=>e.type))].sort().map(e=>({type:e,color:c(e)})),!0);let i=window.vis;if(!i)throw Error(Y(`graph.renderer_error`));let a=new i.DataSet(n.nodes.map(e=>({id:e.id,label:e.title,title:e.folder?`${e.folder} · ${e.type}`:e.type,color:{background:c(e.type),border:`rgba(100,116,139,0.9)`},shape:`dot`,size:12}))),l=new i.DataSet(n.edges.map((e,t)=>({id:t,from:e.from,to:e.to}))),u=getComputedStyle(document.body).color||`#334155`;e=new i.Network(r,{nodes:a,edges:l},{nodes:{font:{color:u,size:13,face:`inherit`},borderWidth:1.5},edges:{arrows:{to:{enabled:!0,scaleFactor:.5}},color:{color:`rgba(148,163,184,0.55)`,highlight:`#3b82f6`},smooth:{enabled:!0,type:`continuous`,roundness:.4},width:1},physics:{solver:`forceAtlas2Based`,forceAtlas2Based:{gravitationalConstant:-45,springLength:120,avoidOverlap:.6},stabilization:{iterations:250}},interaction:{hover:!0,tooltipDelay:150,navigationButtons:!1}}),e.on(`click`,e=>{e.nodes&&e.nodes.length>0&&(window.location.href=`/?doc=`+encodeURIComponent(e.nodes[0]))})}catch(e){F(a,e.message,!0)}finally{F(i,!1)}})(),()=>e?.destroy?.()});var l=rT(),u=L(l);{let e=N(()=>Y(`graph.title`)||`Concept graph`);Qo(u,{get title(){return V(e)},subtitle:``})}var d=z(u,2),f=L(d),p=L(f);j(f);var m=z(f,2);q(m,21,()=>V(s),e=>e.type,(e,t)=>{var n=eT(),r=L(n),i=z(r,1,!0);j(n),B(()=>{vi(r,`background:${V(t).color??``}`),G(i,V(t).type)}),W(e,n)}),j(m),j(d);var h=z(d,2),g=L(h),_=e=>{var t=tT(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`graph.loading`)||`Loading graph…`]),W(e,t)},v=e=>{var t=nT(),n=L(t,!0);j(t),B(()=>G(n,V(a))),W(e,t)},y=e=>{var t=tT(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`graph.empty`)||`No concepts to graph yet.`]),W(e,t)};K(g,e=>{V(i)?e(_):V(a)?e(v,1):V(o).nodes===0&&e(y,2)}),Vi(z(g,2),e=>r=e,()=>r),j(h),j(l),B(()=>G(p,`${V(o).nodes??``} · ${V(o).edges??``}`)),W(e,l),Je()}We();var aT={network:null,nodes:null,edges:null,diagrams:[],currentDiagramId:null,currentTool:`select`,pendingShape:`box`,selectedNodeIds:[],selectedEdgeIds:[],alignGuides:!0,gridEnabled:!0,debugMode:!1,isDirty:!1,sidebarOpen:!0,editingNodeId:null,editingEdgeId:null,resizeDrag:null,rotateDrag:null,labelRotateDrag:null,activeStamp:null,stampTargetIds:[],clipboard:null,canonicalOrder:[],edgesStraight:!1,resizeSymmetric:!1,nodeColorOverrides:{},customShapeLibraries:[],customShapeDefs:new Map,edgeLabelCanvasPos:{},edgeLabelBBox:{},freeArrowFirstPoint:null,exportingPng:!1,evidenceMode:!1};function oT(){aT.isDirty=!0,document.getElementById(`btnSave`).disabled=!1}var sT=`custom-shape`,cT=`custom-shape:`,lT=[{id:`N`,x:.5,y:0},{id:`NE`,x:1,y:0},{id:`E`,x:1,y:.5},{id:`SE`,x:1,y:1},{id:`S`,x:.5,y:1},{id:`SW`,x:0,y:1},{id:`W`,x:0,y:.5},{id:`NW`,x:0,y:0}];function uT(e){return typeof e==`string`&&e.startsWith(`custom-shape:`)}function dT(e){return uT(e)?e.slice(13):null}function fT(e){return e&&aT.customShapeDefs&&aT.customShapeDefs.get(e)||null}function pT(e){let t=fT(e);return[t&&t.width||65,t&&t.height||65]}function mT(e){let t=fT(e);return t&&Array.isArray(t.anchors)&&t.anchors.length?t.anchors:lT}function hT(e){let t=fT(e);return t&&[`center`,`below`,`above`,`right`,`left`].includes(t.labelPlacement)?t.labelPlacement:`below`}async function gT(){try{let e=await fetch(`/api/shape-libraries`);if(!e.ok)throw Error(`shape libraries unavailable`);let t=await e.json(),n=Array.isArray(t.libraries)?t.libraries:[];aT.customShapeLibraries=n,aT.customShapeDefs=new Map,n.forEach(e=>{(e.shapes||[]).forEach(e=>aT.customShapeDefs.set(e.id,e))})}catch{aT.customShapeLibraries=[],aT.customShapeDefs=new Map}}function _T(){let e=document.getElementById(`customShapeBar`),t=document.getElementById(`customShapeBarBody`);if(!e||!t)return;t.innerHTML=``;let n=(aT.customShapeLibraries||[]).flatMap(e=>(e.shapes||[]).filter(e=>e.showInDiagram!==!1).map(t=>({...t,libraryName:e.name})));e.classList.toggle(`hidden`,n.length===0),n.forEach(e=>{let n=document.createElement(`button`);n.type=`button`,n.className=`custom-shape-btn`,n.title=`${e.libraryName||``}${e.libraryName?` · `:``}${e.name}`,n.dataset.customShapeId=e.id;let r=document.createElement(`img`);r.src=e.imageSrc,r.alt=``,r.draggable=!1,n.appendChild(r),n.addEventListener(`click`,()=>{window.dispatchEvent(new CustomEvent(`diagram:setTool`,{detail:{tool:`addNode`,shape:`${cT}${e.id}`}}))}),t.appendChild(n)})}function vT(){let e={saveState:document.getElementById(`saveState`),librarySelect:document.getElementById(`librarySelect`),libraryName:document.getElementById(`libraryName`),shapeList:document.getElementById(`shapeList`),previewStage:document.getElementById(`previewStage`),previewImage:document.getElementById(`previewImage`),shapeName:document.getElementById(`shapeName`),imageFile:document.getElementById(`imageFile`),shapeWidth:document.getElementById(`shapeWidth`),shapeHeight:document.getElementById(`shapeHeight`),labelPlacement:document.getElementById(`labelPlacement`),shapeShowInDiagram:document.getElementById(`shapeShowInDiagram`),anchorList:document.getElementById(`anchorList`),anchorCount:document.getElementById(`anchorCount`)},t={libraries:[]},n=null,r=null,i=null,a=null,o=e=>`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,s=()=>t.libraries.find(e=>e.id===n)||null,c=()=>s()?.shapes.find(e=>e.id===r)||null,l=e=>Math.max(0,Math.min(1,e)),u=e=>[`below`,`above`,`right`,`left`,`center`].includes(e)?e:`below`,d=e=>String(e??``).replace(/[&<>"']/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e]);function f(t){e.saveState.textContent=t,t&&setTimeout(()=>{e.saveState.textContent===t&&(e.saveState.textContent=``)},1800)}async function p(){t=await(await fetch(`/api/shape-libraries`)).json(),Array.isArray(t.libraries)||(t.libraries=[]),t.libraries.length||t.libraries.push({id:o(`lib`),name:`My shapes`,shapes:[]}),n=t.libraries[0].id,r=t.libraries[0].shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}async function m(){t=await(await fetch(`/api/shape-libraries`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json(),f(`Saved`)}function h(){return{id:o(`shape`),name:`New shape`,imageSrc:``,width:65,height:65,labelPlacement:`below`,showInDiagram:!0,anchors:structuredClone(lT)}}function g(){_(),v(),y()}function _(){e.librarySelect.innerHTML=``,t.libraries.forEach(t=>{let r=document.createElement(`option`);r.value=t.id,r.textContent=t.name,r.selected=t.id===n,e.librarySelect.appendChild(r)}),e.libraryName.value=s()?.name||``}function v(){let t=s();e.shapeList.innerHTML=``,(t?.shapes||[]).forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`shape-item w-full flex items-center gap-2 px-2 py-1.5 rounded text-sm text-left hover:bg-gray-100 ${t.id===r?`active`:``}`;let a=document.createElement(`img`);a.src=t.imageSrc,a.alt=``,a.className=`w-6 h-6 object-contain shrink-0`;let o=document.createElement(`span`);o.className=`truncate`,o.textContent=t.name,n.append(a,o),n.addEventListener(`click`,()=>{r=t.id,i=structuredClone(t),g()}),e.shapeList.appendChild(n)}),t?.shapes?.length||(e.shapeList.innerHTML=`<p class="text-xs text-gray-400 px-2 py-2">No shape yet.</p>`)}function y(){i||=h(),e.previewStage.style.aspectRatio=`${Math.max(16,Number(i.width)||65)} / ${Math.max(16,Number(i.height)||65)}`,e.previewImage.src=i.imageSrc||``,e.previewImage.style.display=i.imageSrc?`block`:`none`,e.shapeName.value=i.name||``,e.shapeWidth.value=i.width||65,e.shapeHeight.value=i.height||65,e.labelPlacement.value=u(i.labelPlacement),e.shapeShowInDiagram.checked=i.showInDiagram!==!1,b()}function b(){e.previewStage.querySelectorAll(`.anchor-dot`).forEach(e=>e.remove()),e.anchorList.innerHTML=``;let t=i.anchors||[];e.anchorCount.textContent=`${t.length} anchor${t.length>1?`s`:``}`,t.forEach((t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`anchor-dot`,r.style.left=`${t.x*100}%`,r.style.top=`${t.y*100}%`,r.dataset.anchorId=t.id,r.innerHTML=`<span>${t.id}</span>`,r.addEventListener(`pointerdown`,e=>{e.preventDefault(),a=t.id,r.setPointerCapture(e.pointerId)}),e.previewStage.appendChild(r);let o=document.createElement(`div`);o.className=`grid grid-cols-[4.5rem_1fr_1fr_2rem] gap-2 items-center`,o.innerHTML=`
|
|
281
|
+
text-gray-600 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"> </button> <button id="imageNameConfirm" class="px-3 py-1 text-xs rounded bg-blue-500 text-white hover:bg-blue-600"> </button></div></div></div></div>`);function dT(e,t){qe(t,!0),Ji(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await Sa(t);let{initDiagram:r}=await lT(async()=>{let{initDiagram:e}=await import(`./main-B1NZokva.js`);return{initDiagram:e}},[]);e=r();let i=document.getElementById(`sidebar`),a=parseInt(localStorage.getItem(n)||``,10);i&&Number.isFinite(a)&&(i.style.width=a+`px`)})(),()=>e?.()});let n=`ld-diagram-sidebar-w`,r=P(!1);function i(e){e.preventDefault();let t=document.getElementById(`sidebar`);if(!t)return;let i=e.clientX,a=t.getBoundingClientRect().width;F(r,!0),t.style.transition=`none`,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let o=e=>{let n=Math.max(160,Math.min(480,a+e.clientX-i));t.style.width=n+`px`},s=()=>{document.removeEventListener(`mousemove`,o),document.removeEventListener(`mouseup`,s),document.body.style.cursor=``,document.body.style.userSelect=``,F(r,!1),t.style.transition=``;try{localStorage.setItem(n,String(parseInt(t.style.width,10)))}catch{}};document.addEventListener(`mousemove`,o),document.addEventListener(`mouseup`,s)}var a=uT(),o=L(a),s=L(o),c=L(s,!0);j(s);var l=z(s,4),u=z(l,4),d=z(u,2),f=z(d,4),p=z(f,2),m=z(p,2),h=z(m,2),g=z(h,2),_=z(g,2),v=z(_,2),y=z(v,2),b=z(y,2),x=z(b,4),S=z(x,4),C=z(S,4),w=z(C,2),T=z(w,2),E=z(T,2),D=z(E,2),ee=z(D,2),te=z(ee,4),O=z(te,4),k=z(O,4),ne=z(k,2),A=z(ne,8),re=z(A,4),ie=z(re,4),ae=L(ie),oe=L(ae,!0);j(ae),j(ie),j(o);var se=z(o,2),ce=L(se),le=L(ce),ue=L(le),de=L(ue,!0);j(ue);var fe=z(ue,2),pe=L(fe,!0);j(fe),j(le),Ie(2),j(ce);var me=z(ce,2),he=z(me,2),ge=z(L(he),10),_e=z(L(ge),8),ve=z(_e,2);j(ge);var ye=z(ge,2),be=L(ye),xe=L(be),Se=L(xe,!0);j(xe);var Ce=z(xe,2);j(be),Ie(2),j(ye);var we=z(ye,2),Te=L(we),Ee=z(Te,4),De=L(Ee),Oe=z(De,4),ke=z(Oe,4),Ae=z(ke,2),je=z(Ae,4),Me=z(je,2),Ne=z(Me,2),Pe=z(Ne,4),Fe=z(Pe,2),Le=z(Fe,2),Re=z(Le,4),ze=z(Re,2),Be=z(ze,2),Ve=z(Be,4),He=L(Ve),Ue=z(He,2),We=z(Ue,2),Ge=z(We,2),Ke=z(Ge,2);Ie(2),j(Ve);var Ye=z(Ve,2),Xe=z(Ye,2),Ze=z(Xe,4),Qe=z(Ze,2),$e=z(Qe,2),et=z($e,4),tt=z(et,2),nt=z(tt,4),rt=z(nt,4),it=z(rt,2),at=z(it,4);j(Ee),j(we);var ot=z(we,2),st=L(ot),ct=L(st,!0);j(st);var lt=z(st,2),ut=z(L(lt),2),dt=L(ut,!0);j(ut),j(lt);var ft=z(lt,2),M=L(ft);j(ft);var pt=z(ft,2),mt=z(L(pt),2),ht=L(mt,!0);j(mt),j(pt);var gt=z(pt,4),_t=z(L(gt),2),vt=L(_t,!0);j(_t),j(gt);var yt=z(gt,2),N=L(yt);j(yt);var bt=z(yt,2),xt=L(bt),St=L(xt,!0);j(xt);var Ct=z(xt,2),wt=L(Ct,!0);j(Ct),Ie(2),j(bt),j(ot);var Tt=z(ot,2),Et=L(Tt),Dt=z(Et,4),Ot=L(Dt),kt=z(Ot,2),At=z(kt,2),jt=z(At,2),Mt=z(jt,4),Nt=z(Mt,2),Pt=z(Nt,4),Ft=z(Pt,2),It=z(Ft,2),Lt=z(It,4),Rt=z(Lt,2),zt=z(Rt,4),Bt=z(zt,2),Vt=z(Bt,4),Ht=z(Vt,2),Ut=z(Ht,2),Wt=z(Ut,2),Gt=z(Wt,2),Kt=z(Gt,4),qt=z(Kt,2),Jt=z(qt,4),Yt=z(Jt,4),Xt=z(Yt,4);j(Dt),j(Tt);var Zt=z(Tt,2),Qt=z(Zt,2),$t=z(L(Qt),2),en=L($t,!0);j($t),j(Qt),j(he),j(se);var tn=z(se,4),nn=L(tn),I=L(nn),rn=L(I,!0);j(I);var an=z(I,4),on=L(an);Ie(2),j(an);var sn=z(an,2),cn=L(sn,!0);j(sn);var ln=z(sn,2),un=L(ln),dn=L(un,!0);j(un);var fn=z(un,2),pn=L(fn,!0);j(fn),j(ln),j(nn),j(tn),j(a),B((e,t,n,i,a,o,s,ie,ae,se,ce,le,ue,fe,he,ge,ye,be,xe,we,Ee,j,Ie,Ve,qe,Je,ot,st,lt,ut,ft,pt,mt,gt,_t,yt,bt,xt,Ct,Tt,Dt,P,Qt,F,$t,tn,nn,I,an,sn,ln,un,fn,L,R,z,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,B,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar)=>{G(c,e),J(l,`title`,t),J(u,`title`,n),J(d,`title`,i),J(f,`title`,a),J(p,`title`,o),J(m,`title`,s),J(h,`title`,ie),J(g,`title`,ae),J(_,`title`,se),J(v,`title`,ce),J(y,`title`,le),J(b,`title`,ue),J(x,`title`,fe),J(S,`title`,he),J(C,`title`,ge),J(w,`title`,ye),J(T,`title`,be),J(E,`title`,xe),J(D,`title`,we),J(ee,`title`,Ee),J(te,`placeholder`,j),J(O,`title`,Ie),J(k,`title`,Ve),J(ne,`title`,qe),J(A,`title`,Je),J(re,`title`,ot),G(oe,st),G(de,lt),G(pe,ut),vi(me,1,`w-1 shrink-0 cursor-col-resize select-none transition-colors ${V(r)?`bg-blue-500/60`:`bg-transparent hover:bg-blue-500/40`}`),J(_e,`title`,ft),J(ve,`title`,pt),G(Se,mt),J(Ce,`title`,gt),J(Te,`title`,_t),J(De,`title`,yt),J(Oe,`title`,bt),J(ke,`title`,xt),J(Ae,`title`,Ct),J(je,`title`,Tt),J(Me,`title`,Dt),J(Ne,`title`,P),J(Pe,`title`,Qt),J(Fe,`title`,F),J(Le,`title`,$t),J(Re,`title`,tn),J(ze,`title`,nn),J(Be,`title`,I),J(He,`title`,an),J(Ue,`title`,sn),J(We,`title`,ln),J(Ge,`title`,un),J(Ke,`title`,fn),J(Ye,`title`,L),J(Xe,`title`,R),J(Ze,`title`,z),J(Qe,`title`,mn),J($e,`title`,hn),J(et,`title`,gn),J(tt,`title`,_n),J(nt,`title`,vn),J(rt,`title`,yn),J(it,`title`,bn),J(at,`title`,xn),G(ct,Sn),G(dt,Cn),J(M,`placeholder`,wn),G(ht,Tn),G(vt,En),J(N,`placeholder`,Dn),G(St,On),G(wt,kn),J(Et,`title`,An),J(Ot,`title`,jn),J(kt,`title`,Mn),J(At,`title`,Nn),J(jt,`title`,Pn),J(Mt,`title`,Fn),J(Nt,`title`,B),J(Pt,`title`,In),J(Ft,`title`,Ln),J(It,`title`,Rn),J(Lt,`title`,zn),J(Rt,`title`,Bn),J(zt,`title`,Vn),J(Bt,`title`,Hn),J(Vt,`title`,Un),J(Ht,`title`,Wn),J(Ut,`title`,Gn),J(Wt,`title`,Kn),J(Gt,`title`,qn),J(Kt,`title`,Jn),J(qt,`title`,Yn),J(Jt,`title`,Xn),J(Yt,`title`,Zn),J(Xt,`title`,Qn),J(Zt,`placeholder`,$n),G(en,er),G(rn,tr),J(on,`placeholder`,nr),G(cn,rr),G(dn,ir),G(pn,ar)},[()=>Y(`diagram.back_btn`),()=>Y(`diagram.diagrams_list_title`),()=>Y(`diagram.toolbar.copy_mcp_id`),()=>Y(`diagram.toolbar.select`),()=>Y(`diagram.toolbar.box`),()=>Y(`diagram.toolbar.ellipse`),()=>Y(`diagram.toolbar.database`),()=>Y(`diagram.toolbar.circle`),()=>Y(`diagram.toolbar.actor`),()=>Y(`diagram.toolbar.postit`),()=>Y(`diagram.toolbar.text_free`),()=>Y(`diagram.toolbar.image`),()=>Y(`diagram.toolbar.shape_editor`),()=>Y(`diagram.toolbar.arrow`),()=>Y(`diagram.toolbar.delete`),()=>Y(`diagram.toolbar.defaults`),()=>Y(`diagram.toolbar.align_guides`),()=>Y(`diagram.toolbar.grid`),()=>Y(`diagram.toolbar.edge_style`),()=>Y(`diagram.toolbar.evidence_mode`),()=>Y(`diagram.toolbar.resize_corner`),()=>Y(`diagram.toolbar.title_placeholder`),()=>Y(`diagram.toolbar.zoom_out`),()=>Y(`diagram.toolbar.zoom_in`),()=>Y(`diagram.toolbar.fit`),()=>Y(`diagram.toolbar.debug`),()=>Y(`diagram.toolbar.export_drawio`),()=>Y(`diagram.toolbar.save`),()=>Y(`diagram.sidebar.title`),()=>Y(`diagram.sidebar.new_btn`),()=>Y(`diagram.selection.rotate_shape`),()=>Y(`diagram.selection.rotate_text`),()=>Y(`diagram.evidence.panel_title`),()=>Y(`diagram.evidence.close`),()=>Y(`diagram.node_panel.lock`),()=>Y(`diagram.node_panel.color`),()=>Y(`diagram.node_panel.bg_opacity`),()=>Y(`diagram.node_panel.edit_label`),()=>Y(`diagram.node_panel.edit_link`),()=>Y(`diagram.node_panel.font_decrease`),()=>Y(`diagram.node_panel.font_size_value`),()=>Y(`diagram.node_panel.font_increase`),()=>Y(`diagram.node_panel.align_left`),()=>Y(`diagram.node_panel.align_center`),()=>Y(`diagram.node_panel.align_right`),()=>Y(`diagram.node_panel.align_top`),()=>Y(`diagram.node_panel.align_middle`),()=>Y(`diagram.node_panel.align_bottom`),()=>Y(`diagram.node_panel.custom_label_above`),()=>Y(`diagram.node_panel.custom_label_below`),()=>Y(`diagram.node_panel.custom_label_left`),()=>Y(`diagram.node_panel.custom_label_right`),()=>Y(`diagram.node_panel.custom_label_center`),()=>Y(`diagram.node_panel.send_back`),()=>Y(`diagram.node_panel.bring_front`),()=>Y(`diagram.node_panel.stamp_color`),()=>Y(`diagram.node_panel.stamp_font`),()=>Y(`diagram.node_panel.stamp_size`),()=>Y(`diagram.node_panel.rotate_ccw`),()=>Y(`diagram.node_panel.rotate_cw`),()=>Y(`diagram.node_panel.copy_png`),()=>Y(`diagram.node_panel.group`),()=>Y(`diagram.node_panel.ungroup`),()=>Y(`diagram.node_panel.save_as_default`),()=>Y(`diagram.link_panel.title`),()=>Y(`diagram.link_panel.external`),()=>Y(`diagram.link_panel.url_placeholder`),()=>Y(`diagram.link_panel.existing_diagram`),()=>Y(`diagram.link_panel.new_diagram`),()=>Y(`diagram.link_panel.diagram_name_placeholder`),()=>Y(`diagram.link_panel.save_btn`),()=>Y(`diagram.link_panel.remove_btn`),()=>Y(`diagram.edge_panel.lock`),()=>Y(`diagram.edge_panel.no_arrow`),()=>Y(`diagram.edge_panel.arrow_from`),()=>Y(`diagram.edge_panel.arrow_to`),()=>Y(`diagram.edge_panel.arrow_both`),()=>Y(`diagram.edge_panel.solid`),()=>Y(`diagram.edge_panel.dashed`),()=>Y(`diagram.edge_panel.font_decrease`),()=>Y(`diagram.edge_panel.font_size_value`),()=>Y(`diagram.edge_panel.font_increase`),()=>Y(`diagram.edge_panel.edit_label`),()=>Y(`diagram.edge_panel.reset_label_width`),()=>Y(`diagram.edge_panel.rotate_label_ccw`),()=>Y(`diagram.edge_panel.rotate_label_cw`),()=>Y(`diagram.edge_panel.offset_label_left`),()=>Y(`diagram.edge_panel.offset_label_right`),()=>Y(`diagram.edge_panel.offset_label_up`),()=>Y(`diagram.edge_panel.offset_label_down`),()=>Y(`diagram.edge_panel.offset_label_reset`),()=>Y(`diagram.edge_panel.width_decrease`),()=>Y(`diagram.edge_panel.width_increase`),()=>Y(`diagram.edge_panel.color`),()=>Y(`diagram.edge_panel.clear_ports`),()=>Y(`diagram.edge_panel.save_as_default`),()=>Y(`diagram.label_input.placeholder`),()=>Y(`diagram.empty_state`),()=>Y(`diagram.image_modal.title`),()=>Y(`diagram.image_modal.placeholder`),()=>Y(`diagram.image_modal.error_chars`),()=>Y(`diagram.image_modal.cancel_btn`),()=>Y(`diagram.image_modal.paste_btn`)]),H(`click`,s,()=>history.back()),H(`mousedown`,me,i),W(e,a),Je()}Pr([`click`,`mousedown`]);var fT=U(`<span class="legend-item svelte-1bqlvrg"><span class="legend-dot svelte-1bqlvrg"></span> </span>`),pT=U(`<p class="graph-msg svelte-1bqlvrg"> </p>`),mT=U(`<p class="graph-msg graph-error svelte-1bqlvrg"> </p>`),hT=U(`<div class="graph-page svelte-1bqlvrg"><!> <div class="graph-toolbar svelte-1bqlvrg"><span class="graph-counts svelte-1bqlvrg"> </span> <div class="graph-legend svelte-1bqlvrg"></div></div> <div class="graph-canvas-wrap svelte-1bqlvrg"><!> <div class="graph-canvas svelte-1bqlvrg"></div></div></div>`);function gT(e,t){qe(t,!0);let n={ADR:`#3b82f6`,Worklog:`#22c55e`,Rule:`#f97316`,"Technical Doc":`#a855f7`,Document:`#64748b`,Concept:`#14b8a6`},r,i=P(!0),a=P(``),o=P(I({nodes:0,edges:0})),s=P(I([]));function c(e){return n[e]??`#94a3b8`}Ji(()=>{let e;return(async()=>{let t=`en`;try{t=(await fetch(`/api/config`).then(e=>e.json())).language||`en`}catch{}await Sa(t);try{let t=await fetch(`/api/graph`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();F(o,{nodes:n.nodes.length,edges:n.edges.length},!0),F(s,[...new Set(n.nodes.map(e=>e.type))].sort().map(e=>({type:e,color:c(e)})),!0);let i=window.vis;if(!i)throw Error(Y(`graph.renderer_error`));let a=new i.DataSet(n.nodes.map(e=>({id:e.id,label:e.title,title:e.folder?`${e.folder} · ${e.type}`:e.type,color:{background:c(e.type),border:`rgba(100,116,139,0.9)`},shape:`dot`,size:12}))),l=new i.DataSet(n.edges.map((e,t)=>({id:t,from:e.from,to:e.to}))),u=getComputedStyle(document.body).color||`#334155`;e=new i.Network(r,{nodes:a,edges:l},{nodes:{font:{color:u,size:13,face:`inherit`},borderWidth:1.5},edges:{arrows:{to:{enabled:!0,scaleFactor:.5}},color:{color:`rgba(148,163,184,0.55)`,highlight:`#3b82f6`},smooth:{enabled:!0,type:`continuous`,roundness:.4},width:1},physics:{solver:`forceAtlas2Based`,forceAtlas2Based:{gravitationalConstant:-45,springLength:120,avoidOverlap:.6},stabilization:{iterations:250}},interaction:{hover:!0,tooltipDelay:150,navigationButtons:!1}}),e.on(`click`,e=>{e.nodes&&e.nodes.length>0&&(window.location.href=`/?doc=`+encodeURIComponent(e.nodes[0]))})}catch(e){F(a,e.message,!0)}finally{F(i,!1)}})(),()=>e?.destroy?.()});var l=hT(),u=L(l);{let e=N(()=>Y(`graph.title`)||`Concept graph`);Xo(u,{get title(){return V(e)},subtitle:``})}var d=z(u,2),f=L(d),p=L(f);j(f);var m=z(f,2);q(m,21,()=>V(s),e=>e.type,(e,t)=>{var n=fT(),r=L(n),i=z(r,1,!0);j(n),B(()=>{bi(r,`background:${V(t).color??``}`),G(i,V(t).type)}),W(e,n)}),j(m),j(d);var h=z(d,2),g=L(h),_=e=>{var t=pT(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`graph.loading`)||`Loading graph…`]),W(e,t)},v=e=>{var t=mT(),n=L(t,!0);j(t),B(()=>G(n,V(a))),W(e,t)},y=e=>{var t=pT(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`graph.empty`)||`No concepts to graph yet.`]),W(e,t)};K(g,e=>{V(i)?e(_):V(a)?e(v,1):V(o).nodes===0&&e(y,2)}),Ui(z(g,2),e=>r=e,()=>r),j(h),j(l),B(()=>G(p,`${V(o).nodes??``} · ${V(o).edges??``}`)),W(e,l),Je()}We();var _T={network:null,nodes:null,edges:null,diagrams:[],currentDiagramId:null,currentTool:`select`,pendingShape:`box`,selectedNodeIds:[],selectedEdgeIds:[],alignGuides:!0,gridEnabled:!0,debugMode:!1,isDirty:!1,sidebarOpen:!0,editingNodeId:null,editingEdgeId:null,resizeDrag:null,rotateDrag:null,labelRotateDrag:null,activeStamp:null,stampTargetIds:[],clipboard:null,canonicalOrder:[],edgesStraight:!1,resizeSymmetric:!1,nodeColorOverrides:{},customShapeLibraries:[],customShapeDefs:new Map,edgeLabelCanvasPos:{},edgeLabelBBox:{},freeArrowFirstPoint:null,exportingPng:!1,evidenceMode:!1};function vT(){_T.isDirty=!0,document.getElementById(`btnSave`).disabled=!1}var yT=`custom-shape`,bT=`custom-shape:`,xT=[{id:`N`,x:.5,y:0},{id:`NE`,x:1,y:0},{id:`E`,x:1,y:.5},{id:`SE`,x:1,y:1},{id:`S`,x:.5,y:1},{id:`SW`,x:0,y:1},{id:`W`,x:0,y:.5},{id:`NW`,x:0,y:0}];function ST(e){return typeof e==`string`&&e.startsWith(`custom-shape:`)}function CT(e){return ST(e)?e.slice(13):null}function wT(e){return e&&_T.customShapeDefs&&_T.customShapeDefs.get(e)||null}function TT(e){let t=wT(e);return[t&&t.width||65,t&&t.height||65]}function ET(e){let t=wT(e);return t&&Array.isArray(t.anchors)&&t.anchors.length?t.anchors:xT}function DT(e){let t=wT(e);return t&&[`center`,`below`,`above`,`right`,`left`].includes(t.labelPlacement)?t.labelPlacement:`below`}async function OT(){try{let e=await fetch(`/api/shape-libraries`);if(!e.ok)throw Error(`shape libraries unavailable`);let t=await e.json(),n=Array.isArray(t.libraries)?t.libraries:[];_T.customShapeLibraries=n,_T.customShapeDefs=new Map,n.forEach(e=>{(e.shapes||[]).forEach(e=>_T.customShapeDefs.set(e.id,e))})}catch{_T.customShapeLibraries=[],_T.customShapeDefs=new Map}}function kT(){let e=document.getElementById(`customShapeBar`),t=document.getElementById(`customShapeBarBody`);if(!e||!t)return;t.innerHTML=``;let n=(_T.customShapeLibraries||[]).flatMap(e=>(e.shapes||[]).filter(e=>e.showInDiagram!==!1).map(t=>({...t,libraryName:e.name})));e.classList.toggle(`hidden`,n.length===0),n.forEach(e=>{let n=document.createElement(`button`);n.type=`button`,n.className=`custom-shape-btn`,n.title=`${e.libraryName||``}${e.libraryName?` · `:``}${e.name}`,n.dataset.customShapeId=e.id;let r=document.createElement(`img`);r.src=e.imageSrc,r.alt=``,r.draggable=!1,n.appendChild(r),n.addEventListener(`click`,()=>{window.dispatchEvent(new CustomEvent(`diagram:setTool`,{detail:{tool:`addNode`,shape:`${bT}${e.id}`}}))}),t.appendChild(n)})}function AT(){let e={saveState:document.getElementById(`saveState`),librarySelect:document.getElementById(`librarySelect`),libraryName:document.getElementById(`libraryName`),shapeList:document.getElementById(`shapeList`),previewStage:document.getElementById(`previewStage`),previewImage:document.getElementById(`previewImage`),shapeName:document.getElementById(`shapeName`),imageFile:document.getElementById(`imageFile`),shapeWidth:document.getElementById(`shapeWidth`),shapeHeight:document.getElementById(`shapeHeight`),labelPlacement:document.getElementById(`labelPlacement`),shapeShowInDiagram:document.getElementById(`shapeShowInDiagram`),anchorList:document.getElementById(`anchorList`),anchorCount:document.getElementById(`anchorCount`)},t={libraries:[]},n=null,r=null,i=null,a=null,o=e=>`${e}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,6)}`,s=()=>t.libraries.find(e=>e.id===n)||null,c=()=>s()?.shapes.find(e=>e.id===r)||null,l=e=>Math.max(0,Math.min(1,e)),u=e=>[`below`,`above`,`right`,`left`,`center`].includes(e)?e:`below`,d=e=>String(e??``).replace(/[&<>"']/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e]);function f(t){e.saveState.textContent=t,t&&setTimeout(()=>{e.saveState.textContent===t&&(e.saveState.textContent=``)},1800)}async function p(){t=await(await fetch(`/api/shape-libraries`)).json(),Array.isArray(t.libraries)||(t.libraries=[]),t.libraries.length||t.libraries.push({id:o(`lib`),name:`My shapes`,shapes:[]}),n=t.libraries[0].id,r=t.libraries[0].shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}async function m(){t=await(await fetch(`/api/shape-libraries`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).json(),f(`Saved`)}function h(){return{id:o(`shape`),name:`New shape`,imageSrc:``,width:65,height:65,labelPlacement:`below`,showInDiagram:!0,anchors:structuredClone(xT)}}function g(){_(),v(),y()}function _(){e.librarySelect.innerHTML=``,t.libraries.forEach(t=>{let r=document.createElement(`option`);r.value=t.id,r.textContent=t.name,r.selected=t.id===n,e.librarySelect.appendChild(r)}),e.libraryName.value=s()?.name||``}function v(){let t=s();e.shapeList.innerHTML=``,(t?.shapes||[]).forEach(t=>{let n=document.createElement(`button`);n.type=`button`,n.className=`shape-item w-full flex items-center gap-2 px-2 py-1.5 rounded text-sm text-left hover:bg-gray-100 ${t.id===r?`active`:``}`;let a=document.createElement(`img`);a.src=t.imageSrc,a.alt=``,a.className=`w-6 h-6 object-contain shrink-0`;let o=document.createElement(`span`);o.className=`truncate`,o.textContent=t.name,n.append(a,o),n.addEventListener(`click`,()=>{r=t.id,i=structuredClone(t),g()}),e.shapeList.appendChild(n)}),t?.shapes?.length||(e.shapeList.innerHTML=`<p class="text-xs text-gray-400 px-2 py-2">No shape yet.</p>`)}function y(){i||=h(),e.previewStage.style.aspectRatio=`${Math.max(16,Number(i.width)||65)} / ${Math.max(16,Number(i.height)||65)}`,e.previewImage.src=i.imageSrc||``,e.previewImage.style.display=i.imageSrc?`block`:`none`,e.shapeName.value=i.name||``,e.shapeWidth.value=i.width||65,e.shapeHeight.value=i.height||65,e.labelPlacement.value=u(i.labelPlacement),e.shapeShowInDiagram.checked=i.showInDiagram!==!1,b()}function b(){e.previewStage.querySelectorAll(`.anchor-dot`).forEach(e=>e.remove()),e.anchorList.innerHTML=``;let t=i.anchors||[];e.anchorCount.textContent=`${t.length} anchor${t.length>1?`s`:``}`,t.forEach((t,n)=>{let r=document.createElement(`button`);r.type=`button`,r.className=`anchor-dot`,r.style.left=`${t.x*100}%`,r.style.top=`${t.y*100}%`,r.dataset.anchorId=t.id,r.innerHTML=`<span>${t.id}</span>`,r.addEventListener(`pointerdown`,e=>{e.preventDefault(),a=t.id,r.setPointerCapture(e.pointerId)}),e.previewStage.appendChild(r);let o=document.createElement(`div`);o.className=`grid grid-cols-[4.5rem_1fr_1fr_2rem] gap-2 items-center`,o.innerHTML=`
|
|
282
282
|
<input class="field !h-7 text-xs" value="${d(t.id)}">
|
|
283
283
|
<input class="field !h-7 text-xs" type="number" min="0" max="100" step="1" value="${Math.round(t.x*100)}">
|
|
284
284
|
<input class="field !h-7 text-xs" type="number" min="0" max="100" step="1" value="${Math.round(t.y*100)}">
|
|
285
285
|
<button class="btn btn-danger !h-7 !px-0">×</button>
|
|
286
|
-
`;let[s,c,u]=o.querySelectorAll(`input`);s.addEventListener(`input`,()=>{t.id=s.value.trim()||`p${n+1}`,b()}),c.addEventListener(`input`,()=>{t.x=l(Number(c.value)/100),b()}),u.addEventListener(`input`,()=>{t.y=l(Number(u.value)/100),b()}),o.querySelector(`button`).addEventListener(`click`,()=>{i.anchors=i.anchors.filter(e=>e!==t),b()}),e.anchorList.appendChild(o)})}function x(t,n){let r=e.previewStage.getBoundingClientRect();t.x=l((n.clientX-r.left)/r.width),t.y=l((n.clientY-r.top)/r.height)}let S=[],C=(e,t,n,r)=>{e.addEventListener(t,n,r),S.push(()=>e.removeEventListener(t,n,r))};return C(e.previewStage,`pointermove`,e=>{if(!a||!i)return;let t=i.anchors.find(e=>e.id===a);t&&(x(t,e),b())}),C(window,`pointerup`,()=>{a=null}),C(e.previewStage,`click`,e=>{if(e.target.closest(`.anchor-dot`)||a||!i)return;let t={id:`p${(i.anchors||[]).length+1}`,x:.5,y:.5};x(t,e),i.anchors=[...i.anchors||[],t],b()}),C(document.getElementById(`btnAddLibrary`),`click`,async()=>{let e={id:o(`lib`),name:`New library`,shapes:[]};t.libraries.push(e),n=e.id,r=null,i=h(),g(),await m()}),C(e.librarySelect,`change`,()=>{n=e.librarySelect.value,r=s()?.shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}),C(e.libraryName,`change`,async()=>{let t=s();t&&(t.name=e.libraryName.value.trim()||t.name,_(),await m())}),C(document.getElementById(`btnNewShape`),`click`,()=>{r=null,i=h(),g()}),C(document.getElementById(`btnDeleteShape`),`click`,async()=>{let e=s();!e||!r||(e.shapes=e.shapes.filter(e=>e.id!==r),r=e.shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g(),await m())}),C(document.getElementById(`btnDefaultAnchors`),`click`,()=>{i.anchors=structuredClone(
|
|
287
|
-
position.</p></div> <div class="space-y-4"><div class="grid grid-cols-2 gap-3"><label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Shape name</span> <input id="shapeName" class="field w-full" placeholder="Shape name"/></label> <label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Image / SVG</span> <input id="imageFile" type="file" accept="image/*,.svg" class="block w-full text-sm"/></label> <label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Width</span> <input id="shapeWidth" type="number" min="16" max="1200" class="field w-full"/></label> <label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Height</span> <input id="shapeHeight" type="number" min="16" max="1200" class="field w-full"/></label> <label class="space-y-1 col-span-2"><span class="block text-xs font-semibold text-gray-500">Text placement</span> <select id="labelPlacement" class="field w-full"><option> </option><option> </option><option> </option><option> </option><option> </option></select></label> <label class="col-span-2 flex items-start gap-2 rounded-md border border-gray-200 bg-white px-2 py-2 text-sm"><input id="shapeShowInDiagram" type="checkbox" class="mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600"/> <span class="space-y-0.5"><span class="block font-semibold text-gray-700"> </span> <span class="block text-xs text-gray-500"> </span></span></label></div> <div class="flex flex-wrap gap-2"><button id="btnDefaultAnchors" class="btn">Use 8 default anchors</button> <button id="btnClearAnchors" class="btn">Clear anchors</button> <button id="btnSaveShape" class="btn btn-primary">Save shape</button></div> <div><div class="flex items-center justify-between mb-2"><h2 class="text-xs font-semibold uppercase tracking-wide text-gray-500">Anchors</h2> <span id="anchorCount" class="text-xs text-gray-500"></span></div> <div id="anchorList" class="space-y-1"></div></div></div></div></section></main></div>`);function bT(e,t){qe(t,!1),Gi(async()=>{try{await ya((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{await ya(`en`)}return vT()}),Hi();var n=yT(),r=L(n),i=L(r);Ie(4),j(r);var a=z(r,2),o=z(L(a),2),s=L(o),c=z(L(s),2),l=L(c),u=z(L(l),8),d=z(L(u),2),f=L(d),p=L(f,!0);j(f),f.value=f.__value=`below`;var m=z(f),h=L(m,!0);j(m),m.value=m.__value=`above`;var g=z(m),_=L(g,!0);j(g),g.value=g.__value=`right`;var v=z(g),y=L(v,!0);j(v),v.value=v.__value=`left`;var b=z(v),x=L(b,!0);j(b),b.value=b.__value=`center`,j(d),j(u);var S=z(u,2),C=z(L(S),2),w=L(C),T=L(w,!0);j(w);var E=z(w,2),D=L(E,!0);j(E),j(C),j(S),j(l),Ie(4),j(c),j(s),j(o),j(a),j(n),B((e,t,n,r,i,a,o)=>{G(p,e),G(h,t),G(_,n),G(y,r),G(x,i),G(T,a),G(D,o)},[()=>Y(`shape_editor.label_placement.below`),()=>Y(`shape_editor.label_placement.above`),()=>Y(`shape_editor.label_placement.right`),()=>Y(`shape_editor.label_placement.left`),()=>Y(`shape_editor.label_placement.center`),()=>Y(`shape_editor.show_in_diagram_label`),()=>Y(`shape_editor.show_in_diagram_hint`)]),H(`click`,i,()=>history.back()),W(e,n),Je()}Pr([`click`]);var xT=I({tasks:[],notes:[],links:[]}),ST=!1,CT=null;async function wT(){try{let e=await fetch(`/api/survival-kit`);if(e.ok){let t=await e.json();xT.tasks=Array.isArray(t.tasks)?t.tasks:[],xT.notes=Array.isArray(t.notes)?t.notes:[],xT.links=Array.isArray(t.links)?t.links:[]}}catch{}finally{ST=!0}}async function TT(){try{await fetch(`/api/survival-kit`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({tasks:xT.tasks,notes:xT.notes,links:xT.links})})}catch{}}function ET(){ST&&(CT&&clearTimeout(CT),CT=setTimeout(()=>{CT=null,TT()},400))}var DT=U(`<button type="button"> </button>`),OT=U(`<p class="sk-empty svelte-lo2xyl"> </p>`),kT=U(`<div><button type="button" aria-label="toggle"></button> <span class="sk-task-text svelte-lo2xyl"> </span> <span class="sk-task-tag svelte-lo2xyl"> </span> <button type="button" class="sk-task-del svelte-lo2xyl">✕</button></div>`),AT=U(`<div class="sk-panel-head"><h2 class="sk-panel-title"> <span class="sk-accent">.</span></h2> <p class="sk-panel-sub"> </p></div> <div class="sk-add-bar svelte-lo2xyl"><input type="text" class="svelte-lo2xyl"/> <select class="svelte-lo2xyl"><option> </option><option> </option><option> </option></select> <button type="button" class="sk-add-btn svelte-lo2xyl">+</button></div> <div class="sk-filters svelte-lo2xyl"></div> <div class="sk-tasks svelte-lo2xyl"><!></div>`,1);function jT(e,t){qe(t,!0);let n=P(``),r=P(`normal`),i=P(`all`),a=[{key:`all`,label:()=>Y(`survival.tasks_filter_all`)},{key:`todo`,label:()=>Y(`survival.tasks_filter_todo`)},{key:`done`,label:()=>Y(`survival.tasks_filter_done`)},{key:`urgent`,label:()=>Y(`survival.tasks_filter_urgent`)},{key:`normal`,label:()=>Y(`survival.tasks_filter_normal`)},{key:`later`,label:()=>Y(`survival.tasks_filter_later`)}];function o(e){return Y(`survival.tasks_priority_${e}`)}let s=N(()=>xT.tasks.filter(e=>V(i)===`todo`?!e.done:V(i)===`done`?e.done:V(i)===`urgent`||V(i)===`normal`||V(i)===`later`?e.priority===V(i):!0));function c(){let e=V(n).trim();e&&(xT.tasks.unshift({id:Date.now(),text:e,priority:V(r),done:!1}),F(n,``),ET())}function l(e){let t=xT.tasks.find(t=>t.id===e);t&&(t.done=!t.done),ET()}function u(e){xT.tasks=xT.tasks.filter(t=>t.id!==e),ET()}var d=AT(),f=R(d),p=L(f),m=L(p,!0);Ie(),j(p);var h=z(p,2),g=L(h,!0);j(h),j(f);var _=z(f,2),v=L(_);Di(v);var y=z(v,2),b=L(y),x=L(b,!0);j(b),b.value=b.__value=`normal`;var S=z(b),C=L(S,!0);j(S),S.value=S.__value=`urgent`;var w=z(S),T=L(w,!0);j(w),w.value=w.__value=`later`,j(y);var E=z(y,2);j(_);var D=z(_,2);q(D,21,()=>a,Xr,(e,t)=>{var n=DT();let r;var a=L(n,!0);j(n),B(e=>{r=gi(n,1,`svelte-lo2xyl`,null,r,{active:V(i)===V(t).key}),G(a,e)},[()=>V(t).label()]),H(`click`,n,()=>F(i,V(t).key,!0)),W(e,n)}),j(D);var ee=z(D,2),te=L(ee),O=e=>{var t=OT(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`survival.tasks_empty`)]),W(e,t)},k=e=>{var t=Wr();q(R(t),17,()=>V(s),e=>e.id,(e,t)=>{var n=kT();let r;var i=L(n);let a;var s=z(i,2),c=L(s,!0);j(s);var d=z(s,2),f=L(d,!0);j(d);var p=z(d,2);j(n),B((e,o)=>{r=gi(n,1,`sk-task sk-task--${V(t).priority??``}`,`svelte-lo2xyl`,r,{done:V(t).done}),a=gi(i,1,`sk-check svelte-lo2xyl`,null,a,{checked:V(t).done}),G(c,V(t).text),G(f,e),J(p,`title`,o)},[()=>o(V(t).priority),()=>Y(`survival.tasks_delete_title`)]),H(`click`,i,()=>l(V(t).id)),H(`click`,p,()=>u(V(t).id)),W(e,n)}),W(e,t)};K(te,e=>{V(s).length===0?e(O):e(k,-1)}),j(ee),B((e,t,n,r,i,a)=>{G(m,e),G(g,t),J(v,`placeholder`,n),G(x,r),G(C,i),G(T,a)},[()=>Y(`survival.tasks_title`),()=>Y(`survival.tasks_subtitle`),()=>Y(`survival.tasks_input_placeholder`),()=>Y(`survival.tasks_priority_normal`),()=>Y(`survival.tasks_priority_urgent`),()=>Y(`survival.tasks_priority_later`)]),H(`keydown`,v,e=>e.key===`Enter`&&c()),Ni(v,()=>V(n),e=>F(n,e)),xi(y,()=>V(r),e=>F(r,e)),H(`click`,E,c),W(e,d),Je()}Pr([`keydown`,`click`]);var MT=[`t-green`,`t-violet`,`t-amber`,`t-sky`,`t-rose`,`t-teal`],NT=U(`<div class="sk-modal-backdrop svelte-1rcj86" role="presentation"><div class="sk-modal svelte-1rcj86" role="dialog" aria-modal="true"><h3 class="sk-modal-title svelte-1rcj86"> </h3> <div class="sk-modal-body svelte-1rcj86"><!></div> <div class="sk-modal-actions svelte-1rcj86"><button type="button" class="sk-btn svelte-1rcj86"> </button> <button type="button"> </button></div></div></div>`);function PT(e,t){qe(t,!0);let n=Wi(t,`open`,3,!1),r=Wi(t,`title`,3,``),i=Wi(t,`confirmLabel`,19,()=>Y(`common.save`)),a=Wi(t,`danger`,3,!1);function o(e){e.target===e.currentTarget&&t.onClose()}function s(e){e.key===`Escape`&&t.onClose()}var c=Wr(),l=R(c),u=e=>{var n=NT(),c=L(n),l=L(c),u=L(l,!0);j(l);var d=z(l,2);oi(L(d),()=>t.children),j(d);var f=z(d,2),p=L(f),m=L(p,!0);j(p);var h=z(p,2);let g;var _=L(h,!0);j(h),j(f),j(c),j(n),B(e=>{G(u,r()),G(m,e),g=gi(h,1,`sk-btn sk-btn--primary svelte-1rcj86`,null,g,{"sk-btn--danger":a()}),G(_,i())},[()=>Y(`common.cancel`)]),H(`click`,n,o),H(`keydown`,n,s),H(`click`,p,function(...e){t.onClose?.apply(this,e)}),H(`click`,h,function(...e){t.onConfirm?.apply(this,e)}),W(e,n)};K(l,e=>{n()&&e(u)}),W(e,c),Je()}Pr([`click`,`keydown`]);var FT=U(`<p class="sk-empty svelte-hpbata"> </p>`),IT=U(`<strong> </strong>`),LT=U(`<p> </p>`),RT=U(`<div class="sk-pre-wrap svelte-hpbata"><pre> </pre> <button type="button" class="sk-copy svelte-hpbata"> </button></div>`),zT=U(`<li> </li>`),BT=U(`<ul></ul>`),VT=U(`<th> </th>`),HT=U(`<td> </td>`),UT=U(`<tr></tr>`),WT=U(`<div class="sk-table-wrap svelte-hpbata"><table><thead><tr></tr></thead><tbody></tbody></table></div>`),GT=U(`<div class="sk-bloc svelte-hpbata"><div class="sk-bloc-content svelte-hpbata"><!></div> <div class="sk-bloc-actions svelte-hpbata"><button type="button" class="sk-mini svelte-hpbata">✎</button> <button type="button" class="sk-mini sk-mini--del svelte-hpbata">✕</button></div></div>`),KT=U(`<div><div class="sk-note-head svelte-hpbata"><h3 class="svelte-hpbata"> </h3> <div class="sk-note-actions svelte-hpbata"><button type="button" class="sk-mini svelte-hpbata">✎</button> <button type="button" class="sk-mini sk-mini--del svelte-hpbata">✕</button></div> <button type="button" class="sk-toggle svelte-hpbata" aria-label="toggle"><svg viewBox="0 0 10 6" width="10" height="6"><path d="M1 1 L5 5 L9 1" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div> <div class="sk-note-body svelte-hpbata"><!> <div class="sk-note-foot svelte-hpbata"><button type="button" class="sk-add-bloc svelte-hpbata"> </button></div></div></div>`),qT=U(`<option> </option>`),JT=U(`<label for="sk-note-titre"> </label> <input id="sk-note-titre" type="text"/> <label for="sk-note-color"> </label> <select id="sk-note-color"></select>`,1),YT=U(`<input id="sk-bloc-content" type="text"/>`),XT=U(`<textarea id="sk-bloc-content" rows="6"></textarea>`),ZT=U(`<label for="sk-bloc-type"> </label> <select id="sk-bloc-type"><option> </option><option> </option><option> </option><option> </option><option> </option></select> <label for="sk-bloc-content"> </label> <!>`,1),QT=U(`<div class="sk-panel-head"><h2 class="sk-panel-title"> <span class="sk-accent">.</span></h2> <p class="sk-panel-sub"> </p></div> <div class="sk-toolbar svelte-hpbata"><button type="button" class="sk-tool svelte-hpbata"> </button> <button type="button" class="sk-tool svelte-hpbata"> </button> <button type="button" class="sk-tool sk-tool--add svelte-hpbata"> </button></div> <div><!> <!></div> <!> <!>`,1);function $T(e,t){qe(t,!0);let n=P(!1),r=P(I({})),i=P(null),a=P(!1),o=P(-1),s=P(``),c=P(`t-green`),l=P(!1),u=P(-1),d=P(-1),f=P(`p`),p=P(``),m={"t-green":`survival.color_green`,"t-violet":`survival.color_violet`,"t-amber":`survival.color_amber`,"t-sky":`survival.color_sky`,"t-rose":`survival.color_rose`,"t-teal":`survival.color_teal`},h=N(()=>xT.notes.length>0&&xT.notes.every(e=>V(r)[e.id]));function g(e){V(r)[e]=!V(r)[e]}function _(){if(V(h))F(r,{},!0);else{let e={};xT.notes.forEach(t=>e[t.id]=!0),F(r,e,!0)}}function v(){F(o,-1),F(s,``),F(c,`t-green`),F(a,!0)}function y(e){F(o,e,!0),F(s,xT.notes[e].titre,!0),F(c,xT.notes[e].theme,!0),F(a,!0)}function b(){let e=V(s).trim();if(e){if(V(o)===-1){let t=Date.now();xT.notes.push({id:t,theme:V(c),titre:e,blocs:[]}),V(r)[t]=!0}else xT.notes[V(o)].titre=e,xT.notes[V(o)].theme=V(c);ET(),F(a,!1)}}async function x(e){await t.confirmDelete(Y(`survival.confirm_del_note_title`),Y(`survival.confirm_del_note_msg`))&&(xT.notes.splice(e,1),ET())}function S(e){return e.type===`ul`?e.items.join(`
|
|
286
|
+
`;let[s,c,u]=o.querySelectorAll(`input`);s.addEventListener(`input`,()=>{t.id=s.value.trim()||`p${n+1}`,b()}),c.addEventListener(`input`,()=>{t.x=l(Number(c.value)/100),b()}),u.addEventListener(`input`,()=>{t.y=l(Number(u.value)/100),b()}),o.querySelector(`button`).addEventListener(`click`,()=>{i.anchors=i.anchors.filter(e=>e!==t),b()}),e.anchorList.appendChild(o)})}function x(t,n){let r=e.previewStage.getBoundingClientRect();t.x=l((n.clientX-r.left)/r.width),t.y=l((n.clientY-r.top)/r.height)}let S=[],C=(e,t,n,r)=>{e.addEventListener(t,n,r),S.push(()=>e.removeEventListener(t,n,r))};return C(e.previewStage,`pointermove`,e=>{if(!a||!i)return;let t=i.anchors.find(e=>e.id===a);t&&(x(t,e),b())}),C(window,`pointerup`,()=>{a=null}),C(e.previewStage,`click`,e=>{if(e.target.closest(`.anchor-dot`)||a||!i)return;let t={id:`p${(i.anchors||[]).length+1}`,x:.5,y:.5};x(t,e),i.anchors=[...i.anchors||[],t],b()}),C(document.getElementById(`btnAddLibrary`),`click`,async()=>{let e={id:o(`lib`),name:`New library`,shapes:[]};t.libraries.push(e),n=e.id,r=null,i=h(),g(),await m()}),C(e.librarySelect,`change`,()=>{n=e.librarySelect.value,r=s()?.shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g()}),C(e.libraryName,`change`,async()=>{let t=s();t&&(t.name=e.libraryName.value.trim()||t.name,_(),await m())}),C(document.getElementById(`btnNewShape`),`click`,()=>{r=null,i=h(),g()}),C(document.getElementById(`btnDeleteShape`),`click`,async()=>{let e=s();!e||!r||(e.shapes=e.shapes.filter(e=>e.id!==r),r=e.shapes[0]?.id||null,i=c()?structuredClone(c()):h(),g(),await m())}),C(document.getElementById(`btnDefaultAnchors`),`click`,()=>{i.anchors=structuredClone(xT),b()}),C(document.getElementById(`btnClearAnchors`),`click`,()=>{i.anchors=[],b()}),C(document.getElementById(`btnSaveShape`),`click`,async()=>{let t=s();if(!t||!i||!i.imageSrc)return;i.name=e.shapeName.value.trim()||`Untitled shape`,i.width=Math.max(16,Math.min(1200,Math.round(Number(e.shapeWidth.value)||65))),i.height=Math.max(16,Math.min(1200,Math.round(Number(e.shapeHeight.value)||65))),i.labelPlacement=u(e.labelPlacement.value),i.showInDiagram=e.shapeShowInDiagram.checked;let n=t.shapes.findIndex(e=>e.id===i.id);n>=0?t.shapes[n]=structuredClone(i):t.shapes.push(structuredClone(i)),r=i.id,g(),await m()}),[`shapeName`,`shapeWidth`,`shapeHeight`,`labelPlacement`,`shapeShowInDiagram`].forEach(t=>{C(document.getElementById(t),`input`,()=>{i.name=e.shapeName.value,i.width=Number(e.shapeWidth.value)||65,i.height=Number(e.shapeHeight.value)||65,i.labelPlacement=u(e.labelPlacement.value),i.showInDiagram=e.shapeShowInDiagram.checked})}),C(e.imageFile,`change`,async()=>{let t=e.imageFile.files&&e.imageFile.files[0];if(!t||!i)return;let n=await new Promise((e,n)=>{let r=new FileReader;r.onload=()=>e(r.result),r.onerror=n,r.readAsDataURL(t)}),r=(t.name.split(`.`).pop()||`png`).toLowerCase().replace(/[^a-z0-9]/g,``)||`png`,a=t.name.replace(/\.[^.]+$/,``).slice(0,60),o=await(await fetch(`/api/images/upload`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({data:n,ext:r,name:a})})).json();i.imageSrc=`/images/${o.filename}`,(!e.shapeName.value||e.shapeName.value===`New shape`)&&(i.name=a||i.name),y()}),p(),()=>{S.forEach(e=>e()),S.length=0}}var jT=U(`<div class="ld-shape-editor h-screen overflow-hidden bg-gray-50 text-gray-900"><header class="h-12 border-b border-gray-200 bg-white flex items-center gap-2 px-3"><button class="btn">← Back</button> <h1 class="text-sm font-semibold">Shape editor</h1> <span id="saveState" class="ml-auto text-xs text-gray-500"></span></header> <main class="h-[calc(100vh-3rem)] grid grid-cols-[17rem_1fr] overflow-hidden"><aside class="border-r border-gray-200 bg-white flex flex-col min-h-0"><div class="p-3 border-b border-gray-200 space-y-2"><label class="block text-xs font-semibold text-gray-500">Library</label> <div class="flex gap-2"><select id="librarySelect" class="field flex-1"></select> <button id="btnAddLibrary" class="btn">+</button></div> <input id="libraryName" class="field w-full" placeholder="Library name"/></div> <div class="p-3 border-b border-gray-200 flex gap-2"><button id="btnNewShape" class="btn btn-primary flex-1">New shape</button> <button id="btnDeleteShape" class="btn btn-danger">Delete</button></div> <div id="shapeList" class="flex-1 overflow-y-auto p-2 space-y-1"></div></aside> <section class="min-w-0 min-h-0 overflow-y-auto p-5"><div class="grid grid-cols-[minmax(20rem,34rem)_minmax(20rem,1fr)] gap-5 items-start"><div class="space-y-3"><div id="previewStage"><img id="previewImage" alt=""/></div> <p class="text-xs text-gray-500">Click on the image to add an anchor. Drag anchors to refine their
|
|
287
|
+
position.</p></div> <div class="space-y-4"><div class="grid grid-cols-2 gap-3"><label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Shape name</span> <input id="shapeName" class="field w-full" placeholder="Shape name"/></label> <label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Image / SVG</span> <input id="imageFile" type="file" accept="image/*,.svg" class="block w-full text-sm"/></label> <label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Width</span> <input id="shapeWidth" type="number" min="16" max="1200" class="field w-full"/></label> <label class="space-y-1"><span class="block text-xs font-semibold text-gray-500">Height</span> <input id="shapeHeight" type="number" min="16" max="1200" class="field w-full"/></label> <label class="space-y-1 col-span-2"><span class="block text-xs font-semibold text-gray-500">Text placement</span> <select id="labelPlacement" class="field w-full"><option> </option><option> </option><option> </option><option> </option><option> </option></select></label> <label class="col-span-2 flex items-start gap-2 rounded-md border border-gray-200 bg-white px-2 py-2 text-sm"><input id="shapeShowInDiagram" type="checkbox" class="mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600"/> <span class="space-y-0.5"><span class="block font-semibold text-gray-700"> </span> <span class="block text-xs text-gray-500"> </span></span></label></div> <div class="flex flex-wrap gap-2"><button id="btnDefaultAnchors" class="btn">Use 8 default anchors</button> <button id="btnClearAnchors" class="btn">Clear anchors</button> <button id="btnSaveShape" class="btn btn-primary">Save shape</button></div> <div><div class="flex items-center justify-between mb-2"><h2 class="text-xs font-semibold uppercase tracking-wide text-gray-500">Anchors</h2> <span id="anchorCount" class="text-xs text-gray-500"></span></div> <div id="anchorList" class="space-y-1"></div></div></div></div></section></main></div>`);function MT(e,t){qe(t,!1),Ji(async()=>{try{await Sa((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{await Sa(`en`)}return AT()}),Gi();var n=jT(),r=L(n),i=L(r);Ie(4),j(r);var a=z(r,2),o=z(L(a),2),s=L(o),c=z(L(s),2),l=L(c),u=z(L(l),8),d=z(L(u),2),f=L(d),p=L(f,!0);j(f),f.value=f.__value=`below`;var m=z(f),h=L(m,!0);j(m),m.value=m.__value=`above`;var g=z(m),_=L(g,!0);j(g),g.value=g.__value=`right`;var v=z(g),y=L(v,!0);j(v),v.value=v.__value=`left`;var b=z(v),x=L(b,!0);j(b),b.value=b.__value=`center`,j(d),j(u);var S=z(u,2),C=z(L(S),2),w=L(C),T=L(w,!0);j(w);var E=z(w,2),D=L(E,!0);j(E),j(C),j(S),j(l),Ie(4),j(c),j(s),j(o),j(a),j(n),B((e,t,n,r,i,a,o)=>{G(p,e),G(h,t),G(_,n),G(y,r),G(x,i),G(T,a),G(D,o)},[()=>Y(`shape_editor.label_placement.below`),()=>Y(`shape_editor.label_placement.above`),()=>Y(`shape_editor.label_placement.right`),()=>Y(`shape_editor.label_placement.left`),()=>Y(`shape_editor.label_placement.center`),()=>Y(`shape_editor.show_in_diagram_label`),()=>Y(`shape_editor.show_in_diagram_hint`)]),H(`click`,i,()=>history.back()),W(e,n),Je()}Pr([`click`]);function NT(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var PT=NT();function FT(e){PT=e}var IT=/[&<>"']/,LT=new RegExp(IT.source,`g`),RT=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,zT=new RegExp(RT.source,`g`),BT={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},VT=e=>BT[e];function HT(e,t){if(t){if(IT.test(e))return e.replace(LT,VT)}else if(RT.test(e))return e.replace(zT,VT);return e}var UT=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function WT(e){return e.replace(UT,(e,t)=>(t=t.toLowerCase(),t===`colon`?`:`:t.charAt(0)===`#`?t.charAt(1)===`x`?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):``))}var GT=/(^|[^\[])\^/g;function KT(e,t){let n=typeof e==`string`?e:e.source;t||=``;let r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(GT,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}function qT(e){try{e=encodeURI(e).replace(/%25/g,`%`)}catch{return null}return e}var JT={exec:()=>null};function YT(e,t){let n=e.replace(/\|/g,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(/ \|/),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n[n.length-1].trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(/\\\|/g,`|`);return n}function XT(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 ZT(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-1}function QT(e,t,n,r){let i=t.href,a=t.title?HT(t.title):null,o=e[1].replace(/\\([\[\]])/g,`$1`);if(e[0].charAt(0)!==`!`){r.state.inLink=!0;let e={type:`link`,raw:n,href:i,title:a,text:o,tokens:r.inlineTokens(o)};return r.state.inLink=!1,e}return{type:`image`,raw:n,href:i,title:a,text:HT(o)}}function $T(e,t){let n=e.match(/^(\s+)(?:```)/);if(n===null)return t;let r=n[1];return t.split(`
|
|
288
|
+
`).map(e=>{let t=e.match(/^\s+/);if(t===null)return e;let[n]=t;return n.length>=r.length?e.slice(r.length):e}).join(`
|
|
289
|
+
`)}var eE=class{options;rules;lexer;constructor(e){this.options=e||PT}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 e=t[0].replace(/^ {1,4}/gm,``);return{type:`code`,raw:t[0],codeBlockStyle:`indented`,text:this.options.pedantic?e:XT(e,`
|
|
290
|
+
`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=$T(e,t[3]||``);return{type:`code`,raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,`$1`):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(/#$/.test(e)){let t=XT(e,`#`);(this.options.pedantic||!t||/ $/.test(t))&&(e=t.trim())}return{type:`heading`,raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:`hr`,raw:t[0]}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let e=t[0].replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,`
|
|
291
|
+
$1`);e=XT(e.replace(/^ *>[ \t]?/gm,``),`
|
|
292
|
+
`);let n=this.lexer.state.top;this.lexer.state.top=!0;let r=this.lexer.blockTokens(e);return this.lexer.state.top=n,{type:`blockquote`,raw:t[0],tokens:r,text:e}}}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=RegExp(`^( {0,3}${n})((?:[\t ][^\\n]*)?(?:\\n|$))`),o=``,s=``,c=!1;for(;e;){let n=!1;if(!(t=a.exec(e))||this.rules.block.hr.test(e))break;o=t[0],e=e.substring(o.length);let r=t[2].split(`
|
|
293
|
+
`,1)[0].replace(/^\t+/,e=>` `.repeat(3*e.length)),l=e.split(`
|
|
294
|
+
`,1)[0],u=0;this.options.pedantic?(u=2,s=r.trimStart()):(u=t[2].search(/[^ ]/),u=u>4?1:u,s=r.slice(u),u+=t[1].length);let d=!1;if(!r&&/^ *$/.test(l)&&(o+=l+`
|
|
295
|
+
`,e=e.substring(l.length+1),n=!0),!n){let t=RegExp(`^ {0,${Math.min(3,u-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ \t][^\\n]*)?(?:\\n|$))`),n=RegExp(`^ {0,${Math.min(3,u-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),i=RegExp(`^ {0,${Math.min(3,u-1)}}(?:\`\`\`|~~~)`),a=RegExp(`^ {0,${Math.min(3,u-1)}}#`);for(;e;){let c=e.split(`
|
|
296
|
+
`,1)[0];if(l=c,this.options.pedantic&&(l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g,` `)),i.test(l)||a.test(l)||t.test(l)||n.test(e))break;if(l.search(/[^ ]/)>=u||!l.trim())s+=`
|
|
297
|
+
`+l.slice(u);else{if(d||r.search(/[^ ]/)>=4||i.test(r)||a.test(r)||n.test(r))break;s+=`
|
|
298
|
+
`+l}!d&&!l.trim()&&(d=!0),o+=c+`
|
|
299
|
+
`,e=e.substring(c.length+1),r=l.slice(u)}}i.loose||(c?i.loose=!0:/\n *\n *$/.test(o)&&(c=!0));let f=null,p;this.options.gfm&&(f=/^\[[ xX]\] /.exec(s),f&&(p=f[0]!==`[ ] `,s=s.replace(/^\[[ xX]\] +/,``))),i.items.push({type:`list_item`,raw:o,task:!!f,checked:p,loose:!1,text:s,tokens:[]}),i.raw+=o}i.items[i.items.length-1].raw=o.trimEnd(),i.items[i.items.length-1].text=s.trimEnd(),i.raw=i.raw.trimEnd();for(let e=0;e<i.items.length;e++)if(this.lexer.state.top=!1,i.items[e].tokens=this.lexer.blockTokens(i.items[e].text,[]),!i.loose){let t=i.items[e].tokens.filter(e=>e.type===`space`);i.loose=t.length>0&&t.some(e=>/\n.*\n/.test(e.raw))}if(i.loose)for(let e=0;e<i.items.length;e++)i.items[e].loose=!0;return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:`html`,block:!0,raw:t[0],pre:t[1]===`pre`||t[1]===`script`||t[1]===`style`,text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let e=t[1].toLowerCase().replace(/\s+/g,` `),n=t[2]?t[2].replace(/^<(.*)>$/,`$1`).replace(this.rules.inline.anyPunctuation,`$1`):``,r=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,`$1`):t[3];return{type:`def`,tag:e,raw:t[0],href:n,title:r}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!/[:|]/.test(t[2]))return;let n=YT(t[1]),r=t[2].replace(/^\||\| *$/g,``).split(`|`),i=t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,``).split(`
|
|
300
|
+
`):[],a={type:`table`,raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let e of r)/^ *-+: *$/.test(e)?a.align.push(`right`):/^ *:-+: *$/.test(e)?a.align.push(`center`):/^ *:-+ *$/.test(e)?a.align.push(`left`):a.align.push(null);for(let e of n)a.header.push({text:e,tokens:this.lexer.inline(e)});for(let e of i)a.rows.push(YT(e,a.header.length).map(e=>({text:e,tokens:this.lexer.inline(e)})));return a}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:`heading`,raw:t[0],depth:t[2].charAt(0)===`=`?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let e=t[1].charAt(t[1].length-1)===`
|
|
301
|
+
`?t[1].slice(0,-1):t[1];return{type:`paragraph`,raw:t[0],text:e,tokens:this.lexer.inline(e)}}}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:HT(t[1])}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.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 e=t[2].trim();if(!this.options.pedantic&&/^</.test(e)){if(!/>$/.test(e))return;let t=XT(e.slice(0,-1),`\\`);if((e.length-t.length)%2==0)return}else{let e=ZT(t[2],`()`);if(e>-1){let n=(t[0].indexOf(`!`)===0?5:4)+t[1].length+e;t[2]=t[2].substring(0,e),t[0]=t[0].substring(0,n).trim(),t[3]=``}}let n=t[2],r=``;if(this.options.pedantic){let e=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);e&&(n=e[1],r=e[3])}else r=t[3]?t[3].slice(1,-1):``;return n=n.trim(),/^</.test(n)&&(n=this.options.pedantic&&!/>$/.test(e)?n.slice(1):n.slice(1,-1)),QT(t,{href:n&&n.replace(this.rules.inline.anyPunctuation,`$1`),title:r&&r.replace(this.rules.inline.anyPunctuation,`$1`)},t[0],this.lexer)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let e=t[(n[2]||n[1]).replace(/\s+/g,` `).toLowerCase()];if(!e){let e=n[0].charAt(0);return{type:`text`,raw:e,text:e}}return QT(n,e,n[0],this.lexer)}}emStrong(e,t,n=``){let r=this.rules.inline.emStrongLDelim.exec(e);if(r&&!(r[3]&&n.match(/[\p{L}\p{N}]/u))&&(!(r[1]||r[2])||!n||this.rules.inline.punctuation.exec(n))){let n=[...r[0]].length-1,i,a,o=n,s=0,c=r[0][0]===`*`?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+n);(r=c.exec(t))!=null;){if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!i)continue;if(a=[...i].length,r[3]||r[4]){o+=a;continue}else if((r[5]||r[6])&&n%3&&!((n+a)%3)){s+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+s);let t=[...r[0]][0].length,c=e.slice(0,n+r.index+t+a);if(Math.min(n,a)%2){let e=c.slice(1,-1);return{type:`em`,raw:c,text:e,tokens:this.lexer.inlineTokens(e)}}let l=c.slice(2,-2);return{type:`strong`,raw:c,text:l,tokens:this.lexer.inlineTokens(l)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let e=t[2].replace(/\n/g,` `),n=/[^ ]/.test(e),r=/^ /.test(e)&&/ $/.test(e);return n&&r&&(e=e.substring(1,e.length-1)),e=HT(e,!0),{type:`codespan`,raw:t[0],text:e}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:`br`,raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:`del`,raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let e,n;return t[2]===`@`?(e=HT(t[1]),n=`mailto:`+e):(e=HT(t[1]),n=e),{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let e,n;if(t[2]===`@`)e=HT(t[0]),n=`mailto:`+e;else{let r;do r=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??``;while(r!==t[0]);e=HT(t[0]),n=t[1]===`www.`?`http://`+t[0]:t[0]}return{type:`link`,raw:t[0],text:e,href:n,tokens:[{type:`text`,raw:e,text:e}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let e;return e=this.lexer.state.inRawBlock?t[0]:HT(t[0]),{type:`text`,raw:t[0],text:e}}}},tE=/^(?: *(?:\n|$))+/,nE=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,rE=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,iE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,aE=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,oE=/(?:[*+-]|\d{1,9}[.)])/,sE=KT(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,oE).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),cE=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,lE=/^[^\n]+/,uE=/(?!\s*\])(?:\\.|[^\[\]\\])+/,dE=KT(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace(`label`,uE).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),fE=KT(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,oE).getRegex(),pE=`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`,mE=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,hE=KT(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\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`,mE).replace(`tag`,pE).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),gE=KT(cE).replace(`hr`,iE).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,pE).getRegex(),_E={blockquote:KT(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,gE).getRegex(),code:nE,def:dE,fences:rE,heading:aE,hr:iE,html:hE,lheading:sE,list:fE,newline:tE,paragraph:gE,table:JT,text:lE},vE=KT(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,iE).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,` {4}[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,pE).getRegex(),yE={..._E,table:vE,paragraph:KT(cE).replace(`hr`,iE).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,vE).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)]) `).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,pE).getRegex()},bE={..._E,html:KT(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,mE).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:JT,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:KT(cE).replace(`hr`,iE).replace(`heading`,` *#{1,6} *[^
|
|
302
|
+
]`).replace(`lheading`,sE).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},xE=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,SE=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,CE=/^( {2,}|\\)\n(?!\s*$)/,wE=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,TE=`\\p{P}\\p{S}`,EE=KT(/^((?![*_])[\spunctuation])/,`u`).replace(/punctuation/g,TE).getRegex(),DE=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,OE=KT(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,`u`).replace(/punct/g,TE).getRegex(),kE=KT(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])`,`gu`).replace(/punct/g,TE).getRegex(),AE=KT(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])`,`gu`).replace(/punct/g,TE).getRegex(),jE=KT(/\\([punct])/,`gu`).replace(/punct/g,TE).getRegex(),ME=KT(/^<(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(),NE=KT(mE).replace(`(?:-->|$)`,`-->`).getRegex(),PE=KT(`^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`,NE).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),FE=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,IE=KT(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace(`label`,FE).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),LE=KT(/^!?\[(label)\]\[(ref)\]/).replace(`label`,FE).replace(`ref`,uE).getRegex(),RE=KT(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,uE).getRegex(),zE={_backpedal:JT,anyPunctuation:jE,autolink:ME,blockSkip:DE,br:CE,code:SE,del:JT,emStrongLDelim:OE,emStrongRDelimAst:kE,emStrongRDelimUnd:AE,escape:xE,link:IE,nolink:RE,punctuation:EE,reflink:LE,reflinkSearch:KT(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,LE).replace(`nolink`,RE).getRegex(),tag:PE,text:wE,url:JT},BE={...zE,link:KT(/^!?\[(label)\]\((.*?)\)/).replace(`label`,FE).getRegex(),reflink:KT(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,FE).getRegex()},VE={...zE,escape:KT(xE).replace(`])`,`~|])`).getRegex(),url:KT(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,`i`).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~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},HE={...VE,br:KT(CE).replace(`{2,}`,`*`).getRegex(),text:KT(VE.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},UE={normal:_E,gfm:yE,pedantic:bE},WE={normal:zE,gfm:VE,breaks:HE,pedantic:BE},GE=class e{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||PT,this.options.tokenizer=this.options.tokenizer||new eE,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 t={block:UE.normal,inline:WE.normal};this.options.pedantic?(t.block=UE.pedantic,t.inline=WE.pedantic):this.options.gfm&&(t.block=UE.gfm,this.options.breaks?t.inline=WE.breaks:t.inline=WE.gfm),this.tokenizer.rules=t}static get rules(){return{block:UE,inline:WE}}static lex(t,n){return new e(n).lex(t)}static lexInline(t,n){return new e(n).inlineTokens(t)}lex(e){e=e.replace(/\r\n|\r/g,`
|
|
303
|
+
`),this.blockTokens(e,this.tokens);for(let e=0;e<this.inlineQueue.length;e++){let t=this.inlineQueue[e];this.inlineTokens(t.src,t.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[]){e=this.options.pedantic?e.replace(/\t/g,` `).replace(/^ +$/gm,``):e.replace(/^( *)(\t+)/gm,(e,t,n)=>t+` `.repeat(n.length));let n,r,i,a;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(r=>(n=r.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))){if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length),n.raw.length===1&&t.length>0?t[t.length-1].raw+=`
|
|
304
|
+
`:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&(r.type===`paragraph`||r.type===`text`)?(r.raw+=`
|
|
305
|
+
`+n.raw,r.text+=`
|
|
306
|
+
`+n.text,this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&(r.type===`paragraph`||r.type===`text`)?(r.raw+=`
|
|
307
|
+
`+n.raw,r.text+=`
|
|
308
|
+
`+n.raw,this.inlineQueue[this.inlineQueue.length-1].src=r.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title});continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(i=e,this.options.extensions&&this.options.extensions.startBlock){let t=1/0,n=e.slice(1),r;this.options.extensions.startBlock.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(this.state.top&&(n=this.tokenizer.paragraph(i))){r=t[t.length-1],a&&r.type===`paragraph`?(r.raw+=`
|
|
309
|
+
`+n.raw,r.text+=`
|
|
310
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n),a=i.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&r.type===`text`?(r.raw+=`
|
|
311
|
+
`+n.raw,r.text+=`
|
|
312
|
+
`+n.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=r.text):t.push(n);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n,r,i,a=e,o,s,c;if(this.tokens.links){let e=Object.keys(this.tokens.links);if(e.length>0)for(;(o=this.tokenizer.rules.inline.reflinkSearch.exec(a))!=null;)e.includes(o[0].slice(o[0].lastIndexOf(`[`)+1,-1))&&(a=a.slice(0,o.index)+`[`+`a`.repeat(o[0].length-2)+`]`+a.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(o=this.tokenizer.rules.inline.blockSkip.exec(a))!=null;)a=a.slice(0,o.index)+`[`+`a`.repeat(o[0].length-2)+`]`+a.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(o=this.tokenizer.rules.inline.anyPunctuation.exec(a))!=null;)a=a.slice(0,o.index)+`++`+a.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(s||(c=``),s=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(r=>(n=r.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))){if(n=this.tokenizer.escape(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.tag(e)){e=e.substring(n.raw.length),r=t[t.length-1],r&&n.type===`text`&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(n=this.tokenizer.link(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(n.raw.length),r=t[t.length-1],r&&n.type===`text`&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(n=this.tokenizer.emStrong(e,a,c)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.codespan(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.br(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.del(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.autolink(e)){e=e.substring(n.raw.length),t.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(e))){e=e.substring(n.raw.length),t.push(n);continue}if(i=e,this.options.extensions&&this.options.extensions.startInline){let t=1/0,n=e.slice(1),r;this.options.extensions.startInline.forEach(e=>{r=e.call({lexer:this},n),typeof r==`number`&&r>=0&&(t=Math.min(t,r))}),t<1/0&&t>=0&&(i=e.substring(0,t+1))}if(n=this.tokenizer.inlineText(i)){e=e.substring(n.raw.length),n.raw.slice(-1)!==`_`&&(c=n.raw.slice(-1)),s=!0,r=t[t.length-1],r&&r.type===`text`?(r.raw+=n.raw,r.text+=n.text):t.push(n);continue}if(e){let t=`Infinite loop on byte: `+e.charCodeAt(0);if(this.options.silent){console.error(t);break}else throw Error(t)}}return t}},KE=class{options;constructor(e){this.options=e||PT}code(e,t,n){let r=(t||``).match(/^\S*/)?.[0];return e=e.replace(/\n$/,``)+`
|
|
313
|
+
`,r?`<pre><code class="language-`+HT(r)+`">`+(n?e:HT(e,!0))+`</code></pre>
|
|
314
|
+
`:`<pre><code>`+(n?e:HT(e,!0))+`</code></pre>
|
|
315
|
+
`}blockquote(e){return`<blockquote>\n${e}</blockquote>\n`}html(e,t){return e}heading(e,t,n){return`<h${t}>${e}</h${t}>\n`}hr(){return`<hr>
|
|
316
|
+
`}list(e,t,n){let r=t?`ol`:`ul`,i=t&&n!==1?` start="`+n+`"`:``;return`<`+r+i+`>
|
|
317
|
+
`+e+`</`+r+`>
|
|
318
|
+
`}listitem(e,t,n){return`<li>${e}</li>\n`}checkbox(e){return`<input `+(e?`checked="" `:``)+`disabled="" type="checkbox">`}paragraph(e){return`<p>${e}</p>\n`}table(e,t){return t&&=`<tbody>${t}</tbody>`,`<table>
|
|
319
|
+
<thead>
|
|
320
|
+
`+e+`</thead>
|
|
321
|
+
`+t+`</table>
|
|
322
|
+
`}tablerow(e){return`<tr>\n${e}</tr>\n`}tablecell(e,t){let n=t.header?`th`:`td`;return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>\n`}strong(e){return`<strong>${e}</strong>`}em(e){return`<em>${e}</em>`}codespan(e){return`<code>${e}</code>`}br(){return`<br>`}del(e){return`<del>${e}</del>`}link(e,t,n){let r=qT(e);if(r===null)return n;e=r;let i=`<a href="`+e+`"`;return t&&(i+=` title="`+t+`"`),i+=`>`+n+`</a>`,i}image(e,t,n){let r=qT(e);if(r===null)return n;e=r;let i=`<img src="${e}" alt="${n}"`;return t&&(i+=` title="${t}"`),i+=`>`,i}text(e){return e}},qE=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,n){return``+n}image(e,t,n){return``+n}br(){return``}},JE=class e{options;renderer;textRenderer;constructor(e){this.options=e||PT,this.options.renderer=this.options.renderer||new KE,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new qE}static parse(t,n){return new e(n).parse(t)}static parseInline(t,n){return new e(n).parseInline(t)}parse(e,t=!0){let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let e=i,t=this.options.extensions.renderers[e.type].call({parser:this},e);if(t!==!1||![`space`,`hr`,`heading`,`code`,`table`,`blockquote`,`list`,`html`,`paragraph`,`text`].includes(e.type)){n+=t||``;continue}}switch(i.type){case`space`:continue;case`hr`:n+=this.renderer.hr();continue;case`heading`:{let e=i;n+=this.renderer.heading(this.parseInline(e.tokens),e.depth,WT(this.parseInline(e.tokens,this.textRenderer)));continue}case`code`:{let e=i;n+=this.renderer.code(e.text,e.lang,!!e.escaped);continue}case`table`:{let e=i,t=``,r=``;for(let t=0;t<e.header.length;t++)r+=this.renderer.tablecell(this.parseInline(e.header[t].tokens),{header:!0,align:e.align[t]});t+=this.renderer.tablerow(r);let a=``;for(let t=0;t<e.rows.length;t++){let n=e.rows[t];r=``;for(let t=0;t<n.length;t++)r+=this.renderer.tablecell(this.parseInline(n[t].tokens),{header:!1,align:e.align[t]});a+=this.renderer.tablerow(r)}n+=this.renderer.table(t,a);continue}case`blockquote`:{let e=i,t=this.parse(e.tokens);n+=this.renderer.blockquote(t);continue}case`list`:{let e=i,t=e.ordered,r=e.start,a=e.loose,o=``;for(let t=0;t<e.items.length;t++){let n=e.items[t],r=n.checked,i=n.task,s=``;if(n.task){let e=this.renderer.checkbox(!!r);a?n.tokens.length>0&&n.tokens[0].type===`paragraph`?(n.tokens[0].text=e+` `+n.tokens[0].text,n.tokens[0].tokens&&n.tokens[0].tokens.length>0&&n.tokens[0].tokens[0].type===`text`&&(n.tokens[0].tokens[0].text=e+` `+n.tokens[0].tokens[0].text)):n.tokens.unshift({type:`text`,text:e+` `}):s+=e+` `}s+=this.parse(n.tokens,a),o+=this.renderer.listitem(s,i,!!r)}n+=this.renderer.list(o,t,r);continue}case`html`:{let e=i;n+=this.renderer.html(e.text,e.block);continue}case`paragraph`:{let e=i;n+=this.renderer.paragraph(this.parseInline(e.tokens));continue}case`text`:{let a=i,o=a.tokens?this.parseInline(a.tokens):a.text;for(;r+1<e.length&&e[r+1].type===`text`;)a=e[++r],o+=`
|
|
323
|
+
`+(a.tokens?this.parseInline(a.tokens):a.text);n+=t?this.renderer.paragraph(o):o;continue}default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}parseInline(e,t){t||=this.renderer;let n=``;for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[i.type]){let e=this.options.extensions.renderers[i.type].call({parser:this},i);if(e!==!1||![`escape`,`html`,`link`,`image`,`strong`,`em`,`codespan`,`br`,`del`,`text`].includes(i.type)){n+=e||``;continue}}switch(i.type){case`escape`:{let e=i;n+=t.text(e.text);break}case`html`:{let e=i;n+=t.html(e.text);break}case`link`:{let e=i;n+=t.link(e.href,e.title,this.parseInline(e.tokens,t));break}case`image`:{let e=i;n+=t.image(e.href,e.title,e.text);break}case`strong`:{let e=i;n+=t.strong(this.parseInline(e.tokens,t));break}case`em`:{let e=i;n+=t.em(this.parseInline(e.tokens,t));break}case`codespan`:{let e=i;n+=t.codespan(e.text);break}case`br`:n+=t.br();break;case`del`:{let e=i;n+=t.del(this.parseInline(e.tokens,t));break}case`text`:{let e=i;n+=t.text(e.text);break}default:{let e=`Token with "`+i.type+`" type was not found.`;if(this.options.silent)return console.error(e),``;throw Error(e)}}}return n}},YE=class{options;constructor(e){this.options=e||PT}static passThroughHooks=new Set([`preprocess`,`postprocess`,`processAllTokens`]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}},XE=new class{defaults=NT();options=this.setOptions;parse=this.#e(GE.lex,JE.parse);parseInline=this.#e(GE.lexInline,JE.parseInline);Parser=JE;Renderer=KE;TextRenderer=qE;Lexer=GE;Tokenizer=eE;Hooks=YE;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 e=r;for(let r of e.header)n=n.concat(this.walkTokens(r.tokens,t));for(let r of e.rows)for(let e of r)n=n.concat(this.walkTokens(e.tokens,t));break}case`list`:{let e=r;n=n.concat(this.walkTokens(e.items,t));break}default:{let e=r;this.defaults.extensions?.childTokens?.[e.type]?this.defaults.extensions.childTokens[e.type].forEach(r=>{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error(`extension name required`);if(`renderer`in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return r===!1&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if(`tokenizer`in e){if(!e.level||e.level!==`block`&&e.level!==`inline`)throw Error(`extension level must be 'block' or 'inline'`);let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&(e.level===`block`?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:e.level===`inline`&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}`childTokens`in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new KE(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if(n===`options`)continue;let r=n,i=e.renderer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n||``}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new eE(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if([`options`,`rules`,`lexer`].includes(n))continue;let r=n,i=e.tokenizer[r],a=t[r];t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new YE;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if(n===`options`)continue;let r=n,i=e.hooks[r],a=t[r];YE.passThroughHooks.has(n)?t[r]=e=>{if(this.defaults.async)return Promise.resolve(i.call(t,e)).then(e=>a.call(t,e));let n=i.call(t,e);return a.call(t,n)}:t[r]=(...e)=>{let n=i.apply(t,e);return n===!1&&(n=a.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return GE.lex(e,t??this.defaults)}parser(e,t){return JE.parse(e,t??this.defaults)}#e(e,t){return(n,r)=>{let i={...r},a={...this.defaults,...i};this.defaults.async===!0&&i.async===!1&&(a.silent||console.warn(`marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.`),a.async=!0);let o=this.#t(!!a.silent,!!a.async);if(n==null)return o(Error(`marked(): input parameter is undefined or null`));if(typeof n!=`string`)return o(Error(`marked(): input parameter is of type `+Object.prototype.toString.call(n)+`, string expected`));if(a.hooks&&(a.hooks.options=a),a.async)return Promise.resolve(a.hooks?a.hooks.preprocess(n):n).then(t=>e(t,a)).then(e=>a.hooks?a.hooks.processAllTokens(e):e).then(e=>a.walkTokens?Promise.all(this.walkTokens(e,a.walkTokens)).then(()=>e):e).then(e=>t(e,a)).then(e=>a.hooks?a.hooks.postprocess(e):e).catch(o);try{a.hooks&&(n=a.hooks.preprocess(n));let r=e(n,a);a.hooks&&(r=a.hooks.processAllTokens(r)),a.walkTokens&&this.walkTokens(r,a.walkTokens);let i=t(r,a);return a.hooks&&(i=a.hooks.postprocess(i)),i}catch(e){return o(e)}}}#t(e,t){return n=>{if(n.message+=`
|
|
324
|
+
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+HT(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}};function ZE(e,t){return XE.parse(e,t)}ZE.options=ZE.setOptions=function(e){return XE.setOptions(e),ZE.defaults=XE.defaults,FT(ZE.defaults),ZE},ZE.getDefaults=NT,ZE.defaults=PT,ZE.use=function(...e){return XE.use(...e),ZE.defaults=XE.defaults,FT(ZE.defaults),ZE},ZE.walkTokens=function(e,t){return XE.walkTokens(e,t)},ZE.parseInline=XE.parseInline,ZE.Parser=JE,ZE.parser=JE.parse,ZE.Renderer=KE,ZE.TextRenderer=qE,ZE.Lexer=GE,ZE.lexer=GE.lex,ZE.Tokenizer=eE,ZE.Hooks=YE,ZE.parse=ZE,ZE.options,ZE.setOptions,ZE.use,ZE.walkTokens,ZE.parseInline,JE.parse,GE.lex;var QE=U(`<iframe sandbox="" class="svelte-zodsi8"></iframe>`);function $E(e,t){qe(t,!0);let n=P(!1);Ji(()=>{let e=()=>{F(n,document.documentElement.classList.contains(`dark`),!0)};e();let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>t.disconnect()});let r=N(()=>ZE.parse(t.content.replace(/^---\r?\n[\s\S]*?\r?\n---(?:\r?\n|$)/,``),{async:!1})),i=N(()=>`<!doctype html><html><head><meta http-equiv="Content-Security-Policy" content="default-src 'none'; style-src 'unsafe-inline'; img-src data:;"><style>html{color-scheme:${V(n)?`dark`:`light`}}body{font:15px/1.7 system-ui;margin:24px;overflow-wrap:anywhere}h1{font-size:1.7em}h2{font-size:1.3em}pre{overflow:auto;padding:16px;background:light-dark(#f1f5f9,#1e293b);border-radius:8px}code{font-family:monospace}table{border-collapse:collapse;width:100%}th,td{border:1px solid #8886;padding:8px;text-align:left}blockquote{border-left:3px solid #8886;padding-left:16px;margin-left:0}img{max-width:100%}a{color:light-dark(#2563eb,#93c5fd)}</style></head><body>${V(r)}</body></html>`);var a=Wr();Zr(R(a),()=>V(i),e=>{var t=QE();B(e=>{J(t,`title`,e),J(t,`srcdoc`,V(i))},[()=>Y(`templates.preview`)]),W(e,t)}),W(e,a),Je()}var eD=U(`<span> </span>`),tD=U(`<span class="success svelte-3z3jlz"> </span>`),nD=U(`<div role="alert" class="error svelte-3z3jlz"><span> </span><button class="secondary-button svelte-3z3jlz"> </button></div>`),rD=U(`<p> </p>`),iD=U(`<button><span class="svelte-3z3jlz"> </span><span class="svelte-3z3jlz"> </span></button>`),aD=U(`<details class="folder-actions"><summary class="svelte-3z3jlz"> </summary><div class="actions svelte-3z3jlz"><button class="secondary-button svelte-3z3jlz"> </button><button class="text-button danger svelte-3z3jlz" data-testid="template-delete-folder"> </button></div></details>`),oD=U(`<form class="folder-form svelte-3z3jlz"><label for="template-folder-input" class="svelte-3z3jlz"> </label> <input id="template-folder-input" maxlength="120" aria-describedby="template-folder-error" class="svelte-3z3jlz"/> <span id="template-folder-error" class="error svelte-3z3jlz" role="alert"> </span> <div class="actions svelte-3z3jlz"><button class="primary-button svelte-3z3jlz" data-testid="template-add-folder"> </button><button type="button" class="text-button svelte-3z3jlz"> </button></div></form>`),sD=U(`<button><span class="item-title svelte-3z3jlz"> </span><span class="hint svelte-3z3jlz"> </span></button>`),cD=U(`<button class="primary-button svelte-3z3jlz"> </button>`),lD=U(`<div class="empty svelte-3z3jlz"><h2 class="svelte-3z3jlz"> </h2><p class="svelte-3z3jlz"> </p><!></div>`),uD=U(`<option> </option>`),dD=U(`<form class="edit-form svelte-3z3jlz"><div class="pane-heading svelte-3z3jlz"><h2 class="svelte-3z3jlz"> </h2><span class="draft-status svelte-3z3jlz"> </span></div> <footer class="editor-footer svelte-3z3jlz"><span class="hint svelte-3z3jlz"> </span><div class="actions svelte-3z3jlz"><button type="button" class="secondary-button svelte-3z3jlz"> </button><button class="primary-button svelte-3z3jlz" data-testid="template-save"> </button></div></footer> <div class="fields svelte-3z3jlz"><div><label for="template-name" class="svelte-3z3jlz"> </label><input id="template-name" maxlength="120" aria-describedby="template-name-error" class="svelte-3z3jlz"/><span class="error svelte-3z3jlz" id="template-name-error" role="alert"> </span></div><div><label for="template-destination" class="svelte-3z3jlz"> </label><select id="template-destination" class="svelte-3z3jlz"></select></div></div> <label for="template-content" class="svelte-3z3jlz"> </label> <div class="editor-body svelte-3z3jlz"><textarea id="template-content" maxlength="1000000" spellcheck="false" class="svelte-3z3jlz"></textarea><details class="live-preview svelte-3z3jlz"><summary class="svelte-3z3jlz"> </summary><!></details></div></form>`),fD=U(`<pre class="svelte-3z3jlz"> </pre>`),pD=U(`<div class="detail-heading svelte-3z3jlz"><span class="eyebrow svelte-3z3jlz"> </span><h2 class="svelte-3z3jlz"> </h2><div class="actions svelte-3z3jlz"><button class="primary-button svelte-3z3jlz"> </button><button class="secondary-button svelte-3z3jlz" id="template-edit" data-testid="template-edit"> </button><details class="more-actions svelte-3z3jlz"><summary class="svelte-3z3jlz"> </summary><div class="actions svelte-3z3jlz"><button class="text-button svelte-3z3jlz"> </button><button class="text-button danger svelte-3z3jlz"> </button></div></details></div><p class="hint svelte-3z3jlz"> </p></div> <div class="preview-heading svelte-3z3jlz"><h3 class="svelte-3z3jlz"> </h3><button class="text-button svelte-3z3jlz"> </button></div> <div class="preview-content svelte-3z3jlz"><!></div>`,1),mD=U(`<div class="empty svelte-3z3jlz"><h2 class="svelte-3z3jlz"> </h2><p class="svelte-3z3jlz"> </p></div>`),hD=U(`<div><aside class="folder-pane svelte-3z3jlz"><div class="pane-heading svelte-3z3jlz"><h2 class="svelte-3z3jlz"> </h2><button class="text-button svelte-3z3jlz"> </button></div> <button> <span class="svelte-3z3jlz"> </span></button> <!> <p class="hint svelte-3z3jlz"> </p> <!> <!></aside> <section class="list-pane svelte-3z3jlz"><label for="template-search" class="svelte-3z3jlz"> </label><input type="search" id="template-search" class="svelte-3z3jlz"/> <div class="list-caption svelte-3z3jlz"> </div> <div class="template-list svelte-3z3jlz"></div></section> <section class="detail-pane svelte-3z3jlz"><button class="text-button mobile-back svelte-3z3jlz"> </button> <!></section></div>`),gD=U(`<!> <div class="template-library svelte-3z3jlz" data-testid="templates-manager"><header class="library-heading svelte-3z3jlz"><div><h1 class="svelte-3z3jlz"> </h1><p class="svelte-3z3jlz"> </p></div> <button class="primary-button svelte-3z3jlz" data-testid="template-new"><span aria-hidden="true">+</span> </button></header> <div class="feedback svelte-3z3jlz" aria-live="polite"><!> <!></div> <!></div> <!>`,1);function _D(e,t){qe(t,!0);let n=ka(),r=P(I({version:1,folders:[]})),i=P(!1),a=P(!1),o=P(``),s=P(``),c=P(``),l=P(``),u=P(``),d=P(!1),f=P(``),p=P(``),m=P(``),h=P(``),g=P(``),_=P(``),v=P(null),y=P(``),b=P(``),x=P(``),S=P(!1),C=P(!1),w=P(!1),T=P(void 0),E,D=N(()=>V(r).folders.flatMap(e=>e.templates.map(t=>({...t,folderId:e.id,folderName:e.name})))),ee=N(()=>V(r).folders.find(e=>e.id===V(l))),te=N(()=>V(D).find(e=>e.id===V(u))),O=e=>e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLocaleLowerCase(),k=N(()=>V(D).filter(e=>(!V(l)||e.folderId===V(l))&&O(e.name+` `+e.content).includes(O(V(c))))),ne=()=>JSON.stringify([V(p),V(m),V(h)]),A=N(()=>V(d)&&ne()!==V(g)||V(v)!==null&&V(y)!==V(b));async function re(){if(V(a))return!1;if(!V(A))return!0;let e=await E.show({title:Y(`templates.unsaved_title`),message:Y(`templates.unsaved_message`),confirmLabel:Y(`templates.discard`),cancelLabel:Y(`templates.keep_editing`),danger:!0});return e&&(F(d,!1),F(v,null)),e}async function ie(e){await re()&&(F(d,!1),F(v,null),F(o,``),F(s,``),await e())}async function ae(){F(r,await n(),!0),F(i,!0),V(l)&&!V(r).folders.some(e=>e.id===V(l))&&F(l,``),V(D).some(e=>e.id===V(u))||F(u,V(D)[0]?.id||``,!0)}async function oe(e){if(!V(a)){F(a,!0),F(o,``),F(s,``);try{await e()}catch(e){F(o,e instanceof Error?e.message:Y(`templates.errors.storage_error`),!0)}finally{F(a,!1)}}}let se=()=>ie(()=>oe(ae));Ji(()=>(oe(ae),Bo(re)));function ce(e){(V(A)||V(a))&&(e.preventDefault(),e.returnValue=``)}async function le(e){await ie(()=>{F(l,e,!0),F(w,!1),F(u,V(D).find(t=>!e||t.folderId===e)?.id||``,!0)})}async function ue(e){await ie(()=>{F(u,e,!0),F(w,!0),F(S,!1)})}async function de(e,t=!1){await ie(async()=>{if(F(f,t?``:e?.id||``,!0),F(h,e?.folderId||V(l)||V(r).folders[0]?.id||``,!0),F(p,e?.name||``,!0),t&&e){let t=Y(`templates.copy_name`,{name:e.name});F(p,t,!0);let n=2;for(;V(D).some(e=>e.folderId===V(h)&&e.name.toLocaleLowerCase()===V(p).toLocaleLowerCase());)F(p,`${t} ${n++}`)}F(m,e?.content||``,!0),F(g,t?``:ne(),!0),F(_,``),F(d,!0),F(w,!0),await xr(),document.getElementById(`template-name`)?.focus()})}async function fe(){if(F(_,``),!V(p).trim()||V(p).trim().length>120){F(_,Y(`templates.errors.invalid_name`),!0);return}if(V(D).some(e=>e.id!==V(f)&&e.folderId===V(h)&&e.name.toLocaleLowerCase()===V(p).trim().toLocaleLowerCase())){F(_,Y(`templates.errors.duplicate_name`),!0);return}await oe(async()=>{let e=await n(V(f)?`/${V(f)}`:`/folders/${V(h)}/templates`,V(f)?`PUT`:`POST`,{name:V(p),content:V(m),folderId:V(h)});F(r,{...V(r),folders:V(r).folders.map(t=>({...t,templates:[...t.templates.filter(t=>t.id!==e.id),...t.id===V(h)?[e]:[]]}))},!0),F(u,e.id,!0),F(l,V(h),!0),F(c,``),F(d,!1),F(S,!1),F(s,Y(`templates.saved`),!0),await xr(),document.getElementById(`template-edit`)?.focus()})}async function pe(e){await ie(async()=>{F(y,e===`rename`&&V(ee)?.name||``,!0),F(b,V(y),!0),F(v,e,!0),F(x,``),await xr(),document.getElementById(`template-folder-input`)?.focus()})}async function me(){if(!V(y).trim()||V(y).trim().length>120){F(x,Y(`templates.errors.invalid_name`),!0);return}if(V(r).folders.some(e=>(V(v)===`new`||e.id!==V(l))&&e.name.toLocaleLowerCase()===V(y).trim().toLocaleLowerCase())){F(x,Y(`templates.errors.duplicate_name`),!0);return}await oe(async()=>{let e=await n(V(v)===`new`?`/folders`:`/folders/${V(l)}`,V(v)===`new`?`POST`:`PUT`,{name:V(y)});F(r,{...V(r),folders:V(v)===`new`?[...V(r).folders,e]:V(r).folders.map(t=>t.id===e.id?e:t)},!0),F(l,e.id,!0),F(u,e.templates[0]?.id||``,!0),F(v,null),F(x,``),F(s,Y(`templates.folder_saved`),!0)})}async function he(e){if(!await re())return;let t=V(e?ee:te);t&&await E.show({title:Y(e?`templates.delete_folder`:`templates.delete_template`),message:Y(`templates.delete_message`,{name:t.name}),detail:e?Y(`templates.delete_count`,{count:String(V(ee)?.templates.length||0)}):Y(`templates.independent`),confirmLabel:Y(`common.remove`),cancelLabel:Y(`common.cancel`),danger:!0})&&await oe(async()=>{await n(e?`/folders/${t.id}?confirm=true`:`/${t.id}`,`DELETE`),F(r,{...V(r),folders:e?V(r).folders.filter(e=>e.id!==t.id):V(r).folders.map(e=>({...e,templates:e.templates.filter(e=>e.id!==t.id)}))},!0),e&&F(l,``),F(u,V(D).find(e=>!V(l)||e.folderId===V(l))?.id||``,!0),F(d,!1),F(w,!1),F(s,Y(`templates.deleted`),!0)})}function ge(e){(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`&&V(d)&&(e.preventDefault(),V(a)||fe())}var _e=gD();Nr(`beforeunload`,on,ce),Nr(`keydown`,on,ge);var ve=R(_e);Ui(Xd(ve,{}),e=>E=e,()=>E);var ye=z(ve,2),be=L(ye),xe=L(be),Se=L(xe),Ce=L(Se,!0);j(Se);var we=z(Se),Te=L(we,!0);j(we),j(xe);var Ee=z(xe,2),De=z(L(Ee));j(Ee),j(be);var Oe=z(be,2),ke=L(Oe),Ae=e=>{var t=eD(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},je=e=>{var t=tD(),n=L(t);j(t),B(()=>G(n,`✓ ${V(s)??``}`)),W(e,t)};K(ke,e=>{V(a)?e(Ae):V(s)&&e(je,1)});var Me=z(ke,2),Ne=e=>{var t=nD(),n=L(t),r=L(n,!0);j(n);var i=z(n),s=L(i,!0);j(i),j(t),B(e=>{G(r,V(o)),i.disabled=V(a),G(s,e)},[()=>Y(`templates.reload`)]),H(`click`,i,se),W(e,t)};K(Me,e=>{V(o)&&e(Ne)}),j(Oe);var Pe=z(Oe,2),Fe=e=>{var t=Wr(),n=R(t),r=e=>{var t=rD(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.load_failed`)]),W(e,t)};K(n,e=>{!V(a)&&V(o)&&e(r)}),W(e,t)},Ie=e=>{var t=hD();let n;var i=L(t),o=L(i),s=L(o),g=L(s,!0);j(s);var b=z(s),E=L(b,!0);j(b),j(o);var O=z(o,2);let ne;var re=L(O,!0),ae=z(re),oe=L(ae,!0);j(ae),j(O);var se=z(O,2);q(se,17,()=>V(r).folders,e=>e.id,(e,t)=>{var n=iD();let r;var i=L(n),o=L(i);j(i);var s=z(i),c=L(s,!0);j(s),j(n),B(()=>{r=vi(n,1,`folder-item svelte-3z3jlz`,null,r,{chosen:V(l)===V(t).id}),J(n,`aria-pressed`,V(l)===V(t).id),n.disabled=V(a),G(o,`▱ ${V(t).name??``}`),G(c,V(t).templates.length)}),H(`click`,n,()=>le(V(t).id)),W(e,n)});var ce=z(se,2),ge=L(ce,!0);j(ce);var _e=z(ce,2),ve=e=>{var t=aD(),n=L(t),r=L(n,!0);j(n);var i=z(n),o=L(i),s=L(o,!0);j(o);var c=z(o),l=L(c,!0);j(c),j(i),j(t),B((e,t,n)=>{G(r,e),o.disabled=V(a),G(s,t),c.disabled=V(a),G(l,n)},[()=>Y(`templates.folder_actions`),()=>Y(`templates.rename`),()=>Y(`common.remove`)]),H(`click`,o,()=>pe(`rename`)),H(`click`,c,()=>he(!0)),W(e,t)};K(_e,e=>{V(ee)&&e(ve)});var ye=z(_e,2),be=e=>{var t=oD(),n=L(t),r=L(n,!0);j(n);var i=z(n,2);ki(i);var o=z(i,2),s=L(o,!0);j(o);var c=z(o,2),l=L(c),u=L(l,!0);j(l);var d=z(l),f=L(d,!0);j(d),j(c),j(t),B((e,t,n,o)=>{G(r,e),i.disabled=V(a),J(i,`aria-invalid`,!!V(x)),G(s,V(x)),l.disabled=t,G(u,n),d.disabled=V(a),G(f,o)},[()=>Y(V(v)===`new`?`templates.new_folder`:`templates.rename_folder`),()=>V(a)||!V(y).trim(),()=>Y(V(v)===`new`?`common.create`:`common.save`),()=>Y(`common.cancel`)]),Nr(`submit`,t,e=>{e.preventDefault(),me()}),Fi(i,()=>V(y),e=>F(y,e)),H(`click`,d,()=>ie(()=>{})),W(e,t)};K(ye,e=>{V(v)&&e(be)}),j(i);var xe=z(i,2),Se=L(xe),Ce=L(Se,!0);j(Se);var we=z(Se);ki(we);var Te=z(we,2),Ee=L(Te,!0);j(Te);var De=z(Te,2);q(De,21,()=>V(k),e=>e.id,(e,t)=>{var n=sD();let r;var i=L(n),o=L(i,!0);j(i);var s=z(i),c=L(s,!0);j(s),j(n),B(()=>{r=vi(n,1,`template-item svelte-3z3jlz`,null,r,{chosen:V(u)===V(t).id}),J(n,`aria-pressed`,V(u)===V(t).id),n.disabled=V(a),G(o,V(t).name),G(c,V(t).folderName)}),H(`click`,n,()=>ue(V(t).id)),W(e,n)},e=>{var t=lD(),n=L(t),i=L(n,!0);j(n);var a=z(n),o=L(a,!0);j(a);var s=z(a),l=e=>{var t=cD(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`templates.new_folder`)]),H(`click`,t,()=>pe(`new`)),W(e,t)};K(s,e=>{V(r).folders.length||e(l)}),j(t),B((e,t)=>{G(i,e),G(o,t)},[()=>Y(V(r).folders.length?V(c)?`templates.no_results`:`templates.folder_empty`:`templates.welcome`),()=>Y(V(r).folders.length?V(c)?`templates.search_hint`:`templates.empty_hint`:`templates.start_hint`)]),W(e,t)}),j(De),j(xe);var Oe=z(xe,2),ke=L(Oe),Ae=L(ke);j(ke);var je=z(ke,2),Me=e=>{var t=dD(),n=L(t),i=L(n),o=L(i,!0);j(i);var s=z(i),c=L(s,!0);j(s),j(n);var l=z(n,2),u=L(l),d=L(u,!0);j(u);var g=z(u),v=L(g),y=L(v,!0);j(v);var b=z(v),x=L(b,!0);j(b),j(g),j(l);var S=z(l,2),w=L(S),T=L(w),E=L(T,!0);j(T);var D=z(T);ki(D);var ee=z(D),te=L(ee,!0);j(ee),j(w);var O=z(w),k=L(O),ne=L(k,!0);j(k);var re=z(k);q(re,21,()=>V(r).folders,Qr,(e,t)=>{var n=uD(),r=L(n,!0);j(n);var i={};B(()=>{G(r,V(t).name),i!==(i=V(t).id)&&(n.value=(n.__value=V(t).id)??``)}),W(e,n)}),j(re),j(O),j(S);var ae=z(S,2),oe=L(ae,!0);j(ae);var se=z(ae,2),ce=L(se);yn(ce);var le=z(ce),ue=L(le),de=L(ue,!0);j(ue);var pe=z(ue),me=e=>{$E(e,{get content(){return V(m)}})};K(pe,e=>{V(C)&&e(me)}),j(le),j(se),j(t),B((e,t,n,r,i,s,l,u,f,p)=>{G(o,e),G(c,t),G(d,n),v.disabled=V(a),G(y,r),b.disabled=i,G(x,s),G(E,l),D.disabled=V(a),J(D,`aria-invalid`,!!V(_)),G(te,V(_)),G(ne,u),re.disabled=V(a),G(oe,f),ce.disabled=V(a),G(de,p)},[()=>Y(V(f)?`templates.edit`:`templates.new_template`),()=>Y(V(A)?`templates.unsaved`:`templates.no_changes`),()=>Y(`templates.save_shortcut`),()=>Y(`common.cancel`),()=>V(a)||!V(p).trim()||!V(h),()=>Y(`templates.save_template`),()=>Y(`templates.name`),()=>Y(`templates.folder`),()=>Y(`templates.content`),()=>Y(`templates.preview`)]),Nr(`submit`,t,e=>{e.preventDefault(),fe()}),H(`click`,v,()=>ie(()=>{})),Fi(D,()=>V(p),e=>F(p,e)),Ci(re,()=>V(h),e=>F(h,e)),Fi(ce,()=>V(m),e=>F(m,e)),Wi(`open`,`toggle`,le,e=>F(C,e),()=>V(C)),W(e,t)},Ne=e=>{var t=pD(),n=R(t),r=L(n),i=L(r);j(r);var o=z(r),s=L(o,!0);j(o);var c=z(o),l=L(c),u=L(l,!0);j(l);var d=z(l),f=L(d,!0);j(d);var p=z(d),m=L(p),h=L(m,!0);j(m);var g=z(m),_=L(g),v=L(_,!0);j(_);var y=z(_),b=L(y,!0);j(y),j(g),j(p),j(c);var x=z(c),C=L(x,!0);j(x),j(n);var w=z(n,2),E=L(w),D=L(E,!0);j(E);var ee=z(E),O=L(ee,!0);j(ee),j(w);var k=z(w,2),ne=L(k),A=e=>{var t=fD(),n=L(t,!0);j(t),B(()=>G(n,V(te).content)),W(e,t)},re=e=>{$E(e,{get content(){return V(te).content}})};K(ne,e=>{V(S)?e(A):e(re,-1)}),j(k),B((e,t,n,r,o,c,p,m,g)=>{G(i,`${V(te).folderName??``} / ${e??``}`),G(s,V(te).name),l.disabled=V(a),G(u,t),d.disabled=V(a),G(f,n),G(h,r),_.disabled=V(a),G(v,o),y.disabled=V(a),G(b,c),G(C,p),G(D,m),J(ee,`aria-pressed`,V(S)),G(O,g)},[()=>Y(`templates.template`),()=>Y(`templates.use`),()=>Y(`templates.edit`),()=>Y(`templates.more`),()=>Y(`templates.duplicate`),()=>Y(`common.remove`),()=>Y(`templates.independent`),()=>Y(`templates.preview`),()=>Y(V(S)?`templates.formatted`:`templates.source`)]),H(`click`,l,()=>F(T,V(te)?.id,!0)),H(`click`,d,()=>de(V(te))),H(`click`,_,()=>de(V(te),!0)),H(`click`,y,()=>he(!1)),H(`click`,ee,()=>F(S,!V(S))),W(e,t)},Pe=e=>{var t=mD(),n=L(t),r=L(n,!0);j(n);var i=z(n),a=L(i,!0);j(i),j(t),B((e,t)=>{G(r,e),G(a,t)},[()=>Y(`templates.select_template`),()=>Y(`templates.preview_hint`)]),W(e,t)};K(je,e=>{V(d)?e(Me):V(te)?e(Ne,1):e(Pe,-1)}),j(Oe),j(t),B((e,r,o,s,c,u,d,f,p,m,h)=>{n=vi(t,1,`library-layout svelte-3z3jlz`,null,n,{"show-detail":V(w)}),J(i,`aria-label`,e),G(g,r),b.disabled=V(a),G(E,o),ne=vi(O,1,`folder-item svelte-3z3jlz`,null,ne,{chosen:!V(l)}),J(O,`aria-pressed`,!V(l)),O.disabled=V(a),G(re,s),G(oe,V(D).length),G(ge,c),J(xe,`aria-label`,u),G(Ce,d),J(we,`placeholder`,f),G(Ee,p),J(Oe,`aria-label`,m),ke.disabled=V(a),G(Ae,`← ${h??``}`)},[()=>Y(`templates.folders`),()=>Y(`templates.folders`),()=>Y(`templates.add_folder`),()=>Y(`templates.all`),()=>Y(`templates.folder_hint`),()=>Y(`templates.menu`),()=>Y(`templates.search`),()=>Y(`templates.search_placeholder`),()=>Y(`templates.result_count`,{count:String(V(k).length)}),()=>Y(`templates.detail`),()=>Y(`templates.back_list`)]),H(`click`,b,()=>pe(`new`)),H(`click`,O,()=>le(``)),Fi(we,()=>V(c),e=>F(c,e)),H(`click`,ke,()=>ie(()=>{F(w,!1)})),W(e,t)};K(Pe,e=>{V(i)?e(Ie,-1):e(Fe)}),j(ye);var Le=z(ye,2),Re=e=>{Wa(e,{open:!0,get initialTemplateId(){return V(T)},onclose:()=>F(T,void 0),onsuccess:e=>{window.location.href=`/?doc=`+encodeURIComponent(e)}})};K(Le,e=>{V(T)&&e(Re)}),B((e,t,n)=>{J(ye,`aria-busy`,V(a)),G(Ce,e),G(Te,t),Ee.disabled=V(a)||!V(i)||!V(r).folders.length,G(De,` ${n??``}`)},[()=>Y(`templates.library`),()=>Y(`templates.library_subtitle`),()=>Y(`templates.new_template`)]),H(`click`,Ee,()=>de()),W(e,_e),Je()}Pr([`click`]);var vD=U(`<div class="app-shell templates-shell svelte-j6d35n"><!> <!></div>`);function yD(e,t){qe(t,!1),Ji(async()=>{try{let e=await fetch(`/api/config`);e.ok&&await Sa((await e.json()).language||`en`)}catch{}}),Gi();var n=vD(),r=L(n);{let e=bt(()=>Y(`templates.library`));Xo(r,{get title(){return V(e)},subtitle:``})}_D(z(r,2),{}),j(n),W(e,n),Je()}var bD=I({tasks:[],notes:[],links:[]}),xD=!1,SD=null;async function CD(){try{let e=await fetch(`/api/survival-kit`);if(e.ok){let t=await e.json();bD.tasks=Array.isArray(t.tasks)?t.tasks:[],bD.notes=Array.isArray(t.notes)?t.notes:[],bD.links=Array.isArray(t.links)?t.links:[]}}catch{}finally{xD=!0}}async function wD(){try{await fetch(`/api/survival-kit`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({tasks:bD.tasks,notes:bD.notes,links:bD.links})})}catch{}}function TD(){xD&&(SD&&clearTimeout(SD),SD=setTimeout(()=>{SD=null,wD()},400))}var ED=U(`<button type="button"> </button>`),DD=U(`<p class="sk-empty svelte-lo2xyl"> </p>`),OD=U(`<div><button type="button" aria-label="toggle"></button> <span class="sk-task-text svelte-lo2xyl"> </span> <span class="sk-task-tag svelte-lo2xyl"> </span> <button type="button" class="sk-task-del svelte-lo2xyl">✕</button></div>`),kD=U(`<div class="sk-panel-head"><h2 class="sk-panel-title"> <span class="sk-accent">.</span></h2> <p class="sk-panel-sub"> </p></div> <div class="sk-add-bar svelte-lo2xyl"><input type="text" class="svelte-lo2xyl"/> <select class="svelte-lo2xyl"><option> </option><option> </option><option> </option></select> <button type="button" class="sk-add-btn svelte-lo2xyl">+</button></div> <div class="sk-filters svelte-lo2xyl"></div> <div class="sk-tasks svelte-lo2xyl"><!></div>`,1);function AD(e,t){qe(t,!0);let n=P(``),r=P(`normal`),i=P(`all`),a=[{key:`all`,label:()=>Y(`survival.tasks_filter_all`)},{key:`todo`,label:()=>Y(`survival.tasks_filter_todo`)},{key:`done`,label:()=>Y(`survival.tasks_filter_done`)},{key:`urgent`,label:()=>Y(`survival.tasks_filter_urgent`)},{key:`normal`,label:()=>Y(`survival.tasks_filter_normal`)},{key:`later`,label:()=>Y(`survival.tasks_filter_later`)}];function o(e){return Y(`survival.tasks_priority_${e}`)}let s=N(()=>bD.tasks.filter(e=>V(i)===`todo`?!e.done:V(i)===`done`?e.done:V(i)===`urgent`||V(i)===`normal`||V(i)===`later`?e.priority===V(i):!0));function c(){let e=V(n).trim();e&&(bD.tasks.unshift({id:Date.now(),text:e,priority:V(r),done:!1}),F(n,``),TD())}function l(e){let t=bD.tasks.find(t=>t.id===e);t&&(t.done=!t.done),TD()}function u(e){bD.tasks=bD.tasks.filter(t=>t.id!==e),TD()}var d=kD(),f=R(d),p=L(f),m=L(p,!0);Ie(),j(p);var h=z(p,2),g=L(h,!0);j(h),j(f);var _=z(f,2),v=L(_);ki(v);var y=z(v,2),b=L(y),x=L(b,!0);j(b),b.value=b.__value=`normal`;var S=z(b),C=L(S,!0);j(S),S.value=S.__value=`urgent`;var w=z(S),T=L(w,!0);j(w),w.value=w.__value=`later`,j(y);var E=z(y,2);j(_);var D=z(_,2);q(D,21,()=>a,Qr,(e,t)=>{var n=ED();let r;var a=L(n,!0);j(n),B(e=>{r=vi(n,1,`svelte-lo2xyl`,null,r,{active:V(i)===V(t).key}),G(a,e)},[()=>V(t).label()]),H(`click`,n,()=>F(i,V(t).key,!0)),W(e,n)}),j(D);var ee=z(D,2),te=L(ee),O=e=>{var t=DD(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`survival.tasks_empty`)]),W(e,t)},k=e=>{var t=Wr();q(R(t),17,()=>V(s),e=>e.id,(e,t)=>{var n=OD();let r;var i=L(n);let a;var s=z(i,2),c=L(s,!0);j(s);var d=z(s,2),f=L(d,!0);j(d);var p=z(d,2);j(n),B((e,o)=>{r=vi(n,1,`sk-task sk-task--${V(t).priority??``}`,`svelte-lo2xyl`,r,{done:V(t).done}),a=vi(i,1,`sk-check svelte-lo2xyl`,null,a,{checked:V(t).done}),G(c,V(t).text),G(f,e),J(p,`title`,o)},[()=>o(V(t).priority),()=>Y(`survival.tasks_delete_title`)]),H(`click`,i,()=>l(V(t).id)),H(`click`,p,()=>u(V(t).id)),W(e,n)}),W(e,t)};K(te,e=>{V(s).length===0?e(O):e(k,-1)}),j(ee),B((e,t,n,r,i,a)=>{G(m,e),G(g,t),J(v,`placeholder`,n),G(x,r),G(C,i),G(T,a)},[()=>Y(`survival.tasks_title`),()=>Y(`survival.tasks_subtitle`),()=>Y(`survival.tasks_input_placeholder`),()=>Y(`survival.tasks_priority_normal`),()=>Y(`survival.tasks_priority_urgent`),()=>Y(`survival.tasks_priority_later`)]),H(`keydown`,v,e=>e.key===`Enter`&&c()),Fi(v,()=>V(n),e=>F(n,e)),Ci(y,()=>V(r),e=>F(r,e)),H(`click`,E,c),W(e,d),Je()}Pr([`keydown`,`click`]);var jD=[`t-green`,`t-violet`,`t-amber`,`t-sky`,`t-rose`,`t-teal`],MD=U(`<div class="sk-modal-backdrop svelte-1rcj86" role="presentation"><div class="sk-modal svelte-1rcj86" role="dialog" aria-modal="true"><h3 class="sk-modal-title svelte-1rcj86"> </h3> <div class="sk-modal-body svelte-1rcj86"><!></div> <div class="sk-modal-actions svelte-1rcj86"><button type="button" class="sk-btn svelte-1rcj86"> </button> <button type="button"> </button></div></div></div>`);function ND(e,t){qe(t,!0);let n=qi(t,`open`,3,!1),r=qi(t,`title`,3,``),i=qi(t,`confirmLabel`,19,()=>Y(`common.save`)),a=qi(t,`danger`,3,!1);function o(e){e.target===e.currentTarget&&t.onClose()}function s(e){e.key===`Escape`&&t.onClose()}var c=Wr(),l=R(c),u=e=>{var n=MD(),c=L(n),l=L(c),u=L(l,!0);j(l);var d=z(l,2);ci(L(d),()=>t.children),j(d);var f=z(d,2),p=L(f),m=L(p,!0);j(p);var h=z(p,2);let g;var _=L(h,!0);j(h),j(f),j(c),j(n),B(e=>{G(u,r()),G(m,e),g=vi(h,1,`sk-btn sk-btn--primary svelte-1rcj86`,null,g,{"sk-btn--danger":a()}),G(_,i())},[()=>Y(`common.cancel`)]),H(`click`,n,o),H(`keydown`,n,s),H(`click`,p,function(...e){t.onClose?.apply(this,e)}),H(`click`,h,function(...e){t.onConfirm?.apply(this,e)}),W(e,n)};K(l,e=>{n()&&e(u)}),W(e,c),Je()}Pr([`click`,`keydown`]);var PD=U(`<p class="sk-empty svelte-hpbata"> </p>`),FD=U(`<strong> </strong>`),ID=U(`<p> </p>`),LD=U(`<div class="sk-pre-wrap svelte-hpbata"><pre> </pre> <button type="button" class="sk-copy svelte-hpbata"> </button></div>`),RD=U(`<li> </li>`),zD=U(`<ul></ul>`),BD=U(`<th> </th>`),VD=U(`<td> </td>`),HD=U(`<tr></tr>`),UD=U(`<div class="sk-table-wrap svelte-hpbata"><table><thead><tr></tr></thead><tbody></tbody></table></div>`),WD=U(`<div class="sk-bloc svelte-hpbata"><div class="sk-bloc-content svelte-hpbata"><!></div> <div class="sk-bloc-actions svelte-hpbata"><button type="button" class="sk-mini svelte-hpbata">✎</button> <button type="button" class="sk-mini sk-mini--del svelte-hpbata">✕</button></div></div>`),GD=U(`<div><div class="sk-note-head svelte-hpbata"><h3 class="svelte-hpbata"> </h3> <div class="sk-note-actions svelte-hpbata"><button type="button" class="sk-mini svelte-hpbata">✎</button> <button type="button" class="sk-mini sk-mini--del svelte-hpbata">✕</button></div> <button type="button" class="sk-toggle svelte-hpbata" aria-label="toggle"><svg viewBox="0 0 10 6" width="10" height="6"><path d="M1 1 L5 5 L9 1" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div> <div class="sk-note-body svelte-hpbata"><!> <div class="sk-note-foot svelte-hpbata"><button type="button" class="sk-add-bloc svelte-hpbata"> </button></div></div></div>`),KD=U(`<option> </option>`),qD=U(`<label for="sk-note-titre"> </label> <input id="sk-note-titre" type="text"/> <label for="sk-note-color"> </label> <select id="sk-note-color"></select>`,1),JD=U(`<input id="sk-bloc-content" type="text"/>`),YD=U(`<textarea id="sk-bloc-content" rows="6"></textarea>`),XD=U(`<label for="sk-bloc-type"> </label> <select id="sk-bloc-type"><option> </option><option> </option><option> </option><option> </option><option> </option></select> <label for="sk-bloc-content"> </label> <!>`,1),ZD=U(`<div class="sk-panel-head"><h2 class="sk-panel-title"> <span class="sk-accent">.</span></h2> <p class="sk-panel-sub"> </p></div> <div class="sk-toolbar svelte-hpbata"><button type="button" class="sk-tool svelte-hpbata"> </button> <button type="button" class="sk-tool svelte-hpbata"> </button> <button type="button" class="sk-tool sk-tool--add svelte-hpbata"> </button></div> <div><!> <!></div> <!> <!>`,1);function QD(e,t){qe(t,!0);let n=P(!1),r=P(I({})),i=P(null),a=P(!1),o=P(-1),s=P(``),c=P(`t-green`),l=P(!1),u=P(-1),d=P(-1),f=P(`p`),p=P(``),m={"t-green":`survival.color_green`,"t-violet":`survival.color_violet`,"t-amber":`survival.color_amber`,"t-sky":`survival.color_sky`,"t-rose":`survival.color_rose`,"t-teal":`survival.color_teal`},h=N(()=>bD.notes.length>0&&bD.notes.every(e=>V(r)[e.id]));function g(e){V(r)[e]=!V(r)[e]}function _(){if(V(h))F(r,{},!0);else{let e={};bD.notes.forEach(t=>e[t.id]=!0),F(r,e,!0)}}function v(){F(o,-1),F(s,``),F(c,`t-green`),F(a,!0)}function y(e){F(o,e,!0),F(s,bD.notes[e].titre,!0),F(c,bD.notes[e].theme,!0),F(a,!0)}function b(){let e=V(s).trim();if(e){if(V(o)===-1){let t=Date.now();bD.notes.push({id:t,theme:V(c),titre:e,blocs:[]}),V(r)[t]=!0}else bD.notes[V(o)].titre=e,bD.notes[V(o)].theme=V(c);TD(),F(a,!1)}}async function x(e){await t.confirmDelete(Y(`survival.confirm_del_note_title`),Y(`survival.confirm_del_note_msg`))&&(bD.notes.splice(e,1),TD())}function S(e){return e.type===`ul`?e.items.join(`
|
|
288
325
|
`):e.type===`table`?[e.headers.join(` | `),...e.rows.map(e=>e.join(` | `))].join(`
|
|
289
|
-
`):e.content}function C(e){F(u,e,!0),F(d,-1),F(f,`p`),F(p,``),F(l,!0)}function w(e,t){F(u,e,!0),F(d,t,!0);let n=
|
|
326
|
+
`):e.content}function C(e){F(u,e,!0),F(d,-1),F(f,`p`),F(p,``),F(l,!0)}function w(e,t){F(u,e,!0),F(d,t,!0);let n=bD.notes[e].blocs[t];F(f,n.type,!0),F(p,S(n),!0),F(l,!0)}function T(){let e=V(p);if(!e.trim())return null;if(V(f)===`ul`){let t=e.split(`
|
|
290
327
|
`).map(e=>e.trim()).filter(Boolean);return t.length?{type:`ul`,items:t}:null}if(V(f)===`table`){let t=e.split(`
|
|
291
|
-
`).map(e=>e.trim()).filter(Boolean);return t.length?{type:`table`,headers:t[0].split(`|`).map(e=>e.trim()),rows:t.slice(1).map(e=>e.split(`|`).map(e=>e.trim()))}:null}return{type:V(f),content:e}}function E(){let e=T();e&&(V(d)===-1?xT.notes[V(u)].blocs.push(e):xT.notes[V(u)].blocs[V(d)]=e,ET(),F(l,!1))}async function D(e,n){await t.confirmDelete(Y(`survival.confirm_del_bloc_title`),Y(`survival.irreversible`))&&(xT.notes[e].blocs.splice(n,1),ET())}async function ee(e,t){try{await navigator.clipboard.writeText(e),F(i,t,!0),setTimeout(()=>F(i,V(i)===t?null:V(i),!0),1500)}catch{}}let te=N(()=>V(f)===`ul`?Y(`survival.modal_bloc_placeholder_ul`):V(f)===`pre`?Y(`survival.modal_bloc_placeholder_pre`):V(f)===`table`?Y(`survival.modal_bloc_placeholder_table`):V(f)===`b`?Y(`survival.modal_bloc_placeholder_b`):Y(`survival.modal_bloc_placeholder_p`));var O=QT(),k=R(O),ne=L(k),A=L(ne,!0);Ie(),j(ne);var re=z(ne,2),ie=L(re,!0);j(re),j(k);var ae=z(k,2),oe=L(ae),se=L(oe,!0);j(oe);var ce=z(oe,2),le=L(ce,!0);j(ce);var ue=z(ce,2),de=L(ue,!0);j(ue),j(ae);var fe=z(ae,2);let pe;var me=L(fe),he=e=>{var t=FT(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`survival.notes_empty`)]),W(e,t)};K(me,e=>{xT.notes.length===0&&e(he)}),q(z(me,2),19,()=>xT.notes,e=>e.id,(e,t,n)=>{let a=N(()=>!V(r)[V(t).id]);var o=KT();let s;var c=L(o),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d),p=z(f,2);j(d);var m=z(d,2);j(c);var h=z(c,2),_=L(h);q(_,17,()=>V(t).blocs,Xr,(e,r,a)=>{var o=GT(),s=L(o),c=L(s),l=e=>{var t=IT(),n=L(t,!0);j(t),B(()=>G(n,V(r).content)),W(e,t)},u=e=>{var t=LT(),n=L(t,!0);j(t),B(()=>G(n,V(r).content)),W(e,t)},d=e=>{let n=N(()=>`${V(t).id}-${a}`);var o=RT(),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o),B(e=>{G(c,V(r).content),G(u,e)},[()=>V(i)===V(n)?Y(`survival.notes_btn_copied`):Y(`survival.notes_btn_copy`)]),H(`click`,l,()=>ee(V(r).content,V(n))),W(e,o)},f=e=>{var t=BT();q(t,21,()=>V(r).items,Xr,(e,t)=>{var n=zT(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(t),W(e,t)},p=e=>{var t=WT(),n=L(t),i=L(n),a=L(i);q(a,21,()=>V(r).headers,Xr,(e,t)=>{var n=VT(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(a),j(i);var o=z(i);q(o,21,()=>V(r).rows,Xr,(e,t)=>{var n=UT();q(n,21,()=>V(t),Xr,(e,t)=>{var n=HT(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(n),W(e,n)}),j(o),j(n),j(t),W(e,t)};K(c,e=>{V(r).type===`b`?e(l):V(r).type===`p`?e(u,1):V(r).type===`pre`?e(d,2):V(r).type===`ul`?e(f,3):V(r).type===`table`&&e(p,4)}),j(s);var m=z(s,2),h=L(m),g=z(h,2);j(m),j(o),H(`click`,h,()=>w(V(n),a)),H(`click`,g,()=>D(V(n),a)),W(e,o)});var v=z(_,2),b=L(v),S=L(b,!0);j(b),j(v),j(h),j(o),B(e=>{s=gi(o,1,`sk-note ${V(t).theme??``}`,`svelte-hpbata`,s,{collapsed:V(a)}),G(u,V(t).titre),G(S,e)},[()=>Y(`survival.notes_btn_add_bloc`)]),H(`click`,f,()=>y(V(n))),H(`click`,p,()=>x(V(n))),H(`click`,m,()=>g(V(t).id)),H(`click`,b,()=>C(V(n))),W(e,o)}),j(fe);var ge=z(fe,2);{let e=N(()=>V(o)===-1?Y(`survival.modal_note_title`):Y(`survival.modal_edit_note_title`)),t=N(()=>V(o)===-1?Y(`common.create`):Y(`common.save`));PT(ge,{get open(){return V(a)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:b,onClose:()=>F(a,!1),children:(e,t)=>{var n=JT(),r=R(n),i=L(r,!0);j(r);var a=z(r,2);Di(a);var o=z(a,2),l=L(o,!0);j(o);var u=z(o,2);q(u,21,()=>MT,Xr,(e,t)=>{var n=qT(),r=L(n,!0);j(n);var i={};B(e=>{G(r,e),i!==(i=V(t))&&(n.value=(n.__value=V(t))??``)},[()=>Y(m[V(t)])]),W(e,n)}),j(u),B((e,t,n)=>{G(i,e),J(a,`placeholder`,t),G(l,n)},[()=>Y(`survival.modal_note_label_title`),()=>Y(`survival.modal_note_placeholder`),()=>Y(`survival.modal_label_color`)]),H(`keydown`,a,e=>e.key===`Enter`&&b()),Ni(a,()=>V(s),e=>F(s,e)),xi(u,()=>V(c),e=>F(c,e)),W(e,n)},$$slots:{default:!0}})}var _e=z(ge,2);{let e=N(()=>V(d)===-1?Y(`survival.modal_bloc_new`):Y(`survival.modal_bloc_edit`)),t=N(()=>Y(`common.save`));PT(_e,{get open(){return V(l)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:E,onClose:()=>F(l,!1),children:(e,t)=>{var n=ZT(),r=R(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o),o.value=o.__value=`b`;var c=z(o),l=L(c,!0);j(c),c.value=c.__value=`p`;var u=z(c),d=L(u,!0);j(u),u.value=u.__value=`pre`;var m=z(u),h=L(m,!0);j(m),m.value=m.__value=`ul`;var g=z(m),_=L(g,!0);j(g),g.value=g.__value=`table`,j(a);var v=z(a,2),y=L(v,!0);j(v);var b=z(v,2),x=e=>{var t=YT();Di(t),B(()=>J(t,`placeholder`,V(te))),H(`keydown`,t,e=>e.key===`Enter`&&E()),Ni(t,()=>V(p),e=>F(p,e)),W(e,t)},S=e=>{var t=XT();yn(t),B(()=>J(t,`placeholder`,V(te))),Ni(t,()=>V(p),e=>F(p,e)),W(e,t)};K(b,e=>{V(f)===`b`?e(x):e(S,-1)}),B((e,t,n,r,a,o,c)=>{G(i,e),G(s,t),G(l,n),G(d,r),G(h,a),G(_,o),G(y,c)},[()=>Y(`survival.modal_bloc_label_type`),()=>Y(`survival.modal_bloc_type_b`),()=>Y(`survival.modal_bloc_type_p`),()=>Y(`survival.modal_bloc_type_pre`),()=>Y(`survival.modal_bloc_type_ul`),()=>Y(`survival.modal_bloc_type_table`),()=>Y(`survival.modal_bloc_label_content`)]),xi(a,()=>V(f),e=>F(f,e)),W(e,n)},$$slots:{default:!0}})}B((e,t,r,i,a)=>{G(A,e),G(ie,t),G(se,r),G(le,i),G(de,a),pe=gi(fe,1,`sk-notes svelte-hpbata`,null,pe,{"edit-mode":V(n)})},[()=>Y(`survival.notes_title`),()=>Y(`survival.notes_subtitle`),()=>V(n)?Y(`survival.btn_read_mode`):Y(`survival.btn_edit_mode`),()=>V(h)?Y(`survival.btn_collapse_all`):Y(`survival.btn_expand_all`),()=>Y(`survival.notes_btn_add`)]),H(`click`,oe,()=>F(n,!V(n))),H(`click`,ce,_),H(`click`,ue,v),W(e,O),Je()}Pr([`click`,`keydown`]);var eE=U(`<p class="sk-empty svelte-1j811iq"> </p>`),tE=U(`<span class="sk-link-desc svelte-1j811iq"> </span>`),nE=U(`<a target="_blank" rel="noopener" class="sk-link svelte-1j811iq"><span class="sk-link-text svelte-1j811iq"><span class="sk-link-name svelte-1j811iq"> </span><!></span> <span class="sk-arrow svelte-1j811iq">↗</span> <span class="sk-link-actions svelte-1j811iq"><button type="button" class="sk-mini svelte-1j811iq">✎</button> <button type="button" class="sk-mini sk-mini--del svelte-1j811iq">✕</button></span></a>`),rE=U(`<section><div class="sk-cat-head svelte-1j811iq"><h3 class="svelte-1j811iq"> </h3> <div class="sk-cat-actions svelte-1j811iq"><button type="button" class="sk-mini svelte-1j811iq">+</button> <button type="button" class="sk-mini sk-mini--del svelte-1j811iq">✕</button></div> <button type="button" class="sk-toggle svelte-1j811iq" aria-label="toggle"><svg viewBox="0 0 10 6" width="10" height="6"><path d="M1 1 L5 5 L9 1" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div> <div class="sk-links svelte-1j811iq"></div></section>`),iE=U(`<option> </option>`),aE=U(`<label for="sk-cat-name"> </label> <input id="sk-cat-name" type="text"/> <label for="sk-cat-color"> </label> <select id="sk-cat-color"></select>`,1),oE=U(`<label for="sk-link-nom"> </label> <input id="sk-link-nom" type="text"/> <label for="sk-link-desc"> </label> <input id="sk-link-desc" type="text"/> <label for="sk-link-url"> </label> <input id="sk-link-url" type="text" placeholder="https://…"/>`,1),sE=U(`<div class="sk-panel-head"><h2 class="sk-panel-title"> <span class="sk-accent">.</span></h2> <p class="sk-panel-sub"> </p></div> <div class="sk-toolbar svelte-1j811iq"><button type="button" class="sk-tool svelte-1j811iq"> </button> <button type="button" class="sk-tool svelte-1j811iq"> </button> <button type="button" class="sk-tool sk-tool--add svelte-1j811iq"> </button></div> <div><!> <!></div> <!> <!>`,1);function cE(e,t){qe(t,!0);let n=P(!1),r=P(I({})),i=P(!1),a=P(``),o=P(`t-green`),s=P(!1),c=P(-1),l=P(-1),u=P(``),d=P(``),f=P(``),p={"t-green":`survival.color_green`,"t-violet":`survival.color_violet`,"t-amber":`survival.color_amber`,"t-sky":`survival.color_sky`,"t-rose":`survival.color_rose`,"t-teal":`survival.color_teal`},m=N(()=>xT.links.length>0&&xT.links.every(e=>V(r)[e.titre]));function h(e){V(r)[e]=!V(r)[e]}function g(){if(V(m))F(r,{},!0);else{let e={};xT.links.forEach(t=>e[t.titre]=!0),F(r,e,!0)}}function _(){F(a,``),F(o,`t-green`),F(i,!0)}function v(){let e=V(a).trim();e&&(xT.links.push({theme:V(o),titre:e,liens:[]}),ET(),F(i,!1))}async function y(e){xT.links[e],await t.confirmDelete(Y(`survival.confirm_del_cat_title`),Y(`survival.confirm_del_cat_msg`))&&(xT.links.splice(e,1),ET())}function b(e){F(c,e,!0),F(l,-1),F(u,``),F(d,``),F(f,``),F(s,!0)}function x(e,t,n){e.preventDefault();let r=xT.links[t].liens[n];F(c,t,!0),F(l,n,!0),F(u,r.nom,!0),F(d,r.desc,!0),F(f,r.url,!0),F(s,!0)}function S(){let e=V(u).trim(),t=V(f).trim();if(!e||!t)return;let n={nom:e,desc:V(d).trim(),url:t};V(l)===-1?xT.links[V(c)].liens.push(n):xT.links[V(c)].liens[V(l)]=n,ET(),F(s,!1)}async function C(e,n,r){e.preventDefault(),await t.confirmDelete(Y(`survival.confirm_del_link_title`),Y(`survival.irreversible`))&&(xT.links[n].liens.splice(r,1),ET())}var w=sE(),T=R(w),E=L(T),D=L(E,!0);Ie(),j(E);var ee=z(E,2),te=L(ee,!0);j(ee),j(T);var O=z(T,2),k=L(O),ne=L(k,!0);j(k);var A=z(k,2),re=L(A,!0);j(A);var ie=z(A,2),ae=L(ie,!0);j(ie),j(O);var oe=z(O,2);let se;var ce=L(oe),le=e=>{var t=eE(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`survival.links_empty`)]),W(e,t)};K(ce,e=>{xT.links.length===0&&e(le)}),q(z(ce,2),19,()=>xT.links,(e,t)=>e.titre+t,(e,t,n)=>{let i=N(()=>!V(r)[V(t).titre]);var a=rE();let o;var s=L(a),c=L(s),l=L(c,!0);j(c);var u=z(c,2),d=L(u),f=z(d,2);j(u);var p=z(u,2);j(s);var m=z(s,2);q(m,21,()=>V(t).liens,Xr,(e,t,r)=>{var i=nE(),a=L(i),o=L(a),s=L(o,!0);j(o);var c=z(o),l=e=>{var n=tE(),r=L(n);j(n),B(()=>G(r,`— ${V(t).desc??``}`)),W(e,n)};K(c,e=>{V(t).desc&&e(l)}),j(a);var u=z(a,4),d=L(u),f=z(d,2);j(u),j(i),B((e,n)=>{J(i,`href`,V(t).url),G(s,V(t).nom),J(d,`title`,e),J(f,`title`,n)},[()=>Y(`survival.links_edit_link_title`),()=>Y(`survival.links_del_link_title`)]),H(`click`,d,e=>x(e,V(n),r)),H(`click`,f,e=>C(e,V(n),r)),W(e,i)}),j(m),j(a),B((e,n)=>{o=gi(a,1,`sk-cat ${V(t).theme??``}`,`svelte-1j811iq`,o,{collapsed:V(i)}),G(l,V(t).titre),J(d,`title`,e),J(f,`title`,n)},[()=>Y(`survival.links_add_link_title`),()=>Y(`survival.links_del_cat_title`)]),H(`click`,d,()=>b(V(n))),H(`click`,f,()=>y(V(n))),H(`click`,p,()=>h(V(t).titre)),W(e,a)}),j(oe);var ue=z(oe,2);{let e=N(()=>Y(`survival.modal_cat_title`)),t=N(()=>Y(`common.add`));PT(ue,{get open(){return V(i)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:v,onClose:()=>F(i,!1),children:(e,t)=>{var n=aE(),r=R(n),i=L(r,!0);j(r);var s=z(r,2);Di(s);var c=z(s,2),l=L(c,!0);j(c);var u=z(c,2);q(u,21,()=>MT,Xr,(e,t)=>{var n=iE(),r=L(n,!0);j(n);var i={};B(e=>{G(r,e),i!==(i=V(t))&&(n.value=(n.__value=V(t))??``)},[()=>Y(p[V(t)])]),W(e,n)}),j(u),B((e,t,n)=>{G(i,e),J(s,`placeholder`,t),G(l,n)},[()=>Y(`survival.modal_cat_label_name`),()=>Y(`survival.modal_cat_placeholder_name`),()=>Y(`survival.modal_label_color`)]),H(`keydown`,s,e=>e.key===`Enter`&&v()),Ni(s,()=>V(a),e=>F(a,e)),xi(u,()=>V(o),e=>F(o,e)),W(e,n)},$$slots:{default:!0}})}var de=z(ue,2);{let e=N(()=>V(l)===-1?Y(`survival.modal_link_title`):Y(`survival.modal_edit_link_title`)),t=N(()=>V(l)===-1?Y(`common.add`):Y(`common.save`));PT(de,{get open(){return V(s)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:S,onClose:()=>F(s,!1),children:(e,t)=>{var n=oE(),r=R(n),i=L(r,!0);j(r);var a=z(r,2);Di(a);var o=z(a,2),s=L(o,!0);j(o);var c=z(o,2);Di(c);var l=z(c,2),p=L(l,!0);j(l);var m=z(l,2);Di(m),B((e,t,n,r,o)=>{G(i,e),J(a,`placeholder`,t),G(s,n),J(c,`placeholder`,r),G(p,o)},[()=>Y(`survival.modal_link_label_name`),()=>Y(`survival.modal_link_placeholder_name`),()=>Y(`survival.modal_link_label_desc`),()=>Y(`survival.modal_link_placeholder_desc`),()=>Y(`survival.modal_link_label_url`)]),Ni(a,()=>V(u),e=>F(u,e)),Ni(c,()=>V(d),e=>F(d,e)),H(`keydown`,m,e=>e.key===`Enter`&&S()),Ni(m,()=>V(f),e=>F(f,e)),W(e,n)},$$slots:{default:!0}})}B((e,t,r,i,a)=>{G(D,e),G(te,t),G(ne,r),G(re,i),G(ae,a),se=gi(oe,1,`sk-cats svelte-1j811iq`,null,se,{"edit-mode":V(n)})},[()=>Y(`survival.links_title`),()=>Y(`survival.links_subtitle`),()=>V(n)?Y(`survival.btn_read_mode`):Y(`survival.btn_edit_mode`),()=>V(m)?Y(`survival.btn_collapse_all`):Y(`survival.btn_expand_all`),()=>Y(`survival.links_btn_add_cat`)]),H(`click`,k,()=>F(n,!V(n))),H(`click`,A,g),H(`click`,ie,_),W(e,w),Je()}Pr([`click`,`keydown`]);var lE=U(`<button class="ghost-button"><i class="fa-solid fa-cloud"></i></button> <button title="Toggle dark mode" class="ghost-button" aria-label="Toggle dark mode"> </button>`,1),uE=U(`<p class="sk-loading svelte-ha6eja"> </p>`),dE=U(`<div class="sk-grid svelte-ha6eja"><section class="sk-col svelte-ha6eja"><div class="sk-inner svelte-ha6eja"><!></div></section> <section class="sk-col svelte-ha6eja"><div class="sk-inner svelte-ha6eja"><!></div></section> <section class="sk-col svelte-ha6eja"><div class="sk-inner svelte-ha6eja"><!></div></section></div>`),fE=U(`<!> <div class="app-shell sk-root svelte-ha6eja"><!> <!></div> <!>`,1);function pE(e,t){qe(t,!0);let n=P(null),r=P(!1),i=P(!1),a=P(!1);async function o(e,t){return V(n).show({title:e,message:t,confirmLabel:Y(`survival.irreversible_delete`),cancelLabel:Y(`common.cancel`),danger:!0})}function s(e){F(i,e,!0),document.documentElement.classList.toggle(`dark`,e)}function c(){let e=!1;try{let t=localStorage.getItem(`ld-dark`);e=t===null?window.matchMedia(`(prefers-color-scheme: dark)`).matches:t===`true`}catch{}s(e)}function l(){s(!V(i));try{localStorage.setItem(`ld-dark`,String(V(i)))}catch{}}Gi(async()=>{c();try{await ya((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}await wT(),F(r,!0)});var u=fE(),d=R(u);Vi(Ua(d,{}),e=>F(n,e,!0),()=>V(n));var f=z(d,2),p=L(f);{let e=e=>{var t=lE(),n=R(t),r=z(n,2),o=L(r,!0);j(r),B((e,t)=>{J(n,`title`,e),J(n,`aria-label`,t),G(o,V(i)?`☀`:`☾`)},[()=>Y(`nav.word_cloud`),()=>Y(`nav.word_cloud`)]),H(`click`,n,()=>F(a,!0)),H(`click`,r,l),W(e,t)},t=N(()=>Y(`survival.title`)),n=N(()=>Y(`survival.subtitle`));Qo(p,{get title(){return V(t)},get subtitle(){return V(n)},actions:e,$$slots:{actions:!0}})}var m=z(p,2),h=e=>{var t=uE(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},g=e=>{var t=dE(),n=L(t),r=L(n);jT(L(r),{}),j(r),j(n);var i=z(n,2),a=L(i);$T(L(a),{confirmDelete:o}),j(a),j(i);var s=z(i,2),c=L(s);cE(L(c),{confirmDelete:o}),j(c),j(s),j(t),W(e,t)};K(m,e=>{V(r)?e(g,-1):e(h)}),j(f),Bw(z(f,2),{get open(){return V(a)},onclose:()=>F(a,!1)}),W(e,u),Je()}Pr([`click`]);var mE=`git-integration-config`,hE=`git-integration-status`,gE=`git-integration-save`,_E=`/admin#git-integration`,vE=120*1e3,yE=!1,bE=!1;function xE(e){let t=Date.parse(e);return Number.isFinite(t)&&Date.now()-t<vE}function SE(e){let t=e.toLowerCase();return t.includes(`cannot lock ref 'head'`)&&t.includes(`but expected`)?`un autre commit a modifié HEAD pendant l'autocommit. Réessayez l'enregistrement.`:e}async function CE(){if(!yE){yE=!0;try{let e=await fetch(`/api/git/status`,{cache:`no-store`});if(!e.ok)return;let t=await e.json();if(t.mode===`unconfigured`){Eo(`Veuillez configurer l'intégration Git dans la page Admin.`,`error`,600*1e3,{id:mE,href:_E,linkLabel:`Admin`}),_o(hE),_o(gE);return}if(_o(mE),t.mode===`disabled`){_o(hE),_o(gE);return}if(!t.ok){Eo(`Intégration Git : ${t.message}`,`error`,600*1e3,{id:hE,href:_E,linkLabel:`Admin`});return}if(t.dirtyOutsideDocsCount>0){let e=t.docsFolder?.trim()||`docsFolder`;Eo(`Git : ${t.dirtyOutsideDocsCount} changement(s) hors ${e} seront ignorés par Living Documentation.`,`error`,600*1e3,hE)}else _o(hE);let n=t.lastSave;n&&xE(n.timestamp)&&(n.error||n.warning)?Eo(`Git : ${SE(n.error||n.warning||``)}`,`error`,600*1e3,{id:gE,href:_E,linkLabel:`Admin`}):_o(gE)}catch{}finally{yE=!1}}}function wE(){if(bE)return;bE=!0;let e=window.fetch.bind(window);window.fetch=async(t,n)=>{let r=await e(t,n),i=typeof t==`string`?t:t instanceof URL?t.toString():t.url;return(n?.method||(t instanceof Request?t.method:`GET`)).toUpperCase()!==`GET`&&!i.includes(`/api/git/`)&&(i.startsWith(`/api/`)||i.startsWith(`/mcp`)||i.startsWith(window.location.origin))&&window.setTimeout(()=>void CE(),80),r}}var TE=U(`<p style="padding:2rem"> </p>`);function EE(e,t){qe(t,!0);function n(e){return e.length>1?e.replace(/\/+$/,``):e}let r=new Set([`/`,`/admin`,`/workspace`,`/blueprint`,`/diagram`,`/shape-editor`,`/context`,`/files`,`/survival-kit`]),i=P(I(n(window.location.pathname)));function a(e){let t=new URL(e,window.location.href),r=n(t.pathname),a=`${r}${t.search}${t.hash}`;if(a===`${window.location.pathname}${window.location.search}${window.location.hash}`){wo();return}history.pushState(null,``,a),F(i,r,!0),wo(),CE(),window.dispatchEvent(new PopStateEvent(`popstate`))}function o(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target instanceof Element?e.target.closest(`a[href]`):null;if(!(t instanceof HTMLAnchorElement)||t.target||t.hasAttribute(`download`))return;let i=new URL(t.href,window.location.href);if(i.origin!==window.location.origin)return;let o=n(i.pathname);r.has(o)&&(e.preventDefault(),a(`${o}${i.search}${i.hash}`))}Gi(()=>(wo(),wE(),CE(),document.addEventListener(`click`,o,!0),()=>{document.removeEventListener(`click`,o,!0)})),window.addEventListener(`popstate`,()=>{F(i,n(window.location.pathname),!0),wo(),CE()}),kn(()=>{V(i)===`/blueprint`?document.documentElement.setAttribute(`data-blueprint`,``):document.documentElement.removeAttribute(`data-blueprint`)});function s(e){a(e)}var c=Wr(),l=R(c),u=e=>{Ss(e,{navigate:s})},d=e=>{rp(e,{})},f=e=>{Ag(e,{})},p=e=>{Hg(e,{})},m=e=>{S_(e,{navigate:s})},h=e=>{$w(e,{})},g=e=>{iT(e,{})},_=e=>{bT(e,{})},v=e=>{pE(e,{})},y=e=>{qw(e,{})},b=e=>{var t=TE(),n=L(t);j(t),B(()=>G(n,`Route "${V(i)??``}" — not yet migrated.`)),W(e,t)};K(l,e=>{V(i)===`/admin`?e(u):V(i)===`/blueprint`?e(d,1):V(i)===`/workspace`?e(f,2):V(i)===`/files`?e(p,3):V(i)===`/context`?e(m,4):V(i)===`/diagram`?e(h,5):V(i)===`/graph`?e(g,6):V(i)===`/shape-editor`?e(_,7):V(i)===`/survival-kit`?e(v,8):V(i)===`/`?e(y,9):e(b,-1)}),W(e,c),Je()}var DE=new Set,OE=!1;function kE(e){DE.add(e)}function AE(){if(OE)return;OE=!0;let e=window.fetch.bind(window);window.fetch=async(t,n)=>{let r=await e(t,n);try{let e=typeof t==`string`?t:t instanceof URL?t.toString():t.url;(n?.method||(t instanceof Request?t.method:`GET`)).toUpperCase()===`GET`&&/\/api\/config(?:\?|$)/.test(e)&&r.clone().json().then(e=>{for(let t of DE)try{t(e)}catch{}}).catch(()=>{})}catch{}return r}}rs(),kE(e=>is(e)),kE(e=>Wo.syncFromConfig(e)),kE(ha),AE(),wo(),ya(va()).finally(()=>{Gr(EE,{target:document.getElementById(`app`)})});export{fT as a,gT as c,aT as d,dd as f,pT as i,_T as l,Y as m,dT as n,hT as o,ya as p,mT as r,uT as s,sT as t,oT as u};
|
|
328
|
+
`).map(e=>e.trim()).filter(Boolean);return t.length?{type:`table`,headers:t[0].split(`|`).map(e=>e.trim()),rows:t.slice(1).map(e=>e.split(`|`).map(e=>e.trim()))}:null}return{type:V(f),content:e}}function E(){let e=T();e&&(V(d)===-1?bD.notes[V(u)].blocs.push(e):bD.notes[V(u)].blocs[V(d)]=e,TD(),F(l,!1))}async function D(e,n){await t.confirmDelete(Y(`survival.confirm_del_bloc_title`),Y(`survival.irreversible`))&&(bD.notes[e].blocs.splice(n,1),TD())}async function ee(e,t){try{await navigator.clipboard.writeText(e),F(i,t,!0),setTimeout(()=>F(i,V(i)===t?null:V(i),!0),1500)}catch{}}let te=N(()=>V(f)===`ul`?Y(`survival.modal_bloc_placeholder_ul`):V(f)===`pre`?Y(`survival.modal_bloc_placeholder_pre`):V(f)===`table`?Y(`survival.modal_bloc_placeholder_table`):V(f)===`b`?Y(`survival.modal_bloc_placeholder_b`):Y(`survival.modal_bloc_placeholder_p`));var O=ZD(),k=R(O),ne=L(k),A=L(ne,!0);Ie(),j(ne);var re=z(ne,2),ie=L(re,!0);j(re),j(k);var ae=z(k,2),oe=L(ae),se=L(oe,!0);j(oe);var ce=z(oe,2),le=L(ce,!0);j(ce);var ue=z(ce,2),de=L(ue,!0);j(ue),j(ae);var fe=z(ae,2);let pe;var me=L(fe),he=e=>{var t=PD(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`survival.notes_empty`)]),W(e,t)};K(me,e=>{bD.notes.length===0&&e(he)}),q(z(me,2),19,()=>bD.notes,e=>e.id,(e,t,n)=>{let a=N(()=>!V(r)[V(t).id]);var o=GD();let s;var c=L(o),l=L(c),u=L(l,!0);j(l);var d=z(l,2),f=L(d),p=z(f,2);j(d);var m=z(d,2);j(c);var h=z(c,2),_=L(h);q(_,17,()=>V(t).blocs,Qr,(e,r,a)=>{var o=WD(),s=L(o),c=L(s),l=e=>{var t=FD(),n=L(t,!0);j(t),B(()=>G(n,V(r).content)),W(e,t)},u=e=>{var t=ID(),n=L(t,!0);j(t),B(()=>G(n,V(r).content)),W(e,t)},d=e=>{let n=N(()=>`${V(t).id}-${a}`);var o=LD(),s=L(o),c=L(s,!0);j(s);var l=z(s,2),u=L(l,!0);j(l),j(o),B(e=>{G(c,V(r).content),G(u,e)},[()=>V(i)===V(n)?Y(`survival.notes_btn_copied`):Y(`survival.notes_btn_copy`)]),H(`click`,l,()=>ee(V(r).content,V(n))),W(e,o)},f=e=>{var t=zD();q(t,21,()=>V(r).items,Qr,(e,t)=>{var n=RD(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(t),W(e,t)},p=e=>{var t=UD(),n=L(t),i=L(n),a=L(i);q(a,21,()=>V(r).headers,Qr,(e,t)=>{var n=BD(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(a),j(i);var o=z(i);q(o,21,()=>V(r).rows,Qr,(e,t)=>{var n=HD();q(n,21,()=>V(t),Qr,(e,t)=>{var n=VD(),r=L(n,!0);j(n),B(()=>G(r,V(t))),W(e,n)}),j(n),W(e,n)}),j(o),j(n),j(t),W(e,t)};K(c,e=>{V(r).type===`b`?e(l):V(r).type===`p`?e(u,1):V(r).type===`pre`?e(d,2):V(r).type===`ul`?e(f,3):V(r).type===`table`&&e(p,4)}),j(s);var m=z(s,2),h=L(m),g=z(h,2);j(m),j(o),H(`click`,h,()=>w(V(n),a)),H(`click`,g,()=>D(V(n),a)),W(e,o)});var v=z(_,2),b=L(v),S=L(b,!0);j(b),j(v),j(h),j(o),B(e=>{s=vi(o,1,`sk-note ${V(t).theme??``}`,`svelte-hpbata`,s,{collapsed:V(a)}),G(u,V(t).titre),G(S,e)},[()=>Y(`survival.notes_btn_add_bloc`)]),H(`click`,f,()=>y(V(n))),H(`click`,p,()=>x(V(n))),H(`click`,m,()=>g(V(t).id)),H(`click`,b,()=>C(V(n))),W(e,o)}),j(fe);var ge=z(fe,2);{let e=N(()=>V(o)===-1?Y(`survival.modal_note_title`):Y(`survival.modal_edit_note_title`)),t=N(()=>V(o)===-1?Y(`common.create`):Y(`common.save`));ND(ge,{get open(){return V(a)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:b,onClose:()=>F(a,!1),children:(e,t)=>{var n=qD(),r=R(n),i=L(r,!0);j(r);var a=z(r,2);ki(a);var o=z(a,2),l=L(o,!0);j(o);var u=z(o,2);q(u,21,()=>jD,Qr,(e,t)=>{var n=KD(),r=L(n,!0);j(n);var i={};B(e=>{G(r,e),i!==(i=V(t))&&(n.value=(n.__value=V(t))??``)},[()=>Y(m[V(t)])]),W(e,n)}),j(u),B((e,t,n)=>{G(i,e),J(a,`placeholder`,t),G(l,n)},[()=>Y(`survival.modal_note_label_title`),()=>Y(`survival.modal_note_placeholder`),()=>Y(`survival.modal_label_color`)]),H(`keydown`,a,e=>e.key===`Enter`&&b()),Fi(a,()=>V(s),e=>F(s,e)),Ci(u,()=>V(c),e=>F(c,e)),W(e,n)},$$slots:{default:!0}})}var _e=z(ge,2);{let e=N(()=>V(d)===-1?Y(`survival.modal_bloc_new`):Y(`survival.modal_bloc_edit`)),t=N(()=>Y(`common.save`));ND(_e,{get open(){return V(l)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:E,onClose:()=>F(l,!1),children:(e,t)=>{var n=XD(),r=R(n),i=L(r,!0);j(r);var a=z(r,2),o=L(a),s=L(o,!0);j(o),o.value=o.__value=`b`;var c=z(o),l=L(c,!0);j(c),c.value=c.__value=`p`;var u=z(c),d=L(u,!0);j(u),u.value=u.__value=`pre`;var m=z(u),h=L(m,!0);j(m),m.value=m.__value=`ul`;var g=z(m),_=L(g,!0);j(g),g.value=g.__value=`table`,j(a);var v=z(a,2),y=L(v,!0);j(v);var b=z(v,2),x=e=>{var t=JD();ki(t),B(()=>J(t,`placeholder`,V(te))),H(`keydown`,t,e=>e.key===`Enter`&&E()),Fi(t,()=>V(p),e=>F(p,e)),W(e,t)},S=e=>{var t=YD();yn(t),B(()=>J(t,`placeholder`,V(te))),Fi(t,()=>V(p),e=>F(p,e)),W(e,t)};K(b,e=>{V(f)===`b`?e(x):e(S,-1)}),B((e,t,n,r,a,o,c)=>{G(i,e),G(s,t),G(l,n),G(d,r),G(h,a),G(_,o),G(y,c)},[()=>Y(`survival.modal_bloc_label_type`),()=>Y(`survival.modal_bloc_type_b`),()=>Y(`survival.modal_bloc_type_p`),()=>Y(`survival.modal_bloc_type_pre`),()=>Y(`survival.modal_bloc_type_ul`),()=>Y(`survival.modal_bloc_type_table`),()=>Y(`survival.modal_bloc_label_content`)]),Ci(a,()=>V(f),e=>F(f,e)),W(e,n)},$$slots:{default:!0}})}B((e,t,r,i,a)=>{G(A,e),G(ie,t),G(se,r),G(le,i),G(de,a),pe=vi(fe,1,`sk-notes svelte-hpbata`,null,pe,{"edit-mode":V(n)})},[()=>Y(`survival.notes_title`),()=>Y(`survival.notes_subtitle`),()=>V(n)?Y(`survival.btn_read_mode`):Y(`survival.btn_edit_mode`),()=>V(h)?Y(`survival.btn_collapse_all`):Y(`survival.btn_expand_all`),()=>Y(`survival.notes_btn_add`)]),H(`click`,oe,()=>F(n,!V(n))),H(`click`,ce,_),H(`click`,ue,v),W(e,O),Je()}Pr([`click`,`keydown`]);var $D=U(`<p class="sk-empty svelte-1j811iq"> </p>`),eO=U(`<span class="sk-link-desc svelte-1j811iq"> </span>`),tO=U(`<a target="_blank" rel="noopener" class="sk-link svelte-1j811iq"><span class="sk-link-text svelte-1j811iq"><span class="sk-link-name svelte-1j811iq"> </span><!></span> <span class="sk-arrow svelte-1j811iq">↗</span> <span class="sk-link-actions svelte-1j811iq"><button type="button" class="sk-mini svelte-1j811iq">✎</button> <button type="button" class="sk-mini sk-mini--del svelte-1j811iq">✕</button></span></a>`),nO=U(`<section><div class="sk-cat-head svelte-1j811iq"><h3 class="svelte-1j811iq"> </h3> <div class="sk-cat-actions svelte-1j811iq"><button type="button" class="sk-mini svelte-1j811iq">+</button> <button type="button" class="sk-mini sk-mini--del svelte-1j811iq">✕</button></div> <button type="button" class="sk-toggle svelte-1j811iq" aria-label="toggle"><svg viewBox="0 0 10 6" width="10" height="6"><path d="M1 1 L5 5 L9 1" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div> <div class="sk-links svelte-1j811iq"></div></section>`),rO=U(`<option> </option>`),iO=U(`<label for="sk-cat-name"> </label> <input id="sk-cat-name" type="text"/> <label for="sk-cat-color"> </label> <select id="sk-cat-color"></select>`,1),aO=U(`<label for="sk-link-nom"> </label> <input id="sk-link-nom" type="text"/> <label for="sk-link-desc"> </label> <input id="sk-link-desc" type="text"/> <label for="sk-link-url"> </label> <input id="sk-link-url" type="text" placeholder="https://…"/>`,1),oO=U(`<div class="sk-panel-head"><h2 class="sk-panel-title"> <span class="sk-accent">.</span></h2> <p class="sk-panel-sub"> </p></div> <div class="sk-toolbar svelte-1j811iq"><button type="button" class="sk-tool svelte-1j811iq"> </button> <button type="button" class="sk-tool svelte-1j811iq"> </button> <button type="button" class="sk-tool sk-tool--add svelte-1j811iq"> </button></div> <div><!> <!></div> <!> <!>`,1);function sO(e,t){qe(t,!0);let n=P(!1),r=P(I({})),i=P(!1),a=P(``),o=P(`t-green`),s=P(!1),c=P(-1),l=P(-1),u=P(``),d=P(``),f=P(``),p={"t-green":`survival.color_green`,"t-violet":`survival.color_violet`,"t-amber":`survival.color_amber`,"t-sky":`survival.color_sky`,"t-rose":`survival.color_rose`,"t-teal":`survival.color_teal`},m=N(()=>bD.links.length>0&&bD.links.every(e=>V(r)[e.titre]));function h(e){V(r)[e]=!V(r)[e]}function g(){if(V(m))F(r,{},!0);else{let e={};bD.links.forEach(t=>e[t.titre]=!0),F(r,e,!0)}}function _(){F(a,``),F(o,`t-green`),F(i,!0)}function v(){let e=V(a).trim();e&&(bD.links.push({theme:V(o),titre:e,liens:[]}),TD(),F(i,!1))}async function y(e){bD.links[e],await t.confirmDelete(Y(`survival.confirm_del_cat_title`),Y(`survival.confirm_del_cat_msg`))&&(bD.links.splice(e,1),TD())}function b(e){F(c,e,!0),F(l,-1),F(u,``),F(d,``),F(f,``),F(s,!0)}function x(e,t,n){e.preventDefault();let r=bD.links[t].liens[n];F(c,t,!0),F(l,n,!0),F(u,r.nom,!0),F(d,r.desc,!0),F(f,r.url,!0),F(s,!0)}function S(){let e=V(u).trim(),t=V(f).trim();if(!e||!t)return;let n={nom:e,desc:V(d).trim(),url:t};V(l)===-1?bD.links[V(c)].liens.push(n):bD.links[V(c)].liens[V(l)]=n,TD(),F(s,!1)}async function C(e,n,r){e.preventDefault(),await t.confirmDelete(Y(`survival.confirm_del_link_title`),Y(`survival.irreversible`))&&(bD.links[n].liens.splice(r,1),TD())}var w=oO(),T=R(w),E=L(T),D=L(E,!0);Ie(),j(E);var ee=z(E,2),te=L(ee,!0);j(ee),j(T);var O=z(T,2),k=L(O),ne=L(k,!0);j(k);var A=z(k,2),re=L(A,!0);j(A);var ie=z(A,2),ae=L(ie,!0);j(ie),j(O);var oe=z(O,2);let se;var ce=L(oe),le=e=>{var t=$D(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`survival.links_empty`)]),W(e,t)};K(ce,e=>{bD.links.length===0&&e(le)}),q(z(ce,2),19,()=>bD.links,(e,t)=>e.titre+t,(e,t,n)=>{let i=N(()=>!V(r)[V(t).titre]);var a=nO();let o;var s=L(a),c=L(s),l=L(c,!0);j(c);var u=z(c,2),d=L(u),f=z(d,2);j(u);var p=z(u,2);j(s);var m=z(s,2);q(m,21,()=>V(t).liens,Qr,(e,t,r)=>{var i=tO(),a=L(i),o=L(a),s=L(o,!0);j(o);var c=z(o),l=e=>{var n=eO(),r=L(n);j(n),B(()=>G(r,`— ${V(t).desc??``}`)),W(e,n)};K(c,e=>{V(t).desc&&e(l)}),j(a);var u=z(a,4),d=L(u),f=z(d,2);j(u),j(i),B((e,n)=>{J(i,`href`,V(t).url),G(s,V(t).nom),J(d,`title`,e),J(f,`title`,n)},[()=>Y(`survival.links_edit_link_title`),()=>Y(`survival.links_del_link_title`)]),H(`click`,d,e=>x(e,V(n),r)),H(`click`,f,e=>C(e,V(n),r)),W(e,i)}),j(m),j(a),B((e,n)=>{o=vi(a,1,`sk-cat ${V(t).theme??``}`,`svelte-1j811iq`,o,{collapsed:V(i)}),G(l,V(t).titre),J(d,`title`,e),J(f,`title`,n)},[()=>Y(`survival.links_add_link_title`),()=>Y(`survival.links_del_cat_title`)]),H(`click`,d,()=>b(V(n))),H(`click`,f,()=>y(V(n))),H(`click`,p,()=>h(V(t).titre)),W(e,a)}),j(oe);var ue=z(oe,2);{let e=N(()=>Y(`survival.modal_cat_title`)),t=N(()=>Y(`common.add`));ND(ue,{get open(){return V(i)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:v,onClose:()=>F(i,!1),children:(e,t)=>{var n=iO(),r=R(n),i=L(r,!0);j(r);var s=z(r,2);ki(s);var c=z(s,2),l=L(c,!0);j(c);var u=z(c,2);q(u,21,()=>jD,Qr,(e,t)=>{var n=rO(),r=L(n,!0);j(n);var i={};B(e=>{G(r,e),i!==(i=V(t))&&(n.value=(n.__value=V(t))??``)},[()=>Y(p[V(t)])]),W(e,n)}),j(u),B((e,t,n)=>{G(i,e),J(s,`placeholder`,t),G(l,n)},[()=>Y(`survival.modal_cat_label_name`),()=>Y(`survival.modal_cat_placeholder_name`),()=>Y(`survival.modal_label_color`)]),H(`keydown`,s,e=>e.key===`Enter`&&v()),Fi(s,()=>V(a),e=>F(a,e)),Ci(u,()=>V(o),e=>F(o,e)),W(e,n)},$$slots:{default:!0}})}var de=z(ue,2);{let e=N(()=>V(l)===-1?Y(`survival.modal_link_title`):Y(`survival.modal_edit_link_title`)),t=N(()=>V(l)===-1?Y(`common.add`):Y(`common.save`));ND(de,{get open(){return V(s)},get title(){return V(e)},get confirmLabel(){return V(t)},onConfirm:S,onClose:()=>F(s,!1),children:(e,t)=>{var n=aO(),r=R(n),i=L(r,!0);j(r);var a=z(r,2);ki(a);var o=z(a,2),s=L(o,!0);j(o);var c=z(o,2);ki(c);var l=z(c,2),p=L(l,!0);j(l);var m=z(l,2);ki(m),B((e,t,n,r,o)=>{G(i,e),J(a,`placeholder`,t),G(s,n),J(c,`placeholder`,r),G(p,o)},[()=>Y(`survival.modal_link_label_name`),()=>Y(`survival.modal_link_placeholder_name`),()=>Y(`survival.modal_link_label_desc`),()=>Y(`survival.modal_link_placeholder_desc`),()=>Y(`survival.modal_link_label_url`)]),Fi(a,()=>V(u),e=>F(u,e)),Fi(c,()=>V(d),e=>F(d,e)),H(`keydown`,m,e=>e.key===`Enter`&&S()),Fi(m,()=>V(f),e=>F(f,e)),W(e,n)},$$slots:{default:!0}})}B((e,t,r,i,a)=>{G(D,e),G(te,t),G(ne,r),G(re,i),G(ae,a),se=vi(oe,1,`sk-cats svelte-1j811iq`,null,se,{"edit-mode":V(n)})},[()=>Y(`survival.links_title`),()=>Y(`survival.links_subtitle`),()=>V(n)?Y(`survival.btn_read_mode`):Y(`survival.btn_edit_mode`),()=>V(m)?Y(`survival.btn_collapse_all`):Y(`survival.btn_expand_all`),()=>Y(`survival.links_btn_add_cat`)]),H(`click`,k,()=>F(n,!V(n))),H(`click`,A,g),H(`click`,ie,_),W(e,w),Je()}Pr([`click`,`keydown`]);var cO=U(`<button class="ghost-button"><i class="fa-solid fa-cloud"></i></button> <button title="Toggle dark mode" class="ghost-button" aria-label="Toggle dark mode"> </button>`,1),lO=U(`<p class="sk-loading svelte-ha6eja"> </p>`),uO=U(`<div class="sk-grid svelte-ha6eja"><section class="sk-col svelte-ha6eja"><div class="sk-inner svelte-ha6eja"><!></div></section> <section class="sk-col svelte-ha6eja"><div class="sk-inner svelte-ha6eja"><!></div></section> <section class="sk-col svelte-ha6eja"><div class="sk-inner svelte-ha6eja"><!></div></section></div>`),dO=U(`<!> <div class="app-shell sk-root svelte-ha6eja"><!> <!></div> <!>`,1);function fO(e,t){qe(t,!0);let n=P(null),r=P(!1),i=P(!1),a=P(!1);async function o(e,t){return V(n).show({title:e,message:t,confirmLabel:Y(`survival.irreversible_delete`),cancelLabel:Y(`common.cancel`),danger:!0})}function s(e){F(i,e,!0),document.documentElement.classList.toggle(`dark`,e)}function c(){let e=!1;try{let t=localStorage.getItem(`ld-dark`);e=t===null?window.matchMedia(`(prefers-color-scheme: dark)`).matches:t===`true`}catch{}s(e)}function l(){s(!V(i));try{localStorage.setItem(`ld-dark`,String(V(i)))}catch{}}Ji(async()=>{c();try{await Sa((await fetch(`/api/config`).then(e=>e.json())).language||`en`)}catch{}await CD(),F(r,!0)});var u=dO(),d=R(u);Ui(Xd(d,{}),e=>F(n,e,!0),()=>V(n));var f=z(d,2),p=L(f);{let e=e=>{var t=cO(),n=R(t),r=z(n,2),o=L(r,!0);j(r),B((e,t)=>{J(n,`title`,e),J(n,`aria-label`,t),G(o,V(i)?`☀`:`☾`)},[()=>Y(`nav.word_cloud`),()=>Y(`nav.word_cloud`)]),H(`click`,n,()=>F(a,!0)),H(`click`,r,l),W(e,t)},t=N(()=>Y(`survival.title`)),n=N(()=>Y(`survival.subtitle`));Xo(p,{get title(){return V(t)},get subtitle(){return V(n)},actions:e,$$slots:{actions:!0}})}var m=z(p,2),h=e=>{var t=lO(),n=L(t,!0);j(t),B(e=>G(n,e),[()=>Y(`common.loading`)]),W(e,t)},g=e=>{var t=uO(),n=L(t),r=L(n);AD(L(r),{}),j(r),j(n);var i=z(n,2),a=L(i);QD(L(a),{confirmDelete:o}),j(a),j(i);var s=z(i,2),c=L(s);sO(L(c),{confirmDelete:o}),j(c),j(s),j(t),W(e,t)};K(m,e=>{V(r)?e(g,-1):e(h)}),j(f),Qw(z(f,2),{get open(){return V(a)},onclose:()=>F(a,!1)}),W(e,u),Je()}Pr([`click`]);var pO=`git-integration-config`,mO=`git-integration-status`,hO=`git-integration-save`,gO=`/admin#git-integration`,_O=120*1e3,vO=!1,yO=!1;function bO(e){let t=Date.parse(e);return Number.isFinite(t)&&Date.now()-t<_O}function xO(e){let t=e.toLowerCase();return t.includes(`cannot lock ref 'head'`)&&t.includes(`but expected`)?`un autre commit a modifié HEAD pendant l'autocommit. Réessayez l'enregistrement.`:e}async function SO(){if(!vO){vO=!0;try{let e=await fetch(`/api/git/status`,{cache:`no-store`});if(!e.ok)return;let t=await e.json();if(t.mode===`unconfigured`){bo(`Veuillez configurer l'intégration Git dans la page Admin.`,`error`,600*1e3,{id:pO,href:gO,linkLabel:`Admin`}),uo(mO),uo(hO);return}if(uo(pO),t.mode===`disabled`){uo(mO),uo(hO);return}if(!t.ok){bo(`Intégration Git : ${t.message}`,`error`,600*1e3,{id:mO,href:gO,linkLabel:`Admin`});return}if(t.dirtyOutsideDocsCount>0){let e=t.docsFolder?.trim()||`docsFolder`;bo(`Git : ${t.dirtyOutsideDocsCount} changement(s) hors ${e} seront ignorés par Living Documentation.`,`error`,600*1e3,mO)}else uo(mO);let n=t.lastSave;n&&bO(n.timestamp)&&(n.error||n.warning)?bo(`Git : ${xO(n.error||n.warning||``)}`,`error`,600*1e3,{id:hO,href:gO,linkLabel:`Admin`}):uo(hO)}catch{}finally{vO=!1}}}function CO(){if(yO)return;yO=!0;let e=window.fetch.bind(window);window.fetch=async(t,n)=>{let r=await e(t,n),i=typeof t==`string`?t:t instanceof URL?t.toString():t.url;return(n?.method||(t instanceof Request?t.method:`GET`)).toUpperCase()!==`GET`&&!i.includes(`/api/git/`)&&(i.startsWith(`/api/`)||i.startsWith(`/mcp`)||i.startsWith(window.location.origin))&&window.setTimeout(()=>void SO(),80),r}}var wO=U(`<p style="padding:2rem"> </p>`);function TO(e,t){qe(t,!0);function n(e){return e.length>1?e.replace(/\/+$/,``):e}let r=new Set([`/`,`/admin`,`/workspace`,`/blueprint`,`/diagram`,`/shape-editor`,`/context`,`/files`,`/survival-kit`,`/templates`,`/graph`]),i=window.location.pathname+window.location.search+window.location.hash,a=P(I(n(window.location.pathname)));async function o(e){let t=new URL(e,window.location.href),r=n(t.pathname),o=`${r}${t.search}${t.hash}`;if(o===`${window.location.pathname}${window.location.search}${window.location.hash}`){vo();return}await Vo()&&(history.pushState(null,``,o),i=o,F(a,r,!0),vo(),SO(),window.dispatchEvent(new PopStateEvent(`popstate`)))}function s(e){if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target instanceof Element?e.target.closest(`a[href]`):null;if(!(t instanceof HTMLAnchorElement)||t.target||t.hasAttribute(`download`))return;let i=new URL(t.href,window.location.href);if(i.origin!==window.location.origin)return;let a=n(i.pathname);r.has(a)&&(e.preventDefault(),o(`${a}${i.search}${i.hash}`))}Ji(()=>(vo(),CO(),SO(),document.addEventListener(`click`,s,!0),()=>{document.removeEventListener(`click`,s,!0)})),window.addEventListener(`popstate`,async()=>{if(!await Vo()){history.pushState(null,``,i);return}i=window.location.pathname+window.location.search+window.location.hash,F(a,n(window.location.pathname),!0),vo(),SO()}),kn(()=>{V(a)===`/blueprint`?document.documentElement.setAttribute(`data-blueprint`,``):document.documentElement.removeAttribute(`data-blueprint`)});function c(e){o(e)}var l=Wr(),u=R(l),d=e=>{yD(e,{})},f=e=>{bs(e,{navigate:c})},p=e=>{op(e,{})},m=e=>{Hg(e,{})},h=e=>{e_(e,{})},g=e=>{P_(e,{navigate:c})},_=e=>{dT(e,{})},v=e=>{gT(e,{})},y=e=>{MT(e,{})},b=e=>{fO(e,{})},x=e=>{aT(e,{})},S=e=>{var t=wO(),n=L(t);j(t),B(()=>G(n,`Route "${V(a)??``}" — not yet migrated.`)),W(e,t)};K(u,e=>{V(a)===`/templates`?e(d):V(a)===`/admin`?e(f,1):V(a)===`/blueprint`?e(p,2):V(a)===`/workspace`?e(m,3):V(a)===`/files`?e(h,4):V(a)===`/context`?e(g,5):V(a)===`/diagram`?e(_,6):V(a)===`/graph`?e(v,7):V(a)===`/shape-editor`?e(y,8):V(a)===`/survival-kit`?e(b,9):V(a)===`/`?e(x,10):e(S,-1)}),W(e,l),Je()}var EO=new Set,DO=!1;function OO(e){EO.add(e)}function kO(){if(DO)return;DO=!0;let e=window.fetch.bind(window);window.fetch=async(t,n)=>{let r=await e(t,n);try{let e=typeof t==`string`?t:t instanceof URL?t.toString():t.url;(n?.method||(t instanceof Request?t.method:`GET`)).toUpperCase()===`GET`&&/\/api\/config(?:\?|$)/.test(e)&&r.clone().json().then(e=>{for(let t of EO)try{t(e)}catch{}}).catch(()=>{})}catch{}return r}}ts(),OO(e=>ns(e)),OO(e=>Ho.syncFromConfig(e)),OO(va),kO(),vo(),Sa(xa()).finally(()=>{Gr(TO,{target:document.getElementById(`app`)})});export{wT as a,OT as c,_T as d,ld as f,TT as i,kT as l,Y as m,CT as n,DT as o,Sa as p,ET as r,ST as s,yT as t,vT as u};
|