unspaghettit 0.7.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 (359) hide show
  1. package/build/client/_app/immutable/chunks/{Bw8aCT1Q2.js → B9Q7cSuz2.js} +1 -1
  2. package/build/client/_app/immutable/chunks/B9Q7cSuz2.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/B9Q7cSuz2.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{DDKHPhI8.js → BDNWGeD3.js} +1 -1
  5. package/build/client/_app/immutable/chunks/BDNWGeD3.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BDNWGeD3.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{DGz3YZQB.js → BEi9bPpt.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BEi9bPpt.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BEi9bPpt.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{B-nR0Q3f.js → BGjKBqhd.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BGjKBqhd.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BGjKBqhd.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BLlLbCwR.js +1 -0
  14. package/build/client/_app/immutable/chunks/BLlLbCwR.js.br +2 -0
  15. package/build/client/_app/immutable/chunks/BLlLbCwR.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{CfhTGim_.js → BZzfs2NN.js} +1 -1
  17. package/build/client/_app/immutable/chunks/BZzfs2NN.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BZzfs2NN.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{DORQYps52.js → Bb7G5rrB2.js} +1 -1
  20. package/build/client/_app/immutable/chunks/Bb7G5rrB2.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/Bb7G5rrB2.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{DsW-fl3n.js → BdU1Yt_e.js} +1 -1
  23. package/build/client/_app/immutable/chunks/BdU1Yt_e.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BdU1Yt_e.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{B-duocHJ.js → BlkPyloS.js} +1 -1
  26. package/build/client/_app/immutable/chunks/BlkPyloS.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BlkPyloS.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/{CyN2OJjk.js → CHmg-Am5.js} +1 -1
  29. package/build/client/_app/immutable/chunks/CHmg-Am5.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/CHmg-Am5.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/{CuahcwUn.js → CPYkXatp.js} +1 -1
  32. package/build/client/_app/immutable/chunks/CPYkXatp.js.br +2 -0
  33. package/build/client/_app/immutable/chunks/CPYkXatp.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/{CAtyGLyp2.js → CV2_qPHL2.js} +1 -1
  35. package/build/client/_app/immutable/chunks/CV2_qPHL2.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/CV2_qPHL2.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/{BNNcE74V.js → CXhiS9kD.js} +1 -1
  38. package/build/client/_app/immutable/chunks/CXhiS9kD.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/CXhiS9kD.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/{BYlGYFfX2.js → CmaTEgmy2.js} +1 -1
  41. package/build/client/_app/immutable/chunks/CmaTEgmy2.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/CmaTEgmy2.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/{DX8e74SH.js → CuI8wNzS.js} +1 -1
  44. package/build/client/_app/immutable/chunks/CuI8wNzS.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/CuI8wNzS.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/{D8TG_CZy2.js → DFsgZTOD2.js} +1 -1
  47. package/build/client/_app/immutable/chunks/DFsgZTOD2.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/DFsgZTOD2.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DPrNvhwL.js +1 -0
  50. package/build/client/_app/immutable/chunks/DPrNvhwL.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DPrNvhwL.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/{Bpq8kJkb.js → DQ6pI1Eb.js} +1 -1
  53. package/build/client/_app/immutable/chunks/DQ6pI1Eb.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/DQ6pI1Eb.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/{Bt8Ir-i1.js → DUlWXa5h.js} +1 -1
  56. package/build/client/_app/immutable/chunks/DUlWXa5h.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/DUlWXa5h.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/{DfrZClGN.js → DVZgPZIa.js} +1 -1
  59. package/build/client/_app/immutable/chunks/DVZgPZIa.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/DVZgPZIa.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/{B40Y6LyW2.js → DsI4egLI2.js} +1 -1
  62. package/build/client/_app/immutable/chunks/DsI4egLI2.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/DsI4egLI2.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/{BkBJU1hz2.js → DwwbPhx_2.js} +1 -1
  65. package/build/client/_app/immutable/chunks/DwwbPhx_2.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/DwwbPhx_2.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/{Dp0FovUz2.js → SoqLurki2.js} +1 -1
  68. package/build/client/_app/immutable/chunks/SoqLurki2.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/SoqLurki2.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/{YZICekcT.js → bYs7XjWt.js} +1 -1
  71. package/build/client/_app/immutable/chunks/bYs7XjWt.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/bYs7XjWt.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/{BwJIzYpC2.js → j_2fbb1D2.js} +1 -1
  74. package/build/client/_app/immutable/chunks/j_2fbb1D2.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/j_2fbb1D2.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/kF7Ff6kI2.js +1 -0
  77. package/build/client/_app/immutable/chunks/kF7Ff6kI2.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/kF7Ff6kI2.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/{BnXjNPst2.js → m6hfVWqp2.js} +1 -1
  80. package/build/client/_app/immutable/chunks/m6hfVWqp2.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/m6hfVWqp2.js.gz +0 -0
  82. package/build/client/_app/immutable/entry/{app.vmpO2T7W.js → app.BoGKtCbP.js} +2 -2
  83. package/build/client/_app/immutable/entry/app.BoGKtCbP.js.br +0 -0
  84. package/build/client/_app/immutable/entry/app.BoGKtCbP.js.gz +0 -0
  85. package/build/client/_app/immutable/entry/start.CGYUjE_a.js +1 -0
  86. package/build/client/_app/immutable/entry/start.CGYUjE_a.js.br +1 -0
  87. package/build/client/_app/immutable/entry/start.CGYUjE_a.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{0.qoKQn--w.js → 0.D2l1xsYO.js} +1 -1
  89. package/build/client/_app/immutable/nodes/0.D2l1xsYO.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/0.D2l1xsYO.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{1.CER_7ska.js → 1.C41ljjsg.js} +1 -1
  92. package/build/client/_app/immutable/nodes/1.C41ljjsg.js.br +2 -0
  93. package/build/client/_app/immutable/nodes/1.C41ljjsg.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{11.CxS5hZWC.js → 11.cksFH0wF.js} +1 -1
  95. package/build/client/_app/immutable/nodes/11.cksFH0wF.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/11.cksFH0wF.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{12.C29FaMcf.js → 12.iC-hNmiA.js} +1 -1
  98. package/build/client/_app/immutable/nodes/12.iC-hNmiA.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/12.iC-hNmiA.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/{13.G3Q6sIJn.js → 13.CncQNyXC.js} +1 -1
  101. package/build/client/_app/immutable/nodes/13.CncQNyXC.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/13.CncQNyXC.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/{14.CiDtyE0J.js → 14.ChOUpRmd.js} +1 -1
  104. package/build/client/_app/immutable/nodes/14.ChOUpRmd.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/14.ChOUpRmd.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/{15.6a1Z5OgA.js → 15.g5Y872zQ.js} +1 -1
  107. package/build/client/_app/immutable/nodes/15.g5Y872zQ.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/15.g5Y872zQ.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/{16.BZ7dint1.js → 16.CwBnCMQO.js} +1 -1
  110. package/build/client/_app/immutable/nodes/16.CwBnCMQO.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/16.CwBnCMQO.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/{2.BCvGSWSR.js → 2.Bt4Iqxol.js} +1 -1
  113. package/build/client/_app/immutable/nodes/2.Bt4Iqxol.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/2.Bt4Iqxol.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/{3.DX8L1NwG.js → 3.BRgVPHQO.js} +1 -1
  116. package/build/client/_app/immutable/nodes/3.BRgVPHQO.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/3.BRgVPHQO.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/{4.C-RdaoBn.js → 4.CeWHKt3l.js} +1 -1
  119. package/build/client/_app/immutable/nodes/4.CeWHKt3l.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/4.CeWHKt3l.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/{5.DHqpNLi-.js → 5.BsDykxT_.js} +2 -2
  122. package/build/client/_app/immutable/nodes/5.BsDykxT_.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/5.BsDykxT_.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/{6.qe40qnap.js → 6.D27zNYvX.js} +1 -1
  125. package/build/client/_app/immutable/nodes/6.D27zNYvX.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/6.D27zNYvX.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/{7.B6YxOsoe.js → 7.DowKev60.js} +1 -1
  128. package/build/client/_app/immutable/nodes/7.DowKev60.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/7.DowKev60.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/{8.CBpQ7YN-.js → 8.TZdtToNp.js} +1 -1
  131. package/build/client/_app/immutable/nodes/8.TZdtToNp.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/8.TZdtToNp.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/{9.BkHM1utz.js → 9.D1ZY4q0l.js} +1 -1
  134. package/build/client/_app/immutable/nodes/9.D1ZY4q0l.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/9.D1ZY4q0l.js.gz +0 -0
  136. package/build/client/_app/version.json +1 -1
  137. package/build/client/_app/version.json.br +0 -0
  138. package/build/client/_app/version.json.gz +0 -0
  139. package/build/server/chunks/0-C67Giiqz.js +15 -0
  140. package/build/server/chunks/1-D4TEKZxt.js +9 -0
  141. package/build/server/chunks/11-JKWtxQrH.js +9 -0
  142. package/build/server/chunks/12-Cy5zVfzG.js +9 -0
  143. package/build/server/chunks/13-Cyv2nG1W.js +9 -0
  144. package/build/server/chunks/14-Dpp_GKen.js +9 -0
  145. package/build/server/chunks/15-Cgbjy5Fv.js +9 -0
  146. package/build/server/chunks/16-B54PgQ3v.js +9 -0
  147. package/build/server/chunks/2-CBlBs4e7.js +9 -0
  148. package/build/server/chunks/{3-SeMwqxmb.js → 3-BeZ4I6nb.js} +3 -3
  149. package/build/server/chunks/4-Cr4eJKVo.js +16 -0
  150. package/build/server/chunks/5-BB-F-IMG.js +9 -0
  151. package/build/server/chunks/6-W_zj8m6s.js +9 -0
  152. package/build/server/chunks/7-BzVt_L8e.js +9 -0
  153. package/build/server/chunks/8-F74e52_o.js +9 -0
  154. package/build/server/chunks/9-VglDkcOF.js +9 -0
  155. package/build/server/chunks/{DeleteFeature-DE-3RZ2b.js → DeleteFeature-C-0RJeFW.js} +5 -4
  156. package/build/server/chunks/{DeleteProject-BPtLIg9P.js → DeleteProject-DJvXB5DR.js} +2 -2
  157. package/build/server/chunks/{DigestView-sP9bkEvU.js → DigestView-Bc6k5k3-.js} +3 -3
  158. package/build/server/chunks/{FeatureCard-D-R-qvuO.js → FeatureCard-DeKMF5V8.js} +4 -4
  159. package/build/server/chunks/{FeatureJson-CQd7hjHT.js → FeatureJson-BoxOjsY6.js} +2 -2
  160. package/build/server/chunks/{FeatureTransforms-CbzB1XIp.js → FeatureTransforms-Ce5inqgh.js} +2 -2
  161. package/build/server/chunks/{ManageTagsDialog-Cer8H3Ez.js → ManageTagsDialog-CVU8mDqF.js} +5 -5
  162. package/build/server/chunks/{ProgressBar-BNGdXSZ6.js → ProgressBar-DXpOQRB8.js} +2 -2
  163. package/build/server/chunks/{ProjectionViewer-BnRASq1Y.js → ProjectionViewer-DGH0qozK.js} +5 -5
  164. package/build/server/chunks/{ProjectsIndex-uQ5h2PyR.js → ProjectsIndex-D1cxuUk9.js} +10 -10
  165. package/build/server/chunks/{RenameTag-CY-VSX7n.js → RenameTag-Bj6Ma2hM.js} +2 -2
  166. package/build/server/chunks/{ScenarioApplier-F4gjKYXA.js → ScenarioApplier-lJmwGaNE.js} +2 -2
  167. package/build/server/chunks/{SimulationClock-BSIt5t00.js → SimulationClock-htaCZkF-.js} +2 -2
  168. package/build/server/chunks/{SimulatorEngine-B5qETs6q.js → SimulatorEngine-B3SFrB6Z.js} +51 -29
  169. package/build/server/chunks/{TagDotStrip-LFLm40Mg.js → TagDotStrip-akUNaLK0.js} +4 -4
  170. package/build/server/chunks/{TagFilterSelect-B9wHuewI.js → TagFilterSelect-JpXYvcx3.js} +7 -7
  171. package/build/server/chunks/{TagPalette-CbroGmlj.js → TagPalette-BRFwaJjA.js} +15 -3
  172. package/build/server/chunks/{_layout.svelte-CnwVmdlP.js → _layout.svelte-XYiCBYdR.js} +18 -18
  173. package/build/server/chunks/{_page.svelte-BUCA93DM.js → _page.svelte-BABuSfQV.js} +20 -20
  174. package/build/server/chunks/{_page.svelte-Drheu4Sc.js → _page.svelte-BF1rZX3W.js} +15 -15
  175. package/build/server/chunks/{_page.svelte-BaF3pHgB.js → _page.svelte-BIPuluus.js} +14 -14
  176. package/build/server/chunks/{_page.svelte-Dq0Tdkcm.js → _page.svelte-BX7sPTsd.js} +14 -14
  177. package/build/server/chunks/{_page.svelte-DFP_li5t.js → _page.svelte-Bhh4sSnB.js} +17 -17
  178. package/build/server/chunks/{_page.svelte-1NQEREb2.js → _page.svelte-Bj9UPFlS.js} +24 -19
  179. package/build/server/chunks/{_page.svelte-BmSS2QNT.js → _page.svelte-CVVhryMZ.js} +11 -11
  180. package/build/server/chunks/{_page.svelte-B0dI7FlY.js → _page.svelte-CjGy40CV.js} +15 -15
  181. package/build/server/chunks/{_page.svelte-BjD6Q_5v.js → _page.svelte-CpnSlvUc.js} +10 -10
  182. package/build/server/chunks/{_page.svelte-Dn0VbwtV.js → _page.svelte-Cszy-ZLO.js} +13 -13
  183. package/build/server/chunks/{_page.svelte-CQT9ve4u.js → _page.svelte-DOL20vdP.js} +13 -13
  184. package/build/server/chunks/_page.svelte-OT0nZoW2.js +37 -0
  185. package/build/server/chunks/_page.svelte-TsXHWCXP.js +37 -0
  186. package/build/server/chunks/{_page.svelte-DROmfQ25.js → _page.svelte-lAHWug7_.js} +14 -14
  187. package/build/server/chunks/{_server.ts-BnuhqwaJ.js → _server.ts-0ElCHXbG.js} +5 -5
  188. package/build/server/chunks/{_server.ts-CnMprzbG.js → _server.ts-BYXrkEFe.js} +4 -4
  189. package/build/server/chunks/{_server.ts-CIz2rGpR.js → _server.ts-BtJ5IP-M.js} +7 -7
  190. package/build/server/chunks/{_server.ts-2urZgAS9.js → _server.ts-CCl3IQPG.js} +7 -7
  191. package/build/server/chunks/{_server.ts-CQWsV6ZV.js → _server.ts-CPFhLm4S.js} +4 -4
  192. package/build/server/chunks/{_server.ts-BrnnOMny.js → _server.ts-CUstD9T_.js} +6 -6
  193. package/build/server/chunks/{_server.ts-C0Zb1cgb.js → _server.ts-CWwUVXTu.js} +5 -5
  194. package/build/server/chunks/{_server.ts-ChSbFwzR.js → _server.ts-ChVZie6n.js} +4 -4
  195. package/build/server/chunks/{_server.ts-BgjSHMu3.js → _server.ts-D-hWM98k.js} +4 -4
  196. package/build/server/chunks/{_server.ts-C2JEr8Ms.js → _server.ts-D7CeBX6G.js} +4 -4
  197. package/build/server/chunks/{_server.ts-CQdrnL9E.js → _server.ts-DAK1uZqQ.js} +4 -4
  198. package/build/server/chunks/{_server.ts-fqltL-8B.js → _server.ts-DDJ1CJmi.js} +4 -4
  199. package/build/server/chunks/{_server.ts-CD1VpPeh.js → _server.ts-DaPmxSzD.js} +4 -4
  200. package/build/server/chunks/{_server.ts-CrPa9LE0.js → _server.ts-DanVrsO_.js} +4 -4
  201. package/build/server/chunks/{_server.ts-C7wV323V.js → _server.ts-DbDbbE8L.js} +8 -8
  202. package/build/server/chunks/{_server.ts-Drbtrq8V.js → _server.ts-Do7W0Hva.js} +7 -7
  203. package/build/server/chunks/{_server.ts--1a7NsXG.js → _server.ts-DqhRyh23.js} +4 -4
  204. package/build/server/chunks/{_server.ts-DV5s47_V.js → _server.ts-l6LlaJtw.js} +4 -4
  205. package/build/server/chunks/{browserContainer-D_2TJuP-.js → browserContainer-f9Fxc9Ip.js} +7 -7
  206. package/build/server/chunks/{buildSearchDocs-DPRjpkAj.js → buildSearchDocs-Dp3eMgv-.js} +2 -2
  207. package/build/server/chunks/{builderModeStore.svelte-BY30XYLJ.js → builderModeStore.svelte-Cq1G1oUM.js} +7 -7
  208. package/build/server/chunks/{client-B0bcPJeN.js → client-BsBoZ_uZ.js} +2 -2
  209. package/build/server/chunks/{error.svelte-B5IrBKdc.js → error.svelte-CSlSmxpR.js} +4 -4
  210. package/build/server/chunks/{featureQueueContext-BuXDR14x.js → featureQueueContext-BBZ5nfog.js} +2 -2
  211. package/build/server/chunks/{featureStore.svelte-BdgsfQDX.js → featureStore.svelte-B_DzQPpz.js} +5 -5
  212. package/build/server/chunks/{internal-Ba5KvKbV.js → internal-DwL-IGZS.js} +2 -2
  213. package/build/server/chunks/{projectBundleClient-D1962hal.js → projectBundleClient-DiNldrQC.js} +3 -3
  214. package/build/server/chunks/{projectContextStore.svelte-COGVBGnw.js → projectContextStore.svelte-BOQaFWQu.js} +3 -3
  215. package/build/server/chunks/{projectFeaturesStore.svelte-BBR-EhGC.js → projectFeaturesStore.svelte-DpLnV8j6.js} +2 -2
  216. package/build/server/chunks/{projectStore.svelte-DgQmCxMU.js → projectStore.svelte-DUesqJNB.js} +4 -4
  217. package/build/server/chunks/{reconcile-D7A5sTg2.js → reconcile-zgOYJYbP.js} +2 -2
  218. package/build/server/chunks/{snapshotRepository-B5Hqj2v7.js → snapshotRepository-CNzTq4py.js} +3 -3
  219. package/build/server/chunks/{state-U7AhtEk3.js → state-BRTzak3G.js} +3 -3
  220. package/build/server/chunks/{stores-DN4bP6Fh.js → stores-uVljJ-SP.js} +3 -3
  221. package/build/server/chunks/{sync-DoAYV9CG.js → sync-DzhcwD3l.js} +2 -2
  222. package/build/server/chunks/{syncAwareRepositories-AXOwohe8.js → syncAwareRepositories-B8hccc-z.js} +2 -2
  223. package/build/server/chunks/{tagPaletteStore.svelte-BF7ri4-8.js → tagPaletteStore.svelte-DUHRIfMM.js} +4 -4
  224. package/build/server/index.js +1 -1
  225. package/build/server/manifest.js +35 -35
  226. package/cli/scenarios/codegen.ts +4 -0
  227. package/mcp-server/resources/operations.ts +17 -4
  228. package/mcp-server/tools/read.ts +108 -0
  229. package/mcp-server/tools/rule.ts +1 -1
  230. package/mcp-server/tools/scenario.ts +2 -0
  231. package/mcp-server/tools/specGaps.ts +59 -4
  232. package/package.json +1 -1
  233. package/src/features/behavior-model/domain/entities/Constant.ts +32 -0
  234. package/src/features/behavior-model/domain/entities/Feature.ts +9 -0
  235. package/src/features/behavior-model/domain/services/DerivedState.ts +6 -2
  236. package/src/features/behavior-model/domain/services/EffectApplier.ts +10 -6
  237. package/src/features/behavior-model/domain/services/FeatureSharedStateNormalizer.ts +1 -0
  238. package/src/features/behavior-model/domain/services/InvariantChecker.ts +3 -2
  239. package/src/features/behavior-model/domain/services/RuleEvaluator.ts +5 -2
  240. package/src/features/behavior-model/domain/services/StatePathReferences.ts +2 -0
  241. package/src/features/behavior-model/domain/services/validation/referenceIntegrity.ts +3 -0
  242. package/src/features/behavior-model/domain/value-objects/Expression.ts +21 -0
  243. package/src/features/behavior-model/domain/value-objects/Operator.ts +8 -0
  244. package/src/features/behavior-model/domain/value-objects/ids.ts +2 -0
  245. package/src/features/maturity/domain/MaturityScorer.ts +1 -0
  246. package/src/features/mcp-tools/application/tools/getDigest.ts +52 -0
  247. package/src/features/mcp-tools/application/tools/index.ts +6 -0
  248. package/src/features/simulator/domain/SimulatorEngine.ts +53 -13
  249. package/build/client/_app/immutable/chunks/B-duocHJ.js.br +0 -0
  250. package/build/client/_app/immutable/chunks/B-duocHJ.js.gz +0 -0
  251. package/build/client/_app/immutable/chunks/B-nR0Q3f.js.br +0 -0
  252. package/build/client/_app/immutable/chunks/B-nR0Q3f.js.gz +0 -0
  253. package/build/client/_app/immutable/chunks/B40Y6LyW2.js.br +0 -0
  254. package/build/client/_app/immutable/chunks/B40Y6LyW2.js.gz +0 -0
  255. package/build/client/_app/immutable/chunks/BNNcE74V.js.br +0 -0
  256. package/build/client/_app/immutable/chunks/BNNcE74V.js.gz +0 -0
  257. package/build/client/_app/immutable/chunks/BYlGYFfX2.js.br +0 -0
  258. package/build/client/_app/immutable/chunks/BYlGYFfX2.js.gz +0 -0
  259. package/build/client/_app/immutable/chunks/BiCeHePl.js +0 -1
  260. package/build/client/_app/immutable/chunks/BiCeHePl.js.br +0 -2
  261. package/build/client/_app/immutable/chunks/BiCeHePl.js.gz +0 -0
  262. package/build/client/_app/immutable/chunks/BkBJU1hz2.js.br +0 -0
  263. package/build/client/_app/immutable/chunks/BkBJU1hz2.js.gz +0 -0
  264. package/build/client/_app/immutable/chunks/BnXjNPst2.js.br +0 -0
  265. package/build/client/_app/immutable/chunks/BnXjNPst2.js.gz +0 -0
  266. package/build/client/_app/immutable/chunks/Bpq8kJkb.js.br +0 -0
  267. package/build/client/_app/immutable/chunks/Bpq8kJkb.js.gz +0 -0
  268. package/build/client/_app/immutable/chunks/Bt8Ir-i1.js.br +0 -0
  269. package/build/client/_app/immutable/chunks/Bt8Ir-i1.js.gz +0 -0
  270. package/build/client/_app/immutable/chunks/Bw8aCT1Q2.js.br +0 -0
  271. package/build/client/_app/immutable/chunks/Bw8aCT1Q2.js.gz +0 -0
  272. package/build/client/_app/immutable/chunks/BwJIzYpC2.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/BwJIzYpC2.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/CAtyGLyp2.js.br +0 -5
  275. package/build/client/_app/immutable/chunks/CAtyGLyp2.js.gz +0 -0
  276. package/build/client/_app/immutable/chunks/CfhTGim_.js.br +0 -0
  277. package/build/client/_app/immutable/chunks/CfhTGim_.js.gz +0 -0
  278. package/build/client/_app/immutable/chunks/CuahcwUn.js.br +0 -0
  279. package/build/client/_app/immutable/chunks/CuahcwUn.js.gz +0 -0
  280. package/build/client/_app/immutable/chunks/CyN2OJjk.js.br +0 -0
  281. package/build/client/_app/immutable/chunks/CyN2OJjk.js.gz +0 -0
  282. package/build/client/_app/immutable/chunks/D8TG_CZy2.js.br +0 -0
  283. package/build/client/_app/immutable/chunks/D8TG_CZy2.js.gz +0 -0
  284. package/build/client/_app/immutable/chunks/DDKHPhI8.js.br +0 -0
  285. package/build/client/_app/immutable/chunks/DDKHPhI8.js.gz +0 -0
  286. package/build/client/_app/immutable/chunks/DGz3YZQB.js.br +0 -0
  287. package/build/client/_app/immutable/chunks/DGz3YZQB.js.gz +0 -0
  288. package/build/client/_app/immutable/chunks/DORQYps52.js.br +0 -0
  289. package/build/client/_app/immutable/chunks/DORQYps52.js.gz +0 -0
  290. package/build/client/_app/immutable/chunks/DX8e74SH.js.br +0 -0
  291. package/build/client/_app/immutable/chunks/DX8e74SH.js.gz +0 -0
  292. package/build/client/_app/immutable/chunks/DfrZClGN.js.br +0 -0
  293. package/build/client/_app/immutable/chunks/DfrZClGN.js.gz +0 -0
  294. package/build/client/_app/immutable/chunks/Dp0FovUz2.js.br +0 -0
  295. package/build/client/_app/immutable/chunks/Dp0FovUz2.js.gz +0 -0
  296. package/build/client/_app/immutable/chunks/DsW-fl3n.js.br +0 -0
  297. package/build/client/_app/immutable/chunks/DsW-fl3n.js.gz +0 -0
  298. package/build/client/_app/immutable/chunks/Dz7lEIMt.js +0 -1
  299. package/build/client/_app/immutable/chunks/Dz7lEIMt.js.br +0 -0
  300. package/build/client/_app/immutable/chunks/Dz7lEIMt.js.gz +0 -0
  301. package/build/client/_app/immutable/chunks/L9Wh3w302.js +0 -1
  302. package/build/client/_app/immutable/chunks/L9Wh3w302.js.br +0 -0
  303. package/build/client/_app/immutable/chunks/L9Wh3w302.js.gz +0 -0
  304. package/build/client/_app/immutable/chunks/YZICekcT.js.br +0 -0
  305. package/build/client/_app/immutable/chunks/YZICekcT.js.gz +0 -0
  306. package/build/client/_app/immutable/entry/app.vmpO2T7W.js.br +0 -0
  307. package/build/client/_app/immutable/entry/app.vmpO2T7W.js.gz +0 -0
  308. package/build/client/_app/immutable/entry/start.C55Lvj0g.js +0 -1
  309. package/build/client/_app/immutable/entry/start.C55Lvj0g.js.br +0 -0
  310. package/build/client/_app/immutable/entry/start.C55Lvj0g.js.gz +0 -0
  311. package/build/client/_app/immutable/nodes/0.qoKQn--w.js.br +0 -0
  312. package/build/client/_app/immutable/nodes/0.qoKQn--w.js.gz +0 -0
  313. package/build/client/_app/immutable/nodes/1.CER_7ska.js.br +0 -3
  314. package/build/client/_app/immutable/nodes/1.CER_7ska.js.gz +0 -0
  315. package/build/client/_app/immutable/nodes/11.CxS5hZWC.js.br +0 -0
  316. package/build/client/_app/immutable/nodes/11.CxS5hZWC.js.gz +0 -0
  317. package/build/client/_app/immutable/nodes/12.C29FaMcf.js.br +0 -0
  318. package/build/client/_app/immutable/nodes/12.C29FaMcf.js.gz +0 -0
  319. package/build/client/_app/immutable/nodes/13.G3Q6sIJn.js.br +0 -0
  320. package/build/client/_app/immutable/nodes/13.G3Q6sIJn.js.gz +0 -0
  321. package/build/client/_app/immutable/nodes/14.CiDtyE0J.js.br +0 -0
  322. package/build/client/_app/immutable/nodes/14.CiDtyE0J.js.gz +0 -0
  323. package/build/client/_app/immutable/nodes/15.6a1Z5OgA.js.br +0 -0
  324. package/build/client/_app/immutable/nodes/15.6a1Z5OgA.js.gz +0 -0
  325. package/build/client/_app/immutable/nodes/16.BZ7dint1.js.br +0 -0
  326. package/build/client/_app/immutable/nodes/16.BZ7dint1.js.gz +0 -0
  327. package/build/client/_app/immutable/nodes/2.BCvGSWSR.js.br +0 -0
  328. package/build/client/_app/immutable/nodes/2.BCvGSWSR.js.gz +0 -0
  329. package/build/client/_app/immutable/nodes/3.DX8L1NwG.js.br +0 -0
  330. package/build/client/_app/immutable/nodes/3.DX8L1NwG.js.gz +0 -0
  331. package/build/client/_app/immutable/nodes/4.C-RdaoBn.js.br +0 -0
  332. package/build/client/_app/immutable/nodes/4.C-RdaoBn.js.gz +0 -0
  333. package/build/client/_app/immutable/nodes/5.DHqpNLi-.js.br +0 -0
  334. package/build/client/_app/immutable/nodes/5.DHqpNLi-.js.gz +0 -0
  335. package/build/client/_app/immutable/nodes/6.qe40qnap.js.br +0 -0
  336. package/build/client/_app/immutable/nodes/6.qe40qnap.js.gz +0 -0
  337. package/build/client/_app/immutable/nodes/7.B6YxOsoe.js.br +0 -0
  338. package/build/client/_app/immutable/nodes/7.B6YxOsoe.js.gz +0 -0
  339. package/build/client/_app/immutable/nodes/8.CBpQ7YN-.js.br +0 -0
  340. package/build/client/_app/immutable/nodes/8.CBpQ7YN-.js.gz +0 -0
  341. package/build/client/_app/immutable/nodes/9.BkHM1utz.js.br +0 -0
  342. package/build/client/_app/immutable/nodes/9.BkHM1utz.js.gz +0 -0
  343. package/build/server/chunks/0-DSFA_Bb9.js +0 -15
  344. package/build/server/chunks/1-BwwzBqTb.js +0 -9
  345. package/build/server/chunks/11-C4I9N-aS.js +0 -9
  346. package/build/server/chunks/12-C39MQICH.js +0 -9
  347. package/build/server/chunks/13-C7hEZequ.js +0 -9
  348. package/build/server/chunks/14-Cc2E3DET.js +0 -9
  349. package/build/server/chunks/15-C3zjzlfF.js +0 -9
  350. package/build/server/chunks/16-DwEY1iTf.js +0 -9
  351. package/build/server/chunks/2-Du6IuYNA.js +0 -9
  352. package/build/server/chunks/4-DiWbB1M5.js +0 -16
  353. package/build/server/chunks/5-DSCQTuoC.js +0 -9
  354. package/build/server/chunks/6-NnEpqfOa.js +0 -9
  355. package/build/server/chunks/7-DHkackDf.js +0 -9
  356. package/build/server/chunks/8-4wTCMW8s.js +0 -9
  357. package/build/server/chunks/9-DLSjXbuB.js +0 -9
  358. package/build/server/chunks/_page.svelte-3l5VeVfw.js +0 -37
  359. package/build/server/chunks/_page.svelte-CCJEAAff.js +0 -37
@@ -1,3 +1,3 @@
1
- import{$ as e,B as t,F as n,J as r,L as i,M as a,N as o,O as s,Q as c,R as l,U as u,V as d,_t as f,a as p,d as m,dt as h,et as g,ft as _,gt as v,h as y,it as b,j as x,l as S,m as C,n as w,ot as T,q as E,r as D,rt as O,s as k,tt as A,u as j,yt as M,z as N}from"./D50Xf4Qj.js";import{n as P}from"./DsW-fl3n.js";import"./xihTtKlq.js";import{D as F,T as ee,_t as I,gt as L,k as R,t as z,w as te,xt as ne,yt as re}from"./Dz7lEIMt.js";import{t as ie}from"./CuahcwUn.js";import"./BiCeHePl.js";import{n as ae}from"./CRYP5_po.js";import{n as oe,t as se}from"./Bt8Ir-i1.js";import{n as B,t as ce}from"./CfhTGim_.js";import{t as le}from"./CyN2OJjk.js";import{t as V}from"./DDKHPhI8.js";import{a as ue,c as H,i as de,l as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./YZICekcT.js";import{t as ve}from"./KBn4SNsy2.js";import{t as ye}from"./BkBJU1hz2.js";import{t as be}from"./BYlGYFfX2.js";var U=n(`<p class="line-clamp-3 text-sm leading-6 text-slate-600"> </p>`),xe=n(`<p class="text-sm leading-6 text-slate-500">No description yet. Add a note so collaborators know what belongs here.</p>`),W=n(`<span aria-hidden="true">⬇</span> Export .unspa`,1),G=n(`<!> <!>`,1),Se=n(`<article data-tour="project-card" class="group relative flex h-full min-h-52 flex-col justify-between overflow-hidden rounded-xl border border-cyan-100 bg-white p-5 shadow-sm shadow-cyan-950/5 transition duration-150 hover:-translate-y-0.5 hover:border-cyan-200 hover:bg-cyan-50/20 hover:shadow-md hover:shadow-cyan-950/10 focus-within:border-cyan-300"><div class="absolute inset-x-0 top-0 h-1 bg-linear-to-r from-brand-500 via-brand-mint to-violet-400"></div> <div class="space-y-3"><div class="flex items-start justify-between gap-3"><a class="block min-w-0 flex-1 after:absolute after:inset-0"><h3 class="truncate text-base font-semibold text-slate-950 group-hover:text-brand-800"> </h3></a> <span class="relative z-10 shrink-0 rounded-md border border-cyan-100 bg-cyan-50 px-2 py-0.5 text-xs font-medium text-brand-800" title="Features in project"> </span></div> <!></div> <div class="mt-5 flex items-end justify-between gap-3 border-t border-hairline pt-3 text-xs text-slate-500"><div class="min-w-0 flex-1 space-y-2"><div class="relative z-10"><!></div> <span class="block truncate"> </span></div> <div class="relative z-10 flex shrink-0 items-center gap-1"><!></div></div></article>`);function Ce(t,n){_(n,!0);let r=p(n,`tagTypeOptions`,19,()=>[]),s=p(n,`deleteLabel`,3,`Delete`);function c(){B.openProject(String(n.summary.id))}var l=Se(),u=A(e(l),2),d=e(u),y=e(d),b=e(y),S=e(b,!0);f(b),f(y);var C=A(y,2),w=e(C);f(C),f(d);var T=A(d,2),D=t=>{var r=U(),i=e(r,!0);f(r),E(()=>a(i,n.summary.description)),o(t,r)},O=e=>{o(e,xe())};x(T,e=>{n.summary.description?e(D):e(O,-1)}),f(u);var k=A(u,2),j=e(k),P=e(j);V(e(P),{get tags(){return n.summary.tags},get onAddTag(){return n.onAddTag},get onRemoveTag(){return n.onRemoveTag},get typeOptions(){return r()}}),f(P);var F=A(P,2),ee=e(F);f(F),f(j);var I=A(j,2);fe(e(I),{placement:`up`,align:`right`,label:`Project actions`,children:(e,t=M)=>{var r=G(),c=g(r);H(c,{onclick:()=>{t()(),n.onExport()},children:(e,t)=>{var n=W();v(),o(e,n)},$$slots:{default:!0}}),H(A(c,2),{danger:!0,onclick:()=>{t()(),n.onDelete()},children:(e,t)=>{v();var n=i();E(()=>a(n,s())),o(e,n)},$$slots:{default:!0}}),o(e,r)},$$slots:{default:!0}}),f(I),f(k),f(l),E(e=>{m(y,`href`,`/projects/${n.summary.id}`),a(S,n.summary.name),a(w,`${n.summary.featureCount??``} feature${n.summary.featureCount===1?``:`s`}`),a(ee,`Updated ${e??``}`)},[()=>new Date(n.summary.updatedAt).toLocaleDateString()]),N(`click`,y,c),o(t,l),h()}l([`click`]);var we=n(`<form data-tour="new-project-form" class="grid gap-3 rounded-xl border border-cyan-100 bg-cyan-50/40 p-4 md:grid-cols-[1fr_1.6fr_auto] md:items-end"><div><label for="proj-name" class="mb-1.5 block text-xs font-medium text-slate-700">Project name</label> <input id="proj-name" type="text" placeholder="e.g. Acme Platform" class="h-10 w-full rounded-md border border-cyan-100 bg-white px-3 text-sm outline-none focus:border-brand-700 focus:ring-2 focus:ring-brand-100" required=""/></div> <div><label for="proj-desc" class="mb-1.5 block text-xs font-medium text-slate-700">Description</label> <input id="proj-desc" data-tour="new-project-description" type="text" placeholder="What product or initiative does this group?" class="h-10 w-full rounded-md border border-cyan-100 bg-white px-3 text-sm outline-none focus:border-brand-700 focus:ring-2 focus:ring-brand-100" required=""/></div> <button type="submit" class="h-10 rounded-md bg-brand-800 px-4 text-sm font-medium text-white hover:bg-brand-900 disabled:cursor-not-allowed disabled:opacity-50"> </button></form>`);function Te(n,i){_(i,!0);let s=b(``),c=b(``),l=b(!1),p=b(null),g=T(()=>ve(ae.currentStep,`new-project`,d(s)));r(()=>{d(p)&&u().then(()=>d(p)?.focus())});async function v(e){if(e.preventDefault(),!d(l)&&d(s).trim().length!==0&&d(c).trim().length!==0){O(l,!0);try{await i.onSubmit(d(s).trim(),d(c).trim()),O(s,``),O(c,``)}finally{O(l,!1)}}}var y=we(),x=e(y),C=A(e(x),2);j(C),k(C,e=>O(p,e),()=>d(p)),f(x);var w=A(x,2),D=A(e(w),2);j(D),f(w);var M=A(w,2),N=e(M,!0);f(M),f(y),E(e=>{m(M,`title`,d(g).blocked?`Tutorial: name must be exactly "${d(g).requiredValue}"`:void 0),M.disabled=e,a(N,d(l)?`Creating...`:`New project`)},[()=>d(l)||d(s).trim().length===0||d(c).trim().length===0||d(g).blocked]),t(`submit`,y,v),S(C,()=>d(s),e=>O(s,e)),S(D,()=>d(c),e=>O(c,e)),o(n,y),h()}var Ee=n(`<span aria-hidden="true">&#x2B06;</span> `,1),De=n(`<button type="button" class="h-8 rounded-md px-2 text-xs font-medium text-slate-500 hover:bg-slate-50 hover:text-slate-900">Clear</button>`),Oe=n(`<div class="rounded-lg border border-dashed border-hairline bg-white p-8 text-center text-sm text-slate-500">Loading projects...</div>`),ke=n(`<div class="rounded-lg border border-red-200 bg-red-50 p-4 text-sm text-red-700"> </div>`),Ae=n(`<div class="mx-auto max-w-md space-y-4 py-4"><div class="space-y-1.5"><p class="text-base font-semibold text-slate-900">Nothing modeled yet</p> <p class="text-sm leading-6 text-slate-600">A <strong>project</strong> holds the features of one product. A <strong>feature</strong> describes one slice of what that product does
1
+ import{$ as e,B as t,F as n,J as r,L as i,M as a,N as o,O as s,Q as c,R as l,U as u,V as d,_t as f,a as p,d as m,dt as h,et as g,ft as _,gt as v,h as y,it as b,j as x,l as S,m as C,n as w,ot as T,q as E,r as D,rt as O,s as k,tt as A,u as j,yt as M,z as N}from"./D50Xf4Qj.js";import{n as P}from"./BdU1Yt_e.js";import"./xihTtKlq.js";import{D as F,T as ee,_t as I,gt as L,k as R,t as z,w as te,xt as ne,yt as re}from"./DPrNvhwL.js";import{t as ie}from"./CPYkXatp.js";import"./BLlLbCwR.js";import{n as ae}from"./CRYP5_po.js";import{n as oe,t as se}from"./DUlWXa5h.js";import{n as B,t as ce}from"./BZzfs2NN.js";import{t as le}from"./CHmg-Am5.js";import{t as V}from"./BDNWGeD3.js";import{a as ue,c as H,i as de,l as fe,n as pe,o as me,r as he,s as ge,t as _e}from"./bYs7XjWt.js";import{t as ve}from"./KBn4SNsy2.js";import{t as ye}from"./DwwbPhx_2.js";import{t as be}from"./CmaTEgmy2.js";var U=n(`<p class="line-clamp-3 text-sm leading-6 text-slate-600"> </p>`),xe=n(`<p class="text-sm leading-6 text-slate-500">No description yet. Add a note so collaborators know what belongs here.</p>`),W=n(`<span aria-hidden="true">⬇</span> Export .unspa`,1),G=n(`<!> <!>`,1),Se=n(`<article data-tour="project-card" class="group relative flex h-full min-h-52 flex-col justify-between overflow-hidden rounded-xl border border-cyan-100 bg-white p-5 shadow-sm shadow-cyan-950/5 transition duration-150 hover:-translate-y-0.5 hover:border-cyan-200 hover:bg-cyan-50/20 hover:shadow-md hover:shadow-cyan-950/10 focus-within:border-cyan-300"><div class="absolute inset-x-0 top-0 h-1 bg-linear-to-r from-brand-500 via-brand-mint to-violet-400"></div> <div class="space-y-3"><div class="flex items-start justify-between gap-3"><a class="block min-w-0 flex-1 after:absolute after:inset-0"><h3 class="truncate text-base font-semibold text-slate-950 group-hover:text-brand-800"> </h3></a> <span class="relative z-10 shrink-0 rounded-md border border-cyan-100 bg-cyan-50 px-2 py-0.5 text-xs font-medium text-brand-800" title="Features in project"> </span></div> <!></div> <div class="mt-5 flex items-end justify-between gap-3 border-t border-hairline pt-3 text-xs text-slate-500"><div class="min-w-0 flex-1 space-y-2"><div class="relative z-10"><!></div> <span class="block truncate"> </span></div> <div class="relative z-10 flex shrink-0 items-center gap-1"><!></div></div></article>`);function Ce(t,n){_(n,!0);let r=p(n,`tagTypeOptions`,19,()=>[]),s=p(n,`deleteLabel`,3,`Delete`);function c(){B.openProject(String(n.summary.id))}var l=Se(),u=A(e(l),2),d=e(u),y=e(d),b=e(y),S=e(b,!0);f(b),f(y);var C=A(y,2),w=e(C);f(C),f(d);var T=A(d,2),D=t=>{var r=U(),i=e(r,!0);f(r),E(()=>a(i,n.summary.description)),o(t,r)},O=e=>{o(e,xe())};x(T,e=>{n.summary.description?e(D):e(O,-1)}),f(u);var k=A(u,2),j=e(k),P=e(j);V(e(P),{get tags(){return n.summary.tags},get onAddTag(){return n.onAddTag},get onRemoveTag(){return n.onRemoveTag},get typeOptions(){return r()}}),f(P);var F=A(P,2),ee=e(F);f(F),f(j);var I=A(j,2);fe(e(I),{placement:`up`,align:`right`,label:`Project actions`,children:(e,t=M)=>{var r=G(),c=g(r);H(c,{onclick:()=>{t()(),n.onExport()},children:(e,t)=>{var n=W();v(),o(e,n)},$$slots:{default:!0}}),H(A(c,2),{danger:!0,onclick:()=>{t()(),n.onDelete()},children:(e,t)=>{v();var n=i();E(()=>a(n,s())),o(e,n)},$$slots:{default:!0}}),o(e,r)},$$slots:{default:!0}}),f(I),f(k),f(l),E(e=>{m(y,`href`,`/projects/${n.summary.id}`),a(S,n.summary.name),a(w,`${n.summary.featureCount??``} feature${n.summary.featureCount===1?``:`s`}`),a(ee,`Updated ${e??``}`)},[()=>new Date(n.summary.updatedAt).toLocaleDateString()]),N(`click`,y,c),o(t,l),h()}l([`click`]);var we=n(`<form data-tour="new-project-form" class="grid gap-3 rounded-xl border border-cyan-100 bg-cyan-50/40 p-4 md:grid-cols-[1fr_1.6fr_auto] md:items-end"><div><label for="proj-name" class="mb-1.5 block text-xs font-medium text-slate-700">Project name</label> <input id="proj-name" type="text" placeholder="e.g. Acme Platform" class="h-10 w-full rounded-md border border-cyan-100 bg-white px-3 text-sm outline-none focus:border-brand-700 focus:ring-2 focus:ring-brand-100" required=""/></div> <div><label for="proj-desc" class="mb-1.5 block text-xs font-medium text-slate-700">Description</label> <input id="proj-desc" data-tour="new-project-description" type="text" placeholder="What product or initiative does this group?" class="h-10 w-full rounded-md border border-cyan-100 bg-white px-3 text-sm outline-none focus:border-brand-700 focus:ring-2 focus:ring-brand-100" required=""/></div> <button type="submit" class="h-10 rounded-md bg-brand-800 px-4 text-sm font-medium text-white hover:bg-brand-900 disabled:cursor-not-allowed disabled:opacity-50"> </button></form>`);function Te(n,i){_(i,!0);let s=b(``),c=b(``),l=b(!1),p=b(null),g=T(()=>ve(ae.currentStep,`new-project`,d(s)));r(()=>{d(p)&&u().then(()=>d(p)?.focus())});async function v(e){if(e.preventDefault(),!d(l)&&d(s).trim().length!==0&&d(c).trim().length!==0){O(l,!0);try{await i.onSubmit(d(s).trim(),d(c).trim()),O(s,``),O(c,``)}finally{O(l,!1)}}}var y=we(),x=e(y),C=A(e(x),2);j(C),k(C,e=>O(p,e),()=>d(p)),f(x);var w=A(x,2),D=A(e(w),2);j(D),f(w);var M=A(w,2),N=e(M,!0);f(M),f(y),E(e=>{m(M,`title`,d(g).blocked?`Tutorial: name must be exactly "${d(g).requiredValue}"`:void 0),M.disabled=e,a(N,d(l)?`Creating...`:`New project`)},[()=>d(l)||d(s).trim().length===0||d(c).trim().length===0||d(g).blocked]),t(`submit`,y,v),S(C,()=>d(s),e=>O(s,e)),S(D,()=>d(c),e=>O(c,e)),o(n,y),h()}var Ee=n(`<span aria-hidden="true">&#x2B06;</span> `,1),De=n(`<button type="button" class="h-8 rounded-md px-2 text-xs font-medium text-slate-500 hover:bg-slate-50 hover:text-slate-900">Clear</button>`),Oe=n(`<div class="rounded-lg border border-dashed border-hairline bg-white p-8 text-center text-sm text-slate-500">Loading projects...</div>`),ke=n(`<div class="rounded-lg border border-red-200 bg-red-50 p-4 text-sm text-red-700"> </div>`),Ae=n(`<div class="mx-auto max-w-md space-y-4 py-4"><div class="space-y-1.5"><p class="text-base font-semibold text-slate-900">Nothing modeled yet</p> <p class="text-sm leading-6 text-slate-600">A <strong>project</strong> holds the features of one product. A <strong>feature</strong> describes one slice of what that product does
2
2
  (its screens, actions, state, and rules) precisely enough to simulate.</p></div> <div class="flex flex-wrap items-center justify-center gap-2"><button type="button" class="rounded-md bg-slate-900 px-4 py-2 text-sm font-medium text-white hover:bg-slate-800">Create first project</button> <button type="button" class="rounded-md border border-brand-300 bg-brand-50 px-4 py-2 text-sm font-medium text-brand-800 hover:bg-brand-100">Take the 3-minute tour</button> <button type="button" class="rounded-md border border-slate-300 bg-white px-4 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50 disabled:cursor-wait disabled:opacity-70"> </button></div></div>`),je=n(`<div class="rounded-lg border border-dashed border-hairline bg-white p-8 text-center text-sm text-slate-500"><!></div>`),Me=n(`<li><!></li>`),Ne=n(`<ul class="grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3"></ul>`),Pe=n(`<div class="fixed inset-0 z-40 flex items-start justify-center bg-slate-950/30 px-4 py-24 backdrop-blur-sm" role="presentation"><div class="w-full max-w-3xl rounded-xl border border-hairline bg-white shadow-xl" role="dialog" aria-modal="true" aria-labelledby="new-project-title"><header class="flex items-start justify-between gap-4 border-b border-hairline px-5 py-4"><div><h2 id="new-project-title" class="text-base font-semibold text-slate-950">New project</h2> <p class="mt-1 text-sm text-slate-500">Create a project for related behavior models.</p></div> <button type="button" class="rounded-md px-2 py-1 text-sm text-slate-500 hover:bg-slate-100 hover:text-slate-900" aria-label="Close">x</button></header> <div class="p-5"><!></div></div></div>`),Fe=n(`<div class="mx-auto max-w-7xl px-4 py-8 sm:px-6"><header class="mb-6 border-b border-slate-200 pb-6"><div class="flex items-center justify-between gap-3"><p class="text-xs font-semibold uppercase tracking-wide text-brand-700">Home</p> <!> <input type="file" accept=".unspa,application/octet-stream,application/json" class="hidden"/></div> <div class="mt-2 max-w-3xl"><h1 class="text-4xl font-semibold tracking-tight text-slate-950">Projects</h1> <p class="mt-2 max-w-2xl text-sm leading-6 text-slate-600">One project per product or codebase. Each groups the features that describe what
3
3
  that product does. Open one to model, simulate, and verify its behavior.</p></div> <div class="mt-6 flex flex-col gap-3 rounded-xl border border-slate-200 bg-white p-3 shadow-sm shadow-slate-950/5 lg:flex-row lg:items-center lg:justify-between"><div class="flex min-w-0 items-center rounded-lg border border-hairline bg-white p-1 lg:flex-1"><label for="project-search" class="sr-only">Search projects</label> <input id="project-search" type="search" placeholder="Search projects..." class="h-9 w-full min-w-0 rounded-md border-0 bg-transparent px-3 text-sm outline-none placeholder:text-slate-400"/> <!></div> <div class="flex flex-col gap-2 sm:flex-row sm:items-center"><!> <label class="flex h-10 items-center gap-2 rounded-lg border border-hairline bg-white px-3 text-sm text-slate-600"><span class="text-xs font-medium">Sort</span> <select class="bg-transparent text-sm font-medium text-slate-800 outline-none"><option>Updated</option><option>Name</option><option>Features</option></select></label> <button type="button" data-tour="new-project-button" class="inline-flex h-10 items-center justify-center gap-2 rounded-md bg-slate-900 px-4 text-sm font-medium text-white hover:bg-slate-800"><span class="text-base leading-none" aria-hidden="true">+</span> New project</button></div></div></header> <section aria-labelledby="projects-list-title"><div class="mb-3 flex flex-col gap-1 sm:flex-row sm:items-end sm:justify-between"><div><h2 id="projects-list-title" class="text-base font-semibold text-slate-950">Your projects</h2> <p class="text-sm text-slate-500">Open a project to inspect the features it groups.</p></div> <p class="text-xs text-slate-500"> </p></div> <!></section></div> <!> <!>`,1);function K(n,l){_(l,!0);let u=null,p=b(`all`),m=b(!1),v=b(!1),S=b(`updated`),V=b(!1);async function ve(){if(!d(V)){O(V,!0);try{await se()}finally{O(V,!1)}}}D(()=>{B.refresh(),le.refresh(),u=ie(e=>{(e.kind===`project`||e.kind===`feature`)&&B.refreshSilent()})}),w(()=>{u?.(),u=null});function U(e){let t=[...e.tags??[]];return e.customTag?.trim()&&t.push({type:e.customTagType?.trim()||`Tag`,value:e.customTag.trim()}),t}async function xe(e,t){await P(`/projects/${await B.create(e,t)}`)}let W=b(!1),G=b(null);function Se(){d(W)||d(G)?.click()}async function we(e){let t=e.target,n=t.files?.[0];if(t.value=``,n){O(W,!0);try{let e=await de(n),t=await ne({title:`Import .unspa file`,message:`Enter the passphrase used when "${n.name}" was exported. A wrong passphrase will not corrupt anything - the file just stays encrypted.`,inputLabel:`Passphrase`,password:!0,confirmLabel:`Import`,tone:`info`});if(t===null)return;let r=await he(e,t);await B.refreshSilent(),await L({title:`Import complete`,message:`Restored project with ${r.featuresImported} feature(s) and ${r.statusesImported} implementation-status sidecar(s).`,tone:`success`}),await P(`/projects/${r.projectId}`)}catch(e){await L({title:`Import failed`,message:e instanceof ue?`That file is not a valid .unspa bundle: ${e.message}`:e instanceof ge?e.message:`Import failed: ${e.message}`,tone:`danger`})}finally{O(W,!1)}}}let K=b(!1);async function Ie(e,t){if(d(K))return;let n=await ne({title:`Export project`,message:`Encrypt "${t}" with a passphrase and download as a .unspa file. You'll need the same passphrase to import it back. Minimum 8 characters.`,inputLabel:`Passphrase`,placeholder:`At least 8 characters`,password:!0,confirmLabel:`Export`,tone:`info`,validate:e=>e.length<8?`Passphrase must be at least 8 characters.`:null});if(n!==null){O(K,!0);try{let{envelope:t,projectName:r}=await pe(e,n);_e(t,r)}catch(e){await L({title:`Export failed`,message:e instanceof me?e.message:`Export failed: ${e.message}`,tone:`danger`})}finally{O(K,!1)}}}async function Le(e){B.stagePendingDelete(e);let t=B.summaries.find(t=>String(t.id)===String(e))?.name??`this project`,n=await z(),r=((await n.useCases.getProject(e))?.featureIds??[]).map(String),i=[];if(r.length===0){if(!await re({title:`Delete "${t}"?`,message:`This project has no linked features. Removing it cannot be undone.`,confirmLabel:`Delete project`,tone:`danger`})){B.clearPendingDelete();return}}else{let e=await Promise.all(r.map(async e=>({id:e,label:(await n.useCases.getFeatureCard(e))?.name??e,defaultChecked:!0}))),a=await I({title:`Delete "${t}"?`,message:`This project links to ${r.length} feature${r.length===1?``:`s`}. Tick the ones you want to delete in the same batch. Anything left unchecked stays available as an unassigned feature.`,items:e,confirmLabel:`Delete project + selected`,cancelLabel:`Cancel`,tone:`danger`});if(!a.confirmed){B.clearPendingDelete();return}i=a.selectedIds}for(let e of i)await n.useCases.deleteFeature(e);await B.remove(e),i.length>0&&await ce.refreshSilent()}function Re(e){e.key===`Escape`&&O(m,!1)}let q=T(()=>(B.search.trim().length===0?[...B.summaries]:B.summaries.filter(e=>{let t=B.search.toLowerCase();return e.name.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t)})).filter(e=>ze(e,d(p))).sort((e,t)=>d(S)===`name`?e.name.localeCompare(t.name):d(S)===`count`?t.featureCount-e.featureCount:new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime()));function ze(e,t){let n=U(e);if(t===`all`)return!0;if(t===`untagged`)return n.length===0;let r=R(t);return n.some(e=>R(e)===r)}let J=T(()=>{let e=[];for(let t of B.summaries)for(let n of U(t))e.push(n);return e});r(()=>{le.registerTypes(d(J).map(e=>e.type))});let Be=T(()=>[...new Set(d(J).map(e=>ee(e.type)))].sort((e,t)=>e.localeCompare(t)));function Ve(e){return B.summaries.filter(t=>ze(t,e)).length}async function He(e,t,n){let r=await z(),i=await r.useCases.getProject(e);i&&(await r.useCases.saveProject({...i,tags:te(U(i),{type:t,value:n})}),await B.refreshSilent())}async function Ue(e,t,n){let r=await z(),i=await r.useCases.getProject(e);if(!i)return;let a=F(U(i),{type:t,value:n});await r.useCases.saveProject({...i,tags:a,customTagType:void 0,customTag:void 0}),d(p)!==`all`&&d(p)!==`untagged`&&R(d(p))===R({type:t,value:n})&&O(p,`all`),await B.refreshSilent()}var We=Fe();t(`keydown`,c,Re);var Ge=g(We),Y=e(Ge),X=e(Y),Ke=A(e(X),2);fe(Ke,{align:`right`,placement:`down`,label:`Page actions`,children:(e,t=M)=>{H(e,{get disabled(){return d(W)},onclick:()=>{t()(),Se()},children:(e,t)=>{var n=Ee(),r=A(g(n));E(()=>a(r,` ${d(W)?`Importing...`:`Import .unspa`}`)),o(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}});var qe=A(Ke,2);k(qe,e=>O(G,e),()=>d(G)),f(X);var Je=A(X,4),Z=e(Je),Q=A(e(Z),2);j(Q);var Ye=A(Q,2),Xe=e=>{var t=De();N(`click`,t,()=>B.setSearch(``)),o(e,t)},Ze=T(()=>B.search.trim().length>0);x(Ye,e=>{d(Ze)&&e(Xe)}),f(Z);var Qe=A(Z,2),$e=e(Qe);ye($e,{get tags(){return d(J)},get value(){return d(p)},onChange:e=>O(p,e,!0),onManage:()=>O(v,!0),countLabel:Ve});var $=A($e,2),et=A(e($),2),tt=e(et);tt.value=tt.__value=`updated`;var nt=A(tt);nt.value=nt.__value=`name`;var rt=A(nt);rt.value=rt.__value=`count`,f(et),f($);var it=A($,2);f(Qe),f(Je),f(Y);var at=A(Y,2),ot=e(at),st=A(e(ot),2),ct=e(st);f(st),f(ot);var lt=A(ot,2),ut=e=>{o(e,Oe())},dt=t=>{var n=ke(),r=e(n,!0);f(n),E(()=>a(r,B.error)),o(t,n)},ft=t=>{var n=je(),r=e(n),s=t=>{var n=Ae(),r=A(e(n),2),i=e(r),s=A(i,2),c=A(s,2),l=e(c,!0);f(c),f(r),f(n),E(()=>{c.disabled=d(V),a(l,d(V)?`Loading...`:`Explore the sample project`)}),N(`click`,i,()=>O(m,!0)),N(`click`,s,()=>ae.start(oe)),N(`click`,c,ve),o(t,n)},c=e=>{o(e,i(`No projects match your search.`))};x(r,e=>{B.summaries.length===0?e(s):e(c,-1)}),f(n),o(t,n)},pt=t=>{var n=Ne();s(n,21,()=>d(q),e=>e.id,(t,n)=>{var r=Me();Ce(e(r),{get summary(){return d(n)},get tagTypeOptions(){return d(Be)},onAddTag:(e,t)=>He(d(n).id,e,t),onRemoveTag:(e,t)=>Ue(d(n).id,e,t),onExport:()=>Ie(d(n).id,d(n).name),onDelete:()=>Le(d(n).id)}),f(r),o(t,r)}),f(n),o(t,n)};x(lt,e=>{B.loading?e(ut):B.error?e(dt,1):d(q).length===0?e(ft,2):e(pt,-1)}),f(at),f(Ge);var mt=A(Ge,2),ht=t=>{var n=Pe(),r=e(n),i=e(r),a=A(e(i),2);f(i);var s=A(i,2);Te(e(s),{onSubmit:xe}),f(s),f(r),f(n),N(`click`,n,e=>{e.currentTarget===e.target&&O(m,!1)}),N(`click`,a,()=>O(m,!1)),o(t,n)};x(mt,e=>{d(m)&&e(ht)}),be(A(mt,2),{get open(){return d(v)},get tags(){return d(J)},onClose:()=>O(v,!1),onRenamed:()=>B.refreshSilent()}),E(()=>{C(Q,B.search),a(ct,`${d(q).length??``} shown`)}),N(`change`,qe,we),N(`input`,Q,e=>B.setSearch(e.target.value)),y(et,()=>d(S),e=>O(S,e)),N(`click`,it,()=>O(m,!0)),o(n,We),h()}l([`change`,`input`,`click`]);export{K as t};
@@ -1 +1 @@
1
- import{$ as e,B as t,F as n,I as r,M as i,N as a,O as o,P as s,R as c,U as l,V as u,_t as d,a as f,d as p,dt as m,et as h,ft as g,it as _,j as v,k as y,l as b,ot as x,q as S,rt as C,s as w,tt as T,u as E,v as D,y as O,z as k}from"./D50Xf4Qj.js";import"./xihTtKlq.js";import{A,T as j}from"./Dz7lEIMt.js";import{t as M}from"./CyN2OJjk.js";var N={isAbsent:!0,dotBackground:null,pillBackground:`#ffffff`,pillRing:`#e2e8f0`,pillText:`#475569`},P=e=>e?{isAbsent:!1,dotBackground:e,pillBackground:`color-mix(in srgb, ${e} 18%, white)`,pillRing:`color-mix(in srgb, ${e} 45%, white)`,pillText:`color-mix(in srgb, ${e} 55%, black)`}:N,F=n(`<span aria-hidden="true"></span>`),I=r(`<svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="6.5" fill="white" stroke="#cbd5e1" stroke-width="1"></circle><line x1="3.5" y1="12.5" x2="12.5" y2="3.5" stroke="#dc2626" stroke-width="1.5" stroke-linecap="round"></line></svg>`);function L(e,t){let n=f(t,`size`,3,2),r={1.5:`size-1.5`,2:`size-2`,2.5:`size-2.5`,3:`size-3`,4:`size-4`,5:`size-5`},i=x(()=>r[n()]);var o=s(),c=h(o),l=e=>{var n=F();S(()=>{O(n,1,`block shrink-0 rounded-full ring-1 ring-inset ring-black/10 ${u(i)??``}`),D(n,`background-color: ${t.color??``};`)}),a(e,n)},d=e=>{var t=I();S(()=>O(t,0,`block shrink-0 ${u(i)??``}`)),a(e,t)};v(c,e=>{t.color?e(l):e(d,-1)}),a(e,o)}var R=0,z=n(`<button type="button" class="ml-0.5 flex size-3 shrink-0 items-center justify-center rounded-full text-[9px] leading-none opacity-0 transition group-hover/chip:opacity-70 hover:opacity-100! hover:bg-white/60">&times;</button>`),B=n(`<span class="group/chip inline-flex max-w-full items-center gap-1 rounded-full px-1.5 py-0.5 text-[10px] font-medium"><!> <span class="truncate"> </span> <!></span>`),V=n(`<button type="button" aria-label="Add tag" title="Add tag"> </button>`),H=n(`<option></option>`),U=n(`<datalist></datalist>`),W=n(`<form class="inline-flex items-center gap-1"><input type="text" placeholder="Type" class="h-5.5 w-20 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <!> <input type="text" placeholder="Value" class="h-5.5 w-24 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <button type="submit" class="h-5.5 rounded bg-slate-900 px-2 text-[11px] font-medium text-white disabled:opacity-40">Add</button> <button type="button" class="h-5.5 rounded px-1 text-[11px] text-slate-500 hover:text-slate-800">Cancel</button></form>`),G=n(`<div class="flex flex-wrap items-center gap-1.5"><!> <!></div>`);function K(n,r){g(r,!0);let c=f(r,`typeOptions`,19,()=>[]),N=f(r,`addLabel`,3,`+`),F=_(!1),I=_(``),K=_(``),q=_(null),J=`tagdotstrip-types-${++R}`,Y=x(()=>!!(r.tags&&r.tags.length>0));async function X(){C(F,!0),await l(),u(q)?.focus()}function Z(){C(F,!1),C(I,``),C(K,``)}async function ee(e){e.preventDefault();let t=u(I).trim(),n=u(K).trim();!t||!n||(await r.onAddTag?.(t,n),Z())}function Q(e){e.key===`Escape`&&Z()}var $=s(),te=h($),ne=n=>{var l=G(),f=e(l),m=t=>{var n=s();o(h(n),17,()=>r.tags,y,(t,n)=>{let o=x(()=>M.colorForTag(u(n))),s=x(()=>P(u(o)));var c=B(),l=e(c);L(l,{get color(){return u(o)},size:1.5});var f=T(l,2),m=e(f,!0);d(f);var h=T(f,2),g=e=>{var t=z();S((e,n)=>{p(t,`aria-label`,e),p(t,`title`,n)},[()=>`Remove tag ${A(u(n))}`,()=>`Remove ${A(u(n))}`]),k(`click`,t,()=>r.onRemoveTag?.(u(n).type,u(n).value)),a(e,t)};v(h,e=>{r.onRemoveTag&&e(g)}),d(c),S((e,t)=>{D(c,`background-color: ${u(s).pillBackground??``}; color: ${u(s).pillText??``}; box-shadow: inset 0 0 0 1px ${u(s).pillRing??``};`),p(c,`title`,e),i(m,t)},[()=>A(u(n)),()=>j(u(n).value)]),a(t,c)}),a(t,n)};v(f,e=>{r.tags&&e(m)});var g=T(f,2),_=n=>{var r=s(),l=h(r),f=t=>{var n=V();let r;var o=e(n,!0);d(n),S(()=>{r=O(n,1,`inline-flex h-4 items-center rounded-sm px-1 text-[10px] font-medium text-slate-400 opacity-0 transition group-hover:opacity-100 group-focus-within:opacity-100 hover:bg-slate-100 hover:text-slate-700`,null,r,{"opacity-100":!u(Y)}),i(o,N())}),k(`click`,n,X),a(t,n)},m=n=>{var r=W(),i=e(r);E(i),w(i,e=>C(q,e),()=>u(q));var s=T(i,2),l=e=>{var t=U();o(t,20,c,e=>e,(e,t)=>{var n=H(),r={};S(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),a(e,n)}),d(t),S(()=>p(t,`id`,J)),a(e,t)};v(s,e=>{c().length>0&&e(l)});var f=T(s,2);E(f);var m=T(f,2),h=T(m,2);d(r),S(e=>{p(i,`list`,c().length>0?J:void 0),m.disabled=e},[()=>u(I).trim().length===0||u(K).trim().length===0]),t(`submit`,r,ee),k(`keydown`,i,Q),b(i,()=>u(I),e=>C(I,e)),k(`keydown`,f,Q),b(f,()=>u(K),e=>C(K,e)),k(`click`,h,Z),a(n,r)};v(l,e=>{u(F)?e(m,-1):e(f)}),a(n,r)};v(g,e=>{r.onAddTag&&e(_)}),d(l),a(n,l)};v(te,e=>{(u(Y)||r.onAddTag)&&e(ne)}),a(n,$),m()}c([`click`,`keydown`]);export{L as n,K as t};
1
+ import{$ as e,B as t,F as n,I as r,M as i,N as a,O as o,P as s,R as c,U as l,V as u,_t as d,a as f,d as p,dt as m,et as h,ft as g,it as _,j as v,k as y,l as b,ot as x,q as S,rt as C,s as w,tt as T,u as E,v as D,y as O,z as k}from"./D50Xf4Qj.js";import"./xihTtKlq.js";import{A,T as j}from"./DPrNvhwL.js";import{t as M}from"./CHmg-Am5.js";var N={isAbsent:!0,dotBackground:null,pillBackground:`#ffffff`,pillRing:`#e2e8f0`,pillText:`#475569`},P=e=>e?{isAbsent:!1,dotBackground:e,pillBackground:`color-mix(in srgb, ${e} 18%, white)`,pillRing:`color-mix(in srgb, ${e} 45%, white)`,pillText:`color-mix(in srgb, ${e} 55%, black)`}:N,F=n(`<span aria-hidden="true"></span>`),I=r(`<svg viewBox="0 0 16 16" aria-hidden="true"><circle cx="8" cy="8" r="6.5" fill="white" stroke="#cbd5e1" stroke-width="1"></circle><line x1="3.5" y1="12.5" x2="12.5" y2="3.5" stroke="#dc2626" stroke-width="1.5" stroke-linecap="round"></line></svg>`);function L(e,t){let n=f(t,`size`,3,2),r={1.5:`size-1.5`,2:`size-2`,2.5:`size-2.5`,3:`size-3`,4:`size-4`,5:`size-5`},i=x(()=>r[n()]);var o=s(),c=h(o),l=e=>{var n=F();S(()=>{O(n,1,`block shrink-0 rounded-full ring-1 ring-inset ring-black/10 ${u(i)??``}`),D(n,`background-color: ${t.color??``};`)}),a(e,n)},d=e=>{var t=I();S(()=>O(t,0,`block shrink-0 ${u(i)??``}`)),a(e,t)};v(c,e=>{t.color?e(l):e(d,-1)}),a(e,o)}var R=0,z=n(`<button type="button" class="ml-0.5 flex size-3 shrink-0 items-center justify-center rounded-full text-[9px] leading-none opacity-0 transition group-hover/chip:opacity-70 hover:opacity-100! hover:bg-white/60">&times;</button>`),B=n(`<span class="group/chip inline-flex max-w-full items-center gap-1 rounded-full px-1.5 py-0.5 text-[10px] font-medium"><!> <span class="truncate"> </span> <!></span>`),V=n(`<button type="button" aria-label="Add tag" title="Add tag"> </button>`),H=n(`<option></option>`),U=n(`<datalist></datalist>`),W=n(`<form class="inline-flex items-center gap-1"><input type="text" placeholder="Type" class="h-5.5 w-20 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <!> <input type="text" placeholder="Value" class="h-5.5 w-24 rounded border border-slate-300 px-1.5 text-[11px] outline-none focus:border-brand-700"/> <button type="submit" class="h-5.5 rounded bg-slate-900 px-2 text-[11px] font-medium text-white disabled:opacity-40">Add</button> <button type="button" class="h-5.5 rounded px-1 text-[11px] text-slate-500 hover:text-slate-800">Cancel</button></form>`),G=n(`<div class="flex flex-wrap items-center gap-1.5"><!> <!></div>`);function K(n,r){g(r,!0);let c=f(r,`typeOptions`,19,()=>[]),N=f(r,`addLabel`,3,`+`),F=_(!1),I=_(``),K=_(``),q=_(null),J=`tagdotstrip-types-${++R}`,Y=x(()=>!!(r.tags&&r.tags.length>0));async function X(){C(F,!0),await l(),u(q)?.focus()}function Z(){C(F,!1),C(I,``),C(K,``)}async function ee(e){e.preventDefault();let t=u(I).trim(),n=u(K).trim();!t||!n||(await r.onAddTag?.(t,n),Z())}function Q(e){e.key===`Escape`&&Z()}var $=s(),te=h($),ne=n=>{var l=G(),f=e(l),m=t=>{var n=s();o(h(n),17,()=>r.tags,y,(t,n)=>{let o=x(()=>M.colorForTag(u(n))),s=x(()=>P(u(o)));var c=B(),l=e(c);L(l,{get color(){return u(o)},size:1.5});var f=T(l,2),m=e(f,!0);d(f);var h=T(f,2),g=e=>{var t=z();S((e,n)=>{p(t,`aria-label`,e),p(t,`title`,n)},[()=>`Remove tag ${A(u(n))}`,()=>`Remove ${A(u(n))}`]),k(`click`,t,()=>r.onRemoveTag?.(u(n).type,u(n).value)),a(e,t)};v(h,e=>{r.onRemoveTag&&e(g)}),d(c),S((e,t)=>{D(c,`background-color: ${u(s).pillBackground??``}; color: ${u(s).pillText??``}; box-shadow: inset 0 0 0 1px ${u(s).pillRing??``};`),p(c,`title`,e),i(m,t)},[()=>A(u(n)),()=>j(u(n).value)]),a(t,c)}),a(t,n)};v(f,e=>{r.tags&&e(m)});var g=T(f,2),_=n=>{var r=s(),l=h(r),f=t=>{var n=V();let r;var o=e(n,!0);d(n),S(()=>{r=O(n,1,`inline-flex h-4 items-center rounded-sm px-1 text-[10px] font-medium text-slate-400 opacity-0 transition group-hover:opacity-100 group-focus-within:opacity-100 hover:bg-slate-100 hover:text-slate-700`,null,r,{"opacity-100":!u(Y)}),i(o,N())}),k(`click`,n,X),a(t,n)},m=n=>{var r=W(),i=e(r);E(i),w(i,e=>C(q,e),()=>u(q));var s=T(i,2),l=e=>{var t=U();o(t,20,c,e=>e,(e,t)=>{var n=H(),r={};S(()=>{r!==(r=t)&&(n.value=(n.__value=t)??``)}),a(e,n)}),d(t),S(()=>p(t,`id`,J)),a(e,t)};v(s,e=>{c().length>0&&e(l)});var f=T(s,2);E(f);var m=T(f,2),h=T(m,2);d(r),S(e=>{p(i,`list`,c().length>0?J:void 0),m.disabled=e},[()=>u(I).trim().length===0||u(K).trim().length===0]),t(`submit`,r,ee),k(`keydown`,i,Q),b(i,()=>u(I),e=>C(I,e)),k(`keydown`,f,Q),b(f,()=>u(K),e=>C(K,e)),k(`click`,h,Z),a(n,r)};v(l,e=>{u(F)?e(m,-1):e(f)}),a(n,r)};v(g,e=>{r.onAddTag&&e(_)}),d(l),a(n,l)};v(te,e=>{(u(Y)||r.onAddTag)&&e(ne)}),a(n,$),m()}c([`click`,`keydown`]);export{L as n,K as t};
@@ -1,4 +1,4 @@
1
- import{V as e,it as t,rt as n}from"./D50Xf4Qj.js";import{ht as r}from"./Dz7lEIMt.js";var i=(e,t)=>`${e}:${t}`,a=`data`,o=`snapshot`,s=()=>new Map,c=e=>{let t=s();return e.forEach((e,n)=>{t.set(n,e)}),t},l=(e,t,n)=>{let r=e.get(t);return r===void 0&&e.set(t,r=n()),r},u=(e,t)=>{let n=[];for(let[r,i]of e)n.push(t(i,r));return n},d=(e,t)=>{for(let[n,r]of e)if(t(r,n))return!0;return!1},f=()=>new Set,ee=e=>e[e.length-1],te=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},p=Array.from,ne=(e,t)=>{for(let n=0;n<e.length;n++)if(!t(e[n],n,e))return!1;return!0},re=(e,t)=>{for(let n=0;n<e.length;n++)if(t(e[n],n,e))return!0;return!1},ie=(e,t)=>{let n=Array(e);for(let r=0;r<e;r++)n[r]=t(r,n);return n},ae=Array.isArray,oe=class{constructor(){this._observers=s()}on(e,t){return l(this._observers,e,f).add(t),t}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){let n=this._observers.get(e);n!==void 0&&(n.delete(t),n.size===0&&this._observers.delete(e))}emit(e,t){return p((this._observers.get(e)||s()).values()).forEach(e=>e(...t))}destroy(){this._observers=s()}},m=Math.floor,se=Math.abs,ce=(e,t)=>e<t?e:t,h=(e,t)=>e>t?e:t;Number.isNaN;var le=e=>e===0?1/e<0:e<0,ue=2**53-1,de=-(2**53-1),fe=Number.isInteger||(e=>typeof e==`number`&&isFinite(e)&&m(e)===e);Number.isNaN,Number.parseInt;var pe=String.fromCharCode;String.fromCodePoint,pe(65535);var me=e=>e.toLowerCase(),he=/^\s*/g,ge=e=>e.replace(he,``),_e=/([A-Z])/g,ve=(e,t)=>ge(e.replace(_e,e=>`${t}${me(e)}`)),ye=e=>{let t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r},be=typeof TextEncoder<`u`?new TextEncoder:null,xe=be?e=>be.encode(e):ye,Se=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0});Se&&Se.decode(new Uint8Array).length===1&&(Se=null);var Ce=(e,t)=>ie(t,()=>e).join(``),we=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}},Te=()=>new we,Ee=e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t},g=e=>{let t=new Uint8Array(Ee(e)),n=0;for(let r=0;r<e.bufs.length;r++){let i=e.bufs[r];t.set(i,n),n+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},De=(e,t)=>{let n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(h(n,t)*2),e.cpos=0)},_=(e,t)=>{let n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(n*2),e.cpos=0),e.cbuf[e.cpos++]=t},Oe=_,v=(e,t)=>{for(;t>127;)_(e,128|127&t),t=m(t/128);_(e,127&t)},ke=(e,t)=>{let n=le(t);for(n&&(t=-t),_(e,(t>63?128:0)|(n?64:0)|63&t),t=m(t/64);t>0;)_(e,(t>127?128:0)|127&t),t=m(t/128)},Ae=new Uint8Array(3e4),je=Ae.length/3,y=be&&be.encodeInto?(e,t)=>{if(t.length<je){let n=be.encodeInto(t,Ae).written||0;v(e,n);for(let t=0;t<n;t++)_(e,Ae[t])}else b(e,xe(t))}:(e,t)=>{let n=unescape(encodeURIComponent(t)),r=n.length;v(e,r);for(let t=0;t<r;t++)_(e,n.codePointAt(t))},Me=(e,t)=>{let n=e.cbuf.length,r=e.cpos,i=ce(n-r,t.length),a=t.length-i;e.cbuf.set(t.subarray(0,i),r),e.cpos+=i,a>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(h(n*2,a)),e.cbuf.set(t.subarray(i)),e.cpos=a)},b=(e,t)=>{v(e,t.byteLength),Me(e,t)},Ne=(e,t)=>{De(e,t);let n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Pe=(e,t)=>Ne(e,4).setFloat32(0,t,!1),Fe=(e,t)=>Ne(e,8).setFloat64(0,t,!1),Ie=(e,t)=>Ne(e,8).setBigInt64(0,t,!1),Le=new DataView(new ArrayBuffer(4)),Re=e=>(Le.setFloat32(0,e),Le.getFloat32(0)===e),ze=(e,t)=>{switch(typeof t){case`string`:_(e,119),y(e,t);break;case`number`:fe(t)&&se(t)<=2147483647?(_(e,125),ke(e,t)):Re(t)?(_(e,124),Pe(e,t)):(_(e,123),Fe(e,t));break;case`bigint`:_(e,122),Ie(e,t);break;case`object`:if(t===null)_(e,126);else if(ae(t)){_(e,117),v(e,t.length);for(let n=0;n<t.length;n++)ze(e,t[n])}else if(t instanceof Uint8Array)_(e,116),b(e,t);else{_(e,118);let n=Object.keys(t);v(e,n.length);for(let r=0;r<n.length;r++){let i=n[r];y(e,i),ze(e,t[i])}}break;case`boolean`:_(e,t?120:121);break;default:_(e,127)}},Be=class extends we{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&v(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}},Ve=e=>{e.count>0&&(ke(e.encoder,e.count===1?e.s:-e.s),e.count>1&&v(e.encoder,e.count-2))},He=class{constructor(){this.encoder=new we,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Ve(this),this.count=1,this.s=e)}toUint8Array(){return Ve(this),g(this.encoder)}},Ue=e=>{if(e.count>0){let t=e.diff*2+(e.count===1?0:1);ke(e.encoder,t),e.count>1&&v(e.encoder,e.count-2)}},We=class{constructor(){this.encoder=new we,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Ue(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Ue(this),g(this.encoder)}},Ge=class{constructor(){this.sarr=[],this.s=``,this.lensE=new He}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=``),this.lensE.write(e.length)}toUint8Array(){let e=new we;return this.sarr.push(this.s),this.s=``,y(e,this.sarr.join(``)),Me(e,this.lensE.toUint8Array()),g(e)}},x=e=>Error(e),S=()=>{throw x(`Method unimplemented`)},C=()=>{throw x(`Unexpected case`)},Ke=x(`Unexpected end of array`),qe=x(`Integer out of Range`),Je=class{constructor(e){this.arr=e,this.pos=0}},Ye=e=>new Je(e),Xe=e=>e.pos!==e.arr.length,Ze=(e,t)=>{let n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n},w=e=>Ze(e,T(e)),Qe=e=>e.arr[e.pos++],T=e=>{let t=0,n=1,r=e.arr.length;for(;e.pos<r;){let r=e.arr[e.pos++];if(t+=(r&127)*n,n*=128,r<128)return t;if(t>ue)throw qe}throw Ke},$e=e=>{let t=e.arr[e.pos++],n=t&63,r=64,i=(t&64)>0?-1:1;if(!(t&128))return i*n;let a=e.arr.length;for(;e.pos<a;){if(t=e.arr[e.pos++],n+=(t&127)*r,r*=128,t<128)return i*n;if(n>ue)throw qe}throw Ke},et=Se?e=>Se.decode(w(e)):e=>{let t=T(e);if(t===0)return``;{let n=String.fromCodePoint(Qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Qe(e));else for(;t>0;){let r=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,i),t-=r}return decodeURIComponent(escape(n))}},tt=(e,t)=>{let n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},nt=[e=>void 0,e=>null,$e,e=>tt(e,4).getFloat32(0,!1),e=>tt(e,8).getFloat64(0,!1),e=>tt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,et,e=>{let t=T(e),n={};for(let r=0;r<t;r++){let t=et(e);n[t]=rt(e)}return n},e=>{let t=T(e),n=[];for(let r=0;r<t;r++)n.push(rt(e));return n},w],rt=e=>nt[127-Qe(e)](e),it=class extends Je{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),Xe(this)?this.count=T(this)+1:this.count=-1),this.count--,this.s}},at=class extends Je{constructor(e){super(e),this.s=0,this.count=0}read(){if(this.count===0){this.s=$e(this);let e=le(this.s);this.count=1,e&&(this.s=-this.s,this.count=T(this)+2)}return this.count--,this.s}},ot=class extends Je{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){let e=$e(this),t=e&1;this.diff=m(e/2),this.count=1,t&&(this.count=T(this)+2)}return this.s+=this.diff,this.count--,this.s}},st=class{constructor(e){this.decoder=new at(e),this.str=et(this.decoder),this.spos=0}read(){let e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}};crypto.subtle;var ct=crypto.getRandomValues.bind(crypto),lt=()=>ct(new Uint32Array(1))[0],ut=`10000000-1000-4000-8000-100000000000`,dt=()=>ut.replace(/[018]/g,e=>(e^lt()&15>>e/4).toString(16)),ft=Date.now,pt=e=>new Promise(e);Promise.all.bind(Promise);var mt=e=>e===void 0?null:e,ht=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{typeof localStorage<`u`&&localStorage&&(ht=localStorage)}catch{}var gt=ht,_t=Symbol(`Equality`),vt=(e,t)=>e===t||!!e?.[_t]?.(t)||!1,yt=e=>typeof e==`object`,bt=Object.assign,xt=Object.keys,St=(e,t)=>{for(let n in e)t(e[n],n)},Ct=e=>xt(e).length,wt=e=>{for(let t in e)return!1;return!0},Tt=(e,t)=>{for(let n in e)if(!t(e[n],n))return!1;return!0},Et=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Dt=(e,t)=>e===t||Ct(e)===Ct(t)&&Tt(e,(e,n)=>(e!==void 0||Et(t,n))&&vt(t[n],e)),Ot=Object.freeze,kt=e=>{for(let t in e){let n=e[t];(typeof n==`object`||typeof n==`function`)&&kt(e[t])}return Ot(e)},At=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&At(e,t,n+1)}},jt=e=>e,Mt=(e,t)=>{if(e===t)return!0;if(e==null||t==null||e.constructor!==t.constructor&&(e.constructor||Object)!==(t.constructor||Object))return!1;if(e[_t]!=null)return e[_t](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(let n of e.keys())if(!t.has(n)||!Mt(e.get(n),t.get(n)))return!1;break;case void 0:case Object:if(Ct(e)!==Ct(t))return!1;for(let n in e)if(!Et(e,n)||!Mt(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Mt(e[n],t[n]))return!1;break;default:return!1}return!0},Nt=(e,t)=>t.includes(e),Pt=typeof process<`u`&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<`u`?process:0)===`[object process]`;typeof navigator<`u`&&/Mac/.test(navigator.platform);var E,Ft=[],It=()=>{if(E===void 0)if(Pt){E=s();let e=process.argv,t=null;for(let n=0;n<e.length;n++){let r=e[n];r[0]===`-`?(t!==null&&E.set(t,``),t=r):t===null?Ft.push(r):(E.set(t,r),t=null)}t!==null&&E.set(t,``)}else typeof location==`object`?(E=s(),(location.search||`?`).slice(1).split(`&`).forEach(e=>{if(e.length!==0){let[t,n]=e.split(`=`);E.set(`--${ve(t,`-`)}`,n),E.set(`-${ve(t,`-`)}`,n)}})):E=s();return E},Lt=e=>It().has(e),Rt=e=>mt(Pt?{}[e.toUpperCase().replaceAll(`-`,`_`)]:gt.getItem(e)),zt=e=>Lt(`--`+e)||Rt(e)!==null,Bt=zt(`production`),Vt=Pt&&Nt({}.FORCE_COLOR,[`true`,`1`,`2`])||!Lt(`--no-colors`)&&!zt(`no-color`)&&(!Pt||process.stdout.isTTY)&&(!Pt||Lt(`--color`)||Rt(`COLORTERM`)!==null||(Rt(`TERM`)||``).includes(`color`)),Ht=e=>new Uint8Array(e),Ut=e=>{let t=Ht(e.byteLength);return t.set(e),t},Wt=class{constructor(e,t){this.left=e,this.right=t}},D=(e,t)=>new Wt(e,t),Gt=e=>e.next()>=.5,Kt=(e,t,n)=>m(e.next()*(n+1-t)+t),qt=(e,t,n)=>m(e.next()*(n+1-t)+t),Jt=(e,t,n)=>qt(e,t,n),Yt=e=>pe(Jt(e,97,122)),Xt=(e,t=0,n=20)=>{let r=Jt(e,t,n),i=``;for(let t=0;t<r;t++)i+=Yt(e);return i},Zt=(e,t)=>t[Jt(e,0,t.length-1)],Qt=Symbol(`0schema`),$t=class{constructor(){this._rerrs=[]}extend(e,t,n,r=null){this._rerrs.push({path:e,expected:t,has:n,message:r})}toString(){let e=[];for(let t=this._rerrs.length-1;t>0;t--){let n=this._rerrs[t];e.push(Ce(` `,(this._rerrs.length-t)*2)+`${n.path==null?``:`[${n.path}] `}${n.has} doesn't match ${n.expected}. ${n.message}`)}return e.join(`
1
+ import{V as e,it as t,rt as n}from"./D50Xf4Qj.js";import{ht as r}from"./DPrNvhwL.js";var i=(e,t)=>`${e}:${t}`,a=`data`,o=`snapshot`,s=()=>new Map,c=e=>{let t=s();return e.forEach((e,n)=>{t.set(n,e)}),t},l=(e,t,n)=>{let r=e.get(t);return r===void 0&&e.set(t,r=n()),r},u=(e,t)=>{let n=[];for(let[r,i]of e)n.push(t(i,r));return n},d=(e,t)=>{for(let[n,r]of e)if(t(r,n))return!0;return!1},f=()=>new Set,ee=e=>e[e.length-1],te=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},p=Array.from,ne=(e,t)=>{for(let n=0;n<e.length;n++)if(!t(e[n],n,e))return!1;return!0},re=(e,t)=>{for(let n=0;n<e.length;n++)if(t(e[n],n,e))return!0;return!1},ie=(e,t)=>{let n=Array(e);for(let r=0;r<e;r++)n[r]=t(r,n);return n},ae=Array.isArray,oe=class{constructor(){this._observers=s()}on(e,t){return l(this._observers,e,f).add(t),t}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){let n=this._observers.get(e);n!==void 0&&(n.delete(t),n.size===0&&this._observers.delete(e))}emit(e,t){return p((this._observers.get(e)||s()).values()).forEach(e=>e(...t))}destroy(){this._observers=s()}},m=Math.floor,se=Math.abs,ce=(e,t)=>e<t?e:t,h=(e,t)=>e>t?e:t;Number.isNaN;var le=e=>e===0?1/e<0:e<0,ue=2**53-1,de=-(2**53-1),fe=Number.isInteger||(e=>typeof e==`number`&&isFinite(e)&&m(e)===e);Number.isNaN,Number.parseInt;var pe=String.fromCharCode;String.fromCodePoint,pe(65535);var me=e=>e.toLowerCase(),he=/^\s*/g,ge=e=>e.replace(he,``),_e=/([A-Z])/g,ve=(e,t)=>ge(e.replace(_e,e=>`${t}${me(e)}`)),ye=e=>{let t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r},be=typeof TextEncoder<`u`?new TextEncoder:null,xe=be?e=>be.encode(e):ye,Se=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0});Se&&Se.decode(new Uint8Array).length===1&&(Se=null);var Ce=(e,t)=>ie(t,()=>e).join(``),we=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}},Te=()=>new we,Ee=e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t},g=e=>{let t=new Uint8Array(Ee(e)),n=0;for(let r=0;r<e.bufs.length;r++){let i=e.bufs[r];t.set(i,n),n+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},De=(e,t)=>{let n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(h(n,t)*2),e.cpos=0)},_=(e,t)=>{let n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(n*2),e.cpos=0),e.cbuf[e.cpos++]=t},Oe=_,v=(e,t)=>{for(;t>127;)_(e,128|127&t),t=m(t/128);_(e,127&t)},ke=(e,t)=>{let n=le(t);for(n&&(t=-t),_(e,(t>63?128:0)|(n?64:0)|63&t),t=m(t/64);t>0;)_(e,(t>127?128:0)|127&t),t=m(t/128)},Ae=new Uint8Array(3e4),je=Ae.length/3,y=be&&be.encodeInto?(e,t)=>{if(t.length<je){let n=be.encodeInto(t,Ae).written||0;v(e,n);for(let t=0;t<n;t++)_(e,Ae[t])}else b(e,xe(t))}:(e,t)=>{let n=unescape(encodeURIComponent(t)),r=n.length;v(e,r);for(let t=0;t<r;t++)_(e,n.codePointAt(t))},Me=(e,t)=>{let n=e.cbuf.length,r=e.cpos,i=ce(n-r,t.length),a=t.length-i;e.cbuf.set(t.subarray(0,i),r),e.cpos+=i,a>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(h(n*2,a)),e.cbuf.set(t.subarray(i)),e.cpos=a)},b=(e,t)=>{v(e,t.byteLength),Me(e,t)},Ne=(e,t)=>{De(e,t);let n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Pe=(e,t)=>Ne(e,4).setFloat32(0,t,!1),Fe=(e,t)=>Ne(e,8).setFloat64(0,t,!1),Ie=(e,t)=>Ne(e,8).setBigInt64(0,t,!1),Le=new DataView(new ArrayBuffer(4)),Re=e=>(Le.setFloat32(0,e),Le.getFloat32(0)===e),ze=(e,t)=>{switch(typeof t){case`string`:_(e,119),y(e,t);break;case`number`:fe(t)&&se(t)<=2147483647?(_(e,125),ke(e,t)):Re(t)?(_(e,124),Pe(e,t)):(_(e,123),Fe(e,t));break;case`bigint`:_(e,122),Ie(e,t);break;case`object`:if(t===null)_(e,126);else if(ae(t)){_(e,117),v(e,t.length);for(let n=0;n<t.length;n++)ze(e,t[n])}else if(t instanceof Uint8Array)_(e,116),b(e,t);else{_(e,118);let n=Object.keys(t);v(e,n.length);for(let r=0;r<n.length;r++){let i=n[r];y(e,i),ze(e,t[i])}}break;case`boolean`:_(e,t?120:121);break;default:_(e,127)}},Be=class extends we{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&v(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}},Ve=e=>{e.count>0&&(ke(e.encoder,e.count===1?e.s:-e.s),e.count>1&&v(e.encoder,e.count-2))},He=class{constructor(){this.encoder=new we,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Ve(this),this.count=1,this.s=e)}toUint8Array(){return Ve(this),g(this.encoder)}},Ue=e=>{if(e.count>0){let t=e.diff*2+(e.count===1?0:1);ke(e.encoder,t),e.count>1&&v(e.encoder,e.count-2)}},We=class{constructor(){this.encoder=new we,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(Ue(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return Ue(this),g(this.encoder)}},Ge=class{constructor(){this.sarr=[],this.s=``,this.lensE=new He}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=``),this.lensE.write(e.length)}toUint8Array(){let e=new we;return this.sarr.push(this.s),this.s=``,y(e,this.sarr.join(``)),Me(e,this.lensE.toUint8Array()),g(e)}},x=e=>Error(e),S=()=>{throw x(`Method unimplemented`)},C=()=>{throw x(`Unexpected case`)},Ke=x(`Unexpected end of array`),qe=x(`Integer out of Range`),Je=class{constructor(e){this.arr=e,this.pos=0}},Ye=e=>new Je(e),Xe=e=>e.pos!==e.arr.length,Ze=(e,t)=>{let n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n},w=e=>Ze(e,T(e)),Qe=e=>e.arr[e.pos++],T=e=>{let t=0,n=1,r=e.arr.length;for(;e.pos<r;){let r=e.arr[e.pos++];if(t+=(r&127)*n,n*=128,r<128)return t;if(t>ue)throw qe}throw Ke},$e=e=>{let t=e.arr[e.pos++],n=t&63,r=64,i=(t&64)>0?-1:1;if(!(t&128))return i*n;let a=e.arr.length;for(;e.pos<a;){if(t=e.arr[e.pos++],n+=(t&127)*r,r*=128,t<128)return i*n;if(n>ue)throw qe}throw Ke},et=Se?e=>Se.decode(w(e)):e=>{let t=T(e);if(t===0)return``;{let n=String.fromCodePoint(Qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(Qe(e));else for(;t>0;){let r=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,i),t-=r}return decodeURIComponent(escape(n))}},tt=(e,t)=>{let n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},nt=[e=>void 0,e=>null,$e,e=>tt(e,4).getFloat32(0,!1),e=>tt(e,8).getFloat64(0,!1),e=>tt(e,8).getBigInt64(0,!1),e=>!1,e=>!0,et,e=>{let t=T(e),n={};for(let r=0;r<t;r++){let t=et(e);n[t]=rt(e)}return n},e=>{let t=T(e),n=[];for(let r=0;r<t;r++)n.push(rt(e));return n},w],rt=e=>nt[127-Qe(e)](e),it=class extends Je{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),Xe(this)?this.count=T(this)+1:this.count=-1),this.count--,this.s}},at=class extends Je{constructor(e){super(e),this.s=0,this.count=0}read(){if(this.count===0){this.s=$e(this);let e=le(this.s);this.count=1,e&&(this.s=-this.s,this.count=T(this)+2)}return this.count--,this.s}},ot=class extends Je{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){let e=$e(this),t=e&1;this.diff=m(e/2),this.count=1,t&&(this.count=T(this)+2)}return this.s+=this.diff,this.count--,this.s}},st=class{constructor(e){this.decoder=new at(e),this.str=et(this.decoder),this.spos=0}read(){let e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}};crypto.subtle;var ct=crypto.getRandomValues.bind(crypto),lt=()=>ct(new Uint32Array(1))[0],ut=`10000000-1000-4000-8000-100000000000`,dt=()=>ut.replace(/[018]/g,e=>(e^lt()&15>>e/4).toString(16)),ft=Date.now,pt=e=>new Promise(e);Promise.all.bind(Promise);var mt=e=>e===void 0?null:e,ht=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{typeof localStorage<`u`&&localStorage&&(ht=localStorage)}catch{}var gt=ht,_t=Symbol(`Equality`),vt=(e,t)=>e===t||!!e?.[_t]?.(t)||!1,yt=e=>typeof e==`object`,bt=Object.assign,xt=Object.keys,St=(e,t)=>{for(let n in e)t(e[n],n)},Ct=e=>xt(e).length,wt=e=>{for(let t in e)return!1;return!0},Tt=(e,t)=>{for(let n in e)if(!t(e[n],n))return!1;return!0},Et=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Dt=(e,t)=>e===t||Ct(e)===Ct(t)&&Tt(e,(e,n)=>(e!==void 0||Et(t,n))&&vt(t[n],e)),Ot=Object.freeze,kt=e=>{for(let t in e){let n=e[t];(typeof n==`object`||typeof n==`function`)&&kt(e[t])}return Ot(e)},At=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&At(e,t,n+1)}},jt=e=>e,Mt=(e,t)=>{if(e===t)return!0;if(e==null||t==null||e.constructor!==t.constructor&&(e.constructor||Object)!==(t.constructor||Object))return!1;if(e[_t]!=null)return e[_t](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(let n of e.keys())if(!t.has(n)||!Mt(e.get(n),t.get(n)))return!1;break;case void 0:case Object:if(Ct(e)!==Ct(t))return!1;for(let n in e)if(!Et(e,n)||!Mt(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Mt(e[n],t[n]))return!1;break;default:return!1}return!0},Nt=(e,t)=>t.includes(e),Pt=typeof process<`u`&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<`u`?process:0)===`[object process]`;typeof navigator<`u`&&/Mac/.test(navigator.platform);var E,Ft=[],It=()=>{if(E===void 0)if(Pt){E=s();let e=process.argv,t=null;for(let n=0;n<e.length;n++){let r=e[n];r[0]===`-`?(t!==null&&E.set(t,``),t=r):t===null?Ft.push(r):(E.set(t,r),t=null)}t!==null&&E.set(t,``)}else typeof location==`object`?(E=s(),(location.search||`?`).slice(1).split(`&`).forEach(e=>{if(e.length!==0){let[t,n]=e.split(`=`);E.set(`--${ve(t,`-`)}`,n),E.set(`-${ve(t,`-`)}`,n)}})):E=s();return E},Lt=e=>It().has(e),Rt=e=>mt(Pt?{}[e.toUpperCase().replaceAll(`-`,`_`)]:gt.getItem(e)),zt=e=>Lt(`--`+e)||Rt(e)!==null,Bt=zt(`production`),Vt=Pt&&Nt({}.FORCE_COLOR,[`true`,`1`,`2`])||!Lt(`--no-colors`)&&!zt(`no-color`)&&(!Pt||process.stdout.isTTY)&&(!Pt||Lt(`--color`)||Rt(`COLORTERM`)!==null||(Rt(`TERM`)||``).includes(`color`)),Ht=e=>new Uint8Array(e),Ut=e=>{let t=Ht(e.byteLength);return t.set(e),t},Wt=class{constructor(e,t){this.left=e,this.right=t}},D=(e,t)=>new Wt(e,t),Gt=e=>e.next()>=.5,Kt=(e,t,n)=>m(e.next()*(n+1-t)+t),qt=(e,t,n)=>m(e.next()*(n+1-t)+t),Jt=(e,t,n)=>qt(e,t,n),Yt=e=>pe(Jt(e,97,122)),Xt=(e,t=0,n=20)=>{let r=Jt(e,t,n),i=``;for(let t=0;t<r;t++)i+=Yt(e);return i},Zt=(e,t)=>t[Jt(e,0,t.length-1)],Qt=Symbol(`0schema`),$t=class{constructor(){this._rerrs=[]}extend(e,t,n,r=null){this._rerrs.push({path:e,expected:t,has:n,message:r})}toString(){let e=[];for(let t=this._rerrs.length-1;t>0;t--){let n=this._rerrs[t];e.push(Ce(` `,(this._rerrs.length-t)*2)+`${n.path==null?``:`[${n.path}] `}${n.has} doesn't match ${n.expected}. ${n.message}`)}return e.join(`
2
2
  `)}},en=(e,t)=>e===t?!0:e==null||t==null||e.constructor!==t.constructor?!1:e[_t]?vt(e,t):ae(e)?ne(e,e=>re(t,t=>en(e,t))):yt(e)?Tt(e,(e,n)=>en(e,t[n])):!1,O=class{static _dilutes=!1;extends(e){let[t,n]=[this.shape,e.shape];return this.constructor._dilutes&&([n,t]=[t,n]),en(t,n)}equals(e){return this.constructor===e.constructor&&Mt(this.shape,e.shape)}[Qt](){return!0}[_t](e){return this.equals(e)}validate(e){return this.check(e)}check(e,t){S()}get nullable(){return j(this,Wn)}get optional(){return new un(this)}cast(e){return Jn(e,this),e}expect(e){return Jn(e,this),e}},tn=class extends O{constructor(e,t){super(),this.shape=e,this._c=t}check(e,t=void 0){let n=e?.constructor===this.shape&&(this._c==null||this._c(e));return!n&&t?.extend(null,this.shape.name,e?.constructor.name,e?.constructor===this.shape?`Check failed`:`Constructor match failed`),n}},k=(e,t=null)=>new tn(e,t);k(tn);var nn=class extends O{constructor(e){super(),this.shape=e}check(e,t){let n=this.shape(e);return!n&&t?.extend(null,`custom prop`,e?.constructor.name,`failed to check custom prop`),n}},A=e=>new nn(e);k(nn);var rn=class extends O{constructor(e){super(),this.shape=e}check(e,t){let n=this.shape.some(t=>t===e);return!n&&t?.extend(null,this.shape.join(` | `),e.toString()),n}},an=(...e)=>new rn(e),on=k(rn),sn=RegExp.escape||(e=>e.replace(/[().|&,$^[\]]/g,e=>`\\`+e)),cn=e=>{if(N.check(e))return[sn(e)];if(on.check(e))return e.shape.map(e=>e+``);if(zn.check(e))return[`[+-]?\\d+.?\\d*`];if(Bn.check(e))return[`.*`];if(Mn.check(e))return e.shape.map(cn).flat(1);C()};k(class extends O{constructor(e){super(),this.shape=e,this._r=RegExp(`^`+e.map(cn).map(e=>`(${e.join(`|`)})`).join(``)+`$`)}check(e,t){let n=this._r.exec(e)!=null;return!n&&t?.extend(null,this._r.toString(),e.toString(),`String doesn't match string template.`),n}});var ln=Symbol(`optional`),un=class extends O{constructor(e){super(),this.shape=e}check(e,t){let n=e===void 0||this.shape.check(e);return!n&&t?.extend(null,`undefined (optional)`,`()`),n}get[ln](){return!0}},dn=k(un),fn=class extends O{check(e,t){return t?.extend(null,`never`,typeof e),!1}};new fn,k(fn);var pn=class e extends O{constructor(e,t=!1){super(),this.shape=e,this._isPartial=t}static _dilutes=!0;get partial(){return new e(this.shape,!0)}check(e,t){return e==null?(t?.extend(null,`object`,`null`),!1):Tt(this.shape,(n,r)=>{let i=this._isPartial&&!Et(e,r)||n.check(e[r],t);return!i&&t?.extend(r.toString(),n.toString(),typeof e[r],`Object property does not match`),i})}},mn=e=>new pn(e),hn=k(pn),gn=A(e=>e!=null&&(e.constructor===Object||e.constructor==null)),_n=class extends O{constructor(e,t){super(),this.shape={keys:e,values:t}}check(e,t){return e!=null&&Tt(e,(n,r)=>{let i=this.shape.keys.check(r,t);return!i&&t?.extend(r+``,`Record`,typeof e,i?`Key doesn't match schema`:`Value doesn't match value`),i&&this.shape.values.check(n,t)})}},vn=(e,t)=>new _n(e,t),yn=k(_n),bn=class extends O{constructor(e){super(),this.shape=e}check(e,t){return e!=null&&Tt(this.shape,(n,r)=>{let i=n.check(e[r],t);return!i&&t?.extend(r.toString(),`Tuple`,typeof n),i})}},xn=(...e)=>new bn(e);k(bn);var Sn=class extends O{constructor(e){super(),this.shape=e.length===1?e[0]:new jn(e)}check(e,t){let n=ae(e)&&ne(e,e=>this.shape.check(e));return!n&&t?.extend(null,`Array`,``),n}},Cn=(...e)=>new Sn(e),wn=k(Sn),Tn=A(e=>ae(e)),En=class extends O{constructor(e,t){super(),this.shape=e,this._c=t}check(e,t){let n=e instanceof this.shape&&(this._c==null||this._c(e));return!n&&t?.extend(null,this.shape.name,e?.constructor.name),n}},Dn=(e,t=null)=>new En(e,t);k(En);var On=Dn(O),kn=k(class extends O{constructor(e){super(),this.len=e.length-1,this.args=xn(...e.slice(-1)),this.res=e[this.len]}check(e,t){let n=e.constructor===Function&&e.length<=this.len;return!n&&t?.extend(null,`function`,typeof e),n}}),An=A(e=>typeof e==`function`);k(class extends O{constructor(e){super(),this.shape=e}check(e,t){let n=ne(this.shape,n=>n.check(e,t));return!n&&t?.extend(null,`Intersectinon`,typeof e),n}},e=>e.shape.length>0);var jn=class extends O{static _dilutes=!0;constructor(e){super(),this.shape=e}check(e,t){let n=re(this.shape,n=>n.check(e,t));return t?.extend(null,`Union`,typeof e),n}},j=(...e)=>e.findIndex(e=>Mn.check(e))>=0?j(...e.map(e=>qn(e)).map(e=>Mn.check(e)?e.shape:[e]).flat(1)):e.length===1?e[0]:new jn(e),Mn=k(jn),Nn=()=>!0,Pn=A(Nn),Fn=k(nn,e=>e.shape===Nn),In=A(e=>typeof e==`bigint`),Ln=A(e=>e===In),Rn=A(e=>typeof e==`symbol`);A(e=>e===Rn);var M=A(e=>typeof e==`number`),zn=A(e=>e===M),N=A(e=>typeof e==`string`),Bn=A(e=>e===N),Vn=A(e=>typeof e==`boolean`),Hn=A(e=>e===Vn),Un=an(void 0);k(rn,e=>e.shape.length===1&&e.shape[0]===void 0),an(void 0);var Wn=an(null),Gn=k(rn,e=>e.shape.length===1&&e.shape[0]===null);k(Uint8Array),k(tn,e=>e.shape===Uint8Array);var Kn=j(M,N,Wn,Un,In,Vn,Rn);(()=>{let e=Cn(Pn),t=vn(N,Pn),n=j(M,N,Wn,Vn,e,t);return e.shape=n,t.shape.values=n,n})();var qn=e=>{if(On.check(e))return e;if(gn.check(e)){let t={};for(let n in e)t[n]=qn(e[n]);return mn(t)}else if(Tn.check(e))return j(...e.map(qn));else if(Kn.check(e))return an(e);else if(An.check(e))return k(e);C()},Jn=Bt?()=>{}:(e,t)=>{let n=new $t;if(!t.check(e,n))throw x(`Expected value to be of type ${t.constructor.name}.\n${n.toString()}`)},Yn=class{constructor(e){this.patterns=[],this.$state=e}if(e,t){return this.patterns.push({if:qn(e),h:t}),this}else(e){return this.if(Pn,e)}done(){return(e,t)=>{for(let n=0;n<this.patterns.length;n++){let r=this.patterns[n];if(r.if.check(e))return r.h(e,t)}throw x(`Unhandled pattern`)}}},Xn=(e=>new Yn(e))(Pn).if(zn,(e,t)=>Kt(t,de,ue)).if(Bn,(e,t)=>Xt(t)).if(Hn,(e,t)=>Gt(t)).if(Ln,(e,t)=>BigInt(Kt(t,de,ue))).if(Mn,(e,t)=>P(t,Zt(t,e.shape))).if(hn,(e,t)=>{let n={};for(let r in e.shape){let i=e.shape[r];if(dn.check(i)){if(Gt(t))continue;i=i.shape}n[r]=Xn(i,t)}return n}).if(wn,(e,t)=>{let n=[],r=qt(t,0,42);for(let i=0;i<r;i++)n.push(P(t,e.shape));return n}).if(on,(e,t)=>Zt(t,e.shape)).if(Gn,(e,t)=>null).if(kn,(e,t)=>{let n=P(t,e.res);return()=>n}).if(Fn,(e,t)=>P(t,Zt(t,[M,N,Wn,Un,In,Vn,Cn(M),vn(j(`a`,`b`,`c`),M)]))).if(yn,(e,t)=>{let n={},r=Kt(t,0,3);for(let i=0;i<r;i++){let r=P(t,e.shape.keys);n[r]=P(t,e.shape.values)}return n}).done(),P=(e,t)=>Xn(qn(t),e),F=typeof document<`u`?document:{};A(e=>e.nodeType===tr),typeof DOMParser<`u`&&new DOMParser,A(e=>e.nodeType===Qn),A(e=>e.nodeType===$n);var Zn=e=>u(e,(e,t)=>`${t}:${e};`).join(``),Qn=F.ELEMENT_NODE,$n=F.TEXT_NODE;F.CDATA_SECTION_NODE,F.COMMENT_NODE;var er=F.DOCUMENT_NODE;F.DOCUMENT_TYPE_NODE;var tr=F.DOCUMENT_FRAGMENT_NODE;A(e=>e.nodeType===er);var I=Symbol,nr=I(),rr=I(),ir=I(),ar=I(),or=I(),sr=I(),cr=I(),lr=I(),ur=I(),dr=e=>{e.length===1&&e[0]?.constructor===Function&&(e=e[0]());let t=[],n=[],r=0;for(;r<e.length;r++){let n=e[r];if(n===void 0)break;if(n.constructor===String||n.constructor===Number)t.push(n);else if(n.constructor===Object)break}for(r>0&&n.push(t.join(``));r<e.length;r++){let t=e[r];t instanceof Symbol||n.push(t)}return n};ft();var fr={[nr]:D(`font-weight`,`bold`),[rr]:D(`font-weight`,`normal`),[ir]:D(`color`,`blue`),[or]:D(`color`,`green`),[ar]:D(`color`,`grey`),[sr]:D(`color`,`red`),[cr]:D(`color`,`purple`),[lr]:D(`color`,`orange`),[ur]:D(`color`,`black`)},pr=Vt?e=>{e.length===1&&e[0]?.constructor===Function&&(e=e[0]());let t=[],n=[],r=s(),i=[],a=0;for(;a<e.length;a++){let i=e[a],o=fr[i];if(o!==void 0)r.set(o.left,o.right);else{if(i===void 0)break;if(i.constructor===String||i.constructor===Number){let e=Zn(r);a>0||e.length>0?(t.push(`%c`+i),n.push(e)):t.push(i)}else break}}for(a>0&&(i=n,i.unshift(t.join(``)));a<e.length;a++){let t=e[a];t instanceof Symbol||i.push(t)}return i}:dr,mr=(...e)=>{console.log(...pr(e)),gr.forEach(t=>t.print(e))},hr=(...e)=>{console.warn(...pr(e)),e.unshift(lr),gr.forEach(t=>t.print(e))},gr=f(),_r=e=>({[Symbol.iterator](){return this},next:e}),vr=(e,t)=>_r(()=>{let n;do n=e.next();while(!n.done&&!t(n.value));return n}),yr=(e,t)=>_r(()=>{let{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}),br=class{constructor(e,t){this.clock=e,this.len=t}},xr=class{constructor(){this.clients=new Map}},Sr=(e,t,n)=>t.clients.forEach((t,r)=>{let i=e.doc.store.clients.get(r);if(i!=null){let r=i[i.length-1],a=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<a;o=t[++r])Ci(e,i,o.clock,o.len,n)}}),Cr=(e,t)=>{let n=0,r=e.length-1;for(;n<=r;){let i=m((n+r)/2),a=e[i],o=a.clock;if(o<=t){if(t<o+a.len)return i;n=i+1}else r=i-1}return null},wr=(e,t)=>{let n=e.clients.get(t.client);return n!==void 0&&Cr(n,t.clock)!==null},Tr=e=>{e.clients.forEach(e=>{e.sort((e,t)=>e.clock-t.clock);let t,n;for(t=1,n=1;t<e.length;t++){let r=e[n-1],i=e[t];r.clock+r.len>=i.clock?e[n-1]=new br(r.clock,h(r.len,i.clock+i.len-r.clock)):(n<t&&(e[n]=i),n++)}e.length=n})},Er=e=>{let t=new xr;for(let n=0;n<e.length;n++)e[n].clients.forEach((r,i)=>{if(!t.clients.has(i)){let a=r.slice();for(let t=n+1;t<e.length;t++)te(a,e[t].clients.get(i)||[]);t.clients.set(i,a)}});return Tr(t),t},Dr=(e,t,n,r)=>{l(e.clients,t,()=>[]).push(new br(n,r))},Or=()=>new xr,kr=e=>{let t=Or();return e.clients.forEach((e,n)=>{let r=[];for(let t=0;t<e.length;t++){let n=e[t];if(n.deleted){let i=n.id.clock,a=n.length;if(t+1<e.length)for(let n=e[t+1];t+1<e.length&&n.deleted;n=e[++t+1])a+=n.length;r.push(new br(i,a))}}r.length>0&&t.clients.set(n,r)}),t},Ar=(e,t)=>{v(e.restEncoder,t.clients.size),p(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),v(e.restEncoder,t);let r=n.length;v(e.restEncoder,r);for(let t=0;t<r;t++){let r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},jr=e=>{let t=new xr,n=T(e.restDecoder);for(let r=0;r<n;r++){e.resetDsCurVal();let n=T(e.restDecoder),r=T(e.restDecoder);if(r>0){let i=l(t.clients,n,()=>[]);for(let t=0;t<r;t++)i.push(new br(e.readDsClock(),e.readDsLen()))}}return t},Mr=(e,t,n)=>{let r=new xr,i=T(e.restDecoder);for(let a=0;a<i;a++){e.resetDsCurVal();let i=T(e.restDecoder),a=T(e.restDecoder),o=n.clients.get(i)||[],s=z(n,i);for(let n=0;n<a;n++){let n=e.readDsClock(),a=n+e.readDsLen();if(n<s){s<a&&Dr(r,i,s,a-s);let e=B(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,To(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<a);)c.deleted||(a<c.id.clock+c.length&&o.splice(e,0,To(t,c,a-c.id.clock)),c.delete(t))}else Dr(r,i,n,a-n)}}if(r.clients.size>0){let e=new L;return v(e.restEncoder,0),Ar(e,r),e.toUint8Array()}return null},Nr=lt,Pr=class e extends oe{constructor({guid:e=dt(),collectionid:t=null,gc:n=!0,gcFilter:r=()=>!0,meta:i=null,autoLoad:a=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=Nr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new gi,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=a,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=pt(e=>{this.on(`load`,()=>{this.isLoaded=!0,e(this)})});let s=()=>pt(e=>{let t=n=>{(n===void 0||n===!0)&&(this.off(`sync`,t),e())};this.on(`sync`,t)});this.on(`sync`,e=>{e===!1&&this.isSynced&&(this.whenSynced=s()),this.isSynced=e===void 0||e===!0,this.isSynced&&!this.isLoaded&&this.emit(`load`,[this])}),this.whenSynced=s()}load(){let e=this._item;e!==null&&!this.shouldLoad&&H(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(p(this.subdocs).map(e=>e.guid))}transact(e,t=null){return H(this,e,t)}get(e,t=G){let n=l(this.share,e,()=>{let e=new t;return e._integrate(this,null),e}),r=n.constructor;if(t!==G&&r!==t)if(r===G){let r=new t;r._map=n._map,n._map.forEach(e=>{for(;e!==null;e=e.left)e.parent=r}),r._start=n._start;for(let e=r._start;e!==null;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}else throw Error(`Type with the name ${e} has already been defined with a different constructor`);return n}getArray(e=``){return this.get(e,ya)}getText(e=``){return this.get(e,za)}getMap(e=``){return this.get(e,Sa)}getXmlElement(e=``){return this.get(e,Wa)}getXmlFragment(e=``){return this.get(e,Ha)}toJSON(){let e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,p(this.subdocs).forEach(e=>e.destroy());let t=this._item;if(t!==null){this._item=null;let n=t.content;n.doc=new e({guid:this.guid,...n.opts,shouldLoad:!1}),n.doc._item=t,H(t.parent.doc,e=>{let r=n.doc;t.deleted||e.subdocsAdded.add(r),e.subdocsRemoved.add(this)},null,!0)}this.emit(`destroyed`,[!0]),this.emit(`destroy`,[this]),super.destroy()}},Fr=class{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return T(this.restDecoder)}readDsLen(){return T(this.restDecoder)}},Ir=class extends Fr{readLeftID(){return R(T(this.restDecoder),T(this.restDecoder))}readRightID(){return R(T(this.restDecoder),T(this.restDecoder))}readClient(){return T(this.restDecoder)}readInfo(){return Qe(this.restDecoder)}readString(){return et(this.restDecoder)}readParentInfo(){return T(this.restDecoder)===1}readTypeRef(){return T(this.restDecoder)}readLen(){return T(this.restDecoder)}readAny(){return rt(this.restDecoder)}readBuf(){return Ut(w(this.restDecoder))}readJSON(){return JSON.parse(et(this.restDecoder))}readKey(){return et(this.restDecoder)}},Lr=class{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=T(this.restDecoder),this.dsCurrVal}readDsLen(){let e=T(this.restDecoder)+1;return this.dsCurrVal+=e,e}},Rr=class extends Lr{constructor(e){super(e),this.keys=[],T(e),this.keyClockDecoder=new ot(w(e)),this.clientDecoder=new at(w(e)),this.leftClockDecoder=new ot(w(e)),this.rightClockDecoder=new ot(w(e)),this.infoDecoder=new it(w(e),Qe),this.stringDecoder=new st(w(e)),this.parentInfoDecoder=new it(w(e),Qe),this.typeRefDecoder=new at(w(e)),this.lenDecoder=new at(w(e))}readLeftID(){return new ui(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new ui(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return rt(this.restDecoder)}readBuf(){return w(this.restDecoder)}readJSON(){return rt(this.restDecoder)}readKey(){let e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{let e=this.stringDecoder.read();return this.keys.push(e),e}}},zr=class{constructor(){this.restEncoder=Te()}toUint8Array(){return g(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){v(this.restEncoder,e)}writeDsLen(e){v(this.restEncoder,e)}},Br=class extends zr{writeLeftID(e){v(this.restEncoder,e.client),v(this.restEncoder,e.clock)}writeRightID(e){v(this.restEncoder,e.client),v(this.restEncoder,e.clock)}writeClient(e){v(this.restEncoder,e)}writeInfo(e){Oe(this.restEncoder,e)}writeString(e){y(this.restEncoder,e)}writeParentInfo(e){v(this.restEncoder,+!!e)}writeTypeRef(e){v(this.restEncoder,e)}writeLen(e){v(this.restEncoder,e)}writeAny(e){ze(this.restEncoder,e)}writeBuf(e){b(this.restEncoder,e)}writeJSON(e){y(this.restEncoder,JSON.stringify(e))}writeKey(e){y(this.restEncoder,e)}},Vr=class{constructor(){this.restEncoder=Te(),this.dsCurrVal=0}toUint8Array(){return g(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){let t=e-this.dsCurrVal;this.dsCurrVal=e,v(this.restEncoder,t)}writeDsLen(e){e===0&&C(),v(this.restEncoder,e-1),this.dsCurrVal+=e}},L=class extends Vr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new We,this.clientEncoder=new He,this.leftClockEncoder=new We,this.rightClockEncoder=new We,this.infoEncoder=new Be(Oe),this.stringEncoder=new Ge,this.parentInfoEncoder=new Be(Oe),this.typeRefEncoder=new He,this.lenEncoder=new He}toUint8Array(){let e=Te();return v(e,0),b(e,this.keyClockEncoder.toUint8Array()),b(e,this.clientEncoder.toUint8Array()),b(e,this.leftClockEncoder.toUint8Array()),b(e,this.rightClockEncoder.toUint8Array()),b(e,g(this.infoEncoder)),b(e,this.stringEncoder.toUint8Array()),b(e,g(this.parentInfoEncoder)),b(e,this.typeRefEncoder.toUint8Array()),b(e,this.lenEncoder.toUint8Array()),Me(e,g(this.restEncoder)),g(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(+!!e)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){ze(this.restEncoder,e)}writeBuf(e){b(this.restEncoder,e)}writeJSON(e){ze(this.restEncoder,e)}writeKey(e){let t=this.keyMap.get(e);t===void 0?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}},Hr=(e,t,n,r)=>{r=h(r,t[0].id.clock);let i=B(t,r);v(e.restEncoder,t.length-i),e.writeClient(n),v(e.restEncoder,r);let a=t[i];a.write(e,r-a.id.clock);for(let n=i+1;n<t.length;n++)t[n].write(e,0)},Ur=(e,t,n)=>{let r=new Map;n.forEach((e,n)=>{z(t,n)>e&&r.set(n,e)}),_i(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),v(e.restEncoder,r.size),p(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{Hr(e,t.clients.get(n),n,r)})},Wr=(e,t)=>{let n=s(),r=T(e.restDecoder);for(let i=0;i<r;i++){let r=T(e.restDecoder),i=Array(r),a=e.readClient(),o=T(e.restDecoder);n.set(a,{i:0,refs:i});for(let n=0;n<r;n++){let r=e.readInfo();switch(31&r){case 0:{let t=e.readLen();i[n]=new q(R(a,o),t),o+=t;break}case 10:{let t=T(e.restDecoder);i[n]=new Q(R(a,o),t),o+=t;break}default:{let s=(r&192)==0,c=new Z(R(a,o),null,(r&128)==128?e.readLeftID():null,null,(r&64)==64?e.readRightID():null,s?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,s&&(r&32)==32?e.readString():null,Eo(e,r));i[n]=c,o+=c.length}}}}return n},Gr=(e,t,n)=>{let r=[],i=p(n.keys()).sort((e,t)=>e-t);if(i.length===0)return null;let a=()=>{if(i.length===0)return null;let e=n.get(i[i.length-1]);for(;e.refs.length===e.i;)if(i.pop(),i.length>0)e=n.get(i[i.length-1]);else return null;return e},o=a();if(o===null)return null;let s=new gi,c=new Map,u=(e,t)=>{let n=c.get(e);(n==null||n>t)&&c.set(e,t)},d=o.refs[o.i++],f=new Map,ee=()=>{for(let e of r){let t=e.id.client,r=n.get(t);r?(r.i--,s.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):s.clients.set(t,[e]),i=i.filter(e=>e!==t)}r.length=0};for(;;){if(d.constructor!==Q){let i=l(f,d.id.client,()=>z(t,d.id.client))-d.id.clock;if(i<0)r.push(d),u(d.id.client,d.id.clock-1),ee();else{let a=d.getMissing(e,t);if(a!==null){r.push(d);let e=n.get(a)||{refs:[],i:0};if(e.refs.length===e.i)u(a,z(t,a)),ee();else{d=e.refs[e.i++];continue}}else (i===0||i<d.length)&&(d.integrate(e,i),f.set(d.id.client,d.id.clock+d.length))}}if(r.length>0)d=r.pop();else if(o!==null&&o.i<o.refs.length)d=o.refs[o.i++];else{if(o=a(),o===null)break;d=o.refs[o.i++]}}if(s.clients.size>0){let e=new L;return Ur(e,s,new Map),v(e.restEncoder,0),{missing:c,update:e.toUint8Array()}}return null},Kr=(e,t)=>Ur(e,t.doc.store,t.beforeState),qr=(e,t,n,r=new Rr(e))=>H(t,e=>{e.local=!1;let t=!1,n=e.doc,i=n.store,a=Gr(e,i,Wr(r,n)),o=i.pendingStructs;if(o){for(let[e,n]of o.missing)if(n<z(i,e)){t=!0;break}if(a){for(let[e,t]of a.missing){let n=o.missing.get(e);(n==null||n>t)&&o.missing.set(e,t)}o.update=Ii([o.update,a.update])}}else i.pendingStructs=a;let s=Mr(r,e,i);if(i.pendingDs){let t=new Rr(Ye(i.pendingDs));T(t.restDecoder);let n=Mr(t,e,i);s&&n?i.pendingDs=Ii([s,n]):i.pendingDs=s||n}else i.pendingDs=s;if(t){let t=i.pendingStructs.update;i.pendingStructs=null,Jr(e.doc,t)}},n,!1),Jr=(e,t,n,r=Rr)=>{let i=Ye(t);qr(i,e,n,new r(i))},Yr=(e,t,n)=>Jr(e,t,n,Ir),Xr=(e,t,n=new Map)=>{Ur(e,t.store,n),Ar(e,kr(t.store))},Zr=(e,t=new Uint8Array([0]),n=new L)=>{Xr(n,e,ei(t));let r=[n.toUint8Array()];if(e.store.pendingDs&&r.push(e.store.pendingDs),e.store.pendingStructs&&r.push(Li(e.store.pendingStructs.update,t)),r.length>1){if(n.constructor===Br)return Pi(r.map((e,t)=>t===0?e:Vi(e)));if(n.constructor===L)return Ii(r)}return r[0]},Qr=(e,t)=>Zr(e,t,new Br),$r=e=>{let t=new Map,n=T(e.restDecoder);for(let r=0;r<n;r++){let n=T(e.restDecoder),r=T(e.restDecoder);t.set(n,r)}return t},ei=e=>$r(new Fr(Ye(e))),ti=(e,t)=>(v(e.restEncoder,t.size),p(t.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{v(e.restEncoder,t),v(e.restEncoder,n)}),e),ni=(e,t)=>ti(e,_i(t.store)),ri=(e,t=new Vr)=>(e instanceof Map?ti(t,e):ni(t,e),t.toUint8Array()),ii=e=>ri(e,new zr),ai=class{constructor(){this.l=[]}},oi=()=>new ai,si=(e,t)=>e.l.push(t),ci=(e,t)=>{let n=e.l,r=n.length;e.l=n.filter(e=>t!==e),r===e.l.length&&console.error(`[yjs] Tried to remove event handler that doesn't exist.`)},li=(e,t,n)=>At(e.l,[t,n]),ui=class{constructor(e,t){this.client=e,this.clock=t}},di=(e,t)=>e===t||e!==null&&t!==null&&e.client===t.client&&e.clock===t.clock,R=(e,t)=>new ui(e,t),fi=e=>{for(let[t,n]of e.doc.share.entries())if(n===e)return t;throw C()},pi=class{constructor(e,t){this.ds=e,this.sv=t}};((e,t)=>new pi(e,t))(Or(),new Map);var mi=(e,t)=>t===void 0?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!wr(t.ds,e.id),hi=(e,t)=>{let n=l(e.meta,hi,f),r=e.doc.store;n.has(t)||(t.sv.forEach((t,n)=>{t<z(r,n)&&V(e,R(n,t))}),Sr(e,t.ds,e=>{}),n.add(t))},gi=class{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}},_i=e=>{let t=new Map;return e.clients.forEach((e,n)=>{let r=e[e.length-1];t.set(n,r.id.clock+r.length)}),t},z=(e,t)=>{let n=e.clients.get(t);if(n===void 0)return 0;let r=n[n.length-1];return r.id.clock+r.length},vi=(e,t)=>{let n=e.clients.get(t.id.client);if(n===void 0)n=[],e.clients.set(t.id.client,n);else{let e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw C()}n.push(t)},B=(e,t)=>{let n=0,r=e.length-1,i=e[r],a=i.id.clock;if(a===t)return r;let o=m(t/(a+i.length-1)*r);for(;n<=r;){if(i=e[o],a=i.id.clock,a<=t){if(t<a+i.length)return o;n=o+1}else r=o-1;o=m((n+r)/2)}throw C()},yi=(e,t)=>{let n=e.clients.get(t.client);return n[B(n,t.clock)]},bi=(e,t,n)=>{let r=B(t,n),i=t[r];return i.id.clock<n&&i instanceof Z?(t.splice(r+1,0,To(e,i,n-i.id.clock)),r+1):r},V=(e,t)=>{let n=e.doc.store.clients.get(t.client);return n[bi(e,n,t.clock)]},xi=(e,t,n)=>{let r=t.clients.get(n.client),i=B(r,n.clock),a=r[i];return n.clock!==a.id.clock+a.length-1&&a.constructor!==q&&r.splice(i+1,0,To(e,a,n.clock-a.id.clock+1)),a},Si=(e,t,n)=>{let r=e.clients.get(t.id.client);r[B(r,t.id.clock)]=n},Ci=(e,t,n,r,i)=>{if(r===0)return;let a=n+r,o=bi(e,t,n),s;do s=t[o++],a<s.id.clock+s.length&&bi(e,t,a),i(s);while(o<t.length&&t[o].id.clock<a)},wi=class{constructor(e,t,n){this.doc=e,this.deleteSet=new xr,this.beforeState=_i(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}},Ti=(e,t)=>t.deleteSet.clients.size===0&&!d(t.afterState,(e,n)=>t.beforeState.get(n)!==e)?!1:(Tr(t.deleteSet),Kr(e,t),Ar(e,t.deleteSet),!0),Ei=(e,t,n)=>{let r=t._item;(r===null||r.id.clock<(e.beforeState.get(r.id.client)||0)&&!r.deleted)&&l(e.changed,t,f).add(n)},Di=(e,t)=>{let n=e[t],r=e[t-1],i=t;for(;i>0;n=r,r=e[--i-1]){if(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n)){n instanceof Z&&n.parentSub!==null&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);continue}break}let a=t-i;return a&&e.splice(t+1-a,a),a},Oi=(e,t,n)=>{for(let[r,i]of e.clients.entries()){let e=t.clients.get(r);for(let r=i.length-1;r>=0;r--){let a=i[r],o=a.clock+a.len;for(let r=B(e,a.clock),i=e[r];r<e.length&&i.id.clock<o;i=e[++r]){let i=e[r];if(a.clock+a.len<=i.id.clock)break;i instanceof Z&&i.deleted&&!i.keep&&n(i)&&i.gc(t,!1)}}}},ki=(e,t)=>{e.clients.forEach((e,n)=>{let r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){let n=e[t],i=ce(r.length-1,1+B(r,n.clock+n.len-1));for(let e=i,t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Di(r,e)}})},Ai=(e,t)=>{if(t<e.length){let n=e[t],r=n.doc,i=r.store,a=n.deleteSet,o=n._mergeStructs;try{Tr(a),n.afterState=_i(n.doc.store),r.emit(`beforeObserverCalls`,[n,r]);let e=[];n.changed.forEach((t,r)=>e.push(()=>{(r._item===null||!r._item.deleted)&&r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((t,r)=>{r._dEH.l.length>0&&(r._item===null||!r._item.deleted)&&(t=t.filter(e=>e.target._item===null||!e.target._item.deleted),t.forEach(e=>{e.currentTarget=r,e._path=null}),t.sort((e,t)=>e.path.length-t.path.length),e.push(()=>{li(r._dEH,t,n)}))}),e.push(()=>r.emit(`afterTransaction`,[n,r])),e.push(()=>{n._needFormattingCleanup&&Ia(n)})}),At(e,[])}finally{r.gc&&Oi(a,i,r.gcFilter),ki(a,i),n.afterState.forEach((e,t)=>{let r=n.beforeState.get(t)||0;if(r!==e){let e=i.clients.get(t),n=h(B(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Di(e,t)}});for(let e=o.length-1;e>=0;e--){let{client:t,clock:n}=o[e].id,r=i.clients.get(t),a=B(r,n);a+1<r.length&&Di(r,a+1)>1||a>0&&Di(r,a)}if(!n.local&&n.afterState.get(r.clientID)!==n.beforeState.get(r.clientID)&&(mr(lr,nr,`[yjs] `,rr,sr,`Changed the client-id because another client seems to be using it.`),r.clientID=Nr()),r.emit(`afterTransactionCleanup`,[n,r]),r._observers.has(`update`)){let e=new Br;Ti(e,n)&&r.emit(`update`,[e.toUint8Array(),n.origin,r,n])}if(r._observers.has(`updateV2`)){let e=new L;Ti(e,n)&&r.emit(`updateV2`,[e.toUint8Array(),n.origin,r,n])}let{subdocsAdded:s,subdocsLoaded:c,subdocsRemoved:l}=n;(s.size>0||l.size>0||c.size>0)&&(s.forEach(e=>{e.clientID=r.clientID,e.collectionid??=r.collectionid,r.subdocs.add(e)}),l.forEach(e=>r.subdocs.delete(e)),r.emit(`subdocs`,[{loaded:c,added:s,removed:l},r,n]),l.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit(`afterAllTransactions`,[r,e])):Ai(e,t+1)}}},H=(e,t,n=null,r=!0)=>{let i=e._transactionCleanups,a=!1,o=null;e._transaction===null&&(a=!0,e._transaction=new wi(e,n,r),i.push(e._transaction),i.length===1&&e.emit(`beforeAllTransactions`,[e]),e.emit(`beforeTransaction`,[e._transaction,e]));try{o=t(e._transaction)}finally{if(a){let t=e._transaction===i[0];e._transaction=null,t&&Ai(i,0)}}return o};function*ji(e){let t=T(e.restDecoder);for(let n=0;n<t;n++){let t=T(e.restDecoder),n=e.readClient(),r=T(e.restDecoder);for(let i=0;i<t;i++){let t=e.readInfo();if(t===10){let t=T(e.restDecoder);yield new Q(R(n,r),t),r+=t}else if(31&t){let i=(t&192)==0,a=new Z(R(n,r),null,(t&128)==128?e.readLeftID():null,null,(t&64)==64?e.readRightID():null,i?e.readParentInfo()?e.readString():e.readLeftID():null,i&&(t&32)==32?e.readString():null,Eo(e,t));yield a,r+=a.length}else{let t=e.readLen();yield new q(R(n,r),t),r+=t}}}}var Mi=class{constructor(e,t){this.gen=ji(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do this.curr=this.gen.next().value||null;while(this.filterSkips&&this.curr!==null&&this.curr.constructor===Q);return this.curr}},Ni=class{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}},Pi=e=>Ii(e,Ir,Br),Fi=(e,t)=>{if(e.constructor===q){let{client:n,clock:r}=e.id;return new q(R(n,r+t),e.length-t)}else if(e.constructor===Q){let{client:n,clock:r}=e.id;return new Q(R(n,r+t),e.length-t)}else{let n=e,{client:r,clock:i}=n.id;return new Z(R(r,i+t),null,R(r,i+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Ii=(e,t=Rr,n=L)=>{if(e.length===1)return e[0];let r=e.map(e=>new t(Ye(e))),i=r.map(e=>new Mi(e,!0)),a=null,o=new n,s=new Ni(o);for(;i=i.filter(e=>e.curr!==null),i.sort((e,t)=>{if(e.curr.id.client===t.curr.id.client){let n=e.curr.id.clock-t.curr.id.clock;return n===0?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===Q?1:-1:n}else return t.curr.id.client-e.curr.id.client}),i.length!==0;){let e=i[0],t=e.curr.id.client;if(a!==null){let n=e.curr,r=!1;for(;n!==null&&n.id.clock+n.length<=a.struct.id.clock+a.struct.length&&n.id.client>=a.struct.id.client;)n=e.next(),r=!0;if(n===null||n.id.client!==t||r&&n.id.clock>a.struct.id.clock+a.struct.length)continue;if(t!==a.struct.id.client)U(s,a.struct,a.offset),a={struct:n,offset:0},e.next();else if(a.struct.id.clock+a.struct.length<n.id.clock)if(a.struct.constructor===Q)a.struct.length=n.id.clock+n.length-a.struct.id.clock;else{U(s,a.struct,a.offset);let e=n.id.clock-a.struct.id.clock-a.struct.length;a={struct:new Q(R(t,a.struct.id.clock+a.struct.length),e),offset:0}}else{let t=a.struct.id.clock+a.struct.length-n.id.clock;t>0&&(a.struct.constructor===Q?a.struct.length-=t:n=Fi(n,t)),a.struct.mergeWith(n)||(U(s,a.struct,a.offset),a={struct:n,offset:0},e.next())}}else a={struct:e.curr,offset:0},e.next();for(let n=e.curr;n!==null&&n.id.client===t&&n.id.clock===a.struct.id.clock+a.struct.length&&n.constructor!==Q;n=e.next())U(s,a.struct,a.offset),a={struct:n,offset:0}}return a!==null&&(U(s,a.struct,a.offset),a=null),zi(s),Ar(o,Er(r.map(e=>jr(e)))),o.toUint8Array()},Li=(e,t,n=Rr,r=L)=>{let i=ei(t),a=new r,o=new Ni(a),s=new n(Ye(e)),c=new Mi(s,!1);for(;c.curr;){let e=c.curr,t=e.id.client,n=i.get(t)||0;if(c.curr.constructor===Q){c.next();continue}if(e.id.clock+e.length>n)for(U(o,e,h(n-e.id.clock,0)),c.next();c.curr&&c.curr.id.client===t;)U(o,c.curr,0),c.next();else for(;c.curr&&c.curr.id.client===t&&c.curr.id.clock+c.curr.length<=n;)c.next()}return zi(o),Ar(a,jr(s)),a.toUint8Array()},Ri=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:g(e.encoder.restEncoder)}),e.encoder.restEncoder=Te(),e.written=0)},U=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&Ri(e),e.written===0&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),v(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},zi=e=>{Ri(e);let t=e.encoder.restEncoder;v(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){let r=e.clientStructs[n];v(t,r.written),Me(t,r.restEncoder)}},Bi=(e,t,n,r)=>{let i=new n(Ye(e)),a=new Mi(i,!1),o=new r,s=new Ni(o);for(let e=a.curr;e!==null;e=a.next())U(s,t(e),0);return zi(s),Ar(o,jr(i)),o.toUint8Array()},Vi=e=>Bi(e,jt,Rr,Br),Hi=`You must not compute changes after the event-handler fired.`,Ui=class{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||=Wi(this.currentTarget,this.target)}deletes(e){return wr(this.transaction.deleteSet,e.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw x(Hi);let e=new Map,t=this.target;this.transaction.changed.get(t).forEach(n=>{if(n!==null){let r=t._map.get(n),i,a;if(this.adds(r)){let e=r.left;for(;e!==null&&this.adds(e);)e=e.left;if(this.deletes(r))if(e!==null&&this.deletes(e))i=`delete`,a=ee(e.content.getContent());else return;else e!==null&&this.deletes(e)?(i=`update`,a=ee(e.content.getContent())):(i=`add`,a=void 0)}else if(this.deletes(r))i=`delete`,a=ee(r.content.getContent());else return;e.set(n,{action:i,oldValue:a})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(e===null){if(this.transaction.doc._transactionCleanups.length===0)throw x(Hi);let t=this.target,n=f(),r=f(),i=[];if(e={added:n,deleted:r,delta:i,keys:this.keys},this.transaction.changed.get(t).has(null)){let e=null,a=()=>{e&&i.push(e)};for(let i=t._start;i!==null;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&((e===null||e.delete===void 0)&&(a(),e={delete:0}),e.delete+=i.length,r.add(i)):this.adds(i)?((e===null||e.insert===void 0)&&(a(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),n.add(i)):((e===null||e.retain===void 0)&&(a(),e={retain:0}),e.retain+=i.length);e!==null&&e.retain===void 0&&a()}this._changes=e}return e}},Wi=(e,t)=>{let n=[];for(;t._item!==null&&t!==e;){if(t._item.parentSub!==null)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&r!==null;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},W=()=>{hr(`Invalid access: Add Yjs type to a document before reading data.`)},Gi=80,Ki=0,qi=class{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=Ki++}},Ji=e=>{e.timestamp=Ki++},Yi=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=Ki++},Xi=(e,t,n)=>{if(e.length>=Gi){let r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return Yi(r,t,n),r}else{let r=new qi(t,n);return e.push(r),r}},Zi=(e,t)=>{if(e._start===null||t===0||e._searchMarker===null)return null;let n=e._searchMarker.length===0?null:e._searchMarker.reduce((e,n)=>se(t-e.index)<se(t-n.index)?e:n),r=e._start,i=0;for(n!==null&&(r=n.p,i=n.index,Ji(n));r.right!==null&&i<t;){if(!r.deleted&&r.countable){if(t<i+r.length)break;i+=r.length}r=r.right}for(;r.left!==null&&i>t;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);for(;r.left!==null&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);return n!==null&&se(n.index-i)<r.parent.length/Gi?(Yi(n,r,i),n):Xi(e._searchMarker,r,i)},Qi=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){let i=e[r];if(n>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(i.index-=t.length);if(t===null||t.marker===!0){e.splice(r,1);continue}i.p=t,t.marker=!0}(t<i.index||n>0&&t===i.index)&&(i.index=h(t,i.index+n))}},$i=(e,t,n)=>{let r=e,i=t.changedParentTypes;for(;l(i,e,()=>[]).push(n),e._item!==null;)e=e._item.parent;li(r._eH,n,t)},G=class{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=oi(),this._dEH=oi(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw S()}clone(){throw S()}_write(e){}get _first(){let e=this._start;for(;e!==null&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){si(this._eH,e)}observeDeep(e){si(this._dEH,e)}unobserve(e){ci(this._eH,e)}unobserveDeep(e){ci(this._dEH,e)}toJSON(){}},ea=(e,t,n)=>{e.doc??W(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t,i=[],a=e._start;for(;a!==null&&r>0;){if(a.countable&&!a.deleted){let e=a.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)i.push(e[n]),r--;t=0}}a=a.right}return i},ta=e=>{e.doc??W();let t=[],n=e._start;for(;n!==null;){if(n.countable&&!n.deleted){let e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},na=(e,t)=>{let n=0,r=e._start;for(e.doc??W();r!==null;){if(r.countable&&!r.deleted){let i=r.content.getContent();for(let r=0;r<i.length;r++)t(i[r],n++,e)}r=r.right}},ra=(e,t)=>{let n=[];return na(e,(r,i)=>{n.push(t(r,i,e))}),n},ia=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){for(;t!==null&&t.deleted;)t=t.right;if(t===null)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}let e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},aa=(e,t)=>{e.doc??W();let n=Zi(e,t),r=e._start;for(n!==null&&(r=n.p,t-=n.index);r!==null;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},oa=(e,t,n,r)=>{let i=n,a=e.doc,o=a.clientID,s=a.store,c=n===null?t._start:n.right,l=[],u=()=>{l.length>0&&(i=new Z(R(o,z(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new po(l)),i.integrate(e,0),l=[])};r.forEach(n=>{if(n===null)l.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:l.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:i=new Z(R(o,z(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new $a(new Uint8Array(n))),i.integrate(e,0);break;case Pr:i=new Z(R(o,z(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new io(n)),i.integrate(e,0);break;default:if(n instanceof G)i=new Z(R(o,z(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new X(n)),i.integrate(e,0);else throw Error(`Unexpected content type in insert operation`)}}}),u()},sa=()=>x(`Length exceeded!`),ca=(e,t,n,r)=>{if(n>t._length)throw sa();if(n===0)return t._searchMarker&&Qi(t._searchMarker,n,r.length),oa(e,t,null,r);let i=n,a=Zi(t,n),o=t._start;for(a!==null&&(o=a.p,n-=a.index,n===0&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&V(e,R(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&Qi(t._searchMarker,i,r.length),oa(e,t,o,r)},la=(e,t,n)=>{let r=(t._searchMarker||[]).reduce((e,t)=>t.index>e.index?t:e,{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;return oa(e,t,r,n)},ua=(e,t,n,r)=>{if(r===0)return;let i=n,a=r,o=Zi(t,n),s=t._start;for(o!==null&&(s=o.p,n-=o.index);s!==null&&n>0;s=s.right)!s.deleted&&s.countable&&(n<s.length&&V(e,R(s.id.client,s.id.clock+n)),n-=s.length);for(;r>0&&s!==null;)s.deleted||(r<s.length&&V(e,R(s.id.client,s.id.clock+r)),s.delete(e),r-=s.length),s=s.right;if(r>0)throw sa();t._searchMarker&&Qi(t._searchMarker,i,-a+r)},da=(e,t,n)=>{let r=t._map.get(n);r!==void 0&&r.delete(e)},fa=(e,t,n,r)=>{let i=t._map.get(n)||null,a=e.doc,o=a.clientID,s;if(r==null)s=new po([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:s=new po([r]);break;case Uint8Array:s=new $a(r);break;case Pr:s=new io(r);break;default:if(r instanceof G)s=new X(r);else throw Error(`Unexpected content type`)}new Z(R(o,z(a.store,o)),i,i&&i.lastId,null,null,t,n,s).integrate(e,0)},pa=(e,t)=>{e.doc??W();let n=e._map.get(t);return n!==void 0&&!n.deleted?n.content.getContent()[n.length-1]:void 0},ma=e=>{let t={};return e.doc??W(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},ha=(e,t)=>{e.doc??W();let n=e._map.get(t);return n!==void 0&&!n.deleted},ga=(e,t)=>{let n={};return e._map.forEach((e,r)=>{let i=e;for(;i!==null&&(!t.sv.has(i.id.client)||i.id.clock>=(t.sv.get(i.id.client)||0));)i=i.left;i!==null&&mi(i,t)&&(n[r]=i.content.getContent()[i.length-1])}),n},_a=e=>(e.doc??W(),vr(e._map.entries(),e=>!e[1].deleted)),va=class extends Ui{},ya=class e extends G{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(t){let n=new e;return n.push(t),n}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return t.insert(0,this.toArray().map(e=>e instanceof G?e.clone():e)),t}get length(){return this.doc??W(),this._length}_callObserver(e,t){super._callObserver(e,t),$i(this,e,new va(this,e))}insert(e,t){this.doc===null?this._prelimContent.splice(e,0,...t):H(this.doc,n=>{ca(n,this,e,t)})}push(e){this.doc===null?this._prelimContent.push(...e):H(this.doc,t=>{la(t,this,e)})}unshift(e){this.insert(0,e)}delete(e,t=1){this.doc===null?this._prelimContent.splice(e,t):H(this.doc,n=>{ua(n,this,e,t)})}get(e){return aa(this,e)}toArray(){return ta(this)}slice(e=0,t=this.length){return ea(this,e,t)}toJSON(){return this.map(e=>e instanceof G?e.toJSON():e)}map(e){return ra(this,e)}forEach(e){na(this,e)}[Symbol.iterator](){return ia(this)}_write(e){e.writeTypeRef(_o)}},ba=e=>new ya,xa=class extends Ui{constructor(e,t,n){super(e,t),this.keysChanged=n}},Sa=class e extends G{constructor(e){super(),this._prelimContent=null,e===void 0?this._prelimContent=new Map:this._prelimContent=new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return this.forEach((e,n)=>{t.set(n,e instanceof G?e.clone():e)}),t}_callObserver(e,t){$i(this,e,new xa(this,e,t))}toJSON(){this.doc??W();let e={};return this._map.forEach((t,n)=>{if(!t.deleted){let r=t.content.getContent()[t.length-1];e[n]=r instanceof G?r.toJSON():r}}),e}get size(){return[..._a(this)].length}keys(){return yr(_a(this),e=>e[0])}values(){return yr(_a(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return yr(_a(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??W(),this._map.forEach((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)})}[Symbol.iterator](){return this.entries()}delete(e){this.doc===null?this._prelimContent.delete(e):H(this.doc,t=>{da(t,this,e)})}set(e,t){return this.doc===null?this._prelimContent.set(e,t):H(this.doc,n=>{fa(n,this,e,t)}),t}get(e){return pa(this,e)}has(e){return ha(this,e)}clear(){this.doc===null?this._prelimContent.clear():H(this.doc,e=>{this.forEach(function(t,n,r){da(e,r,n)})})}_write(e){e.writeTypeRef(vo)}},Ca=e=>new Sa,K=(e,t)=>e===t||typeof e==`object`&&typeof t==`object`&&e&&t&&Dt(e,t),wa=class{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){switch(this.right===null&&C(),this.right.content.constructor){case J:this.right.deleted||Oa(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length);break}this.left=this.right,this.right=this.right.right}},Ta=(e,t,n)=>{for(;t.right!==null&&n>0;){switch(t.right.content.constructor){case J:t.right.deleted||Oa(t.currentAttributes,t.right.content);break;default:t.right.deleted||(n<t.right.length&&V(e,R(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);break}t.left=t.right,t.right=t.right.right}return t},Ea=(e,t,n,r)=>{let i=new Map,a=r?Zi(t,n):null;return a?Ta(e,new wa(a.p.left,a.p,a.index,i),n-a.index):Ta(e,new wa(null,t._start,0,i),n)},Da=(e,t,n,r)=>{for(;n.right!==null&&(n.right.deleted===!0||n.right.content.constructor===J&&K(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();let i=e.doc,a=i.clientID;r.forEach((r,o)=>{let s=n.left,c=n.right,l=new Z(R(a,z(i.store,a)),s,s&&s.lastId,c,c&&c.id,t,null,new J(o,r));l.integrate(e,0),n.right=l,n.forward()})},Oa=(e,t)=>{let{key:n,value:r}=t;r===null?e.delete(n):e.set(n,r)},ka=(e,t)=>{for(;e.right!==null&&(e.right.deleted||e.right.content.constructor===J&&K(t[e.right.content.key]??null,e.right.content.value));)e.forward()},Aa=(e,t,n,r)=>{let i=e.doc,a=i.clientID,o=new Map;for(let s in r){let c=r[s],l=n.currentAttributes.get(s)??null;if(!K(l,c)){o.set(s,l);let{left:r,right:u}=n;n.right=new Z(R(a,z(i.store,a)),r,r&&r.lastId,u,u&&u.id,t,null,new J(s,c)),n.right.integrate(e,0),n.forward()}}return o},ja=(e,t,n,r,i)=>{n.currentAttributes.forEach((e,t)=>{i[t]===void 0&&(i[t]=null)});let a=e.doc,o=a.clientID;ka(n,i);let s=Aa(e,t,n,i),c=r.constructor===String?new Y(r):r instanceof G?new X(r):new oo(r),{left:l,right:u,index:d}=n;t._searchMarker&&Qi(t._searchMarker,n.index,c.getLength()),u=new Z(R(o,z(a.store,o)),l,l&&l.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Da(e,t,n,s)},Ma=(e,t,n,r,i)=>{let a=e.doc,o=a.clientID;ka(n,i);let s=Aa(e,t,n,i);iterationLoop:for(;n.right!==null&&(r>0||s.size>0&&(n.right.deleted||n.right.content.constructor===J));){if(!n.right.deleted)switch(n.right.content.constructor){case J:{let{key:t,value:a}=n.right.content,o=i[t];if(o!==void 0){if(K(o,a))s.delete(t);else{if(r===0)break iterationLoop;s.set(t,a)}n.right.delete(e)}else n.currentAttributes.set(t,a);break}default:r<n.right.length&&V(e,R(n.right.id.client,n.right.id.clock+r)),r-=n.right.length;break}n.forward()}if(r>0){let i=``;for(;r>0;r--)i+=`
3
3
  `;n.right=new Z(R(o,z(a.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new Y(i)),n.right.integrate(e,0),n.forward()}Da(e,t,n,s)},Na=(e,t,n,r,i)=>{let a=t,o=s();for(;a&&(!a.countable||a.deleted);){if(!a.deleted&&a.content.constructor===J){let e=a.content;o.set(e.key,e)}a=a.right}let c=0,l=!1;for(;t!==a;){if(n===t&&(l=!0),!t.deleted){let n=t.content;switch(n.constructor){case J:{let{key:a,value:s}=n,u=r.get(a)??null;(o.get(a)!==n||u===s)&&(t.delete(e),c++,!l&&(i.get(a)??null)===s&&u!==s&&(u===null?i.delete(a):i.set(a,u))),!l&&!t.deleted&&Oa(i,n);break}}}t=t.right}return c},Pa=(e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;let n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===J){let r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}},Fa=e=>{let t=0;return H(e.doc,n=>{let r=e._start,i=e._start,a=s(),o=c(a);for(;i;){if(i.deleted===!1)switch(i.content.constructor){case J:Oa(o,i.content);break;default:t+=Na(n,r,i,a,o),a=c(o),r=i;break}i=i.right}}),t},Ia=e=>{let t=new Set,n=e.doc;for(let[r,i]of e.afterState.entries()){let a=e.beforeState.get(r)||0;i!==a&&Ci(e,n.store.clients.get(r),a,i,e=>{!e.deleted&&e.content.constructor===J&&e.constructor!==q&&t.add(e.parent)})}H(n,n=>{Sr(e,e.deleteSet,e=>{if(e instanceof q||!e.parent._hasFormatting||t.has(e.parent))return;let r=e.parent;e.content.constructor===J?t.add(r):Pa(n,e)});for(let e of t)Fa(e)})},La=(e,t,n)=>{let r=n,i=c(t.currentAttributes),a=t.right;for(;n>0&&t.right!==null;){if(t.right.deleted===!1)switch(t.right.content.constructor){case X:case oo:case Y:n<t.right.length&&V(e,R(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(e);break}t.forward()}a&&Na(e,a,t.right,i,t.currentAttributes);let o=(t.left||t.right).parent;return o._searchMarker&&Qi(o._searchMarker,t.index,-r+n),t},Ra=class extends Ui{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach(e=>{e===null?this.childListChanged=!0:this.keysChanged.add(e)})}get changes(){if(this._changes===null){let e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(this._delta===null){let e=this.target.doc,t=[];H(e,e=>{let n=new Map,r=new Map,i=this.target._start,a=null,o={},s=``,c=0,l=0,u=()=>{if(a!==null){let e=null;switch(a){case`delete`:l>0&&(e={delete:l}),l=0;break;case`insert`:(typeof s==`object`||s.length>0)&&(e={insert:s},n.size>0&&(e.attributes={},n.forEach((t,n)=>{t!==null&&(e.attributes[n]=t)}))),s=``;break;case`retain`:c>0&&(e={retain:c},wt(o)||(e.attributes=bt({},o))),c=0;break}e&&t.push(e),a=null}};for(;i!==null;){switch(i.content.constructor){case X:case oo:this.adds(i)?this.deletes(i)||(u(),a=`insert`,s=i.content.getContent()[0],u()):this.deletes(i)?(a!==`delete`&&(u(),a=`delete`),l+=1):i.deleted||(a!==`retain`&&(u(),a=`retain`),c+=1);break;case Y:this.adds(i)?this.deletes(i)||(a!==`insert`&&(u(),a=`insert`),s+=i.content.str):this.deletes(i)?(a!==`delete`&&(u(),a=`delete`),l+=i.length):i.deleted||(a!==`retain`&&(u(),a=`retain`),c+=i.length);break;case J:{let{key:t,value:s}=i.content;if(this.adds(i))this.deletes(i)||(K(n.get(t)??null,s)?s!==null&&i.delete(e):(a===`retain`&&u(),K(s,r.get(t)??null)?delete o[t]:o[t]=s));else if(this.deletes(i)){r.set(t,s);let e=n.get(t)??null;K(e,s)||(a===`retain`&&u(),o[t]=e)}else if(!i.deleted){r.set(t,s);let n=o[t];n!==void 0&&(K(n,s)?n!==null&&i.delete(e):(a===`retain`&&u(),s===null?delete o[t]:o[t]=s))}i.deleted||(a===`insert`&&u(),Oa(n,i.content));break}}i=i.right}for(u();t.length>0;){let e=t[t.length-1];if(e.retain!==void 0&&e.attributes===void 0)t.pop();else break}}),this._delta=t}return this._delta}},za=class e extends G{constructor(e){super(),this._pending=e===void 0?[]:[()=>this.insert(0,e)],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??W(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){console.error(e)}this._pending=null}_copy(){return new e}clone(){let t=new e;return t.applyDelta(this.toDelta()),t}_callObserver(e,t){super._callObserver(e,t);let n=new Ra(this,e,t);$i(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??W();let e=``,t=this._start;for(;t!==null;)!t.deleted&&t.countable&&t.content.constructor===Y&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){this.doc===null?this._pending.push(()=>this.applyDelta(e)):H(this.doc,n=>{let r=new wa(null,this._start,0,new Map);for(let i=0;i<e.length;i++){let a=e[i];if(a.insert!==void 0){let o=!t&&typeof a.insert==`string`&&i===e.length-1&&r.right===null&&a.insert.slice(-1)===`
4
4
  `?a.insert.slice(0,-1):a.insert;(typeof o!=`string`||o.length>0)&&ja(n,this,r,o,a.attributes||{})}else a.retain===void 0?a.delete!==void 0&&La(n,r,a.delete):Ma(n,this,r,a.retain,a.attributes||{})}})}toDelta(e,t,n){this.doc??W();let r=[],i=new Map,a=this.doc,o=``,s=this._start;function c(){if(o.length>0){let e={},t=!1;i.forEach((n,r)=>{t=!0,e[r]=n});let n={insert:o};t&&(n.attributes=e),r.push(n),o=``}}let l=()=>{for(;s!==null;){if(mi(s,e)||t!==void 0&&mi(s,t))switch(s.content.constructor){case Y:{let r=i.get(`ychange`);e!==void 0&&!mi(s,e)?(r===void 0||r.user!==s.id.client||r.type!==`removed`)&&(c(),i.set(`ychange`,n?n(`removed`,s.id):{type:`removed`})):t!==void 0&&!mi(s,t)?(r===void 0||r.user!==s.id.client||r.type!==`added`)&&(c(),i.set(`ychange`,n?n(`added`,s.id):{type:`added`})):r!==void 0&&(c(),i.delete(`ychange`)),o+=s.content.str;break}case X:case oo:{c();let e={insert:s.content.getContent()[0]};if(i.size>0){let t={};e.attributes=t,i.forEach((e,n)=>{t[n]=e})}r.push(e);break}case J:mi(s,e)&&(c(),Oa(i,s.content));break}s=s.right}c()};return e||t?H(a,n=>{e&&hi(n,e),t&&hi(n,t),l()},`cleanup`):l(),r}insert(e,t,n){if(t.length<=0)return;let r=this.doc;r===null?this._pending.push(()=>this.insert(e,t,n)):H(r,r=>{let i=Ea(r,this,e,!n);n||(n={},i.currentAttributes.forEach((e,t)=>{n[t]=e})),ja(r,this,i,t,n)})}insertEmbed(e,t,n){let r=this.doc;r===null?this._pending.push(()=>this.insertEmbed(e,t,n||{})):H(r,r=>{let i=Ea(r,this,e,!n);ja(r,this,i,t,n||{})})}delete(e,t){if(t===0)return;let n=this.doc;n===null?this._pending.push(()=>this.delete(e,t)):H(n,n=>{La(n,Ea(n,this,e,!0),t)})}format(e,t,n){if(t===0)return;let r=this.doc;r===null?this._pending.push(()=>this.format(e,t,n)):H(r,r=>{let i=Ea(r,this,e,!1);i.right!==null&&Ma(r,this,i,t,n)})}removeAttribute(e){this.doc===null?this._pending.push(()=>this.removeAttribute(e)):H(this.doc,t=>{da(t,this,e)})}setAttribute(e,t){this.doc===null?this._pending.push(()=>this.setAttribute(e,t)):H(this.doc,n=>{fa(n,this,e,t)})}getAttribute(e){return pa(this,e)}getAttributes(){return ma(this)}_write(e){e.writeTypeRef(yo)}},Ba=e=>new za,Va=class{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??W()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(e!==null&&(!this._firstCall||e.deleted||!this._filter(t)))do if(t=e.content.type,!e.deleted&&(t.constructor===Wa||t.constructor===Ha)&&t._start!==null)e=t._start;else for(;e!==null;){let t=e.next;if(t!==null){e=t;break}else e=e.parent===this._root?null:e.parent._item}while(e!==null&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,e===null?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}},Ha=class e extends G{constructor(){super(),this._prelimContent=[]}get firstChild(){let e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return t.insert(0,this.toArray().map(e=>e instanceof G?e.clone():e)),t}get length(){return this.doc??W(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new Va(this,e)}querySelector(e){e=e.toUpperCase();let t=new Va(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),p(new Va(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){$i(this,e,new Ka(this,t,e))}toString(){return ra(this,e=>e.toString()).join(``)}toJSON(){return this.toString()}toDOM(e=document,t={},n){let r=e.createDocumentFragment();return n!==void 0&&n._createAssociation(r,this),na(this,i=>{r.insertBefore(i.toDOM(e,t,n),null)}),r}insert(e,t){this.doc===null?this._prelimContent.splice(e,0,...t):H(this.doc,n=>{ca(n,this,e,t)})}insertAfter(e,t){if(this.doc!==null)H(this.doc,n=>{let r=e&&e instanceof G?e._item:e;oa(n,this,r,t)});else{let n=this._prelimContent,r=e===null?0:n.findIndex(t=>t===e)+1;if(r===0&&e!==null)throw x(`Reference item not found`);n.splice(r,0,...t)}}delete(e,t=1){this.doc===null?this._prelimContent.splice(e,t):H(this.doc,n=>{ua(n,this,e,t)})}toArray(){return ta(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return aa(this,e)}slice(e=0,t=this.length){return ea(this,e,t)}forEach(e){na(this,e)}_write(e){e.writeTypeRef(xo)}},Ua=e=>new Ha,Wa=class e extends Ha{constructor(e=`UNDEFINED`){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach((e,t)=>{this.setAttribute(t,e)}),this._prelimAttrs=null}_copy(){return new e(this.nodeName)}clone(){let t=new e(this.nodeName);return St(this.getAttributes(),(e,n)=>{t.setAttribute(n,e)}),t.insert(0,this.toArray().map(e=>e instanceof G?e.clone():e)),t}toString(){let e=this.getAttributes(),t=[],n=[];for(let t in e)n.push(t);n.sort();let r=n.length;for(let i=0;i<r;i++){let r=n[i];t.push(r+`="`+e[r]+`"`)}let i=this.nodeName.toLocaleLowerCase();return`<${i}${t.length>0?` `+t.join(` `):``}>${super.toString()}</${i}>`}removeAttribute(e){this.doc===null?this._prelimAttrs.delete(e):H(this.doc,t=>{da(t,this,e)})}setAttribute(e,t){this.doc===null?this._prelimAttrs.set(e,t):H(this.doc,n=>{fa(n,this,e,t)})}getAttribute(e){return pa(this,e)}hasAttribute(e){return ha(this,e)}getAttributes(e){return e?ga(this,e):ma(this)}toDOM(e=document,t={},n){let r=e.createElement(this.nodeName),i=this.getAttributes();for(let e in i){let t=i[e];typeof t==`string`&&r.setAttribute(e,t)}return na(this,i=>{r.appendChild(i.toDOM(e,t,n))}),n!==void 0&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(bo),e.writeKey(this.nodeName)}},Ga=e=>new Wa(e.readKey()),Ka=class extends Ui{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{e===null?this.childListChanged=!0:this.attributesChanged.add(e)})}},qa=class e extends Sa{constructor(e){super(),this.hookName=e}_copy(){return new e(this.hookName)}clone(){let t=new e(this.hookName);return this.forEach((e,n)=>{t.set(n,e)}),t}toDOM(e=document,t={},n){let r=t[this.hookName],i;return i=r===void 0?document.createElement(this.hookName):r.createDom(this),i.setAttribute(`data-yjs-hook`,this.hookName),n!==void 0&&n._createAssociation(i,this),i}_write(e){e.writeTypeRef(So),e.writeKey(this.hookName)}},Ja=e=>new qa(e.readKey()),Ya=class e extends za{get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new e}clone(){let t=new e;return t.applyDelta(this.toDelta()),t}toDOM(e=document,t,n){let r=e.createTextNode(this.toString());return n!==void 0&&n._createAssociation(r,this),r}toString(){return this.toDelta().map(e=>{let t=[];for(let n in e.attributes){let r=[];for(let t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort((e,t)=>e.key<t.key?-1:1),t.push({nodeName:n,attrs:r})}t.sort((e,t)=>e.nodeName<t.nodeName?-1:1);let n=``;for(let e=0;e<t.length;e++){let r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){let t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=`>`}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n}).join(``)}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Co)}},Xa=e=>new Ya,Za=class{constructor(e,t){this.id=e,this.length=t}get deleted(){throw S()}mergeWith(e){return!1}write(e,t,n){throw S()}integrate(e,t){throw S()}},Qa=0,q=class extends Za{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor?(this.length+=e.length,!0):!1}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),vi(e.doc.store,this)}write(e,t){e.writeInfo(Qa),e.writeLen(this.length-t)}getMissing(e,t){return null}},$a=class e{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new e(this.content)}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}},eo=e=>new $a(e.readBuf()),to=class e{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new e(this.len)}splice(t){let n=new e(this.len-t);return this.len=t,n}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Dr(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}},no=e=>new to(e.readLen()),ro=(e,t)=>new Pr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1}),io=class e{constructor(e){e._item&&console.error(`This document was already integrated as a sub-document. You should create a second instance instead with the same guid.`),this.doc=e;let t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),e.meta!==null&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new e(ro(this.doc.guid,this.opts))}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}},ao=e=>new io(ro(e.readString(),e.readAny())),oo=class e{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new e(this.embed)}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}},so=e=>new oo(e.readJSON()),J=class e{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new e(this.key,this.value)}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){let n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}},co=e=>new J(e.readKey(),e.readJSON()),lo=class e{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new e(this.arr)}splice(t){let n=new e(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let t=this.arr[r];e.writeString(t===void 0?`undefined`:JSON.stringify(t))}}getRef(){return 2}},uo=e=>{let t=e.readLen(),n=[];for(let r=0;r<t;r++){let t=e.readString();t===`undefined`?n.push(void 0):n.push(JSON.parse(t))}return new lo(n)},fo=Rt(`node_env`)===`development`,po=class e{constructor(e){this.arr=e,fo&&kt(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new e(this.arr)}splice(t){let n=new e(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let t=this.arr[r];e.writeAny(t)}}getRef(){return 8}},mo=e=>{let t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new po(n)},Y=class e{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split(``)}isCountable(){return!0}copy(){return new e(this.str)}splice(t){let n=new e(this.str.slice(t));this.str=this.str.slice(0,t);let r=this.str.charCodeAt(t-1);return r>=55296&&r<=56319&&(this.str=this.str.slice(0,t-1)+`�`,n.str=`�`+n.str.slice(1)),n}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(t===0?this.str:this.str.slice(t))}getRef(){return 4}},ho=e=>new Y(e.readString()),go=[ba,Ca,Ba,Ga,Ua,Ja,Xa],_o=0,vo=1,yo=2,bo=3,xo=4,So=5,Co=6,X=class e{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new e(this.type._copy())}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;t!==null;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)}),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;t!==null;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(t=>{for(;t!==null;)t.gc(e,!0),t=t.left}),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}},wo=e=>new X(go[e.readTypeRef()](e)),To=(e,t,n)=>{let{client:r,clock:i}=t.id,a=new Z(R(r,i+n),t,R(r,i+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&a.markDeleted(),t.keep&&(a.keep=!0),t.redone!==null&&(a.redone=R(t.redone.client,t.redone.clock+n)),t.right=a,a.right!==null&&(a.right.left=a),e._mergeStructs.push(a),a.parentSub!==null&&a.right===null&&a.parent._map.set(a.parentSub,a),t.length=n,a},Z=class e extends Za{constructor(e,t,n,r,i,a,o,s){super(e,s.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=i,this.parent=a,this.parentSub=o,this.redone=null,this.content=s,this.info=this.content.isCountable()?2:0}set marker(e){(this.info&8)>0!==e&&(this.info^=8)}get marker(){return(this.info&8)>0}get keep(){return(this.info&1)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(this.info&2)>0}get deleted(){return(this.info&4)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(t,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=z(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=z(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===ui&&this.id.client!==this.parent.client&&this.parent.clock>=z(n,this.parent.client))return this.parent.client;if(this.origin&&=(this.left=xi(t,n,this.origin),this.left.lastId),this.rightOrigin&&=(this.right=V(t,this.rightOrigin),this.right.id),this.left&&this.left.constructor===q||this.right&&this.right.constructor===q)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===e?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===e&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===ui){let e=yi(n,this.parent);e.constructor===q?this.parent=null:this.parent=e.content.type}return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=xi(e,e.doc.store,R(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let t=this.left,n;if(t!==null)n=t.right;else if(this.parentSub!==null)for(n=this.parent._map.get(this.parentSub)||null;n!==null&&n.left!==null;)n=n.left;else n=this.parent._start;let r=new Set,i=new Set;for(;n!==null&&n!==this.right;){if(i.add(n),r.add(n),di(this.origin,n.origin)){if(n.id.client<this.id.client)t=n,r.clear();else if(di(this.rightOrigin,n.rightOrigin))break}else if(n.origin!==null&&i.has(yi(e.doc.store,n.origin)))r.has(yi(e.doc.store,n.origin))||(t=n,r.clear());else break;n=n.right}this.left=t}if(this.left!==null){let e=this.left.right;this.right=e,this.left.right=this}else{let e;if(this.parentSub!==null)for(e=this.parent._map.get(this.parentSub)||null;e!==null&&e.left!==null;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}this.right===null?this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(e)):this.right.left=this,this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),vi(e.doc.store,this),this.content.integrate(e,this),Ei(e,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(e)}else new q(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;e!==null&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;e!==null&&e.deleted;)e=e.left;return e}get lastId(){return this.length===1?this.id:R(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&di(e.origin,this.lastId)&&this.right===e&&di(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&this.redone===null&&e.redone===null&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){let t=this.parent._searchMarker;return t&&t.forEach(t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){let t=this.parent;this.countable&&this.parentSub===null&&(t._length-=this.length),this.markDeleted(),Dr(e.deleteSet,this.id.client,this.id.clock,this.length),Ei(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw C();this.content.gc(e),t?Si(e,this,new q(this.id,this.length)):this.content=new to(this.length)}write(e,t){let n=t>0?R(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,i=this.parentSub,a=this.content.getRef()&31|(n===null?0:128)|(r===null?0:64)|(i===null?0:32);if(e.writeInfo(a),n!==null&&e.writeLeftID(n),r!==null&&e.writeRightID(r),n===null&&r===null){let t=this.parent;if(t._item!==void 0){let n=t._item;if(n===null){let n=fi(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===ui?(e.writeParentInfo(!1),e.writeLeftID(t)):C();i!==null&&e.writeString(i)}this.content.write(e,t)}},Eo=(e,t)=>Do[t&31](e),Do=[()=>{C()},no,uo,eo,ho,so,co,wo,mo,ao,()=>{C()}],Oo=10,Q=class extends Za{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor?(this.length+=e.length,!0):!1}integrate(e,t){C()}write(e,t){e.writeInfo(Oo),v(e.restEncoder,this.length-t)}getMissing(e,t){return null}},ko=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:{},Ao=`__ $YJS$ __`;ko[Ao]===!0&&console.error(`Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438`),ko[Ao]=!0;var jo=new TextEncoder,Mo=new TextDecoder,No=(e,t)=>{let n=jo.encode(JSON.stringify(t)),r=new Uint8Array(1+n.length);return r[0]=e,r.set(n,1),r},Po=e=>{if(e.kind===`sync_step1`){let t=new Uint8Array(1+e.stateVector.length);return t[0]=0,t.set(e.stateVector,1),t}if(e.kind===`sync_step2`){let t=new Uint8Array(1+e.update.length);return t[0]=1,t.set(e.update,1),t}if(e.kind===`update`){let t=new Uint8Array(1+e.update.length);return t[0]=2,t.set(e.update,1),t}return e.kind===`history_snapshot`?No(3,e.view):e.kind===`history_append`?No(4,{entry:e.entry,cursor:e.cursor}):e.kind===`history_jump`?No(5,{entryId:e.entryId}):No(6,{})},Fo=e=>{try{return JSON.parse(Mo.decode(e))}catch{return null}},Io=e=>{if(e.length<1)return null;let t=e[0],n=e.subarray(1);if(t===0)return{kind:`sync_step1`,stateVector:n};if(t===1)return{kind:`sync_step2`,update:n};if(t===2)return{kind:`update`,update:n};if(t===3){let e=Fo(n);return!e||!Array.isArray(e.entries)||typeof e.cursor!=`number`?null:{kind:`history_snapshot`,view:e}}if(t===4){let e=Fo(n);return!e||!e.entry||typeof e.cursor!=`number`?null:{kind:`history_append`,entry:e.entry,cursor:e.cursor}}if(t===5){let e=Fo(n);return!e||typeof e.entryId!=`string`?null:{kind:`history_jump`,entryId:e.entryId}}return t===6?{kind:`history_clear`}:null},Lo=`unspa.identity.name`,Ro=`unspa.identity.asked`,zo=40,Bo=`Anonymous`,Vo=e=>e.replace(/[^\p{L}\p{N} \-_.@'’]/gu,``).trim().slice(0,zo),Ho=new class{#e=t(``);get name(){return e(this.#e)}set name(e){n(this.#e,e,!0)}initialized=!1;init(){if(this.initialized||(this.initialized=!0,typeof localStorage>`u`))return;let e=localStorage.getItem(Lo);e&&(this.name=Vo(e))}setName(e){let t=Vo(e);this.name=t,!(typeof localStorage>`u`)&&(t.length>0?localStorage.setItem(Lo,t):localStorage.removeItem(Lo))}get hasBeenAsked(){return typeof localStorage>`u`?!0:localStorage.getItem(Ro)===`1`}markAsked(){typeof localStorage>`u`||localStorage.setItem(Ro,`1`)}get author(){return this.name.length>0?this.name:Bo}},Uo=()=>location.protocol===`https:`?`wss:`:`ws:`,Wo=()=>`${Uo()}//${location.host}/sync`,Go=1e3,Ko=8e3,qo=class{roomId;doc=new Pr;map=this.doc.getMap(o);ws=null;listeners=new Set;historyListeners=new Set;historyView={entries:[],cursor:-1};connected=!1;closed=!1;backoffMs=Go;reconnectTimer=null;buffered=[];constructor(e){this.roomId=e,this.doc.on(`update`,(e,t)=>{let n=t===`remote`;n||this.send(Po({kind:`update`,update:e}));let r=this.map.get(a),i=n?`remote`:`local`;for(let e of this.listeners)e(r??null,i)})}connect(){if(this.ws||this.closed)return;let e=Ho.author,t=r.token,n=new URLSearchParams({author:e});t.length>0&&n.set(`token`,t);let i=`${Wo()}/${encodeURIComponent(this.roomId)}?${n.toString()}`,a=new WebSocket(i);a.binaryType=`arraybuffer`,this.ws=a,a.addEventListener(`open`,()=>{this.connected=!0,this.backoffMs=Go;for(let e of this.buffered)a.send(e);this.buffered=[],a.send(Po({kind:`sync_step1`,stateVector:ii(this.doc)}))}),a.addEventListener(`message`,e=>{let t=e.data instanceof ArrayBuffer?new Uint8Array(e.data):null;if(!t)return;let n=Io(t);if(n){if(n.kind===`sync_step1`){let e=Qr(this.doc,n.stateVector);a.send(Po({kind:`sync_step2`,update:e}));return}if(n.kind===`sync_step2`||n.kind===`update`){Yr(this.doc,n.update,`remote`);return}if(n.kind===`history_snapshot`){this.historyView=n.view,this.fanHistoryChange();return}if(n.kind===`history_append`){n.cursor<this.historyView.entries.length&&(this.historyView={entries:this.historyView.entries.slice(0,n.cursor),cursor:n.cursor}),this.historyView={entries:[...this.historyView.entries,n.entry],cursor:n.cursor},this.fanHistoryChange();return}}}),a.addEventListener(`close`,()=>{this.ws=null,this.connected=!1,!this.closed&&this.scheduleReconnect()}),a.addEventListener(`error`,()=>{})}scheduleReconnect(){if(this.reconnectTimer)return;let e=this.backoffMs;this.backoffMs=Math.min(this.backoffMs*2,Ko),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},e)}send(e){if(this.connected&&this.ws&&this.ws.readyState===WebSocket.OPEN){this.ws.send(e);return}this.buffered.push(e)}get snapshot(){return this.map.get(`data`)??null}setSnapshot(e){this.doc.transact(()=>{this.map.set(a,e)})}observe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}get history(){return this.historyView}historyEntry(e){return this.historyView.entries.find(t=>t.id===e)??null}observeHistory(e){return this.historyListeners.add(e),()=>{this.historyListeners.delete(e)}}undo(){let e=this.historyView.entries[this.historyView.cursor-1];e&&this.jumpTo(e.id)}redo(){let e=this.historyView.entries[this.historyView.cursor+1];e&&this.jumpTo(e.id)}get canUndo(){return this.historyView.cursor>0}get canRedo(){return this.historyView.cursor<this.historyView.entries.length-1}jumpTo(e){this.send(Po({kind:`history_jump`,entryId:e}))}clearHistory(){this.send(Po({kind:`history_clear`}))}fanHistoryChange(){for(let e of this.historyListeners)e(this.historyView)}destroy(){if(this.closed=!0,this.listeners.clear(),this.historyListeners.clear(),this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),null),this.ws){try{this.ws.close()}catch{}this.ws=null}this.doc.destroy()}},Jo=new Map,Yo=()=>{if(typeof WebSocket>`u`)throw Error(`Sync client is only available in the browser`)},Xo=(e,t)=>{Yo();let n=i(e,t),r=Jo.get(n);if(r)return r;let a=new qo(n);return Jo.set(n,a),a.connect(),a},$=e=>!!e&&typeof e==`object`&&!Array.isArray(e),Zo=e=>!!e&&typeof e==`object`&&typeof e.id==`string`,Qo=(e,t)=>{for(let n of Object.keys(e))n in t||delete e[n];for(let n of Object.keys(t)){let r=t[n];if(!(n in e)){e[n]=r;continue}let i=e[n];Array.isArray(i)&&Array.isArray(r)?$o(i,r):$(i)&&$(r)?Qo(i,r):i!==r&&(e[n]=r)}},$o=(e,t)=>{let n=e.every(Zo),r=t.every(Zo);if(n&&r){let n=e,r=t,i=new Map;for(let e of n)i.set(e.id,e);for(let e=0;e<r.length;e+=1){let t=r[e],a=i.get(t.id),o=n[e];if(a&&o&&o.id===t.id){Qo(a,t);continue}if(a){let r=n.indexOf(a);r!==e&&(n.splice(r,1),n.splice(e,0,a)),Qo(a,t)}else n.splice(e,0,t),i.set(t.id,t)}n.length>r.length&&n.splice(r.length,n.length-r.length);return}e.length>t.length&&e.splice(t.length,e.length-t.length);for(let n=0;n<t.length;n+=1){let r=t[n];if(n>=e.length){e.push(r);continue}let i=e[n];Array.isArray(i)&&Array.isArray(r)?$o(i,r):$(i)&&$(r)?Qo(i,r):i!==r&&(e[n]=r)}},es=(e,t)=>(Array.isArray(e)&&Array.isArray(t)?$o(e,t):$(e)&&$(t)&&Qo(e,t),e),ts=e=>JSON.parse(JSON.stringify(e));export{Ho as i,es as n,Xo as r,ts as t};
@@ -1 +1 @@
1
- import"./D50Xf4Qj.js";import{a as e,o as t,s as n}from"./DsW-fl3n.js";var r={get data(){return n.data},get error(){return n.error},get form(){return n.form},get params(){return n.params},get route(){return n.route},get state(){return n.state},get status(){return n.status},get url(){return n.url}};Object.defineProperty({get from(){return t.current?t.current.from:null},get to(){return t.current?t.current.to:null},get type(){return t.current?t.current.type:null},get willUnload(){return t.current?t.current.willUnload:null},get delta(){return t.current?t.current.delta:null},get complete(){return t.current?t.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),e.updated.check;var i=r;export{i as t};
1
+ import"./D50Xf4Qj.js";import{a as e,o as t,s as n}from"./BdU1Yt_e.js";var r={get data(){return n.data},get error(){return n.error},get form(){return n.form},get params(){return n.params},get route(){return n.route},get state(){return n.state},get status(){return n.status},get url(){return n.url}};Object.defineProperty({get from(){return t.current?t.current.from:null},get to(){return t.current?t.current.to:null},get type(){return t.current?t.current.type:null},get willUnload(){return t.current?t.current.willUnload:null},get delta(){return t.current?t.current.delta:null},get complete(){return t.current?t.current.complete:null}},"current",{get(){throw Error(`Replace navigating.current.<prop> with navigating.<prop>`)}}),e.updated.check;var i=r;export{i as t};
@@ -0,0 +1 @@
1
+ import"./BdU1Yt_e.js";
@@ -0,0 +1,2 @@
1
+
2
+ �import"./BdU1Yt_e.js";
@@ -1 +1 @@
1
- import{V as e,it as t,nt as n,rt as r}from"./D50Xf4Qj.js";import{D as i,E as a,P as o,ft as s,nt as c,t as l,w as u,z as d}from"./Dz7lEIMt.js";import{t as f}from"./Cl7Z3e6-.js";var p=e=>JSON.stringify({format:`unspaghettit`,version:1,feature:e},null,2),m=e=>{if(`actions`in e)return e;if(`capabilities`in e){let{capabilities:t,...n}=e;return{...n,actions:t}}return e},h=e=>{let t;try{t=JSON.parse(e)}catch(e){throw Error(`Invalid JSON: ${e.message}`)}if(!t||typeof t!=`object`)throw Error(`Expected a feature export object`);let n=t;if(n.format!==`unspaghettit`)throw Error(`Not an Unspaghettit export (missing format field)`);if(n.version!==1)throw Error(`Unsupported export version: ${n.version}`);let r=n.feature??n.experience;if(!r)throw Error(`Export envelope is missing a feature`);let i=(r.surfaces??[]).map(e=>m(e)),l=r,u=l.entities??l.data??[];return d(o(s(c({...r,tags:a(r.tags),surfaces:i,personas:r.personas??[],resources:r.resources??[],entities:u}))))},g=`Unknown`,_=new class{#e=t(!0);get loading(){return e(this.#e)}set loading(e){r(this.#e,e,!0)}#t=t(n([]));get summaries(){return e(this.#t)}set summaries(e){r(this.#t,e,!0)}#n=t(``);get search(){return e(this.#n)}set search(e){r(this.#n,e,!0)}#r=t(null);get pendingDeleteId(){return e(this.#r)}set pendingDeleteId(e){r(this.#r,e,!0)}#i=t(``);get selectedProjectId(){return e(this.#i)}set selectedProjectId(e){r(this.#i,e,!0)}#a=t(null);get error(){return e(this.#a)}set error(e){r(this.#a,e,!0)}async refresh(){try{this.loading=!0,this.error=null;let e=await l();this.summaries=[...await e.useCases.listProjects()]}catch(e){this.error=e.message}finally{this.loading=!1}}async refreshSilent(){try{let e=await l();this.summaries=[...await e.useCases.listProjects()],this.error=null}catch(e){this.error=e.message}}setSearch(e){this.search=e,f(`project.search_updated`,{query:e})}setSelectedProject(e){this.selectedProjectId=e,e&&f(`project.opened`,{id:e})}openProject(e){return this.setSelectedProject(e),`/projects/${e}`}stagePendingDelete(e){this.pendingDeleteId=e,f(`project.delete_requested`,{id:e})}clearPendingDelete(){this.pendingDeleteId=null}async create(e,t){let n=await(await l()).useCases.createProject({name:e,description:t});return await this.refreshSilent(),f(`project.created`,{id:String(n.id),name:n.name}),n.id}async remove(e){this.summaries=this.summaries.filter(t=>String(t.id)!==String(e)),this.clearPendingDelete(),await(await l()).useCases.deleteProject(e),f(`project.deleted`,{id:String(e)})}async reconcileOrphanFeatures(){let e=await l(),t=await e.useCases.listFeatures();if(t.length===0)return;let n=await e.useCases.listProjects(),r=new Set;for(let t of n){let n=await e.useCases.getProject(t.id);if(n)for(let e of n.featureIds)r.add(String(e))}let i=t.filter(e=>!r.has(String(e.id)));if(i.length===0)return;let a=n.find(e=>e.name===g);if(!a){let t=await e.useCases.createProject({name:g,description:`Auto-created bucket. Holds features that are not assigned to any other project. Rename or reassign to clean it up.`});a={id:t.id,name:t.name,description:t.description,featureCount:0,createdAt:t.createdAt,updatedAt:t.updatedAt}}for(let t of i)await e.useCases.addFeatureToProject(a.id,t.id);await this.refreshSilent()}},v=new class{#e=t(!0);get loading(){return e(this.#e)}set loading(e){r(this.#e,e,!0)}#t=t(n([]));get summaries(){return e(this.#t)}set summaries(e){r(this.#t,e,!0)}#n=t(null);get error(){return e(this.#n)}set error(e){r(this.#n,e,!0)}async refresh(){try{this.loading=!0,this.error=null;let e=await l();this.summaries=[...await e.useCases.listFeaturesWithMaturity()]}catch(e){this.error=e.message}finally{this.loading=!1}}async refreshSilent(){try{let e=await l();this.summaries=[...await e.useCases.listFeaturesWithMaturity()],this.error=null}catch(e){this.error=e.message}}async create(e,t){let n=await(await l()).useCases.createFeature({name:e,description:t});return await this.refreshSilent(),f(`feature.created`,{id:n.id,name:n.name}),n.id}async addTag(e,t){let n=await l(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:u(r.tags,t)}),await this.refreshSilent())}async removeTag(e,t){let n=await l(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:i(r.tags,t)}),await this.refreshSilent())}async remove(e){this.summaries=this.summaries.filter(t=>String(t.id)!==String(e)),await(await l()).useCases.deleteFeature(e),f(`feature.deleted`,{id:e})}async loadSamples(){let e=await(await l()).useCases.loadSamples();return await this.refreshSilent(),await _.refreshSilent(),e}async importJson(e){let t=h(e),n=await l(),r=this.summaries.some(e=>e.id===t.id),i=await n.useCases.saveFeature(t);return await this.refreshSilent(),{id:i.id,name:i.name,overwrote:r}}};export{_ as n,p as r,v as t};
1
+ import{V as e,it as t,nt as n,rt as r}from"./D50Xf4Qj.js";import{D as i,E as a,P as o,ft as s,nt as c,t as l,w as u,z as d}from"./DPrNvhwL.js";import{t as f}from"./Cl7Z3e6-.js";var p=e=>JSON.stringify({format:`unspaghettit`,version:1,feature:e},null,2),m=e=>{if(`actions`in e)return e;if(`capabilities`in e){let{capabilities:t,...n}=e;return{...n,actions:t}}return e},h=e=>{let t;try{t=JSON.parse(e)}catch(e){throw Error(`Invalid JSON: ${e.message}`)}if(!t||typeof t!=`object`)throw Error(`Expected a feature export object`);let n=t;if(n.format!==`unspaghettit`)throw Error(`Not an Unspaghettit export (missing format field)`);if(n.version!==1)throw Error(`Unsupported export version: ${n.version}`);let r=n.feature??n.experience;if(!r)throw Error(`Export envelope is missing a feature`);let i=(r.surfaces??[]).map(e=>m(e)),l=r,u=l.entities??l.data??[];return d(o(s(c({...r,tags:a(r.tags),surfaces:i,personas:r.personas??[],resources:r.resources??[],entities:u}))))},g=`Unknown`,_=new class{#e=t(!0);get loading(){return e(this.#e)}set loading(e){r(this.#e,e,!0)}#t=t(n([]));get summaries(){return e(this.#t)}set summaries(e){r(this.#t,e,!0)}#n=t(``);get search(){return e(this.#n)}set search(e){r(this.#n,e,!0)}#r=t(null);get pendingDeleteId(){return e(this.#r)}set pendingDeleteId(e){r(this.#r,e,!0)}#i=t(``);get selectedProjectId(){return e(this.#i)}set selectedProjectId(e){r(this.#i,e,!0)}#a=t(null);get error(){return e(this.#a)}set error(e){r(this.#a,e,!0)}async refresh(){try{this.loading=!0,this.error=null;let e=await l();this.summaries=[...await e.useCases.listProjects()]}catch(e){this.error=e.message}finally{this.loading=!1}}async refreshSilent(){try{let e=await l();this.summaries=[...await e.useCases.listProjects()],this.error=null}catch(e){this.error=e.message}}setSearch(e){this.search=e,f(`project.search_updated`,{query:e})}setSelectedProject(e){this.selectedProjectId=e,e&&f(`project.opened`,{id:e})}openProject(e){return this.setSelectedProject(e),`/projects/${e}`}stagePendingDelete(e){this.pendingDeleteId=e,f(`project.delete_requested`,{id:e})}clearPendingDelete(){this.pendingDeleteId=null}async create(e,t){let n=await(await l()).useCases.createProject({name:e,description:t});return await this.refreshSilent(),f(`project.created`,{id:String(n.id),name:n.name}),n.id}async remove(e){this.summaries=this.summaries.filter(t=>String(t.id)!==String(e)),this.clearPendingDelete(),await(await l()).useCases.deleteProject(e),f(`project.deleted`,{id:String(e)})}async reconcileOrphanFeatures(){let e=await l(),t=await e.useCases.listFeatures();if(t.length===0)return;let n=await e.useCases.listProjects(),r=new Set;for(let t of n){let n=await e.useCases.getProject(t.id);if(n)for(let e of n.featureIds)r.add(String(e))}let i=t.filter(e=>!r.has(String(e.id)));if(i.length===0)return;let a=n.find(e=>e.name===g);if(!a){let t=await e.useCases.createProject({name:g,description:`Auto-created bucket. Holds features that are not assigned to any other project. Rename or reassign to clean it up.`});a={id:t.id,name:t.name,description:t.description,featureCount:0,createdAt:t.createdAt,updatedAt:t.updatedAt}}for(let t of i)await e.useCases.addFeatureToProject(a.id,t.id);await this.refreshSilent()}},v=new class{#e=t(!0);get loading(){return e(this.#e)}set loading(e){r(this.#e,e,!0)}#t=t(n([]));get summaries(){return e(this.#t)}set summaries(e){r(this.#t,e,!0)}#n=t(null);get error(){return e(this.#n)}set error(e){r(this.#n,e,!0)}async refresh(){try{this.loading=!0,this.error=null;let e=await l();this.summaries=[...await e.useCases.listFeaturesWithMaturity()]}catch(e){this.error=e.message}finally{this.loading=!1}}async refreshSilent(){try{let e=await l();this.summaries=[...await e.useCases.listFeaturesWithMaturity()],this.error=null}catch(e){this.error=e.message}}async create(e,t){let n=await(await l()).useCases.createFeature({name:e,description:t});return await this.refreshSilent(),f(`feature.created`,{id:n.id,name:n.name}),n.id}async addTag(e,t){let n=await l(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:u(r.tags,t)}),await this.refreshSilent())}async removeTag(e,t){let n=await l(),r=await n.useCases.getFeature(e);r&&(await n.useCases.saveFeature({...r,tags:i(r.tags,t)}),await this.refreshSilent())}async remove(e){this.summaries=this.summaries.filter(t=>String(t.id)!==String(e)),await(await l()).useCases.deleteFeature(e),f(`feature.deleted`,{id:e})}async loadSamples(){let e=await(await l()).useCases.loadSamples();return await this.refreshSilent(),await _.refreshSilent(),e}async importJson(e){let t=h(e),n=await l(),r=this.summaries.some(e=>e.id===t.id),i=await n.useCases.saveFeature(t);return await this.refreshSilent(),{id:i.id,name:i.name,overwrote:r}}};export{_ as n,p as r,v as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BpBsb117.js","./kNaey6uv.js","./CEVfZihO.js","./kvTyu7mM.js","./D50Xf4Qj.js","./DsF7k-Jl.js","./D6Ojqcvl.js","./CXBo-tYc.js","./B0OyqRRq.js","./C3BhbZfF.js","./DCCK18Uo2.js","./BXBsImMQ.js","./BWPyau1x.js","./BifhSqXX.js","./CWiCMZki2.js","./B18t-Wuu2.js","./DAAR0bvG2.js","./ZG4RtGoN2.js","./CSKSodPl2.js","./DMTA6AXo2.js","./iaZXMvSz.js","./D8TtvFq5.js"])))=>i.map(i=>d[i]);
2
- import{$ as e,A as t,B as n,D as r,F as i,I as a,J as o,L as s,M as c,N as l,O as u,P as d,Q as f,R as p,V as m,_ as h,_t as g,a as _,bt as v,d as y,dt as b,et as x,ft as S,g as C,gt as w,it as T,j as E,k as D,l as O,n as k,nt as A,ot as j,q as M,r as N,rt as P,s as F,tt as I,u as L,v as ee,y as R,yt as z,z as B}from"./D50Xf4Qj.js";import{n as V}from"./DsW-fl3n.js";import{t as H}from"./kNaey6uv.js";import"./xihTtKlq.js";import{_ as U,it as te,ot as ne}from"./Dz7lEIMt.js";import"./BiCeHePl.js";var re=[`contains`,`reads`,`writes`,`emits`,`transitions`,`asserts`,`uses`,`handles`],W=[`feature`,`surface`,`action`,`state`,`event`,`parameter`,`rule`,`effect`,`invariant`,`scenario`,`persona`,`resource`,`entity`,`valueSet`],G=e=>{switch(e.type){case`set_state`:return`set ${e.path}`;case`show_message`:return e.tone?`${e.tone} message`:`message`;case`emit_event`:return`emit ${e.event}`;case`block_action`:return`block`;case`allow_action`:return`allow`;case`transition_surface`:return`transition`;case`append_to_list`:return`append ${e.path}`;case`remove_from_list`:return`remove ${e.path}`;case`update_list_item`:return`update ${e.path}`;case`advance_time`:return`advance time`}},K=e=>{let t=new Set;for(let n of te(e))ne(n.left)||t.add(String(n.left));return[...t]},ie=(e,t)=>{let n=new Map,r=new Map,i=e=>{n.has(e.id)||n.set(e.id,e)},a=e=>{if(!n.has(e.from)||!n.has(e.to))return;let t=`${e.from}->${e.to}:${e.kind}:${e.label??``}`;r.has(t)||r.set(t,{...e,id:t})},o=(e,t,n)=>{i({id:`feature:${e.id}:state:${t}`,type:`state`,label:t,detail:n,layer:3})},s=(e,t)=>`feature:${e.id}:surface:${t}`,c=(e,t)=>`feature:${e.id}:action:${t}`,l=(e,t)=>`feature:${e.id}:state:${t}`,u=(e,t)=>`feature:${e.id}:valueSet:${t}`,d=(e,t,n,r)=>{let c=`feature:${e.id}:effect:${n.id}`;if(i({id:c,type:`effect`,label:G(n),detail:n.description??n.type,layer:5}),a({from:t,to:c,kind:r}),n.type===`set_state`)o(e,String(n.path)),a({from:c,to:l(e,n.path),kind:`writes`});else if(n.type===`emit_event`){let e=`event:${n.event}`;i({id:e,type:`event`,label:String(n.event),layer:3}),a({from:c,to:e,kind:`emits`})}else n.type===`transition_surface`&&a({from:c,to:s(e,n.target),kind:`transitions`})},f=t?`project:${t.id}`:null;t&&f&&i({id:f,type:`feature`,label:t.name,detail:t.description??`Project`,layer:0});for(let n of e){let e=`feature:${n.id}`;i({id:e,type:`feature`,label:n.name,detail:n.description,layer:+!!t,href:`/features/${n.id}`}),f&&a({from:f,to:e,kind:`contains`});for(let r of n.personas){let o=`feature:${n.id}:persona:${r.id}`;i({id:o,type:`persona`,label:r.name,detail:r.description,layer:t?2:1}),a({from:e,to:o,kind:`contains`})}for(let r of n.resources){let n=`resource:${r.id}`;i({id:n,type:`resource`,label:r.name,detail:r.description??r.kind,layer:t?2:1}),a({from:e,to:n,kind:`contains`})}for(let r of n.entities){let n=`entity:${r.id}`;i({id:n,type:`entity`,label:r.namespace,detail:r.description,layer:t?2:1}),a({from:e,to:n,kind:`contains`}),r.resourceId&&a({from:n,to:`resource:${r.resourceId}`,kind:`uses`})}for(let r of n.valueSets??[]){let o=u(n,r.id);i({id:o,type:`valueSet`,label:r.name,detail:`${r.values.length} values`,layer:t?2:1}),a({from:e,to:o,kind:`contains`})}for(let t of n.events??[]){let n=`event:${t.name}`;i({id:n,type:`event`,label:String(t.name),detail:t.description,layer:3}),a({from:e,to:n,kind:`contains`})}for(let t of n.featureInvariants??[]){let r=`feature:${n.id}:invariant:${t.id}`;i({id:r,type:`invariant`,label:t.name,detail:t.description??t.message,layer:6}),a({from:e,to:r,kind:`contains`});for(let e of K(t.condition))o(n,e),a({from:r,to:l(n,e),kind:`reads`})}for(let t of n.reachabilityGoals??[]){let r=`feature:${n.id}:goal:${t.id}`;i({id:r,type:`goal`,label:t.name,detail:t.description??t.message??t.kind,layer:6}),a({from:e,to:r,kind:`contains`});for(let e of K(t.condition))o(n,e),a({from:r,to:l(n,e),kind:`reads`})}for(let r of n.surfaces){let f=s(n,r.id);i({id:f,type:`surface`,label:r.name,detail:r.description??r.type,layer:t?2:1,href:`/features/${n.id}?surface=${r.id}`}),a({from:e,to:f,kind:`contains`}),r.parentSurfaceId&&a({from:s(n,r.parentSurfaceId),to:f,kind:`contains`});for(let e of r.stateDefinitions)o(n,String(e.path),e.description??e.type),a({from:f,to:l(n,e.path),kind:`contains`}),e.valueSetId&&a({from:l(n,e.path),to:u(n,e.valueSetId),kind:`uses`});for(let e of r.transitions){let t=`feature:${n.id}:transition:${e.id}`;i({id:t,type:`effect`,label:e.label??`transition`,detail:e.description,layer:6}),a({from:f,to:t,kind:`contains`}),a({from:t,to:s(n,e.target),kind:`transitions`})}for(let e of r.rules){let t=`feature:${n.id}:rule:${e.id}`;i({id:t,type:`rule`,label:e.category,detail:e.description,layer:6}),a({from:f,to:t,kind:`contains`});for(let r of K(e.condition))o(n,r),a({from:t,to:l(n,r),kind:`reads`});d(n,t,e.effect,`writes`)}for(let e of r.invariants){let t=`feature:${n.id}:invariant:${e.id}`;i({id:t,type:`invariant`,label:e.name,detail:e.description??e.message,layer:6}),a({from:f,to:t,kind:`contains`});for(let r of K(e.condition))o(n,r),a({from:t,to:l(n,r),kind:`reads`})}for(let e of r.actions){let p=c(n,e.id);if(i({id:p,type:`action`,label:e.name,detail:e.intent,layer:t?3:2,href:`/features/${n.id}?surface=${r.id}&panel=actions`}),a({from:f,to:p,kind:`contains`}),e.triggeredByEvent){let t=`event:${e.triggeredByEvent}`;i({id:t,type:`event`,label:String(e.triggeredByEvent),layer:3}),a({from:t,to:p,kind:`handles`})}for(let t of e.requiredStates)o(n,String(t)),a({from:l(n,t),to:p,kind:`reads`});for(let r of e.parameters){let e=`feature:${n.id}:parameter:${r.id}`;i({id:e,type:`parameter`,label:r.name,detail:r.description??r.type,layer:t?5:4}),a({from:p,to:e,kind:`contains`}),r.bindToStatePath&&(o(n,String(r.bindToStatePath)),a({from:e,to:l(n,r.bindToStatePath),kind:`writes`})),r.resourceId&&a({from:e,to:`resource:${r.resourceId}`,kind:`uses`}),r.valueSetId&&a({from:e,to:u(n,r.valueSetId),kind:`uses`})}for(let t of e.rules){let e=`feature:${n.id}:rule:${t.id}`;i({id:e,type:`rule`,label:t.category,detail:t.description,layer:6}),a({from:p,to:e,kind:`contains`});for(let r of K(t.condition))o(n,r),a({from:e,to:l(n,r),kind:`reads`});d(n,e,t.effect,`writes`)}for(let t of e.invariants){let e=`feature:${n.id}:invariant:${t.id}`;i({id:e,type:`invariant`,label:t.name,detail:t.description??t.message,layer:6}),a({from:p,to:e,kind:`contains`});for(let r of K(t.condition))o(n,r),a({from:e,to:l(n,r),kind:`reads`})}for(let t of e.effects)d(n,p,t,`contains`);for(let t of e.onBlockedEffects??[])d(n,p,t,`contains`);for(let t of e.emittedEvents){let e=`event:${t}`;i({id:e,type:`event`,label:String(t),layer:3}),a({from:p,to:e,kind:`emits`})}for(let t of e.transitions){let e=`feature:${n.id}:transition:${t.id}`;i({id:e,type:`effect`,label:t.label??`transition`,detail:t.description,layer:6}),a({from:p,to:e,kind:`contains`}),a({from:e,to:s(n,t.target),kind:`transitions`})}for(let t of e.scenarios??[]){let e=`feature:${n.id}:scenario:${t.id}`;i({id:e,type:`scenario`,label:t.name,detail:t.description??t.expectedStatus,layer:6}),a({from:p,to:e,kind:`asserts`}),t.personaId&&a({from:e,to:`feature:${n.id}:persona:${t.personaId}`,kind:`uses`});for(let r of t.stateOverrides)o(n,String(r.path)),a({from:e,to:l(n,r.path),kind:`writes`});for(let r of t.expectedAssertions??[])o(n,String(r.path)),a({from:e,to:l(n,r.path),kind:`asserts`});t.expectedTransition&&a({from:e,to:s(n,t.expectedTransition),kind:`transitions`})}}}}return{nodes:[...n.values()],edges:[...r.values()]}},ae=e=>{let t=new Map;for(let n of e.nodes)t.set(n.id,0);for(let n of e.edges)t.set(n.from,(t.get(n.from)??0)+1),t.set(n.to,(t.get(n.to)??0)+1);let n=e.nodes.map(e=>({...e,degree:t.get(e.id)??0}));return{nodes:n,edges:e.edges,nodeById:new Map(n.map(e=>[e.id,e]))}},oe=(e,t)=>{let n=t.search.trim().toLowerCase(),r=new Set;if(n){for(let t of e.nodes)`${t.label} ${t.type} ${t.detail??``}`.toLowerCase().includes(n)&&r.add(t.id);for(let t of e.edges)(r.has(t.from)||r.has(t.to))&&(r.add(t.from),r.add(t.to))}let i=e=>!n||r.has(e),a=e.edges.filter(e=>t.enabledKinds[e.kind]&&i(e.from)&&i(e.to)),o=new Set;for(let e of a)o.add(e.from),o.add(e.to);let s=e.nodes.filter(e=>i(e.id)&&(!n||o.has(e.id)||r.has(e.id)));return{nodes:s,edges:a,nodeById:new Map(s.map(e=>[e.id,e]))}},q={feature:{label:`Feature`,fill:`#0f172a`,stroke:`#020617`},surface:{label:`Surface`,fill:`#0e7490`,stroke:`#155e75`},action:{label:`Action`,fill:`#2563eb`,stroke:`#1d4ed8`},state:{label:`State`,fill:`#7c3aed`,stroke:`#6d28d9`},event:{label:`Event`,fill:`#db2777`,stroke:`#be185d`},parameter:{label:`Parameter`,fill:`#0891b2`,stroke:`#0e7490`},rule:{label:`Rule`,fill:`#ea580c`,stroke:`#c2410c`},effect:{label:`Effect`,fill:`#16a34a`,stroke:`#15803d`},invariant:{label:`Invariant`,fill:`#ca8a04`,stroke:`#a16207`},goal:{label:`Liveness goal`,fill:`#65a30d`,stroke:`#4d7c0f`},scenario:{label:`Scenario`,fill:`#475569`,stroke:`#334155`},persona:{label:`Persona`,fill:`#0f766e`,stroke:`#115e59`},resource:{label:`Resource`,fill:`#4f46e5`,stroke:`#4338ca`},entity:{label:`Entity`,fill:`#9333ea`,stroke:`#7e22ce`},valueSet:{label:`Value set`,fill:`#64748b`,stroke:`#475569`}},se={contains:{label:`Contains`,color:`#94a3b8`},reads:{label:`Reads`,color:`#7c3aed`},writes:{label:`Writes`,color:`#16a34a`},emits:{label:`Emits`,color:`#db2777`},transitions:{label:`Transitions`,color:`#0891b2`},asserts:{label:`Asserts`,color:`#ca8a04`},uses:{label:`Uses`,color:`#475569`},handles:{label:`Handles`,color:`#2563eb`}},ce=new Set([`writes`,`emits`,`transitions`]),le=.14,J=.035,ue=e=>Math.max(13,Math.min(38,13+Math.sqrt(e)*6)),de=(e,t)=>{let n=e.replace(`#`,``);return n.length===6?`rgba(${Number.parseInt(n.slice(0,2),16)},${Number.parseInt(n.slice(2,4),16)},${Number.parseInt(n.slice(4,6),16)},${t})`:e},Y=e=>{let t=e.replace(`#`,``);if(t.length!==6)return`#000000`;let n=e=>{let t=Number.parseInt(e,16)/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4},r=n(t.slice(0,2)),i=n(t.slice(2,4)),a=n(t.slice(4,6)),o=.2126*r+.7152*i+.0722*a;return(o+.05)/.05>=1.05/(o+.05)?`#000000`:`#ffffff`},fe=e=>e>700?220:e>300?280:180,X=e=>e>700?2600:e>300?3200:2400,pe=class{runtime;container;callbacks;network=null;nodes=null;edges=null;signature=``;currentInput=null;highlightFrame=null;highlighted={nodes:new Set,edges:new Set};selectionEventsSuppressed=!1;stabilizeTimeout=null;settle=()=>this.freezePhysics();constructor(e,t,n={}){this.runtime=e,this.container=t,this.callbacks=n}render(e){this.currentInput=e;let t=this.signatureFor(e);if(!this.network){this.createNetwork(e,t);return}if(t===this.signature){this.select(e.selectedId,e.selectedEdgeId,!1);return}this.signature=t,this.clearHighlight(),this.nodes?.clear(),this.edges?.clear(),this.nodes?.add(this.toNodes(e)),this.edges?.add(this.toEdges(e)),this.startStabilization(e.graph.nodes.length),this.select(e.selectedId,e.selectedEdgeId,!1)}relayout(e){this.network&&(this.clearHighlight(),this.startStabilization(e))}fit(){this.network?.fit({animation:{duration:220,easingFunction:`easeInOutQuad`}})}zoomBy(e){if(!this.network)return;let t=Math.max(.04,Math.min(5,this.network.getScale()*e));this.network.moveTo({scale:t,animation:{duration:120,easingFunction:`easeInOutQuad`}})}focus(e){this.network?.focus(e,{scale:1.08,animation:{duration:260,easingFunction:`easeInOutQuad`}})}select(e,t=null,n=!0){if(this.network){this.selectionEventsSuppressed=!0;try{this.network.setSelection({nodes:e?[e]:[],edges:!e&&t?[t]:[]},{highlightEdges:!1})}finally{this.selectionEventsSuppressed=!1}if(e){this.highlightNodeNeighborhood(e,n);return}if(t){this.highlightEdgeNeighborhood(t,n);return}this.clearHighlight()}}destroy(){this.clearPendingWork(),this.network?.destroy(),this.network=null,this.nodes=null,this.edges=null}createNetwork(e,t){let n=new this.runtime.DataSet(this.toNodes(e)),r=new this.runtime.DataSet(this.toEdges(e));this.nodes=n,this.edges=r;let i=new this.runtime.Network(this.container,{nodes:n,edges:r},this.options(e.graph.nodes.length));this.network=i,this.signature=t,i.on(`stabilizationProgress`,e=>{if(!e?.total)return;let t=Math.min(100,Math.round(e.iterations/e.total*100));this.callbacks.onStabilizationProgress?.(t),t>=100&&setTimeout(()=>this.freezePhysics(),0)}),i.on(`selectNode`,e=>{if(this.selectionEventsSuppressed)return;let t=e?.nodes?.find(e=>typeof e==`string`)??null;this.callbacks.onSelectedNodeChange?.(t),this.callbacks.onSelectedEdgeChange?.(null),t&&this.highlightNodeNeighborhood(t,!0)}),i.on(`selectEdge`,e=>{if(this.selectionEventsSuppressed)return;let t=e?.edges?.find(e=>typeof e==`string`)??null;this.callbacks.onSelectedNodeChange?.(null),this.callbacks.onSelectedEdgeChange?.(t),t&&this.highlightEdgeNeighborhood(t,!0)}),i.on(`doubleClick`,e=>{let t=e?.nodes?.find(e=>typeof e==`string`)??null;t&&this.callbacks.onNodeActivate?.(t)}),i.on(`deselectNode`,()=>{this.selectionEventsSuppressed||this.network?.getSelection().edges.length||(this.callbacks.onSelectedNodeChange?.(null),this.clearHighlight())}),i.on(`deselectEdge`,()=>{this.selectionEventsSuppressed||this.network?.getSelection().nodes.length||(this.callbacks.onSelectedEdgeChange?.(null),this.clearHighlight())}),this.startStabilization(e.graph.nodes.length)}startStabilization(e){this.network&&(this.clearStabilizationTimeout(),this.callbacks.onSettledChange?.(!1),this.callbacks.onStabilizationProgress?.(0),this.network.off(`stabilized`,this.settle),this.network.once(`stabilized`,this.settle),this.network.setOptions(this.options(e)),this.network.stabilize(fe(e)),this.stabilizeTimeout=setTimeout(()=>this.freezePhysics(),X(e)))}freezePhysics(){this.network&&(this.clearStabilizationTimeout(),this.network.off(`stabilized`,this.settle),this.network.storePositions(),this.network.stopSimulation(),this.network.setOptions({physics:!1}),this.callbacks.onStabilizationProgress?.(100),this.callbacks.onSettledChange?.(!0))}options(e){return{autoResize:!0,interaction:{hover:!1,tooltipDelay:1e6,dragNodes:!0,dragView:!0,zoomView:!0,multiselect:!1,navigationButtons:!1,keyboard:!1,hideEdgesOnDrag:!0,hideEdgesOnZoom:!0},layout:{improvedLayout:e<350},physics:{enabled:!0,solver:`forceAtlas2Based`,stabilization:{enabled:!0,iterations:fe(e),updateInterval:40,fit:!0},forceAtlas2Based:{gravitationalConstant:e>500?-34:-48,centralGravity:.014,springLength:e>500?95:120,springConstant:.055,damping:.74,avoidOverlap:e>500?.25:.45},adaptiveTimestep:!0,minVelocity:2.2,maxVelocity:28},nodes:{chosen:!0,scaling:{min:13,max:42},shapeProperties:{borderRadius:4}},edges:{chosen:!1,selectionWidth:1}}}toNodes(e){return e.graph.nodes.map(t=>this.nodeFor(t,e,t.id===e.selectedId?`selected`:`base`))}nodeFor(e,t,n){let r=t.labelsVisible||t.graph.nodes.length<90,i=t.nodeTheme[e.type],a=n===`dimmed`,o=n===`selected`,s=n===`highlighted`||o,c=!a&&(r||e.degree>5||e.type===`feature`||s),l=e.type!==`feature`&&c;return{id:e.id,label:c?e.label:``,title:`${i.label}: ${e.label}${e.detail?`\n${e.detail}`:``}`,value:Math.max(1,e.degree),size:ue(e.degree),shape:e.type===`feature`||!c?`dot`:`box`,color:{background:a?de(i.fill,le):i.fill,border:a?de(i.stroke,.2):o?`#020617`:i.stroke,highlight:{background:i.fill,border:`#020617`},hover:{background:i.fill,border:i.stroke}},borderWidth:o?5:s?3.5:1.5,font:{color:l?Y(i.fill):`#0f172a`,size:o?16:s?13:12,face:`Inter, ui-sans-serif, system-ui, sans-serif`,strokeWidth:l||a?0:4,strokeColor:`rgba(255,255,255,0.92)`},margin:l?{top:6,right:10,bottom:6,left:10}:void 0,widthConstraint:l?{maximum:220}:void 0,shadow:!a&&(s||e.type===`feature`||e.degree>8)}}toEdges(e){return e.graph.edges.map(t=>this.edgeFor(t,e.edgeTheme,`base`))}edgeFor(e,t,n){let r=ce.has(e.kind),i=n===`selected`?.96:n===`highlighted`?.82:n===`dimmed`?J:r?.42:.18;return{id:e.id,from:e.from,to:e.to,title:e.label??t[e.kind].label,color:{color:t[e.kind].color,opacity:i},width:n===`selected`?3:n===`highlighted`?2.2:r?1.5:.7,dashes:e.kind===`contains`,arrows:{to:{enabled:e.kind!==`contains`,scaleFactor:.45}},smooth:!1}}highlightNodeNeighborhood(e,t){!this.network||!this.nodes||!this.edges||(this.highlightFrame!==null&&cancelAnimationFrame(this.highlightFrame),this.highlightFrame=requestAnimationFrame(()=>{let n=this.currentInput;if(!this.network||!this.nodes||!this.edges||!n)return;let r=new Set([e,...this.network.getConnectedNodes(e).filter(e=>typeof e==`string`||typeof e==`number`)]),i=new Set(this.network.getConnectedEdges(e));this.applyFocusMask({selectedNodeId:e,highlightedNodes:r,highlightedEdges:i}),t&&this.fitNeighborhood(r),this.highlighted={nodes:r,edges:i},this.highlightFrame=null}))}highlightEdgeNeighborhood(e,t){!this.network||!this.nodes||!this.edges||(this.highlightFrame!==null&&cancelAnimationFrame(this.highlightFrame),this.highlightFrame=requestAnimationFrame(()=>{let n=this.currentInput;if(!this.network||!this.nodes||!this.edges||!n)return;let r=n.graph.edges.find(t=>t.id===e);if(!r)return;let i=new Set([r.from,r.to]),a=new Set([e]);for(let e of[r.from,r.to]){for(let t of this.network.getConnectedNodes(e))(typeof t==`string`||typeof t==`number`)&&i.add(t);for(let t of this.network.getConnectedEdges(e))a.add(t)}this.applyFocusMask({selectedEdgeId:e,highlightedNodes:i,highlightedEdges:a}),t&&this.fitNeighborhood(i),this.highlighted={nodes:i,edges:a},this.highlightFrame=null}))}applyFocusMask({selectedNodeId:e,selectedEdgeId:t,highlightedNodes:n,highlightedEdges:r}){if(!this.nodes||!this.edges)return;let i=this.currentInput;i&&(this.nodes.update(i.graph.nodes.map(t=>{let r=t.id===e?`selected`:n.has(t.id)?`highlighted`:`dimmed`;return this.nodeFor(t,i,r)})),this.edges.update(i.graph.edges.map(e=>{let n=e.id===t?`selected`:r.has(e.id)?`highlighted`:`dimmed`;return this.edgeFor(e,i.edgeTheme,n)})))}fitNeighborhood(e){!this.network||e.size===0||this.network.fit({nodes:[...e],minZoomLevel:.24,maxZoomLevel:1.18,animation:{duration:320,easingFunction:`easeInOutQuad`}})}clearHighlight(){this.clearPendingHighlight(),this.restoreHighlightBase(),this.highlighted={nodes:new Set,edges:new Set}}restoreHighlightBase(){if(!this.nodes||!this.edges)return;let e=this.currentInput;e&&(this.nodes.update(e.graph.nodes.map(t=>this.nodeFor(t,e,t.id===e.selectedId?`selected`:`base`))),this.edges.update(e.graph.edges.map(t=>this.edgeFor(t,e.edgeTheme,`base`))))}clearPendingWork(){this.clearPendingHighlight(),this.clearStabilizationTimeout()}clearPendingHighlight(){this.highlightFrame!==null&&(cancelAnimationFrame(this.highlightFrame),this.highlightFrame=null)}clearStabilizationTimeout(){this.stabilizeTimeout&&=(clearTimeout(this.stabilizeTimeout),null)}signatureFor(e){return`${e.graph.nodes.map(e=>e.id).join(`|`)}::${e.graph.edges.map(e=>e.id).join(`|`)}::labels=${e.labelsVisible}`}},me=a(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 shrink-0 text-brand-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>`),he=i(`<button type="button" role="menuitemcheckbox" class="flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-left text-sm transition hover:bg-slate-50"><span class="h-2.5 w-2.5 shrink-0 rounded-full"></span> <span> </span> <!></button>`),ge=a(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 shrink-0 text-brand-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>`),_e=i(`<div role="menu" class="absolute right-0 top-11 z-20 w-64 overflow-hidden rounded-xl border border-slate-200 bg-white p-2 shadow-xl shadow-slate-950/10"><div class="flex items-center justify-between px-2 pb-1 pt-1"><span class="text-[10px] font-semibold uppercase tracking-wide text-slate-400">Connections</span> <div class="flex gap-1"><button type="button" class="rounded px-1.5 py-0.5 text-[11px] font-medium text-brand-700 hover:bg-brand-50">All</button> <button type="button" class="rounded px-1.5 py-0.5 text-[11px] font-medium text-slate-500 hover:bg-slate-100">None</button></div></div> <!> <div class="my-1 h-px bg-slate-100"></div> <button type="button" role="menuitemcheckbox" class="flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-left text-sm transition hover:bg-slate-50"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 shrink-0 text-slate-400" aria-hidden="true"><path d="M20.59 13.41 13.42 20.6a2 2 0 0 1-2.83 0L3 13V4h9z"></path><path d="M7.5 7.5h.01"></path></svg> <span>Labels</span> <!></button> <div class="my-1 h-px bg-slate-100"></div> <div class="flex gap-1.5 px-1 pb-1 pt-0.5"><button type="button" class="flex-1 rounded-md border border-slate-200 px-2 py-1.5 text-xs font-medium text-slate-700 transition hover:bg-slate-50">Re-layout</button> <button type="button" class="flex-1 rounded-md border border-slate-200 px-2 py-1.5 text-xs font-medium text-slate-700 transition hover:bg-slate-50">Reset</button></div></div>`),ve=i(`<div class="pointer-events-none absolute left-3 top-3 z-10 w-56 rounded-md border border-slate-200 bg-white/90 p-3 text-xs text-slate-600 shadow-sm backdrop-blur"><div class="flex justify-between font-medium text-slate-800"><span>Stabilizing layout</span> <span> </span></div> <div class="mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200"><div class="h-full rounded-full bg-brand-500 transition-all"></div></div></div>`),ye=i(`<span class="inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-1 text-xs text-slate-700"><span class="h-2 w-2 rounded-full"></span> </span>`),be=i(`<button type="button" class="w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-left hover:border-brand-300 hover:bg-brand-50"><span class="block truncate text-sm font-medium text-slate-900"> </span> <span class="text-xs text-slate-500"> </span></button>`),xe=i(`<p class="mt-2 text-sm leading-6 text-slate-600"> </p>`),Se=i(`<a class="mt-3 inline-flex text-sm font-medium text-brand-700 hover:underline">Open in editor</a>`),Ce=i(`<p class="text-xs font-semibold uppercase tracking-wide text-slate-500"> </p> <h3 class="mt-1 text-base font-semibold text-slate-950"> </h3> <!> <p class="mt-2 text-xs text-slate-500"> </p> <!>`,1),we=i(`<p class="text-xs font-semibold uppercase tracking-wide text-slate-500"> </p> <h3 class="mt-1 text-base font-semibold text-slate-950"> </h3> <p class="mt-2 text-sm leading-6 text-slate-600"> </p> <p class="mt-2 text-xs text-slate-500">Click another node or edge to move the highlighted neighborhood.</p>`,1),Te=i(`<h3 class="text-sm font-semibold text-slate-950">Explore the Map</h3> <p class="mt-2 text-sm leading-6 text-slate-600">Click a node or edge to highlight its linked behavior. Double-click a node to jump
2
+ import{$ as e,A as t,B as n,D as r,F as i,I as a,J as o,L as s,M as c,N as l,O as u,P as d,Q as f,R as p,V as m,_ as h,_t as g,a as _,bt as v,d as y,dt as b,et as x,ft as S,g as C,gt as w,it as T,j as E,k as D,l as O,n as k,nt as A,ot as j,q as M,r as N,rt as P,s as F,tt as I,u as L,v as ee,y as R,yt as z,z as B}from"./D50Xf4Qj.js";import{n as V}from"./BdU1Yt_e.js";import{t as H}from"./kNaey6uv.js";import"./xihTtKlq.js";import{_ as U,it as te,ot as ne}from"./DPrNvhwL.js";import"./BLlLbCwR.js";var re=[`contains`,`reads`,`writes`,`emits`,`transitions`,`asserts`,`uses`,`handles`],W=[`feature`,`surface`,`action`,`state`,`event`,`parameter`,`rule`,`effect`,`invariant`,`scenario`,`persona`,`resource`,`entity`,`valueSet`],G=e=>{switch(e.type){case`set_state`:return`set ${e.path}`;case`show_message`:return e.tone?`${e.tone} message`:`message`;case`emit_event`:return`emit ${e.event}`;case`block_action`:return`block`;case`allow_action`:return`allow`;case`transition_surface`:return`transition`;case`append_to_list`:return`append ${e.path}`;case`remove_from_list`:return`remove ${e.path}`;case`update_list_item`:return`update ${e.path}`;case`advance_time`:return`advance time`}},K=e=>{let t=new Set;for(let n of te(e))ne(n.left)||t.add(String(n.left));return[...t]},ie=(e,t)=>{let n=new Map,r=new Map,i=e=>{n.has(e.id)||n.set(e.id,e)},a=e=>{if(!n.has(e.from)||!n.has(e.to))return;let t=`${e.from}->${e.to}:${e.kind}:${e.label??``}`;r.has(t)||r.set(t,{...e,id:t})},o=(e,t,n)=>{i({id:`feature:${e.id}:state:${t}`,type:`state`,label:t,detail:n,layer:3})},s=(e,t)=>`feature:${e.id}:surface:${t}`,c=(e,t)=>`feature:${e.id}:action:${t}`,l=(e,t)=>`feature:${e.id}:state:${t}`,u=(e,t)=>`feature:${e.id}:valueSet:${t}`,d=(e,t,n,r)=>{let c=`feature:${e.id}:effect:${n.id}`;if(i({id:c,type:`effect`,label:G(n),detail:n.description??n.type,layer:5}),a({from:t,to:c,kind:r}),n.type===`set_state`)o(e,String(n.path)),a({from:c,to:l(e,n.path),kind:`writes`});else if(n.type===`emit_event`){let e=`event:${n.event}`;i({id:e,type:`event`,label:String(n.event),layer:3}),a({from:c,to:e,kind:`emits`})}else n.type===`transition_surface`&&a({from:c,to:s(e,n.target),kind:`transitions`})},f=t?`project:${t.id}`:null;t&&f&&i({id:f,type:`feature`,label:t.name,detail:t.description??`Project`,layer:0});for(let n of e){let e=`feature:${n.id}`;i({id:e,type:`feature`,label:n.name,detail:n.description,layer:+!!t,href:`/features/${n.id}`}),f&&a({from:f,to:e,kind:`contains`});for(let r of n.personas){let o=`feature:${n.id}:persona:${r.id}`;i({id:o,type:`persona`,label:r.name,detail:r.description,layer:t?2:1}),a({from:e,to:o,kind:`contains`})}for(let r of n.resources){let n=`resource:${r.id}`;i({id:n,type:`resource`,label:r.name,detail:r.description??r.kind,layer:t?2:1}),a({from:e,to:n,kind:`contains`})}for(let r of n.entities){let n=`entity:${r.id}`;i({id:n,type:`entity`,label:r.namespace,detail:r.description,layer:t?2:1}),a({from:e,to:n,kind:`contains`}),r.resourceId&&a({from:n,to:`resource:${r.resourceId}`,kind:`uses`})}for(let r of n.valueSets??[]){let o=u(n,r.id);i({id:o,type:`valueSet`,label:r.name,detail:`${r.values.length} values`,layer:t?2:1}),a({from:e,to:o,kind:`contains`})}for(let t of n.events??[]){let n=`event:${t.name}`;i({id:n,type:`event`,label:String(t.name),detail:t.description,layer:3}),a({from:e,to:n,kind:`contains`})}for(let t of n.featureInvariants??[]){let r=`feature:${n.id}:invariant:${t.id}`;i({id:r,type:`invariant`,label:t.name,detail:t.description??t.message,layer:6}),a({from:e,to:r,kind:`contains`});for(let e of K(t.condition))o(n,e),a({from:r,to:l(n,e),kind:`reads`})}for(let t of n.reachabilityGoals??[]){let r=`feature:${n.id}:goal:${t.id}`;i({id:r,type:`goal`,label:t.name,detail:t.description??t.message??t.kind,layer:6}),a({from:e,to:r,kind:`contains`});for(let e of K(t.condition))o(n,e),a({from:r,to:l(n,e),kind:`reads`})}for(let r of n.surfaces){let f=s(n,r.id);i({id:f,type:`surface`,label:r.name,detail:r.description??r.type,layer:t?2:1,href:`/features/${n.id}?surface=${r.id}`}),a({from:e,to:f,kind:`contains`}),r.parentSurfaceId&&a({from:s(n,r.parentSurfaceId),to:f,kind:`contains`});for(let e of r.stateDefinitions)o(n,String(e.path),e.description??e.type),a({from:f,to:l(n,e.path),kind:`contains`}),e.valueSetId&&a({from:l(n,e.path),to:u(n,e.valueSetId),kind:`uses`});for(let e of r.transitions){let t=`feature:${n.id}:transition:${e.id}`;i({id:t,type:`effect`,label:e.label??`transition`,detail:e.description,layer:6}),a({from:f,to:t,kind:`contains`}),a({from:t,to:s(n,e.target),kind:`transitions`})}for(let e of r.rules){let t=`feature:${n.id}:rule:${e.id}`;i({id:t,type:`rule`,label:e.category,detail:e.description,layer:6}),a({from:f,to:t,kind:`contains`});for(let r of K(e.condition))o(n,r),a({from:t,to:l(n,r),kind:`reads`});d(n,t,e.effect,`writes`)}for(let e of r.invariants){let t=`feature:${n.id}:invariant:${e.id}`;i({id:t,type:`invariant`,label:e.name,detail:e.description??e.message,layer:6}),a({from:f,to:t,kind:`contains`});for(let r of K(e.condition))o(n,r),a({from:t,to:l(n,r),kind:`reads`})}for(let e of r.actions){let p=c(n,e.id);if(i({id:p,type:`action`,label:e.name,detail:e.intent,layer:t?3:2,href:`/features/${n.id}?surface=${r.id}&panel=actions`}),a({from:f,to:p,kind:`contains`}),e.triggeredByEvent){let t=`event:${e.triggeredByEvent}`;i({id:t,type:`event`,label:String(e.triggeredByEvent),layer:3}),a({from:t,to:p,kind:`handles`})}for(let t of e.requiredStates)o(n,String(t)),a({from:l(n,t),to:p,kind:`reads`});for(let r of e.parameters){let e=`feature:${n.id}:parameter:${r.id}`;i({id:e,type:`parameter`,label:r.name,detail:r.description??r.type,layer:t?5:4}),a({from:p,to:e,kind:`contains`}),r.bindToStatePath&&(o(n,String(r.bindToStatePath)),a({from:e,to:l(n,r.bindToStatePath),kind:`writes`})),r.resourceId&&a({from:e,to:`resource:${r.resourceId}`,kind:`uses`}),r.valueSetId&&a({from:e,to:u(n,r.valueSetId),kind:`uses`})}for(let t of e.rules){let e=`feature:${n.id}:rule:${t.id}`;i({id:e,type:`rule`,label:t.category,detail:t.description,layer:6}),a({from:p,to:e,kind:`contains`});for(let r of K(t.condition))o(n,r),a({from:e,to:l(n,r),kind:`reads`});d(n,e,t.effect,`writes`)}for(let t of e.invariants){let e=`feature:${n.id}:invariant:${t.id}`;i({id:e,type:`invariant`,label:t.name,detail:t.description??t.message,layer:6}),a({from:p,to:e,kind:`contains`});for(let r of K(t.condition))o(n,r),a({from:e,to:l(n,r),kind:`reads`})}for(let t of e.effects)d(n,p,t,`contains`);for(let t of e.onBlockedEffects??[])d(n,p,t,`contains`);for(let t of e.emittedEvents){let e=`event:${t}`;i({id:e,type:`event`,label:String(t),layer:3}),a({from:p,to:e,kind:`emits`})}for(let t of e.transitions){let e=`feature:${n.id}:transition:${t.id}`;i({id:e,type:`effect`,label:t.label??`transition`,detail:t.description,layer:6}),a({from:p,to:e,kind:`contains`}),a({from:e,to:s(n,t.target),kind:`transitions`})}for(let t of e.scenarios??[]){let e=`feature:${n.id}:scenario:${t.id}`;i({id:e,type:`scenario`,label:t.name,detail:t.description??t.expectedStatus,layer:6}),a({from:p,to:e,kind:`asserts`}),t.personaId&&a({from:e,to:`feature:${n.id}:persona:${t.personaId}`,kind:`uses`});for(let r of t.stateOverrides)o(n,String(r.path)),a({from:e,to:l(n,r.path),kind:`writes`});for(let r of t.expectedAssertions??[])o(n,String(r.path)),a({from:e,to:l(n,r.path),kind:`asserts`});t.expectedTransition&&a({from:e,to:s(n,t.expectedTransition),kind:`transitions`})}}}}return{nodes:[...n.values()],edges:[...r.values()]}},ae=e=>{let t=new Map;for(let n of e.nodes)t.set(n.id,0);for(let n of e.edges)t.set(n.from,(t.get(n.from)??0)+1),t.set(n.to,(t.get(n.to)??0)+1);let n=e.nodes.map(e=>({...e,degree:t.get(e.id)??0}));return{nodes:n,edges:e.edges,nodeById:new Map(n.map(e=>[e.id,e]))}},oe=(e,t)=>{let n=t.search.trim().toLowerCase(),r=new Set;if(n){for(let t of e.nodes)`${t.label} ${t.type} ${t.detail??``}`.toLowerCase().includes(n)&&r.add(t.id);for(let t of e.edges)(r.has(t.from)||r.has(t.to))&&(r.add(t.from),r.add(t.to))}let i=e=>!n||r.has(e),a=e.edges.filter(e=>t.enabledKinds[e.kind]&&i(e.from)&&i(e.to)),o=new Set;for(let e of a)o.add(e.from),o.add(e.to);let s=e.nodes.filter(e=>i(e.id)&&(!n||o.has(e.id)||r.has(e.id)));return{nodes:s,edges:a,nodeById:new Map(s.map(e=>[e.id,e]))}},q={feature:{label:`Feature`,fill:`#0f172a`,stroke:`#020617`},surface:{label:`Surface`,fill:`#0e7490`,stroke:`#155e75`},action:{label:`Action`,fill:`#2563eb`,stroke:`#1d4ed8`},state:{label:`State`,fill:`#7c3aed`,stroke:`#6d28d9`},event:{label:`Event`,fill:`#db2777`,stroke:`#be185d`},parameter:{label:`Parameter`,fill:`#0891b2`,stroke:`#0e7490`},rule:{label:`Rule`,fill:`#ea580c`,stroke:`#c2410c`},effect:{label:`Effect`,fill:`#16a34a`,stroke:`#15803d`},invariant:{label:`Invariant`,fill:`#ca8a04`,stroke:`#a16207`},goal:{label:`Liveness goal`,fill:`#65a30d`,stroke:`#4d7c0f`},scenario:{label:`Scenario`,fill:`#475569`,stroke:`#334155`},persona:{label:`Persona`,fill:`#0f766e`,stroke:`#115e59`},resource:{label:`Resource`,fill:`#4f46e5`,stroke:`#4338ca`},entity:{label:`Entity`,fill:`#9333ea`,stroke:`#7e22ce`},valueSet:{label:`Value set`,fill:`#64748b`,stroke:`#475569`}},se={contains:{label:`Contains`,color:`#94a3b8`},reads:{label:`Reads`,color:`#7c3aed`},writes:{label:`Writes`,color:`#16a34a`},emits:{label:`Emits`,color:`#db2777`},transitions:{label:`Transitions`,color:`#0891b2`},asserts:{label:`Asserts`,color:`#ca8a04`},uses:{label:`Uses`,color:`#475569`},handles:{label:`Handles`,color:`#2563eb`}},ce=new Set([`writes`,`emits`,`transitions`]),le=.14,J=.035,ue=e=>Math.max(13,Math.min(38,13+Math.sqrt(e)*6)),de=(e,t)=>{let n=e.replace(`#`,``);return n.length===6?`rgba(${Number.parseInt(n.slice(0,2),16)},${Number.parseInt(n.slice(2,4),16)},${Number.parseInt(n.slice(4,6),16)},${t})`:e},Y=e=>{let t=e.replace(`#`,``);if(t.length!==6)return`#000000`;let n=e=>{let t=Number.parseInt(e,16)/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4},r=n(t.slice(0,2)),i=n(t.slice(2,4)),a=n(t.slice(4,6)),o=.2126*r+.7152*i+.0722*a;return(o+.05)/.05>=1.05/(o+.05)?`#000000`:`#ffffff`},fe=e=>e>700?220:e>300?280:180,X=e=>e>700?2600:e>300?3200:2400,pe=class{runtime;container;callbacks;network=null;nodes=null;edges=null;signature=``;currentInput=null;highlightFrame=null;highlighted={nodes:new Set,edges:new Set};selectionEventsSuppressed=!1;stabilizeTimeout=null;settle=()=>this.freezePhysics();constructor(e,t,n={}){this.runtime=e,this.container=t,this.callbacks=n}render(e){this.currentInput=e;let t=this.signatureFor(e);if(!this.network){this.createNetwork(e,t);return}if(t===this.signature){this.select(e.selectedId,e.selectedEdgeId,!1);return}this.signature=t,this.clearHighlight(),this.nodes?.clear(),this.edges?.clear(),this.nodes?.add(this.toNodes(e)),this.edges?.add(this.toEdges(e)),this.startStabilization(e.graph.nodes.length),this.select(e.selectedId,e.selectedEdgeId,!1)}relayout(e){this.network&&(this.clearHighlight(),this.startStabilization(e))}fit(){this.network?.fit({animation:{duration:220,easingFunction:`easeInOutQuad`}})}zoomBy(e){if(!this.network)return;let t=Math.max(.04,Math.min(5,this.network.getScale()*e));this.network.moveTo({scale:t,animation:{duration:120,easingFunction:`easeInOutQuad`}})}focus(e){this.network?.focus(e,{scale:1.08,animation:{duration:260,easingFunction:`easeInOutQuad`}})}select(e,t=null,n=!0){if(this.network){this.selectionEventsSuppressed=!0;try{this.network.setSelection({nodes:e?[e]:[],edges:!e&&t?[t]:[]},{highlightEdges:!1})}finally{this.selectionEventsSuppressed=!1}if(e){this.highlightNodeNeighborhood(e,n);return}if(t){this.highlightEdgeNeighborhood(t,n);return}this.clearHighlight()}}destroy(){this.clearPendingWork(),this.network?.destroy(),this.network=null,this.nodes=null,this.edges=null}createNetwork(e,t){let n=new this.runtime.DataSet(this.toNodes(e)),r=new this.runtime.DataSet(this.toEdges(e));this.nodes=n,this.edges=r;let i=new this.runtime.Network(this.container,{nodes:n,edges:r},this.options(e.graph.nodes.length));this.network=i,this.signature=t,i.on(`stabilizationProgress`,e=>{if(!e?.total)return;let t=Math.min(100,Math.round(e.iterations/e.total*100));this.callbacks.onStabilizationProgress?.(t),t>=100&&setTimeout(()=>this.freezePhysics(),0)}),i.on(`selectNode`,e=>{if(this.selectionEventsSuppressed)return;let t=e?.nodes?.find(e=>typeof e==`string`)??null;this.callbacks.onSelectedNodeChange?.(t),this.callbacks.onSelectedEdgeChange?.(null),t&&this.highlightNodeNeighborhood(t,!0)}),i.on(`selectEdge`,e=>{if(this.selectionEventsSuppressed)return;let t=e?.edges?.find(e=>typeof e==`string`)??null;this.callbacks.onSelectedNodeChange?.(null),this.callbacks.onSelectedEdgeChange?.(t),t&&this.highlightEdgeNeighborhood(t,!0)}),i.on(`doubleClick`,e=>{let t=e?.nodes?.find(e=>typeof e==`string`)??null;t&&this.callbacks.onNodeActivate?.(t)}),i.on(`deselectNode`,()=>{this.selectionEventsSuppressed||this.network?.getSelection().edges.length||(this.callbacks.onSelectedNodeChange?.(null),this.clearHighlight())}),i.on(`deselectEdge`,()=>{this.selectionEventsSuppressed||this.network?.getSelection().nodes.length||(this.callbacks.onSelectedEdgeChange?.(null),this.clearHighlight())}),this.startStabilization(e.graph.nodes.length)}startStabilization(e){this.network&&(this.clearStabilizationTimeout(),this.callbacks.onSettledChange?.(!1),this.callbacks.onStabilizationProgress?.(0),this.network.off(`stabilized`,this.settle),this.network.once(`stabilized`,this.settle),this.network.setOptions(this.options(e)),this.network.stabilize(fe(e)),this.stabilizeTimeout=setTimeout(()=>this.freezePhysics(),X(e)))}freezePhysics(){this.network&&(this.clearStabilizationTimeout(),this.network.off(`stabilized`,this.settle),this.network.storePositions(),this.network.stopSimulation(),this.network.setOptions({physics:!1}),this.callbacks.onStabilizationProgress?.(100),this.callbacks.onSettledChange?.(!0))}options(e){return{autoResize:!0,interaction:{hover:!1,tooltipDelay:1e6,dragNodes:!0,dragView:!0,zoomView:!0,multiselect:!1,navigationButtons:!1,keyboard:!1,hideEdgesOnDrag:!0,hideEdgesOnZoom:!0},layout:{improvedLayout:e<350},physics:{enabled:!0,solver:`forceAtlas2Based`,stabilization:{enabled:!0,iterations:fe(e),updateInterval:40,fit:!0},forceAtlas2Based:{gravitationalConstant:e>500?-34:-48,centralGravity:.014,springLength:e>500?95:120,springConstant:.055,damping:.74,avoidOverlap:e>500?.25:.45},adaptiveTimestep:!0,minVelocity:2.2,maxVelocity:28},nodes:{chosen:!0,scaling:{min:13,max:42},shapeProperties:{borderRadius:4}},edges:{chosen:!1,selectionWidth:1}}}toNodes(e){return e.graph.nodes.map(t=>this.nodeFor(t,e,t.id===e.selectedId?`selected`:`base`))}nodeFor(e,t,n){let r=t.labelsVisible||t.graph.nodes.length<90,i=t.nodeTheme[e.type],a=n===`dimmed`,o=n===`selected`,s=n===`highlighted`||o,c=!a&&(r||e.degree>5||e.type===`feature`||s),l=e.type!==`feature`&&c;return{id:e.id,label:c?e.label:``,title:`${i.label}: ${e.label}${e.detail?`\n${e.detail}`:``}`,value:Math.max(1,e.degree),size:ue(e.degree),shape:e.type===`feature`||!c?`dot`:`box`,color:{background:a?de(i.fill,le):i.fill,border:a?de(i.stroke,.2):o?`#020617`:i.stroke,highlight:{background:i.fill,border:`#020617`},hover:{background:i.fill,border:i.stroke}},borderWidth:o?5:s?3.5:1.5,font:{color:l?Y(i.fill):`#0f172a`,size:o?16:s?13:12,face:`Inter, ui-sans-serif, system-ui, sans-serif`,strokeWidth:l||a?0:4,strokeColor:`rgba(255,255,255,0.92)`},margin:l?{top:6,right:10,bottom:6,left:10}:void 0,widthConstraint:l?{maximum:220}:void 0,shadow:!a&&(s||e.type===`feature`||e.degree>8)}}toEdges(e){return e.graph.edges.map(t=>this.edgeFor(t,e.edgeTheme,`base`))}edgeFor(e,t,n){let r=ce.has(e.kind),i=n===`selected`?.96:n===`highlighted`?.82:n===`dimmed`?J:r?.42:.18;return{id:e.id,from:e.from,to:e.to,title:e.label??t[e.kind].label,color:{color:t[e.kind].color,opacity:i},width:n===`selected`?3:n===`highlighted`?2.2:r?1.5:.7,dashes:e.kind===`contains`,arrows:{to:{enabled:e.kind!==`contains`,scaleFactor:.45}},smooth:!1}}highlightNodeNeighborhood(e,t){!this.network||!this.nodes||!this.edges||(this.highlightFrame!==null&&cancelAnimationFrame(this.highlightFrame),this.highlightFrame=requestAnimationFrame(()=>{let n=this.currentInput;if(!this.network||!this.nodes||!this.edges||!n)return;let r=new Set([e,...this.network.getConnectedNodes(e).filter(e=>typeof e==`string`||typeof e==`number`)]),i=new Set(this.network.getConnectedEdges(e));this.applyFocusMask({selectedNodeId:e,highlightedNodes:r,highlightedEdges:i}),t&&this.fitNeighborhood(r),this.highlighted={nodes:r,edges:i},this.highlightFrame=null}))}highlightEdgeNeighborhood(e,t){!this.network||!this.nodes||!this.edges||(this.highlightFrame!==null&&cancelAnimationFrame(this.highlightFrame),this.highlightFrame=requestAnimationFrame(()=>{let n=this.currentInput;if(!this.network||!this.nodes||!this.edges||!n)return;let r=n.graph.edges.find(t=>t.id===e);if(!r)return;let i=new Set([r.from,r.to]),a=new Set([e]);for(let e of[r.from,r.to]){for(let t of this.network.getConnectedNodes(e))(typeof t==`string`||typeof t==`number`)&&i.add(t);for(let t of this.network.getConnectedEdges(e))a.add(t)}this.applyFocusMask({selectedEdgeId:e,highlightedNodes:i,highlightedEdges:a}),t&&this.fitNeighborhood(i),this.highlighted={nodes:i,edges:a},this.highlightFrame=null}))}applyFocusMask({selectedNodeId:e,selectedEdgeId:t,highlightedNodes:n,highlightedEdges:r}){if(!this.nodes||!this.edges)return;let i=this.currentInput;i&&(this.nodes.update(i.graph.nodes.map(t=>{let r=t.id===e?`selected`:n.has(t.id)?`highlighted`:`dimmed`;return this.nodeFor(t,i,r)})),this.edges.update(i.graph.edges.map(e=>{let n=e.id===t?`selected`:r.has(e.id)?`highlighted`:`dimmed`;return this.edgeFor(e,i.edgeTheme,n)})))}fitNeighborhood(e){!this.network||e.size===0||this.network.fit({nodes:[...e],minZoomLevel:.24,maxZoomLevel:1.18,animation:{duration:320,easingFunction:`easeInOutQuad`}})}clearHighlight(){this.clearPendingHighlight(),this.restoreHighlightBase(),this.highlighted={nodes:new Set,edges:new Set}}restoreHighlightBase(){if(!this.nodes||!this.edges)return;let e=this.currentInput;e&&(this.nodes.update(e.graph.nodes.map(t=>this.nodeFor(t,e,t.id===e.selectedId?`selected`:`base`))),this.edges.update(e.graph.edges.map(t=>this.edgeFor(t,e.edgeTheme,`base`))))}clearPendingWork(){this.clearPendingHighlight(),this.clearStabilizationTimeout()}clearPendingHighlight(){this.highlightFrame!==null&&(cancelAnimationFrame(this.highlightFrame),this.highlightFrame=null)}clearStabilizationTimeout(){this.stabilizeTimeout&&=(clearTimeout(this.stabilizeTimeout),null)}signatureFor(e){return`${e.graph.nodes.map(e=>e.id).join(`|`)}::${e.graph.edges.map(e=>e.id).join(`|`)}::labels=${e.labelsVisible}`}},me=a(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 shrink-0 text-brand-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>`),he=i(`<button type="button" role="menuitemcheckbox" class="flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-left text-sm transition hover:bg-slate-50"><span class="h-2.5 w-2.5 shrink-0 rounded-full"></span> <span> </span> <!></button>`),ge=a(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 shrink-0 text-brand-600" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg>`),_e=i(`<div role="menu" class="absolute right-0 top-11 z-20 w-64 overflow-hidden rounded-xl border border-slate-200 bg-white p-2 shadow-xl shadow-slate-950/10"><div class="flex items-center justify-between px-2 pb-1 pt-1"><span class="text-[10px] font-semibold uppercase tracking-wide text-slate-400">Connections</span> <div class="flex gap-1"><button type="button" class="rounded px-1.5 py-0.5 text-[11px] font-medium text-brand-700 hover:bg-brand-50">All</button> <button type="button" class="rounded px-1.5 py-0.5 text-[11px] font-medium text-slate-500 hover:bg-slate-100">None</button></div></div> <!> <div class="my-1 h-px bg-slate-100"></div> <button type="button" role="menuitemcheckbox" class="flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-left text-sm transition hover:bg-slate-50"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4 shrink-0 text-slate-400" aria-hidden="true"><path d="M20.59 13.41 13.42 20.6a2 2 0 0 1-2.83 0L3 13V4h9z"></path><path d="M7.5 7.5h.01"></path></svg> <span>Labels</span> <!></button> <div class="my-1 h-px bg-slate-100"></div> <div class="flex gap-1.5 px-1 pb-1 pt-0.5"><button type="button" class="flex-1 rounded-md border border-slate-200 px-2 py-1.5 text-xs font-medium text-slate-700 transition hover:bg-slate-50">Re-layout</button> <button type="button" class="flex-1 rounded-md border border-slate-200 px-2 py-1.5 text-xs font-medium text-slate-700 transition hover:bg-slate-50">Reset</button></div></div>`),ve=i(`<div class="pointer-events-none absolute left-3 top-3 z-10 w-56 rounded-md border border-slate-200 bg-white/90 p-3 text-xs text-slate-600 shadow-sm backdrop-blur"><div class="flex justify-between font-medium text-slate-800"><span>Stabilizing layout</span> <span> </span></div> <div class="mt-2 h-1.5 overflow-hidden rounded-full bg-slate-200"><div class="h-full rounded-full bg-brand-500 transition-all"></div></div></div>`),ye=i(`<span class="inline-flex items-center gap-1 rounded-full border border-slate-200 bg-white px-2 py-1 text-xs text-slate-700"><span class="h-2 w-2 rounded-full"></span> </span>`),be=i(`<button type="button" class="w-full rounded-md border border-slate-200 bg-white px-3 py-2 text-left hover:border-brand-300 hover:bg-brand-50"><span class="block truncate text-sm font-medium text-slate-900"> </span> <span class="text-xs text-slate-500"> </span></button>`),xe=i(`<p class="mt-2 text-sm leading-6 text-slate-600"> </p>`),Se=i(`<a class="mt-3 inline-flex text-sm font-medium text-brand-700 hover:underline">Open in editor</a>`),Ce=i(`<p class="text-xs font-semibold uppercase tracking-wide text-slate-500"> </p> <h3 class="mt-1 text-base font-semibold text-slate-950"> </h3> <!> <p class="mt-2 text-xs text-slate-500"> </p> <!>`,1),we=i(`<p class="text-xs font-semibold uppercase tracking-wide text-slate-500"> </p> <h3 class="mt-1 text-base font-semibold text-slate-950"> </h3> <p class="mt-2 text-sm leading-6 text-slate-600"> </p> <p class="mt-2 text-xs text-slate-500">Click another node or edge to move the highlighted neighborhood.</p>`,1),Te=i(`<h3 class="text-sm font-semibold text-slate-950">Explore the Map</h3> <p class="mt-2 text-sm leading-6 text-slate-600">Click a node or edge to highlight its linked behavior. Double-click a node to jump
3
3
  straight to it in the editor.</p>`,1),Ee=i(`<section class="w-full lg:flex lg:min-h-0 lg:flex-1 lg:flex-col"><div class="select-none overflow-hidden rounded-lg border border-slate-200 bg-white shadow-sm shadow-slate-950/5 lg:flex lg:min-h-0 lg:flex-1 lg:flex-col"><div class="shrink-0 border-b border-slate-200 bg-slate-950 px-4 py-4 text-white"><a class="inline-flex items-center gap-1.5 text-sm font-medium text-slate-400 transition hover:text-white"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"><path d="M15 18l-6-6 6-6"></path></svg> </a> <div class="mt-3 min-w-0"><p class="text-xs font-semibold uppercase tracking-wide text-cyan-200">Behavior Graph</p> <h2 class="mt-1 truncate text-2xl font-semibold"> </h2> <p class="mt-1 max-w-3xl text-sm leading-6 text-slate-300"> </p></div></div> <div class="grid gap-0 lg:min-h-0 lg:flex-1 lg:grid-cols-[minmax(0,1fr)_320px]"><div class="min-w-0 border-b border-slate-200 lg:min-h-0 lg:border-b-0 lg:border-r"><div class="graph-canvas relative lg:h-full svelte-1wx4hks"><div class="h-[76vh] min-h-[32rem] w-full lg:h-full lg:min-h-0"></div> <div class="absolute right-3 top-3 z-10 flex items-start gap-2"><div class="relative"><label for="graph-search" class="sr-only">Search nodes</label> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" class="pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><path d="m20 20-3.5-3.5"></path></svg> <input id="graph-search" type="search" placeholder="Search nodes" class="h-9 w-44 select-text rounded-lg border border-slate-200 bg-white/95 pl-8 pr-3 text-sm shadow-sm outline-none backdrop-blur transition focus:border-brand-400 focus:ring-2 focus:ring-brand-500/15 sm:w-60"/></div> <div class="relative"><button type="button" aria-haspopup="menu"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"><path d="M3 5h18l-7 8v6l-4-2v-4z"></path></svg> <span class="hidden sm:inline">Filters</span> <span class="rounded-full bg-slate-100 px-1.5 text-[11px] font-semibold text-slate-600"> </span></button> <!></div></div> <div class="absolute bottom-3 right-3 z-10 flex flex-col overflow-hidden rounded-lg border border-slate-200 bg-white/95 shadow-sm backdrop-blur"><button type="button" aria-label="Zoom in" class="grid h-9 w-9 place-items-center text-lg font-semibold leading-none text-slate-700 transition hover:bg-slate-100">+</button> <div class="h-px bg-slate-200"></div> <button type="button" aria-label="Zoom out" class="grid h-9 w-9 place-items-center text-lg font-semibold leading-none text-slate-700 transition hover:bg-slate-100">−</button> <div class="h-px bg-slate-200"></div> <button type="button" aria-label="Fit graph to view" class="grid h-9 w-9 place-items-center text-slate-700 transition hover:bg-slate-100"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" class="h-4 w-4" aria-hidden="true"><path d="M4 9V5a1 1 0 0 1 1-1h4"></path><path d="M20 9V5a1 1 0 0 0-1-1h-4"></path><path d="M4 15v4a1 1 0 0 0 1 1h4"></path><path d="M20 15v4a1 1 0 0 1-1 1h-4"></path></svg></button></div> <!></div></div> <aside class="space-y-4 p-4 lg:min-h-0 lg:overflow-y-auto"><div><h3 class="text-sm font-semibold text-slate-950">Graph Summary</h3> <div class="mt-3 grid grid-cols-2 gap-2 text-sm"><div class="rounded-md bg-slate-100 p-3"><div class="text-2xl font-semibold text-slate-950"> </div> <div class="text-xs text-slate-500">nodes</div></div> <div class="rounded-md bg-slate-100 p-3"><div class="text-2xl font-semibold text-slate-950"> </div> <div class="text-xs text-slate-500">edges</div></div></div></div> <div><h3 class="text-sm font-semibold text-slate-950">Node Types</h3> <div class="mt-2 flex flex-wrap gap-1.5"></div></div> <div><h3 class="text-sm font-semibold text-slate-950">Central Nodes</h3> <div class="mt-2 space-y-2"></div></div> <div class="rounded-md border border-slate-200 bg-slate-50 p-3"><!></div></aside></div></div></section>`);function De(t,r){S(r,!0);let i=T(``),a=T(null),s=T(null),p=T(!1),h=T(!1),_=T(0),v=T(null),C=null,z=T(A({contains:!0,reads:!0,writes:!0,emits:!0,transitions:!0,asserts:!0,uses:!0,handles:!0})),U=T(!1),te=T(null),ne=re.length,G=j(()=>re.filter(e=>m(z)[e]).length),K=e=>{P(z,Object.fromEntries(re.map(t=>[t,e])),!0)},ce=e=>{m(U)&&m(te)&&!m(te).contains(e.target)&&P(U,!1)},le=j(()=>r.features??(r.feature?[r.feature]:[])),J=j(()=>r.project?.name??r.feature?.name??`Behavior graph`),ue=j(()=>r.project?`The whole project behavior map across ${m(le).length} feature${m(le).length===1?``:`s`} from the shared Unspa hub.`:`A connected map of the executable behavior model from the shared Unspa hub.`),de=j(()=>r.project?`/projects/${r.project.id}`:r.feature?`/features/${r.feature.id}`:`/projects`),Y=j(()=>r.project?`Back to project`:`Back to editor`),fe=j(()=>ie(m(le),r.project)),X=j(()=>ae(m(fe))),De=j(()=>oe(m(X),{search:m(i),enabledKinds:m(z)})),Z=j(()=>m(a)?m(X).nodeById.get(m(a))??null:null),Q=j(()=>m(s)?m(De).edges.find(e=>e.id===m(s))??null:null),Oe=j(()=>m(Q)?m(X).nodeById.get(m(Q).from)??null:null),ke=j(()=>m(Q)?m(X).nodeById.get(m(Q).to)??null:null),Ae=j(()=>[...m(X).nodes].sort((e,t)=>t.degree-e.degree).slice(0,6)),je=j(()=>{let e=new Map;for(let t of m(X).nodes)e.set(t.type,(e.get(t.type)??0)+1);return e}),Me=()=>{C?.render({graph:m(De),selectedId:m(a),selectedEdgeId:m(s),labelsVisible:m(p),nodeTheme:q,edgeTheme:se})},Ne=e=>{P(z,{...m(z),[e]:!m(z)[e]},!0)},Pe=()=>{P(a,null),P(s,null),P(i,``),C?.fit()},Fe=e=>{P(a,e,!0),P(s,null),C?.select(e,null)};o(()=>{m(De).nodes,m(De).edges,m(p),m(a),m(s),Me()}),N(()=>{let e=!1,t=()=>C?.fit();return(async()=>{let n=await H(()=>import(`./D5speDV8.js`),[],import.meta.url);e||!m(v)||(C=new pe(n,m(v),{onSelectedNodeChange:e=>{P(a,e,!0)},onSelectedEdgeChange:e=>{P(s,e,!0)},onNodeActivate:e=>{let t=m(X).nodeById.get(e);t?.href&&V(t.href)},onStabilizationProgress:e=>{P(_,e,!0)},onSettledChange:e=>{P(h,e,!0)}}),Me(),window.addEventListener(`resize`,t))})(),()=>{e=!0,window.removeEventListener(`resize`,t)}}),k(()=>{C?.destroy(),C=null});var Ie=Ee();n(`mousedown`,f,ce),n(`keydown`,f,e=>{e.key===`Escape`&&P(U,!1)});var Le=e(Ie),Re=e(Le),ze=e(Re),Be=I(e(ze));g(ze);var Ve=I(ze,2),He=I(e(Ve),2),Ue=e(He,!0);g(He);var We=I(He,2),$=e(We,!0);g(We),g(Ve),g(Re);var Ge=I(Re,2),Ke=e(Ge),qe=e(Ke),Je=e(qe);F(Je,e=>P(v,e),()=>m(v));var Ye=I(Je,2),Xe=e(Ye),Ze=I(e(Xe),4);L(Ze),g(Xe);var Qe=I(Xe,2),$e=e(Qe),et=I(e($e),4),tt=e(et);g(et),g($e);var nt=I($e,2),rt=t=>{var n=_e(),r=e(n),i=I(e(r),2),a=e(i),o=I(a,2);g(i),g(r);var s=I(r,2);u(s,17,()=>re,D,(t,n)=>{let r=j(()=>m(z)[m(n)]);var i=he(),a=e(i),o=I(a,2),s=e(o,!0);g(o);var u=I(o,2),d=e=>{l(e,me())};E(u,e=>{m(r)&&e(d)}),g(i),M(()=>{y(i,`aria-checked`,m(r)),ee(a,`background:${se[m(n)].color};opacity:${m(r)?1:.3}`),R(o,1,`flex-1 truncate ${m(r)?`text-slate-800`:`text-slate-400`}`),c(s,se[m(n)].label)}),B(`click`,i,()=>Ne(m(n))),l(t,i)});var d=I(s,4),f=I(e(d),2),h=I(f,2),_=e=>{l(e,ge())};E(h,e=>{m(p)&&e(_)}),g(d);var v=I(d,4),b=e(v),x=I(b,2);g(v),g(n),M(()=>{y(d,`aria-checked`,m(p)),R(f,1,`flex-1 ${m(p)?`text-slate-800`:`text-slate-600`}`)}),B(`click`,a,()=>K(!0)),B(`click`,o,()=>K(!1)),B(`click`,d,()=>P(p,!m(p))),B(`click`,b,()=>C?.relayout(m(De).nodes.length)),B(`click`,x,()=>{Pe(),P(U,!1)}),l(t,n)};E(nt,e=>{m(U)&&e(rt)}),g(Qe),F(Qe,e=>P(te,e),()=>m(te)),g(Ye);var it=I(Ye,2),at=e(it),ot=I(at,4),st=I(ot,4);g(it);var ct=I(it,2),lt=t=>{var n=ve(),r=e(n),i=I(e(r),2),a=e(i);g(i),g(r);var o=I(r,2),s=e(o);g(o),g(n),M(()=>{c(a,`${m(_)??``}%`),ee(s,`width:${m(_)}%`)}),l(t,n)};E(ct,e=>{!m(h)&&m(_)<100&&e(lt)}),g(qe),g(Ke);var ut=I(Ke,2),dt=e(ut),ft=I(e(dt),2),pt=e(ft),mt=e(pt),ht=e(mt,!0);g(mt),w(2),g(pt);var gt=I(pt,2),_t=e(gt),vt=e(_t,!0);g(_t),w(2),g(gt),g(ft),g(dt);var yt=I(dt,2),bt=I(e(yt),2);u(bt,21,()=>W,D,(t,n)=>{var r=d(),i=x(r),a=t=>{var r=ye(),i=e(r),a=I(i);g(r),M(e=>{ee(i,`background:${q[m(n)].fill}`),c(a,` ${q[m(n)].label??``} ${e??``}`)},[()=>m(je).get(m(n))]),l(t,r)},o=j(()=>m(je).get(m(n)));E(i,e=>{m(o)&&e(a)}),l(t,r)}),g(bt),g(yt);var xt=I(yt,2),St=I(e(xt),2);u(St,21,()=>m(Ae),D,(t,n)=>{var r=be(),i=e(r),a=e(i,!0);g(i);var o=I(i,2),s=e(o);g(o),g(r),M(()=>{c(a,m(n).label),c(s,`${q[m(n).type].label??``} / ${m(n).degree??``} links`)}),B(`click`,r,()=>Fe(m(n).id)),l(t,r)}),g(St),g(xt);var Ct=I(xt,2),wt=e(Ct),Tt=t=>{var n=Ce(),r=x(n),i=e(r,!0);g(r);var a=I(r,2),o=e(a,!0);g(a);var s=I(a,2),u=t=>{var n=xe(),r=e(n,!0);g(n),M(()=>c(r,m(Z).detail)),l(t,n)};E(s,e=>{m(Z).detail&&e(u)});var d=I(s,2),f=e(d);g(d);var p=I(d,2),h=e=>{var t=Se();M(()=>y(t,`href`,m(Z).href)),l(e,t)};E(p,e=>{m(Z).href&&e(h)}),M(()=>{c(i,q[m(Z).type].label),c(o,m(Z).label),c(f,`${m(Z).degree??``} graph links`)}),l(t,n)},Et=t=>{var n=we(),r=x(n),i=e(r,!0);g(r);var a=I(r,2),o=e(a,!0);g(a);var s=I(a,2),u=e(s);g(s),w(2),M(()=>{c(i,se[m(Q).kind].label),c(o,m(Q).label??`Behavior link`),c(u,`${m(Oe)?.label??m(Q).from??``} -> ${m(ke)?.label??m(Q).to??``}`)}),l(t,n)},Dt=e=>{var t=Te();w(2),l(e,t)};E(wt,e=>{m(Z)?e(Tt):m(Q)?e(Et,1):e(Dt,-1)}),g(Ct),g(ut),g(Ge),g(Le),g(Ie),M(()=>{y(ze,`href`,m(de)),c(Be,` ${m(Y)??``}`),c(Ue,m(J)),c($,m(ue)),y(Je,`aria-label`,`Interactive behavior graph for ${m(J)}`),y($e,`aria-expanded`,m(U)),R($e,1,`flex h-9 items-center gap-1.5 rounded-lg border bg-white/95 px-2.5 text-sm font-medium shadow-sm backdrop-blur transition ${m(U)?`border-brand-400 text-slate-900`:`border-slate-200 text-slate-700 hover:bg-white`}`),c(tt,`${m(G)??``}/${ne??``}`),c(ht,m(X).nodes.length),c(vt,m(X).edges.length)}),O(Ze,()=>m(i),e=>P(i,e)),B(`click`,$e,()=>P(U,!m(U))),B(`click`,at,()=>C?.zoomBy(1.38)),B(`click`,ot,()=>C?.zoomBy(.72)),B(`click`,st,()=>C?.fit()),l(t,Ie),b()}p([`click`]);var Z=e=>e.format===`statechart`?e.edges.length>0:e.nodes.length>0,Q=({features:e})=>{let t=e.some(e=>e.surfaces.some(e=>e.transitions.length>0||e.actions.some(e=>e.transitions.length>0||[...e.effects,...e.onBlockedEffects??[]].some(e=>e.type===`transition_surface`)))),n=e.some(e=>e.entities.length>0);return{loaded:e.length>0,hasTransitions:t,hasEntities:n}},Oe=({features:e,project:t})=>{let n=ie(e,t);return{format:`graph`,title:t?.name??e[0]?.name??`Behavior graph`,nodes:n.nodes.map(e=>({id:e.id,label:e.label,kind:e.type})),edges:n.edges.map(e=>({from:e.from,to:e.to,label:e.kind}))}},ke=class{byFormat=new Map;constructor(e=[]){for(let t of e)this.register(t)}register(e){this.byFormat.set(e.format,e)}get(e){return this.byFormat.get(e)}has(e){return this.byFormat.has(e)}list(){return[...this.byFormat.values()]}},Ae={format:`er`,label:`ER diagram`,supportsText:!0,project({features:e,project:t}){let n=[],r=new Set;for(let t of e){let e=String(t.id);for(let i of t.entities){let t=`${e}::entity::${String(i.id)}`;r.has(t)||(r.add(t),n.push({id:t,label:i.namespace,kind:`entity`,fields:i.fields.map(e=>({name:e.name,type:String(e.type)}))}))}}return{format:`er`,title:t?.name??e[0]?.name??`ER diagram`,nodes:n,edges:[]}}},je=e=>`feature::${e}`,Me=(e,t)=>`${e}::surface::${t}`,Ne=(e,t)=>`${e}::action::${t}`,Pe={format:`flowchart`,label:`Flowchart`,supportsText:!0,project({features:e,project:t}){let n=[],r=[],i=new Set,a=e=>{i.has(e.id)||(i.add(e.id),n.push(e))};for(let t of e){let e=String(t.id),n=je(e);a({id:n,label:t.name,kind:`feature`});for(let i of t.surfaces){let t=Me(e,String(i.id));a({id:t,label:i.name,kind:`surface`}),r.push({from:n,to:t});for(let n of U(i.actions)){let i=Ne(e,String(n.id));a({id:i,label:n.name,kind:`action`}),r.push({from:t,to:i});for(let t of[...n.effects,...n.onBlockedEffects??[]])t.type===`transition_surface`&&r.push({from:i,to:Me(e,String(t.target)),label:`go to`})}}}let o=r.filter(e=>i.has(e.from)&&i.has(e.to));return{format:`flowchart`,title:t?.name??e[0]?.name??`Flowchart`,nodes:n,edges:o}}},Fe=(e,t)=>`${e}::surface::${t}`,Ie=(e,t)=>`${e}::action::${t}`,Le={format:`mindmap`,label:`Mindmap`,supportsText:!0,project({features:e,project:t}){let n=[],r=[],i=new Set,a=e=>{i.has(e.id)||(i.add(e.id),n.push(e))},o=t?.name??e[0]?.name??`Model`,s=t?`project::${String(t.id)}`:`feature::${String(e[0]?.id??`root`)}`;a({id:s,label:o,kind:`root`});for(let n of e){let e=String(n.id),i=s;if(t){let t=`feature::${e}`;a({id:t,label:n.name,kind:`feature`}),r.push({from:s,to:t}),i=t}for(let t of n.surfaces){let n=Fe(e,String(t.id));a({id:n,label:t.name,kind:`surface`}),r.push({from:i,to:n});for(let i of U(t.actions)){let t=Ie(e,String(i.id));a({id:t,label:i.name,kind:`action`}),r.push({from:n,to:t})}}}return{format:`mindmap`,title:o,nodes:n,edges:r}}},Re=(e,t)=>`${e}::action::${t}`,ze={format:`sequence`,label:`Sequence`,supportsText:!0,project({features:e,project:t}){let n=[],r=[],i=new Set,a=e=>{i.has(e.id)||(i.add(e.id),n.push(e))};for(let t of e){let e=String(t.id),n=new Map,i=[];for(let r of t.surfaces)for(let t of U(r.actions)){let r=Re(e,String(t.id));if(t.triggeredByEvent){let e=String(t.triggeredByEvent),i=n.get(e)??[];i.push({id:r,name:t.name}),n.set(e,i)}for(let e of t.emittedEvents)i.push({id:r,name:t.name,event:String(e)})}for(let e of i)for(let t of n.get(e.event)??[])a({id:e.id,label:e.name,kind:`action`}),a({id:t.id,label:t.name,kind:`action`}),r.push({from:e.id,to:t.id,label:e.event})}return{format:`sequence`,title:t?.name??e[0]?.name??`Sequence`,nodes:n,edges:r}}},Be=(e,t)=>`${e}::${t}`,Ve={format:`statechart`,label:`Statechart`,supportsText:!0,project({features:e,project:t}){let n=[],r=new Set;for(let t of e){let e=String(t.id);for(let i of t.surfaces){let t=Be(e,String(i.id));r.has(t)||(r.add(t),n.push({id:t,label:i.name,kind:i.type}))}}let i=[],a=(e,t,n,a)=>{let o=Be(e,t),s=Be(e,n);!r.has(o)||!r.has(s)||i.push({from:o,to:s,label:a})};for(let t of e){let e=String(t.id);for(let n of t.surfaces){let t=String(n.id);for(let r of n.transitions)a(e,t,String(r.target),r.label);for(let r of n.actions){for(let n of r.transitions)a(e,t,String(n.target),n.label??r.name);for(let n of[...r.effects,...r.onBlockedEffects??[]])n.type===`transition_surface`&&a(e,t,String(n.target),r.name)}}}return{format:`statechart`,title:t?.name??e[0]?.name??`Statechart`,nodes:n,edges:i}}},He=e=>e.replace(/[\r\n]+/g,` `).replace(/"/g,`\\"`).trim(),Ue=e=>e.fields?.length?`${e.label} (${e.fields.map(e=>e.name).join(`, `)})`:e.label,We={id:`dot`,label:`Graphviz DOT`,export(e){let t=new Map;e.nodes.forEach((e,n)=>t.set(e.id,`n${n}`));let n=[`digraph "${He(e.title)}" {`,` rankdir=LR;`];for(let r of e.nodes)n.push(` ${t.get(r.id)} [label="${He(Ue(r))}"];`);for(let r of e.edges){let e=t.get(r.from),i=t.get(r.to);if(!e||!i)continue;let a=r.label?` [label="${He(r.label)}"]`:``;n.push(` ${e} -> ${i}${a};`)}return n.push(`}`),n.join(`
4
4
  `)}},$=e=>e.replace(/[\r\n]+/g,` `).replace(/["]/g,``).replace(/:/g,` `).trim(),Ge=e=>$(e).replace(/[()[\]{}]/g,` `).replace(/\s+/g,` `).trim(),Ke=(e,t)=>{let n=e.replace(/[^A-Za-z0-9_-]+/g,`_`).replace(/^_+|_+$/g,``);return/^[A-Za-z]/.test(n)?n:n?`x${n}`:t},qe=e=>{let t=new Map;return e.nodes.forEach((e,n)=>t.set(e.id,`s${n}`)),t},Je=e=>{let t=qe(e),n=[`stateDiagram-v2`];e.title&&n.push(` %% ${$(e.title)}`);for(let r of e.nodes)n.push(` state "${$(r.label)}" as ${t.get(r.id)}`);for(let r of e.edges){let e=t.get(r.from),i=t.get(r.to);!e||!i||n.push(r.label?` ${e} --> ${i} : ${$(r.label)}`:` ${e} --> ${i}`)}return n.join(`
5
5
  `)},Ye=e=>{let t=qe(e),n=[`sequenceDiagram`,` autonumber`];for(let r of e.nodes)n.push(` participant ${t.get(r.id)} as ${$(r.label)}`);for(let r of e.edges){let e=t.get(r.from),i=t.get(r.to);!e||!i||n.push(` ${e}->>${i}: ${$(r.label??`event`)}`)}return n.join(`