PageSourceSearch

https://kindredly.ai/js/StandaloneMindMapAppC5h3BAR2.js

js kindredly.ai collected 2026-10-02 01:13:34 UTC 25,811 bytes, 1 lines download raw bytes

1import{d as $e,v as g,c as A,i as ot,N as ut,B as De,P as Te,a4 as Ne,b as d,o as c,z as M,e as i,j as It,F as L,y as rt,a7 as dt,n as O,k as q,l as $,D as Rt,q as j,S as D,U as zt,u as ct}from"./vue-runtimeBHGad_ZB.js";import{t as mt,l as Pe,_ as Ee}from"./chunkReloadRecoveryrjuMb-b8.js";import{I as Ut}from"./ItemImageB_r-DJOg.js";import{u as Ye}from"./useTaskLinkedItemPreviewsDSy5QZAl.js";import{r as Xe}from"./OperationQueueKzEpmh-u.js";import"./cjs-helpersC4iS2aBk.js";import"./bootstrap-vue-nextDXY4qsO1.js";import"./dexie2jmnBxhj.js";import"./itemImageSourcesCubmTdva.js";import"./extraction.pure.utilsDQPW8yIh.js";import"./TIIconDefaultBy4qT9Q2.js";import"./item.typesx7Q7rrX9.js";import"./imageRenditionsYS3BoGkH.js";import"./refresh.storeCM69jM7x.js";import"./file_utilsBvAXo0vA.js";import"./item-name.utilsBH3paGZr.js";import"./agentParentalGrantCz4Xs1Ac.js";import"./trackCl4T-c2s.js";import"./content.typesyje91KzF.js";import"./constantsDW26WJ6H.js";import"./url.utils3SlYVg-c.js";const Vt=1,Kt=["auto","blue","green","amber","violet","rose","teal"];let Mt=0;function Q(l){Mt=(Mt+1)%1e6;const o=Math.floor(Math.random()*1e9).toString(36);return`${l}_${Date.now().toString(36)}${Mt.toString(36)}${o}`}function W(){return new Date().toISOString()}function Ct(l){const o=W();return{id:Q("node"),parentId:l.parentId,text:(l.text??"").trim(),notes:"",x:l.x??0,y:l.y??0,color:l.color??"auto",collapsed:!1,linkedItemIds:[],createdAt:o,updatedAt:o}}function qt(l){const o=W(),m=l.trim()||"My mind map",r=Ct({parentId:null,text:m,x:0,y:0});return{id:Q("map"),title:m,rootId:r.id,nodes:[r],createdAt:o,updatedAt:o}}function Bt(){const l=qt("My mind map");return{version:Vt,maps:[l],activeMapId:l.id,updatedAt:W()}}function Le(l){if(!l||typeof l!="object")return null;const o=W(),m=Kt.includes(l.color)?l.color:"auto";return{id:String(l.id||Q("node")),parentId:l.parentId==null?null:String(l.parentId),text:String(l.text??""),notes:String(l.notes??""),x:Number.isFinite(l.x)?Number(l.x):0,y:Number.isFinite(l.y)?Number(l.y):0,color:m,collapsed:!!l.collapsed,linkedItemIds:Array.isArray(l.linkedItemIds)?Array.from(new Set(l.linkedItemIds.map(r=>String(r||"").trim()).filter(Boolean))):[],createdAt:String(l.createdAt||o),updatedAt:String(l.updatedAt||o)}}function Oe(l){if(!l||typeof l!="object")return null;const o=W();let m=Array.isArray(l.nodes)?l.nodes.map(Le).filter(Boolean):[];if(!m.length){const u=Ct({parentId:null,text:String(l.title||"My mind map")});return{id:String(l.id||Q("map")),title:String(l.title||"My mind map"),rootId:u.id,nodes:[u],createdAt:String(l.createdAt||o),updatedAt:String(l.updatedAt||o)}}const r=new Set(m.map(u=>u.id));let v=String(l.rootId||"");r.has(v)||(v=(m.find(u=>u.parentId===null)||m[0]).id);const f=new Map(m.map(u=>[u.id,u]));for(const u of m){if(u.id===v){u.parentId=null;continue}(!u.parentId||!f.has(u.parentId)||u.parentId===u.id)&&(u.parentId=v)}for(const u of m){if(u.id===v)continue;const p=new Set([u.id]);let b=f.get(u.parentId);for(;b&&b.parentId;){if(p.has(b.id)){u.parentId=v;break}p.add(b.id),b=f.get(b.parentId)}}return{id:String(l.id||Q("map")),title:String(l.title||"My mind map"),rootId:v,nodes:m,createdAt:String(l.createdAt||o),updatedAt:String(l.updatedAt||o)}}function Re(l){if(!l||typeof l!="object"||!Array.isArray(l.maps))return null;const o=l.maps.map(Oe).filter(Boolean);if(!o.length)return null;const m=o.some(r=>r.id===l.activeMapId)?String(l.activeMapId):o[0].id;return{version:Vt,maps:o,activeMapId:m,updatedAt:String(l.updatedAt||W())}}const jt="app_global",Wt="mind_map",Ht="mindmap",Jt="doc";async function ze(){var o,m;const l=await mt("/artifact/get",{refType:jt,refId:Wt,artifactType:Ht,artifactKey:Jt,forceRemote:!0});return Re((m=(o=l.result)==null?void 0:o.entry)==null?void 0:m.data)}async function Ft(l){const o=JSON.parse(JSON.stringify(l));o.updatedAt=new Date().toISOString(),await mt("/artifact/upsert",{refType:jt,refId:Wt,artifactType:Ht,artifactKey:Jt,data:o})}const Ue=176,Be=52,Zt=.3,Qt=2.5;function Gt(l,o,m){return Math.min(Math.max(l,o),m)}function R(l){return Math.round(l*100)/100}function Fe(l,o){const m=o.x-l.x,r=o.y-l.y;let v,f;if(Math.abs(m)>=Math.abs(r)){const u=Math.max(30,Math.abs(m)*.5)*Math.sign(m||1);v={x:l.x+u,y:l.y},f={x:o.x-u,y:o.y}}else{const u=Math.max(30,Math.abs(r)*.5)*Math.sign(r||1);v={x:l.x,y:l.y+u},f={x:o.x,y:o.y-u}}return`M ${R(l.x)} ${R(l.y)} C ${R(v.x)} ${R(v.y)}, ${R(f.x)} ${R(f.y)}, ${R(o.x)} ${R(o.y)}`}function Ve(l,o=Ue,m=Be){if(!l.length)return{minX:-o/2,minY:-m/2,maxX:o/2,maxY:m/2};let r=1/0,v=1/0,f=-1/0,u=-1/0;for(const p of l)r=Math.min(r,p.x-o/2),f=Math.max(f,p.x+o/2),v=Math.min(v,p.y-m/2),u=Math.max(u,p.y+m/2);return{minX:r,minY:v,maxX:f,maxY:u}}function Ke(l,o,m,r){const f=Zt,u=Qt,p=Math.max(1,l.maxX-l.minX),b=Math.max(1,l.maxY-l.minY),T=Math.max(1,o-64*2),k=Math.max(1,m-64*2),S=Gt(Math.min(T/p,k/b),f,u),z=(l.minX+l.maxX)/2,_=(l.minY+l.maxY)/2;return{scale:S,tx:o/2-z*S,ty:m/2-_*S}}function St(l,o,m,r,v=Zt,f=Qt){const u=Gt(l.scale*o,v,f),p=u/l.scale;return{scale:u,tx:m-(m-l.tx)*p,ty:r-(r-l.ty)*p}}function qe(l,o,m,r){const v=Math.max(1,r);if(l.id===o.id){const _=m/v*Math.PI*2-Math.PI/2,C=230;return{x:l.x+Math.cos(_)*C,y:l.y+Math.sin(_)*C}}let f=l.x-o.x,u=l.y-o.y;const p=Math.hypot(f,u)||1;f/=p,u/=p;const b={x:l.x+f*200,y:l.y+u*200},T=-u,k=f,z=(m-(v-1)/2)*84;return{x:b.x+T*z,y:b.y+k*z}}const je={class:"mm-shell"},We={key:0,class:"mm-state text-muted text-center px-4"},He={key:1,class:"mm-state text-muted text-center px-4"},Je={class:"mm-topbar d-flex align-items-center gap-2 px-3 py-2"},Ze={key:0,class:"bi bi-arrow-repeat mm-spin","aria-hidden":"true"},Qe={key:1,class:"bi bi-check2","aria-hidden":"true"},Ge={key:2,class:"bi bi-exclamation-triangle","aria-hidden":"true"},tn={key:0,class:"alert alert-warning mx-3 mb-0 py-2 small"},en={class:"mm-edges","aria-hidden":"true"},nn=["d"],ln=["onPointerdown","onDblclick"],an=["aria-label","onClick"],sn=["value","onInput","onKeydown"],on={class:"mm-node__text"},un={key:0,class:"mm-node__chips"},rn={key:0,class:"mm-chip"},dn={key:1,class:"mm-chip"},cn={key:2,class:"bi bi-sticky mm-chip","aria-hidden":"true"},mn=["onClick"],pn=["onClick"],vn=["onClick"],fn={class:"mm-control
1s d-flex flex-column gap-1"},bn={key:0,class:"mm-menu p-2 rounded-3"},yn={class:"d-flex align-items-center mb-2 px-1"},hn={class:"list-unstyled mb-2 mm-menu__list"},xn=["onClick"],gn={class:"text-truncate flex-grow-1"},kn={class:"small text-muted flex-shrink-0"},_n={class:"d-flex gap-2"},In=["disabled"],Mn={class:"mm-modal__card",role:"dialog","aria-modal":"true","aria-label":"Node details"},Sn={class:"mm-modal__head d-flex align-items-start gap-2 mb-3"},Cn={class:"mm-swatches mb-3"},wn=["aria-label","onClick"],An={key:0,class:"bi bi-shuffle","aria-hidden":"true"},$n={class:"mb-3"},Dn={key:0,class:"mm-links mb-2"},Tn=["onClick"],Nn={class:"mm-link__body"},Pn={class:"mm-link__name text-truncate"},En={class:"small text-muted text-truncate"},Yn=["onClick"],Xn={key:1,class:"small text-muted mb-2"},Ln={key:3,class:"mm-picker"},On={class:"d-flex align-items-center gap-2 mb-2"},Rn={key:0,class:"small text-muted px-1 py-2"},zn={key:1,class:"mm-picker__results list-unstyled mb-0"},Un=["disabled","onClick"],Bn={class:"mm-link__body"},Fn={class:"text-truncate"},Vn={class:"small text-muted text-truncate"},Kn={key:2,class:"small text-muted px-1 py-2"},qn={class:"d-flex align-items-center"},jn=$e({__name:"StandaloneMindMapApp",setup(l){const o=["blue","teal","green","amber","violet","rose"],m=Kt,r=g(null),v=g(!1),f=g(""),u=g("idle"),p=g(null),b=g(null),T=g(null),k=g(!1),S=g(null),z=g(null),_=g(1),C=g(0),N=g(0),H=A(()=>{var e;return((e=Pe.currentUser)==null?void 0:e._id)||null}),y=A(()=>{const e=r.value;return e&&(e.maps.find(t=>t.id===e.activeMapId)||e.maps[0])||null}),U=A(()=>{var t;const e=new Map;for(const a of((t=y.value)==null?void 0:t.nodes)||[])e.set(a.id,a);return e}),E=A(()=>{var t;const e=new Map;for(const a of((t=y.value)==null?void 0:t.nodes)||[]){if(!a.parentId)continue;const s=e.get(a.parentId);s?s.push(a):e.set(a.parentId,[a])}return e}),te=A(()=>{const e=new Map,t=y.value;if(!t)return e;const a=[{id:t.rootId,d:0}];for(;a.length;){const{id:s,d:n}=a.shift();if(!e.has(s)){e.set(s,n);for(const h of E.value.get(s)||[])a.push({id:h.id,d:n+1})}}return e}),pt=A(()=>{var a;const e=new Set,t=[];for(const s of((a=y.value)==null?void 0:a.nodes)||[])s.collapsed&&t.push(...E.value.get(s.id)||[]);for(;t.length;){const s=t.pop();if(!e.has(s.id)){e.add(s.id);for(const n of E.value.get(s.id)||[])t.push(n)}}return e}),vt=A(()=>{var e;return(((e=y.value)==null?void 0:e.nodes)||[]).filter(t=>!pt.value.has(t.id))}),ee=A(()=>{const e=[],t=y.value;if(!t)return e;for(const a of t.nodes){if(!a.parentId||pt.value.has(a.id)||pt.value.has(a.parentId))continue;const s=U.value.get(a.parentId);s&&e.push({id:a.id,d:Fe({x:s.x,y:s.y},{x:a.x,y:a.y}),colorClass:`mm-edge--${wt(a)}`})}return e}),x=A(()=>{const e=T.value;return!e||!y.value?null:y.value.nodes.find(t=>t.id===e)||null});function wt(e){if(e.color!=="auto")return e.color;const t=te.value.get(e.id)??1;return t<=0?"blue":o[(t-1)%o.length]}function ne(e){var a;return[e.id===((a=y.value)==null?void 0:a.rootId)?"mm-node--root":`mm-node--${wt(e)}`,{"mm-node--selected":p.value===e.id,"mm-node--editing":b.value===e.id}]}function le(e){return{left:`${e.x}px`,top:`${e.y}px`}}const ae=A(()=>({transform:`translate(${C.value}px, ${N.value}px) scale(${_.value})`}));function ft(e){return(E.value.get(e.id)||[]).length}function ie(e){let t=0;const a=[...E.value.get(e.id)||[]];for(;a.length;){const s=a.pop();t+=1,a.push(...E.value.get(s.id)||[])}return t}const se=A(()=>{var e;return(((e=y.value)==null?void 0:e.nodes)||[]).map(t=>({taskId:t.id,linkedItemIds:t.linkedItemIds}))}),{linkedItemsForTask:At,linkedItemsLoading:oe}=Ye({tasks:se,enabled:A(()=>!!H.value)}),F=g(!1),X=g(""),G=g([]),bt=g(!1);let J=null,tt=0;async function $t(){var a;const e=X.value.trim(),t=++tt;bt.value=!0;try{let s=[];if(e?s=(await mt("/search/main",{searchType:"text",searchLookupValue:e,filters:{}})).result||[]:s=((a=(await mt("/item/query",{userId:H.value||void 0,filters:{},includes:{},sort:{field:"created",order:"desc"},pagination:{limit:30}})).result)==null?void 0:a.items)||[],t!==tt)return;G.value=Xe(s,60,!1)}catch{t===tt&&(G.value=[])}finally{t===tt&&(bt.value=!1)}}ot(X,()=>{F.value&&(J&&clearTimeout(J),J=setTimeout($t,250))});function Dt(e){return e.typeName||e.subType||e.type||""}function ue(e){e&&window.open(`/kindredapp/#/item/${e}`,"_blank","noopener")}function re(){F.value=!0,X.value="",$t()}function de(){F.value=!1}function yt(e){var t;return!!e&&!!((t=x.value)!=null&&t.linkedItemIds.includes(e))}function ce(e){const t=x.value;!t||!e._id||yt(e._id)||(t.linkedItemIds.push(e._id),t.updatedAt=Y())}function me(e){const t=x.value;t&&(t.linkedItemIds=t.linkedItemIds.filter(a=>a!==e),t.updatedAt=Y())}const pe=A(()=>{switch(u.value){case"saving":return"Saving…";case"saved":return"Saved";case"error":return"Couldn’t save";default:return""}});let ht=!1,V=null,Z=!1;function ve(){ht&&(Z=!0,V&&clearTimeout(V),V=setTimeout(Tt,700))}
1async function Tt(){if(V&&(clearTimeout(V),V=null),!(!Z||!r.value)){Z=!1,u.value="saving";try{await Ft(r.value),u.value="saved"}catch{u.value="error",Z=!0}}}ot(r,ve,{deep:!0});async function fe(){if(ht=!1,f.value="",u.value="idle",p.value=null,b.value=null,T.value=null,!H.value){r.value=null,v.value=!1;return}v.value=!0;try{const e=await ze();if(e)r.value=e;else{const t=Bt();r.value=t,await Ft(t)}}catch(e){f.value=(e==null?void 0:e.message)||"Could not load your maps.",r.value||(r.value=Bt())}finally{v.value=!1}await ut(),ht=!0,await ut(),nt()}ot(H,fe,{immediate:!0}),ot(()=>{var e;return(e=y.value)==null?void 0:e.id},()=>{p.value=null,b.value=null,ut(nt)});let et=null,Nt=!1;De(()=>{S.value&&typeof ResizeObserver<"u"&&(et=new ResizeObserver(()=>{Nt||nt()}),et.observe(S.value))}),Te(()=>{J&&clearTimeout(J),et&&et.disconnect(),xt(),Z&&Tt()});function Y(){return new Date().toISOString()}function Pt(){const e=S.value;return{w:(e==null?void 0:e.clientWidth)||0,h:(e==null?void 0:e.clientHeight)||0}}function nt(){var n;const{w:e,h:t}=Pt();if(!e||!t)return;const a=vt.value.length?vt.value:((n=y.value)==null?void 0:n.nodes)||[],s=Ke(Ve(a),e,t);_.value=s.scale,C.value=s.tx,N.value=s.ty,Nt=!0}function Et(e){const{w:t,h:a}=Pt(),s=St({scale:_.value,tx:C.value,ty:N.value},e,t/2,a/2);_.value=s.scale,C.value=s.tx,N.value=s.ty}function be(e){var Ot;e.preventDefault();const t=(Ot=S.value)==null?void 0:Ot.getBoundingClientRect(),a=e.clientX-((t==null?void 0:t.left)||0),s=e.clientY-((t==null?void 0:t.top)||0),n=e.deltaMode===1?16:e.deltaMode===2?120:1,h=Math.exp(-e.deltaY*n*.0015),K=St({scale:_.value,tx:C.value,ty:N.value},h,a,s);_.value=K.scale,C.value=K.tx,N.value=K.ty}const P=new Map;let w=null,B=null,I=null,lt=!1;function Yt(){lt||(window.addEventListener("pointermove",Lt),window.addEventListener("pointerup",at),window.addEventListener("pointercancel",at),lt=!0)}function xt(){lt&&(window.removeEventListener("pointermove",Lt),window.removeEventListener("pointerup",at),window.removeEventListener("pointercancel",at),lt=!1)}function ye(e){var t;(t=S.value)==null||t.focus({preventScroll:!0}),k.value=!1,P.set(e.pointerId,{x:e.clientX,y:e.clientY}),P.size>=2?(w=null,B=Xt()):w={startX:e.clientX,startY:e.clientY,origTx:C.value,origTy:N.value,moved:!1},Yt()}function he(e,t){var a;b.value!==t.id&&((a=S.value)==null||a.focus({preventScroll:!0}),k.value=!1,p.value=t.id,I={id:t.id,startX:e.clientX,startY:e.clientY,origX:t.x,origY:t.y,moved:!1},Yt())}function Xt(){var n;const e=Array.from(P.values());if(e.length<2)return null;const[t,a]=e,s=(n=S.value)==null?void 0:n.getBoundingClientRect();return{dist:Math.hypot(t.x-a.x,t.y-a.y)||1,cx:(t.x+a.x)/2-((s==null?void 0:s.left)||0),cy:(t.y+a.y)/2-((s==null?void 0:s.top)||0)}}function Lt(e){if(I){const t=(e.clientX-I.startX)/_.value,a=(e.clientY-I.startY)/_.value;if(!I.moved&&Math.hypot(e.clientX-I.startX,e.clientY-I.startY)>4&&(I.moved=!0),I.moved){const s=U.value.get(I.id);s&&(s.x=I.origX+t,s.y=I.origY+a,s.updatedAt=Y())}return}if(P.has(e.pointerId)&&P.set(e.pointerId,{x:e.clientX,y:e.clientY}),B&&P.size>=2){const t=Xt();if(!t)return;const a=t.dist/B.dist,s=St({scale:_.value,tx:C.value,ty:N.value},a,t.cx,t.cy);_.value=s.scale,C.value=s.tx+(t.cx-B.cx),N.value=s.ty+(t.cy-B.cy),B=t;return}if(w){const t=e.clientX-w.startX,a=e.clientY-w.startY;!w.moved&&Math.hypot(t,a)>3&&(w.moved=!0),C.value=w.origTx+t,N.value=w.origTy+a}}function at(e){if(I){I.moved,I=null,!w&&P.size===0&&xt();return}P.delete(e.pointerId),P.size<2&&(B=null),P.size===0&&(w&&!w.moved&&(p.value=null,b.value&&it()),w=null,xt())}function gt(e){p.value=e.id,b.value=e.id,ut(()=>{var a;const t=(a=z.value)==null?void 0:a.querySelector(".mm-node--editing .mm-node__input");t==null||t.focus(),t==null||t.select()})}function it(){const e=b.value;if(b.value=null,!e)return;const t=U.value.get(e);t&&(t.updatedAt=Y())}function st(e){const t=y.value;if(!t)return;const a=U.value.get(e),s=U.value.get(t.rootId);if(!a||!s)return;const n=E.value.get(e)||[],h=qe(a,s,n.length,n.length+1),K=Ct({parentId:e,text:"",x:h.x,y:h.y});a.collapsed=!1,t.nodes.push(K),gt(K)}function xe(e){const t=U.value.get(e);t&&(t.parentId?st(t.parentId):st(e))}function ge(e){e.collapsed=!e.collapsed,e.updatedAt=Y()}function ke(e){const t=new Set([e]),a=[...E.value.get(e)||[]];for(;a.length;){const s=a.pop();t.has(s.id)||(t.add(s.id),a.push(...E.value.get(s.id)||[]))}return t}function kt(e){const t=y.value;if(!t||e===t.rootId)return;const a=ke(e),s=a.size-1,n=s?`Delete this node and its ${s}
1 descendant(s)?`:"Delete this node?";window.confirm(n)&&(t.nodes=t.nodes.filter(h=>!a.has(h.id)),p.value&&a.has(p.value)&&(p.value=null),b.value&&a.has(b.value)&&(b.value=null),T.value&&a.has(T.value)&&(T.value=null))}function _e(e){T.value=e,F.value=!1,X.value=""}function _t(){T.value=null,F.value=!1,X.value=""}function Ie(e){const t=x.value;t&&(t.color=e,t.updatedAt=Y())}function Me(){y.value&&(y.value.updatedAt=Y())}function Se(e){r.value&&(r.value.activeMapId=e),k.value=!1}function Ce(){if(!r.value)return;const e=qt(`Map ${r.value.maps.length+1}`);r.value.maps.push(e),r.value.activeMapId=e.id,k.value=!1}function we(){var a;const e=r.value,t=y.value;!e||!t||e.maps.length<=1||window.confirm(`Delete “${t.title||"this map"}” and all its nodes?`)&&(e.maps=e.maps.filter(s=>s.id!==t.id),e.activeMapId=((a=e.maps[0])==null?void 0:a.id)||null,k.value=!1)}function Ae(e){if(b.value)return;const t=e.target;if(t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable))return;const a=p.value;if(e.key==="Escape"){p.value=null,k.value=!1;return}if(a)switch(e.key){case"Tab":e.preventDefault(),st(a);break;case"Enter":e.preventDefault(),xe(a);break;case"Delete":e.preventDefault(),kt(a);break;case"F2":{e.preventDefault();const s=U.value.get(a);s&&gt(s);break}}}return(e,t)=>{var s;const a=Ne("b-spinner");return c(),d("div",je,[H.value?v.value?(c(),d("div",He,[It(a,{small:"",class:"mb-2"}),t[15]||(t[15]=i("div",null,"Loading your maps…",-1))])):r.value&&y.value?(c(),d(L,{key:2},[i("div",Je,[t[17]||(t[17]=i("span",{class:"mm-eyebrow text-uppercase small fw-semibold flex-shrink-0"},"Mind Map",-1)),rt(i("input",{"onUpdate:modelValue":t[0]||(t[0]=n=>y.value.title=n),class:"mm-title","aria-label":"Map name",maxlength:"80",onInput:Me},null,544),[[dt,y.value.title]]),i("span",{class:O(["ms-auto mm-save small d-flex align-items-center gap-1 flex-shrink-0",`mm-save--${u.value}`])},[u.value==="saving"?(c(),d("i",Ze)):u.value==="saved"?(c(),d("i",Qe)):u.value==="error"?(c(),d("i",Ge)):M("",!0),q(" "+$(pe.value),1)],2),i("button",{type:"button",class:O(["mm-tool-btn btn btn-sm flex-shrink-0",{"mm-tool-btn--active":k.value}]),"aria-label":"Maps",onClick:t[1]||(t[1]=n=>k.value=!k.value)},[...t[16]||(t[16]=[i("i",{class:"bi bi-collection","aria-hidden":"true"},null,-1)])],2)]),f.value?(c(),d("div",tn,$(f.value),1)):M("",!0),i("div",{ref_key:"canvasEl",ref:S,class:"mm-canvas",tabindex:"0",onPointerdown:ye,onWheel:be,onKeydown:Ae},[i("div",{ref_key:"worldEl",ref:z,class:"mm-world",style:Rt(ae.value)},[(c(),d("svg",en,[(c(!0),d(L,null,j(ee.value,n=>(c(),d("path",{key:n.id,d:n.d,class:O(["mm-edge",n.colorClass])},null,10,nn))),128))])),(c(!0),d(L,null,j(vt.value,n=>(c(),d("div",{key:n.id,class:O(["mm-node",ne(n)]),style:Rt(le(n)),onPointerdown:D(h=>he(h,n),["stop"]),onDblclick:D(h=>gt(n),["stop"])},[ft(n)?(c(),d("button",{key:0,type:"button",class:"mm-node__collapse","aria-label":n.collapsed?"Expand":"Collapse",onPointerdown:t[2]||(t[2]=D(()=>{},["stop"])),onClick:D(h=>ge(n),["stop"])},[i("i",{class:O(n.collapsed?"bi bi-plus":"bi bi-dash"),"aria-hidden":"true"},null,2)],40,an)):M("",!0),b.value===n.id?(c(),d("input",{key:1,class:"mm-node__input",value:n.text,"aria-label":"Node text",onPointerdown:t[3]||(t[3]=D(()=>{},["stop"])),onInput:h=>n.text=h.target.value,onKeydown:[zt(D(it,["prevent"]),["enter"]),zt(D(it,["prevent"]),["esc"])],onBlur:it},null,40,sn)):(c(),d(L,{key:2},[i("div",on,$(n.text||"Untitled"),1),n.linkedItemIds.length||n.notes||n.collapsed&&ft(n)?(c(),d("div",un,[n.collapsed&&ft(n)?(c(),d("span",rn,[t[18]||(t[18]=i("i",{class:"bi bi-diagram-2","aria-hidden":"true"},null,-1)),q(" "+$(ie(n)),1)])):M("",!0),n.linkedItemIds.length?(c(),d("span",dn,[t[19]||(t[19]=i("i",{class:"bi bi-link-45deg","aria-hidden":"true"},null,-1)),q(" "+$(n.linkedItemIds.length),1)])):M("",!0),n.notes?(c(),d("i",cn)):M("",!0)])):M("",!0)],64)),p.value===n.id&&b.value!==n.id?(c(),d("div",{key:3,class:"mm-node__actions",onPointerdown:t[4]||(t[4]=D(()=>{},["stop"]))},[i("button",{type:"button",class:"mm-node__act","aria-label":"Add child",onClick:D(h=>st(n.id),["stop"])},[...t[20]||(t[20]=[i("i",{class:"bi bi-plus-lg","aria-hidden":"true"},null,-1)])],8,mn),i("button",{type:"button",class:"mm-node__act","aria-label":"Details",onClick:D(h=>_e(n.id),["stop"])},[...t[21]||(t[21]=[i("i",{class:"bi bi-card-text","aria-hidden":"true"},null,-1)])],8,pn),n.id!==y.value.rootId?(c(),d("button",{key:0,t
1ype:"button",class:"mm-node__act mm-node__act--danger","aria-label":"Delete node",onClick:D(h=>kt(n.id),["stop"])},[...t[22]||(t[22]=[i("i",{class:"bi bi-trash","aria-hidden":"true"},null,-1)])],8,vn)):M("",!0)],32)):M("",!0)],46,ln))),128))],4),i("div",fn,[i("button",{type:"button",class:"mm-tool-btn btn btn-sm","aria-label":"Zoom in",onClick:t[5]||(t[5]=n=>Et(1.2))},[...t[23]||(t[23]=[i("i",{class:"bi bi-plus-lg","aria-hidden":"true"},null,-1)])]),i("button",{type:"button",class:"mm-tool-btn btn btn-sm","aria-label":"Zoom out",onClick:t[6]||(t[6]=n=>Et(.8))},[...t[24]||(t[24]=[i("i",{class:"bi bi-dash-lg","aria-hidden":"true"},null,-1)])]),i("button",{type:"button",class:"mm-tool-btn btn btn-sm","aria-label":"Fit to view",onClick:nt},[...t[25]||(t[25]=[i("i",{class:"bi bi-arrows-fullscreen","aria-hidden":"true"},null,-1)])])]),t[30]||(t[30]=i("div",{class:"mm-hint small text-muted"},"Double-click to rename · drag to move · Tab adds a child",-1)),k.value?(c(),d("div",bn,[i("div",yn,[t[26]||(t[26]=i("span",{class:"small fw-semibold"},"Your maps",-1)),i("button",{type:"button",class:"btn-close ms-auto","aria-label":"Close",onClick:t[7]||(t[7]=n=>k.value=!1)})]),i("ul",hn,[(c(!0),d(L,null,j(r.value.maps,n=>(c(),d("li",{key:n.id},[i("button",{type:"button",class:O(["mm-menu__item",{"mm-menu__item--active":n.id===y.value.id}]),onClick:h=>Se(n.id)},[t[27]||(t[27]=i("i",{class:"bi bi-diagram-3 flex-shrink-0","aria-hidden":"true"},null,-1)),i("span",gn,$(n.title||"Untitled map"),1),i("span",kn,$(n.nodes.length),1)],10,xn)]))),128))]),i("div",_n,[i("button",{type:"button",class:"btn btn-sm btn-primary flex-grow-1",onClick:Ce},[...t[28]||(t[28]=[i("i",{class:"bi bi-plus-lg me-1","aria-hidden":"true"},null,-1),q("New map ",-1)])]),i("button",{type:"button",class:"btn btn-sm btn-outline-danger",disabled:r.value.maps.length<=1,"aria-label":"Delete this map",onClick:we},[...t[29]||(t[29]=[i("i",{class:"bi bi-trash","aria-hidden":"true"},null,-1)])],8,In)])])):M("",!0)],544)],64)):M("",!0):(c(),d("div",We,[...t[14]||(t[14]=[i("i",{class:"bi bi-diagram-3 mm-state__icon","aria-hidden":"true"},null,-1),i("div",{class:"fw-semibold mb-1"},"Sign in to use Mind Map",-1),i("div",{class:"small"},"Your maps are private and end-to-end encrypted.",-1)])])),x.value?(c(),d("div",{key:3,class:"mm-modal",onClick:D(_t,["self"])},[i("div",Mn,[i("div",Sn,[rt(i("input",{"onUpdate:modelValue":t[8]||(t[8]=n=>x.value.text=n),class:"mm-modal__title","aria-label":"Node text",onInput:t[9]||(t[9]=n=>x.value.updatedAt=Y())},null,544),[[dt,x.value.text]]),i("button",{type:"button",class:"btn-close flex-shrink-0","aria-label":"Close",onClick:_t})]),t[35]||(t[35]=i("label",{class:"form-label small text-muted mb-1"},"Notes",-1)),rt(i("textarea",{"onUpdate:modelValue":t[10]||(t[10]=n=>x.value.notes=n),class:"form-control form-control-sm mb-3",rows:"3",placeholder:"Details, context, anything…",onInput:t[11]||(t[11]=n=>x.value.updatedAt=Y())},null,544),[[dt,x.value.notes]]),t[36]||(t[36]=i("label",{class:"form-label small text-muted mb-1"},"Color",-1)),i("div",Cn,[(c(!0),d(L,null,j(ct(m),n=>(c(),d("button",{key:n,type:"button",class:O(["mm-swatch",[`mm-swatch--${n}`,{"mm-swatch--active":x.value.color===n}]]),"aria-label":`Color ${n}`,onClick:h=>Ie(n)},[n==="auto"?(c(),d("i",An)):M("",!0)],10,wn))),128))]),t[37]||(t[37]=i("label",{class:"form-label small text-muted mb-1"},"Linked items",-1)),i("div",$n,[ct(At)(x.value.id).length?(c(),d("div",Dn,[(c(!0),d(L,null,j(ct(At)(x.value.id),n=>(c(),d("div",{key:n._id,class:"mm-link"},[i("button",{type:"button",class:"mm-link__main",onClick:h=>ue(n._id)},[It(Ut,{item:n,width:34,height:34,class:"rounded flex-shrink-0"},null,8,["item"]),i("span",Nn,[i("span",Pn,$(n.name||n._id),1),i("span",En,$(Dt(n)),1)]),t[31]||(t[31]=i("i",{class:"bi bi-box-arrow-up-right text-muted flex-shrink-0","aria-hidden":"true"},null,-1))],8,Tn),i("button",{type:"button",class:"mm-icon-btn flex-shrink-0","aria-label":"Unlink item",onClick:h=>me(n._id)},[...t[32]||(t[32]=[i("i",{class:"bi bi-x-lg","aria-hidden":"true"},null,-1)])],8,Yn)]))),128))])):x.value.linkedItemIds.length&&ct(oe)(x.value.id)?(c(),d("div",Xn," Loading… ")):M("",!0),F.value?(c(),d("div",Ln,[i("div",On,[rt(i("input",{"onUpdate:modelValue":t[12]||(t[12]=n=>X.value=n),class:"form-control form-control-sm",placeholder:"Search your library…","aria-label":"Search library"},null,512),[[dt,X.value]]),i("button",{type:"button",class:"btn-close flex-shrink-0","aria-label":"Close picker",onClick:de})]),bt.value?(c(),d("div",Rn,"Searching…")):G.value.length?(c(),d("ul",zn,[(c(!0),d(L,null,j(G.value,n=>(c(),d("li",{key:n._id},[i("button",{type:"button",class:"mm-picker__item",disabled:yt(n._id),onClick:h=>ce(n)},[It(Ut,{item:n,width:30,height:30,class:"rounded flex-shrink-0"},null,8,["item"]),i("span",Bn,[i("span",Fn,$(n.name||n._id),1),i("span",Vn,$(Dt(n)),1)]),i("i",{class:O([yt(n._id)?"bi bi-check2 text-success":"bi bi-plus-lg","flex-shrink-0"]),"aria-hidden":"true"},null,2)],8,Un)]))),128))])):(c(),d("div",Kn,$(X.value.trim()?"No matching items.":"Your library is empty."),1))])):(c(),d("button",{key:2,type:"button",class:"btn btn-sm btn-outline-secondary",onClick:re},[...t[33]||(t[33]=[i("i",{class:"bi bi-link-45deg me-1","aria-hidden":"true"},null,-1),q("Link an item ",-1)])]))]),i("div",qn,[x.value.id!==((s=y.value)==null?void 0:s.rootId)?(c(),d("button",{key:0,t
1ype:"button",class:"btn btn-sm btn-outline-danger",onClick:t[13]||(t[13]=n=>kt(x.value.id))},[...t[34]||(t[34]=[i("i",{class:"bi bi-trash me-1","aria-hidden":"true"},null,-1),q("Delete ",-1)])])):M("",!0),i("button",{type:"button",class:"btn btn-sm btn-primary ms-auto",onClick:_t},"Done")])])])):M("",!0)])}}}),fl=Ee(jn,[["__scopeId","data-v-1b7d2431"]]);export{fl as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.