isorite 0.6.0 → 0.8.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 (227) hide show
  1. package/README.md +4 -2
  2. package/dist/main.js +615 -96
  3. package/docs/setup-for-agents.md +3 -0
  4. package/docs/setup.md +20 -0
  5. package/docs/terminal.md +15 -0
  6. package/package.json +1 -1
  7. package/plugin/server.ts +4 -2
  8. package/web/_app/immutable/assets/0.CTbO0owi.css +1 -0
  9. package/web/_app/immutable/assets/NoteEditor.8wWtZK_A.css +1 -0
  10. package/web/_app/immutable/chunks/0M1khDs2.js +2 -0
  11. package/web/_app/immutable/chunks/2b4Gb5sE.js +1 -0
  12. package/web/_app/immutable/chunks/84nbDH0I.js +1 -0
  13. package/web/_app/immutable/chunks/8H7HVH4w.js +1 -0
  14. package/web/_app/immutable/chunks/8wVGBFSs.js +45 -0
  15. package/web/_app/immutable/chunks/AF4Hwhju.js +1 -0
  16. package/web/_app/immutable/chunks/B-65IYX-.js +6 -0
  17. package/web/_app/immutable/chunks/B45xgp2S.js +1 -0
  18. package/web/_app/immutable/chunks/B78wSQJQ.js +1 -0
  19. package/web/_app/immutable/chunks/B85D_PlV.js +5 -0
  20. package/web/_app/immutable/chunks/B91efLFT.js +673 -0
  21. package/web/_app/immutable/chunks/B9NhS7L_.js +1 -0
  22. package/web/_app/immutable/chunks/B9YLdnR_.js +1 -0
  23. package/web/_app/immutable/chunks/BEHa2uNW.js +1 -0
  24. package/web/_app/immutable/chunks/BEMVcqjs.js +1 -0
  25. package/web/_app/immutable/chunks/BEjRio4Q.js +1 -0
  26. package/web/_app/immutable/chunks/BEn0Cwpx.js +1 -0
  27. package/web/_app/immutable/chunks/BGbXxNFa.js +2 -0
  28. package/web/_app/immutable/chunks/BGfruO1u.js +1 -0
  29. package/web/_app/immutable/chunks/BHEdbvp9.js +1 -0
  30. package/web/_app/immutable/chunks/BKJx4mf9.js +1 -0
  31. package/web/_app/immutable/chunks/BL3mLym4.js +5 -0
  32. package/web/_app/immutable/chunks/BLp5-jwC.js +1 -0
  33. package/web/_app/immutable/chunks/BN6xhG8e.js +1 -0
  34. package/web/_app/immutable/chunks/BOVgKnng.js +1 -0
  35. package/web/_app/immutable/chunks/BPTmHmyx.js +1 -0
  36. package/web/_app/immutable/chunks/BPW39P52.js +1 -0
  37. package/web/_app/immutable/chunks/BRKS-CCX.js +5 -0
  38. package/web/_app/immutable/chunks/BRsoo5mP.js +1 -0
  39. package/web/_app/immutable/chunks/BSzj6Xyz.js +1 -0
  40. package/web/_app/immutable/chunks/BUZw3wgd.js +1 -0
  41. package/web/_app/immutable/chunks/BV0c4Hdn.js +1 -0
  42. package/web/_app/immutable/chunks/BVIeWmwY.js +1 -0
  43. package/web/_app/immutable/chunks/BWonG38x.js +1 -0
  44. package/web/_app/immutable/chunks/BXxG0Yva.js +1 -0
  45. package/web/_app/immutable/chunks/BZmnMkFw.js +1 -0
  46. package/web/_app/immutable/chunks/BZyAS7I4.js +1 -0
  47. package/web/_app/immutable/chunks/B_1Jd8HM.js +1 -0
  48. package/web/_app/immutable/chunks/Bbt0DTmZ.js +1 -0
  49. package/web/_app/immutable/chunks/Bffqt7tx.js +9 -0
  50. package/web/_app/immutable/chunks/BflJGmDX.js +1 -0
  51. package/web/_app/immutable/chunks/BgczuZKA.js +4 -0
  52. package/web/_app/immutable/chunks/BguXRgvc.js +2 -0
  53. package/web/_app/immutable/chunks/BjPiibIz.js +1 -0
  54. package/web/_app/immutable/chunks/BkSkiI9m.js +1 -0
  55. package/web/_app/immutable/chunks/Bq5hCPe1.js +2 -0
  56. package/web/_app/immutable/chunks/BrGmYbJT.js +2 -0
  57. package/web/_app/immutable/chunks/BrXPCJaM.js +1 -0
  58. package/web/_app/immutable/chunks/BrqJKzQU.js +2 -0
  59. package/web/_app/immutable/chunks/Brxvm_b1.js +4 -0
  60. package/web/_app/immutable/chunks/BsLNwr5A.js +2 -0
  61. package/web/_app/immutable/chunks/Bsdphhtm.js +1 -0
  62. package/web/_app/immutable/chunks/Bt6PBEDR.js +1 -0
  63. package/web/_app/immutable/chunks/BtUtjfIh.js +1 -0
  64. package/web/_app/immutable/chunks/BthdM_4N.js +1 -0
  65. package/web/_app/immutable/chunks/Bu8mWwtz.js +1 -0
  66. package/web/_app/immutable/chunks/BunrC_8P.js +4 -0
  67. package/web/_app/immutable/chunks/BwTct_5T.js +1 -0
  68. package/web/_app/immutable/chunks/BxTFtVqu.js +13 -0
  69. package/web/_app/immutable/chunks/BzI3yqBQ.js +3 -0
  70. package/web/_app/immutable/chunks/C-dfcq9W.js +7 -0
  71. package/web/_app/immutable/chunks/C2OyD2Y6.js +1 -0
  72. package/web/_app/immutable/chunks/C2dAgh7P.js +1 -0
  73. package/web/_app/immutable/chunks/C357ku5U.js +1 -0
  74. package/web/_app/immutable/chunks/C4jVoHG1.js +1 -0
  75. package/web/_app/immutable/chunks/C6Btt2Xs.js +1 -0
  76. package/web/_app/immutable/chunks/C9zpzAZU.js +1 -0
  77. package/web/_app/immutable/chunks/CCiHXe5d.js +1 -0
  78. package/web/_app/immutable/chunks/CDAjAYjS.js +1 -0
  79. package/web/_app/immutable/chunks/CETSRtnV.js +2 -0
  80. package/web/_app/immutable/chunks/CEufJyoj.js +1 -0
  81. package/web/_app/immutable/chunks/CGzfi9Nl.js +1 -0
  82. package/web/_app/immutable/chunks/CHbKgHy3.js +1 -0
  83. package/web/_app/immutable/chunks/CKSRTWxH.js +2 -0
  84. package/web/_app/immutable/chunks/CLVUDRRk.js +2 -0
  85. package/web/_app/immutable/chunks/CLVgA2GD.js +1 -0
  86. package/web/_app/immutable/chunks/CO2Y5y64.js +2 -0
  87. package/web/_app/immutable/chunks/CPF5uNy5.js +1 -0
  88. package/web/_app/immutable/chunks/CQadubS9.js +2 -0
  89. package/web/_app/immutable/chunks/CQfgDRfP.js +1 -0
  90. package/web/_app/immutable/chunks/CRIvE37b.js +2 -0
  91. package/web/_app/immutable/chunks/CRzLMJPS.js +1 -0
  92. package/web/_app/immutable/chunks/CTIncYxj.js +1 -0
  93. package/web/_app/immutable/chunks/CTscJvp6.js +2 -0
  94. package/web/_app/immutable/chunks/CUpZ7dEl.js +1 -0
  95. package/web/_app/immutable/chunks/CX-xckzu.js +4 -0
  96. package/web/_app/immutable/chunks/CXXgtw0p.js +1 -0
  97. package/web/_app/immutable/chunks/CZ8wTb_M.js +8 -0
  98. package/web/_app/immutable/chunks/C_eisQCp.js +1 -0
  99. package/web/_app/immutable/chunks/CdY1YAit.js +2 -0
  100. package/web/_app/immutable/chunks/Ce_hS451.js +1 -0
  101. package/web/_app/immutable/chunks/CgA1WoRv.js +1 -0
  102. package/web/_app/immutable/chunks/CggtIYAM.js +1 -0
  103. package/web/_app/immutable/chunks/ChfNwlCY.js +1 -0
  104. package/web/_app/immutable/chunks/ChtP43wD.js +1 -0
  105. package/web/_app/immutable/chunks/CiVjR8gq.js +3 -0
  106. package/web/_app/immutable/chunks/CjI9Y6RI.js +1 -0
  107. package/web/_app/immutable/chunks/ClOhbFR7.js +1 -0
  108. package/web/_app/immutable/chunks/CnP_Si9g.js +1 -0
  109. package/web/_app/immutable/chunks/CnaYoQib.js +1 -0
  110. package/web/_app/immutable/chunks/Co3PbHdE.js +1 -0
  111. package/web/_app/immutable/chunks/CoyQYage.js +1 -0
  112. package/web/_app/immutable/chunks/Cp5ooBfH.js +1 -0
  113. package/web/_app/immutable/chunks/Cp_JbuGh.js +2 -0
  114. package/web/_app/immutable/chunks/Cq5C893B.js +1 -0
  115. package/web/_app/immutable/chunks/CqHI_q-D.js +1 -0
  116. package/web/_app/immutable/chunks/CqftRsjg.js +1 -0
  117. package/web/_app/immutable/chunks/Cshzl8qu.js +1 -0
  118. package/web/_app/immutable/chunks/Cx3rYX2g.js +1 -0
  119. package/web/_app/immutable/chunks/CxDmU1I4.js +1 -0
  120. package/web/_app/immutable/chunks/CygcOYNo.js +1 -0
  121. package/web/_app/immutable/chunks/CzMBulkp.js +1 -0
  122. package/web/_app/immutable/chunks/D1ij_kNL.js +1 -0
  123. package/web/_app/immutable/chunks/D2Q8cUp1.js +1 -0
  124. package/web/_app/immutable/chunks/D4SKbj9K.js +6 -0
  125. package/web/_app/immutable/chunks/D4c0_ac3.js +1 -0
  126. package/web/_app/immutable/chunks/D4fLEcOQ.js +8 -0
  127. package/web/_app/immutable/chunks/D5EjA2JK.js +1 -0
  128. package/web/_app/immutable/chunks/D5jiJvOU.js +1 -0
  129. package/web/_app/immutable/chunks/D6QVYUu9.js +1 -0
  130. package/web/_app/immutable/chunks/D6RzAl64.js +1 -0
  131. package/web/_app/immutable/chunks/D8WpQPaX.js +1 -0
  132. package/web/_app/immutable/chunks/D9f6rSsU.js +1 -0
  133. package/web/_app/immutable/chunks/D9qYN0V5.js +1 -0
  134. package/web/_app/immutable/chunks/DCl_8MCW.js +1 -0
  135. package/web/_app/immutable/chunks/DECNRCf2.js +1 -0
  136. package/web/_app/immutable/chunks/DHLQUbN7.js +1 -0
  137. package/web/_app/immutable/chunks/DIGvaVgJ.js +2 -0
  138. package/web/_app/immutable/chunks/DKB6_1j6.js +1 -0
  139. package/web/_app/immutable/chunks/DKNOMI4Y.js +1 -0
  140. package/web/_app/immutable/chunks/DLa7NjNO.js +1 -0
  141. package/web/_app/immutable/chunks/DMAYXnpq.js +13 -0
  142. package/web/_app/immutable/chunks/DNzd62Q_.js +1 -0
  143. package/web/_app/immutable/chunks/DPCEkfD_.js +1 -0
  144. package/web/_app/immutable/chunks/DTF72YNO.js +1 -0
  145. package/web/_app/immutable/chunks/DTdlqvEb.js +12 -0
  146. package/web/_app/immutable/chunks/DTszW0OQ.js +1 -0
  147. package/web/_app/immutable/chunks/DWkQyNnU.js +1 -0
  148. package/web/_app/immutable/chunks/DXiLM1-G.js +1 -0
  149. package/web/_app/immutable/chunks/DZYaqCwi.js +1 -0
  150. package/web/_app/immutable/chunks/D_19S_Iu.js +1 -0
  151. package/web/_app/immutable/chunks/D_JZ0swv.js +1 -0
  152. package/web/_app/immutable/chunks/D_aBVMvK.js +11 -0
  153. package/web/_app/immutable/chunks/DciMwFJ1.js +1 -0
  154. package/web/_app/immutable/chunks/De_zI4J0.js +1 -0
  155. package/web/_app/immutable/chunks/DgAKBe0r.js +1 -0
  156. package/web/_app/immutable/chunks/DgZW3JtG.js +1 -0
  157. package/web/_app/immutable/chunks/Di_ac7WN.js +1 -0
  158. package/web/_app/immutable/chunks/DjVOVvNP.js +1 -0
  159. package/web/_app/immutable/chunks/Dp_KdFgX.js +1 -0
  160. package/web/_app/immutable/chunks/Ds8Pkiic.js +1 -0
  161. package/web/_app/immutable/chunks/DtbnBenW.js +1 -0
  162. package/web/_app/immutable/chunks/DuQMFDvy.js +1 -0
  163. package/web/_app/immutable/chunks/DwuoZtxw.js +1 -0
  164. package/web/_app/immutable/chunks/DxLkKbK2.js +5 -0
  165. package/web/_app/immutable/chunks/Dz-mlCAC.js +1 -0
  166. package/web/_app/immutable/chunks/EQVRMnZU.js +2 -0
  167. package/web/_app/immutable/chunks/GwMd3KmG.js +1 -0
  168. package/web/_app/immutable/chunks/K_3X9lyC.js +23 -0
  169. package/web/_app/immutable/chunks/{ZRnI3PpK.js → NmqB5ax3.js} +1 -1
  170. package/web/_app/immutable/chunks/PPSTk1ow.js +1 -0
  171. package/web/_app/immutable/chunks/S7ucR4pR.js +1 -0
  172. package/web/_app/immutable/chunks/TuFg0KqZ.js +4 -0
  173. package/web/_app/immutable/chunks/VlUiK86J.js +1 -0
  174. package/web/_app/immutable/chunks/_rHYGvON.js +1 -0
  175. package/web/_app/immutable/chunks/bcQIrid8.js +1 -0
  176. package/web/_app/immutable/chunks/dvrIP-Hm.js +1 -0
  177. package/web/_app/immutable/chunks/gfMMiTNf.js +1 -0
  178. package/web/_app/immutable/chunks/gpDK5sbt.js +1 -0
  179. package/web/_app/immutable/chunks/hOAYc4Tf.js +1 -0
  180. package/web/_app/immutable/chunks/kS471soi.js +1 -0
  181. package/web/_app/immutable/chunks/mbLqADPr.js +1 -0
  182. package/web/_app/immutable/chunks/nMarIA7J.js +3 -0
  183. package/web/_app/immutable/chunks/oBAE_ms0.js +1 -0
  184. package/web/_app/immutable/chunks/p9eYesGn.js +1 -0
  185. package/web/_app/immutable/chunks/qgSLujhx.js +1 -0
  186. package/web/_app/immutable/chunks/spNKdrPy.js +3 -0
  187. package/web/_app/immutable/chunks/tLWDfEkZ.js +1 -0
  188. package/web/_app/immutable/chunks/u8YMmbU0.js +1 -0
  189. package/web/_app/immutable/chunks/vk5Wkr31.js +1 -0
  190. package/web/_app/immutable/chunks/wCTXGvXm.js +2 -0
  191. package/web/_app/immutable/chunks/wj7G6pU5.js +5 -0
  192. package/web/_app/immutable/chunks/xvONpD0Z.js +1 -0
  193. package/web/_app/immutable/chunks/yxd8jSz3.js +1 -0
  194. package/web/_app/immutable/entry/app.DO9lj7h3.js +2 -0
  195. package/web/_app/immutable/entry/start.Bg5TZs6n.js +1 -0
  196. package/web/_app/immutable/nodes/0.N1e1uAFq.js +26 -0
  197. package/web/_app/immutable/nodes/1.BRTPLKyU.js +1 -0
  198. package/web/_app/immutable/nodes/2.BWh1AYEd.js +1 -0
  199. package/web/_app/immutable/nodes/3.Cgqgn7Zv.js +1 -0
  200. package/web/_app/immutable/nodes/4.DYW7Fxdy.js +2 -0
  201. package/web/_app/immutable/nodes/5.Dkvkif0E.js +5 -0
  202. package/web/_app/immutable/nodes/6.BinB0fuq.js +1 -0
  203. package/web/_app/immutable/nodes/{7.BdTE6U4H.js → 7.BxQaF3lD.js} +1 -1
  204. package/web/_app/version.json +1 -1
  205. package/web/index.html +22 -18
  206. package/web/_app/immutable/assets/0.LEIHnkPh.css +0 -1
  207. package/web/_app/immutable/assets/NoteEditor.BCjOff8L.css +0 -1
  208. package/web/_app/immutable/chunks/2DHY0Dzh.js +0 -666
  209. package/web/_app/immutable/chunks/BQRMn_tl.js +0 -1
  210. package/web/_app/immutable/chunks/C-352d8F.js +0 -1
  211. package/web/_app/immutable/chunks/CHxNLteG.js +0 -1
  212. package/web/_app/immutable/chunks/Cf6h5DpS.js +0 -20
  213. package/web/_app/immutable/chunks/D4A7-5k0.js +0 -1
  214. package/web/_app/immutable/chunks/Dijhflxl.js +0 -1
  215. package/web/_app/immutable/chunks/Ps0IPbdL.js +0 -1
  216. package/web/_app/immutable/chunks/nhmVyQdD.js +0 -3
  217. package/web/_app/immutable/chunks/rTqzqD6j.js +0 -1
  218. package/web/_app/immutable/chunks/y24aTX4O.js +0 -1
  219. package/web/_app/immutable/entry/app.BQ0r6jSu.js +0 -2
  220. package/web/_app/immutable/entry/start.CIQiYrSU.js +0 -1
  221. package/web/_app/immutable/nodes/0.zPrOkn79.js +0 -26
  222. package/web/_app/immutable/nodes/1.DfBkOAo2.js +0 -1
  223. package/web/_app/immutable/nodes/2.fp8Y5joG.js +0 -1
  224. package/web/_app/immutable/nodes/3.Do9cwxjS.js +0 -1
  225. package/web/_app/immutable/nodes/4.CGd6gzGJ.js +0 -2
  226. package/web/_app/immutable/nodes/5.Dtac-HK8.js +0 -5
  227. package/web/_app/immutable/nodes/6._-kZkWYe.js +0 -1
@@ -0,0 +1,6 @@
1
+ import{$ as e,A as t,B as n,D as r,E as i,F as a,H as o,J as s,L as c,O as l,P as u,Q as d,S as f,T as p,U as m,X as h,Y as g,_,at as v,dt as y,f as ee,h as b,i as x,j as S,k as C,n as w,ot as T,q as E,rt as te,s as ne,tt as D,u as re,x as ie,z as ae}from"./nMarIA7J.js";import{t as O}from"./BrXPCJaM.js";import"./xihTtKlq.js";import{A as k,C as oe,D as se,F as ce,S as le,_ as ue,a as de,b as fe,c as pe,f as me,h as he,i as ge,k as _e,m as ve,n as ye,o as be,p as xe,r as Se,s as Ce,t as we,u as Te,v as Ee,y as De}from"./B91efLFT.js";import{a as Oe,n as ke,r as Ae,s as je,t as A}from"./CnP_Si9g.js";import{i as Me}from"./hOAYc4Tf.js";import{B as Ne,D as j,E as Pe,F as M,G as Fe,H as Ie,I as Le,J as N,K as Re,L as P,M as F,N as I,P as ze,R as Be,S as Ve,W as He,X as Ue,Y as We,at as Ge,ct as Ke,et as qe,it as Je,lt as Ye,mt as Xe,n as Ze,nt as L,rt as R,t as Qe,ut as $e,v as et,w as tt,x as nt,y as rt}from"./BxTFtVqu.js";import{i as it,l as at,n as ot,o as st,r as ct}from"./yxd8jSz3.js";var lt=class{note;#e=e([]);get entries(){return c(this.#e)}set entries(e){d(this.#e,e)}#t=e(null);get prompt(){return c(this.#t)}set prompt(e){d(this.#t,e)}#n=e(null);get asking(){return c(this.#n)}set asking(e){d(this.#n,e)}#r=e(null);get failed(){return c(this.#r)}set failed(e){d(this.#r,e)}get tier(){return xe.tier}#i=e(null);get cursor(){return c(this.#i)}set cursor(e){d(this.#i,e)}#a=e(``);get busy(){return c(this.#a)}set busy(e){d(this.#a,e,!0)}#o=e(null);get editing(){return c(this.#o)}set editing(e){d(this.#o,e,!0)}stop=null;constructor(e){this.note=e}#s=D(()=>oe(this.entries));get waiting(){return c(this.#s)}set waiting(e){d(this.#s,e)}#c=D(()=>this.waiting.filter(e=>e.form===`insert`));get proposals(){return c(this.#c)}set proposals(e){d(this.#c,e)}#l=D(()=>{let e=[],t=se(this.note.text);for(let n of this.waiting)if(n.form===`rewrite`)for(let r of n.open??[]){let i=n.regions[r],a=ue(this.note.text,i.old),o=a?this.note.text.slice(0,a.from).split(`
2
+ `).length-1:-1,s=t.find(e=>e.from<=o&&o<e.to);e.push({key:`r:${n.id}:${r}`,proposal:n,k:r,at:a,block:/\n/.test(i.old.text.trim())||/\n/.test(i.new.trim()),code:!!(s&&/^\s*(```|~~~)/.test(s.text))})}return e.sort((e,t)=>(e.at?.from??1/0)-(t.at?.from??1/0))});get changes(){return c(this.#l)}set changes(e){d(this.#l,e)}#u=D(()=>{try{let e=k(this.note.text)[0];return{lines:e.split(`
3
+ `).length-1,chars:e.length}}catch{return{lines:0,chars:0}}});get head(){return c(this.#u)}set head(e){d(this.#u,e)}get foot(){return this.note.text.split(`
4
+ `).length}spans(e){return e.flatMap(e=>{let t=ue(this.note.text,e);return t?[t]:[]})}placed(e){return fe(this.note.text,e)!==null}#d=D(()=>{let e=[];for(let t of this.proposals){let n=fe(this.note.text,t);e.push({key:`p:${t.id}`,line:n?.form===`insert`?n.line:this.foot})}this.changes.some(e=>!e.at)&&e.push({key:`lost`,line:this.foot}),this.asking&&e.push({key:`asking`,line:this.asking.line}),this.failed&&e.push({key:`failed`,line:this.failed.line}),this.prompt&&e.push({key:`prompt`,line:this.prompt.line});let t=this.changes.filter(e=>e.at);for(let n of t)n.block&&e.push({key:n.key,line:this.note.text.slice(0,n.at.to).split(`
5
+ `).length});return{blocks:e,picked:this.spans(this.prompt?.regions??this.asking?.regions??[]),old:t.map(e=>e.at),inline:t.filter(e=>!e.block).map(e=>({key:e.key,at:e.at.to}))}});get layout(){return c(this.#d)}set layout(e){d(this.#d,e)}async open(){this.stop=A.on(e=>this.hear(e));let e=A.iso;e?.start&&e.note===this.note.id&&(e.state===`reading`||e.state===`writing`)&&(this.hear(e.start),this.asking&&={...this.asking,text:e.text??``,steps:e.steps});try{this.entries=await A.api.journal(this.note.id)}catch{}}close(){this.stop?.()}hear(e){if(e.type===`journal`){if(e.id!==this.note.id||this.entries.some(t=>t.id===e.entry.id))return;this.entries=[...this.entries,e.entry];let t=e.entry.kind===`discard`||e.entry.kind===`change`?e.entry.proposal:void 0;t&&this.editing?.id===t&&(this.editing=null);return}if(e.type===`note-changed`||e.type===`record`||e.type===`agent-sent`||!(`note`in e)||e.note!==this.note.id)return;if(e.type===`iso-start`){if(this.asking&&!this.asking.request){this.asking={...this.asking,request:e.request};return}let t=this.foot;if(e.place.form===`insert`||e.place.form===`rewrite`){let n=fe(this.note.text,{form:`insert`,after:e.place.after,before:e.place.before});n?.form===`insert`&&(t=n.line)}this.asking={request:e.request,asked:e.asked,line:t,regions:e.place.form===`rewrite`?e.place.regions:[],text:``,steps:[]},this.failed=null,this.prompt=null;return}let t=this.asking;t&&t.request===e.request&&(e.type===`iso-text`?this.asking={...t,text:e.again?e.delta:t.text+e.delta}:e.type===`iso-step`?this.asking={...t,text:``,steps:[...t.steps,e.step]}:(e.type===`iso-failed`&&(this.failed={line:t.line,message:e.message}),this.asking=null))}promptAt(e,t){let n=se(this.note.text).find(t=>t.from<=e&&e<t.to);this.failed=null,this.prompt={line:n?n.to:e,mode:`insert`,regions:[]},t&&t.to>t.from&&(this.setMode(`rewrite`),this.pick([t]))}promptHere(){let e=this.cursor;e?this.promptAt(e.line,e):this.promptAt(this.foot)}askAt(e,t){if(t&&t.to>t.from){this.promptAt(e,t);return}let n=se(this.note.text).find(t=>t.from<=e&&e<t.to),r=n?.text.trim()??``;!n||!r||/^(```|~~~|\$\$|\|)/.test(r)?this.promptAt(e):(this.failed=null,this.prompt={line:n.to,mode:`insert`,regions:[]},this.ask(r))}askHere(){let e=this.cursor;e?this.askAt(e.line,e):this.promptAt(this.foot)}setMode(e){this.prompt&&={...this.prompt,mode:e}}get picking(){return this.prompt?.mode===`rewrite`}pick(e){let t=this.prompt;if(!t)return;let n=this.note.text,r=this.spans(t.regions);for(let t of e){let{from:e,to:i}=t;for(;e<i&&/\s/.test(n[e]);)e++;for(;i>e&&/\s/.test(n[i-1]);)i--;if(i<=e||e<this.head.chars)continue;let a=r.filter(t=>t.from<=i&&e<=t.to);r=[...r.filter(e=>!a.includes(e)),{from:Math.min(e,...a.map(e=>e.from)),to:Math.max(i,...a.map(e=>e.to))}]}r.sort((e,t)=>e.from-t.from),this.prompt={...t,regions:r.map(e=>le(n,e.from,e.to))}}unpick(e){let t=this.prompt;if(!t)return;let n=t.regions.filter(t=>{let n=ue(this.note.text,t);return!n||e<n.from||e>=n.to});n.length!==t.regions.length&&(this.prompt={...t,regions:n})}clearPicked(){this.prompt&&={...this.prompt,regions:[]}}setTier(e){xe.setTier(e)}async ask(e){let t=this.prompt;if(!t||!e.trim()||this.asking||t.mode===`rewrite`&&!t.regions.length)return;let n=t.mode===`rewrite`?t.regions:[];this.prompt=null,this.failed=null,this.asking={request:``,asked:e,line:t.line,regions:n,text:``,steps:[]};try{await this.note.save();let r=De(this.note.text,t.line),i=xe.of(this.note.id),a=Object.keys(i).length?{choice:i}:{},{request:o}=await A.api.ask(n.length?{note:this.note.id,form:`rewrite`,regions:n,after:r.after,before:r.before,asked:e,tier:this.tier,...a}:{note:this.note.id,...r,asked:e,tier:this.tier,...a});this.asking&&!this.asking.request&&(this.asking={...this.asking,request:o})}catch(e){this.asking=null,this.failed={line:t.line,message:e.message}}}async send(){if(this.asking)return``;this.failed=null,this.asking={request:``,asked:``,line:this.foot,regions:[],text:``,steps:[]};try{await this.note.save();let{request:e}=await A.api.ask({note:this.note.id,form:`note`,tier:this.tier});return this.asking&&!this.asking.request&&(this.asking={...this.asking,request:e}),e}catch(e){return this.asking=null,this.failed={line:this.foot,message:e.message},``}}halt(){let e=this.asking;if(!e)return;if(e.request){A.api.stop(e.request);return}let t=A.on(e=>{e.type===`iso-start`&&e.note===this.note.id&&(t(),A.api.stop(e.request))})}say(e,t){this.failed={line:e??this.foot,message:t.message}}lineOf(e){return this.layout.blocks.find(t=>t.key===`p:${e.id}`)?.line}edit(e){this.editing={id:e.id,text:e.text}}async done(e){let t=this.editing;if(t?.id===e.id)try{await A.api.revise(this.note.id,e.id,t.text),this.editing=null}catch(t){this.say(this.lineOf(e),t)}}async keep(e){this.busy=e.id;try{await this.note.save(),this.editing?.id===e.id&&await this.done(e),this.note.adopt(await A.api.keep(this.note.id,e.id))}catch(t){this.say(this.lineOf(e),t)}finally{this.busy=``}}async discard(e){this.busy=e.id;try{await A.api.discard(this.note.id,e.id)}catch(t){this.say(this.lineOf(e),t)}finally{this.busy=``}}async keepChange(e){this.busy=e.key;try{await this.note.save(),this.note.adopt(await A.api.keep(this.note.id,e.proposal.id,e.k))}catch(e){this.say(void 0,e)}finally{this.busy=``}}async discardChange(e){this.busy=e.key;try{await A.api.discard(this.note.id,e.proposal.id,e.k)}catch(e){this.say(void 0,e)}finally{this.busy=``}}async settleAll(e){this.busy=`all`;try{e&&await this.note.save();for(let t of[...this.changes].reverse())(!e||t.at)&&(e?this.note.adopt(await A.api.keep(this.note.id,t.proposal.id,t.k)):await A.api.discard(this.note.id,t.proposal.id,t.k))}catch(e){this.say(void 0,e)}finally{this.busy=``}}},ut=1500,dt=e=>je(`isorite.draft.${e}`);function ft(e,t){try{if(t===void 0)return JSON.parse(localStorage.getItem(dt(e))??`null`);t?localStorage.setItem(dt(e),JSON.stringify(t)):localStorage.removeItem(dt(e))}catch{}return null}var pt=e=>typeof e==`string`?e:e==null?``:String(e),mt=class{id;#e=e(`loading`);get loaded(){return c(this.#e)}set loaded(e){d(this.#e,e,!0)}#t=e(`saved`);get saving(){return c(this.#t)}set saving(e){d(this.#t,e,!0)}#n=e(``);get message(){return c(this.#n)}set message(e){d(this.#n,e,!0)}#r=e(``);get text(){return c(this.#r)}set text(e){d(this.#r,e,!0)}#i=e(void 0);get theirs(){return c(this.#i)}set theirs(e){d(this.#i,e)}#a=e(0);get revision(){return c(this.#a)}set revision(e){d(this.#a,e,!0)}base=``;saved=``;timer=null;inFlight=null;stop=null;constructor(e){this.id=e}#o=D(()=>{try{return ce(this.text)[0]??{}}catch{return null}});get meta(){return c(this.#o)}set meta(e){d(this.#o,e)}#s=D(()=>{let e=this.meta??{};return{title:pt(e.title),type:pt(e.type),description:pt(e.description),tags:Array.isArray(e.tags)?e.tags.map(String).join(`, `):pt(e.tags)}});get fields(){return c(this.#s)}set fields(e){d(this.#s,e)}#c=D(()=>{try{return k(this.text)[2]}catch{return this.text}});get body(){return c(this.#c)}set body(e){d(this.#c,e)}async open(){try{let e=await A.api.readNote(this.id),t=ft(this.id);this.take(e),t&&t.text!==e.text&&(this.text=t.text,t.base===e.version?this.changed():(this.theirs=e,this.saving=`conflict`,ft(this.id,t))),this.loaded=`ready`,this.stop=A.on(e=>this.hear(e))}catch(e){this.loaded=e instanceof Oe&&e.status===404?`missing`:`error`,this.message=e.message}}async close(){this.stop?.(),await this.save()}adopt(e){this.take(e)}async restore(e){await this.settle(),this.take(await A.api.restore(this.id,e,this.base))}async move(e){await this.settle();let t=await A.api.moveNote(this.id,e,this.base);return this.stop?.(),t.id}async setDone(e){await this.settle(),this.take(await A.api.setDone(this.id,e,this.base)),await A.refresh()}async remove(){await this.settle(),await A.api.deleteNote(this.id,this.base),this.stop?.()}async settle(){if(this.saving!==`saved`&&await this.save(),this.saving!==`saved`)throw Error(this.message||`the note could not be saved first`)}take(e){this.text=this.saved=e.text,this.base=e.version,this.theirs=void 0,this.saving=`saved`,this.message=``,ft(this.id,null),this.revision++}setText(e){e!==this.text&&(this.text=e,this.changed())}setBody(e){e!==this.body&&this.setText(_e(this.text,{},e))}setFields(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.trim();t[n]=n===`tags`?e?e.split(`,`).map(e=>e.trim()).filter(Boolean):null:e||null}this.setMeta(t)}setMeta(e){try{this.setText(_e(this.text,e,null))}catch{}}changed(){ft(this.id,{base:this.base,text:this.text}),this.saving!==`conflict`&&(this.saving=`unsaved`,this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>{this.save()},ut))}save(){return this.timer&&=(clearTimeout(this.timer),null),this.inFlight=(this.inFlight??Promise.resolve()).then(()=>this.send()),this.inFlight}async send(){if(this.loaded!==`ready`||this.saving===`conflict`||this.text===this.saved)return;let e=this.text;this.saving=`saving`;try{let t=await A.api.saveNote(this.id,{base:this.base,text:e});this.base=t.version,this.saved=e,this.message=``,this.text===e?(this.saving=`saved`,ft(this.id,null)):this.changed()}catch(t){if(t instanceof Oe&&t.status===409&&t.current!==void 0){if(t.current?.text===e)return this.take(t.current);this.theirs=t.current,this.saving=`conflict`}else this.saving=`failed`,this.message=t.message,this.timer=setTimeout(()=>{this.save()},5e3)}}hear(e){e.type===`note-changed`&&e.id===this.id&&e.version!==this.base&&e.version!==Ee(this.text)&&this.saving===`saved`&&A.api.readNote(this.id).then(e=>{this.saving===`saved`&&e.version!==this.base&&this.take(e)},()=>void 0)}keepMine(){let e=this.theirs;return e===void 0?Promise.resolve():(this.theirs=void 0,this.saving=`unsaved`,e===null?A.api.createNote(this.id,this.text).then(e=>this.take(e),e=>{this.saving=`failed`,this.message=e.message}):(this.base=e.version,this.saved=e.text,this.save()))}keepTheirs(){this.theirs&&this.take(this.theirs)}},ht=e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=bt(e.state,n.from);return r.line?_t(e):r.block?yt(e):!1};function gt(e,t){return({state:n,dispatch:r})=>{if(n.readOnly)return!1;let i=e(t,n);return i?(r(n.update(i)),!0):!1}}var _t=gt(Tt,0),vt=gt(wt,0),yt=gt((e,t)=>wt(e,t,Ct(t)),0);function bt(e,t){let n=e.languageDataAt(`commentTokens`,t,1);return n.length?n[0]:{}}var xt=50;function St(e,{open:t,close:n},r,i){let a=e.sliceDoc(r-xt,r),o=e.sliceDoc(i,i+xt),s=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(o)[0].length,l=a.length-s;if(a.slice(l-t.length,l)==t&&o.slice(c,c+n.length)==n)return{open:{pos:r-s,margin:s&&1},close:{pos:i+c,margin:c&&1}};let u,d;i-r<=100?u=d=e.sliceDoc(r,i):(u=e.sliceDoc(r,r+xt),d=e.sliceDoc(i-xt,i));let f=/^\s*/.exec(u)[0].length,p=/\s*$/.exec(d)[0].length,m=d.length-p-n.length;return u.slice(f,f+t.length)==t&&d.slice(m,m+n.length)==n?{open:{pos:r+f+t.length,margin:+!!/\s/.test(u.charAt(f+t.length))},close:{pos:i-p-n.length,margin:+!!/\s/.test(d.charAt(m-1))}}:null}function Ct(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to);i.from>r.from&&i.from==n.to&&(i=n.to==r.to+1?r:e.doc.lineAt(n.to-1));let a=t.length-1;a>=0&&t[a].to>r.from?t[a].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}function wt(e,t,n=t.selection.ranges){let r=n.map(e=>bt(t,e.from).block);if(!r.every(e=>e))return null;let i=n.map((e,n)=>St(t,r[n],e.from,e.to));if(e!=2&&!i.every(e=>e))return{changes:t.changes(n.map((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+` `},{from:e.to,insert:` `+r[t].close}]))};if(e!=1&&i.some(e=>e)){let e=[];for(let t=0,n;t<i.length;t++)if(n=i[t]){let i=r[t],{open:a,close:o}=n;e.push({from:a.pos-i.open.length,to:a.pos+a.margin},{from:o.pos-o.margin,to:o.pos+i.close.length})}return{changes:e}}return null}function Tt(e,t,n=t.selection.ranges){let r=[],i=-1;ranges:for(let{from:e,to:a}of n){let n=r.length,o=1e9,s;for(let n=e;n<=a;){let c=t.doc.lineAt(n);if(s==null&&(s=bt(t,c.from).line,!s))continue ranges;if(c.from>i&&(e==a||a>c.from)){i=c.from;let e=/^\s*/.exec(c.text)[0].length,t=e==c.length,n=c.text.slice(e,e+s.length)==s?e:-1;e<c.text.length&&e<o&&(o=e),r.push({line:c,comment:n,token:s,indent:e,empty:t,single:!1})}n=c.to+1}if(o<1e9)for(let e=n;e<r.length;e++)r[e].indent<r[e].line.text.length&&(r[e].indent=o);r.length==n+1&&(r[n].single=!0)}if(e!=2&&r.some(e=>e.comment<0&&(!e.empty||e.single))){let e=[];for(let{line:t,token:n,indent:i,empty:a,single:o}of r)(o||!a)&&e.push({from:t.from+i,insert:n+` `});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(e!=1&&r.some(e=>e.comment>=0)){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,a=r+i.length;t.text[a-t.from]==` `&&a++,e.push({from:r,to:a})}return{changes:e}}return null}var Et=He.define(),Dt=He.define(),Ot=Ue.define(),kt=Ue.define({combine(e){return Ke(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}}),At=R.define({create(){return qt.empty},update(e,t){let n=t.state.facet(kt),r=t.annotation(Et);if(r){let i=z.fromTransaction(t,r.selection),a=r.side,o=a==0?e.undone:e.done;return o=i?Lt(o,o.length,n.minDepth,i):Ht(o,t.startState.selection),new qt(a==0?r.rest:o,a==0?o:r.rest)}let i=t.annotation(Dt);if((i==`full`||i==`before`)&&(e=e.isolate()),t.annotation(Ge.addToHistory)===!1)return t.changes.empty?e:e.addMapping(t.changes.desc);let a=z.fromTransaction(t),o=t.annotation(Ge.time),s=t.annotation(Ge.userEvent);return a?e=e.addChanges(a,o,s,n,t):t.selection&&(e=e.addSelection(t.startState.selection,o,s,n.newGroupDelay)),(i==`full`||i==`after`)&&(e=e.isolate()),e},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new qt(e.done.map(z.fromJSON),e.undone.map(z.fromJSON))}});function jt(e={}){return[At,kt.of(e),M.domEventHandlers({beforeinput(e,t){let n=e.inputType==`historyUndo`?Nt:e.inputType==`historyRedo`?Pt:null;return n?(e.preventDefault(),n(t)):!1}})]}function Mt(e,t){return function({state:n,dispatch:r}){if(!t&&n.readOnly)return!1;let i=n.field(At,!1);if(!i)return!1;let a=i.pop(e,n,t);return a?(r(a),!0):!1}}var Nt=Mt(0,!1),Pt=Mt(1,!1),Ft=Mt(0,!0),It=Mt(1,!0),z=class e{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(t){return new e(this.changes,this.effects,this.mapped,this.startSelection,t)}toJSON(){return{changes:this.changes?.toJSON(),mapped:this.mapped?.toJSON(),startSelection:this.startSelection?.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(t){return new e(t.changes&&Re.fromJSON(t.changes),[],t.mapped&&Fe.fromJSON(t.mapped),t.startSelection&&N.fromJSON(t.startSelection),t.selectionsAfter.map(N.fromJSON))}static fromTransaction(t,n){let r=B;for(let e of t.startState.facet(Ot)){let n=e(t);n.length&&(r=r.concat(n))}return!r.length&&t.changes.empty?null:new e(t.changes.invert(t.startState.doc),r,void 0,n||t.startState.selection,B)}static selection(t){return new e(void 0,B,void 0,void 0,t)}};function Lt(e,t,n,r){let i=t+1>n+20?t-n-1:0,a=e.slice(i,t);return a.push(r),a}function Rt(e,t){let n=[],r=!1;return e.iterChangedRanges((e,t)=>n.push(e,t)),t.iterChangedRanges((e,t,i,a)=>{for(let e=0;e<n.length;){let t=n[e++],o=n[e++];a>=t&&i<=o&&(r=!0)}}),r}function zt(e,t){return e.ranges.length==t.ranges.length&&e.ranges.filter((e,n)=>e.empty!=t.ranges[n].empty).length===0}function Bt(e,t){return e.length?t.length?e.concat(t):e:t}var B=[],Vt=200;function Ht(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Vt));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),Lt(e,e.length-1,1e9,n.setSelAfter(r)))}return[z.selection([t])]}function Ut(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function Wt(e,t){if(!e.length)return e;let n=e.length,r=B;for(;n;){let i=Gt(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}t=i.mapped,n--,r=i.selectionsAfter}return r.length?[z.selection(r)]:B}function Gt(e,t,n){let r=Bt(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):B,n);if(!e.changes)return z.selection(r);let i=e.changes.map(t),a=t.mapDesc(e.changes,!0),o=e.mapped?e.mapped.composeDesc(a):a;return new z(i,L.mapEffects(e.effects,t),o,e.startSelection.map(a),r)}var Kt=/^(input\.type|delete)($|\.)/,qt=class e{constructor(e,t,n=0,r=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new e(this.done,this.undone):this}addChanges(t,n,r,i,a){let o=this.done,s=o[o.length-1];return o=s&&s.changes&&!s.changes.empty&&t.changes&&(!r||Kt.test(r))&&(!s.selectionsAfter.length&&n-this.prevTime<i.newGroupDelay&&i.joinToEvent(a,Rt(s.changes,t.changes))||r==`input.type.compose`)?Lt(o,o.length-1,i.minDepth,new z(t.changes.compose(s.changes),Bt(L.mapEffects(t.effects,s.changes),s.effects),s.mapped,s.startSelection,B)):Lt(o,o.length,i.minDepth,t),new e(o,B,n,r)}addSelection(t,n,r,i){let a=this.done.length?this.done[this.done.length-1].selectionsAfter:B;return a.length>0&&n-this.prevTime<i&&r==this.prevUserEvent&&r&&/^select($|\.)/.test(r)&&zt(a[a.length-1],t)?this:new e(Ht(this.done,t),this.undone,n,r)}addMapping(t){return new e(Wt(this.done,t),Wt(this.undone,t),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=e==0?this.done:this.undone;if(r.length==0)return null;let i=r[r.length-1],a=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:Et.of({side:e,rest:Ut(r),selection:a}),userEvent:e==0?`select.undo`:`select.redo`,scrollIntoView:!0});if(i.changes){let n=r.length==1?B:r.slice(0,r.length-1);return i.mapped&&(n=Wt(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:Et.of({side:e,rest:n,selection:a}),filter:!1,userEvent:e==0?`undo`:`redo`,scrollIntoView:!0})}return null}};qt.empty=new qt(B,B);var Jt=[{key:`Mod-z`,run:Nt,preventDefault:!0},{key:`Mod-y`,mac:`Mod-Shift-z`,run:Pt,preventDefault:!0},{linux:`Ctrl-Shift-z`,run:Pt,preventDefault:!0},{key:`Mod-u`,run:Ft,preventDefault:!0},{key:`Alt-u`,mac:`Mod-Shift-u`,run:It,preventDefault:!0}];function V(e,t){return N.create(e.ranges.map(t),e.mainIndex)}function H(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:`select`})}function U({state:e,dispatch:t},n){let r=V(e.selection,n);return!r.eq(e.selection,!0)&&(t(H(e,r)),!0)}function Yt(e,t){return N.cursor(t?e.to:e.from)}function Xt(e,t){return U(e,n=>n.empty?e.moveByChar(n,t):Yt(n,t))}function W(e){return e.textDirectionAt(e.state.selection.main.head)==ze.LTR}var Zt=e=>Xt(e,!W(e)),Qt=e=>Xt(e,W(e));function $t(e,t){return U(e,n=>n.empty?e.moveByGroup(n,t):Yt(n,t))}var en=e=>$t(e,!W(e)),tn=e=>$t(e,W(e));typeof Intl<`u`&&Intl.Segmenter;function nn(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function rn(e,t,n){let r=j(e).resolveInner(t.head),i=n?Xe.closedBy:Xe.openedBy;for(let a=t.head;;){let t=n?r.childAfter(a):r.childBefore(a);if(!t)break;nn(e,t,i)?r=t:a=n?t.to:t.from}let a=r.type.prop(i),o,s;return s=a&&(o=n?tt(e,r.from,1):tt(e,r.to,-1))&&o.matched?n?o.end.to:o.end.from:n?r.to:r.from,N.cursor(s,n?-1:1)}var an=e=>U(e,t=>rn(e.state,t,!W(e))),on=e=>U(e,t=>rn(e.state,t,W(e)));function sn(e,t){return U(e,n=>{if(!n.empty)return Yt(n,t);let r=e.moveVertically(n,t);return r.head==n.head?e.moveToLineBoundary(n,t):r})}var cn=e=>sn(e,!1),ln=e=>sn(e,!0);function un(e){let t=e.scrollDOM.clientHeight<e.scrollDOM.scrollHeight-2,n=0,r=0,i;if(t){for(let t of e.state.facet(M.scrollMargins)){let i=t(e);i?.top&&(n=Math.max(i?.top,n)),i?.bottom&&(r=Math.max(i?.bottom,r))}i=e.scrollDOM.clientHeight-n-r}else i=(e.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:n,marginBottom:r,selfScroll:t,height:Math.max(e.defaultLineHeight,i-5)}}function dn(e,t){let n=un(e),{state:r}=e,i=V(r.selection,r=>r.empty?e.moveVertically(r,t,n.height):Yt(r,t));if(i.eq(r.selection))return!1;let a;if(n.selfScroll){let t=e.coordsAtPos(r.selection.main.head),o=e.scrollDOM.getBoundingClientRect(),s=o.top+n.marginTop,c=o.bottom-n.marginBottom;t&&t.top>s&&t.bottom<c&&(a=M.scrollIntoView(i.main.head,{y:`start`,yMargin:t.top-s}))}return e.dispatch(H(r,i),{effects:a}),!0}var fn=e=>dn(e,!1),pn=e=>dn(e,!0);function G(e,t,n){let r=e.lineBlockAt(t.head),i=e.moveToLineBoundary(t,n);if(i.head==t.head&&i.head!=(n?r.to:r.from)&&(i=e.moveToLineBoundary(t,n,!1)),!n&&i.head==r.from&&r.length){let n=/^\s*/.exec(e.state.sliceDoc(r.from,Math.min(r.from+100,r.to)))[0].length;n&&t.head!=r.from+n&&(i=N.cursor(r.from+n))}return i}var mn=e=>U(e,t=>G(e,t,!0)),hn=e=>U(e,t=>G(e,t,!1)),gn=e=>U(e,t=>G(e,t,!W(e))),_n=e=>U(e,t=>G(e,t,W(e))),vn=e=>U(e,t=>e.moveToLineBoundary(t,!1,!1)),yn=e=>U(e,t=>e.moveToLineBoundary(t,!0,!1));function bn(e,t,n){let r=!1,i=V(e.selection,t=>{let i=tt(e,t.head,-1)||tt(e,t.head,1)||t.head>0&&tt(e,t.head-1,1)||t.head<e.doc.length&&tt(e,t.head+1,-1);if(!i||!i.end)return t;r=!0;let a=i.start.from==t.head?i.end.to:i.end.from;return n?N.range(t.anchor,a):N.cursor(a)});return r?(t(H(e,i)),!0):!1}var xn=({state:e,dispatch:t})=>bn(e,t,!1);function K(e,t,n){let r=V(e.state.selection,e=>{e.undirectional&&e.head>=e.anchor!=t&&(e=N.range(e.head,e.anchor));let r=n(e);return N.range(e.anchor,r.head,r.goalColumn,r.bidiLevel||void 0,r.assoc)});return!r.eq(e.state.selection)&&(e.dispatch(H(e.state,r)),!0)}function Sn(e,t){return K(e,t,n=>e.moveByChar(n,t))}var Cn=e=>Sn(e,!W(e)),wn=e=>Sn(e,W(e));function Tn(e,t){return K(e,t,n=>e.moveByGroup(n,t))}var En=e=>Tn(e,!W(e)),Dn=e=>Tn(e,W(e)),On=e=>{let t=!W(e);return K(e,t,n=>rn(e.state,n,t))},kn=e=>{let t=W(e);return K(e,t,n=>rn(e.state,n,t))};function An(e,t){return K(e,t,n=>e.moveVertically(n,t))}var jn=e=>An(e,!1),Mn=e=>An(e,!0);function Nn(e,t){return K(e,t,n=>e.moveVertically(n,t,un(e).height))}var Pn=e=>Nn(e,!1),Fn=e=>Nn(e,!0),In=e=>K(e,!0,t=>G(e,t,!0)),Ln=e=>K(e,!1,t=>G(e,t,!1)),Rn=e=>{let t=!W(e);return K(e,t,n=>G(e,n,t))},zn=e=>{let t=W(e);return K(e,t,n=>G(e,n,t))},Bn=e=>K(e,!1,t=>N.cursor(e.lineBlockAt(t.head).from)),Vn=e=>K(e,!0,t=>N.cursor(e.lineBlockAt(t.head).to)),Hn=({state:e,dispatch:t})=>(t(H(e,{anchor:0})),!0),Un=({state:e,dispatch:t})=>(t(H(e,{anchor:e.doc.length})),!0),Wn=({state:e,dispatch:t})=>(t(H(e,{anchor:e.selection.main.anchor,head:0})),!0),Gn=({state:e,dispatch:t})=>(t(H(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),Kn=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:`select`})),!0),qn=({state:e,dispatch:t})=>{let n=fr(e).map(({from:t,to:n})=>N.undirectionalRange(t,Math.min(n+1,e.doc.length)));return t(e.update({selection:N.create(n),userEvent:`select`})),!0},Jn=({state:e,dispatch:t})=>{let n=V(e.selection,t=>{let n=j(e),r=n.resolveStack(t.from,1);if(t.empty){let e=n.resolveStack(t.from,-1);e.node.from>=r.node.from&&e.node.to<=r.node.to&&(r=e)}for(let e=r;e;e=e.next){let{node:n}=e;if((n.from<t.from&&n.to>=t.to||n.to>t.to&&n.from<=t.from)&&e.next)return N.undirectionalRange(n.from,n.to)}return t});return!n.eq(e.selection)&&(t(H(e,n)),!0)};function Yn(e,t){let{state:n}=e,r=n.selection,i=n.selection.ranges.slice();for(let r of n.selection.ranges){let a=n.doc.lineAt(r.head);if(t?a.to<e.state.doc.length:a.from>0)for(let n=r;;){let r=e.moveVertically(n,t);if(r.head<a.from||r.head>a.to){i.some(e=>e.head==r.head)||i.push(r);break}if(r.head==n.head)break;n=r}}return i.length!=r.ranges.length&&(e.dispatch(H(n,N.create(i,i.length-1))),!0)}var Xn=e=>Yn(e,!1),Zn=e=>Yn(e,!0),Qn=({state:e,dispatch:t})=>{let n=e.selection,r=null;return n.ranges.length>1?r=N.create([n.main]):n.main.empty||(r=N.create([N.cursor(n.main.head)])),r?(t(H(e,r)),!0):!1};function $n(e,t){if(e.state.readOnly)return!1;let n=`delete.selection`,{state:r}=e,i=r.changeByRange(r=>{let{from:i,to:a}=r;if(i==a){let o=t(r);o<i?(n=`delete.backward`,o=er(e,o,!1)):o>i&&(n=`delete.forward`,o=er(e,o,!0)),i=Math.min(i,o),a=Math.max(a,o)}else i=er(e,i,!1),a=er(e,a,!0);return i==a?{range:r}:{changes:{from:i,to:a},range:N.cursor(i,i<r.head?-1:1)}});return!i.changes.empty&&(e.dispatch(r.update(i,{scrollIntoView:!0,userEvent:n,effects:n==`delete.selection`?M.announce.of(r.phrase(`Selection deleted`)):void 0})),!0)}function er(e,t,n){if(e instanceof M)for(let r of e.state.facet(M.atomicRanges).map(t=>t(e)))r.between(t,t,(e,r)=>{e<t&&r>t&&(t=n?r:e)});return t}var tr=(e,t,n)=>$n(e,r=>{let i=r.from,{state:a}=e,o=a.doc.lineAt(i),s,c;if(n&&!t&&i>o.from&&i<o.from+200&&!/[^ \t]/.test(s=o.text.slice(0,i-o.from))){if(s[s.length-1]==` `)return i-1;let e=Ye(s,a.tabSize)%et(a)||et(a);for(let t=0;t<e&&s[s.length-1-t]==` `;t++)i--;c=i}else c=$e(o.text,i-o.from,t,t)+o.from,c==i&&o.number!=(t?a.doc.lines:1)?c+=t?1:-1:!t&&/[\ufe00-\ufe0f]/.test(o.text.slice(c-o.from,i-o.from))&&(c=$e(o.text,c-o.from,!1,!1)+o.from);return c}),nr=e=>tr(e,!1,!0),rr=e=>tr(e,!0,!1),ir=(e,t)=>$n(e,n=>{let r=n.head,{state:i}=e,a=i.doc.lineAt(r),o=i.charCategorizer(r);for(let e=null;;){if(r==(t?a.to:a.from)){r==n.head&&a.number!=(t?i.doc.lines:1)&&(r+=t?1:-1);break}let s=$e(a.text,r-a.from,t)+a.from,c=a.text.slice(Math.min(r,s)-a.from,Math.max(r,s)-a.from),l=o(c);if(e!=null&&l!=e)break;(c!=` `||r!=n.head)&&(e=l),r=s}return r}),ar=e=>ir(e,!1),or=e=>ir(e,!0),sr=e=>$n(e,t=>{let n=e.lineBlockAt(t.head).to;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),cr=e=>$n(e,t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}),lr=e=>$n(e,t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head<n?n:Math.min(e.state.doc.length,t.head+1)}),ur=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:Je.of([``,``])},range:N.cursor(e.from)}));return t(e.update(n,{scrollIntoView:!0,userEvent:`input`})),!0},dr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(t=>{if(!t.empty||t.from==0||t.from==e.doc.length)return{range:t};let n=t.from,r=e.doc.lineAt(n),i=n==r.from?n-1:$e(r.text,n-r.from,!1)+r.from,a=n==r.to?n+1:$e(r.text,n-r.from,!0)+r.from;return{changes:{from:i,to:a,insert:e.doc.slice(n,a).append(e.doc.slice(i,n))},range:N.cursor(a)}});return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:`move.character`})),!0)};function fr(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),a=e.doc.lineAt(r.to);if(!r.empty&&r.to==a.from&&(a=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=a.to,e.ranges.push(r)}else t.push({from:i.from,to:a.to,ranges:[r]});n=a.number+1}return t}function pr(e,t,n){if(e.readOnly)return!1;let r=[],i=[];for(let t of fr(e)){if(n?t.to==e.doc.length:t.from==0)continue;let a=e.doc.lineAt(n?t.to+1:t.from-1),o=a.length+1;if(n){r.push({from:t.to,to:a.to},{from:t.from,insert:a.text+e.lineBreak});for(let n of t.ranges)i.push(N.range(Math.min(e.doc.length,n.anchor+o),Math.min(e.doc.length,n.head+o)))}else{r.push({from:a.from,to:t.from},{from:t.to,insert:e.lineBreak+a.text});for(let e of t.ranges)i.push(N.range(e.anchor-o,e.head-o))}}return r.length?(t(e.update({changes:r,scrollIntoView:!0,selection:N.create(i,e.selection.mainIndex),userEvent:`move.line`})),!0):!1}var mr=({state:e,dispatch:t})=>pr(e,t,!1),hr=({state:e,dispatch:t})=>pr(e,t,!0);function gr(e,t,n){if(e.readOnly)return!1;let r=[];for(let t of fr(e))n?r.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):r.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});let i=e.changes(r);return t(e.update({changes:i,selection:e.selection.map(i,n?1:-1),scrollIntoView:!0,userEvent:`input.copyline`})),!0}var _r=({state:e,dispatch:t})=>gr(e,t,!1),vr=({state:e,dispatch:t})=>gr(e,t,!0),yr=e=>{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(fr(t).map(({from:e,to:n})=>(e>0?e--:n<t.doc.length&&n++,{from:e,to:n}))),r=V(t.selection,t=>{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)}).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:`delete.line`}),!0};function br(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n=j(e).resolveInner(t),r=n.childBefore(t),i=n.childAfter(t),a;return r&&i&&r.to<=t&&i.from>=t&&(a=r.type.prop(Xe.closedBy))&&a.indexOf(i.name)>-1&&e.doc.lineAt(r.to).from==e.doc.lineAt(i.from).from&&!/\S/.test(e.sliceDoc(r.to,i.from))?{from:r.to,to:i.from}:null}var xr=Cr(!1),Sr=Cr(!0);function Cr(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let r=t.changeByRange(n=>{let{from:r,to:i}=n,a=t.doc.lineAt(r),o=!e&&r==i&&br(t,r);e&&(r=i=(i<=a.to?a:t.doc.lineAt(i)).to);let s=new Ze(t,{simulateBreak:r,simulateDoubleBreak:!!o}),c=rt(s,r);for(c??=Ye(/^\s*/.exec(t.doc.lineAt(r).text)[0],t.tabSize);i<a.to&&/\s/.test(a.text[i-a.from]);)i++;o?{from:r,to:i}=o:r>a.from&&r<a.from+100&&!/\S/.test(a.text.slice(0,r))&&(r=a.from);let l=[``,nt(t,c)];return o&&l.push(nt(t,s.lineIndent(a.from,-1))),{changes:{from:r,to:i,insert:Je.of(l)},range:N.cursor(r+1+l[1].length)}});return n(t.update(r,{scrollIntoView:!0,userEvent:`input`})),!0}}function wr(e,t){let n=-1;return e.changeByRange(r=>{let i=[];for(let a=r.from;a<=r.to;){let o=e.doc.lineAt(a);o.number>n&&(r.empty||r.to>o.from)&&(t(o,i,r),n=o.number),a=o.to+1}let a=e.changes(i);return{changes:i,range:N.range(a.mapPos(r.anchor,1),a.mapPos(r.head,1))}})}var Tr=({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),r=new Ze(e,{overrideIndentation:e=>n[e]??-1}),i=wr(e,(t,i,a)=>{let o=rt(r,t.from);if(o==null)return;/\S/.test(t.text)||(o=0);let s=/^\s*/.exec(t.text)[0],c=nt(e,o);(s!=c||a.from<t.from+s.length)&&(n[t.from]=o,i.push({from:t.from,to:t.from+s.length,insert:c}))});return i.changes.empty||t(e.update(i,{userEvent:`indent`})),!0},Er=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(wr(e,(t,n)=>{n.push({from:t.from,insert:e.facet(Ve)})}),{userEvent:`input.indent`})),!0),Dr=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(wr(e,(t,n)=>{let r=/^\s*/.exec(t.text)[0];if(!r)return;let i=Ye(r,e.tabSize),a=0,o=nt(e,Math.max(0,i-et(e)));for(;a<r.length&&a<o.length&&r.charCodeAt(a)==o.charCodeAt(a);)a++;n.push({from:t.from+a,to:t.from+r.length,insert:o.slice(a)})}),{userEvent:`delete.dedent`})),!0),Or=e=>(e.setTabFocusMode(),!0),kr=[{key:`Ctrl-b`,run:Zt,shift:Cn,preventDefault:!0},{key:`Ctrl-f`,run:Qt,shift:wn},{key:`Ctrl-p`,run:cn,shift:jn},{key:`Ctrl-n`,run:ln,shift:Mn},{key:`Ctrl-a`,run:vn,shift:Bn},{key:`Ctrl-e`,run:yn,shift:Vn},{key:`Ctrl-d`,run:rr},{key:`Ctrl-h`,run:nr},{key:`Ctrl-k`,run:sr},{key:`Ctrl-Alt-h`,run:ar},{key:`Ctrl-o`,run:ur},{key:`Ctrl-t`,run:dr},{key:`Ctrl-v`,run:pn}],Ar=[{key:`ArrowLeft`,run:Zt,shift:Cn,preventDefault:!0},{key:`Mod-ArrowLeft`,mac:`Alt-ArrowLeft`,run:en,shift:En,preventDefault:!0},{mac:`Cmd-ArrowLeft`,run:gn,shift:Rn,preventDefault:!0},{key:`ArrowRight`,run:Qt,shift:wn,preventDefault:!0},{key:`Mod-ArrowRight`,mac:`Alt-ArrowRight`,run:tn,shift:Dn,preventDefault:!0},{mac:`Cmd-ArrowRight`,run:_n,shift:zn,preventDefault:!0},{key:`ArrowUp`,run:cn,shift:jn,preventDefault:!0},{mac:`Cmd-ArrowUp`,run:Hn,shift:Wn},{mac:`Ctrl-ArrowUp`,run:fn,shift:Pn},{key:`ArrowDown`,run:ln,shift:Mn,preventDefault:!0},{mac:`Cmd-ArrowDown`,run:Un,shift:Gn},{mac:`Ctrl-ArrowDown`,run:pn,shift:Fn},{key:`PageUp`,run:fn,shift:Pn},{key:`PageDown`,run:pn,shift:Fn},{key:`Home`,run:hn,shift:Ln,preventDefault:!0},{key:`Mod-Home`,run:Hn,shift:Wn},{key:`End`,run:mn,shift:In,preventDefault:!0},{key:`Mod-End`,run:Un,shift:Gn},{key:`Enter`,run:xr,shift:xr},{key:`Mod-a`,run:Kn},{key:`Backspace`,run:nr,shift:nr,preventDefault:!0},{key:`Delete`,run:rr,preventDefault:!0},{key:`Mod-Backspace`,mac:`Alt-Backspace`,run:ar,preventDefault:!0},{key:`Mod-Delete`,mac:`Alt-Delete`,run:or,preventDefault:!0},{mac:`Mod-Backspace`,run:cr,preventDefault:!0},{mac:`Mod-Delete`,run:lr,preventDefault:!0}].concat(kr.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),jr=[{key:`Alt-ArrowLeft`,mac:`Ctrl-ArrowLeft`,run:an,shift:On},{key:`Alt-ArrowRight`,mac:`Ctrl-ArrowRight`,run:on,shift:kn},{key:`Alt-ArrowUp`,run:mr},{key:`Shift-Alt-ArrowUp`,run:_r},{key:`Alt-ArrowDown`,run:hr},{key:`Shift-Alt-ArrowDown`,run:vr},{key:`Mod-Alt-ArrowUp`,run:Xn},{key:`Mod-Alt-ArrowDown`,run:Zn},{key:`Escape`,run:Qn},{key:`Mod-Enter`,run:Sr},{key:`Alt-l`,mac:`Ctrl-l`,run:qn},{key:`Mod-i`,run:Jn,preventDefault:!0},{key:`Mod-[`,run:Dr},{key:`Mod-]`,run:Er},{key:`Mod-Alt-\\`,run:Tr},{key:`Shift-Mod-k`,run:yr},{key:`Shift-Mod-\\`,run:xn},{key:`Mod-/`,run:ht},{key:`Alt-A`,mac:`Ctrl-A`,run:vt},{key:`Ctrl-m`,mac:`Shift-Alt-m`,run:Or}].concat(Ar),Mr={key:`Tab`,run:Er,shift:Dr},Nr=Ue.define({combine:e=>e[0]??null}),Pr=/^[ \t]*\[\[!([^\]\n]+)\]\][ \t]*$/,Fr={question:`<path d="M5.6 5.6a2.4 2.4 0 1 1 3.4 2.2c-.6.3-1 .8-1 1.5v.9"/><path d="M8 12v1.2"/>`,problem:`<path d="M8 2.5l5.8 10.5H2.2z"/>`,note:`<rect x="3.5" y="2.5" width="9" height="11"/>`},Ir=`<path d="M3 8.5l3 3 7-7"/>`,Lr=class extends P{ref;found;at;constructor(e,t,n){super(),this.ref=e,this.found=t,this.at=n}eq(e){return e.ref===this.ref&&JSON.stringify(e.found)===JSON.stringify(this.found)&&e.at===this.at}toDOM(e){let t=this.found,n=document.createElement(`div`);n.className=`cm-lp-embed${t?` cm-lp-embed-${t.kind}`:` cm-lp-embed-broken`}${t?.done?` cm-lp-embed-done`:``}`,n.title=`[[!${this.ref}]]`;let r=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);r.setAttribute(`viewBox`,`0 0 16 16`),r.setAttribute(`width`,`16`),r.setAttribute(`height`,`16`),r.setAttribute(`aria-hidden`,`true`),r.innerHTML=t?.done?Ir:Fr[t?.kind??`question`];let i=document.createElement(`span`);return i.textContent=t?t.title:this.ref,n.append(r,i),n.addEventListener(`mousedown`,n=>{n.preventDefault(),t&&!n.altKey?e.state.facet(Nr)?.open(t.id):(e.dispatch({selection:{anchor:this.at},scrollIntoView:!0}),e.focus())}),n}ignoreEvent(){return!0}get estimatedHeight(){return 44}},Rr=class extends P{kind;source;at;beneath;constructor(e,t,n,r){super(),this.kind=e,this.source=t,this.at=n,this.beneath=r}eq(e){return e.kind===this.kind&&e.source===this.source&&e.at===this.at&&e.beneath===this.beneath}toDOM(e){let t=document.createElement(`div`);t.className=`cm-lp-block cm-lp-${this.kind}${this.beneath?` cm-lp-beneath`:``}`;let n=document.createElement(`div`);return n.className=`prose`,t.append(n),n.innerHTML=ge(this.source),this.beneath||(t.title=`Click to edit`,t.addEventListener(`mousedown`,t=>{t.preventDefault(),e.dispatch({selection:{anchor:this.at},scrollIntoView:!0}),e.focus()})),t}ignoreEvent(){return!0}get estimatedHeight(){return this.kind===`maths`?60:120}},zr=new WeakMap,Br=class extends P{source;at;beneath;constructor(e,t,n){super(),this.source=e,this.at=t,this.beneath=n}eq(e){return e.source===this.source&&e.at===this.at&&e.beneath===this.beneath}toDOM(e){let t=document.createElement(`div`);t.className=`cm-lp-block cm-lp-diagram${this.beneath?` cm-lp-beneath`:``}`;let n=document.createElement(`pre`);n.className=`cm-lp-diagram-src`,n.textContent=this.source;let r=document.createElement(`div`);return r.className=`diagram`,t.append(n,r),zr.set(t,{mounted:ye(r,this.source,()=>t.classList.add(`cm-lp-broken-diagram`)),source:this.source}),this.beneath||(t.title=`Click to edit`,t.addEventListener(`mousedown`,t=>{t.preventDefault(),e.dispatch({selection:{anchor:this.at},scrollIntoView:!0}),e.focus()})),t}updateDOM(e){let t=zr.get(e);return!t||!this.beneath||!e.classList.contains(`cm-lp-beneath`)?!1:(t.source!==this.source&&(t.source=this.source,e.classList.remove(`cm-lp-broken-diagram`),e.querySelector(`.cm-lp-diagram-src`).textContent=this.source,t.mounted.then(e=>Se(e,this.source))),!0)}ignoreEvent(){return!0}get estimatedHeight(){return 160}},Vr=(e,t)=>t!==null&&e.sliceDoc(t.from,t.to).trim().split(/\s/)[0].toLowerCase()===`mermaid`;function Hr(e){let t=[],n=e.selection.ranges;j(e).iterate({enter:r=>{let i=null,a=``;if(r.name===`BlockMath`)i=`maths`,a=e.sliceDoc(r.from,r.to);else if(r.name===`Table`)i=`table`,a=e.sliceDoc(r.from,r.to);else if(r.name===`FencedCode`&&Vr(e,r.node.getChild(`CodeInfo`))){let i=r.node.getChild(`CodeText`),a=i?e.sliceDoc(i.from,i.to):``,o=e.doc.lineAt(r.from).from,s=e.doc.lineAt(r.to).to;return n.some(e=>e.to>=o&&e.from<=s)?a.trim()&&t.push(I.widget({widget:new Br(a,r.from,!0),block:!0,side:1}).range(s)):t.push(I.replace({widget:new Br(a,r.from,!1),block:!0}).range(o,s)),!1}else if(r.name===`Document`||r.name===`Blockquote`||/List|ListItem/.test(r.name))return;if(!i)return!1;let o=e.doc.lineAt(r.from).from,s=e.doc.lineAt(r.to).to;return n.some(e=>e.to>=o&&e.from<=s)?i!==`table`&&a.trim()&&t.push(I.widget({widget:new Rr(i,a,r.from,!0),block:!0,side:1}).range(s)):t.push(I.replace({widget:new Rr(i,a,r.from,!1),block:!0}).range(o,s)),!1}});let r=e.facet(Nr);if(r){let i=!1;for(let a=1;a<=e.doc.lines;a++){let o=e.doc.line(a);if(/^\s*(```|~~~)/.test(o.text)){i=!i;continue}let s=i?null:Pr.exec(o.text);if(!s||n.some(e=>e.to>=o.from&&e.from<=o.to))continue;let c=s[1].trim();t.push(I.replace({widget:new Lr(c,r.find(c),o.from),block:!0}).range(o.from,o.to))}}return I.set(t,!0)}var Ur=R.define({create:Hr,update(e,t){return t.docChanged||t.selection||j(t.startState)!==j(t.state)?Hr(t.state):e},provide:e=>M.decorations.from(e)}),Wr=M.theme({".cm-lp-block":{padding:`0`,cursor:`text`},".cm-lp-block .katex-display > .katex":{fontSize:`1.17em`},".cm-lp-block .prose":{maxWidth:`none`},".cm-lp-block .prose > :last-child, .cm-lp-block .table-wrap":{marginBottom:`0`},".cm-lp-block .katex-display":{margin:`0`},".cm-lp-diagram .diagram":{overflowX:`auto`,overflowY:`hidden`},".cm-lp-diagram-src":{display:`none`,margin:`0`,font:`13px/20px var(--font-mono)`,whiteSpace:`pre-wrap`,color:`var(--text-soft)`},".cm-lp-diagram.cm-lp-broken-diagram:not(.cm-lp-beneath) .cm-lp-diagram-src":{display:`block`},".cm-lp-beneath":{borderLeft:`2px solid var(--line)`,paddingLeft:`12px`,marginTop:`4px`,opacity:`.9`},".cm-lp-block:not(.cm-lp-beneath):hover":{outline:`1px dashed var(--line)`,outlineOffset:`2px`},".cm-lp-embed":{display:`flex`,alignItems:`center`,gap:`10px`,padding:`9px 12px`,border:`1px solid var(--rose)`,borderLeftWidth:`3px`,background:`var(--rose-soft)`,fontFamily:`var(--font-text)`,fontSize:`16px`,lineHeight:`1.45`,cursor:`pointer`},".cm-lp-embed svg":{flex:`none`,fill:`none`,stroke:`var(--rose)`,strokeWidth:`1.4`},".cm-lp-embed-problem":{borderColor:`var(--line-strong)`,background:`var(--ground-1)`},".cm-lp-embed-problem svg":{stroke:`var(--text-soft)`},".cm-lp-embed-done":{borderColor:`var(--malachite)`,background:`var(--malachite-soft)`},".cm-lp-embed-done svg":{stroke:`var(--malachite)`},".cm-lp-embed-broken":{borderStyle:`dashed`,borderColor:`var(--line-strong)`,background:`none`,color:`var(--text-faint)`},".cm-lp-embed-broken svg":{stroke:`var(--text-faint)`},".cm-lp-embed:hover":{borderColor:`var(--text-soft)`}});function Gr(e,t){let{state:n}=e,r=t.length;return e.dispatch(n.changeByRange(e=>{let i=n.sliceDoc(e.from-r,e.from),a=n.sliceDoc(e.to,e.to+r);return i===t&&a===t?{changes:[{from:e.from-r,to:e.from},{from:e.to,to:e.to+r}],range:N.range(e.from-r,e.to-r)}:{changes:[{from:e.from,insert:t},{from:e.to,insert:t}],range:N.range(e.from+r,e.to+r)}}),{scrollIntoView:!0,userEvent:`input`}),!0}function Kr(e){let{state:t}=e,n=new Map;for(let e of t.selection.ranges)for(let r=e.from;r<=e.to;){let e=t.doc.lineAt(r);n.set(e.number,{from:e.from,text:e.text}),r=e.to+1}return[...n.values()]}function qr(e){let t=Kr(e).map(({from:e,text:t})=>{let n=/^(#{1,6}) /.exec(t),r=n?n[1].length:0,i=r>=3?``:`#`.repeat(r+1)+` `;return{from:e,to:e+(n?n[0].length:0),insert:i}});return e.dispatch({changes:t,scrollIntoView:!0,userEvent:`input`}),!0}function Jr(e){let t=Kr(e),n=t.every(({text:e})=>/^\s*[-*+] /.test(e)),r=t.map(({from:e,text:t})=>{if(n){let n=/^(\s*)[-*+] /.exec(t);return{from:e+n[1].length,to:e+n[0].length}}return{from:e+/^\s*/.exec(t)[0].length,insert:`- `}});return e.dispatch({changes:r,scrollIntoView:!0,userEvent:`input`}),!0}function Yr(e){let{state:t}=e,n=t.selection.main;if(n.empty)e.dispatch({changes:{from:n.from,insert:`[[]]`},selection:{anchor:n.from+2},userEvent:`input`});else{let r=t.sliceDoc(n.from,n.to);e.dispatch({changes:{from:n.from,to:n.to,insert:`[${r}]()`},selection:{anchor:n.from+r.length+3},userEvent:`input`})}return at(e),!0}function q(e,t){switch(t){case`bold`:return Gr(e,`**`);case`italic`:return Gr(e,`*`);case`maths`:return Gr(e,`$`);case`heading`:return qr(e);case`list`:return Jr(e);case`link`:return Yr(e);case`undo`:return Nt(e);case`redo`:return Pt(e)}}var Xr=[{key:`Mod-b`,preventDefault:!0,run:e=>q(e,`bold`)},{key:`Mod-i`,preventDefault:!0,run:e=>q(e,`italic`)},{key:`Mod-k`,preventDefault:!0,run:e=>q(e,`link`)},{key:`Mod-Shift-m`,preventDefault:!0,run:e=>q(e,`maths`)},{key:`Mod-Shift-h`,preventDefault:!0,run:e=>q(e,`heading`)},{key:`Mod-Shift-8`,preventDefault:!0,run:e=>q(e,`list`)}],Zr=[`requires`,`uses`,`see also`];function Qr(e){if(!e||/^[a-z][a-z0-9+.-]*:/i.test(e)||e.startsWith(`#`))return null;let t=e.split(`#`)[0].split(`?`)[0];return/\.html?$/i.test(t)?`artifact`:/\.(png|jpe?g|gif|svg|webp|avif)$/i.test(t)?`image`:/\.md$/i.test(t)||t.endsWith(`/`)?`note`:null}function J(e,t){let n=j(e);for(let r of[-1,1])for(let i=n.resolveInner(t,r);i;i=i.parent){if(i.name!==`Link`&&i.name!==`Image`)continue;let t=i.getChild(`URL`);if(!t)break;let n=e.sliceDoc(t.from,t.to),r=Qr(n);if(!r)return null;let a=i.getChild(`LinkTitle`),o=a?e.sliceDoc(a.from,a.to):null;return{from:i.from,to:i.to,embed:i.name===`Image`,url:n,urlTo:t.to,title:o===null?null:o.replace(/^["'(]|["')]$/g,``),titleFrom:a?a.from:t.to,titleTo:a?a.to:t.to,kind:r}}return null}var $r=e=>e.kind===`note`||e.kind===`artifact`&&!e.embed;function ei(e,t,n){let r=[];return j(e).iterate({from:t,to:n,enter:i=>{if(i.name!==`Link`&&i.name!==`Image`)return;if(i.from<t||i.to>n)return!1;let a=J(e,i.from+1);return a&&a.from===i.from&&$r(a)&&r.push(a),!1}}),r}var ti=(e,t)=>e.filter(e=>Y(e)!==t).map(e=>X(e,t)),ni=e=>(e??``).trim().toLowerCase().replace(/[-_]/g,` `),Y=e=>Zr.includes(ni(e.title))?ni(e.title):ni(e.title)===`seealso`?`see also`:null,ri=e=>ni(e.title)===`left`?`left`:`center`;function X(e,t){return t===null?{from:e.urlTo,to:e.titleTo,insert:``}:e.titleFrom===e.titleTo?{from:e.urlTo,insert:` "${t}"`}:{from:e.titleFrom,to:e.titleTo,insert:`"${t}"`}}function ii(e,t){if(e.embed===t)return[];let n=[t?{from:e.from,insert:`!`}:{from:e.from,to:e.from+1,insert:``}];return e.title!==null&&(e.kind===`image`||Y(e)!==null)&&n.push(X(e,null)),n}var Z=(e,t)=>e.dispatch({changes:t,userEvent:`input.link`});function ai(e){let t=[...Zr.map(t=>({label:t[0].toUpperCase()+t.slice(1),on:Y(e)===t,run:(e,n)=>Z(e,X(n,t)),hint:t===`requires`?`This note cannot be followed without it: it shapes the Atlas and the study order`:t===`uses`?`It draws on it: it shapes the Atlas`:`Related reading: shown, but it does not shape the Atlas`})),{label:`Unrated`,on:Y(e)===null,run:(e,t)=>Z(e,X(t,null)),hint:`No rating: counted as uses`}];if(e.kind===`note`)return t;let n=[{label:`Shown here`,on:e.embed,run:(e,t)=>Z(e,ii(t,!0)),hint:e.kind===`image`?`The picture is shown in the note`:`The artifact is shown in the note, working`},{label:`Link`,on:!e.embed,run:(e,t)=>Z(e,ii(t,!1)),hint:`A link to it; it opens on its own`}];return e.kind===`image`?e.embed?[...n,{label:`Centre`,on:ri(e)===`center`,run:(e,t)=>Z(e,X(t,null)),hint:`In the middle, 80% of the text's width`},{label:`Left`,on:ri(e)===`left`,run:(e,t)=>Z(e,X(t,`left`)),hint:`At the left, 80% of the text's width`}]:n:e.embed?n:[...n,...t]}function oi(e){let t=t=>e.every(e=>Y(e)===t),n=e.length;return[...Zr.map(e=>({label:e[0].toUpperCase()+e.slice(1),on:t(e),run:t=>Z(t,ti(ei(t.state,t.state.selection.main.from,t.state.selection.main.to),e)),hint:`Rate all ${n} links ${e}`})),{label:`Unrated`,on:t(null),run:e=>Z(e,ti(ei(e.state,e.state.selection.main.from,e.state.selection.main.to),null)),hint:`Take the rating from all ${n} links`}]}function si(e){let t=Y(e[0]),n=e.every(e=>Y(e)===t);return`${e.length} links, ${n?t??`unrated`:`mixed`}`}function ci(e){return e.kind===`note`?Y(e)?Y(e)[0].toUpperCase()+Y(e).slice(1):`Unrated`:e.embed?e.kind===`image`?ri(e)===`left`?`Shown, left`:`Shown, centre`:`Shown here`:Y(e)?`Link, ${Y(e)}`:`Link`}var li=(e,t)=>e===t||!!e&&!!t&&e.from===t.from&&e.to===t.to&&e.title===t.title&&e.embed===t.embed,ui=class{view;layer;button;menu;leader;path;link=null;hover=null;many=[];open=!1;at=0;constructor(e){this.view=e,this.layer=document.createElement(`div`),this.layer.className=`cm-link-control`,this.layer.hidden=!0,this.leader=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`),this.leader.setAttribute(`class`,`cm-link-leader`),this.leader.setAttribute(`aria-hidden`,`true`),this.path=document.createElementNS(`http://www.w3.org/2000/svg`,`path`),this.leader.append(this.path),this.button=document.createElement(`button`),this.button.type=`button`,this.button.className=`cm-link-button`,this.button.setAttribute(`aria-haspopup`,`menu`),this.button.addEventListener(`mousedown`,e=>e.preventDefault()),this.button.addEventListener(`click`,()=>this.toggle(!this.open,!1)),this.menu=document.createElement(`div`),this.menu.className=`cm-link-menu`,this.menu.setAttribute(`role`,`menu`),this.menu.hidden=!0,this.menu.tabIndex=-1,this.menu.addEventListener(`keydown`,e=>this.keys(e)),this.layer.append(this.leader,this.button,this.menu),e.dom.append(this.layer),e.dom.addEventListener(`mousemove`,this.onMove),e.dom.addEventListener(`mouseleave`,this.onLeave)}onMove=e=>{if(this.open||this.layer.contains(e.target))return;let t=this.view.posAtCoords({x:e.clientX,y:e.clientY},!1),n=t===null?null:J(this.view.state,t);li(n,this.hover)||(this.hover=n,this.view.requestMeasure(this.measure))};onLeave=e=>{this.open||this.layer.contains(e.relatedTarget)||this.hover&&(this.hover=null,this.view.requestMeasure(this.measure))};selected(){let e=this.view.state.selection.main;if(e.empty)return[];let t=ei(this.view.state,e.from,e.to);return t.length>=2?t:[]}current(){let e=this.view.state.selection.main,t=this.selected();return t.length?t[0]:J(this.view.state,e.head)??(e.empty?this.hover:null)}update(e){e.docChanged&&(this.hover=null),(e.docChanged||e.selectionSet||e.geometryChanged||e.viewportChanged||e.focusChanged)&&this.view.requestMeasure(this.measure)}measure={key:`link-control`,read:e=>{let t=this.current();if(!t)return null;let n=this.selected(),r=e.dom.getBoundingClientRect(),i=e.contentDOM.getBoundingClientRect(),a=e.coordsAtPos(Math.max(t.from,t.to-1),1)??e.coordsAtPos(t.to,-1);if(n.length){let t=Math.max(r.top,0),i=Math.min(r.bottom,window.innerHeight);a=null;for(let r=n.length-1;r>=0&&!a;r--){let o=e.coordsAtPos(Math.max(n[r].from,n[r].to-1),1);o&&o.top>=t&&o.bottom<=i-34&&(a=o)}a??=e.coordsAtPos(Math.max(n[0].from,n[0].to-1),1)}return a?{l:t,many:n,x:a.right-r.left,y:(a.top+a.bottom)/2-r.top,right:i.right-r.left,width:r.width}:null},write:e=>{if(!e){this.link=null,this.many=[],this.layer.hidden=!0,this.toggle(!1,!1);return}let t=e.many.length?si(e.many):ci(e.l),n=!li(e.l,this.link)||e.many.length!==this.many.length||t!==this.button.textContent;this.link=e.l,this.many=e.many,this.layer.hidden=!1,this.button.textContent=t,this.button.title=e.many.length?`Rate all the selected links (Alt+L)`:`What this link is (Alt+L)`,this.button.setAttribute(`aria-label`,e.many.length?`${t}. Rate them all`:`This link: ${t}. Change it`);let r=this.button.offsetWidth||90,i=e.width-e.right>=r+20,a=i?e.right+14:Math.max(0,e.width-r-2),o=i?e.y-13:e.y+12;this.button.style.transform=`translate(${Math.round(a)}px, ${Math.round(o)}px)`,this.menu.style.transform=`translate(${Math.round(Math.min(a,e.width-250))}px, ${Math.round(o+30)}px)`;let s=a,c=o+13;this.path.setAttribute(`d`,i?`M${e.x+3} ${e.y} H${Math.max(e.x+3,s-3)}`:`M${e.x+3} ${e.y} V${c} H${s-3}`),n&&this.open&&(this.fill(),this.mark(this.at))}};fill(){let e=this.link;e&&this.menu.replaceChildren(...(this.many.length?oi(this.many):ai(e)).map((t,n)=>{let r=document.createElement(`button`);return r.type=`button`,r.tabIndex=-1,r.id=`cm-link-choice-${n}`,r.addEventListener(`mousedown`,e=>e.preventDefault()),r.addEventListener(`mousemove`,()=>this.mark(n)),r.setAttribute(`role`,`menuitemradio`),r.setAttribute(`aria-checked`,String(t.on)),r.title=t.hint,r.innerHTML=`<b></b><span></span>`,r.querySelector(`b`).textContent=t.label,r.querySelector(`span`).textContent=t.hint,r.addEventListener(`click`,()=>{let n=this.current()??e;t.run(this.view,n),this.toggle(!1,!0)}),r}))}toggle(e,t){if(e&&(this.link=this.current()??this.link,this.many=this.selected()),!e||this.link){if(this.open=e,this.menu.hidden=!e,this.layer.classList.toggle(`open`,e),this.button.setAttribute(`aria-expanded`,String(e)),e){this.fill();let e=[...this.menu.querySelectorAll(`button`)];this.mark(Math.max(0,e.findIndex(e=>e.getAttribute(`aria-checked`)===`true`))),this.menu.focus()}else t&&this.view.focus()}}mark(e){let t=[...this.menu.querySelectorAll(`button`)];this.at=t.length?(e+t.length)%t.length:0,t.forEach((e,t)=>e.classList.toggle(`on`,t===this.at)),this.menu.setAttribute(`aria-activedescendant`,t[this.at]?.id??``)}keys(e){let t=[...this.menu.querySelectorAll(`button`)],n=!0;if(e.key===`Escape`)this.toggle(!1,!0);else if(e.key===`Enter`||e.key===` `)t[this.at]?.click();else if(e.key===`ArrowDown`)this.mark(this.at+1);else if(e.key===`ArrowUp`)this.mark(this.at-1);else if(e.key===`Home`)this.mark(0);else if(e.key===`End`)this.mark(t.length-1);else if(e.key===`Tab`)this.toggle(!1,!0);else if(e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey){let r=t.findIndex(t=>t.textContent.toLowerCase().startsWith(e.key.toLowerCase()));r>=0?this.mark(r):n=!1}else n=!1;n&&(e.preventDefault(),e.stopPropagation())}destroy(){this.view.dom.removeEventListener(`mousemove`,this.onMove),this.view.dom.removeEventListener(`mouseleave`,this.onLeave),this.layer.remove()}},di=Le.fromClass(ui),fi=e=>t=>{let n=J(t.state,t.state.selection.main.head);return n?(e(t,n),!0):!1},pi=e=>t=>{let n=t.state.selection.main,r=n.empty?[]:ei(t.state,n.from,n.to);return r.length>=2?(Z(t,ti(r,e)),!0):fi((t,n)=>{$r(n)&&Z(t,X(n,e))})(t)},mi=[{key:`Alt-l`,run:e=>{let t=e.plugin(di);return!t||!t.current()?!1:(t.toggle(!0,!1),!0)}},{key:`Alt-1`,run:pi(`requires`)},{key:`Alt-2`,run:pi(`uses`)},{key:`Alt-3`,run:pi(`see also`)},{key:`Alt-0`,run:pi(null)},{key:`Alt-e`,run:fi((e,t)=>{t.kind!==`note`&&Z(e,ii(t,!t.embed))})}],hi=[di,M.baseTheme({"&":{position:`relative`},".cm-link-control":{position:`absolute`,inset:`0`,pointerEvents:`none`,zIndex:`4`,overflow:`visible`},".cm-link-control[hidden]":{display:`none`},".cm-link-leader":{position:`absolute`,left:`0`,top:`0`,width:`100%`,height:`100%`,overflow:`visible`},".cm-link-leader path":{fill:`none`,stroke:`var(--lattice)`,strokeWidth:`1.75`,strokeDasharray:`.1 5`,strokeLinecap:`round`,opacity:`.7`},".cm-link-control:hover .cm-link-leader path, .cm-link-control:focus-within .cm-link-leader path, .cm-link-control.open .cm-link-leader path":{opacity:`1`,animation:`cm-link-run .6s linear infinite`},"@keyframes cm-link-run":{to:{strokeDashoffset:`-5.1`}},"@media (prefers-reduced-motion: reduce)":{".cm-link-leader path":{animation:`none !important`}},".cm-link-button":{position:`absolute`,left:`0`,top:`0`,pointerEvents:`auto`,height:`26px`,padding:`0 9px`,font:`12.5px var(--font-ui)`,whiteSpace:`nowrap`,color:`var(--text)`,background:`var(--ground-1)`,border:`1px solid var(--lattice)`,cursor:`pointer`},".cm-link-button:hover, .cm-link-button[aria-expanded=true]":{background:`var(--lattice-soft)`},".cm-link-button:focus-visible":{outline:`2px solid var(--focus-ring)`,outlineOffset:`2px`},".cm-link-menu":{position:`absolute`,left:`0`,top:`0`,pointerEvents:`auto`,width:`248px`,padding:`4px`,background:`var(--ground-1)`,border:`1px solid var(--line)`,display:`grid`,gap:`1px`},".cm-link-menu[hidden]":{display:`none`},".cm-link-menu button":{display:`grid`,gap:`1px`,textAlign:`left`,padding:`6px 8px 6px 24px`,background:`none`,border:`0`,color:`var(--text)`,font:`13.5px var(--font-ui)`,cursor:`pointer`,position:`relative`},".cm-link-menu button b":{fontWeight:`600`},".cm-link-menu button span":{fontSize:`12px`,color:`var(--text-faint)`,lineHeight:`1.3`},".cm-link-menu button[aria-checked=true]::before":{content:`"●"`,position:`absolute`,left:`8px`,top:`7px`,fontSize:`10px`,color:`var(--lattice)`},".cm-link-menu:focus":{outline:`none`},".cm-link-menu button.on":{background:`var(--lattice-soft)`},".cm-link-menu:focus-visible button.on":{outline:`2px solid var(--focus-ring)`,outlineOffset:`-2px`}}),Ne.of(mi)];function gi(e){return t=>{let n=t.matchBefore(/\[\[[^\]\n]*$/);if(!n)return null;let r=e().map(e=>({label:e.title,detail:e.folder,apply:(t,n,r,i)=>{let a=`[${e.title}](/${e.id}.md)`,o=r-2,s=t.state.sliceDoc(i,i+2)===`]]`?i+2:i;t.dispatch({changes:{from:o,to:s,insert:a},selection:{anchor:o+a.length}})}}));return{from:n.from+2,options:r,filter:!0,validFor:/^[^\]\n]*$/}}}function _i(e){return t=>{let n=t.matchBefore(/\]\([^)\s]*$/);return n?{from:n.from+2,options:e().map(e=>({label:`/${e.id}.md`,detail:e.title})),validFor:/^[^)\s]*$/}:null}}function vi(e){return ot({override:[gi(e),_i(e)],icons:!1,activateOnTyping:!0})}var yi=36,bi=92,xi=40,Si=/^\$\$([^$]*?[^\\])\$\$/,Ci=/^\$((?:[^\s\\])|(?:\S.*?[^\s\\]))\$(?!\d)/,wi=/^\\\((.+?)\\\)/,Ti=/^\$\$([^$]*?[^\\])\$\$(?:[ \t]*\([^)\s]+?\))?(?=[ \t]*(?:\n|$))/,Ei=/^\\\[([\s\S]+?)\\\](?:[ \t]*\([^)$\r\n]+?\))?(?=[ \t]*(?:\n|$))/;function Di(e,t,n){if(t===yi){if(n>e.offset&&e.char(n-1)===bi)return-1;let t=e.slice(n,e.end),r=(t.charCodeAt(1)===yi?Si:Ci).exec(t);return r?e.addElement(e.elt(`InlineMath`,n,n+r[0].length,[e.elt(`MathMark`,n,n+(r[0].startsWith(`$$`)?2:1)),e.elt(`MathMark`,n+r[0].length-(r[0].startsWith(`$$`)?2:1),n+r[0].length)])):-1}if(t===bi&&e.char(n+1)===xi){let t=wi.exec(e.slice(n,e.end));if(!t)return-1;let r=n+t[0].length;return e.addElement(e.elt(`InlineMath`,n,r,[e.elt(`MathMark`,n,n+2),e.elt(`MathMark`,r-2,r)]))}return-1}var Oi=2e4;function ki(e,t){let n=t.text.slice(t.pos),r=n.startsWith(`$$`)?Ti:n.startsWith(`\\[`)?Ei:null;if(!r)return!1;let i=e.lineStart+t.pos,a=e.input,o=r.exec(a.read(i,Math.min(a.length,i+Oi)));if(!o)return!1;let s=i+o[0].length;for(;e.lineStart+t.text.length<s&&e.nextLine(););return e.addElement(e.elt(`BlockMath`,i,s)),e.nextLine(),!0}var Ai={defineNodes:[{name:`InlineMath`,style:F.special(F.content)},{name:`BlockMath`,block:!0,style:F.special(F.content)},{name:`MathMark`,style:F.processingInstruction}],parseInline:[{name:`InlineMath`,parse:Di,before:`Escape`}],parseBlock:[{name:`BlockMath`,parse:ki,before:`FencedCode`}]};function ji(e){let t;return(t=/^\$\$([\s\S]*?)\$\$/.exec(e))||(t=/^\\\[([\s\S]*?)\\\]/.exec(e))?{tex:t[1],display:!0}:(t=/^\\\(([\s\S]*?)\\\)$/.exec(e))||(t=/^\$([\s\S]*?)\$$/.exec(e))?{tex:t[1],display:!1}:{tex:e,display:!1}}var Mi=class extends P{eq(){return!0}toDOM(){let e=document.createElement(`span`);return e.className=`cm-lp-bullet`,e.textContent=`•`,e}},Ni=class extends P{eq(){return!0}toDOM(){let e=document.createElement(`span`);return e.className=`cm-lp-hr`,e}},Pi=class extends P{name;constructor(e){super(),this.name=e}eq(e){return e.name===this.name}toDOM(){let e=document.createElement(`span`);return e.className=`cm-lp-lang`,e.textContent=this.name,e}},Fi=class extends P{source;constructor(e){super(),this.source=e}eq(e){return e.source===this.source}toDOM(){let e=document.createElement(`span`);e.className=`cm-lp-imaths`;let{tex:t,display:n}=ji(this.source);return e.innerHTML=Te.renderToString(t,{displayMode:n,throwOnError:!1}),e}},Q=I.replace({}),Ii=I.replace({widget:new Mi}),Li=I.replace({widget:new Ni}),$=e=>I.mark({class:e}),Ri=e=>I.line({class:e});function zi(e,t){let n=new Set;if(!t)return n;for(let t of e.selection.ranges){let r=e.doc.lineAt(t.from).number,i=e.doc.lineAt(t.to).number;for(let e=r;e<=i;e++)n.add(e)}return n}function Bi(e){let{state:t}=e,n=zi(t,e.hasFocus),r=e=>n.has(t.doc.lineAt(e).number),i=[],a=(e,n,r)=>{for(let a=t.doc.lineAt(e).number,o=t.doc.lineAt(n).number;a<=o;a++)i.push(Ri(r).range(t.doc.line(a).from))},o=e.visibleRanges;if(o.length){let e=o[0].from,s=o[o.length-1].to,c=/^ {0,3}([-*_])(?: *\1){2,} *$/,l=t.doc.lineAt(e).number,u=t.doc.lineAt(s).number,d=e=>e>=1&&e<=t.doc.lines?t.doc.line(e).text:``;for(let e=l;e<=u;e++){let r=t.doc.line(e);if(r.length!==0||/Code|Math|HTML|Comment/.test(j(t).resolveInner(r.from,1).name))continue;let a=e>1&&t.doc.line(e-1).length===0&&!n.has(e),o=c.test(d(e-1))||c.test(d(e+1));i.push(Ri(a?`cm-lp-gap cm-lp-gap-more`:o?`cm-lp-gap cm-lp-gap-rule`:`cm-lp-gap`).range(r.from))}j(t).iterate({from:e,to:s,enter:e=>{let n=e.name,o=/^(?:ATX|Setext)Heading(\d)$/.exec(n);if(o)a(e.from,e.to,`cm-lp-h${o[1]}`);else switch(n){case`HeaderMark`:{if(r(e.from))break;if((e.node.parent?.name??``).startsWith(`SetextHeading`)){i.push(Q.range(t.doc.lineAt(e.from).from,e.to));break}let n=t.sliceDoc(e.to,e.to+1)===` `?e.to+1:e.to;n>e.from&&i.push(Q.range(e.from,n));break}case`EmphasisMark`:case`StrikethroughMark`:r(e.from)||i.push(Q.range(e.from,e.to));break;case`Emphasis`:i.push($(`cm-lp-em`).range(e.from,e.to));break;case`StrongEmphasis`:i.push($(`cm-lp-strong`).range(e.from,e.to));break;case`Strikethrough`:i.push($(`cm-lp-strike`).range(e.from,e.to));break;case`InlineCode`:if(i.push($(`cm-lp-code`).range(e.from,e.to)),!r(e.from)){let t=e.node;for(let e=t.firstChild;e;e=e.nextSibling)e.name===`CodeMark`&&i.push(Q.range(e.from,e.to))}return!1;case`InlineMath`:return r(e.from)?i.push($(`cm-lp-mathsrc`).range(e.from,e.to)):i.push(I.replace({widget:new Fi(t.sliceDoc(e.from,e.to))}).range(e.from,e.to)),!1;case`BlockMath`:case`Table`:return a(e.from,e.to,`cm-lp-codeblock`),!1;case`Link`:{let n=e.node,a=[],o=!1;for(let e=n.firstChild;e;e=e.nextSibling)e.name===`LinkMark`&&a.push(e),e.name===`URL`&&(o=!0);let s=a[0],c=a[1],l=n.getChild(`URL`),u=l?t.sliceDoc(l.from,l.to):``,d=u.startsWith(`code:`),f=/^https?:/i.test(u),p=d?t.facet(Vi)(u)?`cm-lp-link cm-lp-codelink cm-lp-broken`:`cm-lp-link cm-lp-codelink`:f?`cm-lp-link cm-lp-weblink`:`cm-lp-link`;s&&c&&c.from>s.to&&i.push((d?I.mark({class:p,attributes:{title:t.facet(Vi)(u)?`${u.slice(5)}: not in the repository`:u.slice(5)}}):$(p)).range(s.to,c.from)),!r(e.from)&&o&&s&&c&&(i.push(Q.range(s.from,s.to)),i.push(Q.range(c.from,e.to)));break}case`ListMark`:{let n=t.sliceDoc(e.from,e.to);!r(e.from)&&/^[-*+]$/.test(n)?i.push(Ii.range(e.from,e.to)):i.push($(`cm-lp-listmark`).range(e.from,e.to));break}case`TaskMarker`:i.push($(`cm-lp-task`).range(e.from,e.to));break;case`Blockquote`:a(e.from,e.to,`cm-lp-quote`);break;case`QuoteMark`:if(!r(e.from)){let n=t.sliceDoc(e.to,e.to+1)===` `?e.to+1:e.to;i.push(Q.range(e.from,n))}break;case`HorizontalRule`:r(e.from)||(i.push(Li.range(e.from,e.to)),a(e.from,e.to,`cm-lp-ruleline`));break;case`FencedCode`:{a(e.from,e.to,`cm-lp-codeblock`);let n=e.node,o=t.doc.lineAt(e.from),s=t.doc.lineAt(e.to),c=n.getChild(`CodeInfo`),l=n.lastChild?.name===`CodeMark`&&n.lastChild.from>=s.from?n.lastChild:null;if(!r(o.from)){i.push(Ri(`cm-lp-fence`).range(o.from));let e=c?t.sliceDoc(c.from,c.to).trim().split(/\s/)[0]:``;i.push((e?I.replace({widget:new Pi(e)}):Q).range(o.from,o.to))}return l&&s.number>o.number&&!r(s.from)&&(i.push(Ri(`cm-lp-fence`).range(s.from)),s.to>s.from&&i.push(Q.range(s.from,s.to))),!1}case`CodeBlock`:return a(e.from,e.to,`cm-lp-codeblock`),!1;case`HTMLBlock`:case`CommentBlock`:return a(e.from,e.to,`cm-lp-codeblock`),!1}}})}i.sort((e,t)=>e.from-t.from||e.value.startSide-t.value.startSide);let s=new qe;for(let e of i)s.add(e.from,e.to,e.value);return s.finish()}var Vi=Ue.define({combine:e=>e[0]??(()=>!1)}),Hi=Le.fromClass(class{decorations;constructor(e){this.decorations=Bi(e)}update(e){(e.docChanged||e.viewportChanged||e.selectionSet||e.focusChanged||j(e.startState)!==j(e.state))&&(this.decorations=Bi(e.view))}},{decorations:e=>e.decorations}),Ui=M.theme({".cm-scroller":{fontFamily:`var(--font-text)`,fontSize:`var(--text-size)`,lineHeight:`1.55`},".cm-lp-gap":{lineHeight:`20px`},".cm-lp-gap-rule":{lineHeight:`10px`},".cm-lp-gap-more":{lineHeight:`4px`},".cm-lp-ruleline":{lineHeight:`12px`},".cm-content":{fontVariationSettings:`"opsz" 18`},".cm-lp-h1, .cm-lp-h2, .cm-lp-h3, .cm-lp-h4, .cm-lp-h5, .cm-lp-h6":{fontWeight:`600`,lineHeight:`1.3`,fontVariationSettings:`"opsz" 36`,paddingTop:`.5em !important`},".cm-lp-h1":{fontSize:`26px`},".cm-lp-h2":{fontSize:`22px`},".cm-lp-h3":{fontSize:`19px`},".cm-lp-h4":{fontSize:`17px`,fontWeight:`700`},".cm-lp-em":{fontStyle:`italic`},".cm-lp-strong":{fontWeight:`700`},".cm-lp-strike":{textDecoration:`line-through`},".cm-lp-code":{fontFamily:`var(--font-mono)`,fontSize:`.86em`,background:`color-mix(in srgb, var(--text) 8%, transparent)`,padding:`.1em .2em`},".cm-lp-link":{color:`var(--lattice)`,textDecoration:`underline`,textUnderlineOffset:`2px`},".cm-lp-weblink":{textDecorationStyle:`dotted`},".cm-lp-codelink":{fontFamily:`var(--font-mono)`,fontSize:`.86em`,textDecoration:`none`,borderBottom:`1px solid color-mix(in srgb, var(--lattice) 50%, transparent)`},".cm-lp-broken":{color:`var(--rose)`,textDecoration:`line-through`,borderBottomColor:`transparent`},".cm-lp-bullet":{color:`var(--text-faint)`,display:`inline-block`,minWidth:`1ch`},".cm-lp-listmark, .cm-lp-task":{color:`var(--text-faint)`,fontFamily:`var(--font-mono)`},".cm-lp-quote":{borderLeft:`3px solid var(--lattice)`,paddingLeft:`14px !important`,color:`var(--text-soft)`},".cm-lp-codeblock":{fontFamily:`var(--font-mono)`,fontSize:`13px`,lineHeight:`20px`,background:`color-mix(in srgb, var(--line) 38%, transparent)`,borderLeft:`2px solid var(--line-strong)`,padding:`0 16px !important`},".cm-lp-codeblock.cm-lp-fence":{lineHeight:`12px`,position:`relative`},".cm-lp-lang":{position:`absolute`,top:`8px`,right:`12px`,fontFamily:`var(--font-ui)`,fontSize:`12px`,lineHeight:`16px`,color:`var(--text-faint)`,pointerEvents:`none`},".cm-lp-mathsrc":{fontFamily:`var(--font-mono)`,fontSize:`.86em`,color:`var(--text-soft)`},".cm-lp-imaths .katex":{fontSize:`1.05em`},".cm-lp-imaths .katex-display":{margin:`0`,padding:`6px 0`},".cm-lp-imaths .katex-display > .katex":{fontSize:`1.17em`},".cm-lp-hr":{display:`inline-block`,width:`100%`,borderTop:`1px solid var(--line)`,verticalAlign:`middle`}});function Wi(e){let t=e.split(`#`)[0];return t.startsWith(`/`)&&t.endsWith(`.md`)?t.slice(1,-3):null}var Gi=L.define(),Ki=L.define(),qi=[R.define({create:()=>I.none,update(e,t){for(let e of t.effects){if(!e.is(Ki))continue;let n=t.state.doc,r=e.value;if(!r)return I.none;let i=I.line({class:`cm-touched cm-touched-${r.who}`});return I.set([...new Set(r.lines)].filter(e=>e>=0&&e<n.lines&&n.line(e+1).text.trim()!==``).sort((e,t)=>e-t).map(e=>i.range(n.line(e+1).from)))}return t.docChanged?e.map(t.changes):e},provide:e=>M.decorations.from(e)}),M.theme({".cm-line.cm-touched-you":{background:`var(--lattice-soft)`,boxShadow:`-10px 0 0 var(--lattice-soft), -13px 0 0 var(--lattice), 10px 0 0 var(--lattice-soft)`},".cm-line.cm-touched-iso":{background:`var(--growth-soft)`,boxShadow:`-10px 0 0 var(--growth-soft), -13px 0 0 var(--growth), 10px 0 0 var(--growth-soft)`}})],Ji=L.define(),Yi=class extends P{key;mount;block;down=null;watch=null;constructor(e,t,n){super(),this.key=e,this.mount=t,this.block=n}eq(e){return e.key===this.key&&e.block===this.block}toDOM(e){let t=document.createElement(this.block?`div`:`span`);return t.className=this.block?`cm-overlay`:`cm-iso-change`,t.contentEditable=`false`,this.down=this.mount(t,this.key),this.watch=new ResizeObserver(()=>e.requestMeasure()),this.watch.observe(t),t}destroy(){this.watch?.disconnect(),this.watch=null,this.down?.(),this.down=null}ignoreEvent(){return!0}get estimatedHeight(){return this.block?120:-1}};function Xi(e){return[R.define({create:()=>I.none,update(t,n){for(let t of n.effects){if(!t.is(Gi))continue;let r=n.state.doc;return I.set(t.value.map(t=>{let n=t.line>=r.lines,i=n?r.length:r.line(Math.max(1,t.line+1)).from;return I.widget({widget:new Yi(t.key,e,!0),block:!0,side:n?1:-1}).range(i)}),!0)}return n.docChanged?t.map(n.changes):t},provide:e=>M.decorations.from(e)}),R.define({create:()=>I.none,update(t,n){for(let t of n.effects){if(!t.is(Ji))continue;let r=n.state.doc.length,i=[];for(let e of t.value.marks){let t=Math.max(0,Math.min(r,e.from)),n=Math.max(0,Math.min(r,e.to));n>t&&i.push(I.mark({class:`cm-iso-${e.kind}`}).range(t,n))}for(let n of t.value.inline)i.push(I.widget({widget:new Yi(n.key,e,!1),side:1}).range(Math.max(0,Math.min(r,n.at))));return I.set(i,!0)}return n.docChanged?t.map(n.changes):t},provide:e=>M.decorations.from(e)}),M.theme({".cm-overlay":{cursor:`default`,userSelect:`text`,padding:`10px 0`,display:`flow-root`,whiteSpace:`normal`},".cm-iso-picked":{background:`var(--lattice-soft)`,boxShadow:`inset 0 -2px 0 var(--lattice)`,cursor:`pointer`},".cm-iso-old":{textDecoration:`line-through`,textDecorationColor:`var(--text-faint)`,color:`var(--text-faint)`},".cm-iso-old *":{color:`var(--text-faint) !important`},".cm-iso-change":{cursor:`default`},".cm-iso-by-iso":{background:`var(--growth-soft)`,boxShadow:`inset 0 -1.5px 0 var(--growth)`},".cm-iso-given":{textDecoration:`underline dashed var(--growth)`,textUnderlineOffset:`4px`,textDecorationThickness:`1.5px`}})]}function Zi(e){let t=e.split(`#`)[0].split(`?`)[0];return!t.startsWith(`/`)||t.startsWith(`//`)?null:t.endsWith(`.md`)?{id:decodeURIComponent(t.slice(1,-3)),folder:!1}:t.endsWith(`/`)&&t.length>1?{id:decodeURIComponent(t.slice(1,-1)),folder:!0}:null}var Qi=L.define(),$i=I.mark({class:`cm-pointed`});function ea(e,t){if(!t)return I.none;let n=[];return j(e).iterate({enter:r=>{if(r.name!==`Link`)return;let i=J(e,r.from+1);return i&&!i.embed&&i.from===r.from&&Zi(i.url)?.id===t&&n.push($i.range(i.from,i.to)),!1}}),I.set(n)}var ta=R.define({create:()=>({id:``,marks:I.none}),update(e,t){let n=e.id;for(let e of t.effects)e.is(Qi)&&(n=e.value);return n!==e.id||n&&t.docChanged?{id:n,marks:ea(t.state,n)}:e},provide:e=>M.decorations.from(e,e=>e.marks)}),na=M.theme({".cm-pointed":{backgroundColor:`var(--lattice-soft)`,boxShadow:`0 2px 0 var(--lattice)`}});function ra(e){if(!e)return[ta,na];let t=``,n=n=>{let r=n?`${n.folder?`d`:`n`}:${n.id}`:``;r!==t&&(t=r,e(n))};return[ta,na,M.domEventHandlers({pointermove(e,t){if(e.pointerType!==`mouse`)return!1;let r=t.posAtCoords({x:e.clientX,y:e.clientY},!1),i=r===null?null:J(t.state,r);return n(i&&!i.embed?Zi(i.url):null),!1},pointerleave(){return n(null),!1}})]}var ia=M.theme({".cm-scroller":{fontFamily:`var(--font-mono)`,fontSize:`14px`,lineHeight:`1.6`}}),aa=M.theme({"&":{color:`var(--text)`,backgroundColor:`transparent`,fontSize:`16px`},"&.cm-focused":{outline:`none`},".cm-scroller":{overflow:`visible`},".cm-content":{padding:`12px 0 40vh`,caretColor:`var(--lattice)`},".cm-line":{padding:`0 2px`},".cm-cursor, .cm-dropCursor":{borderLeftColor:`var(--lattice)`,borderLeftWidth:`2px`},".cm-selectionBackground":{backgroundColor:`color-mix(in srgb, var(--lattice) 22%, transparent) !important`},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection":{backgroundColor:`color-mix(in srgb, var(--lattice) 40%, transparent) !important`},".cm-placeholder":{color:`var(--text-faint)`},".cm-tooltip-autocomplete":{background:`var(--ground-1)`,border:`1px solid var(--line-strong)`,fontFamily:`var(--font-ui)`,fontSize:`13px`},".cm-tooltip.cm-tooltip-autocomplete > ul":{fontFamily:`var(--font-ui)`,maxHeight:`16em`},".cm-tooltip-autocomplete > ul > li":{padding:`6px 10px !important`,lineHeight:`1.3`},".cm-tooltip-autocomplete > ul > li[aria-selected]":{background:`var(--lattice-soft)`,color:`var(--text)`},".cm-completionDetail":{color:`var(--text-faint)`,fontStyle:`normal`,marginLeft:`10px`}}),oa=Qe.define([{tag:F.heading,fontWeight:`700`,color:`var(--text)`},{tag:F.strong,fontWeight:`700`},{tag:F.emphasis,fontStyle:`italic`},{tag:F.strikethrough,textDecoration:`line-through`},{tag:[F.link,F.url],color:`var(--lattice)`},{tag:[F.processingInstruction,F.punctuation,F.contentSeparator],color:`var(--text-faint)`},{tag:F.monospace,color:`var(--text-soft)`},{tag:F.quote,color:`var(--text-soft)`,fontStyle:`italic`}]);function sa(e){let t=e.selection.main;return{line:e.doc.lineAt(t.to).number-1,from:t.from,to:t.to}}function ca(e,t){let n=We.create({doc:t.doc,extensions:[jt(),Be(),M.lineWrapping,Ce({base:pe,extensions:[Ai],completeHTMLTags:!1,codeLanguages:be}),Pe(oa),Pe(de),aa,...t.source?[ia]:[Hi,Ui,Ur,Wr,hi,...t.embeds?[Nr.of(t.embeds)]:[],...t.codeBroken?[Vi.of(t.codeBroken)]:[]],ct(),We.languageData.of(()=>[{closeBrackets:{brackets:[`(`,`[`]}}]),...t.mountOverlay?[Xi(t.mountOverlay)]:[],qi,ra(t.onPoint),...t.readOnly?[We.readOnly.of(!0),M.editable.of(!1)]:[],vi(t.notes),Ie(t.placeholder??`Write the note here. # for a heading, [[ to link to another note, $x$ for maths.`),M.contentAttributes.of({"aria-label":t.label,spellcheck:`true`,autocapitalize:`sentences`,autocorrect:`on`}),Ne.of([{key:`Mod-s`,preventDefault:!0,run:()=>(t.onSave(),!0)},{key:`Mod-Enter`,preventDefault:!0,run:e=>(t.onAsk?.(sa(e.state)),!!t.onAsk)},...Xr,...it,...st,Mr,...jr,...Jt]),M.domEventHandlers((()=>{let e=(e,n)=>{if(!t.picking?.())return;let r=e.state.selection,i=r.ranges.filter(e=>!e.empty).map(e=>({from:e.from,to:e.to}));i.length?(t.onPick?.(i),setTimeout(()=>e.dispatch({selection:{anchor:Math.min(r.main.head,e.state.doc.length)}}),0)):n&&t.onUnpick?.(r.main.head)};return{mouseup:(t,n)=>(e(n,t.detail===1),!1),touchend:(t,n)=>(e(n,!1),!1),keyup:(t,n)=>(t.key===`Shift`&&e(n,!1),!1)}})()),M.domEventHandlers({mousedown(e,n){if(!t.onFollow||!(e.ctrlKey||e.metaKey)||e.button!==0)return!1;let r=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=r===null?null:J(n.state,r),a=i&&!i.embed?Wi(i.url):null;return a!==null&&(e.preventDefault(),t.onFollow(a),!0)}}),M.updateListener.of(e=>{e.docChanged&&t.onChange(e.state.doc.toString()),t.onCursor&&(e.selectionSet||e.docChanged)&&t.onCursor(sa(e.state))})]});return new M({state:n,parent:e})}function la(e,t){if(t===e.state.doc.toString())return;let n=Math.min(e.state.selection.main.head,t.length);e.dispatch({changes:{from:0,to:e.state.doc.length,insert:t},selection:{anchor:n}})}var ua=S(`<span class="soft picked svelte-192cp36" role="status"> </span>`),da=S(`<div class="between svelte-192cp36"><!> <div class="ask svelte-192cp36"><i class="dia open svelte-192cp36" aria-hidden="true"></i> <textarea rows="1" aria-label="Ask Iso" class="svelte-192cp36"></textarea></div> <div class="foot svelte-192cp36"><span class="grow"></span> <button class="link faint svelte-192cp36" type="button">cancel</button> <button class="btn primary" type="button">ask Iso</button></div></div>`),fa=S(`<div class="prose said svelte-192cp36"></div>`),pa=S(`<span class="faint"> </span>`),ma=S(`<div class="between working svelte-192cp36" aria-live="polite"><!> <div class="foot svelte-192cp36"><i class="dia svelte-192cp36" aria-hidden="true"></i> <span class="soft doing svelte-192cp36"> <!></span> <span class="grow"></span> <button class="link svelte-192cp36" type="button">stop</button></div></div>`),ha=S(`<div class="between stopped svelte-192cp36" role="alert"><p class="bad svelte-192cp36"> </p> <div class="foot svelte-192cp36"><span class="grow"></span><button class="link svelte-192cp36" type="button">dismiss</button></div></div>`),ga=S(`<p class="soft lost svelte-192cp36"><span class="strike svelte-192cp36"> </span> </p>`),_a=S(`<div class="between stopped svelte-192cp36"><p class="label"> </p> <!> <div class="foot svelte-192cp36"><span class="grow"></span><button class="btn remove" type="button">remove</button></div></div>`),va=S(`<p class="label">The place this was written for is no longer in the note, so it is shown here. Keeping it adds it at the end.</p>`),ya=S(`<textarea class="revision svelte-192cp36" aria-label="Iso's text, to edit"></textarea>`),ba=S(`<p class="label"> </p>`),xa=S(`<button class="btn edit" type="button">done</button>`),Sa=S(`<button class="btn edit" type="button">edit</button>`),Ca=S(`<div class="between svelte-192cp36"><!> <!> <!> <div class="foot svelte-192cp36"><i class="dia svelte-192cp36" aria-hidden="true"></i> <span class="grow"></span> <button class="btn keep" type="button">keep</button> <!> <button class="btn remove" type="button">remove</button></div></div>`);function wa(n,i){T(i,!0);let l=x(i,`iso`,7),u=D(()=>i.key.startsWith(`p:`)?l().proposals.find(e=>e.id===i.key.slice(2)):void 0),b=D(()=>c(u)&&l().editing?.id===c(u).id?l().editing:null),S=D(()=>!!c(u)&&l().busy===c(u)?.id),w=D(()=>l().changes.filter(e=>!e.at)),O=e(``),k=e(void 0);m(()=>{i.key===`prompt`&&ae().then(()=>c(k)?.focus())});let oe=D(()=>l().asking?.steps.at(-1)?.said??``),se=D(()=>(l().asking?.regions.length??0)>0),ce=D(()=>l().prompt?.mode===`rewrite`),le=D(()=>l().prompt?.regions.length??0),ue=D(()=>!!c(O).trim()&&(!c(ce)||c(le)>0));function de(e){e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),l().ask(c(O))):e.key===`Escape`&&(e.preventDefault(),l().prompt=null)}var fe=t(),pe=s(fe),me=e=>{var t=da(),n=E(t),i=e=>{var t=ua(),n=g(t,!0);o(()=>r(n,c(le)===0?`select text in the note to rewrite`:`rewriting ${c(le)} ${c(le)===1?`passage`:`passages`} · select more, or click one to drop it`)),C(e,t)};p(n,e=>{c(ce)&&e(i)});var s=h(n,2),u=h(E(s),2);te(u),ne(u,e=>d(k,e),()=>c(k)),y(s);var f=h(s,2),m=h(E(f),2),_=h(m,2);y(f),y(t),o(()=>{ee(u,`placeholder`,c(ce)?`how should Iso rewrite it?`:`what should Iso write here?`),_.disabled=!c(ue)}),a(`keydown`,u,de),re(u,()=>c(O),e=>d(O,e)),a(`click`,m,()=>l().prompt=null),a(`click`,_,()=>l().ask(c(O))),C(e,t)},he=e=>{var t=ma(),n=E(t),i=e=>{var t=fa();ie(t,()=>ge(l().asking.text),!0),y(t),_(t,(e,t)=>we?.(e,t),()=>l().asking.text),C(e,t)};p(n,e=>{l().asking.text&&!c(se)&&e(i)});var s=h(n,2),u=h(E(s),2),d=E(u,!0),f=h(d),m=e=>{var t=pa(),n=g(t);o(()=>r(n,`· ${c(oe)??``}`)),C(e,t)};p(f,e=>{c(oe)&&e(m)}),y(u);var v=h(u,4);y(s),y(t),o(()=>r(d,l().asking.text?c(se)?`Iso is rewriting`:`Iso is writing`:`Iso is thinking`)),a(`click`,v,()=>l().halt()),C(e,t)},_e=e=>{var t=ha(),n=E(t),i=g(n,!0),s=h(n,2),c=h(E(s));y(s),y(t),o(()=>r(i,l().failed.message)),a(`click`,c,()=>l().failed=null),C(e,t)},ve=e=>{var t=_a(),n=E(t),i=g(n),s=h(n,2);f(s,17,()=>c(w),e=>e.key,(e,t)=>{var n=ga(),i=E(n),a=g(i,!0),s=h(i);y(n),o((e,t)=>{r(a,e),r(s,` → ${t??``}`)},[()=>c(t).proposal.regions[c(t).k].old.text.trim(),()=>c(t).proposal.regions[c(t).k].new.trim()||`(taken out)`]),C(e,n)});var u=h(s,2),d=h(E(u));y(u),y(t),o(()=>r(i,`${c(w).length===1?`One change Iso offered is`:`${c(w).length} changes Iso offered are`} for text that is no longer in the note as it was, so ${c(w).length===1?`it`:`they`} cannot be kept.`)),a(`click`,d,()=>{for(let e of c(w))l().discardChange(e)}),C(e,t)},ye=e=>{var t=Ca(),n=E(t),i=e=>{var t=va();C(e,t)},s=D(()=>!l().placed(c(u)));p(n,e=>{c(s)&&e(i)});var d=h(n,2),f=e=>{var t=ya();te(t),o(e=>ee(t,`rows`,e),[()=>Math.max(3,c(b).text.split(`
6
+ `).length+1)]),re(t,()=>c(b).text,e=>c(b).text=e),C(e,t)},m=e=>{var t=fa();ie(t,()=>ge(c(u).text),!0),y(t),_(t,(e,t)=>we?.(e,t),()=>({given:c(u).text,copy:!0})),C(e,t)};p(d,e=>{c(b)?e(f):e(m,-1)});var v=h(d,2),x=e=>{var t=ba(),n=g(t,!0);o(()=>r(n,c(u).notice)),C(e,t)};p(v,e=>{c(u).notice&&e(x)});var w=h(v,2),T=h(E(w),4),ne=h(T,2),ae=e=>{var t=xa();a(`click`,t,()=>l().done(c(u))),C(e,t)},O=e=>{var t=Sa();o(()=>t.disabled=c(S)),a(`click`,t,()=>l().edit(c(u))),C(e,t)};p(ne,e=>{c(b)?e(ae):e(O,-1)});var k=h(ne,2);y(w),y(t),o(()=>{ee(t,`data-proposal`,c(u).id),T.disabled=c(S),k.disabled=c(S)}),a(`click`,T,()=>l().keep(c(u))),a(`click`,k,()=>l().discard(c(u))),C(e,t)};p(pe,e=>{i.key===`prompt`?e(me):i.key===`asking`&&l().asking?e(he,1):i.key===`failed`&&l().failed?e(_e,2):i.key===`lost`&&c(w).length?e(ve,3):c(u)&&e(ye,4)}),C(n,fe),v()}u([`keydown`,`click`]);var Ta=S(`<span class="label who svelte-1o10yjh"> </span>`),Ea=S(`<!> <span class="act svelte-1o10yjh"><button class="keep svelte-1o10yjh" type="button" aria-label="Keep this change">keep</button><button class="remove svelte-1o10yjh" type="button" aria-label="Remove this change">remove</button></span>`,1),Da=S(`<span class="gone svelte-1o10yjh">the passage above is taken out</span>`),Oa=S(`<pre class="new svelte-1o10yjh"> </pre>`),ka=S(`<div class="new prose svelte-1o10yjh"></div>`),Aa=S(`<div><!> <div class="foot svelte-1o10yjh"><i class="dia svelte-1o10yjh" aria-hidden="true"></i><span class="label">in place of the lines struck through above</span><span class="grow"></span><!></div></div>`),ja=S(`<span class="new svelte-1o10yjh"></span>`),Ma=S(`<span class="gone svelte-1o10yjh">taken out</span>`),Na=S(`<span class="change svelte-1o10yjh"><!> <!></span>`);function Pa(e,n){T(n,!0);let i=e=>{var t=Ea(),i=s(t),u=e=>{var t=Ta(),n=g(t,!0);o(()=>{ee(t,`title`,c(l)?.proposal.asked),r(n,c(x))}),C(e,t)};p(i,e=>{c(x)&&e(u)});var f=h(i,2),m=E(f),_=h(m);y(f),o(()=>{m.disabled=c(d),_.disabled=c(d)}),a(`click`,m,()=>c(l)&&n.iso.keepChange(c(l))),a(`click`,_,()=>c(l)&&n.iso.discardChange(c(l))),C(e,t)},l=D(()=>n.iso.changes.find(e=>e.key===n.key)),u=D(()=>c(l)?c(l).proposal.regions[c(l).k].new:``),d=D(()=>n.iso.busy===n.key||n.iso.busy===`all`),f=D(()=>ge(c(u).trim())),m=D(()=>c(f).replace(/^<p>([\s\S]*)<\/p>\s*$/,`$1`)),x=D(()=>c(l)?he(c(l).proposal.who):``);var S=t(),w=s(S),te=e=>{var t=Aa();let a;var s=E(t),d=e=>{var t=Da();C(e,t)},m=D(()=>!c(u).trim()),v=e=>{var t=Oa(),n=g(t,!0);o(e=>r(n,e),[()=>c(u).replace(/^\n+|\s+$/g,``)]),C(e,t)},x=e=>{var t=ka();ie(t,()=>c(f),!0),y(t),_(t,(e,t)=>we?.(e,t),()=>c(f)),C(e,t)};p(s,e=>{c(m)?e(d):c(l).code?e(v,1):e(x,-1)});var S=h(s,2),w=h(E(S),3);i(w),y(S),y(t),o(()=>{a=b(t,1,`change block svelte-1o10yjh`,null,a,{code:c(l).code}),ee(t,`data-change`,n.key)}),C(e,t)},ne=e=>{var t=Na(),r=E(t),a=e=>{var t=ja();ie(t,()=>c(m),!0),y(t),C(e,t)},s=D(()=>c(u).trim()),l=e=>{var t=Ma();C(e,t)};p(r,e=>{c(s)?e(a):e(l,-1)});var d=h(r,2);i(d),y(t),o(()=>ee(t,`data-change`,n.key)),C(e,t)};p(w,e=>{c(l)?.block?e(te):c(l)&&e(ne,1)}),C(e,S),v()}u([`click`]);var Fa=S(`<div></div>`);function Ia(t,r){T(r,!0);let a=x(r,`iso`,7),s=x(r,`touched`,3,null),u=x(r,`lens`,19,()=>[]),f,p=e(void 0),h=D(()=>r.source||!a()?{lines:0,chars:0}:a().head),g=D(()=>{if(!a())return{blocks:[],marks:[],inline:[]};let e=e=>t=>({kind:e,from:t.from-c(h).chars,to:t.to-c(h).chars});return{blocks:a().layout.blocks.map(e=>({key:e.key,line:Math.max(0,e.line-c(h).lines)})).sort((e,t)=>e.line-t.line),marks:[...a().layout.picked.map(e(`picked`)),...a().layout.old.map(e(`old`)),...u().map(t=>e(t.kind)(t))].filter(e=>e.to>0),inline:a().layout.inline.map(e=>({key:e.key,at:e.at-c(h).chars})).filter(e=>e.at>=0)}});w(()=>{let e=ca(f,{doc:r.source?r.note.text:r.note.body,source:r.source,label:r.source?`The note's file`:`The note`,notes:()=>A.listing.notes.filter(e=>e.id!==r.note.id).map(e=>({id:e.id,title:e.title,folder:e.dir})),onChange:e=>r.source?r.note.setText(e):r.note.setBody(e),onSave:()=>{r.note.save()},onFollow:e=>{O(Ae(e))},embeds:{find:ke,open:e=>{O(Ae(e))}},onPoint:e=>me.set(`note`,e?{...e,who:`you`}:null),codeBroken:e=>A.listing.notes.find(e=>e.id===r.note.id)?.broken?.includes(e)??!1,...a()?{onAsk:e=>{let t=r.note.text.slice(e.from+c(h).chars,e.to+c(h).chars).trim();t&&ve.add({kind:`passage`,id:r.note.id,title:r.note.fields.title||r.note.id,text:t}),Me.to(`iso`),requestAnimationFrame(()=>document.getElementById(`iso-box`)?.focus())},onCursor:e=>{a().cursor={line:e.line+c(h).lines,from:e.from+c(h).chars,to:e.to+c(h).chars}},picking:()=>a().picking,onPick:e=>a().pick(e.map(e=>({from:e.from+c(h).chars,to:e.to+c(h).chars}))),onUnpick:e=>a().unpick(e+c(h).chars),mountOverlay:(e,t)=>{let n=i(t.startsWith(`r:`)?Pa:wa,{target:e,props:{iso:a(),key:t}});return()=>{l(n)}}}:{placeholder:n(()=>r.placeholder)??`Write what you understand, what you do not, and what you want from Iso. [[ links a note it should rest on.`}});return d(p,e),()=>{e.destroy(),me.set(`note`,null)}}),m(()=>{r.note.revision,n(()=>{c(p)&&la(c(p),r.source?r.note.text:r.note.body)})}),m(()=>{let e=s(),t=c(h).lines;c(p)&&c(p).dispatch({effects:Ki.of(e?{who:e.who,lines:e.lines.map(e=>e-t)}:null)})}),m(()=>{let e=me.onAtlas;c(p)&&c(p).dispatch({effects:Qi.of(e)})}),m(()=>{let{blocks:e,marks:t,inline:n}=c(g);c(p)&&c(p).dispatch({effects:[Gi.of(e),Ji.of({marks:t,inline:n})]})});var _=Fa();let y;ne(_,e=>f=e,()=>f),o(()=>y=b(_,1,`editor svelte-hrl8lz`,null,y,{source:r.source})),C(t,_),v()}export{mt as a,Ki as i,ca as n,lt as o,la as r,Ia as t};
@@ -0,0 +1 @@
1
+ function e(e){var t={as:`keyword`,do:`keyword`,else:`keyword`,end:`keyword`,exception:`keyword`,fun:`keyword`,functor:`keyword`,if:`keyword`,in:`keyword`,include:`keyword`,let:`keyword`,of:`keyword`,open:`keyword`,rec:`keyword`,struct:`keyword`,then:`keyword`,type:`keyword`,val:`keyword`,while:`keyword`,with:`keyword`},n=e.extraWords||{};for(var r in n)n.hasOwnProperty(r)&&(t[r]=e.extraWords[r]);var i=[];for(var a in t)i.push(a);function o(n,r){var i=n.next();if(i===`"`)return r.tokenize=s,r.tokenize(n,r);if(i===`{`&&n.eat(`|`))return r.longString=!0,r.tokenize=l,r.tokenize(n,r);if(i===`(`&&n.match(/^\*(?!\))/))return r.commentLevel++,r.tokenize=c,r.tokenize(n,r);if(i===`~`||i===`?`)return n.eatWhile(/\w/),`variableName.special`;if(i==="`")return n.eatWhile(/\w/),`quote`;if(i===`/`&&e.slashComments&&n.eat(`/`))return n.skipToEnd(),`comment`;if(/\d/.test(i))return i===`0`&&n.eat(/[bB]/)&&n.eatWhile(/[01]/),i===`0`&&n.eat(/[xX]/)&&n.eatWhile(/[0-9a-fA-F]/),i===`0`&&n.eat(/[oO]/)?n.eatWhile(/[0-7]/):(n.eatWhile(/[\d_]/),n.eat(`.`)&&n.eatWhile(/[\d]/),n.eat(/[eE]/)&&n.eatWhile(/[\d\-+]/)),`number`;if(/[+\-*&%=<>!?|@\.~:]/.test(i))return`operator`;if(/[\w\xa1-\uffff]/.test(i)){n.eatWhile(/[\w\xa1-\uffff]/);var a=n.current();return t.hasOwnProperty(a)?t[a]:`variable`}return null}function s(e,t){for(var n,r=!1,i=!1;(n=e.next())!=null;){if(n===`"`&&!i){r=!0;break}i=!i&&n===`\\`}return r&&!i&&(t.tokenize=o),`string`}function c(e,t){for(var n,r;t.commentLevel>0&&(r=e.next())!=null;)n===`(`&&r===`*`&&t.commentLevel++,n===`*`&&r===`)`&&t.commentLevel--,n=r;return t.commentLevel<=0&&(t.tokenize=o),`comment`}function l(e,t){for(var n,r;t.longString&&(r=e.next())!=null;)n===`|`&&r===`}`&&(t.longString=!1),n=r;return t.longString||(t.tokenize=o),`string`}return{startState:function(){return{tokenize:o,commentLevel:0,longString:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{autocomplete:i,commentTokens:{line:e.slashComments?`//`:void 0,block:{open:`(*`,close:`*)`}}}}}var t=e({name:`ocaml`,extraWords:{and:`keyword`,assert:`keyword`,begin:`keyword`,class:`keyword`,constraint:`keyword`,done:`keyword`,downto:`keyword`,external:`keyword`,function:`keyword`,initializer:`keyword`,lazy:`keyword`,match:`keyword`,method:`keyword`,module:`keyword`,mutable:`keyword`,new:`keyword`,nonrec:`keyword`,object:`keyword`,private:`keyword`,sig:`keyword`,to:`keyword`,try:`keyword`,value:`keyword`,virtual:`keyword`,when:`keyword`,raise:`builtin`,failwith:`builtin`,true:`builtin`,false:`builtin`,asr:`builtin`,land:`builtin`,lor:`builtin`,lsl:`builtin`,lsr:`builtin`,lxor:`builtin`,mod:`builtin`,or:`builtin`,raise_notrace:`builtin`,trace:`builtin`,exit:`builtin`,print_string:`builtin`,print_endline:`builtin`,int:`type`,float:`type`,bool:`type`,char:`type`,string:`type`,unit:`type`,List:`builtin`}}),n=e({name:`fsharp`,extraWords:{abstract:`keyword`,assert:`keyword`,base:`keyword`,begin:`keyword`,class:`keyword`,default:`keyword`,delegate:`keyword`,"do!":`keyword`,done:`keyword`,downcast:`keyword`,downto:`keyword`,elif:`keyword`,extern:`keyword`,finally:`keyword`,for:`keyword`,function:`keyword`,global:`keyword`,inherit:`keyword`,inline:`keyword`,interface:`keyword`,internal:`keyword`,lazy:`keyword`,"let!":`keyword`,match:`keyword`,member:`keyword`,module:`keyword`,mutable:`keyword`,namespace:`keyword`,new:`keyword`,null:`keyword`,override:`keyword`,private:`keyword`,public:`keyword`,"return!":`keyword`,return:`keyword`,select:`keyword`,static:`keyword`,to:`keyword`,try:`keyword`,upcast:`keyword`,"use!":`keyword`,use:`keyword`,void:`keyword`,when:`keyword`,"yield!":`keyword`,yield:`keyword`,atomic:`keyword`,break:`keyword`,checked:`keyword`,component:`keyword`,const:`keyword`,constraint:`keyword`,constructor:`keyword`,continue:`keyword`,eager:`keyword`,event:`keyword`,external:`keyword`,fixed:`keyword`,method:`keyword`,mixin:`keyword`,object:`keyword`,parallel:`keyword`,process:`keyword`,protected:`keyword`,pure:`keyword`,sealed:`keyword`,tailcall:`keyword`,trait:`keyword`,virtual:`keyword`,volatile:`keyword`,List:`builtin`,Seq:`builtin`,Map:`builtin`,Set:`builtin`,Option:`builtin`,int:`builtin`,string:`builtin`,not:`builtin`,true:`builtin`,false:`builtin`,raise:`builtin`,failwith:`builtin`},slashComments:!0}),r=e({name:`sml`,extraWords:{abstype:`keyword`,and:`keyword`,andalso:`keyword`,case:`keyword`,datatype:`keyword`,fn:`keyword`,handle:`keyword`,infix:`keyword`,infixr:`keyword`,local:`keyword`,nonfix:`keyword`,op:`keyword`,orelse:`keyword`,raise:`keyword`,withtype:`keyword`,eqtype:`keyword`,sharing:`keyword`,sig:`keyword`,signature:`keyword`,structure:`keyword`,where:`keyword`,true:`keyword`,false:`keyword`,int:`builtin`,real:`builtin`,string:`builtin`,char:`builtin`,bool:`builtin`},slashComments:!0});export{n as fSharp,t as oCaml,r as sml};
@@ -0,0 +1 @@
1
+ var e=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,t=/[\|\!\+\-\*\?\~\^\&]/,n=/^(OR|AND|NOT|TO)$/;function r(e){return parseFloat(e).toString()===e}function i(e){return function(t,n){for(var r=!1,i;(i=t.next())!=null&&(i!=e||r);)r=!r&&i==`\\`;return r||(n.tokenize=s),`string`}}function a(e){return function(t,n){return e==`|`?t.eat(/\|/):e==`&`&&t.eat(/\&/),n.tokenize=s,`operator`}}function o(t){return function(i,a){for(var o=t;(t=i.peek())&&t.match(e)!=null;)o+=i.next();return a.tokenize=s,n.test(o)?`operator`:r(o)?`number`:i.peek()==`:`?`propertyName`:`string`}}function s(n,r){var c=n.next();return c==`"`?r.tokenize=i(c):t.test(c)?r.tokenize=a(c):e.test(c)&&(r.tokenize=o(c)),r.tokenize==s?null:r.tokenize(n,r)}var c={name:`solr`,startState:function(){return{tokenize:s}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}};export{c as solr};
@@ -0,0 +1,5 @@
1
+ import{_ as e,a as t,g as n,i as r,o as i,r as a,s as o,u as s,x as c}from"./CX-xckzu.js";import{i as l}from"./DciMwFJ1.js";import{i as u,t as d}from"./BN6xhG8e.js";import{PeleError as f,h as p,s as m,u as ee}from"./8wVGBFSs.js";var h=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],g=[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`];function _(e){return!Number.isNaN(e.getTime())}function v(e,t){let n=String(e);return n.length>=t?n:`0`.repeat(t-n.length)+n}function te(e){let t=[`th`,`st`,`nd`,`rd`],n=e%100;return e+(t[(n-20)%10]||t[n]||t[0])}function y(e){let t=-Math.round(e.getTimezoneOffset()/15)*15;return t===0?0:t}function b(e){let t=y(e),n=Math.abs(t);return(t>=0?`+`:`-`)+v(Math.floor(n/60),2)+`:`+v(n%60,2)}function x(e){return e.getDay()||7}function S(e,t){let n=new Date(e);return n.setDate(n.getDate()+t),n}function ne(e){let t=new Date(e.getFullYear(),e.getMonth()+1,0);return t.setHours(23,59,59,999),t.getDate()}function re(e,t){let n=new Date(e);return n.setDate(1),t(n),n.setDate(Math.min(e.getDate(),ne(n))),n}function ie(e,t,n){switch(n){case`M`:return re(e,n=>n.setMonth(e.getMonth()+t));case`y`:return re(e,n=>n.setFullYear(e.getFullYear()+t));case`d`:return S(e,Math.round(t));case`w`:return S(e,Math.round(7*t));case`h`:return new Date(e.getTime()+t*36e5);case`m`:return new Date(e.getTime()+t*6e4);case`s`:return new Date(e.getTime()+t*1e3);default:return new Date(e.getTime()+t)}}function ae(e){return S(e,4-x(e))}function oe(e){let t=ae(e),n=new Date(t.getFullYear(),0,1),r=x(n),i=S(n,4-r+(r>4?7:0)),a=(y(i)-y(t))*6e4,o=(t.getTime()-i.getTime()-a)/6048e5;return(o<0?Math.ceil(o)||0:Math.floor(o))+1}var se=/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,ce=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,C=`YYYY-MM-DDTHH:mm:ssZ`;function le(e,t){if(!_(e))return`Invalid Date`;let n=t||C;if(n===`YYYY-MM-DD`)return w(e);let r=!1,i=n.replace(se,t=>{switch(t){case`Q`:return String(Math.ceil((e.getMonth()+1)/3));case`Do`:return`[`+te(e.getDate())+`]`;case`GGGG`:return String(ae(e).getFullYear());case`W`:return String(oe(e));case`WW`:return v(oe(e),2);case`k`:return String(e.getHours()||24);case`kk`:return v(e.getHours()||24,2);case`X`:return String(Math.floor(e.getTime()/1e3));case`x`:return String(e.getTime());case`gggg`:case`wo`:case`w`:case`ww`:case`z`:case`zzz`:return r=!0,t;default:return t}});if(r)return;let a=e.getHours();return i.replace(ce,(t,n)=>{if(n)return n;switch(t){case`YY`:return String(e.getFullYear()).slice(-2);case`YYYY`:return v(e.getFullYear(),4);case`M`:return String(e.getMonth()+1);case`MM`:return v(e.getMonth()+1,2);case`MMM`:return h[e.getMonth()].slice(0,3);case`MMMM`:return h[e.getMonth()];case`D`:return String(e.getDate());case`DD`:return v(e.getDate(),2);case`d`:return String(e.getDay());case`dd`:return g[e.getDay()].slice(0,2);case`ddd`:return g[e.getDay()].slice(0,3);case`dddd`:return g[e.getDay()];case`H`:return String(a);case`HH`:return v(a,2);case`h`:return String(a%12||12);case`hh`:return v(a%12||12,2);case`a`:return a<12?`am`:`pm`;case`A`:return a<12?`AM`:`PM`;case`m`:return String(e.getMinutes());case`mm`:return v(e.getMinutes(),2);case`s`:return String(e.getSeconds());case`ss`:return v(e.getSeconds(),2);case`SSS`:return v(e.getMilliseconds(),3);case`Z`:return b(e);default:return b(e).replace(`:`,``)}})}function w(e){let t=e.getFullYear(),n=e.getMonth()+1,r=e.getDate();return(t>=1e3&&t<=9999?t:v(t,4))+(n<10?`-0`:`-`)+n+(r<10?`-0`:`-`)+r}var ue=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,T=/\[[^\]]+]/g,E=/\d/,D=/\d\d/,O=/\d{3}/,de=/\d{4}/,k=/\d\d?/,A=/[+-]?\d+/,fe=/[+-]\d\d:?(\d\d)?|Z/,j=/\d*[^-_:/,()\s\d]+/;function M(e){return(t,n)=>(t[e]=+n,!0)}var N=(e,t)=>{if(t===`Z`)return e.offset=0,!0;let n=t.match(/([+-]|\d\d)/g),r=n[1]*60+(+n[2]||0);return e.offset=r===0?0:n[0]===`+`?-r:r,!0};function pe(e){return(t,n)=>{let r=e.indexOf(n)+1;return r<1?!1:(t.month=r%12||r,!0)}}var me=new Map([[`A`,{re:j,read:(e,t)=>(e.afternoon=t===`PM`,!0)}],[`a`,{re:j,read:(e,t)=>(e.afternoon=t===`pm`,!0)}],[`Q`,{re:E,read:(e,t)=>(e.month=(t-1)*3+1,!0)}],[`S`,{re:E,read:(e,t)=>(e.milliseconds=t*100,!0)}],[`SS`,{re:D,read:(e,t)=>(e.milliseconds=t*10,!0)}],[`SSS`,{re:O,read:(e,t)=>(e.milliseconds=+t,!0)}],[`s`,{re:k,read:M(`seconds`)}],[`ss`,{re:k,read:M(`seconds`)}],[`m`,{re:k,read:M(`minutes`)}],[`mm`,{re:k,read:M(`minutes`)}],[`H`,{re:k,read:M(`hours`)}],[`h`,{re:k,read:M(`hours`)}],[`HH`,{re:k,read:M(`hours`)}],[`hh`,{re:k,read:M(`hours`)}],[`D`,{re:k,read:M(`day`)}],[`DD`,{re:D,read:M(`day`)}],[`Do`,{re:j,read:(e,t)=>{let n=t.match(/\d+/);if(!n)return!1;e.day=+n[0],e.dayGiven=!0;for(let n=1;n<=31;n++)te(n)===t&&(e.day=n);return!0}}],[`w`,{re:k,read:M(`week`)}],[`ww`,{re:D,read:M(`week`)}],[`M`,{re:k,read:M(`month`)}],[`MM`,{re:D,read:M(`month`)}],[`MMM`,{re:j,read:pe(h.map(e=>e.slice(0,3)))}],[`MMMM`,{re:j,read:pe(h)}],[`Y`,{re:A,read:M(`year`)}],[`YY`,{re:D,read:(e,t)=>(e.year=+t+(+t>68?1900:2e3),!0)}],[`YYYY`,{re:de,read:M(`year`)}],[`Z`,{re:fe,read:N}],[`ZZ`,{re:fe,read:N}]]),P,F=null;function he(e){if(e===P)return F;if(P=e,F=null,/[Ll]/.test(e.replace(T,``)))return null;let t=e.match(ue);return t?(F=t.map(e=>me.get(e)??e.replace(/^\[|\]$/g,``)),F):null}function I(e,t,n){if(t===`x`||t===`X`)return new Date((t===`X`?1e3:1)*Number(e));let r=he(t);if(!r)return;let i={},a=e,o=0;for(let e of r){if(typeof e==`string`){o+=e.length;continue}let t=e.re.exec(a.slice(o));if(!t||!e.read(i,t[0]))return;a=a.replace(t[0],``)}i.afternoon!==void 0&&i.hours!==void 0&&(i.afternoon?i.hours<12&&(i.hours+=12):i.hours===12&&(i.hours=0));let s=i.dayGiven||i.day?i.day:!i.year&&!i.month?n.getDate():1,c=i.year||n.getFullYear(),l=0;i.year&&!i.month||(l=i.month>0?i.month-1:n.getMonth());let u=i.hours||0,d=i.minutes||0,f=i.seconds||0,p=i.milliseconds||0;if(i.offset!==void 0)return new Date(Date.UTC(c,l,s,u,d,f,p+i.offset*6e4));if(!i.week)return new Date(c,l,s,u,d,f,p)}function L(e,t,n){let r=I(e,t,n);return r&&_(r)&&le(r,t)===e?r:void 0}var ge=/^[YMDHhmsSZXx\-/.:, T]*$/,_e=/^\s*(active|done|crit|milestone|vert)\s*$/,ve=/^after\s+([\d\w- ]+)/,R=/^until\s+([\d\w- ]+)/,z=/^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/,ye=/[\s,]+/,B=/^\d+$/,be=new Set(g.map(e=>e.toLowerCase())),V=4e8,xe=400,Se=200,Ce=400;function we(e){let t=e===void 0?NaN:+e;return Number.isFinite(t)?t:Date.now()}function Te(e){let t=z.exec(e.trim());return t?[Number.parseFloat(t[1]),t[2]]:[NaN,`ms`]}function Ee(e,t){let n=new Set(e);for(let e of t.toLowerCase().split(ye))e!==``&&n.add(e);return[...n]}var De=class{type=`gantt`;title;accTitle;accDescr;dateFormat=``;axisFormat=``;tickInterval;todayMarker=``;includes=[];excludes=[];inclusiveEndDates=!1;topAxis=!1;displayMode=``;weekday;weekend=`saturday`;sections=[];links=new Map;tasks=[];byId=new Map;currentSection=``;taskCount=0;lastOrder=0;lastTaskId;options;now=0;work=0;includeSet=new Set;excludeSet=new Set;excludedDays=[];datedTokens=!1;constructor(e={}){this.options=e}setDateFormat(e){this.dateFormat=e}enableInclusiveEndDates(){this.inclusiveEndDates=!0}TopAxis(){this.topAxis=!0}setAxisFormat(e){this.axisFormat=e}setTickInterval(e){this.tickInterval=e}setTodayMarker(e){this.todayMarker=e}setIncludes(e){this.includes=Ee(this.includes,e)}setExcludes(e){this.excludes=Ee(this.excludes,e)}setWeekday(e){this.weekday=e}setWeekend(e){this.weekend=e}setDiagramTitle(e){this.title=e}setAccTitle(e){this.accTitle=e.replace(/^\s+/g,``)}setAccDescription(e){this.accDescr=e.replace(/\n\s+/g,`
2
+ `)}addSection(e){this.currentSection=e,this.sections.push(e)}addTask(e,t){let n=(t.startsWith(`:`)?t.slice(1):t).split(`,`),r={id:``,task:e,section:this.currentSection,startTime:void 0,endTime:void 0,renderEndTime:null,manualEndTime:!1,processed:!1,active:!1,done:!1,crit:!1,milestone:!1,vert:!1,order:-1,classes:[],prevTaskId:this.lastTaskId,raw:{data:t,start:void 0,end:``}},i;for(;n.length>0&&(i=_e.exec(n[0]))!==null;)r[i[1]]=!0,n.shift();if(n.length===0)throw new f(`Task "${e.trim()}" needs a duration or an end date.`,`semantic`,{type:`gantt`});if(n.length>3)throw new f(`Task "${e.trim()}" has too many fields. A task takes an id, a start, and an end or duration.`,`semantic`,{type:`gantt`});for(let e=0;e<n.length;e++)n[e]=n[e].trim();n.length===3?r.id=n[0]:(this.taskCount++,r.id=`task`+this.taskCount),n.length>1&&(r.raw.start=n[n.length-2]),r.raw.end=n[n.length-1],r.vert||(r.order=this.lastOrder++),this.tasks.push(r),this.lastTaskId=r.id,this.byId.set(r.id,r)}setLink(e,t){let n=u(t);for(let t of e.split(`,`))this.byId.has(t)&&this.links.set(t,n);this.setClass(e,`clickable`)}setClickEvent(e,t,n){this.setClass(e,`clickable`)}setClass(e,t){for(let n of e.split(`,`))this.byId.get(n)?.classes.push(t)}getTasks(e){this.now=we(e),this.work=0,this.includeSet=new Set(this.includes),this.excludeSet=new Set(this.excludes);let t=this.weekend===`friday`?5:this.weekend===`saturday`?6:NaN,n=this.excludeSet.has(`weekends`);this.excludedDays=g.map((e,r)=>{let i=r||7;return n&&(i===t||i===t+1)||this.excludeSet.has(e.toLowerCase())}),this.datedTokens=this.includes.length>0||!ge.test(this.dateFormat.trim());for(let e of this.excludes)e!==`weekends`&&!be.has(e)&&(this.datedTokens=!0);for(let e of this.tasks)e.startTime=e.endTime=void 0,e.renderEndTime=null,e.processed=e.manualEndTime=!1;let r=this.compileTasks();for(let e=0;!r&&e<10;e++)r=this.compileTasks();return this.tasks}isInvalidDate(e){let t=this.excludedDays[e.getDay()];if(!this.datedTokens)return t;let n=this.dateFormat.trim(),r=w(e),i=r;this.spend(Se),n!==`YYYY-MM-DD`&&(this.spend(Ce+n.length*8),i=le(e,n));let a=e=>e.has(r)||i!==void 0&&e.has(i);return a(this.includeSet)?!1:t||a(this.excludeSet)}spend(e){if(this.work+=e,this.work>V)throw new f(`The gantt chart takes too much work to schedule.`,`limit`,{type:`gantt`})}parse(e,t){return this.spend((t.length+1)*(e.length+1)),L(e,t,new Date(this.now))}today(){let e=new Date(this.now);return e.setHours(0,0,0,0),e}warn(e){this.options.warn&&this.options.warn(e())}compileTasks(){let e=!0;for(let t of this.tasks)this.compileTask(t),e&&=t.processed;return e}compileTask(e){let t=e.raw.start;if(t===void 0){let t=e.prevTaskId===void 0?void 0:this.byId.get(e.prevTaskId);e.startTime=t?t.endTime:this.today()}else{let n=this.getStartDate(t);n&&(e.startTime=n)}e.startTime&&(e.endTime=this.getEndDate(e.startTime,e.raw.end),e.endTime&&(e.processed=!0,e.manualEndTime=this.parse(e.raw.end,`YYYY-MM-DD`)!==void 0,this.checkTaskDates(e)))}references(e,t){let n=[],r;for(let e of t.split(` `)){if(e===``)continue;let t=this.byId.get(e);t?n.push(t):(r??=[]).push(e)}if(r){let t=r;this.warn(()=>`Gantt: "${e}" refers to task ids that do not exist: ${t.join(`, `)}.`)}return n}getStartDate(e){let t=e.trim(),n=this.dateFormat.trim();if((n===`x`||n===`X`)&&B.test(t))return this.checked(new Date(Number(t)),t);let r=ve.exec(t);if(r!==null){let e=this.references(`after`,r[1]),t;for(let n of e)(!t||n.endTime>t.endTime)&&(t=n);return t?t.endTime:this.today()}let i=this.parse(t,n);if(i)return i;let a=new Date(t);if(!_(a)||a.getFullYear()<-1e4||a.getFullYear()>1e4)throw new f(`Invalid date:`+t,`semantic`,{type:`gantt`});return a}checked(e,t){if(!_(e))throw new f(`Invalid date:`+t,`semantic`,{type:`gantt`});return e}getEndDate(e,t){let n=t.trim(),r=R.exec(n);if(r!==null){let e=this.references(`until`,r[1]),t;for(let n of e)(!t||n.startTime<t.startTime)&&(t=n);return t?t.startTime:this.today()}let i=this.dateFormat.trim(),a=this.parse(n,i);if(a)return this.inclusiveEndDates?S(a,1):a;let[o,s]=Te(n);if(Number.isNaN(o))return this.warn(()=>`Gantt: "${n}" is neither a date in the "${i}" format nor a duration such as "3d", so the task gets no duration.`),new Date(e);let c=ie(e,o,s);return _(c)?c:new Date(e)}checkTaskDates(e){if(this.excludes.length===0||e.manualEndTime)return;let t=S(e.startTime,1),n=new Date(e.endTime),r=+S(n,1e4),i=!1,a=null;for(;+t<=+n;){if(this.spend(xe),i||(a=+n),i=this.isInvalidDate(t),i&&(n.setDate(n.getDate()+1),+n>r))throw new f("Failed to find a valid date that was not excluded by `excludes` after 10,000 iterations.",`semantic`,{type:`gantt`});t.setDate(t.getDate()+1)}e.endTime=n,e.renderEndTime=a===null?null:new Date(a)}},Oe=`$end.INVALID.open_directive.acc_title.acc_title_value.acc_descr.acc_descr_value.acc_descr_multiline_value.NL.href.callbackname.callbackargs.click.gantt.dateFormat.inclusiveEndDates.topAxis.axisFormat.tickInterval.includes.excludes.todayMarker.weekday_monday.weekday_tuesday.weekday_wednesday.weekday_thursday.weekday_friday.weekday_saturday.weekday_sunday.weekend_friday.weekend_saturday.date.title.accDescription.section.taskTxt.taskData.:.EOF`.split(`.`),ke=/accTitle\s*:\s*/iy,Ae=/accDescr\s*:\s*/iy,je=/accDescr\s*\{\s*/iy,Me=/href\s+"/iy,Ne=/call\s+/iy,Pe=/click\s+/iy,H=/\(\s*\)/y,Fe=/weekday\s+(monday|tuesday|wednesday|thursday|friday|saturday|sunday)\b/iy,Ie=[`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`,`sunday`],U=/weekend\s+(?:(friday)|saturday)\b/iy,Le=/\d\d\d\d-\d\d-\d\d\b/y,Re=/title[^\S\r\n]*(?=[\r\n]|$)/iy,ze=new Map([[97,[[/axisFormat\s[^#\n;]+/iy,17],[/accDescription\s[^#\n;]+/iy,33]]],[103,[[/gantt\b/iy,13]]],[100,[[/dateFormat\s[^#\n;]+/iy,14]]],[105,[[/inclusiveEndDates\b/iy,15],[/includes\s[^#\n;]+/iy,19]]],[116,[[/topAxis\b/iy,16],[/tickInterval\s[^#\n;]+/iy,18],[/todayMarker\s[^\n;]+/iy,21],[/title[^\S\r\n][^\n]+/iy,32]]],[101,[[/excludes\s[^#\n;]+/iy,20]]],[115,[[/section\s[^\n]+/iy,34]]]]);function Be(e){let t=e.length,n=[],r=[],i=[],a=0,o=0,s=(t,a,s)=>{n.push(t),r.push(e.slice(a,s)),i.push(a),o=s},c=t=>(t.lastIndex=o,t.test(e)?t.lastIndex:-1),l=(n,r)=>{let i=e.indexOf(n,r);return i===-1?t:i},u=t=>{let n;switch(t|32){case 97:if((n=c(ke))>=0)return a=1,s(3,o,n),!0;if((n=c(Ae))>=0)return a=2,s(5,o,n),!0;if((n=c(je))>=0)return a=3,o=n,!0;break;case 104:if((n=c(Me))>=0)return a=4,o=n,!0;break;case 99:if((n=c(Ne))>=0)return a=5,o=n,!0;if((n=c(Pe))>=0)return a=7,o=n,!0;break;case 116:if((n=c(Re))>=0)return o=n,!0;break;case 119:{Fe.lastIndex=o;let t=Fe.exec(e);if(t)return s(22+Ie.indexOf(t[1].toLowerCase()),o,Fe.lastIndex),!0;if(U.lastIndex=o,t=U.exec(e),t)return s(t[1]===void 0?30:29,o,U.lastIndex),!0;break}}let r=ze.get(t|32);if(r){for(let[e,t]of r)if((n=c(e))>=0)return s(t,o,n),!0}return!1};for(;;){if(o>=t){let e=38;switch(a){case 1:e=4;break;case 2:e=6;break;case 3:e=7;break;case 4:e=9;break;case 5:e=10;break;case 6:e=11;break;case 7:e=12}s(e,t,t);break}let d=e.charCodeAt(o);switch(a){case 0:{let a=e.charCodeAt(o+1);if(d===37){if(a!==37){let t=l(`
3
+ `,o+1);for(;e.charCodeAt(t)===10;)t++;o=t}else{if(e.charCodeAt(o+2)===123)return s(2,o,o+3),s(1,o,o),{types:n,texts:r,starts:i};o=l(`
4
+ `,o+2)}}else if(d===10){let t=o+1;for(;e.charCodeAt(t)===10;)t++;s(8,o,t)}else if(p(d))for(o++;o<t&&p(e.charCodeAt(o));)o++;else{if(u(d))break;if(d>=48&&d<=57&&c(Le)>=0)s(31,o,o+10);else if(d!==58){let n=o+1;for(;n<t;){let t=e.charCodeAt(n);if(t===58||t===10)break;n++}s(35,o,n)}else{let n=o+1;for(;n<t;){let t=e.charCodeAt(n);if(t===35||t===10||t===59)break;n++}s(n>o+1?36:37,o,n)}}break}case 1:case 2:{let e=a===1?4:6;a=0,s(e,o,l(`
5
+ `,o));break}case 3:d===125?(a=0,o++):s(7,o,l(`}`,o));break;case 4:d===34?(a=0,o++):s(9,o,l(`"`,o));break;case 5:if(d===40){let e=c(H);e>=0?(a=0,o=e):(a=6,o++)}else s(10,o,l(`(`,o));break;case 6:d===41?(a=0,o++):s(11,o,l(`)`,o));break;case 7:if(p(d))a=0,o++;else{let n=o+1;for(;n<t&&!p(e.charCodeAt(n));)n++;s(12,o,n)}}}return n.push(0),r.push(``),i.push(t),{types:n,texts:r,starts:i}}var Ve=[`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`,`sunday`],He=`'EOF', 'SPACE', 'NL', 'weekday_monday', 'weekday_tuesday', 'weekday_wednesday', 'weekday_thursday', 'weekday_friday', 'weekday_saturday', 'weekday_sunday', 'weekend_friday', 'weekend_saturday', 'dateFormat', 'inclusiveEndDates', 'topAxis', 'axisFormat', 'tickInterval', 'excludes', 'includes', 'todayMarker', 'title', 'acc_title', 'acc_descr', 'acc_descr_multiline_value', 'section', 'taskTxt', 'click'`,W=new Uint8Array(39);for(let e=22;e<=30;e++)W[e]=1;for(let e of[38,8,14,15,16,17,18,20,19,21,32,3,5,7,34,35,12])W[e]=1;function Ue(e,t){let{types:n,texts:r,starts:i}=Be(e),a=0,o=t=>{let r=n[a];throw m(`gantt`,e,i[a],`Expecting ${t}, got '${r===0?`1`:Oe[r]}'`)},s=(e=``)=>{W[n[a]]!==1&&o(He+e)};for(n[a]!==13&&o(`'gantt'`),a++;;){let e=n[a],i=r[a];switch(W[e]!==1&&o(He),a++,e){case 38:if(n[a]===0)return;s();break;case 8:break;case 14:s(),t.setDateFormat(i.slice(11));break;case 15:s(),t.enableInclusiveEndDates();break;case 16:s(),t.TopAxis();break;case 17:s(),t.setAxisFormat(i.slice(11));break;case 18:s(),t.setTickInterval(i.slice(13));break;case 20:s(),t.setExcludes(i.slice(9));break;case 19:s(),t.setIncludes(i.slice(9));break;case 21:s(),t.setTodayMarker(i.slice(12));break;case 29:s(),t.setWeekend(`friday`);break;case 30:s(),t.setWeekend(`saturday`);break;case 32:s(),t.setDiagramTitle(i.slice(6));break;case 3:{n[a]!==4&&o(`'acc_title_value'`);let e=r[a++];s(),t.setAccTitle(e.trim());break}case 5:{n[a]!==6&&o(`'acc_descr_value'`);let e=r[a++];s(),t.setAccDescription(e.trim());break}case 7:s(),t.setAccDescription(i.trim());break;case 34:s(),t.addSection(i.slice(8));break;case 35:{n[a]!==36&&o(`'taskData'`);let e=r[a++];s(),t.addTask(i,e);break}case 12:{let e,c=null,l;n[a]===10?(e=r[a++],n[a]===11&&(c=r[a++]),n[a]===9?(l=r[a++],s()):s(c===null?`, 'callbackargs', 'href'`:`, 'href'`)):n[a]===9?(l=r[a++],n[a]===10?(e=r[a++],n[a]===11?(c=r[a++],s()):s(`, 'callbackargs'`)):s(`, 'callbackname'`)):o(`'callbackname', 'href'`),e!==void 0&&t.setClickEvent(i,e,c),l!==void 0&&t.setLink(i,l);break}default:s(),t.setWeekday(Ve[e-22])}}}var G=1e3,K=60*G,q=60*K,J=24*q,We=7*J,Ge=30*J,Ke=365*J;function qe(e){e.setHours(0,0,0,0)}function Je(e){return{floor(t){t.setDate(t.getDate()-(t.getDay()+7-e)%7),qe(t)},offset:(e,t)=>e.setDate(e.getDate()+t*7),cycle:1/0,ms:We}}var Ye={millisecond:{floor:()=>{},offset:(e,t)=>e.setTime(+e+t),cycle:1/0,ms:1},second:{floor:e=>e.setTime(+e-e.getMilliseconds()),offset:(e,t)=>e.setTime(+e+t*G),field:e=>e.getUTCSeconds(),cycle:60,ms:G},minute:{floor:e=>e.setTime(+e-e.getMilliseconds()-e.getSeconds()*G),offset:(e,t)=>e.setTime(+e+t*K),field:e=>e.getMinutes(),cycle:60,ms:K},hour:{floor:e=>e.setTime(+e-e.getMilliseconds()-e.getSeconds()*G-e.getMinutes()*K),offset:(e,t)=>e.setTime(+e+t*q),field:e=>e.getHours(),cycle:24,ms:q},day:{floor:qe,offset:(e,t)=>e.setDate(e.getDate()+t),field:e=>e.getDate()-1,cycle:31,ms:J},month:{floor(e){e.setDate(1),qe(e)},offset:(e,t)=>e.setMonth(e.getMonth()+t),field:e=>e.getMonth(),cycle:12,ms:Ge},year:{floor(e){e.setMonth(0,1),qe(e)},offset:(e,t)=>e.setFullYear(e.getFullYear()+t),cycle:1/0,ms:Ke}};function Xe(e,t,n){return Math.floor((+t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*K)/n)}function Ze(e,t){return(e%t+t)%t}function Qe(e,t,n){let r=e===`week`?Je(n):Ye[e];if(t<=1)return r;if(e===`millisecond`)return{...r,floor:e=>e.setTime(Math.floor(+e/t)*t),offset:(e,n)=>e.setTime(+e+n*t)};if(e===`year`)return{...r,floor(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),r.floor(e)},offset:(e,n)=>e.setFullYear(e.getFullYear()+n*t)};if(e===`week`){let e=new Date(0);return r.floor(e),{...r,floor(n){r.floor(n),r.offset(n,-Ze(Xe(e,n,We),t))},offset:(e,n)=>r.offset(e,n*t)}}let i=r.field,a=e=>i(e)%t===0;return{...r,floor(e){for(r.floor(e);Number.isFinite(+e)&&!a(e);r.floor(e))e.setTime(e-1)},offset(e,t){for(let n=0;n<t&&Number.isFinite(+e);n++)do r.offset(e,1);while(Number.isFinite(+e)&&!a(e))}}}function $e(e,t,n,r){let i=new Date(t-1);e.floor(i),e.offset(i,1),e.floor(i);let a=[],o=-1/0;for(;+i<=n&&+i>o;){if(a.length>=r)return;o=+i,a.push(o),e.offset(i,1),e.floor(i)}return a}function et(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i;return 10**i*(a>=Math.sqrt(50)?10:a>=Math.sqrt(10)?5:a>=Math.SQRT2?2:1)}var Y=[[`second`,1,G],[`second`,5,5*G],[`second`,15,15*G],[`second`,30,30*G],[`minute`,1,K],[`minute`,5,5*K],[`minute`,15,15*K],[`minute`,30,30*K],[`hour`,1,q],[`hour`,3,3*q],[`hour`,6,6*q],[`hour`,12,12*q],[`day`,1,J],[`day`,2,2*J],[`week`,1,We],[`month`,1,Ge],[`month`,3,3*Ge],[`year`,1,Ke]];function tt(e,t,n){let r=(t-e)/n,i=0;for(;i<Y.length&&Y[i][2]<=r;)i++;let a;if(i===Y.length)a=Qe(`year`,Math.max(1,et(e/Ke,t/Ke,n)),0);else if(i===0)a=Qe(`millisecond`,Math.max(et(e,t,n),1),0);else{let[e,t]=Y[r/Y[i-1][2]<Y[i][2]/r?i-1:i];a=Qe(e,t,0)}return $e(a,e,t,4*n+8)??[]}var nt=/^([1-9]\d*)(millisecond|second|minute|hour|day|week|month)$/,rt=[`sunday`,`monday`,`tuesday`,`wednesday`,`thursday`,`friday`,`saturday`];function it(e,t,n,r,i){let a=nt.exec(e);if(!a)return;let o=parseInt(a[1],10),s=a[2],c=Qe(s,o,Math.max(0,rt.indexOf(t)));if(!((r-n)/(Math.min(o,c.cycle)*c.ms)>i))return $e(c,n,r,i)}function X(e,t,n){let r=e<0?`-`:``,i=String(r?-e:e);return r+(i.length<n?t.repeat(n-i.length)+i:i)}function Z(e,t){let n=new Date(+e);return t.floor(n),n}function at(e,t){let n=Je(t),r=Z(e,Ye.year);return Xe(Z(new Date(r-1),n),Z(e,n),We)}function ot(e){let t=Je(4),n=e.getDay(),r=Z(n>=4||n===0?e:new Date(e-1),t);return n>=4||n===0||(t.offset(r,1),t.floor(r)),r}var st=new Map([[`-`,``],[`_`,` `],[`0`,`0`]]);function ct(e,t){let n=``,r=0,i=e.length;for(let a=0;a<i;a++){if(e.charCodeAt(a)!==37)continue;n+=e.slice(r,a);let i=e.charAt(++a),o=st.get(i);o===void 0?o=i===`e`?` `:`0`:i=e.charAt(++a),n+=lt(i,t,o),r=a+1}return n+e.slice(r)}function lt(e,t,n){switch(e){case`a`:return g[t.getDay()].slice(0,3);case`A`:return g[t.getDay()];case`b`:return h[t.getMonth()].slice(0,3);case`B`:return h[t.getMonth()];case`c`:return ct(`%x, %X`,t);case`d`:case`e`:return X(t.getDate(),n,2);case`f`:return X(t.getMilliseconds(),n,3)+`000`;case`g`:return X(ot(t).getFullYear()%100,n,2);case`G`:return X(ot(t).getFullYear()%1e4,n,4);case`H`:return X(t.getHours(),n,2);case`I`:return X(t.getHours()%12||12,n,2);case`j`:return X(1+Xe(Z(t,Ye.year),Z(t,Ye.day),J),n,3);case`L`:return X(t.getMilliseconds(),n,3);case`m`:return X(t.getMonth()+1,n,2);case`M`:return X(t.getMinutes(),n,2);case`p`:return t.getHours()>=12?`PM`:`AM`;case`q`:return String(1+Math.floor(t.getMonth()/3));case`Q`:return String(+t);case`s`:return String(Math.floor(t/1e3));case`S`:return X(t.getSeconds(),n,2);case`u`:return String(t.getDay()||7);case`U`:return X(at(t,0),n,2);case`V`:{let e=ot(t),r=Z(e,Ye.year);return X(Xe(Z(r,Je(4)),e,We)+ +(r.getDay()===4),n,2)}case`w`:return String(t.getDay());case`W`:return X(at(t,1),n,2);case`x`:return ct(`%-m/%-d/%Y`,t);case`X`:return ct(`%-I:%M:%S %p`,t);case`y`:return X(t.getFullYear()%100,n,2);case`Y`:return X(t.getFullYear()%1e4,n,4);case`Z`:{let e=t.getTimezoneOffset(),n=Math.abs(e);return(e>0?`-`:`+`)+X(Math.floor(n/60),`0`,2)+X(n%60,`0`,2)}case`%`:return`%`;default:return e}}var ut=800,dt=240,Q=8,ft=/<br\s*\/?>/gi;function $(e,t,n,r){let i=e.gantt?.[t];return typeof i==`number`&&Number.isFinite(i)?Math.min(r,Math.max(n,i)):void 0}function pt(e,t){let n=e.gantt?.[t];return typeof n==`string`?n:void 0}function mt(e,t){return e.gantt?.[t]===!0}function ht(e,t,n){let r=s(e.replace(ft,` `),!1,t,n,4e3);return r.lines.length<=1?r:{...r,lines:[r.lines[0]],widths:[r.widths[0]],width:r.widths[0],height:r.lineHeight}}function gt(e){return Number.isFinite(+e.startTime)&&Number.isFinite(+e.endTime)}function _t(e,t,n){let r=e.filter(gt).sort((e,t)=>+e.startTime-t.startTime||e.order-t.order),i=[];for(let e of r){let r=+e.startTime,a=0;for(;a<i.length&&r<i[a];)a++;i[a]=+e.endTime,n.set(e,t+a)}let a=i.length;for(let r of e)n.has(r)||n.set(r,t+a++);return Math.max(a,1)}function vt(u,f,p){let m=p.fontSize??16,h=p.measurer??ee(p.fontFamily,p.fontFamilyMono),g=p.padding??8,_=we(p.now),v=$(f,`fontSize`,4,72)??Math.round(m*.8125),te=$(f,`sectionFontSize`,4,72)??v,y=Math.round(m*.75),b=$(f,`barHeight`,4,400)??Math.round(v*1.85),x=b+($(f,`barGap`,0,400)??Math.round(b/4)),ne=Math.round($(f,`numberSectionStyles`,1,1e3)??4),re=u.displayMode===`compact`,ae=u.topAxis||mt(f,`topAxis`),oe=u.getTasks(_),se=oe.filter(e=>!e.vert),ce=oe.filter(e=>e.vert&&gt(e)),C=new Map;for(let e of se)C.has(e.section)||C.set(e.section,C.size);let le=new Map,w=[];if(re){let e=new Map;for(let t of se){let n=e.get(t.section);n?n.push(t):e.set(t.section,[t])}for(let[t,n]of e){let e=_t(n,w.length,le);for(let n=0;n<e;n++)w.push(t)}}else for(let e of se)le.set(e,w.length),w.push(e.section);let ue=w.length,T=1/0,E=-1/0;for(let e of oe)gt(e)&&(T=Math.min(T,+e.startTime),E=Math.max(E,+e.endTime));let D=T<=E,O=s(u.title,!1,h,m,4e3,1),de=O.height>0?O.height+16:0;if(!D){let t=Math.ceil(Math.max(O.width,1)+2*g),n=Math.ceil(Math.max(O.height,1)+2*g),r=i(O,t/2,g+O.height/2,` class="pele-title" font-weight="var(--_tw)"`);return{svg:e(`gantt`,t,n,m,p,u,r),width:t,height:n,links:[]}}let k=new Map,A=0;for(let e of C.keys()){let t=s(e,!1,h,te,180);k.set(e,t),A=Math.max(A,t.width)}let fe=u.axisFormat||(u.dateFormat===`D`?`%d`:pt(f,`axisFormat`)??`%Y-%m-%d`),j=e=>ct(fe,new Date(e)),M=Math.max(h.width(j(T),y,0),h.width(j(E),y,0)),N=g+($(f,`leftPadding`,0,2e3)??Math.max(A>0?A+24:0,M/2)),pe=$(f,`rightPadding`,0,2e3)??Math.max(16,M/2),me=l(p,$(f,`useWidth`,100,2e4)??ut,280),P=Math.max(dt,me-N-pe-g),F=N+P,he=E>T?P/(E-T):0,I=e=>he===0?N+P/2:N+(e-T)*he,L=Math.round(y*1.75),ge=$(f,`topPadding`,0,2e3),_e=$(f,`gridLineStartPadding`,0,2e3),ve=g+de+(ae?L:0),R=Math.max(ve,ge??0),z=ge!==void 0&&_e!==void 0?Math.max(0,Math.min(ge-_e,R-ve)):0,ye=Math.max(ue,1)*x,B=R+ye,be=[],V=F+pe;for(let e of se){let t=ht(e.task,h,v),n=le.get(e);if(!gt(e)){let r=N+Q+t.width/2;V=Math.max(V,r+t.width/2),be.push({task:e,label:t,row:n,x0:NaN,x1:NaN,labelX:r,inside:!1});continue}let r=I(+e.startTime),i=Math.max(I(+(e.renderEndTime??e.endTime)),r+(e.milestone?0:2));if(e.milestone){let t=r+(I(+e.endTime)-r)/2;r=t-b/2,i=t+b/2}let a=!e.milestone&&t.width+2*Q<=i-r,o=(r+i)/2;if(!a){let e=i+Q+t.width<=F+pe,n=r-Q-t.width>=N;o=e||!n?i+Q+t.width/2:r-Q-t.width/2,V=Math.max(V,o+t.width/2)}be.push({task:e,label:t,row:n,x0:r,x1:i,labelX:o,inside:a})}let xe=u.tickInterval||pt(f,`tickInterval`)||``,Se=u.weekday??pt(f,`weekday`)??`sunday`,Ce=Math.max(2,Math.min(10,Math.floor(P/(M+24)))),Te=it(xe,Se,T,E,Math.ceil(P/3))??tt(T,E,Ce),Ee=``,De=``,Oe=``,ke=-1/0,Ae=``,je=B+L/2+2,Me=R-z-L/2-2;for(let e of Te){let n=I(e);Ee+=`M${c(n)},${c(R-z)}V${c(B)}`;let r=j(e),i=h.width(r,y,0);if(n-i/2<ke+8||r===Ae)continue;ke=n+i/2,Ae=r,V=Math.max(V,ke);let a=`text-anchor="middle">${t(r)}</text>`;De+=`<text x="${c(n)}" y="${c(je+y*.35)}" ${a}`,ae&&(Oe+=`<text x="${c(n)}" y="${c(Me+y*.35)}" ${a}`)}let Ne=``,Pe=``,H=[],Fe=B+L+4,Ie=Math.round(v*1.5);for(let e of[...ce].sort((e,t)=>+e.startTime-t.startTime)){let t=I(+e.startTime),n=ht(e.task,h,v),a=Math.max(g+n.width/2,t),o=0;for(;o<H.length&&a-n.width/2<H[o]+8;)o++;H[o]=a+n.width/2,V=Math.max(V,H[o]),Ne+=`<path class="pele-vert" data-id="${r(e.id)}" d="M${c(t)},${c(R-z)}V${c(B)}"/>`,Pe+=i(n,a,Fe+o*Ie+Ie/2,` class="pele-vert-label" data-id="${r(e.id)}"`)}let U=Math.ceil(Math.max(V,g+O.width)+g),Le=Math.ceil(B+L+(H.length>0?4+H.length*Ie:0)+g),Re=``,ze=``;for(let e=0;e<ue;){let t=w[e],n=e+1;for(;n<ue&&w[n]===t;)n++;let a=C.get(t)%ne,o=R+e*x,s=(n-e)*x;(C.size>1||t!==``)&&(Re+=`<rect class="pele-section pele-section-${a}" x="0" y="${c(o)}" width="${U}" height="${c(s)}" fill="${a%2==0?`var(--_s)`:`none`}"/>`);let l=k.get(t);ze+=i(l,g+8+l.width/2,o+s/2,` class="pele-section-label" data-id="${r(t)}"`,p.icons),e=n}let Be=``;if((u.excludes.length>0||u.includes.length>0)&&+ie(new Date(T),6,`y`)>E){let e,t,n=()=>{if(!e||!t)return;let n=new Date(e);n.setHours(0,0,0,0);let r=new Date(t);r.setHours(23,59,59,999);let i=Math.max(N,I(+n)),a=Math.min(F,I(+r));a>i&&(Be+=`<rect x="${c(i)}" y="${c(R)}" width="${c(a-i)}" height="${c(ye)}"/>`),e=t=void 0};for(let r=new Date(T);+r<=E;r=S(r,1))u.isInvalidDate(r)?(e??=r,t=r):n();n()}let Ve=[],He=``;for(let e of be){let t=e.task,o=R+e.row*x+x/2,s=t.active?`active`:t.done?`done`:``,l=`pele-task`;s&&(l+=` pele-`+s),t.crit&&(l+=` pele-crit`),t.milestone&&(l+=` pele-milestone`),t.classes.includes(`clickable`)&&(l+=` pele-clickable`);let f=``,m=``;if(Number.isNaN(e.x0))l+=` pele-unscheduled`,m=` fill="var(--_m)"`;else{let r=t.crit?n:`var(--_c)`,i=s===`done`?`fill="var(--_a)"`:s===`active`?`fill="${r}" fill-opacity="0.25"`:`fill="${r}"`,l=`stroke="${s===`done`&&!t.crit?`var(--_b)`:r}"`;if(t.milestone){let t=(e.x0+e.x1)/2,n=b/2;f=`<path d="M${c(t)},${c(o-n)}L${c(t+n)},${c(o)}L${c(t)},${c(o+n)}L${c(t-n)},${c(o)}Z" ${i} ${l} stroke-linejoin="round"/>`}else f=`<rect x="${c(e.x0)}" y="${c(o-b/2)}" width="${c(e.x1-e.x0)}" height="${c(b)}" ${i} ${l}${a}/>`;e.inside?m=s===``?` fill="var(--_bg)"`:``:s===`done`&&(m=` fill="var(--_m)"`)}let ee=f+i(e.label,e.labelX,o,` class="pele-label"${m}`),h=u.links.get(t.id);h!==void 0&&(ee=d(ee,h,t.id,Ve,p)),He+=`<g class="${l}" data-id="${r(t.id)}">${ee}</g>`}let W=``;if(u.todayMarker!==`off`&&_>=T&&_<=E&&E>T){let e=I(_),t=R-z,n=u.todayMarker?o(u.todayMarker.split(`,`)).line:``;W=`<g class="pele-today"><path d="M${c(e)},${c(t)}V${c(B)}" fill="none" stroke="var(--_c)" stroke-width="2"${n}/>`+(n?``:`<path d="M${c(e-4)},${c(t-5)}H${c(e+4)}L${c(e)},${c(t+1)}Z" fill="var(--_c)"/>`)+`</g>`}let Ue=`M${c(N)},${c(B)}H${c(F)}`+(ae?`M${c(N)},${c(R-z)}H${c(F)}`:``),G=i(O,U/2,g+O.height/2,` class="pele-title" font-weight="var(--_tw)"`)+(Re?`<g class="pele-sections">${Re}</g>`:``)+(Be?`<g class="pele-excluded" fill="var(--_a)">${Be}</g>`:``)+`<g class="pele-grid" fill="none"><path d="${Ee}" stroke="var(--_b)" stroke-dasharray="1 3"/><path d="${Ue}" stroke="var(--_b)"/></g>`+(Ne?`<g class="pele-verts" fill="none" stroke="var(--_l)" stroke-width="1.5" stroke-dasharray="4 3">${Ne}</g>`:``)+W+`<g class="pele-tasks" font-size="${c(v)}">${He}</g><g class="pele-section-labels" font-size="${c(te)}">${ze}</g><g class="pele-axis" font-size="${y}" fill="var(--_m)">${De}${Oe}</g>`+(Pe?`<g class="pele-vert-labels" font-size="${c(v)}">${Pe}</g>`:``);return{svg:e(`gantt`,U,Le,m,p,u,G),width:U,height:Le,links:Ve}}var yt={type:`gantt`,parse(e,t,n){let r=new De;n&&(r.title=n);let i=t.gantt?.displayMode;return typeof i==`string`&&(r.displayMode=i),Ue(e,r),r},render:vt};export{yt as gantt};