isorite 0.2.0-trial.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/embed-worker.js +9 -2
  2. package/dist/main.js +101 -32
  3. package/package.json +1 -1
  4. package/web/_app/immutable/chunks/{DP2vIlnJ.js → B7ZjnqOt.js} +1 -1
  5. package/web/_app/immutable/chunks/{BRnMDye8.js → BEVz4Dgg.js} +1 -1
  6. package/web/_app/immutable/chunks/{DhKewaLD.js → BEk5idXo.js} +1 -1
  7. package/web/_app/immutable/chunks/{CEQ-cFxt.js → B_nIecMW.js} +1 -1
  8. package/web/_app/immutable/chunks/{CWITxcMm.js → CcQ3P3p1.js} +1 -1
  9. package/web/_app/immutable/chunks/{C38XJeNJ.js → CcRs965g.js} +1 -1
  10. package/web/_app/immutable/chunks/Cw2GjAJR.js +1 -0
  11. package/web/_app/immutable/chunks/{DTwIGCa8.js → DjBHskLm.js} +1 -1
  12. package/web/_app/immutable/chunks/{D56iKolu.js → UM_L7-f7.js} +1 -1
  13. package/web/_app/immutable/chunks/{Ch0511Wu.js → b-AOhhy1.js} +1 -1
  14. package/web/_app/immutable/chunks/{GgEyipRh.js → k55859zq.js} +1 -1
  15. package/web/_app/immutable/entry/{app.C_YVtBm3.js → app.B3QXxjjH.js} +2 -2
  16. package/web/_app/immutable/entry/start.BauJm-6k.js +1 -0
  17. package/web/_app/immutable/nodes/{0.CgaPlR93.js → 0.DP4c84Wn.js} +3 -3
  18. package/web/_app/immutable/nodes/{1.CeByL9Re.js → 1.BcwcVDJZ.js} +1 -1
  19. package/web/_app/immutable/nodes/2.DgGnQZ7P.js +1 -0
  20. package/web/_app/immutable/nodes/3.BudzO7We.js +1 -0
  21. package/web/_app/immutable/nodes/{4.BBhoqQg0.js → 4.DmswyrSt.js} +1 -1
  22. package/web/_app/immutable/nodes/{5.CkVNYg2h.js → 5.DjXsfjL5.js} +1 -1
  23. package/web/_app/immutable/nodes/6.uBh-sdQx.js +1 -0
  24. package/web/_app/immutable/nodes/{8.BdGwzJFT.js → 8.Tbz9Rh77.js} +1 -1
  25. package/web/_app/version.json +1 -1
  26. package/web/index.html +15 -15
  27. package/web/_app/immutable/chunks/DAVQx5al.js +0 -1
  28. package/web/_app/immutable/entry/start.36VrMTu2.js +0 -1
  29. package/web/_app/immutable/nodes/2.DUNH537j.js +0 -1
  30. package/web/_app/immutable/nodes/3.CaAED8T_.js +0 -1
  31. package/web/_app/immutable/nodes/6.CYRn28m8.js +0 -1
@@ -1 +1 @@
1
- import{D as e,H as t,J as n,X as r,Y as i,at as a,j as o,k as s,ot as c}from"../chunks/C8UdwlAg.js";import"../chunks/xihTtKlq.js";import{t as l}from"../chunks/BRnMDye8.js";var u=o(`<h1> </h1> <p> </p>`,1);function d(o,d){c(d,!0);var f=u(),p=n(f),m=i(p,!0),h=r(p,2),g=i(h,!0);t(()=>{e(m,l.status),e(g,l.error?.message)}),s(o,f),a()}export{d as component};
1
+ import{D as e,H as t,J as n,X as r,Y as i,at as a,j as o,k as s,ot as c}from"../chunks/C8UdwlAg.js";import"../chunks/xihTtKlq.js";import{t as l}from"../chunks/BEVz4Dgg.js";var u=o(`<h1> </h1> <p> </p>`,1);function d(o,d){c(d,!0);var f=u(),p=n(f),m=i(p,!0),h=r(p,2),g=i(h,!0);t(()=>{e(m,l.status),e(g,l.error?.message)}),s(o,f),a()}export{d as component};
@@ -0,0 +1 @@
1
+ import{at as e,n as t,o as n,ot as r}from"../chunks/C8UdwlAg.js";import{o as i,t as a}from"../chunks/Cw2GjAJR.js";import"../chunks/xihTtKlq.js";import{n as o,t as s}from"../chunks/DjBHskLm.js";import{i as c}from"../chunks/UM_L7-f7.js";import"../chunks/Dm229u8R.js";function l(l,u){r(u,!1),t(()=>{let e=s.listing.notes.some(e=>e.id===c.last)?c.last:``;a(e?o(e):i(`/notes`),{replaceState:!0})}),n(),e()}export{l as component};
@@ -0,0 +1 @@
1
+ import{at as e,n as t,o as n,ot as r}from"../chunks/C8UdwlAg.js";import{o as i,t as a}from"../chunks/Cw2GjAJR.js";import"../chunks/xihTtKlq.js";import{n as o,t as s}from"../chunks/DjBHskLm.js";import{t as c}from"../chunks/BEVz4Dgg.js";import{i as l}from"../chunks/UM_L7-f7.js";import"../chunks/Dm229u8R.js";function u(u,d){r(d,!1),t(()=>{let e=s.listing.notes.some(e=>e.id===l.last)?l.last:``;a((e?o(e):i(`/notes`))+c.url.search,{replaceState:!0}).then(()=>l.to(`atlas`))}),n(),e()}export{u as component};
@@ -1,2 +1,2 @@
1
- import{$ as e,A as t,C as n,D as r,F as i,H as a,J as o,L as s,N as c,P as l,Q as u,U as d,X as f,Y as p,at as m,b as h,c as g,d as _,et as v,f as y,h as b,j as x,k as S,l as C,lt as w,n as T,o as E,ot as D,p as O,q as k,rt as A,tt as j,u as M,ut as N,w as P,x as F}from"../chunks/C8UdwlAg.js";import{o as I,t as L}from"../chunks/DAVQx5al.js";import"../chunks/xihTtKlq.js";import{n as R,t as z}from"../chunks/DTwIGCa8.js";import{t as ee,u as te}from"../chunks/CEQ-cFxt.js";import{t as B}from"../chunks/BRnMDye8.js";import{i as ne}from"../chunks/D56iKolu.js";import"../chunks/Dm229u8R.js";import{a as re,o as ie,t as ae}from"../chunks/DP2vIlnJ.js";var oe=x(`<p class="faint col svelte-nq8rms">opening…</p>`),se=x(`<div class="col svelte-nq8rms"><p class="soft">This note for Iso is not here any more. It was kept as a note, or discarded.</p><p><a>all notes</a></p></div>`),ce=x(`<div class="mark svelte-nq8rms"><i class="dia open svelte-nq8rms" aria-hidden="true"></i><span class="label">for Iso · an exercise, not in your study base yet</span></div> <h1 class="serif title svelte-nq8rms"> </h1>`,1),le=x(`<div class="mark svelte-nq8rms"><i class="dia open svelte-nq8rms" aria-hidden="true"></i><span class="label">for Iso · not in your base yet</span></div> <label class="hidden-label" for="title">Title</label> <textarea id="title" class="serif title svelte-nq8rms" rows="1" placeholder="a title for the note" autocomplete="off"></textarea>`,1),ue=x(`<span class="label">what you want from it · if anything</span>`),de=x(`<!> <!>`,1),fe=x(`<div class="prompt svelte-nq8rms"><p> </p> <button class="link svelte-nq8rms" type="button"> </button></div>`),pe=x(`<div class="prose said svelte-nq8rms"></div>`),me=x(`<span class="faint"> </span>`),he=x(`<!> <div class="foot svelte-nq8rms"><i class="dia svelte-nq8rms" aria-hidden="true"></i> <span class="soft"> <!></span> <span class="grow"></span> <button class="link svelte-nq8rms" type="button">[ stop ]</button></div>`,1),ge=x(`<textarea class="revision svelte-nq8rms" aria-label="Iso's text, to edit"></textarea>`),_e=x(`<h2 class="serif extitle svelte-nq8rms"> </h2> <div class="prose said question svelte-nq8rms"></div> <span class="label">your working</span>`,1),ve=x(`<!> <div aria-live="polite"><!></div>`,1),ye=x(`<p class="bad svelte-nq8rms" role="alert"> </p>`),be=x(`<span class="chip lattice svelte-nq8rms"> <button class="x svelte-nq8rms" type="button">×</button></span>`),xe=x(`<span class="faint">no notes yet</span>`),Se=x(`<option> </option>`),Ce=x(`<select class="field pickone svelte-nq8rms" aria-label="Add a note to test"><option> </option><!></select>`),we=x(`<button type="button" role="radio" class="svelte-nq8rms"> </button>`),Te=x(`<div class="row svelte-nq8rms"><span class="label">tests</span> <!> <!> <button class="link svelte-nq8rms" type="button">[ + pick on the atlas ]</button></div> <div class="row svelte-nq8rms"><label class="in soft svelte-nq8rms"><span>in</span> <select class="field svelte-nq8rms" aria-label="Folder"><option>the top of the base</option><!></select></label> <label class="in soft svelte-nq8rms"><span>comes after</span> <select class="field svelte-nq8rms" aria-label="Comes after"><option>nothing</option><!></select></label></div> <div class="row svelte-nq8rms"><button class="btn primary tall" type="button"><i class="dia inverse svelte-nq8rms" aria-hidden="true"></i>send to Iso</button> <span class="tiers svelte-nq8rms" role="radiogroup" aria-label="Tier"></span> <span class="grow"></span> <button class="link faint svelte-nq8rms" type="button">[ discard ]</button></div>`,1),Ee=x(`<span class="chip lattice svelte-nq8rms"> </span>`),De=x(`<span class="faint">no notes yet: type [[ in what you write, or</span>`),Oe=x(`<div class="row svelte-nq8rms"><span class="label">linked</span> <!> <button class="link svelte-nq8rms" type="button">[ + pick on the atlas ]</button></div> <div class="row svelte-nq8rms"><button class="btn primary tall" type="button"><i class="dia inverse svelte-nq8rms" aria-hidden="true"></i>send to Iso</button> <span class="tiers svelte-nq8rms" role="radiogroup" aria-label="Tier"></span> <span class="grow"></span> <button class="link faint svelte-nq8rms" type="button">[ discard ]</button></div>`,1),ke=x(`<button class="btn primary tall" type="button">keep the exercise</button> <span class="soft where svelte-nq8rms"> <!></span>`,1),Ae=x(`<option></option>`),je=x(`<button class="btn primary tall" type="button">keep as a note</button> <label class="in soft svelte-nq8rms"><span>in</span><input class="field svelte-nq8rms" placeholder="the top of the base" list="folders" autocomplete="off" aria-label="Folder"/><span class="faint">/</span></label> <datalist id="folders"></datalist>`,1),Me=x(`<button class="btn edit" type="button">done</button>`),Ne=x(`<button class="btn edit" type="button">edit</button>`),Pe=x(`<div class="row svelte-nq8rms"><!> <span class="grow"></span> <!> <button class="btn danger tall" type="button">discard</button></div> <div class="row svelte-nq8rms"><span class="label"> </span> <span class="grow"></span> <button class="link svelte-nq8rms" type="button">[ back to what I wrote ]</button></div>`,1),Fe=x(`<div class="col svelte-nq8rms"><!> <!> <!> <!></div> <div class="deck svelte-nq8rms"><!></div>`,1),Ie=x(`<article class="draft svelte-nq8rms"><!></article>`);function V(t,n){D(n,!0);let l=new re(n.id),v=new ie(l),x=e(``),E=e(!1),B=e(``),V=e(!1),H=j(()=>v.proposals.at(-1)),U=j(()=>s(H)?.text??``),W=j(()=>s(H)&&v.editing?.id===s(H).id?v.editing:null),G=j(()=>!s(H)&&!v.asking),Le=j(()=>{let e=[...l.body.matchAll(/\]\(\/([^)\s#]+)\.md/g)].map(e=>decodeURIComponent(e[1]));return[...new Set(e)].flatMap(e=>{let t=z.listing.notes.find(t=>t.id===e);return t?[t]:[]})}),Re=j(()=>v.asking?.steps.at(-1)?.said??``),K=j(()=>l.meta?.type===`Exercise`),q=j(()=>s(K)&&l.meta?te(l.meta):[]),J=j(()=>s(K)?String(l.meta?.folder??``):``),Y=j(()=>s(K)?String(l.meta?.after??``):``),X=e=>z.listing.notes.find(t=>t.id===e)?.title??e.split(`/`).at(-1),ze=j(()=>z.listing.notes.filter(e=>e.dir===s(J)&&!s(q).includes(e.id)&&!e.id.startsWith(`@`))),Z=e(null);d(()=>{s(K)&&!s(Z)&&z.api.study().then(e=>u(Z,e),()=>void 0)});let Be=j(()=>s(K)?`An exercise on ${s(q).map(X).join(`, `)||`…`}`:``),Ve=j(()=>{let e=/^\s*#[ \t]+(.+)\n?/.exec(s(U));return e?{title:e[1].trim(),question:s(U).slice(e[0].length).trim()}:{title:``,question:s(U).trim()}}),He=e=>l.setMeta({tests:e});T(()=>{z.open=n.id,l.open().then(()=>v.open());let e=()=>{l.save()};return addEventListener(`pagehide`,e),()=>{removeEventListener(`pagehide`,e),v.close(),l.close(),z.here=z.open=``,z.studying=!1,z.saving=null}}),d(()=>{z.here=l.loaded===`ready`?s(K)?`an exercise`:l.fields.title||`a new note`:``,z.studying=s(K),z.saving=l.loaded===`ready`&&s(G)?{text:l.saving===`saved`?`saved, outside your base`:l.saving===`failed`?`not saved: ${l.message}`:`saving`,bad:l.saving===`failed`}:null});async function Ue(){if(s(H)){u(B,``),u(V,!0);try{await l.save(),s(W)&&await v.done(s(H));let e=s(K)?await z.api.keepExercise(n.id,s(H).id):await z.api.keepDraft(n.id,s(H).id,s(x));await z.refresh(),await L(R(e.id))}catch(e){u(B,e.message,!0)}finally{u(V,!1)}}}async function We(){await l.save();let e=n.id.slice(7);await L(`${I(`/draft/[id]`,{id:e})}?pick=${encodeURIComponent(e)}`),ne.to(`atlas`)}async function Ge(){if(s(K)){await v.send(`exercise`);return}let e=await v.send();e&&(z.watching=e,ne.to(`atlas`))}async function Q(){u(V,!0);try{await z.api.discardDraft(n.id),await L(I(s(K)?`/study`:`/notes`))}catch(e){u(B,e.message,!0),u(V,!1)}}var $=Ie(),Ke=k($),qe=e=>{var t=oe();S(e,t)},Je=e=>{var t=se(),n=f(k(t)),r=p(n);N(t),a(e=>M(r,`href`,e),[()=>I(`/notes`)]),S(e,t)},Ye=e=>{var t=Fe(),n=o(t),d=k(n),m=e=>{var t=ce(),n=f(o(t),2),i=p(n,!0);a(()=>r(i,s(Be))),S(e,t)},T=e=>{var t=le(),n=f(o(t),4);A(n),a(()=>{_(n,l.fields.title),n.readOnly=!s(G)}),i(`input`,n,e=>l.setFields({title:e.currentTarget.value.replace(/\s*\n\s*/g,` `)})),i(`keydown`,n,e=>{e.key===`Enter`&&e.preventDefault()}),S(e,t)};P(d,e=>{s(K)?e(m):e(T,-1)});var D=f(d,2),I=e=>{var t=de(),n=o(t),r=e=>{var t=ue();S(e,t)};P(n,e=>{s(K)&&e(r)});var i=f(n,2);{let e=j(()=>s(K)?`Nothing is needed here. Or say what the exercise should ask: a calculation, a proof, your own words, how hard.`:void 0);ae(i,{get note(){return l},source:!1,get placeholder(){return s(e)}})}S(e,t)},L=e=>{var t=ve(),n=o(t),c=e=>{var t=fe(),n=k(t);let o;var c=p(n,!0),d=f(n,2),m=p(d,!0);N(t),a(e=>{o=b(n,1,`serif soft svelte-nq8rms`,null,o,{fold:!s(E)}),r(c,e),r(m,s(E)?`[ fold ]`:`[ show all ]`)},[()=>l.body.trim()]),i(`click`,d,()=>u(E,!s(E))),S(e,t)},d=j(()=>l.body.trim());P(n,e=>{s(d)&&e(c)});var m=f(n,2);let _;var y=k(m),x=e=>{var t=he(),n=o(t),c=e=>{var t=pe();h(t,()=>ee(v.asking.text),!0),N(t),S(e,t)};P(n,e=>{v.asking.text&&e(c)});var l=f(n,2),u=f(k(l),2),d=k(u,!0),m=f(d),g=e=>{var t=me(),n=p(t);a(()=>r(n,`· ${s(Re)??``}`)),S(e,t)};P(m,e=>{s(Re)&&e(g)}),N(u);var _=f(u,4);N(l),a(()=>r(d,v.asking.text?`Iso is writing`:`Iso is thinking`)),i(`click`,_,()=>v.halt()),S(e,t)},C=e=>{var t=ge();A(t),a(e=>M(t,`rows`,e),[()=>Math.max(6,s(W).text.split(`
1
+ import{$ as e,A as t,C as n,D as r,F as i,H as a,J as o,L as s,N as c,P as l,Q as u,U as d,X as f,Y as p,at as m,b as h,c as g,d as _,et as v,f as y,h as b,j as x,k as S,l as C,lt as w,n as T,o as E,ot as D,p as O,q as k,rt as A,tt as j,u as M,ut as N,w as P,x as F}from"../chunks/C8UdwlAg.js";import{o as I,t as L}from"../chunks/Cw2GjAJR.js";import"../chunks/xihTtKlq.js";import{n as R,t as z}from"../chunks/DjBHskLm.js";import{t as ee,u as te}from"../chunks/B_nIecMW.js";import{t as B}from"../chunks/BEVz4Dgg.js";import{i as ne}from"../chunks/UM_L7-f7.js";import"../chunks/Dm229u8R.js";import{a as re,o as ie,t as ae}from"../chunks/B7ZjnqOt.js";var oe=x(`<p class="faint col svelte-nq8rms">opening…</p>`),se=x(`<div class="col svelte-nq8rms"><p class="soft">This note for Iso is not here any more. It was kept as a note, or discarded.</p><p><a>all notes</a></p></div>`),ce=x(`<div class="mark svelte-nq8rms"><i class="dia open svelte-nq8rms" aria-hidden="true"></i><span class="label">for Iso · an exercise, not in your study base yet</span></div> <h1 class="serif title svelte-nq8rms"> </h1>`,1),le=x(`<div class="mark svelte-nq8rms"><i class="dia open svelte-nq8rms" aria-hidden="true"></i><span class="label">for Iso · not in your base yet</span></div> <label class="hidden-label" for="title">Title</label> <textarea id="title" class="serif title svelte-nq8rms" rows="1" placeholder="a title for the note" autocomplete="off"></textarea>`,1),ue=x(`<span class="label">what you want from it · if anything</span>`),de=x(`<!> <!>`,1),fe=x(`<div class="prompt svelte-nq8rms"><p> </p> <button class="link svelte-nq8rms" type="button"> </button></div>`),pe=x(`<div class="prose said svelte-nq8rms"></div>`),me=x(`<span class="faint"> </span>`),he=x(`<!> <div class="foot svelte-nq8rms"><i class="dia svelte-nq8rms" aria-hidden="true"></i> <span class="soft"> <!></span> <span class="grow"></span> <button class="link svelte-nq8rms" type="button">[ stop ]</button></div>`,1),ge=x(`<textarea class="revision svelte-nq8rms" aria-label="Iso's text, to edit"></textarea>`),_e=x(`<h2 class="serif extitle svelte-nq8rms"> </h2> <div class="prose said question svelte-nq8rms"></div> <span class="label">your working</span>`,1),ve=x(`<!> <div aria-live="polite"><!></div>`,1),ye=x(`<p class="bad svelte-nq8rms" role="alert"> </p>`),be=x(`<span class="chip lattice svelte-nq8rms"> <button class="x svelte-nq8rms" type="button">×</button></span>`),xe=x(`<span class="faint">no notes yet</span>`),Se=x(`<option> </option>`),Ce=x(`<select class="field pickone svelte-nq8rms" aria-label="Add a note to test"><option> </option><!></select>`),we=x(`<button type="button" role="radio" class="svelte-nq8rms"> </button>`),Te=x(`<div class="row svelte-nq8rms"><span class="label">tests</span> <!> <!> <button class="link svelte-nq8rms" type="button">[ + pick on the atlas ]</button></div> <div class="row svelte-nq8rms"><label class="in soft svelte-nq8rms"><span>in</span> <select class="field svelte-nq8rms" aria-label="Folder"><option>the top of the base</option><!></select></label> <label class="in soft svelte-nq8rms"><span>comes after</span> <select class="field svelte-nq8rms" aria-label="Comes after"><option>nothing</option><!></select></label></div> <div class="row svelte-nq8rms"><button class="btn primary tall" type="button"><i class="dia inverse svelte-nq8rms" aria-hidden="true"></i>send to Iso</button> <span class="tiers svelte-nq8rms" role="radiogroup" aria-label="Tier"></span> <span class="grow"></span> <button class="link faint svelte-nq8rms" type="button">[ discard ]</button></div>`,1),Ee=x(`<span class="chip lattice svelte-nq8rms"> </span>`),De=x(`<span class="faint">no notes yet: type [[ in what you write, or</span>`),Oe=x(`<div class="row svelte-nq8rms"><span class="label">linked</span> <!> <button class="link svelte-nq8rms" type="button">[ + pick on the atlas ]</button></div> <div class="row svelte-nq8rms"><button class="btn primary tall" type="button"><i class="dia inverse svelte-nq8rms" aria-hidden="true"></i>send to Iso</button> <span class="tiers svelte-nq8rms" role="radiogroup" aria-label="Tier"></span> <span class="grow"></span> <button class="link faint svelte-nq8rms" type="button">[ discard ]</button></div>`,1),ke=x(`<button class="btn primary tall" type="button">keep the exercise</button> <span class="soft where svelte-nq8rms"> <!></span>`,1),Ae=x(`<option></option>`),je=x(`<button class="btn primary tall" type="button">keep as a note</button> <label class="in soft svelte-nq8rms"><span>in</span><input class="field svelte-nq8rms" placeholder="the top of the base" list="folders" autocomplete="off" aria-label="Folder"/><span class="faint">/</span></label> <datalist id="folders"></datalist>`,1),Me=x(`<button class="btn edit" type="button">done</button>`),Ne=x(`<button class="btn edit" type="button">edit</button>`),Pe=x(`<div class="row svelte-nq8rms"><!> <span class="grow"></span> <!> <button class="btn danger tall" type="button">discard</button></div> <div class="row svelte-nq8rms"><span class="label"> </span> <span class="grow"></span> <button class="link svelte-nq8rms" type="button">[ back to what I wrote ]</button></div>`,1),Fe=x(`<div class="col svelte-nq8rms"><!> <!> <!> <!></div> <div class="deck svelte-nq8rms"><!></div>`,1),Ie=x(`<article class="draft svelte-nq8rms"><!></article>`);function V(t,n){D(n,!0);let l=new re(n.id),v=new ie(l),x=e(``),E=e(!1),B=e(``),V=e(!1),H=j(()=>v.proposals.at(-1)),U=j(()=>s(H)?.text??``),W=j(()=>s(H)&&v.editing?.id===s(H).id?v.editing:null),G=j(()=>!s(H)&&!v.asking),Le=j(()=>{let e=[...l.body.matchAll(/\]\(\/([^)\s#]+)\.md/g)].map(e=>decodeURIComponent(e[1]));return[...new Set(e)].flatMap(e=>{let t=z.listing.notes.find(t=>t.id===e);return t?[t]:[]})}),Re=j(()=>v.asking?.steps.at(-1)?.said??``),K=j(()=>l.meta?.type===`Exercise`),q=j(()=>s(K)&&l.meta?te(l.meta):[]),J=j(()=>s(K)?String(l.meta?.folder??``):``),Y=j(()=>s(K)?String(l.meta?.after??``):``),X=e=>z.listing.notes.find(t=>t.id===e)?.title??e.split(`/`).at(-1),ze=j(()=>z.listing.notes.filter(e=>e.dir===s(J)&&!s(q).includes(e.id)&&!e.id.startsWith(`@`))),Z=e(null);d(()=>{s(K)&&!s(Z)&&z.api.study().then(e=>u(Z,e),()=>void 0)});let Be=j(()=>s(K)?`An exercise on ${s(q).map(X).join(`, `)||`…`}`:``),Ve=j(()=>{let e=/^\s*#[ \t]+(.+)\n?/.exec(s(U));return e?{title:e[1].trim(),question:s(U).slice(e[0].length).trim()}:{title:``,question:s(U).trim()}}),He=e=>l.setMeta({tests:e});T(()=>{z.open=n.id,l.open().then(()=>v.open());let e=()=>{l.save()};return addEventListener(`pagehide`,e),()=>{removeEventListener(`pagehide`,e),v.close(),l.close(),z.here=z.open=``,z.studying=!1,z.saving=null}}),d(()=>{z.here=l.loaded===`ready`?s(K)?`an exercise`:l.fields.title||`a new note`:``,z.studying=s(K),z.saving=l.loaded===`ready`&&s(G)?{text:l.saving===`saved`?`saved, outside your base`:l.saving===`failed`?`not saved: ${l.message}`:`saving`,bad:l.saving===`failed`}:null});async function Ue(){if(s(H)){u(B,``),u(V,!0);try{await l.save(),s(W)&&await v.done(s(H));let e=s(K)?await z.api.keepExercise(n.id,s(H).id):await z.api.keepDraft(n.id,s(H).id,s(x));await z.refresh(),await L(R(e.id))}catch(e){u(B,e.message,!0)}finally{u(V,!1)}}}async function We(){await l.save();let e=n.id.slice(7);await L(`${I(`/draft/[id]`,{id:e})}?pick=${encodeURIComponent(e)}`),ne.to(`atlas`)}async function Ge(){if(s(K)){await v.send(`exercise`);return}let e=await v.send();e&&(z.watching=e,ne.to(`atlas`))}async function Q(){u(V,!0);try{await z.api.discardDraft(n.id),await L(I(s(K)?`/study`:`/notes`))}catch(e){u(B,e.message,!0),u(V,!1)}}var $=Ie(),Ke=k($),qe=e=>{var t=oe();S(e,t)},Je=e=>{var t=se(),n=f(k(t)),r=p(n);N(t),a(e=>M(r,`href`,e),[()=>I(`/notes`)]),S(e,t)},Ye=e=>{var t=Fe(),n=o(t),d=k(n),m=e=>{var t=ce(),n=f(o(t),2),i=p(n,!0);a(()=>r(i,s(Be))),S(e,t)},T=e=>{var t=le(),n=f(o(t),4);A(n),a(()=>{_(n,l.fields.title),n.readOnly=!s(G)}),i(`input`,n,e=>l.setFields({title:e.currentTarget.value.replace(/\s*\n\s*/g,` `)})),i(`keydown`,n,e=>{e.key===`Enter`&&e.preventDefault()}),S(e,t)};P(d,e=>{s(K)?e(m):e(T,-1)});var D=f(d,2),I=e=>{var t=de(),n=o(t),r=e=>{var t=ue();S(e,t)};P(n,e=>{s(K)&&e(r)});var i=f(n,2);{let e=j(()=>s(K)?`Nothing is needed here. Or say what the exercise should ask: a calculation, a proof, your own words, how hard.`:void 0);ae(i,{get note(){return l},source:!1,get placeholder(){return s(e)}})}S(e,t)},L=e=>{var t=ve(),n=o(t),c=e=>{var t=fe(),n=k(t);let o;var c=p(n,!0),d=f(n,2),m=p(d,!0);N(t),a(e=>{o=b(n,1,`serif soft svelte-nq8rms`,null,o,{fold:!s(E)}),r(c,e),r(m,s(E)?`[ fold ]`:`[ show all ]`)},[()=>l.body.trim()]),i(`click`,d,()=>u(E,!s(E))),S(e,t)},d=j(()=>l.body.trim());P(n,e=>{s(d)&&e(c)});var m=f(n,2);let _;var y=k(m),x=e=>{var t=he(),n=o(t),c=e=>{var t=pe();h(t,()=>ee(v.asking.text),!0),N(t),S(e,t)};P(n,e=>{v.asking.text&&e(c)});var l=f(n,2),u=f(k(l),2),d=k(u,!0),m=f(d),g=e=>{var t=me(),n=p(t);a(()=>r(n,`· ${s(Re)??``}`)),S(e,t)};P(m,e=>{s(Re)&&e(g)}),N(u);var _=f(u,4);N(l),a(()=>r(d,v.asking.text?`Iso is writing`:`Iso is thinking`)),i(`click`,_,()=>v.halt()),S(e,t)},C=e=>{var t=ge();A(t),a(e=>M(t,`rows`,e),[()=>Math.max(6,s(W).text.split(`
2
2
  `).length+1)]),g(t,()=>s(W).text,e=>s(W).text=e),S(e,t)},T=e=>{var t=_e(),n=o(t),i=p(n,!0),c=f(n,2);h(c,()=>ee(s(Ve).question),!0),N(c),w(2),a(()=>r(i,s(Ve).title||`an exercise`)),S(e,t)},D=e=>{var t=pe();h(t,()=>ee(s(U)),!0),N(t),S(e,t)};P(y,e=>{v.asking?e(x):s(W)?e(C,1):s(K)?e(T,2):e(D,-1)}),N(m),a(e=>_=b(m,1,`between svelte-nq8rms`,null,_,{working:e}),[()=>!!v.asking]),S(e,t)};P(D,e=>{s(G)?e(I):e(L,-1)});var R=f(D,2),te=e=>{var t=ye(),n=p(t,!0);a(()=>r(n,v.failed.message)),S(e,t)};P(R,e=>{v.failed&&e(te)});var ne=f(R,2),re=e=>{var t=ye(),n=p(t,!0);a(()=>r(n,s(B))),S(e,t)};P(ne,e=>{s(B)&&e(re)}),N(n);var ie=f(n,2),oe=k(ie),se=e=>{var t=Te(),n=o(t),c=f(k(n),2);F(c,16,()=>s(q),e=>e,(e,t)=>{var n=be(),o=k(n,!0),c=f(o);N(n),a((e,t)=>{r(o,e),M(c,`aria-label`,t)},[()=>X(t),()=>`Not ${X(t)}`]),i(`click`,c,()=>He(s(q).filter(e=>e!==t))),S(e,n)},e=>{var t=xe();S(e,t)});var u=f(c,2),d=e=>{var t=Ce(),n=k(t),o=p(n);n.value=n.__value=``;var c=f(n);F(c,17,()=>s(ze),e=>e.id,(e,t)=>{var n=Se(),i=p(n,!0),o={};a(()=>{r(i,s(t).title),o!==(o=s(t).id)&&(n.value=(n.__value=o)??``)}),S(e,n)}),N(t),t.value=t.__value=``,a(()=>r(o,`+ a note in ${(s(J)||`the top of the base`)??``}`)),i(`change`,t,e=>{let t=e.currentTarget.value;e.currentTarget.value=``,t&&He([...s(q),t])}),S(e,t)};P(u,e=>{s(ze).length&&e(d)});var m=f(u,2);N(n);var h=f(n,2),g=k(h),_=f(k(g),2),b=k(_);b.value=b.__value=``;var x=f(b);F(x,16,()=>z.listing.dirs,e=>e,(e,t)=>{var n=Se(),i=p(n,!0),o={};a(()=>{r(i,t),o!==(o=t)&&(n.value=(n.__value=o)??``)}),S(e,n)}),N(_);var C;y(_),N(g);var w=f(g,2),T=f(k(w),2),E=k(T);E.value=E.__value=``;var D=f(E);F(D,17,()=>s(Z)?.exercises??[],e=>e.id,(e,t)=>{var n=Se(),i=p(n,!0),o={};a(e=>{r(i,s(t).title),o!==(o=e)&&(n.value=(n.__value=o)??``)},[()=>s(t).id.slice(7)]),S(e,n)}),N(T);var A;y(T),N(w),N(h);var j=f(h,2),I=k(j),L=f(I,2);F(L,20,()=>[`low`,`mid`,`max`],e=>e,(e,t)=>{var n=we(),o=p(n,!0);a(()=>{M(n,`aria-checked`,v.tier===t),r(o,t)}),i(`click`,n,()=>v.setTier(t)),S(e,n)}),N(L);var R=f(L,4);N(j),a(()=>{C!==(C=s(J))&&(_.value=(_.__value=C)??``,O(_,C)),A!==(A=s(Y))&&(T.value=(T.__value=A)??``,O(T,A)),I.disabled=!s(q).length,R.disabled=s(V)}),i(`click`,m,We),i(`change`,_,e=>l.setMeta({folder:e.currentTarget.value})),i(`change`,T,e=>l.setMeta({after:e.currentTarget.value||null})),i(`click`,I,Ge),i(`click`,R,Q),S(e,t)},Ie=e=>{var t=Oe(),n=o(t),c=f(k(n),2);F(c,17,()=>s(Le),e=>e.id,(e,t)=>{var n=Ee(),i=p(n,!0);a(()=>r(i,s(t).title)),S(e,n)},e=>{var t=De();S(e,t)});var u=f(c,2);N(n);var d=f(n,2),m=k(d),h=f(m,2);F(h,20,()=>[`low`,`mid`,`max`],e=>e,(e,t)=>{var n=we(),o=p(n,!0);a(()=>{M(n,`aria-checked`,v.tier===t),r(o,t)}),i(`click`,n,()=>v.setTier(t)),S(e,n)}),N(h);var g=f(h,4);N(d),a(e=>{m.disabled=e,g.disabled=s(V)},[()=>!l.body.trim()]),i(`click`,u,We),i(`click`,m,Ge),i(`click`,g,Q),S(e,t)},$=e=>{var t=Pe(),n=o(t),l=k(n),d=e=>{var t=ke(),n=o(t),l=f(n,2),u=k(l),d=f(u),p=e=>{var t=c();a(e=>r(t,`, after ${e??``}`),[()=>s(Z)?.exercises.find(e=>e.id===`@study/${s(Y)}`)?.title??s(Y)]),S(e,t)};P(d,e=>{s(Y)&&e(p)}),N(l),a(()=>{n.disabled=s(V),r(u,`in ${(s(J)||`the top of the base`)??``}`)}),i(`click`,n,Ue),S(e,t)},m=e=>{var t=je(),n=o(t),r=f(n,2),c=f(k(r));C(c),w(),N(r);var l=f(r,2);F(l,20,()=>z.listing.dirs,e=>e,(e,t)=>{var n=Ae(),r={};a(()=>{r!==(r=t)&&(n.value=(n.__value=r)??``)}),S(e,n)}),N(l),a(()=>n.disabled=s(V)),i(`click`,n,Ue),g(c,()=>s(x),e=>u(x,e)),S(e,t)};P(l,e=>{s(K)?e(d):e(m,-1)});var h=f(l,4),_=e=>{var t=Me();i(`click`,t,()=>v.done(s(H))),S(e,t)},y=e=>{var t=Ne();i(`click`,t,()=>v.edit(s(H))),S(e,t)};P(h,e=>{s(W)?e(_):e(y,-1)});var b=f(h,2);N(n);var T=f(n,2),E=k(T),D=p(E),O=f(E,4);N(T),a(e=>{b.disabled=s(V),r(D,`${e??``}${s(H).notice?` · ${s(H).notice}`:``}`),O.disabled=s(V)},[()=>s(H).cost?`${s(H).cost.tier} · $${s(H).cost.usd.toFixed(3)}`:``]),i(`click`,b,Q),i(`click`,O,()=>v.discard(s(H))),S(e,t)};P(oe,e=>{s(G)&&s(K)?e(se):s(G)?e(Ie,1):s(H)&&e($,2)}),N(ie),S(e,t)};P(Ke,e=>{l.loaded===`loading`?e(qe):l.loaded===`ready`?e(Ye,-1):e(Je,1)}),N($),S(t,$),m()}l([`input`,`keydown`,`click`,`change`]);function H(e,r){D(r,!1),E();var i=t(),a=o(i);n(a,()=>B.params.id,e=>{{let t=v(()=>`@draft/${B.params.id??``}`);V(e,{get id(){return s(t)}})}}),S(e,i),m()}export{H as component};
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,C as n,D as r,F as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,P as f,Q as p,U as m,X as h,Y as g,Z as _,at as v,b as y,c as b,d as x,h as S,j as C,k as w,l as T,lt as E,m as D,n as O,ot as k,q as A,rt as ee,s as j,tt as M,u as N,ut as P,w as F,x as I,z as te}from"../chunks/C8UdwlAg.js";import{o as ne,t as re}from"../chunks/DAVQx5al.js";import"../chunks/xihTtKlq.js";import{n as ie,r as L,t as R}from"../chunks/DTwIGCa8.js";import{_ as z,a as B,b as ae,c as V,f as H,g as oe,i as U,o as W,s as se,t as G,w as K,x as ce,y as le}from"../chunks/CEQ-cFxt.js";import{i as ue,n as de,r as fe,t as pe}from"../chunks/GgEyipRh.js";import{t as me}from"../chunks/BRnMDye8.js";import{i as q}from"../chunks/D56iKolu.js";import{t as J}from"../chunks/Ch0511Wu.js";import{a as he,i as Y,n as ge,o as _e,r as X,t as ve}from"../chunks/DP2vIlnJ.js";var ye=e=>e<=0?0:e<=2?1:e<=4?2:3;function be(e,t){let n=t.length?6:0,r=!1;for(let i of t){let t=e.get(i);n=Math.min(n,t?.squares??0),r||=!!t?.due}return{squares:n,step:ye(n),due:r}}var Z=C(`<span class="label ok svelte-1myx1bo" role="status"> </span>`),xe=C(`<span class="label bad svelte-1myx1bo" role="status">no terminal agent took it: is isorite term running?</span>`),Se=C(`<span class="label bad svelte-1myx1bo" role="alert"> </span>`),Ce=C(`<div class="send svelte-1myx1bo" role="group" aria-label="Send to the terminal's agent"><span class="label what svelte-1myx1bo"> </span> <input type="text" placeholder="what you want of it (optional)" aria-label="What you want of it" maxlength="4000" class="svelte-1myx1bo"/> <button class="btn primary svelte-1myx1bo" type="button">send to agent</button> <button class="link svelte-1myx1bo" type="button">[ close ]</button> <!></div>`);function we(t,n){k(n,!0);let o=e(``),s=e(``),c=e(``),u=e(``);async function d(){p(s,`sending`);let e=new Map,t=R.on(t=>{t.type===`agent-received`&&e.set(t.id,t.agent)});try{let{id:t}=await R.api.agentSend({note:n.note,...n.passage?{passage:n.passage}:{},said:l(o)});for(let n=Date.now();!e.has(t)&&Date.now()-n<4e3;)await new Promise(e=>setTimeout(e,100));p(c,B(e.get(t)),!0),p(s,e.has(t)?`taken`:`none`,!0),l(s)===`taken`&&p(o,``)}catch(e){p(s,`failed`),p(u,e.message,!0)}finally{t()}}var f=Ce(),m=A(f),_=g(m,!0),y=h(m,2);T(y);var x=h(y,2),S=h(x,2),C=h(S,2),E=e=>{var t=Z(),n=g(t);a(()=>r(n,`${l(c)??``} has it, in the terminal`)),w(e,t)},D=e=>{var t=xe();w(e,t)},O=e=>{var t=Se(),n=g(t,!0);a(()=>r(n,l(u))),w(e,t)};F(C,e=>{l(s)===`taken`?e(E):l(s)===`none`?e(D,1):l(s)===`failed`&&e(O,2)}),P(f),a(()=>{r(_,n.passage?`the passage you chose`:`this note`),x.disabled=l(s)===`sending`}),i(`keydown`,y,e=>{e.key===`Enter`&&(e.preventDefault(),d()),e.key===`Escape`&&n.onclose()}),b(y,()=>l(o),e=>p(o,e)),i(`click`,x,d),i(`click`,S,function(...e){n.onclose?.apply(this,e)}),w(t,f),v()}f([`keydown`,`click`]);var Q=e=>`isorite.answer.${e}`;function Te(e){try{let t=JSON.parse(localStorage.getItem(Q(e))??`null`);return t&&typeof t.text==`string`&&typeof t.nth==`number`?t:null}catch{return null}}function Ee(e,t){try{t?localStorage.setItem(Q(e),JSON.stringify(t)):localStorage.removeItem(Q(e))}catch{}}function De(e){let t=e>0?`+`:e<0?`−`:``,n=Math.abs(e);return n===0?`0`:t+(n===.5?`½`:n===1?`1`:String(n))}var Oe=class{note;iso;stop=null;#e=e(null);get answer(){return l(this.#e)}set answer(e){p(this.#e,e)}#t=e(null);get study(){return l(this.#t)}set study(e){p(this.#t,e)}#n=e(null);get marking(){return l(this.#n)}set marking(e){p(this.#n,e,!0)}#r=e(``);get failed(){return l(this.#r)}set failed(e){p(this.#r,e,!0)}#i=e(0);get flash(){return l(this.#i)}set flash(e){p(this.#i,e,!0)}constructor(e,t){this.note=e,this.iso=t,this.answer=Te(e.id)}#a=M(()=>W(this.note.text));get ex(){return l(this.#a)}set ex(e){p(this.#a,e)}#o=M(()=>this.note.meta?.type===`Exercise`);get is(){return l(this.#o)}set is(e){p(this.#o,e)}#s=M(()=>{if(!this.answer)return null;let e=H(this.note.text,this.answer);return e&&e.from>=this.ex.from?e:null});get answerAt(){return l(this.#s)}set answerAt(e){p(this.#s,e)}#c=M(()=>{let e=this.iso.cursor;if(!e||e.to<=e.from||e.from<this.ex.from)return null;let{from:t,to:n}=e,r=this.note.text;for(;t<n&&/\s/.test(r[t]);)t++;for(;n>t&&/\s/.test(r[n-1]);)n--;return n>t?{from:t,to:n}:null});get selection(){return l(this.#c)}set selection(e){p(this.#c,e)}#l=M(()=>this.iso.entries.filter(e=>e.kind===`marks`).at(-1)??null);get last(){return l(this.#l)}set last(e){p(this.#l,e)}#u=M(()=>this.last?se(this.note.text,this.last.marks).filter(e=>e.from>=this.ex.from):[]);get marks(){return l(this.#u)}set marks(e){p(this.#u,e)}#d=M(()=>({right:this.marks.filter(e=>e.mark===`right`).length,wrong:this.marks.filter(e=>e.mark===`wrong`).length}));get counts(){return l(this.#d)}set counts(e){p(this.#d,e)}#f=M(()=>{let e=new Map;for(let[t,n]of Object.entries(this.study?.notes??{}))e.set(t,{...n,lapsed:!1,last:null,evidence:[]});return be(e,this.ex.tests)});get squares(){return l(this.#f)}set squares(e){p(this.#f,e)}#p=M(()=>{let e=this.last;return e?this.ex.tests.flatMap(t=>{let n=this.study?.notes[t]?.evidence.find(t=>t.marks===e.id);return n?[{note:t,by:n.by}]:[]}):[]});get moves(){return l(this.#p)}set moves(e){p(this.#p,e)}async open(){this.stop=R.on(e=>{e.type===`record`&&this.reread(),!this.marking||!(`request`in e)||this.marking&&e.request!==this.marking?e.type===`iso-start`&&this.marking===``&&e.note===this.note.id&&(this.marking=e.request):e.type===`iso-done`?(this.marking=null,this.reread().then(()=>{this.last?.result===`right`&&this.flash++})):e.type===`iso-failed`?(this.marking=null,this.failed=e.message):e.type===`iso-stopped`&&(this.marking=null)}),await this.reread()}close(){this.stop?.()}async reread(){try{this.study=await R.api.study()}catch{}}markAnswer(){let e=this.selection;e&&(this.answer=z(this.note.text,e.from,e.to),Ee(this.note.id,this.answer))}clearAnswer(){this.answer=null,Ee(this.note.id,null)}async send(){if(this.marking===null&&this.answerAt){this.failed=``,this.marking=``;try{await this.note.save();let e=this.answerAt;if(!e)throw Error(`the answer you marked is no longer in the working`);let t=z(this.note.text,e.from,e.to),{request:n}=await R.api.ask({note:this.note.id,form:`mark`,answer:t,tier:this.iso.tier});this.marking===``&&(this.marking=n)}catch(e){this.marking=null,this.failed=e.message}}}async windBack(){try{await R.api.windBack(this.note.id),await this.reread()}catch(e){this.failed=e.message}}},ke=C(`<button class="link svelte-1khbtcu" type="button">delete</button>`),Ae=C(`<label class="wide svelte-1khbtcu" for="note-folder"><span>folder</span></label> <span class="wide svelte-1khbtcu"><!></span> <label class="svelte-1khbtcu"><span>name</span><input class="mono svelte-1khbtcu" spellcheck="false" autocomplete="off" aria-label="name: change it to rename the file"/></label> <!>`,1),je=C(`<div class="full ask svelte-1khbtcu" role="alertdialog" aria-label="delete this note"><span class="svelte-1khbtcu">Delete this note? <!> Its history stays.</span> <button class="btn danger svelte-1khbtcu" type="button">delete</button> <button class="btn quiet svelte-1khbtcu" type="button">keep it</button></div>`),Me=C(`<p class="full problem svelte-1khbtcu" role="alert"> </p>`),Ne=C(`<option></option>`),Pe=C(`<div class="details svelte-1khbtcu"><label class="svelte-1khbtcu"><span>type</span><input list="types" autocomplete="off" class="svelte-1khbtcu"/></label> <label class="wide svelte-1khbtcu"><span>tags</span><input placeholder="none" autocomplete="off" class="svelte-1khbtcu"/></label> <label class="full svelte-1khbtcu"><span>description</span><input placeholder="one line on what this note says" autocomplete="off" class="svelte-1khbtcu"/></label> <!> <!> <!> <datalist id="types"></datalist></div>`);function Fe(t,n){k(n,!0);let o=M(()=>[...new Set(R.listing.notes.map(e=>e.type).filter(Boolean))].sort()),c=M(()=>!n.note.id.startsWith(`@`)),u=e(``),f=e(null),m=e=>e.split(`/`).slice(0,-1).join(`/`),_=e=>e.split(`/`).at(-1),y=M(()=>m(n.note.id));async function b(e,t){let r=e=>e.trim().replace(/^\/+|\/+$/g,``).replace(/\.md$/,``),i=[r(e),r(t)].filter(Boolean).join(`/`);if(!r(t)||i===n.note.id)p(y,m(n.note.id));else{p(u,``);try{let e=await n.note.move(i);await R.refresh(),await re(ie(e),{replaceState:!0})}catch(e){p(u,e.message,!0),p(y,m(n.note.id))}}}async function S(){p(u,``);try{let e=await R.api.map();p(f,[...new Set(e.model.edges.filter(([e,t])=>t===n.note.id&&e!==n.note.id&&!e.startsWith(`@`)).map(([t])=>e.notes[t]?.title||t))],!0)}catch(e){p(u,e.message,!0)}}async function C(){try{await n.note.remove(),await R.refresh(),await re(ne(`/notes`),{replaceState:!0})}catch(e){p(u,e.message,!0),p(f,null)}}var D=Pe(),O=A(D),ee=h(A(O));T(ee),P(O);var j=h(O,2),te=h(A(j));T(te),P(j);var L=h(j,2),z=h(A(L));T(z),P(L);var B=h(L,2),ae=e=>{var t=Ae(),r=h(s(t),2),o=A(r);J(o,{id:`note-folder`,quiet:!0,label:`folder: change it to move the note`,placeholder:`the top of the base`,onpick:e=>void b(e,_(n.note.id)),onkeydown:e=>{e.key===`Escape`&&(p(y,m(n.note.id)),e.currentTarget.blur())},get value(){return l(y)},set value(e){p(y,e)}}),P(r);var c=h(r,2),u=h(A(c));T(u),P(c);var d=h(c,2),g=e=>{var t=ke();i(`click`,t,()=>void S()),w(e,t)};F(d,e=>{l(f)===null&&e(g)}),a((e,t)=>{x(u,e),N(u,`size`,t)},[()=>_(n.note.id),()=>Math.max(8,_(n.note.id).length)]),i(`change`,u,e=>void b(l(y),e.currentTarget.value)),i(`keydown`,u,e=>{e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=_(n.note.id),e.currentTarget.blur())}),w(e,t)};F(B,e=>{l(c)&&e(ae)});var V=h(B,2),H=e=>{var t=je(),n=A(t),o=h(A(n)),s=e=>{var t=d();a(e=>r(t,`${l(f).length===1?`One note links`:`${l(f).length} notes link`} to it (${e??``}); ${l(f).length===1?`its link is`:`their links are`} left broken.`),[()=>l(f).join(`, `)]),w(e,t)},c=e=>{var t=d(`No note links to it.`);w(e,t)};F(o,e=>{l(f).length?e(s):e(c,-1)}),E(),P(n);var u=h(n,2),m=h(u,2);P(t),i(`click`,u,()=>void C()),i(`click`,m,()=>{p(f,null)}),w(e,t)};F(V,e=>{l(f)!==null&&e(H)});var oe=h(V,2),U=e=>{var t=Me(),n=g(t,!0);a(()=>r(n,l(u))),w(e,t)};F(oe,e=>{l(u)&&e(U)});var W=h(oe,2);I(W,20,()=>l(o),e=>e,(e,t)=>{var n=Ne(),r={};a(()=>{r!==(r=t)&&(n.value=(n.__value=r)??``)}),w(e,n)}),P(W),P(D),a(e=>{x(ee,n.note.fields.type),N(ee,`size`,e),x(te,n.note.fields.tags),x(z,n.note.fields.description)},[()=>Math.max(7,n.note.fields.type.length)]),i(`input`,ee,e=>n.note.setFields({type:e.currentTarget.value})),i(`change`,te,e=>n.note.setFields({tags:e.currentTarget.value})),i(`input`,z,e=>n.note.setFields({description:e.currentTarget.value})),w(t,D),v()}f([`input`,`change`,`keydown`,`click`]);var Ie=C(`<h1 class="serif title svelte-130pv1o"> </h1>`),Le=C(`<p class="asked svelte-130pv1o"><i class="dia svelte-130pv1o" aria-hidden="true"></i><span> </span></p>`),Re=C(`<div class="offered svelte-130pv1o" aria-label="What Iso offered"><p class="serif svelte-130pv1o"> </p></div>`),ze=C(`<div class="version svelte-130pv1o"><!> <!> <div class="text svelte-130pv1o"></div> <!></div>`);function Be(t,n){k(n,!0);let i=M(()=>{try{let[e,t,r]=K(n.text);return{title:/^title:\s*(.*)$/m.exec(t??``)?.[1]?.trim().replace(/^["']|["']$/g,``)??``,body:r,lines:e.split(`
1
+ import{$ as e,A as t,C as n,D as r,F as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,P as f,Q as p,U as m,X as h,Y as g,Z as _,at as v,b as y,c as b,d as x,h as S,j as C,k as w,l as T,lt as E,m as D,n as O,ot as k,q as A,rt as ee,s as j,tt as M,u as N,ut as P,w as F,x as I,z as te}from"../chunks/C8UdwlAg.js";import{o as ne,t as re}from"../chunks/Cw2GjAJR.js";import"../chunks/xihTtKlq.js";import{n as ie,r as L,t as R}from"../chunks/DjBHskLm.js";import{_ as z,a as B,b as ae,c as V,f as H,g as oe,i as U,o as W,s as se,t as G,w as K,x as ce,y as le}from"../chunks/B_nIecMW.js";import{i as ue,n as de,r as fe,t as pe}from"../chunks/k55859zq.js";import{t as me}from"../chunks/BEVz4Dgg.js";import{i as q}from"../chunks/UM_L7-f7.js";import{t as J}from"../chunks/b-AOhhy1.js";import{a as he,i as Y,n as ge,o as _e,r as X,t as ve}from"../chunks/B7ZjnqOt.js";var ye=e=>e<=0?0:e<=2?1:e<=4?2:3;function be(e,t){let n=t.length?6:0,r=!1;for(let i of t){let t=e.get(i);n=Math.min(n,t?.squares??0),r||=!!t?.due}return{squares:n,step:ye(n),due:r}}var Z=C(`<span class="label ok svelte-1myx1bo" role="status"> </span>`),xe=C(`<span class="label bad svelte-1myx1bo" role="status">no terminal agent took it: is isorite term running?</span>`),Se=C(`<span class="label bad svelte-1myx1bo" role="alert"> </span>`),Ce=C(`<div class="send svelte-1myx1bo" role="group" aria-label="Send to the terminal's agent"><span class="label what svelte-1myx1bo"> </span> <input type="text" placeholder="what you want of it (optional)" aria-label="What you want of it" maxlength="4000" class="svelte-1myx1bo"/> <button class="btn primary svelte-1myx1bo" type="button">send to agent</button> <button class="link svelte-1myx1bo" type="button">[ close ]</button> <!></div>`);function we(t,n){k(n,!0);let o=e(``),s=e(``),c=e(``),u=e(``);async function d(){p(s,`sending`);let e=new Map,t=R.on(t=>{t.type===`agent-received`&&e.set(t.id,t.agent)});try{let{id:t}=await R.api.agentSend({note:n.note,...n.passage?{passage:n.passage}:{},said:l(o)});for(let n=Date.now();!e.has(t)&&Date.now()-n<4e3;)await new Promise(e=>setTimeout(e,100));p(c,B(e.get(t)),!0),p(s,e.has(t)?`taken`:`none`,!0),l(s)===`taken`&&p(o,``)}catch(e){p(s,`failed`),p(u,e.message,!0)}finally{t()}}var f=Ce(),m=A(f),_=g(m,!0),y=h(m,2);T(y);var x=h(y,2),S=h(x,2),C=h(S,2),E=e=>{var t=Z(),n=g(t);a(()=>r(n,`${l(c)??``} has it, in the terminal`)),w(e,t)},D=e=>{var t=xe();w(e,t)},O=e=>{var t=Se(),n=g(t,!0);a(()=>r(n,l(u))),w(e,t)};F(C,e=>{l(s)===`taken`?e(E):l(s)===`none`?e(D,1):l(s)===`failed`&&e(O,2)}),P(f),a(()=>{r(_,n.passage?`the passage you chose`:`this note`),x.disabled=l(s)===`sending`}),i(`keydown`,y,e=>{e.key===`Enter`&&(e.preventDefault(),d()),e.key===`Escape`&&n.onclose()}),b(y,()=>l(o),e=>p(o,e)),i(`click`,x,d),i(`click`,S,function(...e){n.onclose?.apply(this,e)}),w(t,f),v()}f([`keydown`,`click`]);var Q=e=>`isorite.answer.${e}`;function Te(e){try{let t=JSON.parse(localStorage.getItem(Q(e))??`null`);return t&&typeof t.text==`string`&&typeof t.nth==`number`?t:null}catch{return null}}function Ee(e,t){try{t?localStorage.setItem(Q(e),JSON.stringify(t)):localStorage.removeItem(Q(e))}catch{}}function De(e){let t=e>0?`+`:e<0?`−`:``,n=Math.abs(e);return n===0?`0`:t+(n===.5?`½`:n===1?`1`:String(n))}var Oe=class{note;iso;stop=null;#e=e(null);get answer(){return l(this.#e)}set answer(e){p(this.#e,e)}#t=e(null);get study(){return l(this.#t)}set study(e){p(this.#t,e)}#n=e(null);get marking(){return l(this.#n)}set marking(e){p(this.#n,e,!0)}#r=e(``);get failed(){return l(this.#r)}set failed(e){p(this.#r,e,!0)}#i=e(0);get flash(){return l(this.#i)}set flash(e){p(this.#i,e,!0)}constructor(e,t){this.note=e,this.iso=t,this.answer=Te(e.id)}#a=M(()=>W(this.note.text));get ex(){return l(this.#a)}set ex(e){p(this.#a,e)}#o=M(()=>this.note.meta?.type===`Exercise`);get is(){return l(this.#o)}set is(e){p(this.#o,e)}#s=M(()=>{if(!this.answer)return null;let e=H(this.note.text,this.answer);return e&&e.from>=this.ex.from?e:null});get answerAt(){return l(this.#s)}set answerAt(e){p(this.#s,e)}#c=M(()=>{let e=this.iso.cursor;if(!e||e.to<=e.from||e.from<this.ex.from)return null;let{from:t,to:n}=e,r=this.note.text;for(;t<n&&/\s/.test(r[t]);)t++;for(;n>t&&/\s/.test(r[n-1]);)n--;return n>t?{from:t,to:n}:null});get selection(){return l(this.#c)}set selection(e){p(this.#c,e)}#l=M(()=>this.iso.entries.filter(e=>e.kind===`marks`).at(-1)??null);get last(){return l(this.#l)}set last(e){p(this.#l,e)}#u=M(()=>this.last?se(this.note.text,this.last.marks).filter(e=>e.from>=this.ex.from):[]);get marks(){return l(this.#u)}set marks(e){p(this.#u,e)}#d=M(()=>({right:this.marks.filter(e=>e.mark===`right`).length,wrong:this.marks.filter(e=>e.mark===`wrong`).length}));get counts(){return l(this.#d)}set counts(e){p(this.#d,e)}#f=M(()=>{let e=new Map;for(let[t,n]of Object.entries(this.study?.notes??{}))e.set(t,{...n,lapsed:!1,last:null,evidence:[]});return be(e,this.ex.tests)});get squares(){return l(this.#f)}set squares(e){p(this.#f,e)}#p=M(()=>{let e=this.last;return e?this.ex.tests.flatMap(t=>{let n=this.study?.notes[t]?.evidence.find(t=>t.marks===e.id);return n?[{note:t,by:n.by}]:[]}):[]});get moves(){return l(this.#p)}set moves(e){p(this.#p,e)}async open(){this.stop=R.on(e=>{e.type===`record`&&this.reread(),!this.marking||!(`request`in e)||this.marking&&e.request!==this.marking?e.type===`iso-start`&&this.marking===``&&e.note===this.note.id&&(this.marking=e.request):e.type===`iso-done`?(this.marking=null,this.reread().then(()=>{this.last?.result===`right`&&this.flash++})):e.type===`iso-failed`?(this.marking=null,this.failed=e.message):e.type===`iso-stopped`&&(this.marking=null)}),await this.reread()}close(){this.stop?.()}async reread(){try{this.study=await R.api.study()}catch{}}markAnswer(){let e=this.selection;e&&(this.answer=z(this.note.text,e.from,e.to),Ee(this.note.id,this.answer))}clearAnswer(){this.answer=null,Ee(this.note.id,null)}async send(){if(this.marking===null&&this.answerAt){this.failed=``,this.marking=``;try{await this.note.save();let e=this.answerAt;if(!e)throw Error(`the answer you marked is no longer in the working`);let t=z(this.note.text,e.from,e.to),{request:n}=await R.api.ask({note:this.note.id,form:`mark`,answer:t,tier:this.iso.tier});this.marking===``&&(this.marking=n)}catch(e){this.marking=null,this.failed=e.message}}}async windBack(){try{await R.api.windBack(this.note.id),await this.reread()}catch(e){this.failed=e.message}}},ke=C(`<button class="link svelte-1khbtcu" type="button">delete</button>`),Ae=C(`<label class="wide svelte-1khbtcu" for="note-folder"><span>folder</span></label> <span class="wide svelte-1khbtcu"><!></span> <label class="svelte-1khbtcu"><span>name</span><input class="mono svelte-1khbtcu" spellcheck="false" autocomplete="off" aria-label="name: change it to rename the file"/></label> <!>`,1),je=C(`<div class="full ask svelte-1khbtcu" role="alertdialog" aria-label="delete this note"><span class="svelte-1khbtcu">Delete this note? <!> Its history stays.</span> <button class="btn danger svelte-1khbtcu" type="button">delete</button> <button class="btn quiet svelte-1khbtcu" type="button">keep it</button></div>`),Me=C(`<p class="full problem svelte-1khbtcu" role="alert"> </p>`),Ne=C(`<option></option>`),Pe=C(`<div class="details svelte-1khbtcu"><label class="svelte-1khbtcu"><span>type</span><input list="types" autocomplete="off" class="svelte-1khbtcu"/></label> <label class="wide svelte-1khbtcu"><span>tags</span><input placeholder="none" autocomplete="off" class="svelte-1khbtcu"/></label> <label class="full svelte-1khbtcu"><span>description</span><input placeholder="one line on what this note says" autocomplete="off" class="svelte-1khbtcu"/></label> <!> <!> <!> <datalist id="types"></datalist></div>`);function Fe(t,n){k(n,!0);let o=M(()=>[...new Set(R.listing.notes.map(e=>e.type).filter(Boolean))].sort()),c=M(()=>!n.note.id.startsWith(`@`)),u=e(``),f=e(null),m=e=>e.split(`/`).slice(0,-1).join(`/`),_=e=>e.split(`/`).at(-1),y=M(()=>m(n.note.id));async function b(e,t){let r=e=>e.trim().replace(/^\/+|\/+$/g,``).replace(/\.md$/,``),i=[r(e),r(t)].filter(Boolean).join(`/`);if(!r(t)||i===n.note.id)p(y,m(n.note.id));else{p(u,``);try{let e=await n.note.move(i);await R.refresh(),await re(ie(e),{replaceState:!0})}catch(e){p(u,e.message,!0),p(y,m(n.note.id))}}}async function S(){p(u,``);try{let e=await R.api.map();p(f,[...new Set(e.model.edges.filter(([e,t])=>t===n.note.id&&e!==n.note.id&&!e.startsWith(`@`)).map(([t])=>e.notes[t]?.title||t))],!0)}catch(e){p(u,e.message,!0)}}async function C(){try{await n.note.remove(),await R.refresh(),await re(ne(`/notes`),{replaceState:!0})}catch(e){p(u,e.message,!0),p(f,null)}}var D=Pe(),O=A(D),ee=h(A(O));T(ee),P(O);var j=h(O,2),te=h(A(j));T(te),P(j);var L=h(j,2),z=h(A(L));T(z),P(L);var B=h(L,2),ae=e=>{var t=Ae(),r=h(s(t),2),o=A(r);J(o,{id:`note-folder`,quiet:!0,label:`folder: change it to move the note`,placeholder:`the top of the base`,onpick:e=>void b(e,_(n.note.id)),onkeydown:e=>{e.key===`Escape`&&(p(y,m(n.note.id)),e.currentTarget.blur())},get value(){return l(y)},set value(e){p(y,e)}}),P(r);var c=h(r,2),u=h(A(c));T(u),P(c);var d=h(c,2),g=e=>{var t=ke();i(`click`,t,()=>void S()),w(e,t)};F(d,e=>{l(f)===null&&e(g)}),a((e,t)=>{x(u,e),N(u,`size`,t)},[()=>_(n.note.id),()=>Math.max(8,_(n.note.id).length)]),i(`change`,u,e=>void b(l(y),e.currentTarget.value)),i(`keydown`,u,e=>{e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=_(n.note.id),e.currentTarget.blur())}),w(e,t)};F(B,e=>{l(c)&&e(ae)});var V=h(B,2),H=e=>{var t=je(),n=A(t),o=h(A(n)),s=e=>{var t=d();a(e=>r(t,`${l(f).length===1?`One note links`:`${l(f).length} notes link`} to it (${e??``}); ${l(f).length===1?`its link is`:`their links are`} left broken.`),[()=>l(f).join(`, `)]),w(e,t)},c=e=>{var t=d(`No note links to it.`);w(e,t)};F(o,e=>{l(f).length?e(s):e(c,-1)}),E(),P(n);var u=h(n,2),m=h(u,2);P(t),i(`click`,u,()=>void C()),i(`click`,m,()=>{p(f,null)}),w(e,t)};F(V,e=>{l(f)!==null&&e(H)});var oe=h(V,2),U=e=>{var t=Me(),n=g(t,!0);a(()=>r(n,l(u))),w(e,t)};F(oe,e=>{l(u)&&e(U)});var W=h(oe,2);I(W,20,()=>l(o),e=>e,(e,t)=>{var n=Ne(),r={};a(()=>{r!==(r=t)&&(n.value=(n.__value=r)??``)}),w(e,n)}),P(W),P(D),a(e=>{x(ee,n.note.fields.type),N(ee,`size`,e),x(te,n.note.fields.tags),x(z,n.note.fields.description)},[()=>Math.max(7,n.note.fields.type.length)]),i(`input`,ee,e=>n.note.setFields({type:e.currentTarget.value})),i(`change`,te,e=>n.note.setFields({tags:e.currentTarget.value})),i(`input`,z,e=>n.note.setFields({description:e.currentTarget.value})),w(t,D),v()}f([`input`,`change`,`keydown`,`click`]);var Ie=C(`<h1 class="serif title svelte-130pv1o"> </h1>`),Le=C(`<p class="asked svelte-130pv1o"><i class="dia svelte-130pv1o" aria-hidden="true"></i><span> </span></p>`),Re=C(`<div class="offered svelte-130pv1o" aria-label="What Iso offered"><p class="serif svelte-130pv1o"> </p></div>`),ze=C(`<div class="version svelte-130pv1o"><!> <!> <div class="text svelte-130pv1o"></div> <!></div>`);function Be(t,n){k(n,!0);let i=M(()=>{try{let[e,t,r]=K(n.text);return{title:/^title:\s*(.*)$/m.exec(t??``)?.[1]?.trim().replace(/^["']|["']$/g,``)??``,body:r,lines:e.split(`
2
2
  `).length-1}}catch{return{title:``,body:n.text,lines:0}}}),o,s=e(void 0);O(()=>(p(s,ge(o,{doc:l(i).body,onChange:()=>void 0,onSave:()=>void 0,label:`The note as it was`,notes:()=>[],readOnly:!0})),()=>l(s)?.destroy())),m(()=>{let e=n.touched,t=l(i).lines;l(s)?.dispatch({effects:Y.of(e?{who:e.who,lines:e.lines.map(e=>e-t)}:null)})});var c=ze(),u=A(c),d=e=>{var t=Ie(),n=g(t,!0);a(()=>r(n,l(i).title)),w(e,t)};F(u,e=>{l(i).title&&l(i).title!==n.title&&e(d)});var f=h(u,2),_=e=>{var t=Le(),i=h(A(t)),o=g(i,!0);P(t),a(()=>r(o,n.asked)),w(e,t)};F(f,e=>{n.asked!==void 0&&e(_)});var y=h(f,2);j(y,e=>o=e,()=>o);var b=h(y,2),x=e=>{var t=Re(),i=A(t),o=g(i,!0);P(t),a(()=>r(o,n.offered)),w(e,t)};F(b,e=>{n.offered!==void 0&&e(x)}),P(c),w(t,c),v()}var Ve=e=>{var t=He();w(e,t)},He=u(`<svg viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path d="M8 1v14" stroke="currentColor" stroke-width="1.2" fill="none"></path><rect x="5.5" y="2" width="5" height="3.2" fill="currentColor"></rect><path d="M8 6.3l2.3 2.3L8 10.9 5.7 8.6z" fill="currentColor"></path><rect x="5.5" y="12" width="5" height="3" fill="none" stroke="currentColor" stroke-width="1.2"></rect></svg>`),Ue=C(`<p class="faint">opening…</p>`),We=C(`<p class="soft">There is no note at <span class="faint"> </span>.</p> <p><a>all notes</a></p>`,1),Ge=C(`<p class="bad svelte-18ltlst"> </p>`),Ke=C(`<button class="btn" type="button">take theirs</button>`),qe=C(`<div class="frame choice svelte-18ltlst" role="alert"><span class="frame-title">changed elsewhere</span> <p> </p> <div class="row svelte-18ltlst"><button class="btn primary" type="button">keep mine</button> <!></div> <p class="faint">Whichever you keep, the other stays in the note's journal.</p></div>`),Je=C(`<i></i>`),Ye=C(`<span class="label">due</span>`),Xe=C(`<div class="evidence label svelte-18ltlst"><span class="by svelte-18ltlst"> </span><span> </span><span class="grow"></span><span> </span></div>`),Ze=C(`<div class="evidence label svelte-18ltlst">nothing yet</div>`),Qe=C(`<div class="reading svelte-18ltlst"><span class="soft"> </span> <span class="squares svelte-18ltlst"></span> <!></div> <!>`,1),$e=C(`<div class="frame why svelte-18ltlst" role="region" aria-label="Iso's read of you"><span class="frame-title">Iso's read of you</span> <!> <div class="row svelte-18ltlst"><span class="label">rated too highly? one square down for each note it tests</span><span class="grow"></span><button class="link svelte-18ltlst" type="button">[ wind back ]</button></div></div>`),et=C(`<a> </a>`),tt=C(`<span class="faint">nothing: name a note in its tests</span>`),nt=C(`<div class="tests svelte-18ltlst"><span class="label"> </span> <!> <span class="grow"></span> <div class="tools svelte-18ltlst"><button class="icon svelte-18ltlst" type="button" aria-label="timeline" title="timeline"><!></button> <button class="btn quiet svelte-18ltlst" type="button">details</button> <button class="btn quiet svelte-18ltlst" type="button">source</button></div></div>`),rt=C(`<label class="hidden-label" for="title">Title</label> <textarea id="title" class="serif title svelte-18ltlst" rows="1" autocomplete="off"></textarea>`,1),it=C(`<span class="grow faint"> </span>`),at=C(`<button class="icon svelte-18ltlst" type="button" aria-label="timeline" title="timeline"><!></button>`),ot=C(`<button class="btn quiet svelte-18ltlst" type="button">details</button>`),st=C(`<button class="btn quiet svelte-18ltlst" type="button" data-tour="send">send to agent</button>`),ct=C(`<div class="head svelte-18ltlst"><!> <div class="side svelte-18ltlst"><div class="tools svelte-18ltlst"><!> <!> <button class="btn quiet svelte-18ltlst" type="button">source</button> <!></div></div></div>`),lt=C(`<div class="tl-col svelte-18ltlst"><!></div>`),ut=C(`<span class="bad svelte-18ltlst" role="alert"> </span>`),dt=C(`<div class="atbar svelte-18ltlst" role="status"><span class="label"> </span> <span class="grow"></span> <!> <button class="icon svelte-18ltlst" type="button" aria-label="restore to here" title="restore to here"><svg viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path d="M3.2 9.5A5 5 0 1 0 4.6 4.3" stroke="currentColor" stroke-width="1.3" fill="none"></path><path d="M3 1.8v3.4h3.4" stroke="currentColor" stroke-width="1.3" fill="none"></path></svg></button> <button class="icon svelte-18ltlst" type="button" aria-label="back to now" title="back to now"><svg viewBox="0 0 16 16" width="16" height="16" aria-hidden="true"><path d="M2 8h9M8 4.8 11.2 8 8 11.2" stroke="currentColor" stroke-width="1.3" fill="none"></path><path d="M13.5 3v10" stroke="currentColor" stroke-width="1.3"></path></svg></button></div> <!>`,1),ft=C(`<button class="toiso svelte-18ltlst" type="button"><i class="dia svelte-18ltlst" aria-hidden="true">◆</i>send to Iso</button>`),pt=C(`<button class="btn" type="button">mark as answer</button>`),mt=C(`<span class="label">Iso is marking</span>`),ht=C(`<span class="label">select a part of your working, then mark it as your answer</span>`),gt=C(`<span class="label moves svelte-18ltlst">moves: <!></span>`),_t=C(`<span class="label"> </span>`),vt=C(`<div class="foot svelte-18ltlst"><!> <button class="btn primary tall svelte-18ltlst" type="button"> </button> <!> <span class="grow"></span> <!></div>`),yt=C(`<div class="changes svelte-18ltlst" role="status"><i class="dia svelte-18ltlst" aria-hidden="true"></i> <span class="soft"> </span> <span class="grow"></span> <button class="link svelte-18ltlst" type="button">keep all</button> <button class="link svelte-18ltlst" type="button">remove all</button></div>`),bt=C(`<!> <!> <!> <!> <!> <!> <!> <!> <div class="live"><!></div> <!> <!>`,1),xt=C(`<article><!></article>`);function St(t,u){k(u,!0);let f=new he(u.id),y=new _e(f),b=V(u.id)?new Oe(f,y):null,C=M(()=>b?.is?b:null),T=e(!1),z={written:`written response`},H=e=>R.listing.notes.find(t=>t.id===e)?.title??e.split(`/`).at(-1),W=e=>{try{return localStorage.getItem(e)===`1`}catch{return!1}},se=(e,t)=>{try{localStorage.setItem(e,t?`1`:`0`)}catch{}},G=e(_(W(`isorite.details`))),K=e(!1),J=M(()=>l(K)||f.meta===null),Y=e(_(W(`isorite.timeline`))),ge=e(null),X=e(null),ye=e(!1),be=e(``),Z=M(()=>oe(y.entries)),xe=e=>e.who.startsWith(`iso:`)||e.who.startsWith(`agent:`),Se=e=>e.flatMap(e=>Array.from({length:e.to-e.from},(t,n)=>e.from+n)),Ce=M(()=>{if(!l(Y)||l(X)||l(J))return null;let e=l(ge)??(l(ke)?void 0:l(Z).findLast(e=>xe(e)&&(e.what===`kept`||e.what===`edited`)));if(!e)return null;let t=Se(ae(y.entries,e.ids).runs);return t.length?{who:xe(e)?`iso`:`you`,lines:t}:null}),Q=M(()=>{if(!l(X))return null;let e=ue(l(X)),t=le(y.entries,e);if(t===null)return null;let n=y.entries.filter(t=>t.id<=e),r=y.entries.find(e=>e.id===l(X).ids[0]),i=(l(X).what===`offered`||l(X).what===`discarded`)&&r?.kind===`proposal`?r.form===`insert`?r.text:r.regions.map(e=>e.new).join(`
3
3
 
4
4
  `):void 0;return{text:t,touched:{who:xe(l(X))?`iso`:`you`,lines:Se(ae(n,l(X).ids).runs)},asked:l(X).asked,offered:i}}),Te=()=>me.url.searchParams.get(`at`)??new URLSearchParams(location.hash.split(`?`)[1]??``).get(`at`),Ee=e(_(Te()));m(()=>{let e=Te();e&&p(Ee,e,!0)}),m(()=>{if(!l(Ee))return;let e=l(Z).find(e=>e.ids.includes(l(Ee)));e&&(p(Ee,null),p(Y,!0),p(X,e))});let ke=M(()=>q.lens.note===`iso`);m(()=>{p(Y,l(ke)||W(`isorite.timeline`),!0)});let Ae=M(()=>{if(!l(ke)||f.loaded!==`ready`)return[];let e=[],t=ce(y.entries),n=f.text.split(`
@@ -0,0 +1 @@
1
+ import"../chunks/C8UdwlAg.js";import"../chunks/xihTtKlq.js";import{t as e}from"../chunks/CcRs965g.js";import"../chunks/Dm229u8R.js";function t(t){e(t,{})}export{t as component};
@@ -1 +1 @@
1
- import{$ as e,D as t,F as n,H as r,J as i,L as a,P as o,Q as s,X as c,Y as l,at as u,ft as d,h as f,j as p,k as m,lt as h,n as g,ot as _,q as v,tt as y,u as b,ut as x,w as S,x as C}from"../chunks/C8UdwlAg.js";import{o as w,t as T}from"../chunks/DAVQx5al.js";import"../chunks/xihTtKlq.js";import{n as E,t as D}from"../chunks/DTwIGCa8.js";import{t as O}from"../chunks/BRnMDye8.js";var k=p(`<p class="soft empty svelte-1pepxcq">Exercises are kept in a study base, and none is open. <span class="faint">isorite study init</span> makes one.</p>`),A=p(`<a class="sr svelte-1pepxcq"><span class="faint kind svelte-1pepxcq"> </span> <span class="grow t svelte-1pepxcq"> </span> <span class="label tests svelte-1pepxcq"> </span> <i></i></a>`),j=p(`<p class="soft none svelte-1pepxcq"> </p>`),M=p(`<a class="label all svelte-1pepxcq">every exercise</a>`),N=p(`<a class="sr svelte-1pepxcq"><i class="dia open svelte-1pepxcq" aria-hidden="true"></i><span class="grow t svelte-1pepxcq"> </span></a>`),P=p(`<span class="label sub svelte-1pepxcq">asked of Iso · not kept yet</span> <!>`,1),F=p(`<p class="bad svelte-1pepxcq" role="alert"> </p>`),I=p(`<div class="fr svelte-1pepxcq"><span class="grow"> </span><button class="link svelte-1pepxcq" type="button">[ + an exercise ]</button></div>`),L=p(`<div class="fr svelte-1pepxcq"><span class="grow soft"> </span><button class="link svelte-1pepxcq" type="button">[ + an exercise ]</button></div>`),R=p(`<section class="frame list svelte-1pepxcq"><span class="frame-title"> </span> <!> <!> <!> <span class="label foot svelte-1pepxcq">ordered from your record: due first, then never tried, then the fewest squares</span></section> <!> <section class="folders svelte-1pepxcq"><h2 class="label svelte-1pepxcq">ask Iso for an exercise</h2> <!> <!></section>`,1),z=p(`<div class="study svelte-1pepxcq"><!></div>`);function B(o,p){_(p,!0);let B=e(null),V=e([]),H=e(``),U=y(()=>O.url.searchParams.get(`note`)??new URLSearchParams(O.url.hash.split(`?`)[1]??``).get(`note`)??``),W=e=>D.listing.notes.find(t=>t.id===e)?.title??e.split(`/`).at(-1),G=y(()=>(a(B)?.exercises??[]).filter(e=>!a(U)||e.tests.includes(a(U)))),K={written:`written`};async function q(){try{await(async e=>{var t=d(e,2);s(B,t[0]),s(V,t[1])})(await Promise.all([D.api.study(),D.api.drafts().then(e=>e.filter(e=>e.exercise))]))}catch(e){s(H,e.message,!0)}}g(()=>(q(),D.on(e=>{(e.type===`record`||e.type===`note-changed`&&(e.id.startsWith(`@study/`)||e.id.startsWith(`@draft/`)))&&q()})));async function J(e,t=[]){s(H,``);try{let n=await D.api.createExerciseDraft(e,t);await T(w(`/draft/[id]`,{id:n.id.slice(7)}))}catch(e){s(H,e.message,!0)}}var Y=z(),X=v(Y),Z=e=>{var t=k();m(e,t)},Q=e=>{var o=R(),s=i(o),u=v(s),d=l(u,!0),p=c(u,2);C(p,17,()=>a(G),e=>e.id,(e,n)=>{var i=A(),o=v(i),s=l(o,!0),u=c(o,2),d=l(u,!0),p=c(u,2),h=l(p),g=c(p,2);let _;x(i),r((e,r)=>{b(i,`href`,e),t(s,K[a(n).kind]??a(n).kind),t(d,a(n).title),t(h,`tests ${r??``}`),_=f(g,1,`pip`,null,_,{ok:a(n).result===`right`,part:a(n).result===`partly`,no:a(n).result===`wrong`}),b(g,`title`,a(n).result?`last: ${a(n).result}`:`not tried`)},[()=>E(a(n).id),()=>a(n).tests.map(W).join(`, `)]),m(e,i)},e=>{var n=j(),i=l(n,!0);r(()=>t(i,a(B)?a(U)?`Nothing tests this note yet.`:`No exercises yet. Ask Iso for one in a folder below.`:`reading…`)),m(e,n)});var g=c(p,2),_=e=>{var t=M();r(e=>b(t,`href`,e),[()=>w(`/study`)]),m(e,t)};S(g,e=>{a(U)&&e(_)});var y=c(g,2),T=e=>{var n=P(),o=c(i(n),2);C(o,17,()=>a(V),e=>e.id,(e,n)=>{var i=N(),o=c(v(i)),s=l(o,!0);x(i),r(e=>{b(i,`href`,e),t(s,a(n).title)},[()=>w(`/draft/[id]`,{id:a(n).id.slice(7)})]),m(e,i)}),m(e,n)};S(y,e=>{a(V).length&&e(T)}),h(2),x(s);var O=c(s,2),k=e=>{var n=F(),i=l(n,!0);r(()=>t(i,a(H))),m(e,n)};S(O,e=>{a(H)&&e(k)});var z=c(O,2),q=c(v(z),2),Y=e=>{var i=I(),o=v(i),s=l(o),u=c(o);x(i),r(e=>t(s,`on ${e??``}`),[()=>W(a(U))]),n(`click`,u,()=>J(D.listing.notes.find(e=>e.id===a(U))?.dir??``,[a(U)])),m(e,i)};S(q,e=>{a(U)&&e(Y)});var X=c(q,2);C(X,16,()=>a(B)?.folders??[],e=>e,(e,i)=>{var a=L(),o=v(a),s=l(o,!0),u=c(o);x(a),r(()=>{t(s,i||`the top of the base`),b(u,`aria-label`,`An exercise in ${i||`the top of the base`}`)}),n(`click`,u,()=>J(i)),m(e,a)}),x(z),r(e=>t(d,e),[()=>a(U)?`study · what tests ${W(a(U))}`:`study · next for you`]),m(e,o)};S(X,e=>{D.session?.study?e(Q,-1):e(Z)}),x(Y),m(o,Y),u()}o([`click`]);export{B as component};
1
+ import{$ as e,D as t,F as n,H as r,J as i,L as a,P as o,Q as s,X as c,Y as l,at as u,ft as d,h as f,j as p,k as m,lt as h,n as g,ot as _,q as v,tt as y,u as b,ut as x,w as S,x as C}from"../chunks/C8UdwlAg.js";import{o as w,t as T}from"../chunks/Cw2GjAJR.js";import"../chunks/xihTtKlq.js";import{n as E,t as D}from"../chunks/DjBHskLm.js";import{t as O}from"../chunks/BEVz4Dgg.js";var k=p(`<p class="soft empty svelte-1pepxcq">Exercises are kept in a study base, and none is open. <span class="faint">isorite study init</span> makes one.</p>`),A=p(`<a class="sr svelte-1pepxcq"><span class="faint kind svelte-1pepxcq"> </span> <span class="grow t svelte-1pepxcq"> </span> <span class="label tests svelte-1pepxcq"> </span> <i></i></a>`),j=p(`<p class="soft none svelte-1pepxcq"> </p>`),M=p(`<a class="label all svelte-1pepxcq">every exercise</a>`),N=p(`<a class="sr svelte-1pepxcq"><i class="dia open svelte-1pepxcq" aria-hidden="true"></i><span class="grow t svelte-1pepxcq"> </span></a>`),P=p(`<span class="label sub svelte-1pepxcq">asked of Iso · not kept yet</span> <!>`,1),F=p(`<p class="bad svelte-1pepxcq" role="alert"> </p>`),I=p(`<div class="fr svelte-1pepxcq"><span class="grow"> </span><button class="link svelte-1pepxcq" type="button">[ + an exercise ]</button></div>`),L=p(`<div class="fr svelte-1pepxcq"><span class="grow soft"> </span><button class="link svelte-1pepxcq" type="button">[ + an exercise ]</button></div>`),R=p(`<section class="frame list svelte-1pepxcq"><span class="frame-title"> </span> <!> <!> <!> <span class="label foot svelte-1pepxcq">ordered from your record: due first, then never tried, then the fewest squares</span></section> <!> <section class="folders svelte-1pepxcq"><h2 class="label svelte-1pepxcq">ask Iso for an exercise</h2> <!> <!></section>`,1),z=p(`<div class="study svelte-1pepxcq"><!></div>`);function B(o,p){_(p,!0);let B=e(null),V=e([]),H=e(``),U=y(()=>O.url.searchParams.get(`note`)??new URLSearchParams(O.url.hash.split(`?`)[1]??``).get(`note`)??``),W=e=>D.listing.notes.find(t=>t.id===e)?.title??e.split(`/`).at(-1),G=y(()=>(a(B)?.exercises??[]).filter(e=>!a(U)||e.tests.includes(a(U)))),K={written:`written`};async function q(){try{await(async e=>{var t=d(e,2);s(B,t[0]),s(V,t[1])})(await Promise.all([D.api.study(),D.api.drafts().then(e=>e.filter(e=>e.exercise))]))}catch(e){s(H,e.message,!0)}}g(()=>(q(),D.on(e=>{(e.type===`record`||e.type===`note-changed`&&(e.id.startsWith(`@study/`)||e.id.startsWith(`@draft/`)))&&q()})));async function J(e,t=[]){s(H,``);try{let n=await D.api.createExerciseDraft(e,t);await T(w(`/draft/[id]`,{id:n.id.slice(7)}))}catch(e){s(H,e.message,!0)}}var Y=z(),X=v(Y),Z=e=>{var t=k();m(e,t)},Q=e=>{var o=R(),s=i(o),u=v(s),d=l(u,!0),p=c(u,2);C(p,17,()=>a(G),e=>e.id,(e,n)=>{var i=A(),o=v(i),s=l(o,!0),u=c(o,2),d=l(u,!0),p=c(u,2),h=l(p),g=c(p,2);let _;x(i),r((e,r)=>{b(i,`href`,e),t(s,K[a(n).kind]??a(n).kind),t(d,a(n).title),t(h,`tests ${r??``}`),_=f(g,1,`pip`,null,_,{ok:a(n).result===`right`,part:a(n).result===`partly`,no:a(n).result===`wrong`}),b(g,`title`,a(n).result?`last: ${a(n).result}`:`not tried`)},[()=>E(a(n).id),()=>a(n).tests.map(W).join(`, `)]),m(e,i)},e=>{var n=j(),i=l(n,!0);r(()=>t(i,a(B)?a(U)?`Nothing tests this note yet.`:`No exercises yet. Ask Iso for one in a folder below.`:`reading…`)),m(e,n)});var g=c(p,2),_=e=>{var t=M();r(e=>b(t,`href`,e),[()=>w(`/study`)]),m(e,t)};S(g,e=>{a(U)&&e(_)});var y=c(g,2),T=e=>{var n=P(),o=c(i(n),2);C(o,17,()=>a(V),e=>e.id,(e,n)=>{var i=N(),o=c(v(i)),s=l(o,!0);x(i),r(e=>{b(i,`href`,e),t(s,a(n).title)},[()=>w(`/draft/[id]`,{id:a(n).id.slice(7)})]),m(e,i)}),m(e,n)};S(y,e=>{a(V).length&&e(T)}),h(2),x(s);var O=c(s,2),k=e=>{var n=F(),i=l(n,!0);r(()=>t(i,a(H))),m(e,n)};S(O,e=>{a(H)&&e(k)});var z=c(O,2),q=c(v(z),2),Y=e=>{var i=I(),o=v(i),s=l(o),u=c(o);x(i),r(e=>t(s,`on ${e??``}`),[()=>W(a(U))]),n(`click`,u,()=>J(D.listing.notes.find(e=>e.id===a(U))?.dir??``,[a(U)])),m(e,i)};S(q,e=>{a(U)&&e(Y)});var X=c(q,2);C(X,16,()=>a(B)?.folders??[],e=>e,(e,i)=>{var a=L(),o=v(a),s=l(o,!0),u=c(o);x(a),r(()=>{t(s,i||`the top of the base`),b(u,`aria-label`,`An exercise in ${i||`the top of the base`}`)}),n(`click`,u,()=>J(i)),m(e,a)}),x(z),r(e=>t(d,e),[()=>a(U)?`study · what tests ${W(a(U))}`:`study · next for you`]),m(e,o)};S(X,e=>{D.session?.study?e(Q,-1):e(Z)}),x(Y),m(o,Y),u()}o([`click`]);export{B as component};
@@ -1 +1 @@
1
- {"version":"1792716808962"}
1
+ {"version":"1792725761097"}
package/web/index.html CHANGED
@@ -29,21 +29,21 @@
29
29
  // without its slash, which the router takes for another page, and reloads. Without it here too, they are this page.
30
30
  if (location.pathname.length > 1 && location.pathname.endsWith("/")) history.replaceState(history.state, "", location.pathname.slice(0, -1) + location.search + location.hash);
31
31
  </script>
32
- <link href="/_app/immutable/entry/start.36VrMTu2.js" rel="modulepreload">
33
- <link href="/_app/immutable/chunks/DAVQx5al.js" rel="modulepreload">
32
+ <link href="/_app/immutable/entry/start.BauJm-6k.js" rel="modulepreload">
33
+ <link href="/_app/immutable/chunks/Cw2GjAJR.js" rel="modulepreload">
34
34
  <link href="/_app/immutable/chunks/C8UdwlAg.js" rel="modulepreload">
35
- <link href="/_app/immutable/entry/app.C_YVtBm3.js" rel="modulepreload">
35
+ <link href="/_app/immutable/entry/app.B3QXxjjH.js" rel="modulepreload">
36
36
  <link href="/_app/immutable/chunks/CRzLMJPS.js" rel="modulepreload">
37
37
  <link href="/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
38
- <link href="/_app/immutable/nodes/0.CgaPlR93.js" rel="modulepreload">
39
- <link href="/_app/immutable/chunks/DTwIGCa8.js" rel="modulepreload">
40
- <link href="/_app/immutable/chunks/CEQ-cFxt.js" rel="modulepreload">
41
- <link href="/_app/immutable/chunks/D56iKolu.js" rel="modulepreload">
42
- <link href="/_app/immutable/chunks/GgEyipRh.js" rel="modulepreload">
43
- <link href="/_app/immutable/chunks/BRnMDye8.js" rel="modulepreload">
44
- <link href="/_app/immutable/chunks/DhKewaLD.js" rel="modulepreload">
45
- <link href="/_app/immutable/chunks/C38XJeNJ.js" rel="modulepreload">
46
- <link href="/_app/immutable/chunks/Ch0511Wu.js" rel="modulepreload">
38
+ <link href="/_app/immutable/nodes/0.DP4c84Wn.js" rel="modulepreload">
39
+ <link href="/_app/immutable/chunks/DjBHskLm.js" rel="modulepreload">
40
+ <link href="/_app/immutable/chunks/B_nIecMW.js" rel="modulepreload">
41
+ <link href="/_app/immutable/chunks/UM_L7-f7.js" rel="modulepreload">
42
+ <link href="/_app/immutable/chunks/k55859zq.js" rel="modulepreload">
43
+ <link href="/_app/immutable/chunks/BEVz4Dgg.js" rel="modulepreload">
44
+ <link href="/_app/immutable/chunks/BEk5idXo.js" rel="modulepreload">
45
+ <link href="/_app/immutable/chunks/CcRs965g.js" rel="modulepreload">
46
+ <link href="/_app/immutable/chunks/b-AOhhy1.js" rel="modulepreload">
47
47
  <link href="/_app/immutable/chunks/B0NIb88Q.js" rel="modulepreload">
48
48
 
49
49
  <link href="/_app/immutable/assets/Timeline.KTc3LKuK.css" rel="stylesheet">
@@ -56,15 +56,15 @@
56
56
  <div style="display: contents">
57
57
  <script>
58
58
  {
59
- __sveltekit_fzbm1h = {
59
+ __sveltekit_1tkk252 = {
60
60
  base: new URL('.', location).pathname.slice(0, -1)
61
61
  };
62
62
 
63
63
  const element = document.currentScript.parentElement;
64
64
 
65
65
  Promise.all([
66
- import("/_app/immutable/entry/start.36VrMTu2.js"),
67
- import("/_app/immutable/entry/app.C_YVtBm3.js")
66
+ import("/_app/immutable/entry/start.BauJm-6k.js"),
67
+ import("/_app/immutable/entry/app.B3QXxjjH.js")
68
68
  ]).then(([kit, app]) => {
69
69
  kit.start(app, element);
70
70
  });
@@ -1 +0,0 @@
1
- import{$ as e,L as t,Q as n,R as r,a as i,n as a,t as o,z as s}from"./C8UdwlAg.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function ee(e,t,n,r=!1){let i=new URL(e);Object.defineProperty(i,"searchParams",{value:new Proxy(i.searchParams,{get(e,r){if(r===`get`||r===`getAll`||r===`has`)return(t,...i)=>(n(t),e[r](t,...i));t();let i=Reflect.get(e,r);return typeof i==`function`?i.bind(e):i}}),enumerable:!0,configurable:!0});let a=[`href`,`pathname`,`search`,`toString`,`toJSON`];r&&a.push(`hash`);for(let n of a)Object.defineProperty(i,n,{get(){return t(),e[n]},enumerable:!0,configurable:!0});return i}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var te=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),te(e,t));var v=new Map;function y(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function ne(e,t,n){if(v.size>0){let t=b(e,n),r=v.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);v.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var re=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ie=/^\/\((?:[^)]+)\)$/;function ae(e){let t=[];return{pattern:e===`/`||ie.test(e)?/^\/$/:RegExp(`^${se(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return le(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return le(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=re.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return le(e)}).join(``)}).join(``)}/?$`),params:t}}function oe(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function se(e){return e.slice(1).split(`/`).filter(oe)}function ce(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0)}else if(s.optional&&s.chained)o++;else return}if(!o)return r}function le(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}var ue=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function de(e,t){let n=se(e),r=e!=`/`&&e.endsWith(`/`);return`/`+n.map(n=>n.replace(ue,(n,r,i,a)=>{let o=t[a];if(!o){if(r||i&&o!==void 0)return``;throw Error(`Missing parameter '${a}' in route ${e}`)}if(o.startsWith(`/`)||o.endsWith(`/`))throw Error(`Parameter '${a}' in route ${e} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return o})).filter(Boolean).join(`/`)+(r?`/`:``)}function fe({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ae(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return ce(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function pe(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function me(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_fzbm1h?.base??``,he=globalThis.__sveltekit_fzbm1h?.assets??x??``,ge=`#`;function _e(...e){if(!e[0].startsWith(`/`))throw Error(`Cannot use \`resolve(...)\` with a non-absolute pathname or route ID (got "${e[0]}"). \`resolve\` is only for internal pathnames and route IDs; external URLs should be used directly.`);return x+ge+de(e[0],e[1])}var ve=`1792716808962`,ye=`sveltekit:snapshot`,be=`sveltekit:scroll`,xe=`sveltekit:states`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Se=location.origin;function Ce(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function T(){return{x:pageXOffset,y:pageYOffset}}function E(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var we={...w,"":w.hover};function Te(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ee(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=Te(e)}}function De(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||D(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===Se&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function Oe(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=E(s,`preload-code`)),i===null&&(i=E(s,`preload-data`)),t===null&&(t=E(s,`keepfocus`)),n===null&&(n=E(s,`noscroll`)),a===null&&(a=E(s,`reload`)),o===null&&(o=E(s,`replacestate`)),s=Te(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:we[r??`off`],preload_data:we[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function ke(e){let t=i(e),n=!0;function r(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:a,subscribe:o}}var Ae={v:h};function je(){let{set:e,subscribe:t}=i(!1),n;async function r(){clearTimeout(n);try{let t=await fetch(`${he}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==ve;return r&&(e(!0),Ae.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:r}}function D(e,t,n){return e.origin!==Se||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Me(e){}var Ne=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Ne],[...new Set([...Ne])];function Pe(e){return e.filter(e=>e!=null)}function O(e,t){return e+`/`+t}function Fe(e){return e instanceof c||e instanceof u?e.status:500}function Ie(e){return e instanceof u?e.text:`Internal Error`}var k,A,Le,Re=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),ze=`a:`;Re?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(ze)},A={current:null},Le={current:!1}):(k=new class{#e=e({});get data(){return t(this.#e)}set data(e){n(this.#e,e)}#t=e(null);get form(){return t(this.#t)}set form(e){n(this.#t,e)}#n=e(null);get error(){return t(this.#n)}set error(e){n(this.#n,e)}#r=e({});get params(){return t(this.#r)}set params(e){n(this.#r,e)}#i=e({id:null});get route(){return t(this.#i)}set route(e){n(this.#i,e)}#a=e({});get state(){return t(this.#a)}set state(e){n(this.#a,e)}#o=e(-1);get status(){return t(this.#o)}set status(e){n(this.#o,e)}#s=e(new URL(ze));get url(){return t(this.#s)}set url(e){n(this.#s,e)}},A=new class{#e=e(null);get current(){return t(this.#e)}set current(e){n(this.#e,e)}},Le=new class{#e=e(!1);get current(){return t(this.#e)}set current(e){n(this.#e,e)}},Ae.v=()=>Le.current=!0);function Be(e){Object.assign(k,e)}var Ve={spanContext(){return He},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this},addLink(){return this},addLinks(){return this}},He={traceId:``,spanId:``,traceFlags:0},{onMount:Ue,tick:We}=o,Ge=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),j=null,M=pe(`sveltekit:scroll`)??{},N=pe(`sveltekit:snapshot`)??{},P={url:ke({}),page:ke({}),navigating:i(null),updated:je()};function Ke(e){M[e]=T()}function qe(e,t){let n=e+1;for(;M[n];)delete M[n],n+=1;for(n=t+1;N[n];)delete N[n],n+=1}function F(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function Je(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}var Ye,Xe,I,L,Ze,R,Qe={},$e={},z=[],B=[],V=null;function H(){V?.fork?.then(e=>e?.discard()),V=null,Q={element:void 0,href:void 0}}var et=new Map,tt=new Set,nt=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},rt=!1,it=!1,at=!0,G=!1,K=!1,ot=!1,st=!1,ct,q,J,Y,lt=new Set,ut=new Map,dt=new Map;async function ft(e,t,n){if(globalThis.__sveltekit_fzbm1h.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_fzbm1h.data;for(let t in e)Qe[t]=e[t];for(let e in n)Qe[e]=n[e];for(let e in r)Qe[e]=r[e];for(let e in t)$e[e]=t[e]}document.URL!==location.href&&(location.href=location.href),R=e,await e.hooks.init?.(),Ye=fe(e),L=document.documentElement,Ze=t,Xe=e.nodes[0],I=e.nodes[1],Xe(),I(),q=history.state?.[S],J=history.state?.[C],q||(q=J=Date.now(),history.replaceState({...history.state,[S]:q,[C]:J},``));let r=M[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Bt(Ze,n)):(await Z({type:`enter`,url:Ce(R.hash?Kt(new URL(location.href)):location.href),replace_state:!0}),i()),zt()}function pt(){z.length=0,st=!1}function mt(e){B.some(e=>e?.snapshot)&&(N[e]=B.map(e=>e?.snapshot?.capture()))}function ht(e){N[e]?.forEach((e,t)=>{B[t]?.snapshot?.restore(e)})}function gt(){Ke(q),me(be,M),mt(J),me(ye,N)}async function _t(e,t,n,r){let i,a;t.invalidateAll&&H(),await Z({type:`goto`,url:Ce(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{if(t.invalidateAll){st=!0,i=new Set;for(let[e,t]of ut)for(let[n,r]of t)r.resource?.reset(),i.add(O(e,n));a=new Set;for(let[e,t]of dt)for(let n of t.keys())a.add(O(e,n))}t.invalidate&&t.invalidate.forEach(Rt)}}),t.invalidateAll&&s().then(s).then(()=>{for(let[e,t]of ut)for(let[n,{resource:r}]of t)i?.has(O(e,n))&&r.start();for(let[e,t]of dt)for(let[n,{resource:r}]of t)a?.has(O(e,n))&&r.reconnect()})}async function vt(e){if(e.id!==V?.id){H();let t={};lt.add(t),V={id:e.id,token:t,promise:Ot({...e,preload:t}).then(e=>(lt.delete(t),e.type===`loaded`&&e.state.error&&H(),e)),fork:null}}return V.promise}async function yt(e){let t=(await X(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function bt(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},Be(e.props.page),ct=new R.root({target:t,props:{...e.props,stores:P,components:B},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:M[q]??T()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}ht(J),it=!0}async function xt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Pe(n).map(e=>e.node.component),page:Gt(k)}};s!==void 0&&(l.props.form=s);let u={},f=!k,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==k.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:k.data}),l}async function St({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o=null,s=!0,c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();if(l.universal?.load){function e(...e){for(let t of e){let{href:e}=new URL(t,n);c.dependencies.add(e)}}let u={tracing:{enabled:!1,root:Ve,current:Ve},route:new Proxy(i,{get:(e,t)=>(s&&(c.route=!0),e[t])}),params:new Proxy(r,{get:(e,t)=>(s&&c.params.add(t),e[t])}),data:a?.data??null,url:ee(n,()=>{s&&(c.url=!0)},e=>{s&&c.search_params.add(e)},R.hash),async fetch(t,r){t instanceof Request&&(r={body:t.method===`GET`||t.method===`HEAD`?void 0:await t.blob(),cache:t.cache,credentials:t.credentials,headers:[...t.headers].length>0?t?.headers:void 0,integrity:t.integrity,keepalive:t.keepalive,method:t.method,mode:t.mode,redirect:t.redirect,referrer:t.referrer,referrerPolicy:t.referrerPolicy,signal:t.signal,...r});let{resolved:i,promise:a}=Ct(t,r,n);return s&&e(i.href),a},setHeaders:h,depends:e,parent(){return s&&(c.parent=!0),t()},untrack(e){s=!1;try{return e()}finally{s=!0}}};o=await l.universal.load.call(null,u)??null}return{node:l,loader:e,server:a,universal:l.universal?.load?{type:`data`,data:o,uses:c}:null,data:o??a?.data??null,slash:l.universal?.trailingSlash??a?.slash}}function Ct(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:it?ne(r,i.href,t):y(r,t)}}function wt(e,t,n,r,i,a){if(st)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(z.some(t=>t(new URL(e))))return!0;return!1}function Tt(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Et(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function Dt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Gt(k),constructors:[]}}}async function Ot({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(V?.id===e)return lt.delete(V.token),V.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=W.url?e!==Nt(W.url):!1,p=W.route?i.id!==W.route.id:!1,m=Et(W.url,n),ee=!1,g=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t];return e[1]===a?.loader&&!wt(ee,p,f,m,a.universal?.uses,r)?a:(ee=!0,St({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:Tt(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&lt.has(a))return Dt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Fe(t),u;if(t instanceof c)u=t.body;else{if(await P.updated.check())return await Je(),await F(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await kt(e,_,o);return d?xt({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Ft(n,{id:i.id},u,s)}else _.push(void 0);return xt({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function kt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function At({status:e,error:t,url:n,route:r}){let i={};try{return xt({url:n,params:i,branch:[await St({loader:Xe,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:Tt(null)}),{node:await I(),loader:I,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await _t(new URL(t.location,location.href),{},0);return}let a=await R.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function jt(e){let t=e.href;if(et.has(t))return et.get(t);let n;try{let r=(async()=>{let t=await R.hooks.reroute({url:new URL(e),fetch:async(t,n)=>Ct(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);R.hash?n.hash=t:n.pathname=t,t=n}return t})();et.set(t,r),n=await r}catch{et.delete(t);return}return n}async function X(e,t){if(e&&!D(e,x,R.hash)){let n=await jt(e);if(!n)return;let r=Mt(n);for(let n of Ye){let i=n.exec(r);if(i)return{id:Nt(e),invalidating:t,route:n,params:p(i),url:e}}}}function Mt(e){return f(R.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function Nt(e){return(R.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Pt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Wt(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||tt.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:t,popped:n,keepfocus:i,noscroll:a,replace_state:o,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let ee=Y;Y=d;let g=await X(t,!1),_=e===`enter`?Wt(W,g,t,e):Pt({url:t,type:e,delta:n?.delta,intent:g,scroll:n?.scroll,event:m});if(!_){p(),Y===d&&(Y=ee);return}let te=q,v=J;f(),G=!0,it&&_.navigation.type!==`enter`&&P.navigating.set(A.current=_.navigation);let y=g&&await Ot(g);if(!y){if(D(t,x,R.hash))return await F(t,o);y=await Ft(t,{id:null},await $(new u(404,`Not Found`,`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,o)}if(t=g?.url||t,Y!==d){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:e,url:new URL(y.location,t),popped:n,keepfocus:i,noscroll:a,replace_state:o,state:c,redirect_count:l+1,nav_token:d}),_.fulfil(void 0);return}if(y=await At({status:500,error:await $(Error(`Redirect loop`),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await P.updated.check())return await Je(),await F(t,o);if(pt(),Ke(te),mt(v),y.props.page.url.pathname!==t.pathname&&(t.pathname=y.props.page.url.pathname),c=n?n.state:c,!n){let e=+!o,n={[S]:q+=e,[C]:J+=e,[xe]:c};(o?history.replaceState:history.pushState).call(history,n,``,t),o||qe(q,J)}let ne=g&&V?.id===g.id?V.fork:null;V?.fork&&!ne?H():(V=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let b;if(it){let e=(await Promise.all(Array.from(nt,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{U.delete(e)})}e.push(t),e.forEach(e=>{U.add(e)})}let n=_.navigation.to;W={...y.state,nav:{params:n.params,route:n.route,url:n.url}},y.props.page&&(y.props.page.url=t),!i&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let a=ne&&await ne;a?b=a.commit():(j=null,ct.$set(y.props),j&&Object.assign(y.props.page,j),Be(y.props.page),b=r?.()),ot=!0}else await bt(y,Ze,!1);let{activeElement:re}=document;if(await b,await s(),await s(),Y!==d){_.reject(Error(`navigation aborted`));return}y.props.page&&j&&Object.assign(y.props.page,j);let ie=null;if(at){let e=n?n.scroll:a?T():null;e?scrollTo(e.x,e.y):(ie=t.hash&&document.getElementById(qt(t)))?ie.scrollIntoView():scrollTo(0,0)}let ae=document.activeElement!==re&&document.activeElement!==document.body;!i&&!ae&&Ut(t,!ie),at=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=T()),U.forEach(e=>e(_.navigation)),e===`popstate`&&ht(J),P.navigating.set(A.current=null)}async function Ft(e,t,n,r,i){return e.origin===Se&&e.pathname===location.pathname&&!rt?await At({status:r,error:n,url:e,route:t}):await F(e,i)}var Q={element:void 0,href:void 0};function It(){let e,t;L.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,w.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],w.tap)}L.addEventListener(`mousedown`,n),L.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(yt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ee(e,L),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=De(r,x,R.hash);if(o||s)return;let c=Oe(r),l=a&&Nt(W.url)===Nt(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=w.tap;let e=await X(a,!1);if(!e)return;vt(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,yt(a))}}function a(){r.disconnect();for(let e of L.querySelectorAll(`a`)){let{url:t,external:n,download:i}=De(e,x,R.hash);if(n||i)continue;let a=Oe(e);a.reload||(a.preload_code===w.viewport&&r.observe(e),a.preload_code===w.eager&&yt(t))}}U.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Fe(e),r=Ie(e);return R.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Lt(e,t={}){return e=new URL(Ce(e)),e.origin===Se?_t(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Rt(e){if(typeof e==`function`)z.push(e);else{let{href:t}=new URL(e,location.href);z.push(e=>e.href===t)}}function zt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(gt(),!G){let e=Wt(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};tt.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&gt()}),navigator.connection?.saveData||It(),L.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ee(t.composedPath()[0],L);if(!n)return;let{url:r,external:i,target:a,download:o}=De(n,x,R.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=Oe(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(R.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l))Pt({url:r,type:`link`,event:t})?G=!0:t.preventDefault();else{if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,Ke(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}}),L.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(D(r,x,!1))return;let i=e.target,a=Oe(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Ht){if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(Y={},n===q)return;let r=M[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=W.url?m(location)===m(W.url):!1;if(o===J&&(ot||s)){i!==k.state&&(k.state=i),e(a),M[q]=T(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),R.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[S]:++q,[C]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Ge.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&P.navigating.set(A.current=null)});function e(e){W.url=k.url=e,P.page.set(Gt(k)),P.page.notify()}}async function Bt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){rt=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await X(u,!1)||{}),d=Ye.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Vt(r.uses)),St({loader:R.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:Tt(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await xt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await F(new URL(t.location,location.href));f=await At({status:Fe(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await bt(f,e,p))}function Vt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Ht=!1;function Ut(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=qt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=T();setTimeout(()=>{let a=history.state;Ht=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Ht=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Wt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:T()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Gt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Kt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function qt(e){let t;if(R.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Me as a,k as i,ft as n,_e as o,A as r,Lt as t};
@@ -1 +0,0 @@
1
- export{a as load_css,n as start}from"../chunks/DAVQx5al.js";
@@ -1 +0,0 @@
1
- import{at as e,n as t,o as n,ot as r}from"../chunks/C8UdwlAg.js";import{o as i,t as a}from"../chunks/DAVQx5al.js";import"../chunks/xihTtKlq.js";import{n as o,t as s}from"../chunks/DTwIGCa8.js";import{i as c}from"../chunks/D56iKolu.js";import"../chunks/Dm229u8R.js";function l(l,u){r(u,!1),t(()=>{let e=s.listing.notes.some(e=>e.id===c.last)?c.last:``;a(e?o(e):i(`/notes`),{replaceState:!0})}),n(),e()}export{l as component};
@@ -1 +0,0 @@
1
- import{at as e,n as t,o as n,ot as r}from"../chunks/C8UdwlAg.js";import{o as i,t as a}from"../chunks/DAVQx5al.js";import"../chunks/xihTtKlq.js";import{n as o,t as s}from"../chunks/DTwIGCa8.js";import{t as c}from"../chunks/BRnMDye8.js";import{i as l}from"../chunks/D56iKolu.js";import"../chunks/Dm229u8R.js";function u(u,d){r(d,!1),t(()=>{let e=s.listing.notes.some(e=>e.id===l.last)?l.last:``;a((e?o(e):i(`/notes`))+c.url.search,{replaceState:!0}).then(()=>l.to(`atlas`))}),n(),e()}export{u as component};
@@ -1 +0,0 @@
1
- import"../chunks/C8UdwlAg.js";import"../chunks/xihTtKlq.js";import{t as e}from"../chunks/C38XJeNJ.js";import"../chunks/Dm229u8R.js";function t(t){e(t,{})}export{t as component};