@inkandswitch/patchwork-pkg-base 0.0.109 → 0.0.110
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/module-settings-url +1 -1
- package/package.json +1 -1
- package/packages/add-doc-to-sidebar-button/button.js +141 -25
- package/packages/add-doc-to-sidebar-button/button.test.js +114 -0
- package/packages/threepane/dist/IsolatedDocumentArea-5WRK3TWL.js +2 -0
- package/packages/threepane/dist/PatchworkFrame-22UEOQ6E.js +2 -0
- package/packages/threepane/dist/PatchworkFrame-22UEOQ6E.js.map +7 -0
- package/packages/threepane/dist/{chunk-XOKWELWP.js → chunk-U4IJVHXK.js} +10 -5
- package/packages/threepane/dist/chunk-U4IJVHXK.js.map +7 -0
- package/packages/threepane/dist/index.js +1 -1
- package/plugin-registry-url +1 -1
- package/packages/threepane/dist/IsolatedDocumentArea-UTNJADQ7.js +0 -2
- package/packages/threepane/dist/PatchworkFrame-U2TVLGCZ.js +0 -2
- package/packages/threepane/dist/PatchworkFrame-U2TVLGCZ.js.map +0 -7
- package/packages/threepane/dist/chunk-XOKWELWP.js.map +0 -7
- /package/packages/threepane/dist/{IsolatedDocumentArea-UTNJADQ7.js.map → IsolatedDocumentArea-5WRK3TWL.js.map} +0 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import{a as Ye,b as qr}from"./chunk-FW4363Y4.js";var kt=Ye((Ni,xt)=>{var ie=1e3,se=ie*60,le=se*60,te=le*24,po=te*7,ho=te*365.25;xt.exports=function(e,r){r=r||{};var t=typeof e;if(t==="string"&&e.length>0)return fo(e);if(t==="number"&&isFinite(e))return r.long?go(e):mo(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function fo(e){if(e=String(e),!(e.length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var t=parseFloat(r[1]),o=(r[2]||"ms").toLowerCase();switch(o){case"years":case"year":case"yrs":case"yr":case"y":return t*ho;case"weeks":case"week":case"w":return t*po;case"days":case"day":case"d":return t*te;case"hours":case"hour":case"hrs":case"hr":case"h":return t*le;case"minutes":case"minute":case"mins":case"min":case"m":return t*se;case"seconds":case"second":case"secs":case"sec":case"s":return t*ie;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function mo(e){var r=Math.abs(e);return r>=te?Math.round(e/te)+"d":r>=le?Math.round(e/le)+"h":r>=se?Math.round(e/se)+"m":r>=ie?Math.round(e/ie)+"s":e+"ms"}function go(e){var r=Math.abs(e);return r>=te?Fe(e,r,te,"day"):r>=le?Fe(e,r,le,"hour"):r>=se?Fe(e,r,se,"minute"):r>=ie?Fe(e,r,ie,"second"):e+" ms"}function Fe(e,r,t,o){var n=r>=t*1.5;return Math.round(e/t)+" "+o+(n?"s":"")}});var $t=Ye((qi,Ct)=>{function bo(e){t.debug=t,t.default=t,t.coerce=l,t.disable=i,t.enable=n,t.enabled=d,t.humanize=kt(),t.destroy=c,Object.keys(e).forEach(s=>{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={};function r(s){let u=0;for(let h=0;h<s.length;h++)u=(u<<5)-u+s.charCodeAt(h),u|=0;return t.colors[Math.abs(u)%t.colors.length]}t.selectColor=r;function t(s){let u,h=null,b,_;function m(...p){if(!m.enabled)return;let f=m,w=Number(new Date),T=w-(u||w);f.diff=T,f.prev=u,f.curr=w,u=w,p[0]=t.coerce(p[0]),typeof p[0]!="string"&&p.unshift("%O");let F=0;p[0]=p[0].replace(/%([a-zA-Z%])/g,(j,Q)=>{if(j==="%%")return"%";F++;let O=t.formatters[Q];if(typeof O=="function"){let J=p[F];j=O.call(f,J),p.splice(F,1),F--}return j}),t.formatArgs.call(f,p),(f.log||t.log).apply(f,p)}return m.namespace=s,m.useColors=t.useColors(),m.color=t.selectColor(s),m.extend=o,m.destroy=t.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(b!==t.namespaces&&(b=t.namespaces,_=t.enabled(s)),_),set:p=>{h=p}}),typeof t.init=="function"&&t.init(m),m}function o(s,u){let h=t(this.namespace+(typeof u>"u"?":":u)+s);return h.log=this.log,h}function n(s){t.save(s),t.namespaces=s,t.names=[],t.skips=[];let u=(typeof s=="string"?s:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let h of u)h[0]==="-"?t.skips.push(h.slice(1)):t.names.push(h)}function a(s,u){let h=0,b=0,_=-1,m=0;for(;h<s.length;)if(b<u.length&&(u[b]===s[h]||u[b]==="*"))u[b]==="*"?(_=b,m=h,b++):(h++,b++);else if(_!==-1)b=_+1,m++,h=m;else return!1;for(;b<u.length&&u[b]==="*";)b++;return b===u.length}function i(){let s=[...t.names,...t.skips.map(u=>"-"+u)].join(",");return t.enable(""),s}function d(s){for(let u of t.skips)if(a(s,u))return!1;for(let u of t.names)if(a(s,u))return!0;return!1}function l(s){return s instanceof Error?s.stack||s.message:s}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Ct.exports=bo});var St=Ye((P,Pe)=>{P.formatArgs=wo;P.save=yo;P.load=_o;P.useColors=vo;P.storage=xo();P.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();P.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function vo(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function wo(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Pe.exports.humanize(this.diff),!this.useColors)return;let r="color: "+this.color;e.splice(1,0,r,"color: inherit");let t=0,o=0;e[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(t++,n==="%c"&&(o=t))}),e.splice(o,0,r)}P.log=console.debug||console.log||(()=>{});function yo(e){try{e?P.storage.setItem("debug",e):P.storage.removeItem("debug")}catch{}}function _o(){let e;try{e=P.storage.getItem("debug")||P.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function xo(){try{return localStorage}catch{}}Pe.exports=$t()(P);var{formatters:ko}=Pe.exports;ko.j=function(e){try{return JSON.stringify(e)}catch(r){return"[UnexpectedJSONParseError]: "+r.message}}});import{template as Hr}from"solid-js/web";import{createComponent as si}from"solid-js/web";import{setAttribute as li}from"solid-js/web";import{effect as ci}from"solid-js/web";import{insert as Nr}from"solid-js/web";import{getOwner as di}from"solid-js/web";import{createMemo as jr}from"solid-js";import{createStore as hi,reconcile as fi}from"solid-js/store";import{render as mi}from"solid-js/web";import{template as Ae}from"solid-js/web";import{insert as ne}from"solid-js/web";import{getOwner as Ee}from"solid-js/web";import{use as Te}from"solid-js/web";import{createComponent as U}from"solid-js/web";import{createUniqueId as Br,untrack as ht}from"solid-js";import{isServer as Jr,isDev as ft}from"solid-js/web";import{reconcile as Vr}from"solid-js/store";function Xe(e,r={}){let t=r.storage||globalThis.localStorage,o=r.name||`storage-${Br()}`;if(!t)return Object.assign(e,{2:null});let n=r.storageOptions,a=r.serialize||JSON.stringify.bind(JSON),i=r.deserialize||JSON.parse.bind(JSON),d=t.getItem(o,n),l=typeof e[0]=="function"?s=>{try{let u=i(s);e[1](()=>u)}catch(u){ft&&console.warn(u)}}:s=>{try{let u=i(s);e[1](Vr(u))}catch(u){ft&&console.warn(u)}},c=!0;if(d instanceof Promise?d.then(s=>c&&s&&l(s)):d&&l(d),typeof r.sync?.[0]=="function"){let s=typeof e[0]=="function"?e[0]:()=>e[0];r.sync[0](u=>{u.key!==o||!Jr&&(u.url||globalThis.location.href)!==globalThis.location.href||u.newValue===a(ht(s))||l(u.newValue)})}return Object.assign([],e,{1:typeof e[0]=="function"?s=>{let u=e[1](s),h=s!=null?a(u):s;return r.sync?.[1](o,h),h!=null?t.setItem(o,h,n):t.removeItem(o,n),c=!1,u}:(...s)=>{e[1](...s);let u=ht(()=>a(e[0]));r.sync?.[1](o,u),t.setItem(o,u,n),c=!1},2:d})}import{createEffect as Lr,createMemo as pt,createSignal as Z,on as Mr,onCleanup as oi,onMount as ni,Show as me}from"solid-js";import{createEffect as mt,createSignal as gt,on as bt}from"solid-js";var V={leftCollapsed:"patchwork:leftSidebarCollapsed",rightCollapsed:"patchwork:rightSidebarCollapsed",leftWidth:"patchwork:leftSidebarWidth",rightWidth:"patchwork:rightSidebarWidth",contextToolId:"patchwork:contextSidebarToolId"},Ie="patchwork:collapse-context-sidebar",Re=400;function vt(e,r){let t=localStorage.getItem(e);return t?parseInt(t,10):r}function wt(e){return localStorage.getItem(e)==="true"}function Kr(){let[e,r]=gt(wt(V.leftCollapsed)),[t,o]=gt(vt(V.leftWidth,Re));return mt(bt(e,n=>{localStorage.setItem(V.leftCollapsed,String(n))})),mt(bt(t,n=>{localStorage.setItem(V.leftWidth,String(n))})),{isSidebarCollapsed:e,setIsSidebarCollapsed:r,leftSidebarWidth:t,setLeftSidebarWidth:o}}import{onCleanup as Yr,onMount as Xr}from"solid-js";var yt=180,Gr=720,Zr=120,_t=3;function Ge(e,{isCollapsed:r,setCollapsed:t,setWidth:o}){let n=!1,a=null,i=!1,d=null,l=f=>{if(f<Zr){r()||t(!0),d=null;return}r()&&t(!1);let w=Math.min(Gr,f);o(w),d=w},c=()=>{r()||d!==null&&d<yt&&o(yt)},s=null,u=()=>{document.body.setAttribute("data-sidebar-resizing",e),s=document.createElement("div"),s.style.cssText="position:fixed;inset:0;z-index:2147483647;cursor:col-resize;",document.body.appendChild(s)},h=()=>{n=!1,a=null,document.body.style.userSelect="",document.body.removeAttribute("data-sidebar-resizing"),s?.remove(),s=null},b=f=>{f.preventDefault(),a={x:f.clientX,y:f.clientY},i=!1,d=null,n=!0,document.body.style.userSelect="none"},_=()=>{let f=n,w=i;h(),f&&w&&c()},m=f=>{if(!n||!a)return;let w=Math.abs(f.clientX-a.x),T=Math.abs(f.clientY-a.y);!i&&(w>_t||T>_t)&&(i=!0,u()),l(e==="left"?f.clientX:window.innerWidth-f.clientX)},p=f=>{if(i){f.preventDefault(),f.stopPropagation(),i=!1;return}t(w=>!w)};return Xr(()=>{document.addEventListener("mousemove",m),document.addEventListener("mouseup",_),Yr(()=>{document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",_),n&&h()})}),{handleMouseDown:b,handleToggleClick:p}}import{createEffect as Qr,createSignal as eo,onCleanup as to}from"solid-js";var ee=(e,r)=>{let[t,o]=eo(!1);return Qr(()=>{let n=r();if(!n)return;o(!1);let a=i=>{i.detail?.componentId===e&&o(!0)};n.addEventListener("patchwork:mounted",a),to(()=>n.removeEventListener("patchwork:mounted",a))}),t};import{createEffect as ro,createSignal as oo,onCleanup as no}from"solid-js";var ao=5e3,io=(e,r)=>{let[t,o]=oo(!1);return ro(()=>{if(t())return;let n=e(),a=r();if(!n||!a)return;let i=l=>{let c=l.detail;c?.url&&c.url!==a||o(!0)};n.addEventListener("patchwork:mounted",i),n.addEventListener("patchwork:no-tool",i);let d=setTimeout(()=>o(!0),ao);no(()=>{n.removeEventListener("patchwork:mounted",i),n.removeEventListener("patchwork:no-tool",i),clearTimeout(d)})}),t};import{getRegistry as so}from"@inkandswitch/patchwork-plugins";import{createMemo as lo,createSignal as co,onCleanup as uo}from"solid-js";function ae(e){let r=so("patchwork:component"),[t,o]=co(0),n=r.on("changed",()=>o(a=>a+1));return uo(n),lo(()=>(t(),(r.all?.()??[]).filter(a=>(a.tags??[]).includes(e)).map(a=>({id:a.id,name:a.name||a.id,icon:a.icon})).sort((a,i)=>a.name.localeCompare(i.name))))}import{template as ke}from"solid-js/web";import{delegateEvents as fn}from"solid-js/web";import{getOwner as mn}from"solid-js/web";import{effect as Qt}from"solid-js/web";import{setAttribute as gn}from"solid-js/web";import{memo as er}from"solid-js/web";import{insert as ue}from"solid-js/web";import{createComponent as pe}from"solid-js/web";import{For as xn,Show as ot}from"solid-js";import{template as Lt}from"solid-js/web";import{delegateEvents as Po}from"solid-js/web";import{setAttribute as Lo}from"solid-js/web";import{insert as Mo}from"solid-js/web";import"solid-js/web";import{effect as Pt}from"solid-js/web";import{use as Mt}from"solid-js/web";import{createComponent as Ze}from"solid-js/web";var At=qr(St(),1),Dt=(0,At.default)("cabbages");function Et(e){return typeof e=="object"&&typeof e!=null&&Object.getPrototypeOf(e)==Object.prototype}var Co="\uFFFC";function It(e,...r){if(r.length==0){Dt("empty patch");return}let[t,o,n]=r,a=[...t];for(;;){let i=a.shift();if(!a.length){let l=Array.isArray(o);if(Et(e)&&l&&typeof i>"u"&&typeof o[0]=="string"){delete e[o[0]];return}if(l||typeof o=="number"){if(typeof i>"u")throw new Error("cant treat top level as a seq");i=i;let[c,s]=Array.isArray(o)?o:[o,o+1],u=Array.isArray(o)&&o.length==0;if(!u&&(c==null||s==null))throw new RangeError("it's all or nothing, no half measures");let h=typeof n>"u",b=c===s&&!h,_=u&&!h,m=!b&&!h&&!_;if(typeof e[i]>"u"){if(typeof e=="string")return;typeof n=="string"?e[i]="":e[i]=[]}let p=e[i];if(Array.isArray(p)){if(_){Array.isArray(n)?p.push(...n):p.push(n);return}if(b||m){Array.isArray(n)?p.splice(c,s-c,...n):p.splice(c,s-c,n);return}if(h){p.splice(c,s-c);return}throw new Error("i don't know what happened")}if(typeof p=="string"){if(_){e[i]=p+n;return}if(m||b){e[i]=p.slice(0,c)+(typeof n=="string"?n:n.map(f=>typeof f=="string"?f:Co).join(""))+p.slice(s);return}if(h){e[i]=p.slice(0,c)+p.slice(s);return}throw new Error("i don't know what happened")}if(Et(p)&&l&&typeof o[0]=="string"){delete p[o[0]];return}throw new Error("not implemented")}if(typeof i>"u"){if(typeof o!="string")throw new Error(`can't index top-level map with ${o}`);typeof n>"u"?delete e[o]:e[o]=n;return}if(typeof e[i]>"u"&&(e[i]={}),l){let[c,s]=o;c!=null&&s!=null&&(typeof n>"u"&&c!=null&&s!=null?delete e[i][c||s]:e[i][c||s]=n)}else if(typeof n>"u")delete e[i][o];else{if(typeof e[i]=="string")return;e[i][o]=n}return}if(typeof i>"u")throw new Error("cant treat top level as a seq");i=i;let d=a[0];if(typeof e[i]>"u")if(typeof d=="string")e[i]={};else if(typeof d=="number")e[i]=[];else throw new Error(`can't go down this road ${e}.${i}.${d}`);e=e[i]}}function Tt(e,r){for(let t=0;t<r.length;t++)e=e?e[r[t]]:void 0;return e}function Rt(e,r){let t=e.path.slice(0,-1),o=e.path[e.path.length-1];switch(e.action){case"mark":case"unmark":return Dt(`skipping ${e.action} because it doesn't affect material reality`),[];case"inc":if(r)return[t,o,Tt(r.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"conflict":if(r)return[t,o,Tt(r.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"del":return typeof o=="string"?[t,o]:[t,[o,o+(e.length||1)]];case"insert":return[t,[o,o],structuredClone(e.values)];case"splice":return[t,[o,o],[e.value]];case"put":return[t,o,structuredClone(e.value)]}}function Le(e){return r=>{for(let t of e.patches)It(r,...Rt(t,e))}}import{createMemo as To}from"solid-js";import{onCleanup as $o}from"solid-js";import{createStore as So,produce as Eo,reconcile as Ft}from"solid-js/store";var ve=new WeakMap;function Me(e){if($o(()=>{let a=ve.get(e);a&&(a.refs--||a.cleanup())}),ve.has(e)){let a=ve.get(e);return a.refs++,a.store}let[r,t]=So(structuredClone(e.doc()));ve.set(e,{refs:0,store:r,cleanup(){e.off("change",o),e.off("delete",n),ve.delete(e)}});function o(a){if(a.scopeReplaced){t(Ft(a.doc??{}));return}t(Eo(Le(a)))}function n(){t(Ft({}))}return e.on("change",o),e.on("delete",n),e.whenReady().then(()=>{t(structuredClone(e.doc()))}),r}import{getOwner as Qi,onCleanup as es,createSignal as ts,untrack as rs,sharedConfig as os,onMount as ns,DEV as as,equalFn as is}from"solid-js";import{isServer as ls}from"solid-js/web";var ce=e=>typeof e=="function"&&!e.length?e():e;function Oe(e){return To(()=>ce(e)&&Me(ce(e)))}import{createEffect as Do,createResource as Io,useContext as Ro}from"solid-js";import{createContext as Ao}from"solid-js";var ze=Ao(null);function we(e,r){let t=Ro(ze);if(!r?.repo&&!t)throw new Error("use outside <RepoContext> requires options.repo");let o=r?.repo||t;function n(){if(r?.["~skipInitialValue"])return;let d=ce(e);if(!d)return;let l=o.findWithProgress(d).peek();return l.state==="ready"?l.handle:void 0}let[a,{mutate:i}]=Io(e,d=>o.findWithProgress(d).whenReady(),{initialValue:n()});return Do(()=>{ce(e)||i()}),a}function Ue(e,r){let t=we(e,r);return[Oe(t),t]}import{onCleanup as $s}from"solid-js";import{createSignal as Es}from"solid-js";import{createEffect as Ds,onCleanup as Is}from"solid-js";import{createSignal as Fs}from"solid-js";import{useContext as js}from"solid-js";import{getType as zo}from"@inkandswitch/patchwork-filesystem";import{getRegistry as Uo,isLoadedPlugin as jo}from"@inkandswitch/patchwork-plugins";import{createEffect as Wo,createMemo as je,createSignal as Qe,onCleanup as Ho,onMount as zt,Show as Ut}from"solid-js";var Ot=Lt("<span class=threepane__title-text>"),Oo=Lt("<input class=threepane__title-input type=text>");function jt(e){let r,[t,o]=Qe();return zt(()=>{o(r.closest("repo-provider")?.repo)}),Ze(Ut,{get when(){return t()},get fallback(){return(()=>{var n=Ot(),a=r;return typeof a=="function"?Mt(a,n):r=n,n})()},children:n=>Ze(No,{get docUrl(){return e.docUrl},get repo(){return n()}})})}function No(e){let[r,t]=Ue(()=>e.docUrl(),{repo:e.repo}),o=Uo("patchwork:datatype"),[n,a]=Qe(0);zt(()=>{let m=o.on("changed",()=>a(p=>p+1));Ho(m)});let i=je(()=>{let m=r();return m?zo(m):void 0});Wo(()=>{let m=i();m&&o.load(m)});let d=je(()=>{n();let m=i();if(!m)return;let p=o.get(m);return p&&jo(p)?p:void 0}),l=je(()=>{let m=r(),p=d();if(!(!m||!p))return p.module.getTitle(m)}),c=je(()=>!!t()&&typeof d()?.module.setTitle=="function"),[s,u]=Qe(!1),h;function b(){c()&&(u(!0),queueMicrotask(()=>{h?.focus(),h?.select()}))}function _(m){if(!s()||(u(!1),!m))return;let p=h?.value.trim();if(!p||p===l())return;let f=t(),w=d()?.module.setTitle;!f||!w||f.change(T=>{w(T,p);let F=T["@patchwork"];F&&(F.title=p)})}return Ze(Ut,{get when(){return s()},get fallback(){return(()=>{var m=Ot();return m.$$click=b,Mo(m,()=>l()??"Untitled"),Pt(p=>{var f=!!c(),w=c()?"Rename":void 0;return f!==p.e&&m.classList.toggle("threepane__title-text--editable",p.e=f),w!==p.t&&Lo(m,"title",p.t=w),p},{e:void 0,t:void 0}),m})()},get children(){var m=Oo();m.$$keydown=f=>{f.key==="Enter"?(f.preventDefault(),_(!0)):f.key==="Escape"&&(f.preventDefault(),_(!1))},m.addEventListener("blur",()=>_(!0));var p=h;return typeof p=="function"?Mt(p,m):h=m,Pt(()=>m.value=l()??""),m}})}Po(["keydown","click"]);import{template as xe}from"solid-js/web";import{delegateEvents as rn}from"solid-js/web";import{getOwner as on}from"solid-js/web";import{insert as _e}from"solid-js/web";import{createComponent as de}from"solid-js/web";import{Show as et}from"solid-js";import{template as qt}from"solid-js/web";import{delegateEvents as qo}from"solid-js/web";import{setStyleProperty as Bo}from"solid-js/web";import{insert as Jo}from"solid-js/web";import{setAttribute as We}from"solid-js/web";import{effect as Wt}from"solid-js/web";import{memo as ye}from"solid-js/web";import{createComponent as Ht}from"solid-js/web";import{Show as Nt}from"solid-js";var Vo=qt('<button class="sidebar-toggle sidebar-toggle--resizable">'),Ko=qt("<div class=sidebar>");function Bt(e){let r=()=>`${e.isCollapsed()?0:e.width()}px`,t=()=>e.canExpand?.()??!0,o=()=>Ht(Nt,{get when(){return!e.isCollapsed()},get children(){return e.children}}),n=()=>Ht(Nt,{get when(){return!e.isCollapsed()||t()},get children(){var a=Vo();return a.$$mousedown=i=>e.onMouseDown(i),a.$$click=i=>e.onToggleClick(i),Wt(i=>{var d=e.isCollapsed()?"Expand sidebar":"Toggle or resize sidebar",l=e.isCollapsed()?"Click to expand, drag to resize":"Click to toggle, drag to resize";return d!==i.e&&We(a,"aria-label",i.e=d),l!==i.t&&We(a,"title",i.t=l),i},{e:void 0,t:void 0}),a}});return(()=>{var a=Ko();return Jo(a,(()=>{var i=ye(()=>e.side==="left");return()=>i()?[ye(o),ye(n)]:[ye(n),ye(o)]})()),Wt(i=>{var d=e.side,l=e.isCollapsed()?"":void 0,c=r();return d!==i.e&&We(a,"data-side",i.e=d),l!==i.t&&We(a,"data-collapsed",i.t=l),c!==i.a&&Bo(a,"width",i.a=c),i},{e:void 0,t:void 0,a:void 0}),a})()}qo(["click","mousedown"]);import{template as Vt}from"solid-js/web";import{delegateEvents as Yo}from"solid-js/web";import{setAttribute as Xo}from"solid-js/web";import{effect as Go}from"solid-js/web";import{insert as Jt}from"solid-js/web";import{createComponent as Zo}from"solid-js/web";import{For as tn}from"solid-js";var Qo=Vt("<div role=tablist class=context-sidebar__tablist>"),en=Vt("<button type=button role=tab class=context-sidebar__tab>");function Kt(e){let r=()=>{let t=e.items().map(n=>n.id),o=e.selectedToolId();return o&&t.includes(o)?o:t[0]};return(()=>{var t=Qo();return Jt(t,Zo(tn,{get each(){return e.items()},children:o=>(()=>{var n=en();return n.$$click=()=>e.setSelectedToolId(o.id),Jt(n,()=>o.name),Go(()=>Xo(n,"data-active",r()===o.id?"":void 0)),n})()})),t})()}Yo(["click"]);var nn=xe('<div class=context-sidebar__tabs><button type=button class=context-sidebar__close title="Hide context sidebar"aria-label="Hide context sidebar">'),an=xe("<div class=context-sidebar__content>"),sn=xe("<div class=context-sidebar>"),ln=xe("<patchwork-view>",!0,!1,!1),cn=xe('<svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=var(--studio-chrome-line) stroke-width=1.75 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2></rect><path d="M15 3v18">');function Yt(e){let r=ae("context-tool"),t=()=>{let o=r().map(a=>a.id),n=e.selectedToolId();return n&&o.includes(n)?n:o[0]};return de(Bt,{side:"right",get isCollapsed(){return e.isCollapsed},get width(){return e.width},get onMouseDown(){return e.onMouseDown},get onToggleClick(){return e.onToggleClick},get canExpand(){return e.canExpand},get children(){var o=sn();return _e(o,de(et,{get when(){return r().length},get children(){var n=nn(),a=n.firstChild;return _e(n,de(Kt,{items:r,get selectedToolId(){return e.selectedToolId},get setSelectedToolId(){return e.setSelectedToolId}}),a),a.$$click=()=>e.onCollapse(),_e(a,de(tt,{})),n}}),null),_e(o,de(et,{get when(){return!e.isCollapsed()},get children(){var n=an();return _e(n,de(et,{get when(){return t()},keyed:!0,children:a=>(()=>{var i=ln();return i.component=a,i._$owner=on(),i})()})),n}}),null),o}})}function tt(){return cn()}rn(["click"]);import{template as dn}from"solid-js/web";import{effect as Xt}from"solid-js/web";import{getOwner as Gt}from"solid-js/web";import{createComponent as un}from"solid-js/web";import{memo as pn}from"solid-js/web";import{Show as hn}from"solid-js";var Zt=dn("<patchwork-view>",!0,!1,!1),rt=e=>Array.isArray(e)?String(e[0]):String(e);function Xl(e){let r=new Set;return e.filter(t=>{let o=rt(t);return r.has(o)?!1:(r.add(o),!0)})}function Gl(e){return un(hn,{get when(){return pn(()=>!!Array.isArray(e.slot))()?e.slot:!1},get fallback(){return(()=>{var r=Zt();return r._$owner=Gt(),Xt(()=>r.component=String(e.slot)),r})()},children:r=>(()=>{var t=Zt();return t._$owner=Gt(),Xt(o=>{var n=r()[1],a=r()[0];return n!==o.e&&(t.docUrl=o.e=n),a!==o.t&&(t.toolId=o.t=a),o},{e:void 0,t:void 0}),t})()})}var bn=ke("<div class=threepane__title>"),vn=ke("<div class=threepane__doctitle-tools>"),wn=ke('<button type=button class=frame__sidebar-toggle title="Show context sidebar"aria-label="Show context sidebar">'),yn=ke("<div class=frame__topbar><div class=threepane__spacer>"),_n=ke("<patchwork-view>",!0,!1,!1);function tr(e){let r=()=>e.toolSlots()??[];return(()=>{var t=yn(),o=t.firstChild;return ue(t,pe(ot,{get when(){return e.docUrl()},get children(){var n=bn();return ue(n,pe(jt,{get docUrl(){return e.docUrl}})),n}}),o),ue(t,pe(ot,{get when(){return er(()=>!!e.docUrl())()&&r().length},get children(){var n=vn();return ue(n,pe(xn,{get each(){return r()},children:a=>(()=>{var i=_n();return i._$owner=mn(),Qt(d=>{var l=rt(a),c=e.docUrl();return l!==d.e&&(i.toolId=d.e=l),c!==d.t&&(i.docUrl=d.t=c),d},{e:void 0,t:void 0}),i})()})),n}}),null),ue(t,pe(ot,{get when(){return er(()=>!!e.hasContext())()&&e.isRightCollapsed()},get children(){var n=wn();return n.$$click=()=>e.onToggleRight(),gn(n,"aria-pressed",!1),ue(n,pe(tt,{})),n}}),null),Qt(()=>t.classList.toggle("frame__topbar--left-collapsed",!!e.isLeftCollapsed())),t})()}fn(["click"]);import{template as Ve}from"solid-js/web";import{effect as Ar}from"solid-js/web";import{getOwner as Dr}from"solid-js/web";import{insert as Y}from"solid-js/web";import{createComponent as R}from"solid-js/web";import{memo as Se}from"solid-js/web";import{use as Ir}from"solid-js/web";import{parseAutomergeUrl as Wa}from"@automerge/automerge-repo/slim";import{getSuggestedImportUrl as Ha,getType as Na}from"@inkandswitch/patchwork-filesystem";import{getFallbackTool as qa,getRegistry as Ba}from"@inkandswitch/patchwork-plugins";import{createEffect as ut,createMemo as Je,createSignal as K,onCleanup as oe,onMount as Ja,Show as B}from"solid-js";import{template as C}from"solid-js/web";import{delegateEvents as sa}from"solid-js/web";import{setAttribute as Be}from"solid-js/web";import{effect as ct}from"solid-js/web";import"solid-js/web";import{createComponent as D}from"solid-js/web";import{insert as I}from"solid-js/web";import{use as la}from"solid-js/web";import{importPackage as Ra}from"@inkandswitch/patchwork-filesystem";import{registerPlugins as Fa}from"@inkandswitch/patchwork-plugins";import{createResource as Pa,createSignal as fe,onCleanup as lt,onMount as La,Show as q}from"solid-js";import{template as k}from"solid-js/web";import{delegateEvents as Dn}from"solid-js/web";import{effect as hr}from"solid-js/web";import{memo as In}from"solid-js/web";import{insert as v}from"solid-js/web";import{createComponent as x}from"solid-js/web";import{use as Rn}from"solid-js/web";import{setAttribute as Ce}from"solid-js/web";import{createResource as ta,createSignal as Ne,For as st,Match as he,onMount as ra,Show as z,Switch as cr}from"solid-js";import*as or from"@automerge/automerge/slim";import{getImportableUrlFromAutomergeUrl as kn}from"@inkandswitch/patchwork-filesystem";var nt=e=>e.startsWith("automerge:");function Cn(e){return e.replace(/[#?].*$/,"")}function nr(e){let r=e.split("#")[1];return r?r.split("|").filter(Boolean):[]}var N=e=>typeof e=="string"&&e.trim()?e.trim():void 0;function $n(e){if(typeof e=="string")return N(e);if(e&&typeof e=="object"){let{name:r,email:t}=e,o=N(r),n=N(t);return o&&n?`${o} <${n}>`:o??n}}function ar(e){if(!e||typeof e!="object")return{};let r=e,t=r.supportedDatatypes;return{id:N(r.id),name:N(r.name),type:N(r.type),supportedDatatypes:typeof t=="string"?[t]:Array.isArray(t)?t.filter(o=>typeof o=="string"):void 0}}async function rr(e){try{let r=await fetch(e);return r.ok?await r.json():void 0}catch{return}}var Sn=new Set(["dist","build","lib","out","esm","src","public"]);async function En(e){if(nt(e)){let o=kn(e);return rr(new URL("package.json",o).href)}let r;try{r=new URL(e)}catch{return}let t=r.pathname.split("/").filter(Boolean);for(/\.[a-z0-9]+$/i.test(t.at(-1)??"")&&t.pop();;){let o=`${r.origin}/${t.join("/")}${t.length?"/":""}`,n=await rr(new URL("package.json",o).href);if(n&&typeof n=="object")return n;if(!Sn.has(t.at(-1)?.toLowerCase()??""))return;t.pop()}}async function ir(e){let r=await En(e);if(r)return{name:N(r.name),title:N(r.title),version:N(r.version),description:N(r.description),author:$n(r.author),plugins:Array.isArray(r.plugins)?r.plugins.map(ar):void 0}}var He,Tn=1,re=new Map;function An(){if(He)return He;let e=new Worker("/module-loader-worker.js",{type:"module",name:"threepane-package-preview"});return e.addEventListener("message",r=>{let t=r.data,o=t&&re.get(t.id);o&&(re.delete(t.id),t.type==="descriptors"?o.resolve(t.descriptors.map(ar)):o.reject(new Error(t.error)))}),e.addEventListener("error",r=>{let t=new Error(`the background worker stopped: ${r.message??"no reason given"}`);for(let o of re.values())o.reject(t);re.clear(),He=void 0}),He=e,e}function sr(e,r=15e3){let t=Tn++;return new Promise((o,n)=>{let a=setTimeout(()=>{re.delete(t)&&n(new Error("it took too long to answer"))},r);re.set(t,{resolve:i=>{clearTimeout(a),o(i)},reject:i=>{clearTimeout(a),n(i)}});try{An().postMessage({type:"discover",id:t,url:e})}catch(i){clearTimeout(a),re.delete(t),n(i instanceof Error?i:new Error(String(i)))}})}async function lr(e,r){let t=await e.find(Cn(r)),o=t.doc();await new Promise(i=>setTimeout(i,0));let n=or.getChangesMetaSince(o,[]),a=new Map;for(let i of n){let d=i.time??0,l=a.get(i.actor);if(!l){a.set(i.actor,{actor:i.actor,changes:1,first:d,last:d});continue}l.changes++,d&&(!l.first||d<l.first)&&(l.first=d),d>l.last&&(l.last=d)}return{heads:[...t.heads()],changes:n.length,writers:[...a.values()].sort((i,d)=>d.changes-i.changes)}}var Fn=k("<button type=button class=doc-card__link>see package details"),Pn=k("<p class=pkg-about__quiet>reading\u2026"),Ln=k("<p class=pkg-about__quiet>no package.json."),Mn=k("<dl class=pkg-about__facts><dt>plugins</dt><dd>"),On=k("<dt>pinned"),it=k("<dd>"),at=k("<dt>history"),zn=k("<dd class=pkg-about__quiet>reading\u2026"),Un=k("<dd class=pkg-about__quiet>couldn't get its folder."),jn=k('<div class=pkg-about popover=auto><header class=pkg-about__header><h3 class=doc-card__rough></h3><button type=button class="doc-card__link pkg-about__close"popovertargetaction=hide aria-label=close>\xD7</button></header><section class="pkg-about__section pkg-about__section--claims"><h4>self-reported <span class=pkg-about__tag>unverified</span></h4></section><section class=pkg-about__section><h4>source</h4><dl class=pkg-about__facts><dt>url</dt><dd><code class="doc-card__code doc-card__url">'),Wn=k("<span class=pkg-about__version> "),Hn=k("<button type=button class=doc-card__link>"),Nn=k("<span class=pkg-about__quiet>unknown until loaded"),qn=k("<p class=doc-card__notice>"),Bn=k("<dt>heads"),Jn=k("<dd> <!>, <!> <p class=pkg-about__quiet>writers are devices, not people. folder only."),Vn=k("<dt>"),fr=k("<ul class=pkg-about__list>"),Kn=k("<span>nothing"),Yn=k("<span class=pkg-about__quiet> for "),Xn=k("<li>"),mr=k("<span class=pkg-about__quiet> \xB7 "),Gn=k("<span class=pkg-about__heads>"),Zn=k("<code class=doc-card__code>"),Qn=k("<li class=pkg-about__quiet>and <!> more"),ea=k("<li><code class=doc-card__code></code> <!> "),oa=0;function gr(e){let r=`pkg-about-${++oa}`,t=nt(e.url),o=nr(e.url),[n,a]=Ne(!1),[i]=ta(()=>n()&&t?e.url:void 0,f=>lr(e.repo,f)),[d,l]=Ne(!1),[c,s]=Ne(),[u,h]=Ne();async function b(){if(window.confirm(`Listing its plugins runs the package's code in a background worker.
|
|
1
|
+
import{a as Ye,b as Br}from"./chunk-FW4363Y4.js";var kt=Ye((Hi,xt)=>{var ie=1e3,se=ie*60,le=se*60,te=le*24,ho=te*7,fo=te*365.25;xt.exports=function(e,r){r=r||{};var t=typeof e;if(t==="string"&&e.length>0)return mo(e);if(t==="number"&&isFinite(e))return r.long?bo(e):go(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function mo(e){if(e=String(e),!(e.length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var t=parseFloat(r[1]),o=(r[2]||"ms").toLowerCase();switch(o){case"years":case"year":case"yrs":case"yr":case"y":return t*fo;case"weeks":case"week":case"w":return t*ho;case"days":case"day":case"d":return t*te;case"hours":case"hour":case"hrs":case"hr":case"h":return t*le;case"minutes":case"minute":case"mins":case"min":case"m":return t*se;case"seconds":case"second":case"secs":case"sec":case"s":return t*ie;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function go(e){var r=Math.abs(e);return r>=te?Math.round(e/te)+"d":r>=le?Math.round(e/le)+"h":r>=se?Math.round(e/se)+"m":r>=ie?Math.round(e/ie)+"s":e+"ms"}function bo(e){var r=Math.abs(e);return r>=te?Fe(e,r,te,"day"):r>=le?Fe(e,r,le,"hour"):r>=se?Fe(e,r,se,"minute"):r>=ie?Fe(e,r,ie,"second"):e+" ms"}function Fe(e,r,t,o){var n=r>=t*1.5;return Math.round(e/t)+" "+o+(n?"s":"")}});var $t=Ye((qi,Ct)=>{function vo(e){t.debug=t,t.default=t,t.coerce=l,t.disable=i,t.enable=n,t.enabled=u,t.humanize=kt(),t.destroy=c,Object.keys(e).forEach(s=>{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={};function r(s){let h=0;for(let f=0;f<s.length;f++)h=(h<<5)-h+s.charCodeAt(f),h|=0;return t.colors[Math.abs(h)%t.colors.length]}t.selectColor=r;function t(s){let h,f=null,b,y;function x(...p){if(!x.enabled)return;let d=x,g=Number(new Date),$=g-(h||g);d.diff=$,d.prev=h,d.curr=g,h=g,p[0]=t.coerce(p[0]),typeof p[0]!="string"&&p.unshift("%O");let F=0;p[0]=p[0].replace(/%([a-zA-Z%])/g,(j,Q)=>{if(j==="%%")return"%";F++;let O=t.formatters[Q];if(typeof O=="function"){let J=p[F];j=O.call(d,J),p.splice(F,1),F--}return j}),t.formatArgs.call(d,p),(d.log||t.log).apply(d,p)}return x.namespace=s,x.useColors=t.useColors(),x.color=t.selectColor(s),x.extend=o,x.destroy=t.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>f!==null?f:(b!==t.namespaces&&(b=t.namespaces,y=t.enabled(s)),y),set:p=>{f=p}}),typeof t.init=="function"&&t.init(x),x}function o(s,h){let f=t(this.namespace+(typeof h>"u"?":":h)+s);return f.log=this.log,f}function n(s){t.save(s),t.namespaces=s,t.names=[],t.skips=[];let h=(typeof s=="string"?s:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let f of h)f[0]==="-"?t.skips.push(f.slice(1)):t.names.push(f)}function a(s,h){let f=0,b=0,y=-1,x=0;for(;f<s.length;)if(b<h.length&&(h[b]===s[f]||h[b]==="*"))h[b]==="*"?(y=b,x=f,b++):(f++,b++);else if(y!==-1)b=y+1,x++,f=x;else return!1;for(;b<h.length&&h[b]==="*";)b++;return b===h.length}function i(){let s=[...t.names,...t.skips.map(h=>"-"+h)].join(",");return t.enable(""),s}function u(s){for(let h of t.skips)if(a(s,h))return!1;for(let h of t.names)if(a(s,h))return!0;return!1}function l(s){return s instanceof Error?s.stack||s.message:s}function c(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.enable(t.load()),t}Ct.exports=vo});var St=Ye((L,Pe)=>{L.formatArgs=yo;L.save=_o;L.load=xo;L.useColors=wo;L.storage=ko();L.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();L.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function wo(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function yo(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+Pe.exports.humanize(this.diff),!this.useColors)return;let r="color: "+this.color;e.splice(1,0,r,"color: inherit");let t=0,o=0;e[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(t++,n==="%c"&&(o=t))}),e.splice(o,0,r)}L.log=console.debug||console.log||(()=>{});function _o(e){try{e?L.storage.setItem("debug",e):L.storage.removeItem("debug")}catch{}}function xo(){let e;try{e=L.storage.getItem("debug")||L.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function ko(){try{return localStorage}catch{}}Pe.exports=$t()(L);var{formatters:Co}=Pe.exports;Co.j=function(e){try{return JSON.stringify(e)}catch(r){return"[UnexpectedJSONParseError]: "+r.message}}});import{template as Hr}from"solid-js/web";import{createComponent as si}from"solid-js/web";import{setAttribute as li}from"solid-js/web";import{effect as ci}from"solid-js/web";import{insert as qr}from"solid-js/web";import{getOwner as di}from"solid-js/web";import{createMemo as Wr}from"solid-js";import{createStore as hi,reconcile as fi}from"solid-js/store";import{render as mi}from"solid-js/web";import{template as Ae}from"solid-js/web";import{insert as ne}from"solid-js/web";import{getOwner as Ee}from"solid-js/web";import{use as Te}from"solid-js/web";import{createComponent as U}from"solid-js/web";import{createUniqueId as Jr,untrack as ht}from"solid-js";import{isServer as Vr,isDev as ft}from"solid-js/web";import{reconcile as Kr}from"solid-js/store";function Xe(e,r={}){let t=r.storage||globalThis.localStorage,o=r.name||`storage-${Jr()}`;if(!t)return Object.assign(e,{2:null});let n=r.storageOptions,a=r.serialize||JSON.stringify.bind(JSON),i=r.deserialize||JSON.parse.bind(JSON),u=t.getItem(o,n),l=typeof e[0]=="function"?s=>{try{let h=i(s);e[1](()=>h)}catch(h){ft&&console.warn(h)}}:s=>{try{let h=i(s);e[1](Kr(h))}catch(h){ft&&console.warn(h)}},c=!0;if(u instanceof Promise?u.then(s=>c&&s&&l(s)):u&&l(u),typeof r.sync?.[0]=="function"){let s=typeof e[0]=="function"?e[0]:()=>e[0];r.sync[0](h=>{h.key!==o||!Vr&&(h.url||globalThis.location.href)!==globalThis.location.href||h.newValue===a(ht(s))||l(h.newValue)})}return Object.assign([],e,{1:typeof e[0]=="function"?s=>{let h=e[1](s),f=s!=null?a(h):s;return r.sync?.[1](o,f),f!=null?t.setItem(o,f,n):t.removeItem(o,n),c=!1,h}:(...s)=>{e[1](...s);let h=ht(()=>a(e[0]));r.sync?.[1](o,h),t.setItem(o,h,n),c=!1},2:u})}import{createEffect as Mr,createMemo as pt,createSignal as Z,on as Or,onCleanup as oi,onMount as ni,Show as me}from"solid-js";import{createEffect as mt,createSignal as gt,on as bt}from"solid-js";var V={leftCollapsed:"patchwork:leftSidebarCollapsed",rightCollapsed:"patchwork:rightSidebarCollapsed",leftWidth:"patchwork:leftSidebarWidth",rightWidth:"patchwork:rightSidebarWidth",contextToolId:"patchwork:contextSidebarToolId"},Ie="patchwork:collapse-context-sidebar",Re=400;function vt(e,r){let t=localStorage.getItem(e);return t?parseInt(t,10):r}function wt(e){return localStorage.getItem(e)==="true"}function Yr(){let[e,r]=gt(wt(V.leftCollapsed)),[t,o]=gt(vt(V.leftWidth,Re));return mt(bt(e,n=>{localStorage.setItem(V.leftCollapsed,String(n))})),mt(bt(t,n=>{localStorage.setItem(V.leftWidth,String(n))})),{isSidebarCollapsed:e,setIsSidebarCollapsed:r,leftSidebarWidth:t,setLeftSidebarWidth:o}}import{onCleanup as Xr,onMount as Gr}from"solid-js";var yt=180,Zr=720,Qr=120,_t=3;function Ge(e,{isCollapsed:r,setCollapsed:t,setWidth:o}){let n=!1,a=null,i=!1,u=null,l=d=>{if(d<Qr){r()||t(!0),u=null;return}r()&&t(!1);let g=Math.min(Zr,d);o(g),u=g},c=()=>{r()||u!==null&&u<yt&&o(yt)},s=null,h=()=>{document.body.setAttribute("data-sidebar-resizing",e),s=document.createElement("div"),s.style.cssText="position:fixed;inset:0;z-index:2147483647;cursor:col-resize;",document.body.appendChild(s)},f=()=>{n=!1,a=null,document.body.style.userSelect="",document.body.removeAttribute("data-sidebar-resizing"),s?.remove(),s=null},b=d=>{d.preventDefault(),a={x:d.clientX,y:d.clientY},i=!1,u=null,n=!0,document.body.style.userSelect="none"},y=()=>{let d=n,g=i;f(),d&&g&&c()},x=d=>{if(!n||!a)return;let g=Math.abs(d.clientX-a.x),$=Math.abs(d.clientY-a.y);!i&&(g>_t||$>_t)&&(i=!0,h()),l(e==="left"?d.clientX:window.innerWidth-d.clientX)},p=d=>{if(i){d.preventDefault(),d.stopPropagation(),i=!1;return}t(g=>!g)};return Gr(()=>{document.addEventListener("mousemove",x),document.addEventListener("mouseup",y),Xr(()=>{document.removeEventListener("mousemove",x),document.removeEventListener("mouseup",y),n&&f()})}),{handleMouseDown:b,handleToggleClick:p}}import{createEffect as eo,createSignal as to,onCleanup as ro}from"solid-js";var ee=(e,r)=>{let[t,o]=to(!1);return eo(()=>{let n=r();if(!n)return;o(!1);let a=i=>{i.detail?.componentId===e&&o(!0)};n.addEventListener("patchwork:mounted",a),ro(()=>n.removeEventListener("patchwork:mounted",a))}),t};import{createEffect as oo,createSignal as no,onCleanup as ao}from"solid-js";var io=5e3,so=(e,r)=>{let[t,o]=no(!1);return oo(()=>{if(t())return;let n=e(),a=r();if(!n||!a)return;let i=l=>{let c=l.detail;c?.url&&c.url!==a||o(!0)};n.addEventListener("patchwork:mounted",i),n.addEventListener("patchwork:no-tool",i);let u=setTimeout(()=>o(!0),io);ao(()=>{n.removeEventListener("patchwork:mounted",i),n.removeEventListener("patchwork:no-tool",i),clearTimeout(u)})}),t};import{getRegistry as lo}from"@inkandswitch/patchwork-plugins";import{createMemo as co,createSignal as uo,onCleanup as po}from"solid-js";function ae(e){let r=lo("patchwork:component"),[t,o]=uo(0),n=r.on("changed",()=>o(a=>a+1));return po(n),co(()=>(t(),(r.all?.()??[]).filter(a=>(a.tags??[]).includes(e)).map(a=>({id:a.id,name:a.name||a.id,icon:a.icon})).sort((a,i)=>a.name.localeCompare(i.name))))}import{template as ke}from"solid-js/web";import{delegateEvents as fn}from"solid-js/web";import{getOwner as mn}from"solid-js/web";import{effect as er}from"solid-js/web";import{setAttribute as gn}from"solid-js/web";import{memo as tr}from"solid-js/web";import{insert as ue}from"solid-js/web";import{createComponent as pe}from"solid-js/web";import{For as xn,Show as ot}from"solid-js";import{template as Mt}from"solid-js/web";import{delegateEvents as Lo}from"solid-js/web";import{insert as Mo}from"solid-js/web";import"solid-js/web";import{setAttribute as Pt}from"solid-js/web";import{effect as Lt}from"solid-js/web";import{use as Ot}from"solid-js/web";import{createComponent as Ze}from"solid-js/web";var At=Br(St(),1),Dt=(0,At.default)("cabbages");function Et(e){return typeof e=="object"&&typeof e!=null&&Object.getPrototypeOf(e)==Object.prototype}var $o="\uFFFC";function It(e,...r){if(r.length==0){Dt("empty patch");return}let[t,o,n]=r,a=[...t];for(;;){let i=a.shift();if(!a.length){let l=Array.isArray(o);if(Et(e)&&l&&typeof i>"u"&&typeof o[0]=="string"){delete e[o[0]];return}if(l||typeof o=="number"){if(typeof i>"u")throw new Error("cant treat top level as a seq");i=i;let[c,s]=Array.isArray(o)?o:[o,o+1],h=Array.isArray(o)&&o.length==0;if(!h&&(c==null||s==null))throw new RangeError("it's all or nothing, no half measures");let f=typeof n>"u",b=c===s&&!f,y=h&&!f,x=!b&&!f&&!y;if(typeof e[i]>"u"){if(typeof e=="string")return;typeof n=="string"?e[i]="":e[i]=[]}let p=e[i];if(Array.isArray(p)){if(y){Array.isArray(n)?p.push(...n):p.push(n);return}if(b||x){Array.isArray(n)?p.splice(c,s-c,...n):p.splice(c,s-c,n);return}if(f){p.splice(c,s-c);return}throw new Error("i don't know what happened")}if(typeof p=="string"){if(y){e[i]=p+n;return}if(x||b){e[i]=p.slice(0,c)+(typeof n=="string"?n:n.map(d=>typeof d=="string"?d:$o).join(""))+p.slice(s);return}if(f){e[i]=p.slice(0,c)+p.slice(s);return}throw new Error("i don't know what happened")}if(Et(p)&&l&&typeof o[0]=="string"){delete p[o[0]];return}throw new Error("not implemented")}if(typeof i>"u"){if(typeof o!="string")throw new Error(`can't index top-level map with ${o}`);typeof n>"u"?delete e[o]:e[o]=n;return}if(typeof e[i]>"u"&&(e[i]={}),l){let[c,s]=o;c!=null&&s!=null&&(typeof n>"u"&&c!=null&&s!=null?delete e[i][c||s]:e[i][c||s]=n)}else if(typeof n>"u")delete e[i][o];else{if(typeof e[i]=="string")return;e[i][o]=n}return}if(typeof i>"u")throw new Error("cant treat top level as a seq");i=i;let u=a[0];if(typeof e[i]>"u")if(typeof u=="string")e[i]={};else if(typeof u=="number")e[i]=[];else throw new Error(`can't go down this road ${e}.${i}.${u}`);e=e[i]}}function Tt(e,r){for(let t=0;t<r.length;t++)e=e?e[r[t]]:void 0;return e}function Rt(e,r){let t=e.path.slice(0,-1),o=e.path[e.path.length-1];switch(e.action){case"mark":case"unmark":return Dt(`skipping ${e.action} because it doesn't affect material reality`),[];case"inc":if(r)return[t,o,Tt(r.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"conflict":if(r)return[t,o,Tt(r.patchInfo.after,e.path)];throw new Error(`can't apply ${e.action} without payload argument`);case"del":return typeof o=="string"?[t,o]:[t,[o,o+(e.length||1)]];case"insert":return[t,[o,o],structuredClone(e.values)];case"splice":return[t,[o,o],[e.value]];case"put":return[t,o,structuredClone(e.value)]}}function Le(e){return r=>{for(let t of e.patches)It(r,...Rt(t,e))}}import{createMemo as Ao}from"solid-js";import{onCleanup as So}from"solid-js";import{createStore as Eo,produce as To,reconcile as Ft}from"solid-js/store";var ve=new WeakMap;function Me(e){if(So(()=>{let a=ve.get(e);a&&(a.refs--||a.cleanup())}),ve.has(e)){let a=ve.get(e);return a.refs++,a.store}let[r,t]=Eo(structuredClone(e.doc()));ve.set(e,{refs:0,store:r,cleanup(){e.off("change",o),e.off("delete",n),ve.delete(e)}});function o(a){if(a.scopeReplaced){t(Ft(a.doc??{}));return}t(To(Le(a)))}function n(){t(Ft({}))}return e.on("change",o),e.on("delete",n),e.whenReady().then(()=>{t(structuredClone(e.doc()))}),r}import{getOwner as Qi,onCleanup as es,createSignal as ts,untrack as rs,sharedConfig as os,onMount as ns,DEV as as,equalFn as is}from"solid-js";import{isServer as ls}from"solid-js/web";var ce=e=>typeof e=="function"&&!e.length?e():e;function Oe(e){return Ao(()=>ce(e)&&Me(ce(e)))}import{createEffect as Io,createResource as Ro,useContext as Fo}from"solid-js";import{createContext as Do}from"solid-js";var ze=Do(null);function we(e,r){let t=Fo(ze);if(!r?.repo&&!t)throw new Error("use outside <RepoContext> requires options.repo");let o=r?.repo||t;function n(){if(r?.["~skipInitialValue"])return;let u=ce(e);if(!u)return;let l=o.findWithProgress(u).peek();return l.state==="ready"?l.handle:void 0}let[a,{mutate:i}]=Ro(e,u=>o.findWithProgress(u).whenReady(),{initialValue:n()});return Io(()=>{ce(e)||i()}),a}function Ue(e,r){let t=we(e,r);return[Oe(t),t]}import{onCleanup as $s}from"solid-js";import{createSignal as Es}from"solid-js";import{createEffect as Ds,onCleanup as Is}from"solid-js";import{createSignal as Fs}from"solid-js";import{useContext as js}from"solid-js";import{getType as zo}from"@inkandswitch/patchwork-filesystem";import{getRegistry as Uo,isLoadedPlugin as jo}from"@inkandswitch/patchwork-plugins";import{createEffect as Wo,createMemo as je,createSignal as Qe,onCleanup as No,onMount as Ut,Show as jt}from"solid-js";var zt=Mt("<span class=threepane__title-text>"),Oo=Mt("<input class=threepane__title-input type=text>");function Wt(e){let r,[t,o]=Qe();return Ut(()=>{o(r.closest("repo-provider")?.repo)}),Ze(jt,{get when(){return t()},get fallback(){return(()=>{var n=zt(),a=r;return typeof a=="function"?Ot(a,n):r=n,n})()},children:n=>Ze(Ho,{get docUrl(){return e.docUrl},get repo(){return n()}})})}function Ho(e){let[r,t]=Ue(()=>e.docUrl(),{repo:e.repo}),o=Uo("patchwork:datatype"),[n,a]=Qe(0);Ut(()=>{let p=o.on("changed",()=>a(d=>d+1));No(p)});let i=je(()=>{let p=r();return p?zo(p):void 0});Wo(()=>{let p=i();p&&o.load(p)});let u=je(()=>{n();let p=i();if(!p)return;let d=o.get(p);return d&&jo(d)?d:void 0}),l=je(()=>{let p=r(),d=u();if(!(!p||!d))return d.module.getTitle(p)}),c=je(()=>!!t()&&typeof u()?.module.setTitle=="function"),[s,h]=Qe(!1),f;function b(){c()&&(h(!0),queueMicrotask(()=>{f?.focus(),f?.select()}))}function y(p){if(!s()||(h(!1),!p))return;let d=f?.value.trim();if(!d||d===l())return;let g=t(),$=u()?.module.setTitle;!g||!$||g.change(F=>{$(F,d);let P=F["@patchwork"];P&&(P.title=d)})}function x(p){let d=e.docUrl(),g=p.dataTransfer;if(!d||!g)return;let $=l()??"Untitled",F=i();g.effectAllowed="copyLink",g.setData("text/x-patchwork-dnd",JSON.stringify({source:"threepane",items:[{url:d,name:$,type:F}]})),g.setData("text/x-patchwork-urls",JSON.stringify([d])),g.setData("text/uri-list",`${location.origin}${location.pathname}#doc=${d}\r
|
|
2
|
+
`),g.setData("text/plain",d)}return Ze(jt,{get when(){return s()},get fallback(){return(()=>{var p=zt();return p.$$click=b,p.addEventListener("dragstart",x),Pt(p,"draggable",!0),Mo(p,()=>l()??"Untitled"),Lt(d=>{var g=!!c(),$=c()?"Rename":void 0;return g!==d.e&&p.classList.toggle("threepane__title-text--editable",d.e=g),$!==d.t&&Pt(p,"title",d.t=$),d},{e:void 0,t:void 0}),p})()},get children(){var p=Oo();p.$$keydown=g=>{g.key==="Enter"?(g.preventDefault(),y(!0)):g.key==="Escape"&&(g.preventDefault(),y(!1))},p.addEventListener("blur",()=>y(!0));var d=f;return typeof d=="function"?Ot(d,p):f=p,Lt(()=>p.value=l()??""),p}})}Lo(["keydown","click"]);import{template as xe}from"solid-js/web";import{delegateEvents as rn}from"solid-js/web";import{getOwner as on}from"solid-js/web";import{insert as _e}from"solid-js/web";import{createComponent as de}from"solid-js/web";import{Show as et}from"solid-js";import{template as Bt}from"solid-js/web";import{delegateEvents as qo}from"solid-js/web";import{setStyleProperty as Bo}from"solid-js/web";import{insert as Jo}from"solid-js/web";import{setAttribute as We}from"solid-js/web";import{effect as Nt}from"solid-js/web";import{memo as ye}from"solid-js/web";import{createComponent as Ht}from"solid-js/web";import{Show as qt}from"solid-js";var Vo=Bt('<button class="sidebar-toggle sidebar-toggle--resizable">'),Ko=Bt("<div class=sidebar>");function Jt(e){let r=()=>`${e.isCollapsed()?0:e.width()}px`,t=()=>e.canExpand?.()??!0,o=()=>Ht(qt,{get when(){return!e.isCollapsed()},get children(){return e.children}}),n=()=>Ht(qt,{get when(){return!e.isCollapsed()||t()},get children(){var a=Vo();return a.$$mousedown=i=>e.onMouseDown(i),a.$$click=i=>e.onToggleClick(i),Nt(i=>{var u=e.isCollapsed()?"Expand sidebar":"Toggle or resize sidebar",l=e.isCollapsed()?"Click to expand, drag to resize":"Click to toggle, drag to resize";return u!==i.e&&We(a,"aria-label",i.e=u),l!==i.t&&We(a,"title",i.t=l),i},{e:void 0,t:void 0}),a}});return(()=>{var a=Ko();return Jo(a,(()=>{var i=ye(()=>e.side==="left");return()=>i()?[ye(o),ye(n)]:[ye(n),ye(o)]})()),Nt(i=>{var u=e.side,l=e.isCollapsed()?"":void 0,c=r();return u!==i.e&&We(a,"data-side",i.e=u),l!==i.t&&We(a,"data-collapsed",i.t=l),c!==i.a&&Bo(a,"width",i.a=c),i},{e:void 0,t:void 0,a:void 0}),a})()}qo(["click","mousedown"]);import{template as Kt}from"solid-js/web";import{delegateEvents as Yo}from"solid-js/web";import{setAttribute as Xo}from"solid-js/web";import{effect as Go}from"solid-js/web";import{insert as Vt}from"solid-js/web";import{createComponent as Zo}from"solid-js/web";import{For as tn}from"solid-js";var Qo=Kt("<div role=tablist class=context-sidebar__tablist>"),en=Kt("<button type=button role=tab class=context-sidebar__tab>");function Yt(e){let r=()=>{let t=e.items().map(n=>n.id),o=e.selectedToolId();return o&&t.includes(o)?o:t[0]};return(()=>{var t=Qo();return Vt(t,Zo(tn,{get each(){return e.items()},children:o=>(()=>{var n=en();return n.$$click=()=>e.setSelectedToolId(o.id),Vt(n,()=>o.name),Go(()=>Xo(n,"data-active",r()===o.id?"":void 0)),n})()})),t})()}Yo(["click"]);var nn=xe('<div class=context-sidebar__tabs><button type=button class=context-sidebar__close title="Hide context sidebar"aria-label="Hide context sidebar">'),an=xe("<div class=context-sidebar__content>"),sn=xe("<div class=context-sidebar>"),ln=xe("<patchwork-view>",!0,!1,!1),cn=xe('<svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=var(--studio-chrome-line) stroke-width=1.75 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2></rect><path d="M15 3v18">');function Xt(e){let r=ae("context-tool"),t=()=>{let o=r().map(a=>a.id),n=e.selectedToolId();return n&&o.includes(n)?n:o[0]};return de(Jt,{side:"right",get isCollapsed(){return e.isCollapsed},get width(){return e.width},get onMouseDown(){return e.onMouseDown},get onToggleClick(){return e.onToggleClick},get canExpand(){return e.canExpand},get children(){var o=sn();return _e(o,de(et,{get when(){return r().length},get children(){var n=nn(),a=n.firstChild;return _e(n,de(Yt,{items:r,get selectedToolId(){return e.selectedToolId},get setSelectedToolId(){return e.setSelectedToolId}}),a),a.$$click=()=>e.onCollapse(),_e(a,de(tt,{})),n}}),null),_e(o,de(et,{get when(){return!e.isCollapsed()},get children(){var n=an();return _e(n,de(et,{get when(){return t()},keyed:!0,children:a=>(()=>{var i=ln();return i.component=a,i._$owner=on(),i})()})),n}}),null),o}})}function tt(){return cn()}rn(["click"]);import{template as dn}from"solid-js/web";import{effect as Gt}from"solid-js/web";import{getOwner as Zt}from"solid-js/web";import{createComponent as un}from"solid-js/web";import{memo as pn}from"solid-js/web";import{Show as hn}from"solid-js";var Qt=dn("<patchwork-view>",!0,!1,!1),rt=e=>Array.isArray(e)?String(e[0]):String(e);function Xl(e){let r=new Set;return e.filter(t=>{let o=rt(t);return r.has(o)?!1:(r.add(o),!0)})}function Gl(e){return un(hn,{get when(){return pn(()=>!!Array.isArray(e.slot))()?e.slot:!1},get fallback(){return(()=>{var r=Qt();return r._$owner=Zt(),Gt(()=>r.component=String(e.slot)),r})()},children:r=>(()=>{var t=Qt();return t._$owner=Zt(),Gt(o=>{var n=r()[1],a=r()[0];return n!==o.e&&(t.docUrl=o.e=n),a!==o.t&&(t.toolId=o.t=a),o},{e:void 0,t:void 0}),t})()})}var bn=ke("<div class=threepane__title>"),vn=ke("<div class=threepane__doctitle-tools>"),wn=ke('<button type=button class=frame__sidebar-toggle title="Show context sidebar"aria-label="Show context sidebar">'),yn=ke("<div class=frame__topbar><div class=threepane__spacer>"),_n=ke("<patchwork-view>",!0,!1,!1);function rr(e){let r=()=>e.toolSlots()??[];return(()=>{var t=yn(),o=t.firstChild;return ue(t,pe(ot,{get when(){return e.docUrl()},get children(){var n=bn();return ue(n,pe(Wt,{get docUrl(){return e.docUrl}})),n}}),o),ue(t,pe(ot,{get when(){return tr(()=>!!e.docUrl())()&&r().length},get children(){var n=vn();return ue(n,pe(xn,{get each(){return r()},children:a=>(()=>{var i=_n();return i._$owner=mn(),er(u=>{var l=rt(a),c=e.docUrl();return l!==u.e&&(i.toolId=u.e=l),c!==u.t&&(i.docUrl=u.t=c),u},{e:void 0,t:void 0}),i})()})),n}}),null),ue(t,pe(ot,{get when(){return tr(()=>!!e.hasContext())()&&e.isRightCollapsed()},get children(){var n=wn();return n.$$click=()=>e.onToggleRight(),gn(n,"aria-pressed",!1),ue(n,pe(tt,{})),n}}),null),er(()=>t.classList.toggle("frame__topbar--left-collapsed",!!e.isLeftCollapsed())),t})()}fn(["click"]);import{template as Ve}from"solid-js/web";import{effect as Dr}from"solid-js/web";import{getOwner as Ir}from"solid-js/web";import{insert as Y}from"solid-js/web";import{createComponent as R}from"solid-js/web";import{memo as Se}from"solid-js/web";import{use as Rr}from"solid-js/web";import{parseAutomergeUrl as Wa}from"@automerge/automerge-repo/slim";import{getSuggestedImportUrl as Na,getType as Ha}from"@inkandswitch/patchwork-filesystem";import{getFallbackTool as qa,getRegistry as Ba}from"@inkandswitch/patchwork-plugins";import{createEffect as ut,createMemo as Je,createSignal as K,onCleanup as oe,onMount as Ja,Show as B}from"solid-js";import{template as C}from"solid-js/web";import{delegateEvents as sa}from"solid-js/web";import{setAttribute as Be}from"solid-js/web";import{effect as ct}from"solid-js/web";import"solid-js/web";import{createComponent as D}from"solid-js/web";import{insert as I}from"solid-js/web";import{use as la}from"solid-js/web";import{importPackage as Ra}from"@inkandswitch/patchwork-filesystem";import{registerPlugins as Fa}from"@inkandswitch/patchwork-plugins";import{createResource as Pa,createSignal as fe,onCleanup as lt,onMount as La,Show as q}from"solid-js";import{template as k}from"solid-js/web";import{delegateEvents as Dn}from"solid-js/web";import{effect as fr}from"solid-js/web";import{memo as In}from"solid-js/web";import{insert as v}from"solid-js/web";import{createComponent as _}from"solid-js/web";import{use as Rn}from"solid-js/web";import{setAttribute as Ce}from"solid-js/web";import{createResource as ta,createSignal as He,For as st,Match as he,onMount as ra,Show as z,Switch as dr}from"solid-js";import*as nr from"@automerge/automerge/slim";import{getImportableUrlFromAutomergeUrl as kn}from"@inkandswitch/patchwork-filesystem";var nt=e=>e.startsWith("automerge:");function Cn(e){return e.replace(/[#?].*$/,"")}function ar(e){let r=e.split("#")[1];return r?r.split("|").filter(Boolean):[]}var H=e=>typeof e=="string"&&e.trim()?e.trim():void 0;function $n(e){if(typeof e=="string")return H(e);if(e&&typeof e=="object"){let{name:r,email:t}=e,o=H(r),n=H(t);return o&&n?`${o} <${n}>`:o??n}}function ir(e){if(!e||typeof e!="object")return{};let r=e,t=r.supportedDatatypes;return{id:H(r.id),name:H(r.name),type:H(r.type),supportedDatatypes:typeof t=="string"?[t]:Array.isArray(t)?t.filter(o=>typeof o=="string"):void 0}}async function or(e){try{let r=await fetch(e);return r.ok?await r.json():void 0}catch{return}}var Sn=new Set(["dist","build","lib","out","esm","src","public"]);async function En(e){if(nt(e)){let o=kn(e);return or(new URL("package.json",o).href)}let r;try{r=new URL(e)}catch{return}let t=r.pathname.split("/").filter(Boolean);for(/\.[a-z0-9]+$/i.test(t.at(-1)??"")&&t.pop();;){let o=`${r.origin}/${t.join("/")}${t.length?"/":""}`,n=await or(new URL("package.json",o).href);if(n&&typeof n=="object")return n;if(!Sn.has(t.at(-1)?.toLowerCase()??""))return;t.pop()}}async function sr(e){let r=await En(e);if(r)return{name:H(r.name),title:H(r.title),version:H(r.version),description:H(r.description),author:$n(r.author),plugins:Array.isArray(r.plugins)?r.plugins.map(ir):void 0}}var Ne,Tn=1,re=new Map;function An(){if(Ne)return Ne;let e=new Worker("/module-loader-worker.js",{type:"module",name:"threepane-package-preview"});return e.addEventListener("message",r=>{let t=r.data,o=t&&re.get(t.id);o&&(re.delete(t.id),t.type==="descriptors"?o.resolve(t.descriptors.map(ir)):o.reject(new Error(t.error)))}),e.addEventListener("error",r=>{let t=new Error(`the background worker stopped: ${r.message??"no reason given"}`);for(let o of re.values())o.reject(t);re.clear(),Ne=void 0}),Ne=e,e}function lr(e,r=15e3){let t=Tn++;return new Promise((o,n)=>{let a=setTimeout(()=>{re.delete(t)&&n(new Error("it took too long to answer"))},r);re.set(t,{resolve:i=>{clearTimeout(a),o(i)},reject:i=>{clearTimeout(a),n(i)}});try{An().postMessage({type:"discover",id:t,url:e})}catch(i){clearTimeout(a),re.delete(t),n(i instanceof Error?i:new Error(String(i)))}})}async function cr(e,r){let t=await e.find(Cn(r)),o=t.doc();await new Promise(i=>setTimeout(i,0));let n=nr.getChangesMetaSince(o,[]),a=new Map;for(let i of n){let u=i.time??0,l=a.get(i.actor);if(!l){a.set(i.actor,{actor:i.actor,changes:1,first:u,last:u});continue}l.changes++,u&&(!l.first||u<l.first)&&(l.first=u),u>l.last&&(l.last=u)}return{heads:[...t.heads()],changes:n.length,writers:[...a.values()].sort((i,u)=>u.changes-i.changes)}}var Fn=k("<button type=button class=doc-card__link>see package details"),Pn=k("<p class=pkg-about__quiet>reading\u2026"),Ln=k("<p class=pkg-about__quiet>no package.json."),Mn=k("<dl class=pkg-about__facts><dt>plugins</dt><dd>"),On=k("<dt>pinned"),it=k("<dd>"),at=k("<dt>history"),zn=k("<dd class=pkg-about__quiet>reading\u2026"),Un=k("<dd class=pkg-about__quiet>couldn't get its folder."),jn=k('<div class=pkg-about popover=auto><header class=pkg-about__header><h3 class=doc-card__rough></h3><button type=button class="doc-card__link pkg-about__close"popovertargetaction=hide aria-label=close>\xD7</button></header><section class="pkg-about__section pkg-about__section--claims"><h4>self-reported <span class=pkg-about__tag>unverified</span></h4></section><section class=pkg-about__section><h4>source</h4><dl class=pkg-about__facts><dt>url</dt><dd><code class="doc-card__code doc-card__url">'),Wn=k("<span class=pkg-about__version> "),Nn=k("<button type=button class=doc-card__link>"),Hn=k("<span class=pkg-about__quiet>unknown until loaded"),qn=k("<p class=doc-card__notice>"),Bn=k("<dt>heads"),Jn=k("<dd> <!>, <!> <p class=pkg-about__quiet>writers are devices, not people. folder only."),Vn=k("<dt>"),mr=k("<ul class=pkg-about__list>"),Kn=k("<span>nothing"),Yn=k("<span class=pkg-about__quiet> for "),Xn=k("<li>"),gr=k("<span class=pkg-about__quiet> \xB7 "),Gn=k("<span class=pkg-about__heads>"),Zn=k("<code class=doc-card__code>"),Qn=k("<li class=pkg-about__quiet>and <!> more"),ea=k("<li><code class=doc-card__code></code> <!> "),oa=0;function br(e){let r=`pkg-about-${++oa}`,t=nt(e.url),o=ar(e.url),[n,a]=He(!1),[i]=ta(()=>n()&&t?e.url:void 0,d=>cr(e.repo,d)),[u,l]=He(!1),[c,s]=He(),[h,f]=He();async function b(){if(window.confirm(`Listing its plugins runs the package's code in a background worker.
|
|
2
3
|
|
|
3
4
|
${e.url}
|
|
4
5
|
|
|
5
6
|
It can use the network and this site's stored data, including your documents. Only run it if you trust where it came from.
|
|
6
7
|
|
|
7
|
-
Run it?`)){
|
|
8
|
+
Run it?`)){f(void 0),l(!0);try{s(await lr(e.url))}catch(g){f(g?.message??String(g))}finally{l(!1)}}}let y;ra(()=>{y.addEventListener("toggle",d=>{d.newState==="open"&&a(!0)})});let x=()=>e.claims?.title??e.claims?.name??"package",p=()=>c()??e.claims?.plugins;return[(()=>{var d=Fn();return Ce(d,"popovertarget",r),d})(),(()=>{var d=jn(),g=d.firstChild,$=g.firstChild,F=$.nextSibling,P=g.nextSibling,j=P.firstChild,Q=P.nextSibling,O=Q.firstChild,J=O.nextSibling,ge=J.firstChild,be=ge.nextSibling,De=be.firstChild,X=y;return typeof X=="function"?Rn(X,d):y=d,Ce(d,"id",r),v($,x,null),v($,_(z,{get when(){return e.claims?.version},children:E=>(()=>{var S=Wn(),G=S.firstChild;return v(S,E,null),S})()}),null),Ce(F,"popovertarget",r),v(P,_(dr,{get children(){return[_(he,{get when(){return e.claimsLoading},get children(){return Pn()}}),_(he,{get when(){return In(()=>!e.claims)()&&!c()},get children(){return Ln()}}),_(he,{when:!0,get children(){var E=Mn(),S=E.firstChild,G=S.nextSibling;return v(E,_(qe,{label:"name",get value(){return e.claims?.name}}),S),v(E,_(qe,{label:"title",get value(){return e.claims?.title}}),S),v(E,_(qe,{label:"author",get value(){return e.claims?.author}}),S),v(E,_(qe,{label:"description",get value(){return e.claims?.description}}),S),v(G,_(z,{get when(){return p()},get fallback(){return _(z,{when:t,get fallback(){return Hn()},get children(){var M=Nn();return M.$$click=()=>void b(),v(M,()=>u()?"listing\u2026":"list them"),fr(()=>M.disabled=u()),M}})},children:M=>_(na,{get plugins(){return M()}})}),null),v(G,_(z,{get when(){return h()},children:M=>(()=>{var m=qn();return v(m,M),m})()}),null),E}})]}}),null),v(De,()=>e.url),v(J,_(z,{get when(){return o.length},get children(){return[On(),(()=>{var E=it();return v(E,_(ur,{heads:o})),E})()]}}),null),v(J,_(z,{when:t,get children(){return _(dr,{get children(){return[_(he,{get when(){return i.loading},get children(){return[at(),zn()]}}),_(he,{get when(){return i.error},get children(){return[at(),Un()]}}),_(he,{get when(){return i()},children:E=>[Bn(),(()=>{var S=it();return v(S,_(ur,{get heads(){return E().heads}})),S})(),at(),(()=>{var S=Jn(),G=S.firstChild,M=G.nextSibling,m=M.nextSibling,w=m.nextSibling,T=w.nextSibling,A=T.nextSibling;return v(S,()=>E().changes,G),v(S,()=>E().changes===1?"change":"changes",M),v(S,()=>E().writers.length,w),v(S,()=>E().writers.length===1?"writer":"writers",A),v(S,_(aa,{get writers(){return E().writers}}),A),S})()]})]}})}}),null),d})()]}function qe(e){return _(z,{get when(){return e.value},get children(){return[(()=>{var r=Vn();return v(r,()=>e.label),r})(),(()=>{var r=it();return v(r,()=>e.value),r})()]}})}function na(e){return _(z,{get when(){return e.plugins.length},get fallback(){return Kn()},get children(){var r=mr();return v(r,_(st,{get each(){return e.plugins},children:t=>(()=>{var o=Xn();return v(o,()=>t.name??t.id??"(unnamed)",null),v(o,_(z,{get when(){return t.type},children:n=>(()=>{var a=gr(),i=a.firstChild;return v(a,n,null),a})()}),null),v(o,_(z,{get when(){return t.supportedDatatypes?.length},get children(){var n=Yn(),a=n.firstChild;return v(n,()=>t.supportedDatatypes.join(", "),null),n}}),null),o})()})),r}})}function ur(e){return(()=>{var r=Gn();return v(r,_(st,{get each(){return e.heads},children:t=>(()=>{var o=Zn();return Ce(o,"title",t),v(o,()=>t.slice(0,7)),o})()})),r})()}var pr=6;function aa(e){let r=()=>e.writers.length-pr;return(()=>{var t=mr();return v(t,_(st,{get each(){return e.writers.slice(0,pr)},children:o=>(()=>{var n=ea(),a=n.firstChild,i=a.nextSibling,u=i.nextSibling,l=u.nextSibling;return v(a,()=>o.actor.slice(0,8)),v(n,()=>o.changes,u),v(n,()=>o.changes===1?"change":"changes",null),v(n,_(z,{get when(){return o.last},get children(){var c=gr(),s=c.firstChild;return v(c,()=>ia(o),null),c}}),null),fr(()=>Ce(a,"title",o.actor)),n})()}),null),v(t,_(z,{get when(){return r()>0},get children(){var o=Qn(),n=o.firstChild,a=n.nextSibling,i=a.nextSibling;return v(o,r,a),o}}),null),t})()}function hr(e){return new Date(e*1e3).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function ia(e){let r=hr(e.last),t=e.first?hr(e.first):r;return t===r?r:`${t} \u2013 ${r}`}Dn(["click"]);var ca=C("<div class=doc-card><svg class=doc-card__defs aria-hidden=true><filter id=doc-card-rough><feTurbulence type=fractalNoise baseFrequency=0.04 numOctaves=2 seed=1></feTurbulence><feDisplacementMap in=SourceGraphic scale=1.4></feDisplacementMap></filter></svg><div class=doc-card__sheet><h2 class=doc-card__rough>"),da=C('<div class="doc-card doc-card--finding"role=status><span class=doc-card__dot></span><span class=doc-card__finding-label>finding this doc\u2026'),ua=C("<p>it's a <code class=doc-card__code></code>.<br>nothing here opens one yet."),pa=C("<p class=doc-card__links>"),ha=C("<p>it'll open here if a package adds a tool for it."),fa=C("<p>the doc suggests "),dt=C('<div class=doc-card__actions><button type=button class="doc-card__button doc-card__button--primary">'),ma=C("<strong class=pkg-line>"),ga=C("<span class=pkg-line__version> "),ba=C("<p class=doc-card__notice>couldn't load it: "),va=C("<button type=button class=doc-card__link>open doc with "),wa=C("<p>we couldn't get it from anywhere we looked.<br>that might mean:"),ya=C("<ul class=doc-card__reasons><li>the person who sent you the link hasn't given you access yet</li><li>it hasn't finished syncing from their device yet</li><li>something's wrong with the "),_a=C("<p>we'll keep looking. if it turns up, it'll open right here."),xa=C("<button type=button class=doc-card__sync>sync server"),ka=C("<span class=doc-card__sync-told role=status> (<!>)"),Ca=C("<p>found it, but it's private."),$a=C("<p>ask the owner to share it. if you're not in their phonebook, send them your card."),Sa=C("<p>it'll open right here once they do."),Ea=C("<p>the doc is here, but the tool that shows it didn't load."),Ta=C("<p class=doc-card__notice>"),Aa=C("<p>a bit of it got lost or changed on the way here, so it can't point at any doc. maybe a character dropped when it was copied, or the link got cut short."),Da=C("<p>if someone sent it to you, ask them for the link again."),Ia=C('<p class=doc-card__aside><code class="doc-card__code doc-card__url">');function $e(e){let r;return La(()=>{r.dispatchEvent(new CustomEvent("patchwork:no-tool",{bubbles:!0,composed:!0,detail:{url:e.url}}))}),(()=>{var t=ca(),o=t.firstChild,n=o.nextSibling,a=n.firstChild,i=r;return typeof i=="function"?la(i,t):r=t,I(a,()=>e.title),I(n,()=>e.children,null),t})()}function vr(){return da()}function wr(e){let[r,t]=fe(!1),[o,n]=fe(),[a]=Pa(()=>e.suggestion,l=>sr(l).catch(()=>{}));async function i(l){if(window.confirm(`Load this package?
|
|
8
9
|
|
|
9
10
|
${l}
|
|
10
11
|
|
|
11
|
-
Its code runs in this page and can read and change your documents. Only load it if you trust where it came from.`)){n(void 0),t(!0);try{let s=await Ra(l);if(!Array.isArray(s?.plugins))throw new Error("it doesn't export any plugins");Fa(s.plugins,l)}catch(s){console.error(`couldn't load the package at ${l}`,s),n(s?.message??String(s))}finally{t(!1)}}}let d=()=>{let l=a();return l&&(l.title||l.name)?l:void 0};return D($e,{get url(){return e.url},title:"no tool for this",get children(){return[(()=>{var l=ua(),c=l.firstChild,s=c.nextSibling;return I(s,()=>e.type),l})(),D(q,{get when(){return e.suggestion},get fallback(){return ha()},children:l=>[(()=>{var c=fa(),s=c.firstChild;return I(c,D(q,{get when(){return d()},fallback:"a package.",children:u=>[(()=>{var h=ma();return I(h,()=>u().title??u().name),h})(),D(q,{get when(){return u().version},children:h=>(()=>{var b=ga(),_=b.firstChild;return I(b,h,null),b})()}),"."]}),null),c})(),(()=>{var c=dt(),s=c.firstChild;return s.$$click=()=>void i(l()),I(s,()=>r()?"loading\u2026":"load package"),ct(()=>s.disabled=r()),c})(),D(q,{get when(){return o()},children:c=>(()=>{var s=ba(),u=s.firstChild;return I(s,c,null),s})()})]}),D(q,{get when(){return e.suggestion||e.anything},get children(){var l=pa();return I(l,D(q,{get when(){return e.suggestion},children:c=>D(gr,{get url(){return c()},get repo(){return e.repo},get claims(){return a()},get claimsLoading(){return a.loading}})}),null),I(l,D(q,{get when(){return e.anything},children:c=>(()=>{var s=va(),u=s.firstChild;return s.$$click=()=>e.onPeek(c().id),I(s,()=>c().name.toLowerCase(),null),s})()}),null),l}})]}})}function wr(e){let r=e.repo,t=typeof r.isSubductionConnected=="function",[o,n]=fe(t?r.isSubductionConnected():void 0),a=i=>{let d=o();n(i),i&&d===!1&&e.onRetry()};if(t&&r.on&&r.off){let i=d=>a(d.connected);r.on("subduction-connection",i),lt(()=>r.off("subduction-connection",i))}if(t){let i=setInterval(()=>a(r.isSubductionConnected()),2e3);lt(()=>clearInterval(i))}return D($e,{get url(){return e.url},title:"can't load this doc",get children(){return[wa(),(()=>{var i=ya(),d=i.firstChild,l=d.nextSibling,c=l.nextSibling,s=c.firstChild;return I(c,D(q,{get when(){return o()!==void 0},fallback:"sync server",get children(){return D(Ma,{get connected(){return o()}})}}),null),i})(),_a()]}})}function Ma(e){let[r,t]=fe(!1),o=()=>`sync server: ${e.connected?"connected":"disconnected"}`;return[(()=>{var n=xa();return n.$$click=()=>t(a=>!a),ct(a=>{var i=e.connected?"":void 0,d=o(),l=o(),c=r();return i!==a.e&&Be(n,"data-connected",a.e=i),d!==a.t&&Be(n,"title",a.t=d),l!==a.a&&Be(n,"aria-label",a.a=l),c!==a.o&&Be(n,"aria-expanded",a.o=c),a},{e:void 0,t:void 0,a:void 0,o:void 0}),n})(),D(q,{get when(){return r()},get children(){var n=ka(),a=n.firstChild,i=a.nextSibling,d=i.nextSibling;return I(n,()=>e.connected?"connected":"disconnected",i),n}})]}function yr(e){let[r,t]=fe(!1),o;lt(()=>clearTimeout(o));let n=async()=>{e.card&&(await navigator.clipboard.writeText(e.card),t(!0),clearTimeout(o),o=setTimeout(()=>t(!1),1500))};return D($e,{get url(){return e.url},title:"not shared with you yet",get children(){return[Ca(),$a(),Sa(),D(q,{get when(){return e.card},get children(){var a=dt(),i=a.firstChild;return i.$$click=()=>void n(),I(i,()=>r()?"copied":"copy my card"),a}})]}})}function _r(e){let[r,t]=fe(!1),o=async()=>{t(!0);try{await e.onRetry()}finally{t(!1)}};return D($e,{get url(){return e.url},get title(){return`can't load ${e.name}`},get children(){return[Ea(),(()=>{var n=Ta();return I(n,()=>e.error),n})(),(()=>{var n=dt(),a=n.firstChild;return a.$$click=()=>void o(),I(a,()=>r()?"trying\u2026":"try again"),ct(()=>a.disabled=r()),n})()]}})}function xr(e){return D($e,{get url(){return e.url},title:"this link is broken",get children(){return[Aa(),Da(),(()=>{var r=Ia(),t=r.firstChild;return I(t,()=>e.url),r})()]}})}sa(["click"]);import*as Cr from"@inkandswitch/patchwork-elements";import{isKeyhiveDoc as Oa}from"@inkandswitch/patchwork-plugins";var kr=Cr.hasActiveAccess,$r=()=>globalThis.hive;async function Sr(e,r){if(Oa(r))try{if(kr)return await kr(e,r);let t=e.active.individual.id;return!!(e.bestAccessForDoc?await e.bestAccessForDoc(t,r):await e.accessForDoc(t,r))}catch{return}}function Er(e,r){return e.networkAdapter?.on("ingest-remote",r),()=>e.networkAdapter?.off("ingest-remote",r)}function Tr(e){try{let r="";for(let t of e.active.contactCard.toBytes())r+=String.fromCharCode(t);return btoa(r)}catch{return}}var za=Ve("<div class=document-view>"),Rr=Ve("<patchwork-view>",!0,!1,!1),Ua=Ve("<div class=placeholder>Select a document in the sidebar"),ja=Ve("<div class=doc-stack>"),Va=5e3;function Fr({viewKey:e,selectedDocUrl:r,toolId:t,ref:o}){let n,[a,i]=K();return Ja(()=>{i(n.closest("repo-provider")?.repo??null)}),(()=>{var d=za();return Ir(l=>{n=l,o?.(l)},d),Y(d,R(B,{get when(){return Se(()=>a()!==void 0)()&&e()},keyed:!0,children:l=>R(B,{get when(){return a()},get fallback(){return(()=>{var c=Rr();return c._$owner=Dr(),Ar(s=>{var u=r(),h=t();return u!==s.e&&(c.docUrl=s.e=u),h!==s.t&&(c.toolId=s.t=h),s},{e:void 0,t:void 0}),c})()},children:c=>R(Ka,{get url(){return r()},toolId:t,get repo(){return c()}})})}),null),Y(d,(()=>{var l=Se(()=>!r());return()=>l()&&Ua()})(),null),d})()}function Ka(e){let r=Ba("patchwork:tool"),[t,o]=K(0);oe(r.on("changed",()=>{o(g=>g+1)}));let[n,a]=K({state:"finding"}),[i,d]=K(),l=()=>e.toolId()??i(),[c,s]=K(!1),[u,h]=K(0),b=!1;oe(()=>b=!0);async function _(){try{let g=await e.repo.find(e.url);if(b)return;let y=n().state==="unavailable";a({state:"ready",doc:g.doc()}),y&&!c()&&h(E=>E+1)}catch(g){if(b)return;let y=Xa(g);a({state:y?"invalid":"unavailable"}),y||p(E=>E+1)}}let[m,p]=K(0),f,w;function T(){w?.(),f=Ya(e.repo,e.url),w=f?.subscribe(g=>{g.state==="ready"&&n().state==="unavailable"&&_()})}oe(()=>w?.()),_(),T();function F(){let g=e.repo;if(typeof g.resyncSubduction=="function")try{g.resyncSubduction(Wa(e.url).documentId)}catch{}}let M;oe(()=>clearTimeout(M));function j(g=1e3){F(),clearTimeout(M),M=setTimeout(()=>void _(),g)}ut(()=>{let g=m();g===0||n().state!=="unavailable"||c()||(j(Math.min(3e4,3e3*2**(g-1))),oe(()=>clearTimeout(M)))});let Q=Je(()=>{t();let g=n();if(g.state!=="ready")return g;let y=g.doc,E=y?Na(y):void 0;if(!E)return{state:"open",toolId:void 0};let A=l(),H;if(!A){let W=Pr(()=>qa(y));W&&Ga(W.supportedDatatypes,E)?H={id:W.id,name:W.name}:W&&(A=W.id)}return A&&r.get(A)?{state:"open",toolId:A}:{state:"no-tool",type:E,suggestion:Ha(y),anything:H}}),O=Je(()=>Q().state),J=Je(()=>{let g=Q();return g.state==="open"?g.toolId:void 0}),[ge,be]=K();async function De(g){try{return await r.load(g),J()===g&&be(void 0),!0}catch(y){return J()===g&&be({id:g,message:y instanceof Error?y.message:String(y)}),!1}}ut(()=>{let g=J();be(void 0),g&&De(g)});let X=$r(),[S,$]=K();ut(()=>{if(!X||O()!=="open"){$(void 0);return}let g=e.url,y=!0,E=()=>void Sr(X,g).then(W=>{y&&$(W)});E();let A=Er(X,E),H=setInterval(()=>{S()===!1&&E()},Va);oe(()=>{y=!1,A(),clearInterval(H)})});async function G(){let g=ge()?.id;g&&await De(g)&&h(y=>y+1)}let L=Je(()=>{let g=Q();return g.state==="no-tool"?g:void 0});return(()=>{var g=ja();return Ir(y=>{let E=A=>{let H=A.detail;H?.url&&H.url!==e.url||(s(!0),n().state==="unavailable"&&_())};y.addEventListener("patchwork:mounted",E),oe(()=>y.removeEventListener("patchwork:mounted",E))},g),Y(g,R(B,{get when(){return Se(()=>O()==="open")()&&!ge()||O()==="unavailable"},get children(){return R(B,{get when(){return u()+1},keyed:!0,children:y=>(()=>{var E=Rr();return E._$owner=Dr(),Ar(A=>{var H=e.url,W=l();return H!==A.e&&(E.docUrl=A.e=H),W!==A.t&&(E.toolId=A.t=W),A},{e:void 0,t:void 0}),E})()})}}),null),Y(g,R(B,{get when(){return O()==="finding"},get children(){return R(br,{})}}),null),Y(g,R(B,{get when(){return Se(()=>O()==="open")()&&S()===!1},get children(){return R(yr,{get url(){return e.url},get card(){return X&&Tr(X)}})}}),null),Y(g,R(B,{get when(){return ge()},children:y=>R(_r,{get url(){return e.url},get name(){return r.get(y().id)?.name??y().id},get error(){return y().message},onRetry:G})}),null),Y(g,R(B,{get when(){return O()==="invalid"},get children(){return R(xr,{get url(){return e.url}})}}),null),Y(g,R(B,{get when(){return Se(()=>O()==="unavailable")()&&!c()},get children(){return R(wr,{get url(){return e.url},get repo(){return e.repo},onRetry:j})}}),null),Y(g,R(B,{get when(){return L()},children:y=>R(vr,{get url(){return e.url},get type(){return y().type},get suggestion(){return y().suggestion},get anything(){return y().anything},onPeek:d,get repo(){return e.repo}})}),null),g})()}function Ya(e,r){let t=e.findWithProgress;if(typeof t=="function")return Pr(()=>{let o=t.call(e,r);return typeof o?.subscribe=="function"&&typeof o?.peek=="function"?o:void 0})}function Xa(e){let r=e?.message??String(e);return/invalid (automergeurl|document url|documentid|document id)/i.test(r)}function Ga(e,r){let t=e==="*"?["*"]:e??[];return t.includes("*")&&!t.includes(r)}function Pr(e){try{return e()}catch{return}}var Za=Ae("<patchwork-view component=patchwork-draft-state-provider>",!0,!1,!1),Qa=Ae("<patchwork-view component=patchwork-draft-overlay-provider>",!0,!1,!1),ei=Ae("<div class=frame__main-column><div class=frame__doc-column><div class=main-area>"),ti=Ae("<patchwork-view component=patchwork-comments-provider><patchwork-view component=patchwork-focus-provider>",!0,!1,!1),ri=Ae("<patchwork-view>",!0,!1,!1);function Or(e){let[r,t]=Z(e.initialRightCollapsed()),[o,n]=Z(e.initialRightWidth());Lr(Mr(r,h=>{try{localStorage.setItem(V.rightCollapsed,String(h))}catch{}},{defer:!0})),Lr(Mr(o,h=>{try{localStorage.setItem(V.rightWidth,String(h))}catch{}},{defer:!0}));let a=Ge("right",{isCollapsed:r,setCollapsed:t,setWidth:n});ni(()=>{let h=()=>t(!0);window.addEventListener(Ie,h),oi(()=>window.removeEventListener(Ie,h))});let[i,d]=Xe(Z(),{name:V.contextToolId}),[l,c]=Z(),s=ee("patchwork-draft-state-provider",l),u=()=>s()?l():void 0;return U(me,{get when(){return e.selectedDocUrl()},keyed:!0,children:h=>(()=>{var b=Za();return Te(c,b),b.docUrl=h,b._$owner=Ee(),ne(b,U(me,{get when(){return u()},children:_=>U(ai,{get host(){return _()},get setMainDocElement(){return e.setMainDocElement},get selectedDocUrl(){return e.selectedDocUrl},get selectedToolId(){return e.selectedToolId},get doctitleSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},isRightSidebarCollapsed:r,setIsRightSidebarCollapsed:t,rightSidebarWidth:o,get handleMouseDown(){return a.handleMouseDown},get handleToggleClick(){return a.handleToggleClick},selectedContextToolId:i,setSelectedContextToolId:d})})),b})()})}function ai(e){let r=ae("context-tool"),t=()=>r().length>0,o=pt(()=>e.selectedDocUrl()),[n,a]=Z(),i=ee("patchwork-draft-overlay-provider",n),[d,l]=Z(),c=ee("patchwork-comments-provider",d),[s,u]=Z(),h=ee("patchwork-focus-provider",s),b=pt(()=>i()&&c()&&h()),_=ae("document-provider"),m=pt(()=>_().map(p=>p.id),[],{equals:(p,f)=>p.length===f.length&&p.every((w,T)=>w===f[T])});return(()=>{var p=Qa();return Te(a,p),p._$owner=Ee(),ne(p,U(zr,{get ids(){return m()},render:()=>(()=>{var f=ti(),w=f.firstChild;return Te(l,f),f._$owner=Ee(),Te(u,w),w._$owner=Ee(),ne(w,U(me,{get when(){return b()},get children(){var T=ei(),F=T.firstChild,M=F.firstChild;return ne(F,U(tr,{get docUrl(){return e.selectedDocUrl},get toolSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},hasContext:t,get isRightCollapsed(){return e.isRightSidebarCollapsed},onToggleRight:()=>e.setIsRightSidebarCollapsed(j=>!j)}),M),ne(M,U(Fr,{viewKey:o,get selectedDocUrl(){return e.selectedDocUrl},get toolId(){return e.selectedToolId},ref:j=>e.setMainDocElement?.(j)})),ne(T,U(me,{get when(){return t()},get children(){return U(Yt,{get selectedToolId(){return e.selectedContextToolId},get setSelectedToolId(){return e.setSelectedContextToolId},get isCollapsed(){return e.isRightSidebarCollapsed},get width(){return e.rightSidebarWidth},get onMouseDown(){return e.handleMouseDown},get onToggleClick(){return e.handleToggleClick},onCollapse:()=>e.setIsRightSidebarCollapsed(!0)})}}),null),T}})),f})()})),p})()}function zr(e){return U(me,{get when(){return e.ids[0]},keyed:!0,get fallback(){return e.render()},children:r=>{let[t,o]=Z(),n=ee(r,t);return(()=>{var a=ri();return Te(o,a),a.component=r,a._$owner=Ee(),ne(a,U(me,{get when(){return n()},get children(){return U(zr,{get ids(){return e.ids.slice(1)},get render(){return e.render}})}})),a})()}})}var Ke=`:root,
|
|
12
|
+
Its code runs in this page and can read and change your documents. Only load it if you trust where it came from.`)){n(void 0),t(!0);try{let s=await Ra(l);if(!Array.isArray(s?.plugins))throw new Error("it doesn't export any plugins");Fa(s.plugins,l)}catch(s){console.error(`couldn't load the package at ${l}`,s),n(s?.message??String(s))}finally{t(!1)}}}let u=()=>{let l=a();return l&&(l.title||l.name)?l:void 0};return D($e,{get url(){return e.url},title:"no tool for this",get children(){return[(()=>{var l=ua(),c=l.firstChild,s=c.nextSibling;return I(s,()=>e.type),l})(),D(q,{get when(){return e.suggestion},get fallback(){return ha()},children:l=>[(()=>{var c=fa(),s=c.firstChild;return I(c,D(q,{get when(){return u()},fallback:"a package.",children:h=>[(()=>{var f=ma();return I(f,()=>h().title??h().name),f})(),D(q,{get when(){return h().version},children:f=>(()=>{var b=ga(),y=b.firstChild;return I(b,f,null),b})()}),"."]}),null),c})(),(()=>{var c=dt(),s=c.firstChild;return s.$$click=()=>void i(l()),I(s,()=>r()?"loading\u2026":"load package"),ct(()=>s.disabled=r()),c})(),D(q,{get when(){return o()},children:c=>(()=>{var s=ba(),h=s.firstChild;return I(s,c,null),s})()})]}),D(q,{get when(){return e.suggestion||e.anything},get children(){var l=pa();return I(l,D(q,{get when(){return e.suggestion},children:c=>D(br,{get url(){return c()},get repo(){return e.repo},get claims(){return a()},get claimsLoading(){return a.loading}})}),null),I(l,D(q,{get when(){return e.anything},children:c=>(()=>{var s=va(),h=s.firstChild;return s.$$click=()=>e.onPeek(c().id),I(s,()=>c().name.toLowerCase(),null),s})()}),null),l}})]}})}function yr(e){let r=e.repo,t=typeof r.isSubductionConnected=="function",[o,n]=fe(t?r.isSubductionConnected():void 0),a=i=>{let u=o();n(i),i&&u===!1&&e.onRetry()};if(t&&r.on&&r.off){let i=u=>a(u.connected);r.on("subduction-connection",i),lt(()=>r.off("subduction-connection",i))}if(t){let i=setInterval(()=>a(r.isSubductionConnected()),2e3);lt(()=>clearInterval(i))}return D($e,{get url(){return e.url},title:"can't load this doc",get children(){return[wa(),(()=>{var i=ya(),u=i.firstChild,l=u.nextSibling,c=l.nextSibling,s=c.firstChild;return I(c,D(q,{get when(){return o()!==void 0},fallback:"sync server",get children(){return D(Ma,{get connected(){return o()}})}}),null),i})(),_a()]}})}function Ma(e){let[r,t]=fe(!1),o=()=>`sync server: ${e.connected?"connected":"disconnected"}`;return[(()=>{var n=xa();return n.$$click=()=>t(a=>!a),ct(a=>{var i=e.connected?"":void 0,u=o(),l=o(),c=r();return i!==a.e&&Be(n,"data-connected",a.e=i),u!==a.t&&Be(n,"title",a.t=u),l!==a.a&&Be(n,"aria-label",a.a=l),c!==a.o&&Be(n,"aria-expanded",a.o=c),a},{e:void 0,t:void 0,a:void 0,o:void 0}),n})(),D(q,{get when(){return r()},get children(){var n=ka(),a=n.firstChild,i=a.nextSibling,u=i.nextSibling;return I(n,()=>e.connected?"connected":"disconnected",i),n}})]}function _r(e){let[r,t]=fe(!1),o;lt(()=>clearTimeout(o));let n=async()=>{e.card&&(await navigator.clipboard.writeText(e.card),t(!0),clearTimeout(o),o=setTimeout(()=>t(!1),1500))};return D($e,{get url(){return e.url},title:"not shared with you yet",get children(){return[Ca(),$a(),Sa(),D(q,{get when(){return e.card},get children(){var a=dt(),i=a.firstChild;return i.$$click=()=>void n(),I(i,()=>r()?"copied":"copy my card"),a}})]}})}function xr(e){let[r,t]=fe(!1),o=async()=>{t(!0);try{await e.onRetry()}finally{t(!1)}};return D($e,{get url(){return e.url},get title(){return`can't load ${e.name}`},get children(){return[Ea(),(()=>{var n=Ta();return I(n,()=>e.error),n})(),(()=>{var n=dt(),a=n.firstChild;return a.$$click=()=>void o(),I(a,()=>r()?"trying\u2026":"try again"),ct(()=>a.disabled=r()),n})()]}})}function kr(e){return D($e,{get url(){return e.url},title:"this link is broken",get children(){return[Aa(),Da(),(()=>{var r=Ia(),t=r.firstChild;return I(t,()=>e.url),r})()]}})}sa(["click"]);import*as $r from"@inkandswitch/patchwork-elements";import{isKeyhiveDoc as Oa}from"@inkandswitch/patchwork-plugins";var Cr=$r.hasActiveAccess,Sr=()=>globalThis.hive;async function Er(e,r){if(Oa(r))try{if(Cr)return await Cr(e,r);let t=e.active.individual.id;return!!(e.bestAccessForDoc?await e.bestAccessForDoc(t,r):await e.accessForDoc(t,r))}catch{return}}function Tr(e,r){return e.networkAdapter?.on("ingest-remote",r),()=>e.networkAdapter?.off("ingest-remote",r)}function Ar(e){try{let r="";for(let t of e.active.contactCard.toBytes())r+=String.fromCharCode(t);return btoa(r)}catch{return}}var za=Ve("<div class=document-view>"),Fr=Ve("<patchwork-view>",!0,!1,!1),Ua=Ve("<div class=placeholder>Select a document in the sidebar"),ja=Ve("<div class=doc-stack>"),Va=5e3;function Pr({viewKey:e,selectedDocUrl:r,toolId:t,ref:o}){let n,[a,i]=K();return Ja(()=>{i(n.closest("repo-provider")?.repo??null)}),(()=>{var u=za();return Rr(l=>{n=l,o?.(l)},u),Y(u,R(B,{get when(){return Se(()=>a()!==void 0)()&&e()},keyed:!0,children:l=>R(B,{get when(){return a()},get fallback(){return(()=>{var c=Fr();return c._$owner=Ir(),Dr(s=>{var h=r(),f=t();return h!==s.e&&(c.docUrl=s.e=h),f!==s.t&&(c.toolId=s.t=f),s},{e:void 0,t:void 0}),c})()},children:c=>R(Ka,{get url(){return r()},toolId:t,get repo(){return c()}})})}),null),Y(u,(()=>{var l=Se(()=>!r());return()=>l()&&Ua()})(),null),u})()}function Ka(e){let r=Ba("patchwork:tool"),[t,o]=K(0);oe(r.on("changed",()=>{o(m=>m+1)}));let[n,a]=K({state:"finding"}),[i,u]=K(),l=()=>e.toolId()??i(),[c,s]=K(!1),[h,f]=K(0),b=!1;oe(()=>b=!0);async function y(){try{let m=await e.repo.find(e.url);if(b)return;let w=n().state==="unavailable";a({state:"ready",doc:m.doc()}),w&&!c()&&f(T=>T+1)}catch(m){if(b)return;let w=Xa(m);a({state:w?"invalid":"unavailable"}),w||p(T=>T+1)}}let[x,p]=K(0),d,g;function $(){g?.(),d=Ya(e.repo,e.url),g=d?.subscribe(m=>{m.state==="ready"&&n().state==="unavailable"&&y()})}oe(()=>g?.()),y(),$();function F(){let m=e.repo;if(typeof m.resyncSubduction=="function")try{m.resyncSubduction(Wa(e.url).documentId)}catch{}}let P;oe(()=>clearTimeout(P));function j(m=1e3){F(),clearTimeout(P),P=setTimeout(()=>void y(),m)}ut(()=>{let m=x();m===0||n().state!=="unavailable"||c()||(j(Math.min(3e4,3e3*2**(m-1))),oe(()=>clearTimeout(P)))});let Q=Je(()=>{t();let m=n();if(m.state!=="ready")return m;let w=m.doc,T=w?Ha(w):void 0;if(!T)return{state:"open",toolId:void 0};let A=l(),N;if(!A){let W=Lr(()=>qa(w));W&&Ga(W.supportedDatatypes,T)?N={id:W.id,name:W.name}:W&&(A=W.id)}return A&&r.get(A)?{state:"open",toolId:A}:{state:"no-tool",type:T,suggestion:Na(w),anything:N}}),O=Je(()=>Q().state),J=Je(()=>{let m=Q();return m.state==="open"?m.toolId:void 0}),[ge,be]=K();async function De(m){try{return await r.load(m),J()===m&&be(void 0),!0}catch(w){return J()===m&&be({id:m,message:w instanceof Error?w.message:String(w)}),!1}}ut(()=>{let m=J();be(void 0),m&&De(m)});let X=Sr(),[E,S]=K();ut(()=>{if(!X||O()!=="open"){S(void 0);return}let m=e.url,w=!0,T=()=>void Er(X,m).then(W=>{w&&S(W)});T();let A=Tr(X,T),N=setInterval(()=>{E()===!1&&T()},Va);oe(()=>{w=!1,A(),clearInterval(N)})});async function G(){let m=ge()?.id;m&&await De(m)&&f(w=>w+1)}let M=Je(()=>{let m=Q();return m.state==="no-tool"?m:void 0});return(()=>{var m=ja();return Rr(w=>{let T=A=>{let N=A.detail;N?.url&&N.url!==e.url||(s(!0),n().state==="unavailable"&&y())};w.addEventListener("patchwork:mounted",T),oe(()=>w.removeEventListener("patchwork:mounted",T))},m),Y(m,R(B,{get when(){return Se(()=>O()==="open")()&&!ge()||O()==="unavailable"},get children(){return R(B,{get when(){return h()+1},keyed:!0,children:w=>(()=>{var T=Fr();return T._$owner=Ir(),Dr(A=>{var N=e.url,W=l();return N!==A.e&&(T.docUrl=A.e=N),W!==A.t&&(T.toolId=A.t=W),A},{e:void 0,t:void 0}),T})()})}}),null),Y(m,R(B,{get when(){return O()==="finding"},get children(){return R(vr,{})}}),null),Y(m,R(B,{get when(){return Se(()=>O()==="open")()&&E()===!1},get children(){return R(_r,{get url(){return e.url},get card(){return X&&Ar(X)}})}}),null),Y(m,R(B,{get when(){return ge()},children:w=>R(xr,{get url(){return e.url},get name(){return r.get(w().id)?.name??w().id},get error(){return w().message},onRetry:G})}),null),Y(m,R(B,{get when(){return O()==="invalid"},get children(){return R(kr,{get url(){return e.url}})}}),null),Y(m,R(B,{get when(){return Se(()=>O()==="unavailable")()&&!c()},get children(){return R(yr,{get url(){return e.url},get repo(){return e.repo},onRetry:j})}}),null),Y(m,R(B,{get when(){return M()},children:w=>R(wr,{get url(){return e.url},get type(){return w().type},get suggestion(){return w().suggestion},get anything(){return w().anything},onPeek:u,get repo(){return e.repo}})}),null),m})()}function Ya(e,r){let t=e.findWithProgress;if(typeof t=="function")return Lr(()=>{let o=t.call(e,r);return typeof o?.subscribe=="function"&&typeof o?.peek=="function"?o:void 0})}function Xa(e){let r=e?.message??String(e);return/invalid (automergeurl|document url|documentid|document id)/i.test(r)}function Ga(e,r){let t=e==="*"?["*"]:e??[];return t.includes("*")&&!t.includes(r)}function Lr(e){try{return e()}catch{return}}var Za=Ae("<patchwork-view component=patchwork-draft-state-provider>",!0,!1,!1),Qa=Ae("<patchwork-view component=patchwork-draft-overlay-provider>",!0,!1,!1),ei=Ae("<div class=frame__main-column><div class=frame__doc-column><div class=main-area>"),ti=Ae("<patchwork-view component=patchwork-comments-provider><patchwork-view component=patchwork-focus-provider>",!0,!1,!1),ri=Ae("<patchwork-view>",!0,!1,!1);function zr(e){let[r,t]=Z(e.initialRightCollapsed()),[o,n]=Z(e.initialRightWidth());Mr(Or(r,f=>{try{localStorage.setItem(V.rightCollapsed,String(f))}catch{}},{defer:!0})),Mr(Or(o,f=>{try{localStorage.setItem(V.rightWidth,String(f))}catch{}},{defer:!0}));let a=Ge("right",{isCollapsed:r,setCollapsed:t,setWidth:n});ni(()=>{let f=()=>t(!0);window.addEventListener(Ie,f),oi(()=>window.removeEventListener(Ie,f))});let[i,u]=Xe(Z(),{name:V.contextToolId}),[l,c]=Z(),s=ee("patchwork-draft-state-provider",l),h=()=>s()?l():void 0;return U(me,{get when(){return e.selectedDocUrl()},keyed:!0,children:f=>(()=>{var b=Za();return Te(c,b),b.docUrl=f,b._$owner=Ee(),ne(b,U(me,{get when(){return h()},children:y=>U(ai,{get host(){return y()},get setMainDocElement(){return e.setMainDocElement},get selectedDocUrl(){return e.selectedDocUrl},get selectedToolId(){return e.selectedToolId},get doctitleSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},isRightSidebarCollapsed:r,setIsRightSidebarCollapsed:t,rightSidebarWidth:o,get handleMouseDown(){return a.handleMouseDown},get handleToggleClick(){return a.handleToggleClick},selectedContextToolId:i,setSelectedContextToolId:u})})),b})()})}function ai(e){let r=ae("context-tool"),t=()=>r().length>0,o=pt(()=>e.selectedDocUrl()),[n,a]=Z(),i=ee("patchwork-draft-overlay-provider",n),[u,l]=Z(),c=ee("patchwork-comments-provider",u),[s,h]=Z(),f=ee("patchwork-focus-provider",s),b=pt(()=>i()&&c()&&f()),y=ae("document-provider"),x=pt(()=>y().map(p=>p.id),[],{equals:(p,d)=>p.length===d.length&&p.every((g,$)=>g===d[$])});return(()=>{var p=Qa();return Te(a,p),p._$owner=Ee(),ne(p,U(Ur,{get ids(){return x()},render:()=>(()=>{var d=ti(),g=d.firstChild;return Te(l,d),d._$owner=Ee(),Te(h,g),g._$owner=Ee(),ne(g,U(me,{get when(){return b()},get children(){var $=ei(),F=$.firstChild,P=F.firstChild;return ne(F,U(rr,{get docUrl(){return e.selectedDocUrl},get toolSlots(){return e.doctitleSlots},get isLeftCollapsed(){return e.isLeftCollapsed},hasContext:t,get isRightCollapsed(){return e.isRightSidebarCollapsed},onToggleRight:()=>e.setIsRightSidebarCollapsed(j=>!j)}),P),ne(P,U(Pr,{viewKey:o,get selectedDocUrl(){return e.selectedDocUrl},get toolId(){return e.selectedToolId},ref:j=>e.setMainDocElement?.(j)})),ne($,U(me,{get when(){return t()},get children(){return U(Xt,{get selectedToolId(){return e.selectedContextToolId},get setSelectedToolId(){return e.setSelectedContextToolId},get isCollapsed(){return e.isRightSidebarCollapsed},get width(){return e.rightSidebarWidth},get onMouseDown(){return e.handleMouseDown},get onToggleClick(){return e.handleToggleClick},onCollapse:()=>e.setIsRightSidebarCollapsed(!0)})}}),null),$}})),d})()})),p})()}function Ur(e){return U(me,{get when(){return e.ids[0]},keyed:!0,get fallback(){return e.render()},children:r=>{let[t,o]=Z(),n=ee(r,t);return(()=>{var a=ri();return Te(o,a),a.component=r,a._$owner=Ee(),ne(a,U(me,{get when(){return n()},get children(){return U(Ur,{get ids(){return e.ids.slice(1)},get render(){return e.render}})}})),a})()}})}var Ke=`:root,
|
|
12
13
|
:host,
|
|
13
14
|
[theme] {
|
|
14
15
|
--threepane-bg: var(--studio-fill, white);
|
|
@@ -278,6 +279,10 @@ Its code runs in this page and can read and change your documents. Only load it
|
|
|
278
279
|
text-overflow: ellipsis;
|
|
279
280
|
}
|
|
280
281
|
|
|
282
|
+
.threepane__title-text[draggable="true"] {
|
|
283
|
+
-webkit-user-drag: element;
|
|
284
|
+
}
|
|
285
|
+
|
|
281
286
|
.threepane__title-text--editable {
|
|
282
287
|
cursor: var(--studio-cursor-text, text);
|
|
283
288
|
}
|
|
@@ -1206,5 +1211,5 @@ Its code runs in this page and can read and change your documents. Only load it
|
|
|
1206
1211
|
body[data-sidebar-resizing] .sidebar {
|
|
1207
1212
|
transition: none;
|
|
1208
1213
|
}
|
|
1209
|
-
`;function
|
|
1210
|
-
//# sourceMappingURL=chunk-
|
|
1214
|
+
`;function jr(){let e="patchwork-frame-styles",r=document.getElementById(e);if(r){r.textContent!==Ke&&(r.textContent=Ke);return}let t=document.createElement("style");t.id=e,t.textContent=Ke,document.head.append(t)}var ui=Hr("<patchwork-view component=patchwork-isolation root-component=threepane-isolation-root shared-providers=patchwork:contact,patchwork:selected-doc,patchwork:worker-channel shared-tools=llm-config-tray style=display:contents><script type=application/json data-root-component-data>",!0,!1,!1),pi=Hr("<div class=frame>");function Dd(e){let r=Wr(()=>{let o=new Set,n=e.selectedDocUrl();return n&&o.add(n),e.contactUrl&&o.add(e.contactUrl),[...o]}),t=Wr(()=>JSON.stringify({selectedDocUrl:e.selectedDocUrl(),selectedToolId:e.selectedToolId(),doctitleSlots:e.doctitleSlots(),isLeftCollapsed:e.isLeftCollapsed(),initialRightWidth:e.initialRightWidth(),initialRightCollapsed:e.initialRightCollapsed()}));return(()=>{var o=ui(),n=o.firstChild;return o._$owner=di(),qr(n,t),ci(()=>li(o,"automerge-allowlist",r().join(","))),o})()}function Nr(e){if(!e?.textContent)return{};try{return JSON.parse(e.textContent)}catch(r){return console.error("[threepane-isolation-root] bad props JSON:",r),{}}}function Id(e){jr();let r=e.querySelector('script[type="application/json"]'),[t,o]=hi(Nr(r)),n=new MutationObserver(()=>{o(fi(Nr(r)))});r&&n.observe(r,{characterData:!0,childList:!0,subtree:!0});let a=mi(()=>(()=>{var i=pi();return qr(i,si(zr,{selectedDocUrl:()=>t.selectedDocUrl,selectedToolId:()=>t.selectedToolId,doctitleSlots:()=>t.doctitleSlots,isLeftCollapsed:()=>t.isLeftCollapsed??!1,initialRightWidth:()=>t.initialRightWidth??Re,initialRightCollapsed:()=>t.initialRightCollapsed??!1})),i})(),e);return()=>{n.disconnect(),a()}}export{St as a,we as b,V as c,Ie as d,Re as e,vt as f,wt as g,Yr as h,Ge as i,so as j,Jt as k,rt as l,Xl as m,Gl as n,Pr as o,zr as p,jr as q,Dd as r,Id as s};
|
|
1215
|
+
//# sourceMappingURL=chunk-U4IJVHXK.js.map
|