@selvajs/selva 3.0.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1209) hide show
  1. package/build/client/_app/immutable/assets/0.vgCL98o5.css +1 -0
  2. package/build/client/_app/immutable/assets/0.vgCL98o5.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.vgCL98o5.css.gz +0 -0
  4. package/build/client/_app/immutable/assets/20.DvtWUFNX.css +1 -0
  5. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.br +0 -0
  6. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.gz +0 -0
  7. package/build/client/_app/immutable/chunks/-UMoMsui.js +1 -0
  8. package/build/client/_app/immutable/chunks/-UMoMsui.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/-UMoMsui.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/2n-qzJg2.js +1 -0
  11. package/build/client/_app/immutable/chunks/2n-qzJg2.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/2n-qzJg2.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/B-Kuf-9K.js +1 -0
  14. package/build/client/_app/immutable/chunks/B-Kuf-9K.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/B-Kuf-9K.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/B1z9if9B.js +1 -0
  17. package/build/client/_app/immutable/chunks/B1z9if9B.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/B1z9if9B.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/B21bldal.js +1 -0
  20. package/build/client/_app/immutable/chunks/B21bldal.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/B21bldal.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/B6_AR4oL.js +1 -0
  23. package/build/client/_app/immutable/chunks/B6_AR4oL.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/B6_AR4oL.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/B6yEy6Wb.js +9 -0
  26. package/build/client/_app/immutable/chunks/B6yEy6Wb.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/B6yEy6Wb.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BEFa4rcT.js +1 -0
  29. package/build/client/_app/immutable/chunks/BEFa4rcT.js.br +4 -0
  30. package/build/client/_app/immutable/chunks/BEFa4rcT.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/BGIAOk5X.js +1 -0
  32. package/build/client/_app/immutable/chunks/BGIAOk5X.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/BGIAOk5X.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/BHhjUaik.js +1 -0
  35. package/build/client/_app/immutable/chunks/BHhjUaik.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/BHhjUaik.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/BIIXkPqf.js +1 -0
  38. package/build/client/_app/immutable/chunks/BIIXkPqf.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/BIIXkPqf.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/BLZ195WY.js +1 -0
  41. package/build/client/_app/immutable/chunks/BLZ195WY.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/BLZ195WY.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/BM8Ok6pJ.js +1 -0
  44. package/build/client/_app/immutable/chunks/BM8Ok6pJ.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/BM8Ok6pJ.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/BOsr6E_d.js +1 -0
  47. package/build/client/_app/immutable/chunks/BOsr6E_d.js.br +1 -0
  48. package/build/client/_app/immutable/chunks/BOsr6E_d.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/BQ0arxbK.js +1 -0
  50. package/build/client/_app/immutable/chunks/BQ0arxbK.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/BQ0arxbK.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/BX0gN9mF.js +1 -0
  53. package/build/client/_app/immutable/chunks/BX0gN9mF.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/BX0gN9mF.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/BaMCSMGs.js +1 -0
  56. package/build/client/_app/immutable/chunks/BaMCSMGs.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/BaMCSMGs.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/BeM-GIFh.js +1 -0
  59. package/build/client/_app/immutable/chunks/BeM-GIFh.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/BeM-GIFh.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/BihI7LuH.js +1 -0
  62. package/build/client/_app/immutable/chunks/BihI7LuH.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/BihI7LuH.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/Bma65zV8.js +1 -0
  65. package/build/client/_app/immutable/chunks/Bma65zV8.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/Bma65zV8.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/BnzoF81W.js +1 -0
  68. package/build/client/_app/immutable/chunks/BnzoF81W.js.br +1 -0
  69. package/build/client/_app/immutable/chunks/BnzoF81W.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/BpQqe39G.js +1 -0
  71. package/build/client/_app/immutable/chunks/BpQqe39G.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/BpQqe39G.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/BsKtJj5h.js +1 -0
  74. package/build/client/_app/immutable/chunks/BsKtJj5h.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/BsKtJj5h.js.gz +0 -0
  76. package/build/client/_app/immutable/chunks/BtugGMaj.js +1 -0
  77. package/build/client/_app/immutable/chunks/BtugGMaj.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/BtugGMaj.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/Bwn5lHBl.js +1 -0
  80. package/build/client/_app/immutable/chunks/Bwn5lHBl.js.br +0 -0
  81. package/build/client/_app/immutable/chunks/Bwn5lHBl.js.gz +0 -0
  82. package/build/client/_app/immutable/chunks/C1kpvSgW.js +2 -0
  83. package/build/client/_app/immutable/chunks/C1kpvSgW.js.br +0 -0
  84. package/build/client/_app/immutable/chunks/C1kpvSgW.js.gz +0 -0
  85. package/build/client/_app/immutable/chunks/C3WxOOC9.js +1 -0
  86. package/build/client/_app/immutable/chunks/C3WxOOC9.js.br +0 -0
  87. package/build/client/_app/immutable/chunks/C3WxOOC9.js.gz +0 -0
  88. package/build/client/_app/immutable/chunks/C98bdhQ5.js +1 -0
  89. package/build/client/_app/immutable/chunks/C98bdhQ5.js.br +0 -0
  90. package/build/client/_app/immutable/chunks/C98bdhQ5.js.gz +0 -0
  91. package/build/client/_app/immutable/chunks/CDmA5ezP.js +1 -0
  92. package/build/client/_app/immutable/chunks/CDmA5ezP.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/CDmA5ezP.js.gz +0 -0
  94. package/build/client/_app/immutable/chunks/CE_gxD9G.js +1 -0
  95. package/build/client/_app/immutable/chunks/CE_gxD9G.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/CE_gxD9G.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/CGKZc1Kf.js +1 -0
  98. package/build/client/_app/immutable/chunks/CGKZc1Kf.js.br +0 -0
  99. package/build/client/_app/immutable/chunks/CGKZc1Kf.js.gz +0 -0
  100. package/build/client/_app/immutable/chunks/CIHhLSqA.js +1 -0
  101. package/build/client/_app/immutable/chunks/CIHhLSqA.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/CIHhLSqA.js.gz +0 -0
  103. package/build/client/_app/immutable/chunks/CNC_mCsM.js +1 -0
  104. package/build/client/_app/immutable/chunks/CNC_mCsM.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/CNC_mCsM.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/Cal8_SqL.js +1 -0
  107. package/build/client/_app/immutable/chunks/Cal8_SqL.js.br +0 -0
  108. package/build/client/_app/immutable/chunks/Cal8_SqL.js.gz +0 -0
  109. package/build/client/_app/immutable/chunks/CeS0GhtF.js +1 -0
  110. package/build/client/_app/immutable/chunks/CeS0GhtF.js.br +0 -0
  111. package/build/client/_app/immutable/chunks/CeS0GhtF.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/CnXIg_dO.js +1 -0
  113. package/build/client/_app/immutable/chunks/CnXIg_dO.js.br +0 -0
  114. package/build/client/_app/immutable/chunks/CnXIg_dO.js.gz +0 -0
  115. package/build/client/_app/immutable/chunks/CumXBEVX.js +1 -0
  116. package/build/client/_app/immutable/chunks/CumXBEVX.js.br +0 -0
  117. package/build/client/_app/immutable/chunks/CumXBEVX.js.gz +0 -0
  118. package/build/client/_app/immutable/chunks/CynIvqMH.js +1 -0
  119. package/build/client/_app/immutable/chunks/CynIvqMH.js.br +0 -0
  120. package/build/client/_app/immutable/chunks/CynIvqMH.js.gz +0 -0
  121. package/build/client/_app/immutable/chunks/D-Fls4-N.js +1 -0
  122. package/build/client/_app/immutable/chunks/D-Fls4-N.js.br +0 -0
  123. package/build/client/_app/immutable/chunks/D-Fls4-N.js.gz +0 -0
  124. package/build/client/_app/immutable/chunks/D1xkoVpc.js +1 -0
  125. package/build/client/_app/immutable/chunks/D1xkoVpc.js.br +3 -0
  126. package/build/client/_app/immutable/chunks/D1xkoVpc.js.gz +0 -0
  127. package/build/client/_app/immutable/chunks/D37hHIb0.js +1 -0
  128. package/build/client/_app/immutable/chunks/D37hHIb0.js.br +0 -0
  129. package/build/client/_app/immutable/chunks/D37hHIb0.js.gz +0 -0
  130. package/build/client/_app/immutable/chunks/DNu_no60.js +3 -0
  131. package/build/client/_app/immutable/chunks/DNu_no60.js.br +0 -0
  132. package/build/client/_app/immutable/chunks/DNu_no60.js.gz +0 -0
  133. package/build/client/_app/immutable/chunks/DRpLcVdK.js +1 -0
  134. package/build/client/_app/immutable/chunks/DRpLcVdK.js.br +0 -0
  135. package/build/client/_app/immutable/chunks/DRpLcVdK.js.gz +0 -0
  136. package/build/client/_app/immutable/chunks/DYfK6Plb.js +1 -0
  137. package/build/client/_app/immutable/chunks/DYfK6Plb.js.br +1 -0
  138. package/build/client/_app/immutable/chunks/DYfK6Plb.js.gz +0 -0
  139. package/build/client/_app/immutable/chunks/DZM0bVcB.js +1 -0
  140. package/build/client/_app/immutable/chunks/DZM0bVcB.js.br +0 -0
  141. package/build/client/_app/immutable/chunks/DZM0bVcB.js.gz +0 -0
  142. package/build/client/_app/immutable/chunks/D_gPt7DB.js +1 -0
  143. package/build/client/_app/immutable/chunks/D_gPt7DB.js.br +0 -0
  144. package/build/client/_app/immutable/chunks/D_gPt7DB.js.gz +0 -0
  145. package/build/client/_app/immutable/chunks/DdEmEaOR.js +1 -0
  146. package/build/client/_app/immutable/chunks/DdEmEaOR.js.br +0 -0
  147. package/build/client/_app/immutable/chunks/DdEmEaOR.js.gz +0 -0
  148. package/build/client/_app/immutable/chunks/De-Sjn1V.js +1 -0
  149. package/build/client/_app/immutable/chunks/De-Sjn1V.js.br +0 -0
  150. package/build/client/_app/immutable/chunks/De-Sjn1V.js.gz +0 -0
  151. package/build/client/_app/immutable/chunks/DeMiewtM.js +1 -0
  152. package/build/client/_app/immutable/chunks/DeMiewtM.js.br +0 -0
  153. package/build/client/_app/immutable/chunks/DeMiewtM.js.gz +0 -0
  154. package/build/client/_app/immutable/chunks/DfbumCTS.js +1 -0
  155. package/build/client/_app/immutable/chunks/DfbumCTS.js.br +0 -0
  156. package/build/client/_app/immutable/chunks/DfbumCTS.js.gz +0 -0
  157. package/build/client/_app/immutable/chunks/Diyh8RG-.js +1 -0
  158. package/build/client/_app/immutable/chunks/Diyh8RG-.js.br +0 -0
  159. package/build/client/_app/immutable/chunks/Diyh8RG-.js.gz +0 -0
  160. package/build/client/_app/immutable/chunks/DkVLFJC2.js +64 -0
  161. package/build/client/_app/immutable/chunks/DkVLFJC2.js.br +0 -0
  162. package/build/client/_app/immutable/chunks/DkVLFJC2.js.gz +0 -0
  163. package/build/client/_app/immutable/chunks/Dn_lJm0y.js +1 -0
  164. package/build/client/_app/immutable/chunks/Dn_lJm0y.js.br +0 -0
  165. package/build/client/_app/immutable/chunks/Dn_lJm0y.js.gz +0 -0
  166. package/build/client/_app/immutable/chunks/DqK2lhM-.js +1 -0
  167. package/build/client/_app/immutable/chunks/DqK2lhM-.js.br +0 -0
  168. package/build/client/_app/immutable/chunks/DqK2lhM-.js.gz +0 -0
  169. package/build/client/_app/immutable/chunks/Dr-qnmvi.js +1 -0
  170. package/build/client/_app/immutable/chunks/Dr-qnmvi.js.br +0 -0
  171. package/build/client/_app/immutable/chunks/Dr-qnmvi.js.gz +0 -0
  172. package/build/client/_app/immutable/chunks/DtFVCiwY.js +1 -0
  173. package/build/client/_app/immutable/chunks/DtFVCiwY.js.br +0 -0
  174. package/build/client/_app/immutable/chunks/DtFVCiwY.js.gz +0 -0
  175. package/build/client/_app/immutable/chunks/Q9Y439fs.js +1 -0
  176. package/build/client/_app/immutable/chunks/Q9Y439fs.js.br +0 -0
  177. package/build/client/_app/immutable/chunks/Q9Y439fs.js.gz +0 -0
  178. package/build/client/_app/immutable/chunks/Uv0-HWHq.js +1 -0
  179. package/build/client/_app/immutable/chunks/Uv0-HWHq.js.br +0 -0
  180. package/build/client/_app/immutable/chunks/Uv0-HWHq.js.gz +0 -0
  181. package/build/client/_app/immutable/chunks/snZK0J5H.js +1 -0
  182. package/build/client/_app/immutable/chunks/snZK0J5H.js.br +0 -0
  183. package/build/client/_app/immutable/chunks/snZK0J5H.js.gz +0 -0
  184. package/build/client/_app/immutable/chunks/vyYztzrZ.js +1 -0
  185. package/build/client/_app/immutable/chunks/vyYztzrZ.js.br +0 -0
  186. package/build/client/_app/immutable/chunks/vyYztzrZ.js.gz +0 -0
  187. package/build/client/_app/immutable/entry/app.1YljYqLj.js +2 -0
  188. package/build/client/_app/immutable/entry/app.1YljYqLj.js.br +0 -0
  189. package/build/client/_app/immutable/entry/app.1YljYqLj.js.gz +0 -0
  190. package/build/client/_app/immutable/entry/start.C41rnrMx.js +1 -0
  191. package/build/client/_app/immutable/entry/start.C41rnrMx.js.br +0 -0
  192. package/build/client/_app/immutable/entry/start.C41rnrMx.js.gz +0 -0
  193. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js +9 -0
  194. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.br +0 -0
  195. package/build/client/_app/immutable/nodes/0.Y-xP5pet.js.gz +0 -0
  196. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js +1 -0
  197. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.br +0 -0
  198. package/build/client/_app/immutable/nodes/1.5JE3G8iG.js.gz +0 -0
  199. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js +3 -0
  200. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.br +0 -0
  201. package/build/client/_app/immutable/nodes/10.DpfN1qrg.js.gz +0 -0
  202. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js +2 -0
  203. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.br +0 -0
  204. package/build/client/_app/immutable/nodes/11.Co2EmpEg.js.gz +0 -0
  205. package/build/client/_app/immutable/nodes/12.C3AQ8jKc.js +1 -0
  206. package/build/client/_app/immutable/nodes/12.C3AQ8jKc.js.br +0 -0
  207. package/build/client/_app/immutable/nodes/12.C3AQ8jKc.js.gz +0 -0
  208. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js +2 -0
  209. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.br +0 -0
  210. package/build/client/_app/immutable/nodes/13.D5OdE_HH.js.gz +0 -0
  211. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js +2 -0
  212. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.br +0 -0
  213. package/build/client/_app/immutable/nodes/14.UGx5pLUS.js.gz +0 -0
  214. package/build/client/_app/immutable/nodes/15.czhLtsoD.js +13 -0
  215. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.br +0 -0
  216. package/build/client/_app/immutable/nodes/15.czhLtsoD.js.gz +0 -0
  217. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js +6 -0
  218. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.br +0 -0
  219. package/build/client/_app/immutable/nodes/16.CqZNgdz-.js.gz +0 -0
  220. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js +2 -0
  221. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.br +0 -0
  222. package/build/client/_app/immutable/nodes/17.B1PHOW1Y.js.gz +0 -0
  223. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js +2 -0
  224. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.br +0 -0
  225. package/build/client/_app/immutable/nodes/19.ClB_k0uw.js.gz +0 -0
  226. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js +1 -0
  227. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.br +0 -0
  228. package/build/client/_app/immutable/nodes/2.uPLLf3gR.js.gz +0 -0
  229. package/build/client/_app/immutable/nodes/20.C5BF7igP.js +4118 -0
  230. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.br +0 -0
  231. package/build/client/_app/immutable/nodes/20.C5BF7igP.js.gz +0 -0
  232. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js +6 -0
  233. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.br +0 -0
  234. package/build/client/_app/immutable/nodes/21.B1xX86Nz.js.gz +0 -0
  235. package/build/client/_app/immutable/nodes/23.BWuAu45o.js +16 -0
  236. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.br +0 -0
  237. package/build/client/_app/immutable/nodes/23.BWuAu45o.js.gz +0 -0
  238. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js +6 -0
  239. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.br +0 -0
  240. package/build/client/_app/immutable/nodes/24.DSWGE_q2.js.gz +0 -0
  241. package/build/client/_app/immutable/nodes/25.Boy7QQiW.js +1 -0
  242. package/build/client/_app/immutable/nodes/25.Boy7QQiW.js.br +0 -0
  243. package/build/client/_app/immutable/nodes/25.Boy7QQiW.js.gz +0 -0
  244. package/build/client/_app/immutable/nodes/26.JTwwV2O8.js +3 -0
  245. package/build/client/_app/immutable/nodes/26.JTwwV2O8.js.br +0 -0
  246. package/build/client/_app/immutable/nodes/26.JTwwV2O8.js.gz +0 -0
  247. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js +4 -0
  248. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.br +0 -0
  249. package/build/client/_app/immutable/nodes/27.CjlEhW_1.js.gz +0 -0
  250. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js +4 -0
  251. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.br +0 -0
  252. package/build/client/_app/immutable/nodes/28.U-BnDxlP.js.gz +0 -0
  253. package/build/client/_app/immutable/nodes/29.cl9udKxV.js +2 -0
  254. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.br +0 -0
  255. package/build/client/_app/immutable/nodes/29.cl9udKxV.js.gz +0 -0
  256. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js +1 -0
  257. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.br +0 -0
  258. package/build/client/_app/immutable/nodes/3.UKn7Q9OQ.js.gz +0 -0
  259. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js +2 -0
  260. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.br +0 -0
  261. package/build/client/_app/immutable/nodes/30.DPqPYAg4.js.gz +0 -0
  262. package/build/client/_app/immutable/nodes/31.SiZTd523.js +2 -0
  263. package/build/client/_app/immutable/nodes/31.SiZTd523.js.br +0 -0
  264. package/build/client/_app/immutable/nodes/31.SiZTd523.js.gz +0 -0
  265. package/build/client/_app/immutable/nodes/32.9Ta_FSIA.js +3 -0
  266. package/build/client/_app/immutable/nodes/32.9Ta_FSIA.js.br +0 -0
  267. package/build/client/_app/immutable/nodes/32.9Ta_FSIA.js.gz +0 -0
  268. package/build/client/_app/immutable/nodes/5.CbYguvwB.js +1 -0
  269. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.br +2 -0
  270. package/build/client/_app/immutable/nodes/5.CbYguvwB.js.gz +0 -0
  271. package/build/client/_app/immutable/nodes/6.DZgUvAex.js +1 -0
  272. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.br +0 -0
  273. package/build/client/_app/immutable/nodes/6.DZgUvAex.js.gz +0 -0
  274. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js +1 -0
  275. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.br +0 -0
  276. package/build/client/_app/immutable/nodes/7.Cv7r8DBm.js.gz +0 -0
  277. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js +2 -0
  278. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.br +0 -0
  279. package/build/client/_app/immutable/nodes/8.zr3bqaC_.js.gz +0 -0
  280. package/build/client/_app/immutable/nodes/9.B2PU0xej.js +1 -0
  281. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.br +0 -0
  282. package/build/client/_app/immutable/nodes/9.B2PU0xej.js.gz +0 -0
  283. package/build/client/_app/version.json +1 -1
  284. package/build/client/_app/version.json.br +0 -0
  285. package/build/client/_app/version.json.gz +0 -0
  286. package/build/server/chunks/0-v49L2HZX.js +55 -0
  287. package/build/server/chunks/0-v49L2HZX.js.map +1 -0
  288. package/build/server/chunks/1-B8xC9fBg.js +9 -0
  289. package/build/server/chunks/1-B8xC9fBg.js.map +1 -0
  290. package/build/server/chunks/10-BowWygfm.js +222 -0
  291. package/build/server/chunks/10-BowWygfm.js.map +1 -0
  292. package/build/server/chunks/11-BLjiJpX4.js +58 -0
  293. package/build/server/chunks/11-BLjiJpX4.js.map +1 -0
  294. package/build/server/chunks/12-Dk9nDvlV.js +52 -0
  295. package/build/server/chunks/12-Dk9nDvlV.js.map +1 -0
  296. package/build/server/chunks/13-CZeQX-Gk.js +57 -0
  297. package/build/server/chunks/13-CZeQX-Gk.js.map +1 -0
  298. package/build/server/chunks/14-VgzSpObZ.js +100 -0
  299. package/build/server/chunks/14-VgzSpObZ.js.map +1 -0
  300. package/build/server/chunks/15-CKqEgZmF.js +44 -0
  301. package/build/server/chunks/15-CKqEgZmF.js.map +1 -0
  302. package/build/server/chunks/16-9hO-6bzO.js +85 -0
  303. package/build/server/chunks/16-9hO-6bzO.js.map +1 -0
  304. package/build/server/chunks/17-B9Aw6HdC.js +9 -0
  305. package/build/server/chunks/17-B9Aw6HdC.js.map +1 -0
  306. package/build/server/chunks/18-BTSLWMQT.js +74 -0
  307. package/build/server/chunks/18-BTSLWMQT.js.map +1 -0
  308. package/build/server/chunks/19-C9FaW__N.js +94 -0
  309. package/build/server/chunks/19-C9FaW__N.js.map +1 -0
  310. package/build/server/chunks/2-CwQhh3Hg.js +43 -0
  311. package/build/server/chunks/2-CwQhh3Hg.js.map +1 -0
  312. package/build/server/chunks/20-52YCUMK3.js +196 -0
  313. package/build/server/chunks/20-52YCUMK3.js.map +1 -0
  314. package/build/server/chunks/21-Dcz_2iKy.js +83 -0
  315. package/build/server/chunks/21-Dcz_2iKy.js.map +1 -0
  316. package/build/server/chunks/23-C-gTGofY.js +137 -0
  317. package/build/server/chunks/23-C-gTGofY.js.map +1 -0
  318. package/build/server/chunks/24-ukwP0nYw.js +144 -0
  319. package/build/server/chunks/24-ukwP0nYw.js.map +1 -0
  320. package/build/server/chunks/25-Oe01GQUn.js +51 -0
  321. package/build/server/chunks/25-Oe01GQUn.js.map +1 -0
  322. package/build/server/chunks/26-Bfl58Hw3.js +9 -0
  323. package/build/server/chunks/26-Bfl58Hw3.js.map +1 -0
  324. package/build/server/chunks/27-C9kRY1qj.js +57 -0
  325. package/build/server/chunks/27-C9kRY1qj.js.map +1 -0
  326. package/build/server/chunks/28-X583jLPJ.js +69 -0
  327. package/build/server/chunks/28-X583jLPJ.js.map +1 -0
  328. package/build/server/chunks/29-PJhSN-Wu.js +55 -0
  329. package/build/server/chunks/29-PJhSN-Wu.js.map +1 -0
  330. package/build/server/chunks/3-DZiroZZA.js +9 -0
  331. package/build/server/chunks/3-DZiroZZA.js.map +1 -0
  332. package/build/server/chunks/30-DvqVphAd.js +57 -0
  333. package/build/server/chunks/30-DvqVphAd.js.map +1 -0
  334. package/build/server/chunks/31-BefyQf51.js +42 -0
  335. package/build/server/chunks/31-BefyQf51.js.map +1 -0
  336. package/build/server/chunks/32-DIdNQgym.js +34 -0
  337. package/build/server/chunks/32-DIdNQgym.js.map +1 -0
  338. package/build/server/chunks/5-QlPeCe4d.js +32 -0
  339. package/build/server/chunks/5-QlPeCe4d.js.map +1 -0
  340. package/build/server/chunks/6-3t8NszBJ.js +40 -0
  341. package/build/server/chunks/6-3t8NszBJ.js.map +1 -0
  342. package/build/server/chunks/7-DgFxSLWj.js +19 -0
  343. package/build/server/chunks/7-DgFxSLWj.js.map +1 -0
  344. package/build/server/chunks/8-BKivPkMd.js +130 -0
  345. package/build/server/chunks/8-BKivPkMd.js.map +1 -0
  346. package/build/server/chunks/9-COv3kpjW.js +46 -0
  347. package/build/server/chunks/9-COv3kpjW.js.map +1 -0
  348. package/build/server/chunks/AppHeader-DBNR_OCa.js +271 -0
  349. package/build/server/chunks/AppHeader-DBNR_OCa.js.map +1 -0
  350. package/build/server/chunks/DefinitionCard-BeONTmrJ.js +258 -0
  351. package/build/server/chunks/DefinitionCard-BeONTmrJ.js.map +1 -0
  352. package/build/server/chunks/ErrorScreen-SHK14bo6.js +131 -0
  353. package/build/server/chunks/ErrorScreen-SHK14bo6.js.map +1 -0
  354. package/build/server/chunks/FilterableDropdown-W9AjyS0M.js +61 -0
  355. package/build/server/chunks/FilterableDropdown-W9AjyS0M.js.map +1 -0
  356. package/build/server/chunks/Icon-DbkwAOkZ.js +76 -0
  357. package/build/server/chunks/Icon-DbkwAOkZ.js.map +1 -0
  358. package/build/server/chunks/Icon2-DbkwAOkZ.js +76 -0
  359. package/build/server/chunks/Icon2-DbkwAOkZ.js.map +1 -0
  360. package/build/server/chunks/StatCard-Cj4i7_IY.js +50 -0
  361. package/build/server/chunks/StatCard-Cj4i7_IY.js.map +1 -0
  362. package/build/server/chunks/UserChip-CCZ9yMM3.js +1149 -0
  363. package/build/server/chunks/UserChip-CCZ9yMM3.js.map +1 -0
  364. package/build/server/chunks/_error.svelte-B_dLYaey.js +30 -0
  365. package/build/server/chunks/_error.svelte-B_dLYaey.js.map +1 -0
  366. package/build/server/chunks/_error.svelte-D_qATeW2.js +28 -0
  367. package/build/server/chunks/_error.svelte-D_qATeW2.js.map +1 -0
  368. package/build/server/chunks/_layout.svelte-CgAG7l2U.js +152 -0
  369. package/build/server/chunks/_layout.svelte-CgAG7l2U.js.map +1 -0
  370. package/build/server/chunks/_layout.svelte-Cjs-r7Xa.js +105 -0
  371. package/build/server/chunks/_layout.svelte-Cjs-r7Xa.js.map +1 -0
  372. package/build/server/chunks/_layout.svelte-DU36kuy0.js +1042 -0
  373. package/build/server/chunks/_layout.svelte-DU36kuy0.js.map +1 -0
  374. package/build/server/chunks/_layout.svelte-VEFMEljC.js +42 -0
  375. package/build/server/chunks/_layout.svelte-VEFMEljC.js.map +1 -0
  376. package/build/server/chunks/_page.svelte-1sc1cfuW.js +453 -0
  377. package/build/server/chunks/_page.svelte-1sc1cfuW.js.map +1 -0
  378. package/build/server/chunks/_page.svelte-2a3XlI01.js +120 -0
  379. package/build/server/chunks/_page.svelte-2a3XlI01.js.map +1 -0
  380. package/build/server/chunks/_page.svelte-BLjq8C2p.js +611 -0
  381. package/build/server/chunks/_page.svelte-BLjq8C2p.js.map +1 -0
  382. package/build/server/chunks/_page.svelte-BQZ-qC72.js +424 -0
  383. package/build/server/chunks/_page.svelte-BQZ-qC72.js.map +1 -0
  384. package/build/server/chunks/_page.svelte-BXQInprQ.js +275 -0
  385. package/build/server/chunks/_page.svelte-BXQInprQ.js.map +1 -0
  386. package/build/server/chunks/_page.svelte-BziMQdom.js +114 -0
  387. package/build/server/chunks/_page.svelte-BziMQdom.js.map +1 -0
  388. package/build/server/chunks/_page.svelte-CSZEgmHp.js +169 -0
  389. package/build/server/chunks/_page.svelte-CSZEgmHp.js.map +1 -0
  390. package/build/server/chunks/_page.svelte-CYxHCZCC.js +84 -0
  391. package/build/server/chunks/_page.svelte-CYxHCZCC.js.map +1 -0
  392. package/build/server/chunks/_page.svelte-CckrYvJ6.js +147 -0
  393. package/build/server/chunks/_page.svelte-CckrYvJ6.js.map +1 -0
  394. package/build/server/chunks/_page.svelte-CeKqqMje.js +250 -0
  395. package/build/server/chunks/_page.svelte-CeKqqMje.js.map +1 -0
  396. package/build/server/chunks/_page.svelte-Cf8MfOXQ.js +596 -0
  397. package/build/server/chunks/_page.svelte-Cf8MfOXQ.js.map +1 -0
  398. package/build/server/chunks/_page.svelte-CxuFmBkK.js +302 -0
  399. package/build/server/chunks/_page.svelte-CxuFmBkK.js.map +1 -0
  400. package/build/server/chunks/_page.svelte-DIeTvNzN.js +69 -0
  401. package/build/server/chunks/_page.svelte-DIeTvNzN.js.map +1 -0
  402. package/build/server/chunks/_page.svelte-DJnICJdZ.js +10654 -0
  403. package/build/server/chunks/_page.svelte-DJnICJdZ.js.map +1 -0
  404. package/build/server/chunks/_page.svelte-DSPm244d.js +526 -0
  405. package/build/server/chunks/_page.svelte-DSPm244d.js.map +1 -0
  406. package/build/server/chunks/_page.svelte-DSYaUquf.js +3898 -0
  407. package/build/server/chunks/_page.svelte-DSYaUquf.js.map +1 -0
  408. package/build/server/chunks/_page.svelte-DlnKE8Z9.js +894 -0
  409. package/build/server/chunks/_page.svelte-DlnKE8Z9.js.map +1 -0
  410. package/build/server/chunks/_page.svelte-DphuJQee.js +331 -0
  411. package/build/server/chunks/_page.svelte-DphuJQee.js.map +1 -0
  412. package/build/server/chunks/_page.svelte-Dun4nEWl.js +277 -0
  413. package/build/server/chunks/_page.svelte-Dun4nEWl.js.map +1 -0
  414. package/build/server/chunks/_page.svelte-ELmid_qG.js +120 -0
  415. package/build/server/chunks/_page.svelte-ELmid_qG.js.map +1 -0
  416. package/build/server/chunks/_page.svelte-Mwitq0vD.js +330 -0
  417. package/build/server/chunks/_page.svelte-Mwitq0vD.js.map +1 -0
  418. package/build/server/chunks/_page.svelte-UNbcR5Wq.js +715 -0
  419. package/build/server/chunks/_page.svelte-UNbcR5Wq.js.map +1 -0
  420. package/build/server/chunks/_page.svelte-XLccLxWu.js +558 -0
  421. package/build/server/chunks/_page.svelte-XLccLxWu.js.map +1 -0
  422. package/build/server/chunks/_page.svelte-pEdM2bKS.js +57 -0
  423. package/build/server/chunks/_page.svelte-pEdM2bKS.js.map +1 -0
  424. package/build/server/chunks/_server.ts-17aVSHOa.js +80 -0
  425. package/build/server/chunks/_server.ts-17aVSHOa.js.map +1 -0
  426. package/build/server/chunks/_server.ts-4eVxyBg6.js +96 -0
  427. package/build/server/chunks/_server.ts-4eVxyBg6.js.map +1 -0
  428. package/build/server/chunks/_server.ts-8ahOmk_6.js +75 -0
  429. package/build/server/chunks/_server.ts-8ahOmk_6.js.map +1 -0
  430. package/build/server/chunks/_server.ts-B0qq-nxh.js +86 -0
  431. package/build/server/chunks/_server.ts-B0qq-nxh.js.map +1 -0
  432. package/build/server/chunks/_server.ts-B7X5-4kS.js +40 -0
  433. package/build/server/chunks/_server.ts-B7X5-4kS.js.map +1 -0
  434. package/build/server/chunks/_server.ts-B7Z1RMy4.js +73 -0
  435. package/build/server/chunks/_server.ts-B7Z1RMy4.js.map +1 -0
  436. package/build/server/chunks/_server.ts-BL7-YPnc.js +41 -0
  437. package/build/server/chunks/_server.ts-BL7-YPnc.js.map +1 -0
  438. package/build/server/chunks/_server.ts-BRjl7H1o.js +44 -0
  439. package/build/server/chunks/_server.ts-BRjl7H1o.js.map +1 -0
  440. package/build/server/chunks/_server.ts-B_KQteIy.js +41 -0
  441. package/build/server/chunks/_server.ts-B_KQteIy.js.map +1 -0
  442. package/build/server/chunks/_server.ts-BiJbME_l.js +101 -0
  443. package/build/server/chunks/_server.ts-BiJbME_l.js.map +1 -0
  444. package/build/server/chunks/_server.ts-Bq2BT6_L.js +84 -0
  445. package/build/server/chunks/_server.ts-Bq2BT6_L.js.map +1 -0
  446. package/build/server/chunks/_server.ts-BqsgEogJ.js +88 -0
  447. package/build/server/chunks/_server.ts-BqsgEogJ.js.map +1 -0
  448. package/build/server/chunks/_server.ts-BtXdHfbr.js +83 -0
  449. package/build/server/chunks/_server.ts-BtXdHfbr.js.map +1 -0
  450. package/build/server/chunks/_server.ts-ByqZZZxB.js +35 -0
  451. package/build/server/chunks/_server.ts-ByqZZZxB.js.map +1 -0
  452. package/build/server/chunks/_server.ts-C-8S5O0H.js +60 -0
  453. package/build/server/chunks/_server.ts-C-8S5O0H.js.map +1 -0
  454. package/build/server/chunks/_server.ts-C1wqbTiL.js +31 -0
  455. package/build/server/chunks/_server.ts-C1wqbTiL.js.map +1 -0
  456. package/build/server/chunks/_server.ts-C3sOwl5l.js +72 -0
  457. package/build/server/chunks/_server.ts-C3sOwl5l.js.map +1 -0
  458. package/build/server/chunks/_server.ts-CKvfxWeo.js +108 -0
  459. package/build/server/chunks/_server.ts-CKvfxWeo.js.map +1 -0
  460. package/build/server/chunks/_server.ts-CMKxt34Z.js +50 -0
  461. package/build/server/chunks/_server.ts-CMKxt34Z.js.map +1 -0
  462. package/build/server/chunks/_server.ts-COWH7HN8.js +39 -0
  463. package/build/server/chunks/_server.ts-COWH7HN8.js.map +1 -0
  464. package/build/server/chunks/_server.ts-CUcFObAP.js +410 -0
  465. package/build/server/chunks/_server.ts-CUcFObAP.js.map +1 -0
  466. package/build/server/chunks/_server.ts-CW_1VZGk.js +43 -0
  467. package/build/server/chunks/_server.ts-CW_1VZGk.js.map +1 -0
  468. package/build/server/chunks/_server.ts-CXYPZtry.js +33 -0
  469. package/build/server/chunks/_server.ts-CXYPZtry.js.map +1 -0
  470. package/build/server/chunks/_server.ts-Cbe4naEr.js +39 -0
  471. package/build/server/chunks/_server.ts-Cbe4naEr.js.map +1 -0
  472. package/build/server/chunks/_server.ts-D4mOhrFH.js +31 -0
  473. package/build/server/chunks/_server.ts-D4mOhrFH.js.map +1 -0
  474. package/build/server/chunks/_server.ts-DK7t4rlY.js +77 -0
  475. package/build/server/chunks/_server.ts-DK7t4rlY.js.map +1 -0
  476. package/build/server/chunks/_server.ts-DMnMoi_a.js +83 -0
  477. package/build/server/chunks/_server.ts-DMnMoi_a.js.map +1 -0
  478. package/build/server/chunks/_server.ts-DgTNMZbG.js +111 -0
  479. package/build/server/chunks/_server.ts-DgTNMZbG.js.map +1 -0
  480. package/build/server/chunks/_server.ts-DpkIJe-d.js +63 -0
  481. package/build/server/chunks/_server.ts-DpkIJe-d.js.map +1 -0
  482. package/build/server/chunks/_server.ts-DsFj_8lL.js +32 -0
  483. package/build/server/chunks/_server.ts-DsFj_8lL.js.map +1 -0
  484. package/build/server/chunks/_server.ts-Dsoq_gsI.js +65 -0
  485. package/build/server/chunks/_server.ts-Dsoq_gsI.js.map +1 -0
  486. package/build/server/chunks/_server.ts-Du-NpBy4.js +57 -0
  487. package/build/server/chunks/_server.ts-Du-NpBy4.js.map +1 -0
  488. package/build/server/chunks/_server.ts-Dukt2veu.js +33 -0
  489. package/build/server/chunks/_server.ts-Dukt2veu.js.map +1 -0
  490. package/build/server/chunks/_server.ts-EnuOtr_j.js +307 -0
  491. package/build/server/chunks/_server.ts-EnuOtr_j.js.map +1 -0
  492. package/build/server/chunks/_server.ts-ODEutN30.js +75 -0
  493. package/build/server/chunks/_server.ts-ODEutN30.js.map +1 -0
  494. package/build/server/chunks/_server.ts-bONEWPMV.js +105 -0
  495. package/build/server/chunks/_server.ts-bONEWPMV.js.map +1 -0
  496. package/build/server/chunks/_server.ts-hg9WxMNg.js +36 -0
  497. package/build/server/chunks/_server.ts-hg9WxMNg.js.map +1 -0
  498. package/build/server/chunks/_server.ts-t9_veBtJ.js +40 -0
  499. package/build/server/chunks/_server.ts-t9_veBtJ.js.map +1 -0
  500. package/build/server/chunks/_server.ts-vURDyV-V.js +51 -0
  501. package/build/server/chunks/_server.ts-vURDyV-V.js.map +1 -0
  502. package/build/server/chunks/access.server-BBglojso.js +413 -0
  503. package/build/server/chunks/access.server-BBglojso.js.map +1 -0
  504. package/build/server/chunks/activity-BjtW_4T-.js +18 -0
  505. package/build/server/chunks/activity-BjtW_4T-.js.map +1 -0
  506. package/build/server/chunks/alert-description-CUK0afmb.js +59 -0
  507. package/build/server/chunks/alert-description-CUK0afmb.js.map +1 -0
  508. package/build/server/chunks/api-errors-agQVBoep.js +101 -0
  509. package/build/server/chunks/api-errors-agQVBoep.js.map +1 -0
  510. package/build/server/chunks/arrow-left-D0KqaESK.js +14 -0
  511. package/build/server/chunks/arrow-left-D0KqaESK.js.map +1 -0
  512. package/build/server/chunks/arrow-right-Bi1uWbBU.js +14 -0
  513. package/build/server/chunks/arrow-right-Bi1uWbBU.js.map +1 -0
  514. package/build/server/chunks/auth-bootstrap.server-CdwMOcYI.js +98 -0
  515. package/build/server/chunks/auth-bootstrap.server-CdwMOcYI.js.map +1 -0
  516. package/build/server/chunks/badge-Dslv369v.js +50 -0
  517. package/build/server/chunks/badge-Dslv369v.js.map +1 -0
  518. package/build/server/chunks/bootHealth.server-Ca8zFRpM.js +58 -0
  519. package/build/server/chunks/bootHealth.server-Ca8zFRpM.js.map +1 -0
  520. package/build/server/chunks/building-2-DJFEkZmC.js +22 -0
  521. package/build/server/chunks/building-2-DJFEkZmC.js.map +1 -0
  522. package/build/server/chunks/button-1GF48U_O.js +73 -0
  523. package/build/server/chunks/button-1GF48U_O.js.map +1 -0
  524. package/build/server/chunks/card-content-CLRedGcu.js +46 -0
  525. package/build/server/chunks/card-content-CLRedGcu.js.map +1 -0
  526. package/build/server/chunks/card-description-Cvz9Nl_J.js +26 -0
  527. package/build/server/chunks/card-description-Cvz9Nl_J.js.map +1 -0
  528. package/build/server/chunks/card-title-f3nMy4Cc.js +46 -0
  529. package/build/server/chunks/card-title-f3nMy4Cc.js.map +1 -0
  530. package/build/server/chunks/chevron-down-Cqowxf45.js +11 -0
  531. package/build/server/chunks/chevron-down-Cqowxf45.js.map +1 -0
  532. package/build/server/chunks/chevron-down2-HiD5tdXf.js +11 -0
  533. package/build/server/chunks/chevron-down2-HiD5tdXf.js.map +1 -0
  534. package/build/server/chunks/chevron-right-BZ8x48EK.js +11 -0
  535. package/build/server/chunks/chevron-right-BZ8x48EK.js.map +1 -0
  536. package/build/server/chunks/circle-CeSIvmWj.js +11 -0
  537. package/build/server/chunks/circle-CeSIvmWj.js.map +1 -0
  538. package/build/server/chunks/circle-alert-DNsq-x3V.js +18 -0
  539. package/build/server/chunks/circle-alert-DNsq-x3V.js.map +1 -0
  540. package/build/server/chunks/circle-alert2-Doldk45G.js +18 -0
  541. package/build/server/chunks/circle-alert2-Doldk45G.js.map +1 -0
  542. package/build/server/chunks/context-DKDYb-He.js +138 -0
  543. package/build/server/chunks/context-DKDYb-He.js.map +1 -0
  544. package/build/server/chunks/copy-DbzeZFQN.js +29 -0
  545. package/build/server/chunks/copy-DbzeZFQN.js.map +1 -0
  546. package/build/server/chunks/folder-kanban-BzEQk9ZB.js +21 -0
  547. package/build/server/chunks/folder-kanban-BzEQk9ZB.js.map +1 -0
  548. package/build/server/chunks/folder-open-CUgA3M22.js +18 -0
  549. package/build/server/chunks/folder-open-CUgA3M22.js.map +1 -0
  550. package/build/server/chunks/folders-DPJPvoz3.js +24 -0
  551. package/build/server/chunks/folders-DPJPvoz3.js.map +1 -0
  552. package/build/server/chunks/footerContext.svelte-BZEf7gVw.js +487 -0
  553. package/build/server/chunks/footerContext.svelte-BZEf7gVw.js.map +1 -0
  554. package/build/server/chunks/gauge-Az8B3w7C.js +87 -0
  555. package/build/server/chunks/gauge-Az8B3w7C.js.map +1 -0
  556. package/build/server/chunks/hooks.server-D6EnLMoG.js +218 -0
  557. package/build/server/chunks/hooks.server-D6EnLMoG.js.map +1 -0
  558. package/build/server/chunks/index2-B9qXYHIn.js +438 -0
  559. package/build/server/chunks/index2-B9qXYHIn.js.map +1 -0
  560. package/build/server/chunks/index3-AGemCGcn.js +4388 -0
  561. package/build/server/chunks/index3-AGemCGcn.js.map +1 -0
  562. package/build/server/chunks/index4-DSWKKOFB.js +541 -0
  563. package/build/server/chunks/index4-DSWKKOFB.js.map +1 -0
  564. package/build/server/chunks/input-DGJ03-ia.js +53 -0
  565. package/build/server/chunks/input-DGJ03-ia.js.map +1 -0
  566. package/build/server/chunks/label-Df1UqzdF.js +112 -0
  567. package/build/server/chunks/label-Df1UqzdF.js.map +1 -0
  568. package/build/server/chunks/link-2-dxaDBYcR.js +15 -0
  569. package/build/server/chunks/link-2-dxaDBYcR.js.map +1 -0
  570. package/build/server/chunks/mail-CXBfO_C7.js +17 -0
  571. package/build/server/chunks/mail-CXBfO_C7.js.map +1 -0
  572. package/build/server/chunks/permissions-compat.server-BDkKxDeZ.js +19 -0
  573. package/build/server/chunks/permissions-compat.server-BDkKxDeZ.js.map +1 -0
  574. package/build/server/chunks/permissions.server-cNGc9ris.js +8 -0
  575. package/build/server/chunks/permissions.server-cNGc9ris.js.map +1 -0
  576. package/build/server/chunks/plus-CY_pTStn.js +11 -0
  577. package/build/server/chunks/plus-CY_pTStn.js.map +1 -0
  578. package/build/server/chunks/providers.server-MD7TK-zQ.js +4561 -0
  579. package/build/server/chunks/providers.server-MD7TK-zQ.js.map +1 -0
  580. package/build/server/chunks/refresh-cw-CiiW6Kvx.js +22 -0
  581. package/build/server/chunks/refresh-cw-CiiW6Kvx.js.map +1 -0
  582. package/build/server/chunks/resolve.server-BXKCfGfg.js +50 -0
  583. package/build/server/chunks/resolve.server-BXKCfGfg.js.map +1 -0
  584. package/build/server/chunks/rotate-ccw-1C53L417.js +17 -0
  585. package/build/server/chunks/rotate-ccw-1C53L417.js.map +1 -0
  586. package/build/server/chunks/scroll-text-CxtFfkcE.js +21 -0
  587. package/build/server/chunks/scroll-text-CxtFfkcE.js.map +1 -0
  588. package/build/server/chunks/server-C3-deqCy.js +36 -0
  589. package/build/server/chunks/server-C3-deqCy.js.map +1 -0
  590. package/build/server/chunks/settings-NH5q_HtF.js +19 -0
  591. package/build/server/chunks/settings-NH5q_HtF.js.map +1 -0
  592. package/build/server/chunks/shield-CHAFruKV.js +18 -0
  593. package/build/server/chunks/shield-CHAFruKV.js.map +1 -0
  594. package/build/server/chunks/shield-check-06Iz62as.js +19 -0
  595. package/build/server/chunks/shield-check-06Iz62as.js.map +1 -0
  596. package/build/server/chunks/star-bmBg3IsG.js +18 -0
  597. package/build/server/chunks/star-bmBg3IsG.js.map +1 -0
  598. package/build/server/chunks/textarea-A5IYPwqe.js +685 -0
  599. package/build/server/chunks/textarea-A5IYPwqe.js.map +1 -0
  600. package/build/server/chunks/trash-2-swQcKEqX.js +17 -0
  601. package/build/server/chunks/trash-2-swQcKEqX.js.map +1 -0
  602. package/build/server/chunks/triangle-alert-DuaFagu6.js +20 -0
  603. package/build/server/chunks/triangle-alert-DuaFagu6.js.map +1 -0
  604. package/build/server/chunks/upload-BY_p_jpL.js +36 -0
  605. package/build/server/chunks/upload-BY_p_jpL.js.map +1 -0
  606. package/build/server/chunks/user-plus-CPEDH5dh.js +16 -0
  607. package/build/server/chunks/user-plus-CPEDH5dh.js.map +1 -0
  608. package/build/server/chunks/users-Bd7CKN4d.js +16 -0
  609. package/build/server/chunks/users-Bd7CKN4d.js.map +1 -0
  610. package/build/server/chunks/utils2-D38XWwRv.js +56 -0
  611. package/build/server/chunks/utils2-D38XWwRv.js.map +1 -0
  612. package/build/server/chunks/utils3-B05Dmz_H.js +9 -0
  613. package/build/server/chunks/utils3-B05Dmz_H.js.map +1 -0
  614. package/build/server/chunks/x-e5o-84bg.js +14 -0
  615. package/build/server/chunks/x-e5o-84bg.js.map +1 -0
  616. package/build/server/index.js +2 -2
  617. package/build/server/index.js.map +1 -1
  618. package/build/server/manifest.js +77 -70
  619. package/build/server/manifest.js.map +1 -1
  620. package/package.json +7 -7
  621. package/build/client/_app/immutable/assets/0.B0phAlf7.css +0 -1
  622. package/build/client/_app/immutable/assets/0.B0phAlf7.css.br +0 -0
  623. package/build/client/_app/immutable/assets/0.B0phAlf7.css.gz +0 -0
  624. package/build/client/_app/immutable/assets/20.DzF5JyuX.css +0 -1
  625. package/build/client/_app/immutable/assets/20.DzF5JyuX.css.br +0 -0
  626. package/build/client/_app/immutable/assets/20.DzF5JyuX.css.gz +0 -0
  627. package/build/client/_app/immutable/chunks/2BnY_oab.js +0 -1
  628. package/build/client/_app/immutable/chunks/2BnY_oab.js.br +0 -0
  629. package/build/client/_app/immutable/chunks/2BnY_oab.js.gz +0 -0
  630. package/build/client/_app/immutable/chunks/5h7wo9xN.js +0 -1
  631. package/build/client/_app/immutable/chunks/5h7wo9xN.js.br +0 -0
  632. package/build/client/_app/immutable/chunks/5h7wo9xN.js.gz +0 -0
  633. package/build/client/_app/immutable/chunks/B3KcsPFR.js +0 -1
  634. package/build/client/_app/immutable/chunks/B3KcsPFR.js.br +0 -0
  635. package/build/client/_app/immutable/chunks/B3KcsPFR.js.gz +0 -0
  636. package/build/client/_app/immutable/chunks/B48NJnzU.js +0 -1
  637. package/build/client/_app/immutable/chunks/B48NJnzU.js.br +0 -0
  638. package/build/client/_app/immutable/chunks/B48NJnzU.js.gz +0 -0
  639. package/build/client/_app/immutable/chunks/B5HD-6Ib.js +0 -1
  640. package/build/client/_app/immutable/chunks/B5HD-6Ib.js.br +0 -0
  641. package/build/client/_app/immutable/chunks/B5HD-6Ib.js.gz +0 -0
  642. package/build/client/_app/immutable/chunks/BDpsQuxH.js +0 -1
  643. package/build/client/_app/immutable/chunks/BDpsQuxH.js.br +0 -0
  644. package/build/client/_app/immutable/chunks/BDpsQuxH.js.gz +0 -0
  645. package/build/client/_app/immutable/chunks/BEya8QN5.js +0 -1
  646. package/build/client/_app/immutable/chunks/BEya8QN5.js.br +0 -0
  647. package/build/client/_app/immutable/chunks/BEya8QN5.js.gz +0 -0
  648. package/build/client/_app/immutable/chunks/BH9oGrlA.js +0 -1
  649. package/build/client/_app/immutable/chunks/BH9oGrlA.js.br +0 -0
  650. package/build/client/_app/immutable/chunks/BH9oGrlA.js.gz +0 -0
  651. package/build/client/_app/immutable/chunks/BHzbkLpq.js +0 -1
  652. package/build/client/_app/immutable/chunks/BHzbkLpq.js.br +0 -0
  653. package/build/client/_app/immutable/chunks/BHzbkLpq.js.gz +0 -0
  654. package/build/client/_app/immutable/chunks/BKZ_D8Qd.js +0 -1
  655. package/build/client/_app/immutable/chunks/BKZ_D8Qd.js.br +0 -0
  656. package/build/client/_app/immutable/chunks/BKZ_D8Qd.js.gz +0 -0
  657. package/build/client/_app/immutable/chunks/BKkYsBzb.js +0 -9
  658. package/build/client/_app/immutable/chunks/BKkYsBzb.js.br +0 -0
  659. package/build/client/_app/immutable/chunks/BKkYsBzb.js.gz +0 -0
  660. package/build/client/_app/immutable/chunks/BLBezPFp.js +0 -1
  661. package/build/client/_app/immutable/chunks/BLBezPFp.js.br +0 -0
  662. package/build/client/_app/immutable/chunks/BLBezPFp.js.gz +0 -0
  663. package/build/client/_app/immutable/chunks/BMNUAT2D.js +0 -1
  664. package/build/client/_app/immutable/chunks/BMNUAT2D.js.br +0 -0
  665. package/build/client/_app/immutable/chunks/BMNUAT2D.js.gz +0 -0
  666. package/build/client/_app/immutable/chunks/BNs1__IY.js +0 -1
  667. package/build/client/_app/immutable/chunks/BNs1__IY.js.br +0 -0
  668. package/build/client/_app/immutable/chunks/BNs1__IY.js.gz +0 -0
  669. package/build/client/_app/immutable/chunks/Ba74WbdD.js +0 -1
  670. package/build/client/_app/immutable/chunks/Ba74WbdD.js.br +0 -0
  671. package/build/client/_app/immutable/chunks/Ba74WbdD.js.gz +0 -0
  672. package/build/client/_app/immutable/chunks/Bex2dy3F.js +0 -1
  673. package/build/client/_app/immutable/chunks/Bex2dy3F.js.br +0 -0
  674. package/build/client/_app/immutable/chunks/Bex2dy3F.js.gz +0 -0
  675. package/build/client/_app/immutable/chunks/BfraRswf.js +0 -1
  676. package/build/client/_app/immutable/chunks/BfraRswf.js.br +0 -0
  677. package/build/client/_app/immutable/chunks/BfraRswf.js.gz +0 -0
  678. package/build/client/_app/immutable/chunks/BhwCS4j8.js +0 -1
  679. package/build/client/_app/immutable/chunks/BhwCS4j8.js.br +0 -0
  680. package/build/client/_app/immutable/chunks/BhwCS4j8.js.gz +0 -0
  681. package/build/client/_app/immutable/chunks/BjB88iwt.js +0 -1
  682. package/build/client/_app/immutable/chunks/BjB88iwt.js.br +0 -0
  683. package/build/client/_app/immutable/chunks/BjB88iwt.js.gz +0 -0
  684. package/build/client/_app/immutable/chunks/BsZHa2Wi.js +0 -1
  685. package/build/client/_app/immutable/chunks/BsZHa2Wi.js.br +0 -0
  686. package/build/client/_app/immutable/chunks/BsZHa2Wi.js.gz +0 -0
  687. package/build/client/_app/immutable/chunks/C5BR2Ers.js +0 -1
  688. package/build/client/_app/immutable/chunks/C5BR2Ers.js.br +0 -0
  689. package/build/client/_app/immutable/chunks/C5BR2Ers.js.gz +0 -0
  690. package/build/client/_app/immutable/chunks/CBjt6cm5.js +0 -1
  691. package/build/client/_app/immutable/chunks/CBjt6cm5.js.br +0 -1
  692. package/build/client/_app/immutable/chunks/CBjt6cm5.js.gz +0 -0
  693. package/build/client/_app/immutable/chunks/CE8BcsFf.js +0 -1
  694. package/build/client/_app/immutable/chunks/CE8BcsFf.js.br +0 -0
  695. package/build/client/_app/immutable/chunks/CE8BcsFf.js.gz +0 -0
  696. package/build/client/_app/immutable/chunks/CJPg7PqR.js +0 -1
  697. package/build/client/_app/immutable/chunks/CJPg7PqR.js.br +0 -0
  698. package/build/client/_app/immutable/chunks/CJPg7PqR.js.gz +0 -0
  699. package/build/client/_app/immutable/chunks/CKPgdp0v.js +0 -1
  700. package/build/client/_app/immutable/chunks/CKPgdp0v.js.br +0 -0
  701. package/build/client/_app/immutable/chunks/CKPgdp0v.js.gz +0 -0
  702. package/build/client/_app/immutable/chunks/CMh2kjaf.js +0 -1
  703. package/build/client/_app/immutable/chunks/CMh2kjaf.js.br +0 -0
  704. package/build/client/_app/immutable/chunks/CMh2kjaf.js.gz +0 -0
  705. package/build/client/_app/immutable/chunks/COWz2et1.js +0 -1
  706. package/build/client/_app/immutable/chunks/COWz2et1.js.br +0 -0
  707. package/build/client/_app/immutable/chunks/COWz2et1.js.gz +0 -0
  708. package/build/client/_app/immutable/chunks/CQerFpzT.js +0 -1
  709. package/build/client/_app/immutable/chunks/CQerFpzT.js.br +0 -0
  710. package/build/client/_app/immutable/chunks/CQerFpzT.js.gz +0 -0
  711. package/build/client/_app/immutable/chunks/Cauzi832.js +0 -1
  712. package/build/client/_app/immutable/chunks/Cauzi832.js.br +0 -0
  713. package/build/client/_app/immutable/chunks/Cauzi832.js.gz +0 -0
  714. package/build/client/_app/immutable/chunks/CcBbOJ-v.js +0 -1
  715. package/build/client/_app/immutable/chunks/CcBbOJ-v.js.br +0 -2
  716. package/build/client/_app/immutable/chunks/CcBbOJ-v.js.gz +0 -0
  717. package/build/client/_app/immutable/chunks/Ckd6DpGW.js +0 -1
  718. package/build/client/_app/immutable/chunks/Ckd6DpGW.js.br +0 -0
  719. package/build/client/_app/immutable/chunks/Ckd6DpGW.js.gz +0 -0
  720. package/build/client/_app/immutable/chunks/Ctxx2m1z.js +0 -3
  721. package/build/client/_app/immutable/chunks/Ctxx2m1z.js.br +0 -0
  722. package/build/client/_app/immutable/chunks/Ctxx2m1z.js.gz +0 -0
  723. package/build/client/_app/immutable/chunks/CwEiVMBL.js +0 -1
  724. package/build/client/_app/immutable/chunks/CwEiVMBL.js.br +0 -0
  725. package/build/client/_app/immutable/chunks/CwEiVMBL.js.gz +0 -0
  726. package/build/client/_app/immutable/chunks/DApsykQI.js +0 -1
  727. package/build/client/_app/immutable/chunks/DApsykQI.js.br +0 -0
  728. package/build/client/_app/immutable/chunks/DApsykQI.js.gz +0 -0
  729. package/build/client/_app/immutable/chunks/DC8WqQE0.js +0 -1
  730. package/build/client/_app/immutable/chunks/DC8WqQE0.js.br +0 -0
  731. package/build/client/_app/immutable/chunks/DC8WqQE0.js.gz +0 -0
  732. package/build/client/_app/immutable/chunks/DCgyaAAq.js +0 -1
  733. package/build/client/_app/immutable/chunks/DCgyaAAq.js.br +0 -0
  734. package/build/client/_app/immutable/chunks/DCgyaAAq.js.gz +0 -0
  735. package/build/client/_app/immutable/chunks/DFnVpznB.js +0 -1
  736. package/build/client/_app/immutable/chunks/DFnVpznB.js.br +0 -4
  737. package/build/client/_app/immutable/chunks/DFnVpznB.js.gz +0 -0
  738. package/build/client/_app/immutable/chunks/DH_OLMrQ.js +0 -1
  739. package/build/client/_app/immutable/chunks/DH_OLMrQ.js.br +0 -0
  740. package/build/client/_app/immutable/chunks/DH_OLMrQ.js.gz +0 -0
  741. package/build/client/_app/immutable/chunks/DKP3kMac.js +0 -2
  742. package/build/client/_app/immutable/chunks/DKP3kMac.js.br +0 -0
  743. package/build/client/_app/immutable/chunks/DKP3kMac.js.gz +0 -0
  744. package/build/client/_app/immutable/chunks/DU8tQv0c.js +0 -1
  745. package/build/client/_app/immutable/chunks/DU8tQv0c.js.br +0 -0
  746. package/build/client/_app/immutable/chunks/DU8tQv0c.js.gz +0 -0
  747. package/build/client/_app/immutable/chunks/DUpVdSFf.js +0 -1
  748. package/build/client/_app/immutable/chunks/DUpVdSFf.js.br +0 -0
  749. package/build/client/_app/immutable/chunks/DUpVdSFf.js.gz +0 -0
  750. package/build/client/_app/immutable/chunks/DciO9jhd.js +0 -1
  751. package/build/client/_app/immutable/chunks/DciO9jhd.js.br +0 -0
  752. package/build/client/_app/immutable/chunks/DciO9jhd.js.gz +0 -0
  753. package/build/client/_app/immutable/chunks/DfcDRMtE.js +0 -1
  754. package/build/client/_app/immutable/chunks/DfcDRMtE.js.br +0 -0
  755. package/build/client/_app/immutable/chunks/DfcDRMtE.js.gz +0 -0
  756. package/build/client/_app/immutable/chunks/DglJwvDE.js +0 -1
  757. package/build/client/_app/immutable/chunks/DglJwvDE.js.br +0 -0
  758. package/build/client/_app/immutable/chunks/DglJwvDE.js.gz +0 -0
  759. package/build/client/_app/immutable/chunks/Dw6fzgfW.js +0 -1
  760. package/build/client/_app/immutable/chunks/Dw6fzgfW.js.br +0 -0
  761. package/build/client/_app/immutable/chunks/Dw6fzgfW.js.gz +0 -0
  762. package/build/client/_app/immutable/chunks/DzNzLgOO.js +0 -1
  763. package/build/client/_app/immutable/chunks/DzNzLgOO.js.br +0 -0
  764. package/build/client/_app/immutable/chunks/DzNzLgOO.js.gz +0 -0
  765. package/build/client/_app/immutable/chunks/E7F5LllG.js +0 -1
  766. package/build/client/_app/immutable/chunks/E7F5LllG.js.br +0 -0
  767. package/build/client/_app/immutable/chunks/E7F5LllG.js.gz +0 -0
  768. package/build/client/_app/immutable/chunks/FdBsYR_f.js +0 -1
  769. package/build/client/_app/immutable/chunks/FdBsYR_f.js.br +0 -0
  770. package/build/client/_app/immutable/chunks/FdBsYR_f.js.gz +0 -0
  771. package/build/client/_app/immutable/chunks/MJK-ocUx.js +0 -1
  772. package/build/client/_app/immutable/chunks/MJK-ocUx.js.br +0 -0
  773. package/build/client/_app/immutable/chunks/MJK-ocUx.js.gz +0 -0
  774. package/build/client/_app/immutable/chunks/NPsDidaV.js +0 -1
  775. package/build/client/_app/immutable/chunks/NPsDidaV.js.br +0 -0
  776. package/build/client/_app/immutable/chunks/NPsDidaV.js.gz +0 -0
  777. package/build/client/_app/immutable/chunks/OVtUuDzp.js +0 -1
  778. package/build/client/_app/immutable/chunks/OVtUuDzp.js.br +0 -0
  779. package/build/client/_app/immutable/chunks/OVtUuDzp.js.gz +0 -0
  780. package/build/client/_app/immutable/chunks/Qf_Lg02h.js +0 -1
  781. package/build/client/_app/immutable/chunks/Qf_Lg02h.js.br +0 -0
  782. package/build/client/_app/immutable/chunks/Qf_Lg02h.js.gz +0 -0
  783. package/build/client/_app/immutable/chunks/RmXOMQTe.js +0 -1
  784. package/build/client/_app/immutable/chunks/RmXOMQTe.js.br +0 -0
  785. package/build/client/_app/immutable/chunks/RmXOMQTe.js.gz +0 -0
  786. package/build/client/_app/immutable/chunks/X4d9Q9UP.js +0 -1
  787. package/build/client/_app/immutable/chunks/X4d9Q9UP.js.br +0 -0
  788. package/build/client/_app/immutable/chunks/X4d9Q9UP.js.gz +0 -0
  789. package/build/client/_app/immutable/chunks/lyBl2EWc.js +0 -64
  790. package/build/client/_app/immutable/chunks/lyBl2EWc.js.br +0 -0
  791. package/build/client/_app/immutable/chunks/lyBl2EWc.js.gz +0 -0
  792. package/build/client/_app/immutable/entry/app.6Pcj7C1y.js +0 -2
  793. package/build/client/_app/immutable/entry/app.6Pcj7C1y.js.br +0 -0
  794. package/build/client/_app/immutable/entry/app.6Pcj7C1y.js.gz +0 -0
  795. package/build/client/_app/immutable/entry/start.DIHLwcbZ.js +0 -1
  796. package/build/client/_app/immutable/entry/start.DIHLwcbZ.js.br +0 -0
  797. package/build/client/_app/immutable/entry/start.DIHLwcbZ.js.gz +0 -0
  798. package/build/client/_app/immutable/nodes/0.jHfSJDLC.js +0 -1
  799. package/build/client/_app/immutable/nodes/0.jHfSJDLC.js.br +0 -0
  800. package/build/client/_app/immutable/nodes/0.jHfSJDLC.js.gz +0 -0
  801. package/build/client/_app/immutable/nodes/1.BhykIdRx.js +0 -1
  802. package/build/client/_app/immutable/nodes/1.BhykIdRx.js.br +0 -0
  803. package/build/client/_app/immutable/nodes/1.BhykIdRx.js.gz +0 -0
  804. package/build/client/_app/immutable/nodes/10.CFymu_sF.js +0 -3
  805. package/build/client/_app/immutable/nodes/10.CFymu_sF.js.br +0 -0
  806. package/build/client/_app/immutable/nodes/10.CFymu_sF.js.gz +0 -0
  807. package/build/client/_app/immutable/nodes/11.DyOlzJcZ.js +0 -2
  808. package/build/client/_app/immutable/nodes/11.DyOlzJcZ.js.br +0 -0
  809. package/build/client/_app/immutable/nodes/11.DyOlzJcZ.js.gz +0 -0
  810. package/build/client/_app/immutable/nodes/12.BqHQ_pQ5.js +0 -1
  811. package/build/client/_app/immutable/nodes/12.BqHQ_pQ5.js.br +0 -0
  812. package/build/client/_app/immutable/nodes/12.BqHQ_pQ5.js.gz +0 -0
  813. package/build/client/_app/immutable/nodes/13.s79JEajb.js +0 -2
  814. package/build/client/_app/immutable/nodes/13.s79JEajb.js.br +0 -0
  815. package/build/client/_app/immutable/nodes/13.s79JEajb.js.gz +0 -0
  816. package/build/client/_app/immutable/nodes/14.CYT3iXz4.js +0 -2
  817. package/build/client/_app/immutable/nodes/14.CYT3iXz4.js.br +0 -0
  818. package/build/client/_app/immutable/nodes/14.CYT3iXz4.js.gz +0 -0
  819. package/build/client/_app/immutable/nodes/15.BmUKGag9.js +0 -16
  820. package/build/client/_app/immutable/nodes/15.BmUKGag9.js.br +0 -0
  821. package/build/client/_app/immutable/nodes/15.BmUKGag9.js.gz +0 -0
  822. package/build/client/_app/immutable/nodes/16.BV1yTi0H.js +0 -6
  823. package/build/client/_app/immutable/nodes/16.BV1yTi0H.js.br +0 -0
  824. package/build/client/_app/immutable/nodes/16.BV1yTi0H.js.gz +0 -0
  825. package/build/client/_app/immutable/nodes/17.BJ9W1-Gp.js +0 -2
  826. package/build/client/_app/immutable/nodes/17.BJ9W1-Gp.js.br +0 -0
  827. package/build/client/_app/immutable/nodes/17.BJ9W1-Gp.js.gz +0 -0
  828. package/build/client/_app/immutable/nodes/19.CotcbdTq.js +0 -2
  829. package/build/client/_app/immutable/nodes/19.CotcbdTq.js.br +0 -0
  830. package/build/client/_app/immutable/nodes/19.CotcbdTq.js.gz +0 -0
  831. package/build/client/_app/immutable/nodes/2.bzOm1515.js +0 -1
  832. package/build/client/_app/immutable/nodes/2.bzOm1515.js.br +0 -0
  833. package/build/client/_app/immutable/nodes/2.bzOm1515.js.gz +0 -0
  834. package/build/client/_app/immutable/nodes/20.CA3HJZEu.js +0 -4116
  835. package/build/client/_app/immutable/nodes/20.CA3HJZEu.js.br +0 -0
  836. package/build/client/_app/immutable/nodes/20.CA3HJZEu.js.gz +0 -0
  837. package/build/client/_app/immutable/nodes/21.BJPjb8-v.js +0 -6
  838. package/build/client/_app/immutable/nodes/21.BJPjb8-v.js.br +0 -0
  839. package/build/client/_app/immutable/nodes/21.BJPjb8-v.js.gz +0 -0
  840. package/build/client/_app/immutable/nodes/23.BRvOrN4m.js +0 -16
  841. package/build/client/_app/immutable/nodes/23.BRvOrN4m.js.br +0 -0
  842. package/build/client/_app/immutable/nodes/23.BRvOrN4m.js.gz +0 -0
  843. package/build/client/_app/immutable/nodes/24.BXo-yHSI.js +0 -6
  844. package/build/client/_app/immutable/nodes/24.BXo-yHSI.js.br +0 -0
  845. package/build/client/_app/immutable/nodes/24.BXo-yHSI.js.gz +0 -0
  846. package/build/client/_app/immutable/nodes/25.DQ1u0u88.js +0 -1
  847. package/build/client/_app/immutable/nodes/25.DQ1u0u88.js.br +0 -0
  848. package/build/client/_app/immutable/nodes/25.DQ1u0u88.js.gz +0 -0
  849. package/build/client/_app/immutable/nodes/26.Ds_gf_O9.js +0 -3
  850. package/build/client/_app/immutable/nodes/26.Ds_gf_O9.js.br +0 -0
  851. package/build/client/_app/immutable/nodes/26.Ds_gf_O9.js.gz +0 -0
  852. package/build/client/_app/immutable/nodes/27.BYAdgkyp.js +0 -4
  853. package/build/client/_app/immutable/nodes/27.BYAdgkyp.js.br +0 -0
  854. package/build/client/_app/immutable/nodes/27.BYAdgkyp.js.gz +0 -0
  855. package/build/client/_app/immutable/nodes/28.LN6851SR.js +0 -4
  856. package/build/client/_app/immutable/nodes/28.LN6851SR.js.br +0 -0
  857. package/build/client/_app/immutable/nodes/28.LN6851SR.js.gz +0 -0
  858. package/build/client/_app/immutable/nodes/29.DLioElQp.js +0 -2
  859. package/build/client/_app/immutable/nodes/29.DLioElQp.js.br +0 -0
  860. package/build/client/_app/immutable/nodes/29.DLioElQp.js.gz +0 -0
  861. package/build/client/_app/immutable/nodes/3.BrNhFCwf.js +0 -1
  862. package/build/client/_app/immutable/nodes/3.BrNhFCwf.js.br +0 -0
  863. package/build/client/_app/immutable/nodes/3.BrNhFCwf.js.gz +0 -0
  864. package/build/client/_app/immutable/nodes/30.8X3_Qhc4.js +0 -2
  865. package/build/client/_app/immutable/nodes/30.8X3_Qhc4.js.br +0 -0
  866. package/build/client/_app/immutable/nodes/30.8X3_Qhc4.js.gz +0 -0
  867. package/build/client/_app/immutable/nodes/31.CaWXI_qm.js +0 -2
  868. package/build/client/_app/immutable/nodes/31.CaWXI_qm.js.br +0 -0
  869. package/build/client/_app/immutable/nodes/31.CaWXI_qm.js.gz +0 -0
  870. package/build/client/_app/immutable/nodes/32.Drmb2nxJ.js +0 -3
  871. package/build/client/_app/immutable/nodes/32.Drmb2nxJ.js.br +0 -0
  872. package/build/client/_app/immutable/nodes/32.Drmb2nxJ.js.gz +0 -0
  873. package/build/client/_app/immutable/nodes/5.Bv0v3n_x.js +0 -1
  874. package/build/client/_app/immutable/nodes/5.Bv0v3n_x.js.br +0 -1
  875. package/build/client/_app/immutable/nodes/5.Bv0v3n_x.js.gz +0 -0
  876. package/build/client/_app/immutable/nodes/6.Bcm8SZhY.js +0 -1
  877. package/build/client/_app/immutable/nodes/6.Bcm8SZhY.js.br +0 -0
  878. package/build/client/_app/immutable/nodes/6.Bcm8SZhY.js.gz +0 -0
  879. package/build/client/_app/immutable/nodes/7.BxG3WtIs.js +0 -1
  880. package/build/client/_app/immutable/nodes/7.BxG3WtIs.js.br +0 -0
  881. package/build/client/_app/immutable/nodes/7.BxG3WtIs.js.gz +0 -0
  882. package/build/client/_app/immutable/nodes/8.D5JMD1BH.js +0 -2
  883. package/build/client/_app/immutable/nodes/8.D5JMD1BH.js.br +0 -0
  884. package/build/client/_app/immutable/nodes/8.D5JMD1BH.js.gz +0 -0
  885. package/build/client/_app/immutable/nodes/9.C-ulXdlh.js +0 -1
  886. package/build/client/_app/immutable/nodes/9.C-ulXdlh.js.br +0 -0
  887. package/build/client/_app/immutable/nodes/9.C-ulXdlh.js.gz +0 -0
  888. package/build/server/chunks/0-B-R0kBeY.js +0 -55
  889. package/build/server/chunks/0-B-R0kBeY.js.map +0 -1
  890. package/build/server/chunks/1-CuAyMauj.js +0 -9
  891. package/build/server/chunks/1-CuAyMauj.js.map +0 -1
  892. package/build/server/chunks/10-Nv6D0XYy.js +0 -220
  893. package/build/server/chunks/10-Nv6D0XYy.js.map +0 -1
  894. package/build/server/chunks/11-BeesIJzU.js +0 -57
  895. package/build/server/chunks/11-BeesIJzU.js.map +0 -1
  896. package/build/server/chunks/12-BUwej7vW.js +0 -52
  897. package/build/server/chunks/12-BUwej7vW.js.map +0 -1
  898. package/build/server/chunks/13-BXJkEncV.js +0 -57
  899. package/build/server/chunks/13-BXJkEncV.js.map +0 -1
  900. package/build/server/chunks/14-znPM9Pcq.js +0 -100
  901. package/build/server/chunks/14-znPM9Pcq.js.map +0 -1
  902. package/build/server/chunks/15-DZglhlvG.js +0 -43
  903. package/build/server/chunks/15-DZglhlvG.js.map +0 -1
  904. package/build/server/chunks/16-Bn08tbq5.js +0 -83
  905. package/build/server/chunks/16-Bn08tbq5.js.map +0 -1
  906. package/build/server/chunks/17-Cso-R6ia.js +0 -9
  907. package/build/server/chunks/17-Cso-R6ia.js.map +0 -1
  908. package/build/server/chunks/18-DSqnjSZR.js +0 -74
  909. package/build/server/chunks/18-DSqnjSZR.js.map +0 -1
  910. package/build/server/chunks/19-B5ff1LX8.js +0 -94
  911. package/build/server/chunks/19-B5ff1LX8.js.map +0 -1
  912. package/build/server/chunks/2-BGvFL0S4.js +0 -41
  913. package/build/server/chunks/2-BGvFL0S4.js.map +0 -1
  914. package/build/server/chunks/20-DFsHWLTF.js +0 -220
  915. package/build/server/chunks/20-DFsHWLTF.js.map +0 -1
  916. package/build/server/chunks/21-Dn5qUx_W.js +0 -83
  917. package/build/server/chunks/21-Dn5qUx_W.js.map +0 -1
  918. package/build/server/chunks/23-BEE28B4-.js +0 -136
  919. package/build/server/chunks/23-BEE28B4-.js.map +0 -1
  920. package/build/server/chunks/24-C2tGGVXp.js +0 -144
  921. package/build/server/chunks/24-C2tGGVXp.js.map +0 -1
  922. package/build/server/chunks/25-ojiP_VIe.js +0 -51
  923. package/build/server/chunks/25-ojiP_VIe.js.map +0 -1
  924. package/build/server/chunks/26-Dia3LwgX.js +0 -9
  925. package/build/server/chunks/26-Dia3LwgX.js.map +0 -1
  926. package/build/server/chunks/27-DDqk8ntu.js +0 -57
  927. package/build/server/chunks/27-DDqk8ntu.js.map +0 -1
  928. package/build/server/chunks/28-DcIwnJDD.js +0 -69
  929. package/build/server/chunks/28-DcIwnJDD.js.map +0 -1
  930. package/build/server/chunks/29-CPECC6Qt.js +0 -55
  931. package/build/server/chunks/29-CPECC6Qt.js.map +0 -1
  932. package/build/server/chunks/3-CzLHDT1Q.js +0 -9
  933. package/build/server/chunks/3-CzLHDT1Q.js.map +0 -1
  934. package/build/server/chunks/30-Bno1WrtW.js +0 -57
  935. package/build/server/chunks/30-Bno1WrtW.js.map +0 -1
  936. package/build/server/chunks/31-DC1gGFWA.js +0 -42
  937. package/build/server/chunks/31-DC1gGFWA.js.map +0 -1
  938. package/build/server/chunks/32-BOGJTOSC.js +0 -34
  939. package/build/server/chunks/32-BOGJTOSC.js.map +0 -1
  940. package/build/server/chunks/5-C2v3v85u.js +0 -32
  941. package/build/server/chunks/5-C2v3v85u.js.map +0 -1
  942. package/build/server/chunks/6-km9_lsf3.js +0 -40
  943. package/build/server/chunks/6-km9_lsf3.js.map +0 -1
  944. package/build/server/chunks/7-DPthSRvp.js +0 -19
  945. package/build/server/chunks/7-DPthSRvp.js.map +0 -1
  946. package/build/server/chunks/8-AVVSYGmP.js +0 -130
  947. package/build/server/chunks/8-AVVSYGmP.js.map +0 -1
  948. package/build/server/chunks/9-BYsSPT2b.js +0 -46
  949. package/build/server/chunks/9-BYsSPT2b.js.map +0 -1
  950. package/build/server/chunks/AppHeader-DuJuMtMy.js +0 -271
  951. package/build/server/chunks/AppHeader-DuJuMtMy.js.map +0 -1
  952. package/build/server/chunks/DefinitionCard-CYv7Z13m.js +0 -257
  953. package/build/server/chunks/DefinitionCard-CYv7Z13m.js.map +0 -1
  954. package/build/server/chunks/ErrorScreen-d8Z8hQ1U.js +0 -131
  955. package/build/server/chunks/ErrorScreen-d8Z8hQ1U.js.map +0 -1
  956. package/build/server/chunks/FilterableDropdown-0UzIjcXJ.js +0 -61
  957. package/build/server/chunks/FilterableDropdown-0UzIjcXJ.js.map +0 -1
  958. package/build/server/chunks/SideNav-QbExg2MG.js +0 -87
  959. package/build/server/chunks/SideNav-QbExg2MG.js.map +0 -1
  960. package/build/server/chunks/StatCard-CRzbit9Z.js +0 -50
  961. package/build/server/chunks/StatCard-CRzbit9Z.js.map +0 -1
  962. package/build/server/chunks/UserChip-Ba0wRTtZ.js +0 -1113
  963. package/build/server/chunks/UserChip-Ba0wRTtZ.js.map +0 -1
  964. package/build/server/chunks/_error.svelte-DCuOEylf.js +0 -29
  965. package/build/server/chunks/_error.svelte-DCuOEylf.js.map +0 -1
  966. package/build/server/chunks/_error.svelte-DKd7sQzn.js +0 -27
  967. package/build/server/chunks/_error.svelte-DKd7sQzn.js.map +0 -1
  968. package/build/server/chunks/_layout.svelte-BmmDpTcb.js +0 -152
  969. package/build/server/chunks/_layout.svelte-BmmDpTcb.js.map +0 -1
  970. package/build/server/chunks/_layout.svelte-Bu7WpdFm.js +0 -42
  971. package/build/server/chunks/_layout.svelte-Bu7WpdFm.js.map +0 -1
  972. package/build/server/chunks/_layout.svelte-Cbs_hosi.js +0 -105
  973. package/build/server/chunks/_layout.svelte-Cbs_hosi.js.map +0 -1
  974. package/build/server/chunks/_layout.svelte-UsfBRC0f.js +0 -795
  975. package/build/server/chunks/_layout.svelte-UsfBRC0f.js.map +0 -1
  976. package/build/server/chunks/_page.svelte-B2WQ2nhU.js +0 -69
  977. package/build/server/chunks/_page.svelte-B2WQ2nhU.js.map +0 -1
  978. package/build/server/chunks/_page.svelte-B8iLZ6Zi.js +0 -119
  979. package/build/server/chunks/_page.svelte-B8iLZ6Zi.js.map +0 -1
  980. package/build/server/chunks/_page.svelte-BB3Q4U32.js +0 -595
  981. package/build/server/chunks/_page.svelte-BB3Q4U32.js.map +0 -1
  982. package/build/server/chunks/_page.svelte-BHM2cdfQ.js +0 -119
  983. package/build/server/chunks/_page.svelte-BHM2cdfQ.js.map +0 -1
  984. package/build/server/chunks/_page.svelte-BIABhE1J.js +0 -329
  985. package/build/server/chunks/_page.svelte-BIABhE1J.js.map +0 -1
  986. package/build/server/chunks/_page.svelte-BKk3pcBL.js +0 -546
  987. package/build/server/chunks/_page.svelte-BKk3pcBL.js.map +0 -1
  988. package/build/server/chunks/_page.svelte-BS4E9SvL.js +0 -10510
  989. package/build/server/chunks/_page.svelte-BS4E9SvL.js.map +0 -1
  990. package/build/server/chunks/_page.svelte-BYPZuYIR.js +0 -276
  991. package/build/server/chunks/_page.svelte-BYPZuYIR.js.map +0 -1
  992. package/build/server/chunks/_page.svelte-Big1I6tL.js +0 -274
  993. package/build/server/chunks/_page.svelte-Big1I6tL.js.map +0 -1
  994. package/build/server/chunks/_page.svelte-BjX7K7cb.js +0 -249
  995. package/build/server/chunks/_page.svelte-BjX7K7cb.js.map +0 -1
  996. package/build/server/chunks/_page.svelte-Bqwz1thf.js +0 -146
  997. package/build/server/chunks/_page.svelte-Bqwz1thf.js.map +0 -1
  998. package/build/server/chunks/_page.svelte-CEhO1-1V.js +0 -452
  999. package/build/server/chunks/_page.svelte-CEhO1-1V.js.map +0 -1
  1000. package/build/server/chunks/_page.svelte-C_Jgsry_.js +0 -500
  1001. package/build/server/chunks/_page.svelte-C_Jgsry_.js.map +0 -1
  1002. package/build/server/chunks/_page.svelte-Cx28CapC.js +0 -3847
  1003. package/build/server/chunks/_page.svelte-Cx28CapC.js.map +0 -1
  1004. package/build/server/chunks/_page.svelte-D9-g6SJP.js +0 -168
  1005. package/build/server/chunks/_page.svelte-D9-g6SJP.js.map +0 -1
  1006. package/build/server/chunks/_page.svelte-DIn0gOqM.js +0 -609
  1007. package/build/server/chunks/_page.svelte-DIn0gOqM.js.map +0 -1
  1008. package/build/server/chunks/_page.svelte-DKPG7AbM.js +0 -113
  1009. package/build/server/chunks/_page.svelte-DKPG7AbM.js.map +0 -1
  1010. package/build/server/chunks/_page.svelte-DU9OiqeO.js +0 -423
  1011. package/build/server/chunks/_page.svelte-DU9OiqeO.js.map +0 -1
  1012. package/build/server/chunks/_page.svelte-DUFBSMDt.js +0 -557
  1013. package/build/server/chunks/_page.svelte-DUFBSMDt.js.map +0 -1
  1014. package/build/server/chunks/_page.svelte-DcbxsxZM.js +0 -330
  1015. package/build/server/chunks/_page.svelte-DcbxsxZM.js.map +0 -1
  1016. package/build/server/chunks/_page.svelte-DtVw2EYT.js +0 -56
  1017. package/build/server/chunks/_page.svelte-DtVw2EYT.js.map +0 -1
  1018. package/build/server/chunks/_page.svelte-DyTTCbrh.js +0 -83
  1019. package/build/server/chunks/_page.svelte-DyTTCbrh.js.map +0 -1
  1020. package/build/server/chunks/_page.svelte-jwU-46Sj.js +0 -301
  1021. package/build/server/chunks/_page.svelte-jwU-46Sj.js.map +0 -1
  1022. package/build/server/chunks/_page.svelte-tP-wCOII.js +0 -714
  1023. package/build/server/chunks/_page.svelte-tP-wCOII.js.map +0 -1
  1024. package/build/server/chunks/_server.ts-B22_T7V_.js +0 -36
  1025. package/build/server/chunks/_server.ts-B22_T7V_.js.map +0 -1
  1026. package/build/server/chunks/_server.ts-BDlLVhr0.js +0 -76
  1027. package/build/server/chunks/_server.ts-BDlLVhr0.js.map +0 -1
  1028. package/build/server/chunks/_server.ts-BGuNdvh3.js +0 -85
  1029. package/build/server/chunks/_server.ts-BGuNdvh3.js.map +0 -1
  1030. package/build/server/chunks/_server.ts-BKMhht9X.js +0 -31
  1031. package/build/server/chunks/_server.ts-BKMhht9X.js.map +0 -1
  1032. package/build/server/chunks/_server.ts-BLSWyveF.js +0 -38
  1033. package/build/server/chunks/_server.ts-BLSWyveF.js.map +0 -1
  1034. package/build/server/chunks/_server.ts-BW-lT0M3.js +0 -58
  1035. package/build/server/chunks/_server.ts-BW-lT0M3.js.map +0 -1
  1036. package/build/server/chunks/_server.ts-Ba8fgvzw.js +0 -81
  1037. package/build/server/chunks/_server.ts-Ba8fgvzw.js.map +0 -1
  1038. package/build/server/chunks/_server.ts-BmAiI-M6.js +0 -75
  1039. package/build/server/chunks/_server.ts-BmAiI-M6.js.map +0 -1
  1040. package/build/server/chunks/_server.ts-BrIEBX7H.js +0 -86
  1041. package/build/server/chunks/_server.ts-BrIEBX7H.js.map +0 -1
  1042. package/build/server/chunks/_server.ts-BrlTfpwE.js +0 -71
  1043. package/build/server/chunks/_server.ts-BrlTfpwE.js.map +0 -1
  1044. package/build/server/chunks/_server.ts-C0-8Ghjh.js +0 -81
  1045. package/build/server/chunks/_server.ts-C0-8Ghjh.js.map +0 -1
  1046. package/build/server/chunks/_server.ts-C1KGgrcN.js +0 -38
  1047. package/build/server/chunks/_server.ts-C1KGgrcN.js.map +0 -1
  1048. package/build/server/chunks/_server.ts-CM1ulGpl.js +0 -94
  1049. package/build/server/chunks/_server.ts-CM1ulGpl.js.map +0 -1
  1050. package/build/server/chunks/_server.ts-CZHS4EZU.js +0 -35
  1051. package/build/server/chunks/_server.ts-CZHS4EZU.js.map +0 -1
  1052. package/build/server/chunks/_server.ts-Cc1sYV4N.js +0 -73
  1053. package/build/server/chunks/_server.ts-Cc1sYV4N.js.map +0 -1
  1054. package/build/server/chunks/_server.ts-ChAgra2R.js +0 -103
  1055. package/build/server/chunks/_server.ts-ChAgra2R.js.map +0 -1
  1056. package/build/server/chunks/_server.ts-CiS1dBE4.js +0 -110
  1057. package/build/server/chunks/_server.ts-CiS1dBE4.js.map +0 -1
  1058. package/build/server/chunks/_server.ts-Co2Yjt2k.js +0 -408
  1059. package/build/server/chunks/_server.ts-Co2Yjt2k.js.map +0 -1
  1060. package/build/server/chunks/_server.ts-CpyLZir2.js +0 -106
  1061. package/build/server/chunks/_server.ts-CpyLZir2.js.map +0 -1
  1062. package/build/server/chunks/_server.ts-CuIFnCAh.js +0 -31
  1063. package/build/server/chunks/_server.ts-CuIFnCAh.js.map +0 -1
  1064. package/build/server/chunks/_server.ts-CzolkXdt.js +0 -49
  1065. package/build/server/chunks/_server.ts-CzolkXdt.js.map +0 -1
  1066. package/build/server/chunks/_server.ts-D1D_prNC.js +0 -52
  1067. package/build/server/chunks/_server.ts-D1D_prNC.js.map +0 -1
  1068. package/build/server/chunks/_server.ts-DAmmd8N5.js +0 -29
  1069. package/build/server/chunks/_server.ts-DAmmd8N5.js.map +0 -1
  1070. package/build/server/chunks/_server.ts-DEeyDsgj.js +0 -70
  1071. package/build/server/chunks/_server.ts-DEeyDsgj.js.map +0 -1
  1072. package/build/server/chunks/_server.ts-DOEzw2-7.js +0 -94
  1073. package/build/server/chunks/_server.ts-DOEzw2-7.js.map +0 -1
  1074. package/build/server/chunks/_server.ts-DOqfhUd4.js +0 -33
  1075. package/build/server/chunks/_server.ts-DOqfhUd4.js.map +0 -1
  1076. package/build/server/chunks/_server.ts-DZngf68M.js +0 -39
  1077. package/build/server/chunks/_server.ts-DZngf68M.js.map +0 -1
  1078. package/build/server/chunks/_server.ts-D_cDSuDn.js +0 -37
  1079. package/build/server/chunks/_server.ts-D_cDSuDn.js.map +0 -1
  1080. package/build/server/chunks/_server.ts-Dev4bRG7.js +0 -37
  1081. package/build/server/chunks/_server.ts-Dev4bRG7.js.map +0 -1
  1082. package/build/server/chunks/_server.ts-DiADR0vf.js +0 -41
  1083. package/build/server/chunks/_server.ts-DiADR0vf.js.map +0 -1
  1084. package/build/server/chunks/_server.ts-DmTvYkS6.js +0 -48
  1085. package/build/server/chunks/_server.ts-DmTvYkS6.js.map +0 -1
  1086. package/build/server/chunks/_server.ts-DtqNIvuj.js +0 -30
  1087. package/build/server/chunks/_server.ts-DtqNIvuj.js.map +0 -1
  1088. package/build/server/chunks/_server.ts-PC1ANpTi.js +0 -293
  1089. package/build/server/chunks/_server.ts-PC1ANpTi.js.map +0 -1
  1090. package/build/server/chunks/_server.ts-VVJtskXo.js +0 -64
  1091. package/build/server/chunks/_server.ts-VVJtskXo.js.map +0 -1
  1092. package/build/server/chunks/_server.ts-mpVOvyBh.js +0 -42
  1093. package/build/server/chunks/_server.ts-mpVOvyBh.js.map +0 -1
  1094. package/build/server/chunks/_server.ts-rck08O_p.js +0 -78
  1095. package/build/server/chunks/_server.ts-rck08O_p.js.map +0 -1
  1096. package/build/server/chunks/_server.ts-sBiGcMzk.js +0 -39
  1097. package/build/server/chunks/_server.ts-sBiGcMzk.js.map +0 -1
  1098. package/build/server/chunks/_server.ts-uudU-YvI.js +0 -61
  1099. package/build/server/chunks/_server.ts-uudU-YvI.js.map +0 -1
  1100. package/build/server/chunks/access.server-BPceukOr.js +0 -411
  1101. package/build/server/chunks/access.server-BPceukOr.js.map +0 -1
  1102. package/build/server/chunks/activity-Dmfe6yjx.js +0 -18
  1103. package/build/server/chunks/activity-Dmfe6yjx.js.map +0 -1
  1104. package/build/server/chunks/alert-description-BNqu-OG5.js +0 -59
  1105. package/build/server/chunks/alert-description-BNqu-OG5.js.map +0 -1
  1106. package/build/server/chunks/api-errors-KUItADEX.js +0 -36
  1107. package/build/server/chunks/api-errors-KUItADEX.js.map +0 -1
  1108. package/build/server/chunks/arrow-left-KOVWDB5k.js +0 -14
  1109. package/build/server/chunks/arrow-left-KOVWDB5k.js.map +0 -1
  1110. package/build/server/chunks/arrow-right-D0bOY6-5.js +0 -14
  1111. package/build/server/chunks/arrow-right-D0bOY6-5.js.map +0 -1
  1112. package/build/server/chunks/auth-bootstrap.server-C1OnV0V5.js +0 -98
  1113. package/build/server/chunks/auth-bootstrap.server-C1OnV0V5.js.map +0 -1
  1114. package/build/server/chunks/badge-DIEbxzcl.js +0 -50
  1115. package/build/server/chunks/badge-DIEbxzcl.js.map +0 -1
  1116. package/build/server/chunks/bootHealth.server-DzX0P_m2.js +0 -58
  1117. package/build/server/chunks/bootHealth.server-DzX0P_m2.js.map +0 -1
  1118. package/build/server/chunks/building-2-DFvNRZpq.js +0 -22
  1119. package/build/server/chunks/building-2-DFvNRZpq.js.map +0 -1
  1120. package/build/server/chunks/button-DPLE4Wc8.js +0 -73
  1121. package/build/server/chunks/button-DPLE4Wc8.js.map +0 -1
  1122. package/build/server/chunks/card-content-BlxX1RCO.js +0 -46
  1123. package/build/server/chunks/card-content-BlxX1RCO.js.map +0 -1
  1124. package/build/server/chunks/card-description-Z3TpzjmK.js +0 -26
  1125. package/build/server/chunks/card-description-Z3TpzjmK.js.map +0 -1
  1126. package/build/server/chunks/card-title-CdR5nQ-b.js +0 -46
  1127. package/build/server/chunks/card-title-CdR5nQ-b.js.map +0 -1
  1128. package/build/server/chunks/check-382jBCB9.js +0 -11
  1129. package/build/server/chunks/check-382jBCB9.js.map +0 -1
  1130. package/build/server/chunks/chevron-down-D5-hWbt-.js +0 -11
  1131. package/build/server/chunks/chevron-down-D5-hWbt-.js.map +0 -1
  1132. package/build/server/chunks/chevron-right-BqxmmxHL.js +0 -11
  1133. package/build/server/chunks/chevron-right-BqxmmxHL.js.map +0 -1
  1134. package/build/server/chunks/chevron-up-StZ3cnZ8.js +0 -11
  1135. package/build/server/chunks/chevron-up-StZ3cnZ8.js.map +0 -1
  1136. package/build/server/chunks/circle-DgRVKHBX.js +0 -11
  1137. package/build/server/chunks/circle-DgRVKHBX.js.map +0 -1
  1138. package/build/server/chunks/circle-alert-DVGjYRbM.js +0 -18
  1139. package/build/server/chunks/circle-alert-DVGjYRbM.js.map +0 -1
  1140. package/build/server/chunks/context-WcuX1UXU.js +0 -134
  1141. package/build/server/chunks/context-WcuX1UXU.js.map +0 -1
  1142. package/build/server/chunks/copy-ifB2TUP_.js +0 -29
  1143. package/build/server/chunks/copy-ifB2TUP_.js.map +0 -1
  1144. package/build/server/chunks/folder-kanban-pqeOGmPr.js +0 -21
  1145. package/build/server/chunks/folder-kanban-pqeOGmPr.js.map +0 -1
  1146. package/build/server/chunks/folder-open-Cs60gLjJ.js +0 -18
  1147. package/build/server/chunks/folder-open-Cs60gLjJ.js.map +0 -1
  1148. package/build/server/chunks/folders-u0VAZ6yv.js +0 -24
  1149. package/build/server/chunks/folders-u0VAZ6yv.js.map +0 -1
  1150. package/build/server/chunks/footerContext.svelte-CJMFkrzZ.js +0 -523
  1151. package/build/server/chunks/footerContext.svelte-CJMFkrzZ.js.map +0 -1
  1152. package/build/server/chunks/hooks.server-ChS4bxJn.js +0 -218
  1153. package/build/server/chunks/hooks.server-ChS4bxJn.js.map +0 -1
  1154. package/build/server/chunks/index2-CJwvvJu6.js +0 -4379
  1155. package/build/server/chunks/index2-CJwvvJu6.js.map +0 -1
  1156. package/build/server/chunks/index3-CNrCbgC4.js +0 -541
  1157. package/build/server/chunks/index3-CNrCbgC4.js.map +0 -1
  1158. package/build/server/chunks/input-BEmCftCF.js +0 -53
  1159. package/build/server/chunks/input-BEmCftCF.js.map +0 -1
  1160. package/build/server/chunks/label-D8oB1018.js +0 -112
  1161. package/build/server/chunks/label-D8oB1018.js.map +0 -1
  1162. package/build/server/chunks/link-2-D3b2vEpL.js +0 -15
  1163. package/build/server/chunks/link-2-D3b2vEpL.js.map +0 -1
  1164. package/build/server/chunks/mail-DZDbJkFt.js +0 -17
  1165. package/build/server/chunks/mail-DZDbJkFt.js.map +0 -1
  1166. package/build/server/chunks/permissions-compat.server-CAfCu77g.js +0 -19
  1167. package/build/server/chunks/permissions-compat.server-CAfCu77g.js.map +0 -1
  1168. package/build/server/chunks/permissions.server-Ba-N3_W5.js +0 -8
  1169. package/build/server/chunks/permissions.server-Ba-N3_W5.js.map +0 -1
  1170. package/build/server/chunks/plus-j_UY0EeU.js +0 -11
  1171. package/build/server/chunks/plus-j_UY0EeU.js.map +0 -1
  1172. package/build/server/chunks/providers.server-DOymvucH.js +0 -4537
  1173. package/build/server/chunks/providers.server-DOymvucH.js.map +0 -1
  1174. package/build/server/chunks/resolve.server-fKH_sqyC.js +0 -11
  1175. package/build/server/chunks/resolve.server-fKH_sqyC.js.map +0 -1
  1176. package/build/server/chunks/resolve.server2-BnfeaGcZ.js +0 -50
  1177. package/build/server/chunks/resolve.server2-BnfeaGcZ.js.map +0 -1
  1178. package/build/server/chunks/rotate-ccw-DChq5zhW.js +0 -17
  1179. package/build/server/chunks/rotate-ccw-DChq5zhW.js.map +0 -1
  1180. package/build/server/chunks/scroll-text-Bi9gx_V4.js +0 -21
  1181. package/build/server/chunks/scroll-text-Bi9gx_V4.js.map +0 -1
  1182. package/build/server/chunks/server-LxtlHpuz.js +0 -36
  1183. package/build/server/chunks/server-LxtlHpuz.js.map +0 -1
  1184. package/build/server/chunks/settings-Cr5mYyBS.js +0 -19
  1185. package/build/server/chunks/settings-Cr5mYyBS.js.map +0 -1
  1186. package/build/server/chunks/shield-BSf8CVMT.js +0 -18
  1187. package/build/server/chunks/shield-BSf8CVMT.js.map +0 -1
  1188. package/build/server/chunks/shield-check-OpZRvDHN.js +0 -19
  1189. package/build/server/chunks/shield-check-OpZRvDHN.js.map +0 -1
  1190. package/build/server/chunks/star-KGWYAeYA.js +0 -18
  1191. package/build/server/chunks/star-KGWYAeYA.js.map +0 -1
  1192. package/build/server/chunks/textarea-CzRER9c0.js +0 -685
  1193. package/build/server/chunks/textarea-CzRER9c0.js.map +0 -1
  1194. package/build/server/chunks/trash-2-DmuR9br3.js +0 -17
  1195. package/build/server/chunks/trash-2-DmuR9br3.js.map +0 -1
  1196. package/build/server/chunks/triangle-alert-CuX-M239.js +0 -444
  1197. package/build/server/chunks/triangle-alert-CuX-M239.js.map +0 -1
  1198. package/build/server/chunks/upload-Dc1WcTjY.js +0 -62
  1199. package/build/server/chunks/upload-Dc1WcTjY.js.map +0 -1
  1200. package/build/server/chunks/user-plus-Jn4Z4v9g.js +0 -16
  1201. package/build/server/chunks/user-plus-Jn4Z4v9g.js.map +0 -1
  1202. package/build/server/chunks/users-BgwwwoIh.js +0 -16
  1203. package/build/server/chunks/users-BgwwwoIh.js.map +0 -1
  1204. package/build/server/chunks/utils2-BF28g2lj.js +0 -56
  1205. package/build/server/chunks/utils2-BF28g2lj.js.map +0 -1
  1206. package/build/server/chunks/utils3-Dv2HSd2-.js +0 -80
  1207. package/build/server/chunks/utils3-Dv2HSd2-.js.map +0 -1
  1208. package/build/server/chunks/x-B1q8Cpoy.js +0 -14
  1209. package/build/server/chunks/x-B1q8Cpoy.js.map +0 -1
@@ -0,0 +1,3898 @@
1
+ import { a3 as head, T as escape_html, Q as ensure_array_like, I as derived, aC as store_get, m as attr, n as attr_class, aA as spread_props, aD as stringify, aJ as unsubscribe_stores, q as bind_props, an as props_id, p as attributes, o as attr_style } from './renderer-x4cX3Aau.js';
2
+ import { i as invalidateAll, g as goto } from './client-BGbAMHJi.js';
3
+ import { p as page } from './stores-uHR_5Kqw.js';
4
+ import { F as FilterableDropdown } from './FilterableDropdown-W9AjyS0M.js';
5
+ import { F as Folder_open } from './folder-open-CUgA3M22.js';
6
+ import { R as Root$1, D as Dialog_content, b as Dialog_header, c as Dialog_title, a as Dialog_description } from './index2-B9qXYHIn.js';
7
+ import { L as Label } from './label-Df1UqzdF.js';
8
+ import { I as Input } from './input-DGJ03-ia.js';
9
+ import { d as Textarea, T as Tabs, b as Tabs_list, c as Tabs_trigger, a as Tabs_content } from './textarea-A5IYPwqe.js';
10
+ import { B as Badge } from './badge-Dslv369v.js';
11
+ import { X } from './x-e5o-84bg.js';
12
+ import { B as Button } from './button-1GF48U_O.js';
13
+ import { D as Dialog_footer, U as Upload$1 } from './upload-BY_p_jpL.js';
14
+ import { t as toast } from './toast-state.svelte-CFWzxRA3.js';
15
+ import { P as Plus } from './plus-CY_pTStn.js';
16
+ import { I as Icon } from './Icon2-DbkwAOkZ.js';
17
+ import { U as UserAvatar } from './UserAvatar-DZgfurXJ.js';
18
+ import { U as Users } from './users-Bd7CKN4d.js';
19
+ import { T as Trash_2 } from './trash-2-swQcKEqX.js';
20
+ import { E as EmptyState } from './EmptyState-BMCljy6g.js';
21
+ import { U as User_plus } from './user-plus-CPEDH5dh.js';
22
+ import { S as Search$1, V as ViewToggle, D as DefinitionCard, h as huesFor, m as monogram, f as formatUpdated, a as statusRing, s as statusDot } from './DefinitionCard-BeONTmrJ.js';
23
+ import { c as cn } from './utils3-B05Dmz_H.js';
24
+ import { k as createBitsAttrs, l as createId, h as boxWith, a as attachRef, d as boolToStrTrueOrUndef, v as mergeProps } from './create-id-B-AKukLt.js';
25
+ import 'clsx';
26
+ import '@sveltejs/kit/internal';
27
+ import './root-CGeBSY2K.js';
28
+ import '@sveltejs/kit/internal/server';
29
+ import { R as Root, b as Alert_dialog_content, e as Alert_dialog_header, f as Alert_dialog_title, c as Alert_dialog_description, d as Alert_dialog_footer, a as Alert_dialog_cancel, A as Alert_dialog_action } from './index4-DSWKKOFB.js';
30
+ import './context-DKDYb-He.js';
31
+ import { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from './types2-DdHhYSMF.js';
32
+ import { T as Triangle_alert } from './triangle-alert-DuaFagu6.js';
33
+ import { C as Copy } from './copy-DbzeZFQN.js';
34
+ import { L as Link_2 } from './link-2-dxaDBYcR.js';
35
+ import { C as Circle } from './circle-CeSIvmWj.js';
36
+ import { A as Arrow_left } from './arrow-left-D0KqaESK.js';
37
+ import { S as SectionHeader } from './SectionHeader-CjuQsFLx.js';
38
+ import { S as Settings } from './settings-NH5q_HtF.js';
39
+ import './chevron-down-Cqowxf45.js';
40
+ import './Icon-DbkwAOkZ.js';
41
+ import './dialog-description-C-wNjCmv.js';
42
+ import './noop-iPXixleG.js';
43
+ import './index-server-DMc-UvjC.js';
44
+ import './scroll-lock-BVxv0Dsn.js';
45
+ import './events-qfxQNxtp.js';
46
+ import 'tailwind-variants';
47
+ import './star-bmBg3IsG.js';
48
+ import './arrow-right-Bi1uWbBU.js';
49
+ import 'tailwind-merge';
50
+ import 'zod';
51
+
52
+ const separatorAttrs = createBitsAttrs({ component: "separator", parts: ["root"] });
53
+ class SeparatorRootState {
54
+ static create(opts) {
55
+ return new SeparatorRootState(opts);
56
+ }
57
+ opts;
58
+ attachment;
59
+ constructor(opts) {
60
+ this.opts = opts;
61
+ this.attachment = attachRef(opts.ref);
62
+ }
63
+ #props = derived(() => ({
64
+ id: this.opts.id.current,
65
+ role: this.opts.decorative.current ? "none" : "separator",
66
+ "aria-orientation": this.opts.orientation.current,
67
+ "aria-hidden": boolToStrTrueOrUndef(this.opts.decorative.current),
68
+ "data-orientation": this.opts.orientation.current,
69
+ [separatorAttrs.root]: "",
70
+ ...this.attachment
71
+ }));
72
+ get props() {
73
+ return this.#props();
74
+ }
75
+ set props($$value) {
76
+ return this.#props($$value);
77
+ }
78
+ }
79
+ function Separator$1($$renderer, $$props) {
80
+ $$renderer.component(($$renderer2) => {
81
+ const uid = props_id($$renderer2);
82
+ let {
83
+ id = createId(uid),
84
+ ref = null,
85
+ child,
86
+ children,
87
+ decorative = false,
88
+ orientation = "horizontal",
89
+ $$slots,
90
+ $$events,
91
+ ...restProps
92
+ } = $$props;
93
+ const rootState = SeparatorRootState.create({
94
+ ref: boxWith(() => ref, (v) => ref = v),
95
+ id: boxWith(() => id),
96
+ decorative: boxWith(() => decorative),
97
+ orientation: boxWith(() => orientation)
98
+ });
99
+ const mergedProps = derived(() => mergeProps(restProps, rootState.props));
100
+ if (child) {
101
+ $$renderer2.push("<!--[0-->");
102
+ child($$renderer2, { props: mergedProps() });
103
+ $$renderer2.push(`<!---->`);
104
+ } else {
105
+ $$renderer2.push("<!--[-1-->");
106
+ $$renderer2.push(`<div${attributes({ ...mergedProps() })}>`);
107
+ children?.($$renderer2);
108
+ $$renderer2.push(`<!----></div>`);
109
+ }
110
+ $$renderer2.push(`<!--]-->`);
111
+ bind_props($$props, { ref });
112
+ });
113
+ }
114
+ function Separator($$renderer, $$props) {
115
+ $$renderer.component(($$renderer2) => {
116
+ let {
117
+ ref = null,
118
+ class: className,
119
+ "data-slot": dataSlot = "separator",
120
+ $$slots,
121
+ $$events,
122
+ ...restProps
123
+ } = $$props;
124
+ let $$settled = true;
125
+ let $$inner_renderer;
126
+ function $$render_inner($$renderer3) {
127
+ if (Separator$1) {
128
+ $$renderer3.push("<!--[-->");
129
+ Separator$1($$renderer3, spread_props([
130
+ {
131
+ "data-slot": dataSlot,
132
+ class: cn("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:min-h-full data-[orientation=vertical]:w-px", className)
133
+ },
134
+ restProps,
135
+ {
136
+ get ref() {
137
+ return ref;
138
+ },
139
+ set ref($$value) {
140
+ ref = $$value;
141
+ $$settled = false;
142
+ }
143
+ }
144
+ ]));
145
+ $$renderer3.push("<!--]-->");
146
+ } else {
147
+ $$renderer3.push("<!--[!-->");
148
+ $$renderer3.push("<!--]-->");
149
+ }
150
+ }
151
+ do {
152
+ $$settled = true;
153
+ $$inner_renderer = $$renderer2.copy();
154
+ $$render_inner($$inner_renderer);
155
+ } while (!$$settled);
156
+ $$renderer2.subsume($$inner_renderer);
157
+ bind_props($$props, { ref });
158
+ });
159
+ }
160
+ function Drawer($$renderer, $$props) {
161
+ $$renderer.component(($$renderer2) => {
162
+ let {
163
+ onClose,
164
+ width = "w-125",
165
+ ariaLabel = "Close drawer",
166
+ children
167
+ } = $$props;
168
+ $$renderer2.push(`<div role="button" tabindex="-1"${attr("aria-label", ariaLabel)} class="inset-0 bg-black/30 fixed z-50"></div> <div${attr_class(`animate-in slide-in-from-right-4 top-0 right-0 fixed z-50 flex h-full border-border bg-background ${stringify(width)} flex-col overflow-y-auto border-l duration-150`)}>`);
169
+ children($$renderer2);
170
+ $$renderer2.push(`<!----></div>`);
171
+ });
172
+ }
173
+ function ImageUploadField($$renderer, $$props) {
174
+ $$renderer.component(($$renderer2) => {
175
+ let {
176
+ mode = "url",
177
+ value = "",
178
+ disabled = false,
179
+ isUploading = false,
180
+ hasFile = false,
181
+ onModeChange,
182
+ onUpload,
183
+ onUrlChange,
184
+ onFileSelected,
185
+ inputRef = void 0
186
+ } = $$props;
187
+ $$renderer2.push(`<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border">`);
188
+ Button($$renderer2, {
189
+ size: "sm",
190
+ variant: mode !== "upload" ? "default" : "ghost",
191
+ onclick: () => onModeChange?.("url"),
192
+ class: "h-7 text-xs flex-1",
193
+ children: ($$renderer3) => {
194
+ $$renderer3.push(`<!---->URL`);
195
+ },
196
+ $$slots: { default: true }
197
+ });
198
+ $$renderer2.push(`<!----> `);
199
+ Button($$renderer2, {
200
+ size: "sm",
201
+ variant: mode === "upload" ? "default" : "ghost",
202
+ onclick: () => onModeChange?.("upload"),
203
+ class: "h-7 text-xs flex-1",
204
+ children: ($$renderer3) => {
205
+ $$renderer3.push(`<!---->Upload File`);
206
+ },
207
+ $$slots: { default: true }
208
+ });
209
+ $$renderer2.push(`<!----></div> `);
210
+ if (mode === "upload") {
211
+ $$renderer2.push("<!--[0-->");
212
+ $$renderer2.push(`<div class="gap-2 sm:flex-row sm:items-center flex flex-col"><input type="file" accept="image/*"${attr("disabled", disabled, true)} class="h-10 px-3 py-2 text-sm file:text-sm file:font-medium flex flex-1 rounded-md border border-input bg-background file:border-0 file:bg-transparent focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:opacity-50"/> `);
213
+ Button($$renderer2, {
214
+ size: "sm",
215
+ disabled: disabled || !hasFile || isUploading,
216
+ onclick: onUpload,
217
+ class: "shrink-0",
218
+ children: ($$renderer3) => {
219
+ Upload$1($$renderer3, { class: "mr-2 h-4 w-4" });
220
+ $$renderer3.push(`<!----> <span class="sm:inline hidden">${escape_html(isUploading ? "Uploading…" : "Upload")}</span>`);
221
+ },
222
+ $$slots: { default: true }
223
+ });
224
+ $$renderer2.push(`<!----></div>`);
225
+ } else {
226
+ $$renderer2.push("<!--[-1-->");
227
+ Input($$renderer2, {
228
+ type: "text",
229
+ value,
230
+ disabled,
231
+ oninput: (e) => onUrlChange?.(e.target.value),
232
+ placeholder: "https://..."
233
+ });
234
+ }
235
+ $$renderer2.push(`<!--]--></div>`);
236
+ bind_props($$props, { inputRef });
237
+ });
238
+ }
239
+ function Check($$renderer, $$props) {
240
+ let { $$slots, $$events, ...props } = $$props;
241
+ const iconNode = [["path", { "d": "M20 6 9 17l-5-5" }]];
242
+ Icon($$renderer, spread_props([{ name: "check" }, props, { iconNode }]));
243
+ }
244
+ function Cloud_upload($$renderer, $$props) {
245
+ let { $$slots, $$events, ...props } = $$props;
246
+ const iconNode = [
247
+ ["path", { "d": "M12 13v8" }],
248
+ [
249
+ "path",
250
+ {
251
+ "d": "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"
252
+ }
253
+ ],
254
+ ["path", { "d": "m8 17 4-4 4 4" }]
255
+ ];
256
+ Icon($$renderer, spread_props([{ name: "cloud-upload" }, props, { iconNode }]));
257
+ }
258
+ function Ellipsis($$renderer, $$props) {
259
+ let { $$slots, $$events, ...props } = $$props;
260
+ const iconNode = [
261
+ ["circle", { "cx": "12", "cy": "12", "r": "1" }],
262
+ ["circle", { "cx": "19", "cy": "12", "r": "1" }],
263
+ ["circle", { "cx": "5", "cy": "12", "r": "1" }]
264
+ ];
265
+ Icon($$renderer, spread_props([{ name: "ellipsis" }, props, { iconNode }]));
266
+ }
267
+ function File_up($$renderer, $$props) {
268
+ let { $$slots, $$events, ...props } = $$props;
269
+ const iconNode = [
270
+ [
271
+ "path",
272
+ {
273
+ "d": "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"
274
+ }
275
+ ],
276
+ ["path", { "d": "M14 2v5a1 1 0 0 0 1 1h5" }],
277
+ ["path", { "d": "M12 12v6" }],
278
+ ["path", { "d": "m15 15-3-3-3 3" }]
279
+ ];
280
+ Icon($$renderer, spread_props([{ name: "file-up" }, props, { iconNode }]));
281
+ }
282
+ function Image($$renderer, $$props) {
283
+ let { $$slots, $$events, ...props } = $$props;
284
+ const iconNode = [
285
+ [
286
+ "rect",
287
+ {
288
+ "width": "18",
289
+ "height": "18",
290
+ "x": "3",
291
+ "y": "3",
292
+ "rx": "2",
293
+ "ry": "2"
294
+ }
295
+ ],
296
+ ["circle", { "cx": "9", "cy": "9", "r": "2" }],
297
+ ["path", { "d": "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]
298
+ ];
299
+ Icon($$renderer, spread_props([{ name: "image" }, props, { iconNode }]));
300
+ }
301
+ function Play($$renderer, $$props) {
302
+ let { $$slots, $$events, ...props } = $$props;
303
+ const iconNode = [
304
+ [
305
+ "path",
306
+ {
307
+ "d": "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z"
308
+ }
309
+ ]
310
+ ];
311
+ Icon($$renderer, spread_props([{ name: "play" }, props, { iconNode }]));
312
+ }
313
+ function Search($$renderer, $$props) {
314
+ let { $$slots, $$events, ...props } = $$props;
315
+ const iconNode = [
316
+ ["path", { "d": "m21 21-4.34-4.34" }],
317
+ ["circle", { "cx": "11", "cy": "11", "r": "8" }]
318
+ ];
319
+ Icon($$renderer, spread_props([{ name: "search" }, props, { iconNode }]));
320
+ }
321
+ function Share_2($$renderer, $$props) {
322
+ let { $$slots, $$events, ...props } = $$props;
323
+ const iconNode = [
324
+ ["circle", { "cx": "18", "cy": "5", "r": "3" }],
325
+ ["circle", { "cx": "6", "cy": "12", "r": "3" }],
326
+ ["circle", { "cx": "18", "cy": "19", "r": "3" }],
327
+ [
328
+ "line",
329
+ { "x1": "8.59", "x2": "15.42", "y1": "13.51", "y2": "17.49" }
330
+ ],
331
+ [
332
+ "line",
333
+ { "x1": "15.41", "x2": "8.59", "y1": "6.51", "y2": "10.49" }
334
+ ]
335
+ ];
336
+ Icon($$renderer, spread_props([{ name: "share-2" }, props, { iconNode }]));
337
+ }
338
+ function Upload($$renderer, $$props) {
339
+ let { $$slots, $$events, ...props } = $$props;
340
+ const iconNode = [
341
+ ["path", { "d": "M12 3v12" }],
342
+ ["path", { "d": "m17 8-5-5-5 5" }],
343
+ ["path", { "d": "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }]
344
+ ];
345
+ Icon($$renderer, spread_props([{ name: "upload" }, props, { iconNode }]));
346
+ }
347
+ function ProjectPicker($$renderer, $$props) {
348
+ $$renderer.component(($$renderer2) => {
349
+ let {
350
+ projects,
351
+ value,
352
+ onChange,
353
+ id,
354
+ placeholder = "Select a project"
355
+ } = $$props;
356
+ const items = derived(() => projects.map((p) => ({ id: p.id, label: p.name })));
357
+ FilterableDropdown($$renderer2, {
358
+ items: items(),
359
+ value,
360
+ onChange,
361
+ id,
362
+ placeholder,
363
+ triggerIcon: Folder_open,
364
+ searchPlaceholder: "Filter projects"
365
+ });
366
+ });
367
+ }
368
+ function AddDefinitionDialog($$renderer, $$props) {
369
+ $$renderer.component(($$renderer2) => {
370
+ let {
371
+ open = false,
372
+ isAdding = false,
373
+ projects = [],
374
+ defaultProjectId,
375
+ computeServers = [],
376
+ defaultComputeServerId = null,
377
+ showProjectDropdown = false,
378
+ onOpenChange
379
+ } = $$props;
380
+ let displayName = "";
381
+ let description = "";
382
+ let category = "";
383
+ let tags = [];
384
+ let coverImage = "";
385
+ let imageMode = "url";
386
+ let selectedProjectId = "";
387
+ let selectedComputeServerId = "";
388
+ let imageInput = void 0;
389
+ let imageHasFile = false;
390
+ let validating = false;
391
+ let validationError = null;
392
+ let validationSchema = null;
393
+ async function handleSubmit() {
394
+ if (!displayName.trim()) {
395
+ toast.error("Display name is required");
396
+ return;
397
+ }
398
+ {
399
+ toast.error("A Grasshopper file is required");
400
+ return;
401
+ }
402
+ }
403
+ function resetForm() {
404
+ displayName = "";
405
+ description = "";
406
+ category = "";
407
+ tags = [];
408
+ coverImage = "";
409
+ imageMode = "url";
410
+ selectedProjectId = defaultProjectId ?? "";
411
+ selectedComputeServerId = "";
412
+ validating = false;
413
+ validationError = null;
414
+ validationSchema = null;
415
+ if (imageInput) imageInput.value = "";
416
+ imageHasFile = false;
417
+ }
418
+ function handleOpenChange(newOpen) {
419
+ if (!newOpen) resetForm();
420
+ onOpenChange?.(newOpen);
421
+ }
422
+ let $$settled = true;
423
+ let $$inner_renderer;
424
+ function $$render_inner($$renderer3) {
425
+ if (Root$1) {
426
+ $$renderer3.push("<!--[-->");
427
+ Root$1($$renderer3, {
428
+ open,
429
+ onOpenChange: handleOpenChange,
430
+ children: ($$renderer4) => {
431
+ if (Dialog_content) {
432
+ $$renderer4.push("<!--[-->");
433
+ Dialog_content($$renderer4, {
434
+ class: "max-w-xl",
435
+ children: ($$renderer5) => {
436
+ if (Dialog_header) {
437
+ $$renderer5.push("<!--[-->");
438
+ Dialog_header($$renderer5, {
439
+ children: ($$renderer6) => {
440
+ if (Dialog_title) {
441
+ $$renderer6.push("<!--[-->");
442
+ Dialog_title($$renderer6, {
443
+ children: ($$renderer7) => {
444
+ $$renderer7.push(`<!---->Add New Definition`);
445
+ },
446
+ $$slots: { default: true }
447
+ });
448
+ $$renderer6.push("<!--]-->");
449
+ } else {
450
+ $$renderer6.push("<!--[!-->");
451
+ $$renderer6.push("<!--]-->");
452
+ }
453
+ $$renderer6.push(` `);
454
+ if (Dialog_description) {
455
+ $$renderer6.push("<!--[-->");
456
+ Dialog_description($$renderer6, {
457
+ children: ($$renderer7) => {
458
+ $$renderer7.push(`<!---->Upload a Grasshopper file and fill in the metadata.`);
459
+ },
460
+ $$slots: { default: true }
461
+ });
462
+ $$renderer6.push("<!--]-->");
463
+ } else {
464
+ $$renderer6.push("<!--[!-->");
465
+ $$renderer6.push("<!--]-->");
466
+ }
467
+ },
468
+ $$slots: { default: true }
469
+ });
470
+ $$renderer5.push("<!--]-->");
471
+ } else {
472
+ $$renderer5.push("<!--[!-->");
473
+ $$renderer5.push("<!--]-->");
474
+ }
475
+ $$renderer5.push(` <div class="space-y-4">`);
476
+ if (showProjectDropdown || computeServers.length > 0) {
477
+ $$renderer5.push("<!--[0-->");
478
+ $$renderer5.push(`<div${attr_class(`grid gap-3 ${stringify(showProjectDropdown && computeServers.length > 0 ? "sm:grid-cols-2" : "")}`)}>`);
479
+ if (showProjectDropdown) {
480
+ $$renderer5.push("<!--[0-->");
481
+ $$renderer5.push(`<div class="space-y-1">`);
482
+ Label($$renderer5, {
483
+ for: "new-project",
484
+ children: ($$renderer6) => {
485
+ $$renderer6.push(`<!---->Project`);
486
+ },
487
+ $$slots: { default: true }
488
+ });
489
+ $$renderer5.push(`<!----> `);
490
+ ProjectPicker($$renderer5, {
491
+ id: "new-project",
492
+ projects,
493
+ value: selectedProjectId,
494
+ onChange: (id) => selectedProjectId = id
495
+ });
496
+ $$renderer5.push(`<!----></div>`);
497
+ } else if (defaultProjectId) {
498
+ $$renderer5.push("<!--[1-->");
499
+ const selectedProject = projects.find((p) => p.id === defaultProjectId);
500
+ $$renderer5.push(`<div class="space-y-1">`);
501
+ Label($$renderer5, {
502
+ children: ($$renderer6) => {
503
+ $$renderer6.push(`<!---->Project`);
504
+ },
505
+ $$slots: { default: true }
506
+ });
507
+ $$renderer5.push(`<!----> <div class="bg-muted rounded-md px-3 py-2"><p class="text-sm font-medium">${escape_html(selectedProject?.name ?? "Unknown")}</p></div></div>`);
508
+ } else {
509
+ $$renderer5.push("<!--[-1-->");
510
+ }
511
+ $$renderer5.push(`<!--]--> `);
512
+ if (computeServers.length > 0) {
513
+ $$renderer5.push("<!--[0-->");
514
+ $$renderer5.push(`<div class="space-y-1">`);
515
+ Label($$renderer5, {
516
+ for: "new-server",
517
+ children: ($$renderer6) => {
518
+ $$renderer6.push(`<!---->Compute Server`);
519
+ },
520
+ $$slots: { default: true }
521
+ });
522
+ $$renderer5.push(`<!----> `);
523
+ $$renderer5.select(
524
+ {
525
+ id: "new-server",
526
+ value: selectedComputeServerId || (defaultComputeServerId ?? ""),
527
+ onchange: (e) => {
528
+ const picked = e.currentTarget.value;
529
+ selectedComputeServerId = picked === defaultComputeServerId ? "" : picked;
530
+ },
531
+ class: "border-input bg-background focus-visible:ring-ring h-10 w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none"
532
+ },
533
+ ($$renderer6) => {
534
+ $$renderer6.push(`<!--[-->`);
535
+ const each_array = ensure_array_like(computeServers);
536
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
537
+ let s = each_array[$$index];
538
+ $$renderer6.option({ value: s.id }, ($$renderer7) => {
539
+ $$renderer7.push(`${escape_html(s.label)}${escape_html(s.id === defaultComputeServerId ? " (Default)" : "")}`);
540
+ });
541
+ }
542
+ $$renderer6.push(`<!--]-->`);
543
+ }
544
+ );
545
+ $$renderer5.push(`</div>`);
546
+ } else {
547
+ $$renderer5.push("<!--[-1-->");
548
+ }
549
+ $$renderer5.push(`<!--]--></div>`);
550
+ } else {
551
+ $$renderer5.push("<!--[-1-->");
552
+ }
553
+ $$renderer5.push(`<!--]--> <div class="space-y-2">`);
554
+ Label($$renderer5, {
555
+ for: "new-file",
556
+ children: ($$renderer6) => {
557
+ $$renderer6.push(`<!---->Grasshopper File <span class="text-destructive">*</span>`);
558
+ },
559
+ $$slots: { default: true }
560
+ });
561
+ $$renderer5.push(`<!----> <input id="new-file" type="file" accept=".gh,.ghx" class="border-input bg-background focus-visible:ring-ring flex h-10 w-full rounded-md border px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-2 focus-visible:outline-none disabled:opacity-50"/> `);
562
+ if (validating) {
563
+ $$renderer5.push("<!--[0-->");
564
+ $$renderer5.push(`<p class="text-muted-foreground flex items-center gap-2 text-xs"><svg class="h-3 w-3 animate-spin" viewBox="0 0 24 24" fill="none"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8v8z"></path></svg> Validating definition…</p>`);
565
+ } else if (validationError) {
566
+ $$renderer5.push("<!--[1-->");
567
+ $$renderer5.push(`<div class="border-destructive/40 bg-destructive/5 rounded-md border p-3"><p class="text-destructive text-xs font-medium">Validation failed</p> <p class="text-destructive/80 mt-0.5 text-xs">${escape_html(validationError)}</p> <p class="text-destructive/60 mt-1 text-xs">This definition can't be uploaded until it validates against an online compute server.</p></div>`);
568
+ } else if (validationSchema) {
569
+ $$renderer5.push("<!--[2-->");
570
+ $$renderer5.push(`<div class="border-success/30 bg-success/5 flex items-center gap-3 rounded-md border p-3"><div class="min-w-0 flex-1"><p class="text-success text-xs font-medium">Valid Selva definition</p> <p class="text-muted-foreground mt-0.5 text-xs">${escape_html(validationSchema.inputs.length)} input${escape_html(validationSchema.inputs.length === 1 ? "" : "s")},
571
+ ${escape_html(validationSchema.outputs.length)} output${escape_html(validationSchema.outputs.length === 1 ? "" : "s")}</p></div></div>`);
572
+ } else {
573
+ $$renderer5.push("<!--[-1-->");
574
+ }
575
+ $$renderer5.push(`<!--]--></div> <div class="space-y-2">`);
576
+ Label($$renderer5, {
577
+ for: "new-dn",
578
+ children: ($$renderer6) => {
579
+ $$renderer6.push(`<!---->Display Name <span class="text-destructive">*</span>`);
580
+ },
581
+ $$slots: { default: true }
582
+ });
583
+ $$renderer5.push(`<!----> `);
584
+ Input($$renderer5, {
585
+ id: "new-dn",
586
+ type: "text",
587
+ placeholder: "e.g., Parametric Tower",
588
+ get value() {
589
+ return displayName;
590
+ },
591
+ set value($$value) {
592
+ displayName = $$value;
593
+ $$settled = false;
594
+ }
595
+ });
596
+ $$renderer5.push(`<!----></div> <div class="space-y-2">`);
597
+ Label($$renderer5, {
598
+ for: "new-desc",
599
+ children: ($$renderer6) => {
600
+ $$renderer6.push(`<!---->Description`);
601
+ },
602
+ $$slots: { default: true }
603
+ });
604
+ $$renderer5.push(`<!----> `);
605
+ Textarea($$renderer5, {
606
+ id: "new-desc",
607
+ rows: 3,
608
+ placeholder: "Describe what this definition does…",
609
+ get value() {
610
+ return description;
611
+ },
612
+ set value($$value) {
613
+ description = $$value;
614
+ $$settled = false;
615
+ }
616
+ });
617
+ $$renderer5.push(`<!----></div> <div class="grid grid-cols-1 gap-3 md:grid-cols-2"><div class="space-y-1"><div class="flex items-center justify-between">`);
618
+ Label($$renderer5, {
619
+ for: "new-cat",
620
+ children: ($$renderer6) => {
621
+ $$renderer6.push(`<!---->Category`);
622
+ },
623
+ $$slots: { default: true }
624
+ });
625
+ $$renderer5.push(`<!----> <p class="text-muted-foreground text-xs">${escape_html(category?.length ?? 0)}/40</p></div> `);
626
+ Input($$renderer5, {
627
+ id: "new-cat",
628
+ type: "text",
629
+ maxlength: 40,
630
+ placeholder: "e.g., Architecture",
631
+ get value() {
632
+ return category;
633
+ },
634
+ set value($$value) {
635
+ category = $$value;
636
+ $$settled = false;
637
+ }
638
+ });
639
+ $$renderer5.push(`<!----></div> <div class="space-y-1"><div class="flex items-center justify-between">`);
640
+ Label($$renderer5, {
641
+ for: "new-tags",
642
+ children: ($$renderer6) => {
643
+ $$renderer6.push(`<!---->Tags`);
644
+ },
645
+ $$slots: { default: true }
646
+ });
647
+ $$renderer5.push(`<!----> <p class="text-muted-foreground text-xs">${escape_html(tags.length)}/5</p></div> `);
648
+ if (tags.length > 0) {
649
+ $$renderer5.push("<!--[0-->");
650
+ $$renderer5.push(`<div class="mb-2 flex flex-wrap gap-2"><!--[-->`);
651
+ const each_array_1 = ensure_array_like(tags);
652
+ for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
653
+ let tag = each_array_1[$$index_1];
654
+ Badge($$renderer5, {
655
+ variant: "outline",
656
+ class: "cursor-pointer gap-1",
657
+ children: ($$renderer6) => {
658
+ $$renderer6.push(`<!---->${escape_html(tag)} <button type="button" class="ml-0.5 inline-flex items-center justify-center transition-opacity hover:opacity-70" title="Remove tag">`);
659
+ X($$renderer6, { class: "h-3 w-3" });
660
+ $$renderer6.push(`<!----></button>`);
661
+ },
662
+ $$slots: { default: true }
663
+ });
664
+ }
665
+ $$renderer5.push(`<!--]--></div>`);
666
+ } else {
667
+ $$renderer5.push("<!--[-1-->");
668
+ }
669
+ $$renderer5.push(`<!--]--> `);
670
+ Input($$renderer5, {
671
+ id: "new-tags",
672
+ type: "text",
673
+ placeholder: "Add tag and press Enter",
674
+ disabled: tags.length >= 5,
675
+ onkeydown: (e) => {
676
+ if (e.key === "Enter") {
677
+ e.preventDefault();
678
+ const input = e.currentTarget;
679
+ const tag = input.value.trim();
680
+ if (tag && !tags.includes(tag) && tags.length < 5) {
681
+ tags = [...tags, tag];
682
+ input.value = "";
683
+ }
684
+ }
685
+ }
686
+ });
687
+ $$renderer5.push(`<!----></div></div> <div class="space-y-2">`);
688
+ Label($$renderer5, {
689
+ children: ($$renderer6) => {
690
+ $$renderer6.push(`<!---->Cover Image`);
691
+ },
692
+ $$slots: { default: true }
693
+ });
694
+ $$renderer5.push(`<!----> `);
695
+ ImageUploadField($$renderer5, {
696
+ mode: imageMode,
697
+ value: coverImage,
698
+ hasFile: imageHasFile,
699
+ onModeChange: (m) => imageMode = m,
700
+ onUpload: () => {
701
+ },
702
+ onFileSelected: () => imageHasFile = !!imageInput?.files?.length,
703
+ onUrlChange: (url) => coverImage = url,
704
+ get inputRef() {
705
+ return imageInput;
706
+ },
707
+ set inputRef($$value) {
708
+ imageInput = $$value;
709
+ $$settled = false;
710
+ }
711
+ });
712
+ $$renderer5.push(`<!----></div></div> `);
713
+ if (Dialog_footer) {
714
+ $$renderer5.push("<!--[-->");
715
+ Dialog_footer($$renderer5, {
716
+ class: "gap-2 sm:justify-end",
717
+ children: ($$renderer6) => {
718
+ Button($$renderer6, {
719
+ variant: "outline",
720
+ onclick: () => onOpenChange?.(false),
721
+ children: ($$renderer7) => {
722
+ $$renderer7.push(`<!---->Cancel`);
723
+ },
724
+ $$slots: { default: true }
725
+ });
726
+ $$renderer6.push(`<!----> `);
727
+ Button($$renderer6, {
728
+ onclick: handleSubmit,
729
+ disabled: isAdding || validating || !validationSchema,
730
+ children: ($$renderer7) => {
731
+ $$renderer7.push(`<!---->${escape_html(isAdding ? "Creating…" : validating ? "Validating…" : "Create Definition")}`);
732
+ },
733
+ $$slots: { default: true }
734
+ });
735
+ $$renderer6.push(`<!---->`);
736
+ },
737
+ $$slots: { default: true }
738
+ });
739
+ $$renderer5.push("<!--]-->");
740
+ } else {
741
+ $$renderer5.push("<!--[!-->");
742
+ $$renderer5.push("<!--]-->");
743
+ }
744
+ },
745
+ $$slots: { default: true }
746
+ });
747
+ $$renderer4.push("<!--]-->");
748
+ } else {
749
+ $$renderer4.push("<!--[!-->");
750
+ $$renderer4.push("<!--]-->");
751
+ }
752
+ },
753
+ $$slots: { default: true }
754
+ });
755
+ $$renderer3.push("<!--]-->");
756
+ } else {
757
+ $$renderer3.push("<!--[!-->");
758
+ $$renderer3.push("<!--]-->");
759
+ }
760
+ }
761
+ do {
762
+ $$settled = true;
763
+ $$inner_renderer = $$renderer2.copy();
764
+ $$render_inner($$inner_renderer);
765
+ } while (!$$settled);
766
+ $$renderer2.subsume($$inner_renderer);
767
+ });
768
+ }
769
+ function ProjectSidebar($$renderer, $$props) {
770
+ $$renderer.component(($$renderer2) => {
771
+ let {
772
+ projects,
773
+ records,
774
+ activeProjectId,
775
+ canManageProjects
776
+ } = $$props;
777
+ let filterQuery = "";
778
+ const filteredProjects = derived(() => {
779
+ const q = filterQuery.trim().toLowerCase();
780
+ if (!q) return projects;
781
+ return projects.filter((p) => p.name.toLowerCase().includes(q));
782
+ });
783
+ let $$settled = true;
784
+ let $$inner_renderer;
785
+ function $$render_inner($$renderer3) {
786
+ $$renderer3.push(`<aside class="border-border bg-background flex w-60 shrink-0 flex-col overflow-y-auto border-r"><div class="flex items-center justify-between px-4 pt-5 pb-3"><span class="text-muted-foreground text-xs font-medium tracking-wider uppercase">Projects</span> `);
787
+ if (canManageProjects) {
788
+ $$renderer3.push("<!--[0-->");
789
+ $$renderer3.push(`<button class="text-muted-foreground hover:text-foreground rounded p-0.5 transition-colors" title="New project" aria-label="New project">`);
790
+ Plus($$renderer3, { class: "h-3.5 w-3.5" });
791
+ $$renderer3.push(`<!----></button>`);
792
+ } else {
793
+ $$renderer3.push("<!--[-1-->");
794
+ }
795
+ $$renderer3.push(`<!--]--></div> `);
796
+ {
797
+ $$renderer3.push("<!--[-1-->");
798
+ }
799
+ $$renderer3.push(`<!--]--> `);
800
+ if (projects.length > 4) {
801
+ $$renderer3.push("<!--[0-->");
802
+ $$renderer3.push(`<div class="relative mx-3 mb-2">`);
803
+ Search($$renderer3, {
804
+ class: "text-muted-foreground pointer-events-none absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2"
805
+ });
806
+ $$renderer3.push(`<!----> <input${attr("value", filterQuery)} placeholder="Filter projects" class="border-input bg-background placeholder:text-muted-foreground focus:border-ring h-7 w-full rounded-md border pr-2 pl-7 text-xs transition-colors outline-none"/></div>`);
807
+ } else {
808
+ $$renderer3.push("<!--[-1-->");
809
+ }
810
+ $$renderer3.push(`<!--]--> <nav class="flex-1 space-y-px pr-2 pb-4"><button${attr_class(`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${activeProjectId === null ? "bg-accent text-accent-foreground rounded-r-md pl-4" : "text-muted-foreground hover:bg-muted/60 hover:text-foreground mx-2 rounded-md pl-2.5"}`)}>`);
811
+ if (activeProjectId === null) {
812
+ $$renderer3.push("<!--[0-->");
813
+ $$renderer3.push(`<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>`);
814
+ } else {
815
+ $$renderer3.push("<!--[-1-->");
816
+ }
817
+ $$renderer3.push(`<!--]--> `);
818
+ Folder_open($$renderer3, { class: "h-3.5 w-3.5 shrink-0 opacity-70" });
819
+ $$renderer3.push(`<!----> <span class="flex-1 truncate text-sm font-medium">All projects</span> <span class="shrink-0 font-mono text-[11px] tabular-nums opacity-60">${escape_html(records.length)}</span></button> `);
820
+ if (filteredProjects().length > 0) {
821
+ $$renderer3.push("<!--[0-->");
822
+ $$renderer3.push(`<div class="border-border/60 my-2 border-t"></div>`);
823
+ } else {
824
+ $$renderer3.push("<!--[-1-->");
825
+ }
826
+ $$renderer3.push(`<!--]--> <!--[-->`);
827
+ const each_array = ensure_array_like(filteredProjects());
828
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
829
+ let project = each_array[$$index];
830
+ const isActive = activeProjectId === project.id;
831
+ const defCount = records.filter((r) => r.projectId === project.id).length;
832
+ $$renderer3.push(`<button${attr_class(`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${isActive ? "bg-accent text-accent-foreground rounded-r-md pl-4" : "text-muted-foreground hover:bg-muted/60 hover:text-foreground mx-2 rounded-md pl-2.5"}`)}>`);
833
+ if (isActive) {
834
+ $$renderer3.push("<!--[0-->");
835
+ $$renderer3.push(`<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>`);
836
+ } else {
837
+ $$renderer3.push("<!--[-1-->");
838
+ }
839
+ $$renderer3.push(`<!--]--> <span class="flex-1 truncate text-sm font-medium">${escape_html(project.name)}</span> <span class="shrink-0 font-mono text-[11px] tabular-nums opacity-60">${escape_html(defCount)}</span></button>`);
840
+ }
841
+ $$renderer3.push(`<!--]--> `);
842
+ if (projects.length === 0) {
843
+ $$renderer3.push("<!--[0-->");
844
+ $$renderer3.push(`<p class="text-muted-foreground px-2 py-4 text-center text-xs">No projects yet</p>`);
845
+ } else if (filteredProjects().length === 0 && filterQuery) ;
846
+ else {
847
+ $$renderer3.push("<!--[-1-->");
848
+ }
849
+ $$renderer3.push(`<!--]--></nav></aside>`);
850
+ }
851
+ do {
852
+ $$settled = true;
853
+ $$inner_renderer = $$renderer2.copy();
854
+ $$render_inner($$inner_renderer);
855
+ } while (!$$settled);
856
+ $$renderer2.subsume($$inner_renderer);
857
+ });
858
+ }
859
+ function AddMemberPicker($$renderer, $$props) {
860
+ $$renderer.component(($$renderer2) => {
861
+ let { availableUsers } = $$props;
862
+ let query = "";
863
+ let highlighted = 0;
864
+ const matches = derived(() => {
865
+ const q = query.trim().toLowerCase();
866
+ if (!q) return availableUsers.slice(0, 50);
867
+ return availableUsers.filter((u) => {
868
+ const name = (u.displayName ?? "").toLowerCase();
869
+ const email = (u.email ?? "").toLowerCase();
870
+ return name.includes(q) || email.includes(q);
871
+ }).slice(0, 50);
872
+ });
873
+ function userLabel(u) {
874
+ return u.displayName ?? u.email ?? u.id.slice(0, 8);
875
+ }
876
+ $$renderer2.push(`<div class="border-border bg-card rounded-md border">`);
877
+ {
878
+ $$renderer2.push("<!--[0-->");
879
+ $$renderer2.push(`<div class="border-border relative border-b">`);
880
+ Search($$renderer2, {
881
+ class: "text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-3.5 w-3.5 -translate-y-1/2"
882
+ });
883
+ $$renderer2.push(`<!----> <input${attr("value", query)} autofocus="" placeholder="Search by name or email" class="placeholder:text-muted-foreground h-9 w-full rounded-t-md bg-transparent pr-9 pl-9 text-sm outline-none"/> <button type="button" class="text-muted-foreground hover:text-foreground absolute top-1/2 right-2 -translate-y-1/2 rounded p-1" aria-label="Cancel">`);
884
+ X($$renderer2, { class: "h-3.5 w-3.5" });
885
+ $$renderer2.push(`<!----></button></div> <div class="max-h-60 overflow-y-auto py-1">`);
886
+ if (matches().length === 0) {
887
+ $$renderer2.push("<!--[0-->");
888
+ $$renderer2.push(`<p class="text-muted-foreground px-3 py-6 text-center text-xs">${escape_html(availableUsers.length === 0 ? "Everyone in this org is already on the project." : `No matches for "${query}"`)}</p>`);
889
+ } else {
890
+ $$renderer2.push("<!--[-1-->");
891
+ $$renderer2.push(`<!--[-->`);
892
+ const each_array = ensure_array_like(matches());
893
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
894
+ let user = each_array[i];
895
+ $$renderer2.push(`<button type="button"${attr("data-idx", i)}${attr_class(`flex w-full items-center gap-3 px-3 py-2 text-left transition-colors ${highlighted === i ? "bg-accent text-accent-foreground" : "hover:bg-muted/60"}`)}>`);
896
+ UserAvatar($$renderer2, { name: userLabel(user), size: "sm" });
897
+ $$renderer2.push(`<!----> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium">${escape_html(userLabel(user))}</p> `);
898
+ if (user.displayName && user.email) {
899
+ $$renderer2.push("<!--[0-->");
900
+ $$renderer2.push(`<p class="text-muted-foreground truncate font-mono text-xs">${escape_html(user.email)}</p>`);
901
+ } else {
902
+ $$renderer2.push("<!--[-1-->");
903
+ }
904
+ $$renderer2.push(`<!--]--></div></button>`);
905
+ }
906
+ $$renderer2.push(`<!--]-->`);
907
+ }
908
+ $$renderer2.push(`<!--]--></div>`);
909
+ }
910
+ $$renderer2.push(`<!--]--></div>`);
911
+ });
912
+ }
913
+ function ProjectSettingsDialog($$renderer, $$props) {
914
+ $$renderer.component(($$renderer2) => {
915
+ let {
916
+ project,
917
+ users,
918
+ open,
919
+ onOpenChange,
920
+ onSave,
921
+ onDelete,
922
+ onUpdateMemberRole,
923
+ onRemoveMember
924
+ } = $$props;
925
+ let name = project.name;
926
+ let description = project.description ?? "";
927
+ let visibility = project.visibility;
928
+ let saving = false;
929
+ let showAddForm = false;
930
+ let removing = null;
931
+ function userLabel(userId) {
932
+ const u = users.find((u2) => u2.id === userId);
933
+ return u?.displayName ?? u?.email ?? userId.slice(0, 8);
934
+ }
935
+ function userEmail(userId) {
936
+ return users.find((u) => u.id === userId)?.email;
937
+ }
938
+ const availableUsers = derived(() => {
939
+ const ids = new Set(project.members.map((m) => m.userId));
940
+ return users.filter((u) => !ids.has(u.id));
941
+ });
942
+ async function save() {
943
+ saving = true;
944
+ try {
945
+ await onSave(project.id, { name, description, visibility });
946
+ } finally {
947
+ saving = false;
948
+ }
949
+ }
950
+ async function remove(userId) {
951
+ removing = userId;
952
+ try {
953
+ await onRemoveMember(project.id, userId);
954
+ } finally {
955
+ removing = null;
956
+ }
957
+ }
958
+ let $$settled = true;
959
+ let $$inner_renderer;
960
+ function $$render_inner($$renderer3) {
961
+ if (Root$1) {
962
+ $$renderer3.push("<!--[-->");
963
+ Root$1($$renderer3, {
964
+ open,
965
+ onOpenChange,
966
+ children: ($$renderer4) => {
967
+ if (Dialog_content) {
968
+ $$renderer4.push("<!--[-->");
969
+ Dialog_content($$renderer4, {
970
+ class: "max-w-lg",
971
+ children: ($$renderer5) => {
972
+ if (Dialog_header) {
973
+ $$renderer5.push("<!--[-->");
974
+ Dialog_header($$renderer5, {
975
+ children: ($$renderer6) => {
976
+ if (Dialog_title) {
977
+ $$renderer6.push("<!--[-->");
978
+ Dialog_title($$renderer6, {
979
+ children: ($$renderer7) => {
980
+ $$renderer7.push(`<!---->Project settings`);
981
+ },
982
+ $$slots: { default: true }
983
+ });
984
+ $$renderer6.push("<!--]-->");
985
+ } else {
986
+ $$renderer6.push("<!--[!-->");
987
+ $$renderer6.push("<!--]-->");
988
+ }
989
+ $$renderer6.push(` `);
990
+ if (Dialog_description) {
991
+ $$renderer6.push("<!--[-->");
992
+ Dialog_description($$renderer6, {
993
+ children: ($$renderer7) => {
994
+ $$renderer7.push(`<!---->Manage this project's details and members.`);
995
+ },
996
+ $$slots: { default: true }
997
+ });
998
+ $$renderer6.push("<!--]-->");
999
+ } else {
1000
+ $$renderer6.push("<!--[!-->");
1001
+ $$renderer6.push("<!--]-->");
1002
+ }
1003
+ },
1004
+ $$slots: { default: true }
1005
+ });
1006
+ $$renderer5.push("<!--]-->");
1007
+ } else {
1008
+ $$renderer5.push("<!--[!-->");
1009
+ $$renderer5.push("<!--]-->");
1010
+ }
1011
+ $$renderer5.push(` `);
1012
+ if (Tabs) {
1013
+ $$renderer5.push("<!--[-->");
1014
+ Tabs($$renderer5, {
1015
+ value: "general",
1016
+ class: "mt-2",
1017
+ children: ($$renderer6) => {
1018
+ if (Tabs_list) {
1019
+ $$renderer6.push("<!--[-->");
1020
+ Tabs_list($$renderer6, {
1021
+ class: "grid w-full grid-cols-2",
1022
+ children: ($$renderer7) => {
1023
+ if (Tabs_trigger) {
1024
+ $$renderer7.push("<!--[-->");
1025
+ Tabs_trigger($$renderer7, {
1026
+ value: "general",
1027
+ children: ($$renderer8) => {
1028
+ $$renderer8.push(`<!---->General`);
1029
+ },
1030
+ $$slots: { default: true }
1031
+ });
1032
+ $$renderer7.push("<!--]-->");
1033
+ } else {
1034
+ $$renderer7.push("<!--[!-->");
1035
+ $$renderer7.push("<!--]-->");
1036
+ }
1037
+ $$renderer7.push(` `);
1038
+ if (Tabs_trigger) {
1039
+ $$renderer7.push("<!--[-->");
1040
+ Tabs_trigger($$renderer7, {
1041
+ value: "members",
1042
+ class: "gap-1.5",
1043
+ children: ($$renderer8) => {
1044
+ Users($$renderer8, { class: "h-3.5 w-3.5" });
1045
+ $$renderer8.push(`<!----> Members <span class="text-muted-foreground ml-1 font-mono text-[11px]">${escape_html(project.members.length)}</span>`);
1046
+ },
1047
+ $$slots: { default: true }
1048
+ });
1049
+ $$renderer7.push("<!--]-->");
1050
+ } else {
1051
+ $$renderer7.push("<!--[!-->");
1052
+ $$renderer7.push("<!--]-->");
1053
+ }
1054
+ },
1055
+ $$slots: { default: true }
1056
+ });
1057
+ $$renderer6.push("<!--]-->");
1058
+ } else {
1059
+ $$renderer6.push("<!--[!-->");
1060
+ $$renderer6.push("<!--]-->");
1061
+ }
1062
+ $$renderer6.push(` `);
1063
+ if (Tabs_content) {
1064
+ $$renderer6.push("<!--[-->");
1065
+ Tabs_content($$renderer6, {
1066
+ value: "general",
1067
+ class: "mt-4 space-y-4",
1068
+ children: ($$renderer7) => {
1069
+ $$renderer7.push(`<div class="space-y-1.5">`);
1070
+ Label($$renderer7, {
1071
+ for: "proj-name",
1072
+ children: ($$renderer8) => {
1073
+ $$renderer8.push(`<!---->Name`);
1074
+ },
1075
+ $$slots: { default: true }
1076
+ });
1077
+ $$renderer7.push(`<!----> `);
1078
+ Input($$renderer7, {
1079
+ id: "proj-name",
1080
+ get value() {
1081
+ return name;
1082
+ },
1083
+ set value($$value) {
1084
+ name = $$value;
1085
+ $$settled = false;
1086
+ }
1087
+ });
1088
+ $$renderer7.push(`<!----></div> <div class="space-y-1.5">`);
1089
+ Label($$renderer7, {
1090
+ for: "proj-desc",
1091
+ children: ($$renderer8) => {
1092
+ $$renderer8.push(`<!---->Description`);
1093
+ },
1094
+ $$slots: { default: true }
1095
+ });
1096
+ $$renderer7.push(`<!----> `);
1097
+ Textarea($$renderer7, {
1098
+ id: "proj-desc",
1099
+ rows: 2,
1100
+ get value() {
1101
+ return description;
1102
+ },
1103
+ set value($$value) {
1104
+ description = $$value;
1105
+ $$settled = false;
1106
+ }
1107
+ });
1108
+ $$renderer7.push(`<!----></div> <div class="space-y-1.5">`);
1109
+ Label($$renderer7, {
1110
+ for: "proj-vis",
1111
+ children: ($$renderer8) => {
1112
+ $$renderer8.push(`<!---->Visibility`);
1113
+ },
1114
+ $$slots: { default: true }
1115
+ });
1116
+ $$renderer7.push(`<!----> `);
1117
+ $$renderer7.select(
1118
+ {
1119
+ id: "proj-vis",
1120
+ value: visibility,
1121
+ class: "border-input bg-background h-10 w-full rounded-md border px-3 text-sm"
1122
+ },
1123
+ ($$renderer8) => {
1124
+ $$renderer8.option({ value: "public" }, ($$renderer9) => {
1125
+ $$renderer9.push(`Public — any authenticated user can solve`);
1126
+ });
1127
+ $$renderer8.option({ value: "org" }, ($$renderer9) => {
1128
+ $$renderer9.push(`Org — any org member can solve`);
1129
+ });
1130
+ $$renderer8.option({ value: "private" }, ($$renderer9) => {
1131
+ $$renderer9.push(`Private — only project members can solve`);
1132
+ });
1133
+ }
1134
+ );
1135
+ $$renderer7.push(`</div> <div class="flex items-center justify-between pt-2">`);
1136
+ Button($$renderer7, {
1137
+ onclick: () => onDelete(project.id),
1138
+ variant: "ghost",
1139
+ size: "sm",
1140
+ class: "text-destructive hover:text-destructive gap-1.5 px-2",
1141
+ children: ($$renderer8) => {
1142
+ Trash_2($$renderer8, { class: "h-3.5 w-3.5" });
1143
+ $$renderer8.push(`<!----> Delete project`);
1144
+ },
1145
+ $$slots: { default: true }
1146
+ });
1147
+ $$renderer7.push(`<!----> <div class="flex gap-2">`);
1148
+ Button($$renderer7, {
1149
+ onclick: () => onOpenChange(false),
1150
+ variant: "outline",
1151
+ size: "sm",
1152
+ children: ($$renderer8) => {
1153
+ $$renderer8.push(`<!---->Cancel`);
1154
+ },
1155
+ $$slots: { default: true }
1156
+ });
1157
+ $$renderer7.push(`<!----> `);
1158
+ Button($$renderer7, {
1159
+ onclick: save,
1160
+ disabled: saving,
1161
+ size: "sm",
1162
+ children: ($$renderer8) => {
1163
+ $$renderer8.push(`<!---->${escape_html(saving ? "Saving…" : "Save")}`);
1164
+ },
1165
+ $$slots: { default: true }
1166
+ });
1167
+ $$renderer7.push(`<!----></div></div>`);
1168
+ },
1169
+ $$slots: { default: true }
1170
+ });
1171
+ $$renderer6.push("<!--]-->");
1172
+ } else {
1173
+ $$renderer6.push("<!--[!-->");
1174
+ $$renderer6.push("<!--]-->");
1175
+ }
1176
+ $$renderer6.push(` `);
1177
+ if (Tabs_content) {
1178
+ $$renderer6.push("<!--[-->");
1179
+ Tabs_content($$renderer6, {
1180
+ value: "members",
1181
+ class: "mt-4 space-y-3",
1182
+ children: ($$renderer7) => {
1183
+ if (project.members.length === 0 && !showAddForm) {
1184
+ $$renderer7.push("<!--[0-->");
1185
+ EmptyState($$renderer7, {
1186
+ size: "sm",
1187
+ icon: Users,
1188
+ title: "No members yet",
1189
+ description: "Add members to control who can edit this project."
1190
+ });
1191
+ } else if (project.members.length > 0) {
1192
+ $$renderer7.push("<!--[1-->");
1193
+ $$renderer7.push(`<div class="border-border bg-card overflow-hidden rounded-md border"><!--[-->`);
1194
+ const each_array = ensure_array_like(project.members);
1195
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1196
+ let member = each_array[$$index];
1197
+ $$renderer7.push(`<div class="border-border flex items-center gap-3 border-b px-3 py-2.5 last:border-0">`);
1198
+ UserAvatar($$renderer7, { name: userLabel(member.userId), size: "sm" });
1199
+ $$renderer7.push(`<!----> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium">${escape_html(userLabel(member.userId))}</p> `);
1200
+ if (userEmail(member.userId) && userEmail(member.userId) !== userLabel(member.userId)) {
1201
+ $$renderer7.push("<!--[0-->");
1202
+ $$renderer7.push(`<p class="text-muted-foreground truncate font-mono text-xs">${escape_html(userEmail(member.userId))}</p>`);
1203
+ } else {
1204
+ $$renderer7.push("<!--[-1-->");
1205
+ }
1206
+ $$renderer7.push(`<!--]--></div> `);
1207
+ $$renderer7.select(
1208
+ {
1209
+ value: member.role,
1210
+ onchange: (e) => onUpdateMemberRole(project.id, member.userId, e.target.value),
1211
+ class: "border-input bg-background h-8 rounded-md border px-2 text-xs outline-none"
1212
+ },
1213
+ ($$renderer8) => {
1214
+ $$renderer8.option({ value: "owner" }, ($$renderer9) => {
1215
+ $$renderer9.push(`Owner`);
1216
+ });
1217
+ $$renderer8.option({ value: "editor" }, ($$renderer9) => {
1218
+ $$renderer9.push(`Editor`);
1219
+ });
1220
+ $$renderer8.option({ value: "viewer" }, ($$renderer9) => {
1221
+ $$renderer9.push(`Viewer`);
1222
+ });
1223
+ }
1224
+ );
1225
+ $$renderer7.push(` `);
1226
+ Button($$renderer7, {
1227
+ onclick: () => remove(member.userId),
1228
+ disabled: removing === member.userId,
1229
+ variant: "ghost",
1230
+ size: "icon",
1231
+ class: "text-muted-foreground hover:text-destructive h-7 w-7",
1232
+ children: ($$renderer8) => {
1233
+ X($$renderer8, { class: "h-3.5 w-3.5" });
1234
+ },
1235
+ $$slots: { default: true }
1236
+ });
1237
+ $$renderer7.push(`<!----></div>`);
1238
+ }
1239
+ $$renderer7.push(`<!--]--></div>`);
1240
+ } else {
1241
+ $$renderer7.push("<!--[-1-->");
1242
+ }
1243
+ $$renderer7.push(`<!--]--> `);
1244
+ if (showAddForm) {
1245
+ $$renderer7.push("<!--[0-->");
1246
+ AddMemberPicker($$renderer7, {
1247
+ availableUsers: availableUsers()
1248
+ });
1249
+ } else {
1250
+ $$renderer7.push("<!--[-1-->");
1251
+ Button($$renderer7, {
1252
+ onclick: () => showAddForm = true,
1253
+ variant: "outline",
1254
+ size: "sm",
1255
+ class: "gap-1.5",
1256
+ children: ($$renderer8) => {
1257
+ User_plus($$renderer8, { class: "h-3.5 w-3.5" });
1258
+ $$renderer8.push(`<!----> Add member`);
1259
+ },
1260
+ $$slots: { default: true }
1261
+ });
1262
+ }
1263
+ $$renderer7.push(`<!--]-->`);
1264
+ },
1265
+ $$slots: { default: true }
1266
+ });
1267
+ $$renderer6.push("<!--]-->");
1268
+ } else {
1269
+ $$renderer6.push("<!--[!-->");
1270
+ $$renderer6.push("<!--]-->");
1271
+ }
1272
+ },
1273
+ $$slots: { default: true }
1274
+ });
1275
+ $$renderer5.push("<!--]-->");
1276
+ } else {
1277
+ $$renderer5.push("<!--[!-->");
1278
+ $$renderer5.push("<!--]-->");
1279
+ }
1280
+ },
1281
+ $$slots: { default: true }
1282
+ });
1283
+ $$renderer4.push("<!--]-->");
1284
+ } else {
1285
+ $$renderer4.push("<!--[!-->");
1286
+ $$renderer4.push("<!--]-->");
1287
+ }
1288
+ },
1289
+ $$slots: { default: true }
1290
+ });
1291
+ $$renderer3.push("<!--]-->");
1292
+ } else {
1293
+ $$renderer3.push("<!--[!-->");
1294
+ $$renderer3.push("<!--]-->");
1295
+ }
1296
+ }
1297
+ do {
1298
+ $$settled = true;
1299
+ $$inner_renderer = $$renderer2.copy();
1300
+ $$render_inner($$inner_renderer);
1301
+ } while (!$$settled);
1302
+ $$renderer2.subsume($$inner_renderer);
1303
+ });
1304
+ }
1305
+ function StatusBadge($$renderer, $$props) {
1306
+ $$renderer.component(($$renderer2) => {
1307
+ let { status, class: className = "" } = $$props;
1308
+ $$renderer2.push(`<span${attr_class(`inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 font-mono text-[11px] tracking-wide ${stringify(statusRing(status))} ${stringify(className)}`)}><span${attr_class(`h-1.5 w-1.5 rounded-full ${stringify(statusDot(status))}`)}></span> ${escape_html(status)}</span>`);
1309
+ });
1310
+ }
1311
+ function DefinitionListView($$renderer, $$props) {
1312
+ $$renderer.component(($$renderer2) => {
1313
+ let { records, projects } = $$props;
1314
+ const gridTemplate = "grid-template-columns: 40px 1.6fr 0.9fr 0.8fr 0.7fr 0.6fr 36px";
1315
+ function projectName(id) {
1316
+ return projects.find((p) => p.id === id)?.name ?? "";
1317
+ }
1318
+ $$renderer2.push(`<div class="border-border bg-card overflow-hidden rounded-xl border"><div class="border-border bg-muted/50 text-muted-foreground grid border-b px-4 py-2.5 font-mono text-[10.5px] tracking-widest uppercase"${attr_style(gridTemplate)}><span></span><span>Definition</span><span>Project</span><span>Status</span><span>Updated</span> <span class="text-right">Runs</span><span></span></div> <!--[-->`);
1319
+ const each_array = ensure_array_like(records);
1320
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
1321
+ let record = each_array[i];
1322
+ $$renderer2.push(`<div${attr_class(`grid items-center gap-4 px-4 py-3 text-[13px] ${i < records.length - 1 ? "border-border border-b" : ""}`)}${attr_style(gridTemplate)}>`);
1323
+ if (record.coverImage) {
1324
+ $$renderer2.push("<!--[0-->");
1325
+ $$renderer2.push(`<div class="flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><img${attr("src", record.coverImage)} alt="" class="h-full w-full object-cover"/></div>`);
1326
+ } else {
1327
+ $$renderer2.push("<!--[-1-->");
1328
+ const hues = huesFor(record.guid);
1329
+ $$renderer2.push(`<div class="tool-cover-fallback flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"${attr_style("", { "--tool-h1": hues.h1, "--tool-h2": hues.h2 })}><span class="text-foreground/40 text-base font-semibold">${escape_html(monogram(record.displayName))}</span></div>`);
1330
+ }
1331
+ $$renderer2.push(`<!--]--> <span class="min-w-0"><span class="font-semibold">${escape_html(record.displayName)}</span> `);
1332
+ if (record.description) {
1333
+ $$renderer2.push("<!--[0-->");
1334
+ $$renderer2.push(`<span class="text-muted-foreground ml-2 text-[12px]">${escape_html(record.description.slice(0, 60))}${escape_html(record.description.length > 60 ? "…" : "")}</span>`);
1335
+ } else {
1336
+ $$renderer2.push("<!--[-1-->");
1337
+ }
1338
+ $$renderer2.push(`<!--]--></span> <span class="text-muted-foreground">${escape_html(projectName(record.projectId))}</span> <span>`);
1339
+ StatusBadge($$renderer2, { status: record.status });
1340
+ $$renderer2.push(`<!----></span> <span class="text-muted-foreground font-mono text-[12px]">${escape_html(formatUpdated(record.updatedAt))}</span> <span class="text-right font-mono text-[12px]">${escape_html(record.solveCount.toLocaleString())}</span> <span class="flex justify-end"><button type="button" class="text-muted-foreground hover:bg-muted hover:text-foreground rounded p-1 transition-colors"${attr("aria-label", `Open ${stringify(record.displayName)}`)}>`);
1341
+ Ellipsis($$renderer2, { class: "h-4 w-4" });
1342
+ $$renderer2.push(`<!----></button></span></div>`);
1343
+ }
1344
+ $$renderer2.push(`<!--]--></div>`);
1345
+ });
1346
+ }
1347
+ function DefinitionDetailDrawer($$renderer, $$props) {
1348
+ $$renderer.component(($$renderer2) => {
1349
+ let {
1350
+ record,
1351
+ projectName,
1352
+ canEdit,
1353
+ showShare,
1354
+ onClose,
1355
+ onEdit,
1356
+ onOpenRunner,
1357
+ onShare
1358
+ } = $$props;
1359
+ Drawer($$renderer2, {
1360
+ onClose,
1361
+ children: ($$renderer3) => {
1362
+ $$renderer3.push(`<div class="border-border flex items-start justify-between gap-4 border-b p-6"><div class="min-w-0"><div class="flex items-center gap-2">`);
1363
+ StatusBadge($$renderer3, { status: record.status });
1364
+ $$renderer3.push(`<!----> <span class="text-muted-foreground font-mono text-[11px] tracking-wide uppercase">${escape_html(projectName)}</span></div> <h2 class="mt-2.5 text-xl font-semibold tracking-tight">${escape_html(record.displayName)}</h2> `);
1365
+ if (record.description) {
1366
+ $$renderer3.push("<!--[0-->");
1367
+ $$renderer3.push(`<p class="text-muted-foreground mt-1 text-sm">${escape_html(record.description)}</p>`);
1368
+ } else {
1369
+ $$renderer3.push("<!--[-1-->");
1370
+ }
1371
+ $$renderer3.push(`<!--]--></div> `);
1372
+ Button($$renderer3, {
1373
+ variant: "ghost",
1374
+ size: "icon",
1375
+ onclick: onClose,
1376
+ class: "mt-0.5 h-8 w-8 shrink-0",
1377
+ children: ($$renderer4) => {
1378
+ X($$renderer4, { class: "h-4 w-4" });
1379
+ },
1380
+ $$slots: { default: true }
1381
+ });
1382
+ $$renderer3.push(`<!----></div> <div class="flex-1 space-y-5 overflow-y-auto p-6">`);
1383
+ if (record.coverImage) {
1384
+ $$renderer3.push("<!--[0-->");
1385
+ $$renderer3.push(`<img${attr("src", record.coverImage)}${attr("alt", record.displayName)} class="border-border aspect-4/3 w-full rounded-lg border object-cover"/>`);
1386
+ } else {
1387
+ $$renderer3.push("<!--[-1-->");
1388
+ $$renderer3.push(`<div class="border-border bg-muted flex aspect-4/3 w-full items-center justify-center rounded-lg border"><span class="text-muted-foreground font-mono text-[11px] tracking-widest uppercase">No preview</span></div>`);
1389
+ }
1390
+ $$renderer3.push(`<!--]--> <div class="flex gap-2">`);
1391
+ Button($$renderer3, {
1392
+ class: "flex-1",
1393
+ onclick: () => onOpenRunner(record.guid, "live"),
1394
+ children: ($$renderer4) => {
1395
+ Play($$renderer4, { class: "mr-1.5 h-3.5 w-3.5" });
1396
+ $$renderer4.push(`<!----> Run`);
1397
+ },
1398
+ $$slots: { default: true }
1399
+ });
1400
+ $$renderer3.push(`<!----> `);
1401
+ if (canEdit) {
1402
+ $$renderer3.push("<!--[0-->");
1403
+ if (showShare) {
1404
+ $$renderer3.push("<!--[0-->");
1405
+ Button($$renderer3, {
1406
+ variant: "outline",
1407
+ size: "icon",
1408
+ onclick: () => onShare(record),
1409
+ title: "Share links",
1410
+ children: ($$renderer4) => {
1411
+ Share_2($$renderer4, { class: "h-4 w-4" });
1412
+ },
1413
+ $$slots: { default: true }
1414
+ });
1415
+ } else {
1416
+ $$renderer3.push("<!--[-1-->");
1417
+ }
1418
+ $$renderer3.push(`<!--]--> `);
1419
+ Button($$renderer3, {
1420
+ variant: "outline",
1421
+ onclick: () => onEdit(record),
1422
+ children: ($$renderer4) => {
1423
+ $$renderer4.push(`<!---->Edit`);
1424
+ },
1425
+ $$slots: { default: true }
1426
+ });
1427
+ $$renderer3.push(`<!---->`);
1428
+ } else {
1429
+ $$renderer3.push("<!--[-1-->");
1430
+ }
1431
+ $$renderer3.push(`<!--]--></div> `);
1432
+ Separator($$renderer3, {});
1433
+ $$renderer3.push(`<!----> <div class="grid grid-cols-2 gap-x-4 gap-y-3"><div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Updated</p> <p class="mt-1 text-sm">${escape_html(formatUpdated(record.updatedAt))} ago</p></div> <div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Runs</p> <p class="mt-1 text-sm">${escape_html(record.solveCount.toLocaleString())}</p></div> `);
1434
+ if (record.category) {
1435
+ $$renderer3.push("<!--[0-->");
1436
+ $$renderer3.push(`<div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Category</p> <p class="mt-1 text-sm">${escape_html(record.category)}</p></div>`);
1437
+ } else {
1438
+ $$renderer3.push("<!--[-1-->");
1439
+ }
1440
+ $$renderer3.push(`<!--]--></div> `);
1441
+ if (record.tags?.length) {
1442
+ $$renderer3.push("<!--[0-->");
1443
+ $$renderer3.push(`<div>`);
1444
+ Separator($$renderer3, { class: "mb-4" });
1445
+ $$renderer3.push(`<!----> <div class="flex flex-wrap gap-1.5"><!--[-->`);
1446
+ const each_array = ensure_array_like(record.tags);
1447
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1448
+ let tag = each_array[$$index];
1449
+ $$renderer3.push(`<span class="bg-muted text-muted-foreground rounded px-2 py-0.5 font-mono text-[11px]">#${escape_html(tag)}</span>`);
1450
+ }
1451
+ $$renderer3.push(`<!--]--></div></div>`);
1452
+ } else {
1453
+ $$renderer3.push("<!--[-1-->");
1454
+ }
1455
+ $$renderer3.push(`<!--]--></div>`);
1456
+ }
1457
+ });
1458
+ });
1459
+ }
1460
+ function UploadVersionDialog($$renderer, $$props) {
1461
+ $$renderer.component(($$renderer2) => {
1462
+ let {
1463
+ nextVersionNumber,
1464
+ open,
1465
+ onOpenChange
1466
+ } = $$props;
1467
+ let changeNote = "";
1468
+ async function submit() {
1469
+ return;
1470
+ }
1471
+ let $$settled = true;
1472
+ let $$inner_renderer;
1473
+ function $$render_inner($$renderer3) {
1474
+ if (Root$1) {
1475
+ $$renderer3.push("<!--[-->");
1476
+ Root$1($$renderer3, {
1477
+ open,
1478
+ onOpenChange,
1479
+ children: ($$renderer4) => {
1480
+ if (Dialog_content) {
1481
+ $$renderer4.push("<!--[-->");
1482
+ Dialog_content($$renderer4, {
1483
+ class: "max-w-md",
1484
+ children: ($$renderer5) => {
1485
+ if (Dialog_header) {
1486
+ $$renderer5.push("<!--[-->");
1487
+ Dialog_header($$renderer5, {
1488
+ children: ($$renderer6) => {
1489
+ if (Dialog_title) {
1490
+ $$renderer6.push("<!--[-->");
1491
+ Dialog_title($$renderer6, {
1492
+ children: ($$renderer7) => {
1493
+ $$renderer7.push(`<!---->Upload new version`);
1494
+ },
1495
+ $$slots: { default: true }
1496
+ });
1497
+ $$renderer6.push("<!--]-->");
1498
+ } else {
1499
+ $$renderer6.push("<!--[!-->");
1500
+ $$renderer6.push("<!--]-->");
1501
+ }
1502
+ $$renderer6.push(` `);
1503
+ if (Dialog_description) {
1504
+ $$renderer6.push("<!--[-->");
1505
+ Dialog_description($$renderer6, {
1506
+ children: ($$renderer7) => {
1507
+ $$renderer7.push(`<!---->The upload becomes <strong>v${escape_html(nextVersionNumber)}</strong> as a draft. The live channel stays unchanged
1508
+ until you publish.`);
1509
+ },
1510
+ $$slots: { default: true }
1511
+ });
1512
+ $$renderer6.push("<!--]-->");
1513
+ } else {
1514
+ $$renderer6.push("<!--[!-->");
1515
+ $$renderer6.push("<!--]-->");
1516
+ }
1517
+ },
1518
+ $$slots: { default: true }
1519
+ });
1520
+ $$renderer5.push("<!--]-->");
1521
+ } else {
1522
+ $$renderer5.push("<!--[!-->");
1523
+ $$renderer5.push("<!--]-->");
1524
+ }
1525
+ $$renderer5.push(` <div class="mt-4 space-y-4"><div class="space-y-1.5">`);
1526
+ Label($$renderer5, {
1527
+ for: "upload-file",
1528
+ children: ($$renderer6) => {
1529
+ $$renderer6.push(`<!---->Grasshopper file`);
1530
+ },
1531
+ $$slots: { default: true }
1532
+ });
1533
+ $$renderer5.push(`<!----> <label for="upload-file" class="border-border hover:bg-accent/30 flex cursor-pointer items-center gap-3 rounded-md border-2 border-dashed px-4 py-5 transition-colors">`);
1534
+ File_up($$renderer5, { class: "text-muted-foreground h-5 w-5 shrink-0" });
1535
+ $$renderer5.push(`<!----> <div class="min-w-0 flex-1">`);
1536
+ {
1537
+ $$renderer5.push("<!--[-1-->");
1538
+ $$renderer5.push(`<p class="text-sm font-medium">Pick a .gh or .ghx file</p> <p class="text-muted-foreground text-xs">Becomes v${escape_html(nextVersionNumber)} draft</p>`);
1539
+ }
1540
+ $$renderer5.push(`<!--]--></div></label> <input id="upload-file" type="file" accept=".gh,.ghx" class="hidden"/></div> <div class="space-y-1.5">`);
1541
+ Label($$renderer5, {
1542
+ for: "upload-note",
1543
+ children: ($$renderer6) => {
1544
+ $$renderer6.push(`<!---->What changed? <span class="text-muted-foreground font-normal">(optional)</span>`);
1545
+ },
1546
+ $$slots: { default: true }
1547
+ });
1548
+ $$renderer5.push(`<!----> `);
1549
+ Textarea($$renderer5, {
1550
+ id: "upload-note",
1551
+ rows: 2,
1552
+ maxlength: 1e3,
1553
+ placeholder: "e.g. Fixed wall thickness calculation",
1554
+ get value() {
1555
+ return changeNote;
1556
+ },
1557
+ set value($$value) {
1558
+ changeNote = $$value;
1559
+ $$settled = false;
1560
+ }
1561
+ });
1562
+ $$renderer5.push(`<!----></div></div> `);
1563
+ if (Dialog_footer) {
1564
+ $$renderer5.push("<!--[-->");
1565
+ Dialog_footer($$renderer5, {
1566
+ class: "mt-4",
1567
+ children: ($$renderer6) => {
1568
+ Button($$renderer6, {
1569
+ variant: "outline",
1570
+ onclick: () => onOpenChange(false),
1571
+ children: ($$renderer7) => {
1572
+ $$renderer7.push(`<!---->Cancel`);
1573
+ },
1574
+ $$slots: { default: true }
1575
+ });
1576
+ $$renderer6.push(`<!----> `);
1577
+ Button($$renderer6, {
1578
+ onclick: submit,
1579
+ disabled: true,
1580
+ children: ($$renderer7) => {
1581
+ {
1582
+ $$renderer7.push("<!--[-1-->");
1583
+ Upload($$renderer7, { class: "mr-1.5 h-3.5 w-3.5" });
1584
+ $$renderer7.push(`<!----> Upload v${escape_html(nextVersionNumber)}`);
1585
+ }
1586
+ $$renderer7.push(`<!--]-->`);
1587
+ },
1588
+ $$slots: { default: true }
1589
+ });
1590
+ $$renderer6.push(`<!---->`);
1591
+ },
1592
+ $$slots: { default: true }
1593
+ });
1594
+ $$renderer5.push("<!--]-->");
1595
+ } else {
1596
+ $$renderer5.push("<!--[!-->");
1597
+ $$renderer5.push("<!--]-->");
1598
+ }
1599
+ },
1600
+ $$slots: { default: true }
1601
+ });
1602
+ $$renderer4.push("<!--]-->");
1603
+ } else {
1604
+ $$renderer4.push("<!--[!-->");
1605
+ $$renderer4.push("<!--]-->");
1606
+ }
1607
+ },
1608
+ $$slots: { default: true }
1609
+ });
1610
+ $$renderer3.push("<!--]-->");
1611
+ } else {
1612
+ $$renderer3.push("<!--[!-->");
1613
+ $$renderer3.push("<!--]-->");
1614
+ }
1615
+ }
1616
+ do {
1617
+ $$settled = true;
1618
+ $$inner_renderer = $$renderer2.copy();
1619
+ $$render_inner($$inner_renderer);
1620
+ } while (!$$settled);
1621
+ $$renderer2.subsume($$inner_renderer);
1622
+ });
1623
+ }
1624
+ function VersionsSection($$renderer, $$props) {
1625
+ $$renderer.component(($$renderer2) => {
1626
+ let { definitionGuid, onOpenRunner } = $$props;
1627
+ let versions = [];
1628
+ let liveVersionId = null;
1629
+ let draftVersionId = null;
1630
+ let loading = true;
1631
+ let showUploadDialog = false;
1632
+ let publishingTarget = null;
1633
+ let publishingTargetSet = false;
1634
+ let publishing = false;
1635
+ let confirmingDelete = null;
1636
+ let deletingId = null;
1637
+ async function loadVersions() {
1638
+ loading = true;
1639
+ try {
1640
+ const res = await fetch(`/api/definitions/${definitionGuid}/versions`);
1641
+ if (!res.ok) throw new Error(`${res.status}`);
1642
+ const data = await res.json();
1643
+ versions = data.versions;
1644
+ liveVersionId = data.liveVersionId;
1645
+ draftVersionId = data.draftVersionId;
1646
+ } catch {
1647
+ toast.error("Failed to load versions");
1648
+ } finally {
1649
+ loading = false;
1650
+ }
1651
+ }
1652
+ const liveVersion = derived(() => versions.find((v) => v.id === liveVersionId) ?? null);
1653
+ const draftVersion = derived(() => versions.find((v) => v.id === draftVersionId) ?? null);
1654
+ const draftIsAhead = derived(() => draftVersion() !== null && liveVersion() !== null && draftVersion().id !== liveVersion().id);
1655
+ const nextVersionNumber = derived(() => (versions[0]?.versionNumber ?? 0) + 1);
1656
+ function formatRelative(iso) {
1657
+ const ms = Date.now() - new Date(iso).getTime();
1658
+ const minutes = Math.floor(ms / 6e4);
1659
+ if (minutes < 1) return "Just now";
1660
+ if (minutes < 60) return `${minutes}m ago`;
1661
+ const hours = Math.floor(minutes / 60);
1662
+ if (hours < 24) return `${hours}h ago`;
1663
+ const days = Math.floor(hours / 24);
1664
+ if (days === 1) return "Yesterday";
1665
+ if (days < 30) return `${days}d ago`;
1666
+ return new Date(iso).toLocaleDateString();
1667
+ }
1668
+ async function publish(target) {
1669
+ publishing = true;
1670
+ try {
1671
+ const body = target ? { versionId: target.id } : {};
1672
+ const res = await fetch(`/api/definitions/${definitionGuid}/publish`, {
1673
+ method: "POST",
1674
+ headers: { "Content-Type": "application/json" },
1675
+ body: JSON.stringify(body)
1676
+ });
1677
+ if (!res.ok) {
1678
+ const err = await res.json().catch(() => ({}));
1679
+ toast.error(err.message || err.error || "Failed to publish");
1680
+ return;
1681
+ }
1682
+ const result = await res.json();
1683
+ toast.success(`v${result.version?.versionNumber ?? "?"} is now live`);
1684
+ await loadVersions();
1685
+ await invalidateAll();
1686
+ } catch {
1687
+ toast.error("Failed to publish");
1688
+ } finally {
1689
+ publishing = false;
1690
+ publishingTarget = null;
1691
+ publishingTargetSet = false;
1692
+ }
1693
+ }
1694
+ async function deleteVersion(version) {
1695
+ deletingId = version.id;
1696
+ try {
1697
+ const res = await fetch(`/api/definitions/${definitionGuid}/versions/${version.id}`, { method: "DELETE" });
1698
+ if (!res.ok) {
1699
+ const err = await res.json().catch(() => ({}));
1700
+ toast.error(err.message || err.error || "Failed to delete version. Live or draft versions cannot be deleted.");
1701
+ return;
1702
+ }
1703
+ toast.success(`v${version.versionNumber} deleted`);
1704
+ await loadVersions();
1705
+ await invalidateAll();
1706
+ } catch {
1707
+ toast.error("Failed to delete version");
1708
+ } finally {
1709
+ deletingId = null;
1710
+ confirmingDelete = null;
1711
+ }
1712
+ }
1713
+ $$renderer2.push(`<div class="space-y-4">`);
1714
+ if (loading) {
1715
+ $$renderer2.push("<!--[0-->");
1716
+ $$renderer2.push(`<div class="border-border bg-muted/30 rounded-md border px-4 py-3"><p class="text-muted-foreground text-xs">Loading versions…</p></div>`);
1717
+ } else if (versions.length === 0) {
1718
+ $$renderer2.push("<!--[1-->");
1719
+ $$renderer2.push(`<div class="border-border bg-muted/30 text-muted-foreground rounded-md border px-4 py-3 text-sm">No versions yet. Upload one to get started.</div>`);
1720
+ } else {
1721
+ $$renderer2.push("<!--[-1-->");
1722
+ $$renderer2.push(`<div class="border-border bg-muted/30 flex items-center justify-between gap-3 rounded-md border px-4 py-3"><div class="flex min-w-0 items-center gap-2 text-sm"><span class="bg-success h-2 w-2 shrink-0 rounded-full"></span> `);
1723
+ if (liveVersion()) {
1724
+ $$renderer2.push("<!--[0-->");
1725
+ $$renderer2.push(`<span><strong>Live now</strong> — v${escape_html(liveVersion().versionNumber)}</span> `);
1726
+ if (draftIsAhead() && draftVersion()) {
1727
+ $$renderer2.push("<!--[0-->");
1728
+ $$renderer2.push(`<span class="text-muted-foreground">· newer version uploaded</span>`);
1729
+ } else {
1730
+ $$renderer2.push("<!--[-1-->");
1731
+ $$renderer2.push(`<span class="text-muted-foreground">· up to date</span>`);
1732
+ }
1733
+ $$renderer2.push(`<!--]-->`);
1734
+ } else {
1735
+ $$renderer2.push("<!--[-1-->");
1736
+ $$renderer2.push(`<span class="text-muted-foreground">Not yet published — promote a draft to go live</span>`);
1737
+ }
1738
+ $$renderer2.push(`<!--]--></div> `);
1739
+ if (draftIsAhead() && draftVersion()) {
1740
+ $$renderer2.push("<!--[0-->");
1741
+ Button($$renderer2, {
1742
+ size: "sm",
1743
+ onclick: () => publish(null),
1744
+ disabled: publishing,
1745
+ class: "shrink-0",
1746
+ children: ($$renderer3) => {
1747
+ Cloud_upload($$renderer3, { class: "mr-1.5 h-3.5 w-3.5" });
1748
+ $$renderer3.push(`<!----> Publish v${escape_html(draftVersion().versionNumber)}`);
1749
+ },
1750
+ $$slots: { default: true }
1751
+ });
1752
+ } else {
1753
+ $$renderer2.push("<!--[-1-->");
1754
+ }
1755
+ $$renderer2.push(`<!--]--></div>`);
1756
+ }
1757
+ $$renderer2.push(`<!--]--> <div class="flex items-center justify-between gap-3"><div><h3 class="text-base font-semibold tracking-tight">Versions</h3> <p class="text-muted-foreground mt-1 text-xs">Each upload becomes a version. The live version is what runs when someone uses this
1758
+ definition.</p></div> `);
1759
+ Button($$renderer2, {
1760
+ variant: "outline",
1761
+ size: "sm",
1762
+ onclick: () => showUploadDialog = true,
1763
+ class: "shrink-0",
1764
+ children: ($$renderer3) => {
1765
+ Upload($$renderer3, { class: "mr-1.5 h-3.5 w-3.5" });
1766
+ $$renderer3.push(`<!----> Upload new version`);
1767
+ },
1768
+ $$slots: { default: true }
1769
+ });
1770
+ $$renderer2.push(`<!----></div> `);
1771
+ if (!loading && versions.length > 0) {
1772
+ $$renderer2.push("<!--[0-->");
1773
+ $$renderer2.push(`<div class="space-y-2"><!--[-->`);
1774
+ const each_array = ensure_array_like(versions);
1775
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1776
+ let version = each_array[$$index];
1777
+ const isLive = version.id === liveVersionId;
1778
+ const isDraft = version.id === draftVersionId && !isLive;
1779
+ $$renderer2.push(`<div${attr_class(`rounded-md border p-3 transition-colors ${isLive ? "border-primary/40 bg-accent/40" : "border-border bg-card hover:bg-muted/30"}`)}><div class="flex items-start justify-between gap-3"><div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-2"><span class="font-mono text-sm font-semibold">v${escape_html(version.versionNumber)}</span> `);
1780
+ if (isLive) {
1781
+ $$renderer2.push("<!--[0-->");
1782
+ $$renderer2.push(`<span class="bg-success/10 text-success rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">live</span>`);
1783
+ } else {
1784
+ $$renderer2.push("<!--[-1-->");
1785
+ }
1786
+ $$renderer2.push(`<!--]--> `);
1787
+ if (isDraft) {
1788
+ $$renderer2.push("<!--[0-->");
1789
+ $$renderer2.push(`<span class="bg-warning/10 text-warning rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">draft</span>`);
1790
+ } else {
1791
+ $$renderer2.push("<!--[-1-->");
1792
+ }
1793
+ $$renderer2.push(`<!--]--></div> `);
1794
+ if (version.changeNote) {
1795
+ $$renderer2.push("<!--[0-->");
1796
+ $$renderer2.push(`<p class="mt-1 truncate text-sm">${escape_html(version.changeNote)}</p>`);
1797
+ } else if (version.originalFilename) {
1798
+ $$renderer2.push("<!--[1-->");
1799
+ $$renderer2.push(`<p class="text-muted-foreground mt-1 truncate font-mono text-xs">${escape_html(version.originalFilename)}</p>`);
1800
+ } else {
1801
+ $$renderer2.push("<!--[-1-->");
1802
+ }
1803
+ $$renderer2.push(`<!--]--> <p class="text-muted-foreground mt-1 text-xs">Uploaded ${escape_html(formatRelative(version.uploadedAt))}</p></div> <div class="flex shrink-0 items-center gap-1">`);
1804
+ if (isLive) {
1805
+ $$renderer2.push("<!--[0-->");
1806
+ Button($$renderer2, {
1807
+ size: "sm",
1808
+ variant: "outline",
1809
+ onclick: () => onOpenRunner(definitionGuid, "live"),
1810
+ children: ($$renderer3) => {
1811
+ Play($$renderer3, { class: "mr-1.5 h-3.5 w-3.5" });
1812
+ $$renderer3.push(`<!----> Run`);
1813
+ },
1814
+ $$slots: { default: true }
1815
+ });
1816
+ } else {
1817
+ $$renderer2.push("<!--[-1-->");
1818
+ if (isDraft) {
1819
+ $$renderer2.push("<!--[0-->");
1820
+ Button($$renderer2, {
1821
+ size: "sm",
1822
+ variant: "ghost",
1823
+ onclick: () => onOpenRunner(definitionGuid, "draft"),
1824
+ children: ($$renderer3) => {
1825
+ Play($$renderer3, { class: "mr-1.5 h-3.5 w-3.5" });
1826
+ $$renderer3.push(`<!----> Run`);
1827
+ },
1828
+ $$slots: { default: true }
1829
+ });
1830
+ } else {
1831
+ $$renderer2.push("<!--[-1-->");
1832
+ }
1833
+ $$renderer2.push(`<!--]--> `);
1834
+ Button($$renderer2, {
1835
+ size: "sm",
1836
+ variant: "outline",
1837
+ disabled: publishing,
1838
+ onclick: () => {
1839
+ publishingTarget = version;
1840
+ publishingTargetSet = true;
1841
+ },
1842
+ children: ($$renderer3) => {
1843
+ $$renderer3.push(`<!---->Make live`);
1844
+ },
1845
+ $$slots: { default: true }
1846
+ });
1847
+ $$renderer2.push(`<!---->`);
1848
+ }
1849
+ $$renderer2.push(`<!--]--> `);
1850
+ if (!isLive && !isDraft) {
1851
+ $$renderer2.push("<!--[0-->");
1852
+ Button($$renderer2, {
1853
+ size: "sm",
1854
+ variant: "ghost",
1855
+ onclick: () => confirmingDelete = version,
1856
+ disabled: deletingId === version.id,
1857
+ class: "text-muted-foreground hover:text-destructive h-8 w-8 p-0",
1858
+ "aria-label": "Delete version",
1859
+ children: ($$renderer3) => {
1860
+ Trash_2($$renderer3, { class: "h-3.5 w-3.5" });
1861
+ },
1862
+ $$slots: { default: true }
1863
+ });
1864
+ } else {
1865
+ $$renderer2.push("<!--[-1-->");
1866
+ }
1867
+ $$renderer2.push(`<!--]--></div></div></div>`);
1868
+ }
1869
+ $$renderer2.push(`<!--]--></div>`);
1870
+ } else {
1871
+ $$renderer2.push("<!--[-1-->");
1872
+ }
1873
+ $$renderer2.push(`<!--]--></div> `);
1874
+ UploadVersionDialog($$renderer2, {
1875
+ nextVersionNumber: nextVersionNumber(),
1876
+ open: showUploadDialog,
1877
+ onOpenChange: (o) => showUploadDialog = o
1878
+ });
1879
+ $$renderer2.push(`<!----> `);
1880
+ if (Root) {
1881
+ $$renderer2.push("<!--[-->");
1882
+ Root($$renderer2, {
1883
+ open: publishingTargetSet,
1884
+ onOpenChange: (o) => {
1885
+ if (!o) {
1886
+ publishingTarget = null;
1887
+ publishingTargetSet = false;
1888
+ }
1889
+ },
1890
+ children: ($$renderer3) => {
1891
+ if (Alert_dialog_content) {
1892
+ $$renderer3.push("<!--[-->");
1893
+ Alert_dialog_content($$renderer3, {
1894
+ children: ($$renderer4) => {
1895
+ if (Alert_dialog_header) {
1896
+ $$renderer4.push("<!--[-->");
1897
+ Alert_dialog_header($$renderer4, {
1898
+ children: ($$renderer5) => {
1899
+ if (Alert_dialog_title) {
1900
+ $$renderer5.push("<!--[-->");
1901
+ Alert_dialog_title($$renderer5, {
1902
+ children: ($$renderer6) => {
1903
+ if (publishingTarget) {
1904
+ $$renderer6.push("<!--[0-->");
1905
+ $$renderer6.push(`Make v${escape_html(publishingTarget.versionNumber)} live?`);
1906
+ } else {
1907
+ $$renderer6.push("<!--[-1-->");
1908
+ $$renderer6.push(`Publish current draft?`);
1909
+ }
1910
+ $$renderer6.push(`<!--]-->`);
1911
+ },
1912
+ $$slots: { default: true }
1913
+ });
1914
+ $$renderer5.push("<!--]-->");
1915
+ } else {
1916
+ $$renderer5.push("<!--[!-->");
1917
+ $$renderer5.push("<!--]-->");
1918
+ }
1919
+ $$renderer5.push(` `);
1920
+ if (Alert_dialog_description) {
1921
+ $$renderer5.push("<!--[-->");
1922
+ Alert_dialog_description($$renderer5, {
1923
+ children: ($$renderer6) => {
1924
+ if (publishingTarget && liveVersion() && publishingTarget.versionNumber < liveVersion().versionNumber) {
1925
+ $$renderer6.push("<!--[0-->");
1926
+ $$renderer6.push(`Rolling back to an older version. Anyone running this definition will immediately get v${escape_html(publishingTarget.versionNumber)}
1927
+ instead of v${escape_html(liveVersion().versionNumber)}.`);
1928
+ } else if (publishingTarget) {
1929
+ $$renderer6.push("<!--[1-->");
1930
+ $$renderer6.push(`Anyone running this definition will immediately get v${escape_html(publishingTarget.versionNumber)}
1931
+ instead of v${escape_html(liveVersion()?.versionNumber ?? "—")}.`);
1932
+ } else {
1933
+ $$renderer6.push("<!--[-1-->");
1934
+ $$renderer6.push(`Promotes the current draft to live. Everyone running this definition gets the new version
1935
+ immediately.`);
1936
+ }
1937
+ $$renderer6.push(`<!--]-->`);
1938
+ },
1939
+ $$slots: { default: true }
1940
+ });
1941
+ $$renderer5.push("<!--]-->");
1942
+ } else {
1943
+ $$renderer5.push("<!--[!-->");
1944
+ $$renderer5.push("<!--]-->");
1945
+ }
1946
+ },
1947
+ $$slots: { default: true }
1948
+ });
1949
+ $$renderer4.push("<!--]-->");
1950
+ } else {
1951
+ $$renderer4.push("<!--[!-->");
1952
+ $$renderer4.push("<!--]-->");
1953
+ }
1954
+ $$renderer4.push(` `);
1955
+ if (Alert_dialog_footer) {
1956
+ $$renderer4.push("<!--[-->");
1957
+ Alert_dialog_footer($$renderer4, {
1958
+ children: ($$renderer5) => {
1959
+ if (Alert_dialog_cancel) {
1960
+ $$renderer5.push("<!--[-->");
1961
+ Alert_dialog_cancel($$renderer5, {
1962
+ children: ($$renderer6) => {
1963
+ $$renderer6.push(`<!---->Cancel`);
1964
+ },
1965
+ $$slots: { default: true }
1966
+ });
1967
+ $$renderer5.push("<!--]-->");
1968
+ } else {
1969
+ $$renderer5.push("<!--[!-->");
1970
+ $$renderer5.push("<!--]-->");
1971
+ }
1972
+ $$renderer5.push(` `);
1973
+ if (Alert_dialog_action) {
1974
+ $$renderer5.push("<!--[-->");
1975
+ Alert_dialog_action($$renderer5, {
1976
+ onclick: () => publish(publishingTarget),
1977
+ disabled: publishing,
1978
+ children: ($$renderer6) => {
1979
+ $$renderer6.push(`<!---->${escape_html(publishing ? "Publishing…" : "Publish")}`);
1980
+ },
1981
+ $$slots: { default: true }
1982
+ });
1983
+ $$renderer5.push("<!--]-->");
1984
+ } else {
1985
+ $$renderer5.push("<!--[!-->");
1986
+ $$renderer5.push("<!--]-->");
1987
+ }
1988
+ },
1989
+ $$slots: { default: true }
1990
+ });
1991
+ $$renderer4.push("<!--]-->");
1992
+ } else {
1993
+ $$renderer4.push("<!--[!-->");
1994
+ $$renderer4.push("<!--]-->");
1995
+ }
1996
+ },
1997
+ $$slots: { default: true }
1998
+ });
1999
+ $$renderer3.push("<!--]-->");
2000
+ } else {
2001
+ $$renderer3.push("<!--[!-->");
2002
+ $$renderer3.push("<!--]-->");
2003
+ }
2004
+ },
2005
+ $$slots: { default: true }
2006
+ });
2007
+ $$renderer2.push("<!--]-->");
2008
+ } else {
2009
+ $$renderer2.push("<!--[!-->");
2010
+ $$renderer2.push("<!--]-->");
2011
+ }
2012
+ $$renderer2.push(` `);
2013
+ if (Root) {
2014
+ $$renderer2.push("<!--[-->");
2015
+ Root($$renderer2, {
2016
+ open: !!confirmingDelete,
2017
+ onOpenChange: (o) => !o && (confirmingDelete = null),
2018
+ children: ($$renderer3) => {
2019
+ if (Alert_dialog_content) {
2020
+ $$renderer3.push("<!--[-->");
2021
+ Alert_dialog_content($$renderer3, {
2022
+ children: ($$renderer4) => {
2023
+ if (Alert_dialog_header) {
2024
+ $$renderer4.push("<!--[-->");
2025
+ Alert_dialog_header($$renderer4, {
2026
+ children: ($$renderer5) => {
2027
+ if (Alert_dialog_title) {
2028
+ $$renderer5.push("<!--[-->");
2029
+ Alert_dialog_title($$renderer5, {
2030
+ children: ($$renderer6) => {
2031
+ $$renderer6.push(`<!---->Delete v${escape_html(confirmingDelete?.versionNumber)}?`);
2032
+ },
2033
+ $$slots: { default: true }
2034
+ });
2035
+ $$renderer5.push("<!--]-->");
2036
+ } else {
2037
+ $$renderer5.push("<!--[!-->");
2038
+ $$renderer5.push("<!--]-->");
2039
+ }
2040
+ $$renderer5.push(` `);
2041
+ if (Alert_dialog_description) {
2042
+ $$renderer5.push("<!--[-->");
2043
+ Alert_dialog_description($$renderer5, {
2044
+ children: ($$renderer6) => {
2045
+ $$renderer6.push(`<!---->This permanently removes the version's file. The live and draft versions cannot be deleted —
2046
+ repoint first.`);
2047
+ },
2048
+ $$slots: { default: true }
2049
+ });
2050
+ $$renderer5.push("<!--]-->");
2051
+ } else {
2052
+ $$renderer5.push("<!--[!-->");
2053
+ $$renderer5.push("<!--]-->");
2054
+ }
2055
+ },
2056
+ $$slots: { default: true }
2057
+ });
2058
+ $$renderer4.push("<!--]-->");
2059
+ } else {
2060
+ $$renderer4.push("<!--[!-->");
2061
+ $$renderer4.push("<!--]-->");
2062
+ }
2063
+ $$renderer4.push(` `);
2064
+ if (Alert_dialog_footer) {
2065
+ $$renderer4.push("<!--[-->");
2066
+ Alert_dialog_footer($$renderer4, {
2067
+ children: ($$renderer5) => {
2068
+ if (Alert_dialog_cancel) {
2069
+ $$renderer5.push("<!--[-->");
2070
+ Alert_dialog_cancel($$renderer5, {
2071
+ children: ($$renderer6) => {
2072
+ $$renderer6.push(`<!---->Cancel`);
2073
+ },
2074
+ $$slots: { default: true }
2075
+ });
2076
+ $$renderer5.push("<!--]-->");
2077
+ } else {
2078
+ $$renderer5.push("<!--[!-->");
2079
+ $$renderer5.push("<!--]-->");
2080
+ }
2081
+ $$renderer5.push(` `);
2082
+ if (Alert_dialog_action) {
2083
+ $$renderer5.push("<!--[-->");
2084
+ Alert_dialog_action($$renderer5, {
2085
+ onclick: () => confirmingDelete && deleteVersion(confirmingDelete),
2086
+ disabled: !!deletingId,
2087
+ children: ($$renderer6) => {
2088
+ $$renderer6.push(`<!---->${escape_html(deletingId ? "Deleting…" : "Delete")}`);
2089
+ },
2090
+ $$slots: { default: true }
2091
+ });
2092
+ $$renderer5.push("<!--]-->");
2093
+ } else {
2094
+ $$renderer5.push("<!--[!-->");
2095
+ $$renderer5.push("<!--]-->");
2096
+ }
2097
+ },
2098
+ $$slots: { default: true }
2099
+ });
2100
+ $$renderer4.push("<!--]-->");
2101
+ } else {
2102
+ $$renderer4.push("<!--[!-->");
2103
+ $$renderer4.push("<!--]-->");
2104
+ }
2105
+ },
2106
+ $$slots: { default: true }
2107
+ });
2108
+ $$renderer3.push("<!--]-->");
2109
+ } else {
2110
+ $$renderer3.push("<!--[!-->");
2111
+ $$renderer3.push("<!--]-->");
2112
+ }
2113
+ },
2114
+ $$slots: { default: true }
2115
+ });
2116
+ $$renderer2.push("<!--]-->");
2117
+ } else {
2118
+ $$renderer2.push("<!--[!-->");
2119
+ $$renderer2.push("<!--]-->");
2120
+ }
2121
+ });
2122
+ }
2123
+ function MintShareLinkDialog($$renderer, $$props) {
2124
+ $$renderer.component(($$renderer2) => {
2125
+ let { definitionGuid, open, onOpenChange, onMinted } = $$props;
2126
+ let channel = "live";
2127
+ let allowSolve = true;
2128
+ let label = "";
2129
+ let expiresEnabled = false;
2130
+ let expiresAt = "";
2131
+ let capEnabled = true;
2132
+ let cap = DEFAULT_SHARE_LINK_MAX_SOLVES;
2133
+ let creating = false;
2134
+ let mintedToken = null;
2135
+ let mintedShareUrl = null;
2136
+ let copied = false;
2137
+ async function submit() {
2138
+ if (cap > DEFAULT_SHARE_LINK_MAX_SOLVES) {
2139
+ const ok = confirm(`You're raising the cap above the default of ${DEFAULT_SHARE_LINK_MAX_SOLVES}. An uncapped or high-cap link is a denial-of-wallet vector if leaked. Continue?`);
2140
+ if (!ok) return;
2141
+ }
2142
+ creating = true;
2143
+ try {
2144
+ const body = {
2145
+ channel,
2146
+ allowSolve,
2147
+ ...label.trim() ? { name: label.trim() } : {},
2148
+ maxSolves: capEnabled ? cap : null,
2149
+ ...expiresEnabled && expiresAt ? { expiresAt: new Date(expiresAt).toISOString() } : {}
2150
+ };
2151
+ const res = await fetch(`/api/definitions/${definitionGuid}/share-links`, {
2152
+ method: "POST",
2153
+ headers: { "Content-Type": "application/json" },
2154
+ body: JSON.stringify(body)
2155
+ });
2156
+ if (!res.ok) {
2157
+ const err = await res.json().catch(() => ({}));
2158
+ toast.error(err.message || err.error || "Failed to mint share link");
2159
+ return;
2160
+ }
2161
+ const data = await res.json();
2162
+ mintedToken = data.token;
2163
+ mintedShareUrl = `${window.location.origin}/library/${definitionGuid}?token=${data.token}`;
2164
+ onMinted();
2165
+ } catch {
2166
+ toast.error("Failed to mint share link");
2167
+ } finally {
2168
+ creating = false;
2169
+ }
2170
+ }
2171
+ async function copyUrl() {
2172
+ if (!mintedShareUrl) return;
2173
+ try {
2174
+ await navigator.clipboard.writeText(mintedShareUrl);
2175
+ copied = true;
2176
+ setTimeout(() => copied = false, 2e3);
2177
+ } catch {
2178
+ toast.error("Could not copy to clipboard");
2179
+ }
2180
+ }
2181
+ let $$settled = true;
2182
+ let $$inner_renderer;
2183
+ function $$render_inner($$renderer3) {
2184
+ if (Root$1) {
2185
+ $$renderer3.push("<!--[-->");
2186
+ Root$1($$renderer3, {
2187
+ open,
2188
+ onOpenChange,
2189
+ children: ($$renderer4) => {
2190
+ if (Dialog_content) {
2191
+ $$renderer4.push("<!--[-->");
2192
+ Dialog_content($$renderer4, {
2193
+ class: "max-w-lg",
2194
+ children: ($$renderer5) => {
2195
+ if (!mintedToken) {
2196
+ $$renderer5.push("<!--[0-->");
2197
+ if (Dialog_header) {
2198
+ $$renderer5.push("<!--[-->");
2199
+ Dialog_header($$renderer5, {
2200
+ children: ($$renderer6) => {
2201
+ if (Dialog_title) {
2202
+ $$renderer6.push("<!--[-->");
2203
+ Dialog_title($$renderer6, {
2204
+ children: ($$renderer7) => {
2205
+ $$renderer7.push(`<!---->New share link`);
2206
+ },
2207
+ $$slots: { default: true }
2208
+ });
2209
+ $$renderer6.push("<!--]-->");
2210
+ } else {
2211
+ $$renderer6.push("<!--[!-->");
2212
+ $$renderer6.push("<!--]-->");
2213
+ }
2214
+ $$renderer6.push(` `);
2215
+ if (Dialog_description) {
2216
+ $$renderer6.push("<!--[-->");
2217
+ Dialog_description($$renderer6, {
2218
+ children: ($$renderer7) => {
2219
+ $$renderer7.push(`<!---->Anyone with the link gets the access you configure here. Caps and expiry are the
2220
+ load-bearing protection — they assume the URL will eventually leak.`);
2221
+ },
2222
+ $$slots: { default: true }
2223
+ });
2224
+ $$renderer6.push("<!--]-->");
2225
+ } else {
2226
+ $$renderer6.push("<!--[!-->");
2227
+ $$renderer6.push("<!--]-->");
2228
+ }
2229
+ },
2230
+ $$slots: { default: true }
2231
+ });
2232
+ $$renderer5.push("<!--]-->");
2233
+ } else {
2234
+ $$renderer5.push("<!--[!-->");
2235
+ $$renderer5.push("<!--]-->");
2236
+ }
2237
+ $$renderer5.push(` <div class="mt-4 space-y-4"><div class="space-y-1.5">`);
2238
+ Label($$renderer5, {
2239
+ for: "sl-channel",
2240
+ children: ($$renderer6) => {
2241
+ $$renderer6.push(`<!---->Channel`);
2242
+ },
2243
+ $$slots: { default: true }
2244
+ });
2245
+ $$renderer5.push(`<!----> `);
2246
+ $$renderer5.select(
2247
+ {
2248
+ id: "sl-channel",
2249
+ value: channel,
2250
+ class: "border-input bg-background h-9 w-full rounded-md border px-3 text-sm"
2251
+ },
2252
+ ($$renderer6) => {
2253
+ $$renderer6.option({ value: "live" }, ($$renderer7) => {
2254
+ $$renderer7.push(`Live — recipients see the published version`);
2255
+ });
2256
+ $$renderer6.option({ value: "draft" }, ($$renderer7) => {
2257
+ $$renderer7.push(`Draft — recipients see the unpublished version`);
2258
+ });
2259
+ }
2260
+ );
2261
+ $$renderer5.push(` `);
2262
+ {
2263
+ $$renderer5.push("<!--[-1-->");
2264
+ }
2265
+ $$renderer5.push(`<!--]--></div> <div class="space-y-1.5">`);
2266
+ Label($$renderer5, {
2267
+ for: "sl-label",
2268
+ children: ($$renderer6) => {
2269
+ $$renderer6.push(`<!---->Label (optional)`);
2270
+ },
2271
+ $$slots: { default: true }
2272
+ });
2273
+ $$renderer5.push(`<!----> `);
2274
+ Input($$renderer5, {
2275
+ id: "sl-label",
2276
+ placeholder: "e.g. Demo for Acme",
2277
+ get value() {
2278
+ return label;
2279
+ },
2280
+ set value($$value) {
2281
+ label = $$value;
2282
+ $$settled = false;
2283
+ }
2284
+ });
2285
+ $$renderer5.push(`<!----></div> <div class="border-border rounded-md border p-3"><label class="flex cursor-pointer items-start gap-3"><input type="checkbox"${attr("checked", allowSolve, true)} class="mt-0.5 shrink-0"/> <div class="min-w-0"><p class="text-sm font-medium">Allow solve</p> <p class="text-muted-foreground mt-0.5 text-xs">When off, recipients can view the schema and parameters but can't run solves. When
2286
+ on, every solve counts against the cap.</p></div></label></div> <div class="border-border rounded-md border p-3"><label class="flex cursor-pointer items-start gap-3"><input type="checkbox"${attr("checked", capEnabled, true)} class="mt-0.5 shrink-0"/> <div class="min-w-0 flex-1"><p class="text-sm font-medium">Cap total solves</p> <p class="text-muted-foreground mt-0.5 text-xs">Default ${escape_html(DEFAULT_SHARE_LINK_MAX_SOLVES.toLocaleString())}. Recommended. Uncapped
2287
+ links are a denial-of-wallet risk if leaked.</p></div></label> `);
2288
+ {
2289
+ $$renderer5.push("<!--[0-->");
2290
+ $$renderer5.push(`<div class="mt-2 ml-6">`);
2291
+ Input($$renderer5, {
2292
+ type: "number",
2293
+ min: 1,
2294
+ class: "h-8 w-32 text-sm",
2295
+ get value() {
2296
+ return cap;
2297
+ },
2298
+ set value($$value) {
2299
+ cap = $$value;
2300
+ $$settled = false;
2301
+ }
2302
+ });
2303
+ $$renderer5.push(`<!----></div>`);
2304
+ }
2305
+ $$renderer5.push(`<!--]--></div> <div class="border-border rounded-md border p-3"><label class="flex cursor-pointer items-start gap-3"><input type="checkbox"${attr("checked", expiresEnabled, true)} class="mt-0.5 shrink-0"/> <div class="min-w-0 flex-1"><p class="text-sm font-medium">Set expiry</p> <p class="text-muted-foreground mt-0.5 text-xs">The link stops working after this date. Off = never expires.</p></div></label> `);
2306
+ {
2307
+ $$renderer5.push("<!--[-1-->");
2308
+ }
2309
+ $$renderer5.push(`<!--]--></div></div> `);
2310
+ if (Dialog_footer) {
2311
+ $$renderer5.push("<!--[-->");
2312
+ Dialog_footer($$renderer5, {
2313
+ class: "mt-4",
2314
+ children: ($$renderer6) => {
2315
+ Button($$renderer6, {
2316
+ variant: "outline",
2317
+ onclick: () => onOpenChange(false),
2318
+ children: ($$renderer7) => {
2319
+ $$renderer7.push(`<!---->Cancel`);
2320
+ },
2321
+ $$slots: { default: true }
2322
+ });
2323
+ $$renderer6.push(`<!----> `);
2324
+ Button($$renderer6, {
2325
+ onclick: submit,
2326
+ disabled: creating || expiresEnabled || cap < 1,
2327
+ children: ($$renderer7) => {
2328
+ $$renderer7.push(`<!---->${escape_html(creating ? "Creating…" : "Create link")}`);
2329
+ },
2330
+ $$slots: { default: true }
2331
+ });
2332
+ $$renderer6.push(`<!---->`);
2333
+ },
2334
+ $$slots: { default: true }
2335
+ });
2336
+ $$renderer5.push("<!--]-->");
2337
+ } else {
2338
+ $$renderer5.push("<!--[!-->");
2339
+ $$renderer5.push("<!--]-->");
2340
+ }
2341
+ } else {
2342
+ $$renderer5.push("<!--[-1-->");
2343
+ if (Dialog_header) {
2344
+ $$renderer5.push("<!--[-->");
2345
+ Dialog_header($$renderer5, {
2346
+ children: ($$renderer6) => {
2347
+ if (Dialog_title) {
2348
+ $$renderer6.push("<!--[-->");
2349
+ Dialog_title($$renderer6, {
2350
+ children: ($$renderer7) => {
2351
+ $$renderer7.push(`<!---->Share link ready`);
2352
+ },
2353
+ $$slots: { default: true }
2354
+ });
2355
+ $$renderer6.push("<!--]-->");
2356
+ } else {
2357
+ $$renderer6.push("<!--[!-->");
2358
+ $$renderer6.push("<!--]-->");
2359
+ }
2360
+ $$renderer6.push(` `);
2361
+ if (Dialog_description) {
2362
+ $$renderer6.push("<!--[-->");
2363
+ Dialog_description($$renderer6, {
2364
+ children: ($$renderer7) => {
2365
+ $$renderer7.push(`<!---->Copy the link now — this is the only time you'll see it. The server stores only a hash; we
2366
+ cannot show it again.`);
2367
+ },
2368
+ $$slots: { default: true }
2369
+ });
2370
+ $$renderer6.push("<!--]-->");
2371
+ } else {
2372
+ $$renderer6.push("<!--[!-->");
2373
+ $$renderer6.push("<!--]-->");
2374
+ }
2375
+ },
2376
+ $$slots: { default: true }
2377
+ });
2378
+ $$renderer5.push("<!--]-->");
2379
+ } else {
2380
+ $$renderer5.push("<!--[!-->");
2381
+ $$renderer5.push("<!--]-->");
2382
+ }
2383
+ $$renderer5.push(` <div class="mt-4 space-y-3"><div class="border-warning/40 bg-warning/5 rounded-md border p-3"><p class="text-warning flex items-start gap-2 text-xs">`);
2384
+ Triangle_alert($$renderer5, { class: "mt-0.5 h-3.5 w-3.5 shrink-0" });
2385
+ $$renderer5.push(`<!----> <span>This URL grants the configured access to anyone who receives it. Treat it like a
2386
+ password — revoke it immediately if it's compromised.</span></p></div> <div class="border-border bg-muted/40 rounded-md border p-3"><p class="text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase">Share URL</p> <div class="flex items-start gap-2"><code class="bg-background min-w-0 flex-1 rounded p-2 font-mono text-xs break-all">${escape_html(mintedShareUrl)}</code> `);
2387
+ Button($$renderer5, {
2388
+ size: "sm",
2389
+ variant: copied ? "default" : "outline",
2390
+ onclick: copyUrl,
2391
+ class: "shrink-0",
2392
+ children: ($$renderer6) => {
2393
+ if (copied) {
2394
+ $$renderer6.push("<!--[0-->");
2395
+ Check($$renderer6, { class: "mr-1.5 h-3.5 w-3.5" });
2396
+ $$renderer6.push(`<!----> Copied`);
2397
+ } else {
2398
+ $$renderer6.push("<!--[-1-->");
2399
+ Copy($$renderer6, { class: "mr-1.5 h-3.5 w-3.5" });
2400
+ $$renderer6.push(`<!----> Copy`);
2401
+ }
2402
+ $$renderer6.push(`<!--]-->`);
2403
+ },
2404
+ $$slots: { default: true }
2405
+ });
2406
+ $$renderer5.push(`<!----></div></div></div> `);
2407
+ if (Dialog_footer) {
2408
+ $$renderer5.push("<!--[-->");
2409
+ Dialog_footer($$renderer5, {
2410
+ class: "mt-4",
2411
+ children: ($$renderer6) => {
2412
+ Button($$renderer6, {
2413
+ onclick: () => onOpenChange(false),
2414
+ children: ($$renderer7) => {
2415
+ $$renderer7.push(`<!---->Done`);
2416
+ },
2417
+ $$slots: { default: true }
2418
+ });
2419
+ },
2420
+ $$slots: { default: true }
2421
+ });
2422
+ $$renderer5.push("<!--]-->");
2423
+ } else {
2424
+ $$renderer5.push("<!--[!-->");
2425
+ $$renderer5.push("<!--]-->");
2426
+ }
2427
+ }
2428
+ $$renderer5.push(`<!--]-->`);
2429
+ },
2430
+ $$slots: { default: true }
2431
+ });
2432
+ $$renderer4.push("<!--]-->");
2433
+ } else {
2434
+ $$renderer4.push("<!--[!-->");
2435
+ $$renderer4.push("<!--]-->");
2436
+ }
2437
+ },
2438
+ $$slots: { default: true }
2439
+ });
2440
+ $$renderer3.push("<!--]-->");
2441
+ } else {
2442
+ $$renderer3.push("<!--[!-->");
2443
+ $$renderer3.push("<!--]-->");
2444
+ }
2445
+ }
2446
+ do {
2447
+ $$settled = true;
2448
+ $$inner_renderer = $$renderer2.copy();
2449
+ $$render_inner($$inner_renderer);
2450
+ } while (!$$settled);
2451
+ $$renderer2.subsume($$inner_renderer);
2452
+ });
2453
+ }
2454
+ function ShareLinkSection($$renderer, $$props) {
2455
+ $$renderer.component(($$renderer2) => {
2456
+ let { definitionGuid } = $$props;
2457
+ let links = [];
2458
+ let loading = true;
2459
+ let showMintDialog = false;
2460
+ let confirmingRevoke = null;
2461
+ let revokingId = null;
2462
+ async function loadLinks() {
2463
+ loading = true;
2464
+ try {
2465
+ const res = await fetch(`/api/definitions/${definitionGuid}/share-links`);
2466
+ if (!res.ok) throw new Error(`${res.status}`);
2467
+ const data = await res.json();
2468
+ links = data.links;
2469
+ } catch {
2470
+ toast.error("Failed to load share links");
2471
+ } finally {
2472
+ loading = false;
2473
+ }
2474
+ }
2475
+ async function revoke(link) {
2476
+ revokingId = link.id;
2477
+ try {
2478
+ const res = await fetch(`/api/definitions/${definitionGuid}/share-links/${link.id}`, { method: "DELETE" });
2479
+ if (!res.ok) {
2480
+ toast.error("Failed to revoke link");
2481
+ return;
2482
+ }
2483
+ toast.success("Link revoked");
2484
+ await loadLinks();
2485
+ } catch {
2486
+ toast.error("Failed to revoke link");
2487
+ } finally {
2488
+ revokingId = null;
2489
+ confirmingRevoke = null;
2490
+ }
2491
+ }
2492
+ function formatExpiry(iso) {
2493
+ if (!iso) return "Never";
2494
+ const date = new Date(iso);
2495
+ const now = /* @__PURE__ */ new Date();
2496
+ const expired = date.getTime() < now.getTime();
2497
+ return { text: date.toLocaleDateString(), expired };
2498
+ }
2499
+ function formatRelative(iso) {
2500
+ const ms = Date.now() - new Date(iso).getTime();
2501
+ const minutes = Math.floor(ms / 6e4);
2502
+ if (minutes < 1) return "just now";
2503
+ if (minutes < 60) return `${minutes}m ago`;
2504
+ const hours = Math.floor(minutes / 60);
2505
+ if (hours < 24) return `${hours}h ago`;
2506
+ const days = Math.floor(hours / 24);
2507
+ if (days < 30) return `${days}d ago`;
2508
+ return new Date(iso).toLocaleDateString();
2509
+ }
2510
+ const activeLinks = derived(() => links.filter((l) => !l.revokedAt));
2511
+ $$renderer2.push(`<div class="space-y-4"><div><h3 class="text-base font-semibold tracking-tight">Share links</h3> <p class="text-muted-foreground mt-1 text-xs">Per-definition tokens that grant access without an account. Use for client demos, embeds, and
2512
+ review links.</p></div> `);
2513
+ if (loading) {
2514
+ $$renderer2.push("<!--[0-->");
2515
+ $$renderer2.push(`<div class="border-border rounded-md border p-6 text-center"><p class="text-muted-foreground text-xs">Loading…</p></div>`);
2516
+ } else if (activeLinks().length === 0) {
2517
+ $$renderer2.push("<!--[1-->");
2518
+ {
2519
+ let actions = function($$renderer3) {
2520
+ Button($$renderer3, {
2521
+ size: "sm",
2522
+ onclick: () => showMintDialog = true,
2523
+ children: ($$renderer4) => {
2524
+ Plus($$renderer4, { class: "mr-1.5 h-3.5 w-3.5" });
2525
+ $$renderer4.push(`<!----> New link`);
2526
+ },
2527
+ $$slots: { default: true }
2528
+ });
2529
+ };
2530
+ EmptyState($$renderer2, {
2531
+ size: "sm",
2532
+ icon: Link_2,
2533
+ title: "No share links yet",
2534
+ description: "Mint a link to share this definition without requiring the recipient to have an account.",
2535
+ actions
2536
+ });
2537
+ }
2538
+ } else {
2539
+ $$renderer2.push("<!--[-1-->");
2540
+ $$renderer2.push(`<div class="border-border bg-card overflow-hidden rounded-md border"><div class="border-border bg-muted/40 flex items-center justify-between gap-3 border-b px-4 py-2"><span class="text-muted-foreground text-xs font-medium tracking-wider uppercase">${escape_html(activeLinks().length)} active link${escape_html(activeLinks().length === 1 ? "" : "s")}</span> `);
2541
+ Button($$renderer2, {
2542
+ size: "sm",
2543
+ variant: "outline",
2544
+ onclick: () => showMintDialog = true,
2545
+ children: ($$renderer3) => {
2546
+ Plus($$renderer3, { class: "mr-1.5 h-3.5 w-3.5" });
2547
+ $$renderer3.push(`<!----> New link`);
2548
+ },
2549
+ $$slots: { default: true }
2550
+ });
2551
+ $$renderer2.push(`<!----></div> <!--[-->`);
2552
+ const each_array = ensure_array_like(activeLinks());
2553
+ for (let i = 0, $$length = each_array.length; i < $$length; i++) {
2554
+ let link = each_array[i];
2555
+ const expiry = formatExpiry(link.expiresAt);
2556
+ const expired = typeof expiry === "object" && expiry.expired;
2557
+ const capValue = link.maxSolves;
2558
+ const hasCap = capValue !== null && capValue !== void 0;
2559
+ const capReached = hasCap && link.solveCount >= capValue;
2560
+ $$renderer2.push(`<div${attr_class(`flex items-start gap-3 px-4 py-3 ${i < activeLinks().length - 1 ? "border-border border-b" : ""}`)}><div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-1.5"><p class="truncate text-sm font-medium">${escape_html(link.name ?? "Untitled link")}</p> <span${attr_class(`rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${link.channel === "live" ? "bg-success/10 text-success" : "bg-warning/10 text-warning"}`)}>${escape_html(link.channel)}</span> `);
2561
+ if (!link.allowSolve) {
2562
+ $$renderer2.push("<!--[0-->");
2563
+ $$renderer2.push(`<span class="bg-muted text-muted-foreground rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">view-only</span>`);
2564
+ } else {
2565
+ $$renderer2.push("<!--[-1-->");
2566
+ }
2567
+ $$renderer2.push(`<!--]--> `);
2568
+ if (expired) {
2569
+ $$renderer2.push("<!--[0-->");
2570
+ $$renderer2.push(`<span class="bg-destructive/10 text-destructive flex items-center gap-1 rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">`);
2571
+ Triangle_alert($$renderer2, { class: "h-2.5 w-2.5" });
2572
+ $$renderer2.push(`<!----> expired</span>`);
2573
+ } else {
2574
+ $$renderer2.push("<!--[-1-->");
2575
+ }
2576
+ $$renderer2.push(`<!--]--> `);
2577
+ if (capReached) {
2578
+ $$renderer2.push("<!--[0-->");
2579
+ $$renderer2.push(`<span class="bg-destructive/10 text-destructive rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">cap reached</span>`);
2580
+ } else {
2581
+ $$renderer2.push("<!--[-1-->");
2582
+ }
2583
+ $$renderer2.push(`<!--]--></div> <div class="text-muted-foreground mt-1 flex flex-wrap items-center gap-x-3 gap-y-0.5 text-xs"><span class="font-mono tabular-nums">${escape_html(link.solveCount.toLocaleString())}${escape_html(hasCap ? ` / ${capValue.toLocaleString()}` : "")} solves</span> <span>·</span> <span>Expires: ${escape_html(typeof expiry === "object" ? expiry.text : expiry)}</span> <span>·</span> <span>Minted ${escape_html(formatRelative(link.createdAt))}</span></div></div> `);
2584
+ Button($$renderer2, {
2585
+ variant: "ghost",
2586
+ size: "icon",
2587
+ onclick: () => confirmingRevoke = link,
2588
+ disabled: revokingId === link.id,
2589
+ class: "text-muted-foreground hover:text-destructive h-7 w-7 shrink-0",
2590
+ "aria-label": "Revoke link",
2591
+ children: ($$renderer3) => {
2592
+ Trash_2($$renderer3, { class: "h-3.5 w-3.5" });
2593
+ },
2594
+ $$slots: { default: true }
2595
+ });
2596
+ $$renderer2.push(`<!----></div>`);
2597
+ }
2598
+ $$renderer2.push(`<!--]--></div>`);
2599
+ }
2600
+ $$renderer2.push(`<!--]--></div> `);
2601
+ MintShareLinkDialog($$renderer2, {
2602
+ definitionGuid,
2603
+ open: showMintDialog,
2604
+ onOpenChange: (o) => showMintDialog = o,
2605
+ onMinted: loadLinks
2606
+ });
2607
+ $$renderer2.push(`<!----> `);
2608
+ if (Root) {
2609
+ $$renderer2.push("<!--[-->");
2610
+ Root($$renderer2, {
2611
+ open: !!confirmingRevoke,
2612
+ onOpenChange: (o) => !o && (confirmingRevoke = null),
2613
+ children: ($$renderer3) => {
2614
+ if (Alert_dialog_content) {
2615
+ $$renderer3.push("<!--[-->");
2616
+ Alert_dialog_content($$renderer3, {
2617
+ children: ($$renderer4) => {
2618
+ if (Alert_dialog_header) {
2619
+ $$renderer4.push("<!--[-->");
2620
+ Alert_dialog_header($$renderer4, {
2621
+ children: ($$renderer5) => {
2622
+ if (Alert_dialog_title) {
2623
+ $$renderer5.push("<!--[-->");
2624
+ Alert_dialog_title($$renderer5, {
2625
+ children: ($$renderer6) => {
2626
+ $$renderer6.push(`<!---->Revoke this link?`);
2627
+ },
2628
+ $$slots: { default: true }
2629
+ });
2630
+ $$renderer5.push("<!--]-->");
2631
+ } else {
2632
+ $$renderer5.push("<!--[!-->");
2633
+ $$renderer5.push("<!--]-->");
2634
+ }
2635
+ $$renderer5.push(` `);
2636
+ if (Alert_dialog_description) {
2637
+ $$renderer5.push("<!--[-->");
2638
+ Alert_dialog_description($$renderer5, {
2639
+ children: ($$renderer6) => {
2640
+ if (confirmingRevoke) {
2641
+ $$renderer6.push("<!--[0-->");
2642
+ $$renderer6.push(`<strong>${escape_html(confirmingRevoke.name ?? "This link")}</strong> will stop working immediately. Anyone
2643
+ using it will see a "no longer active" page. This cannot be undone.`);
2644
+ } else {
2645
+ $$renderer6.push("<!--[-1-->");
2646
+ }
2647
+ $$renderer6.push(`<!--]-->`);
2648
+ },
2649
+ $$slots: { default: true }
2650
+ });
2651
+ $$renderer5.push("<!--]-->");
2652
+ } else {
2653
+ $$renderer5.push("<!--[!-->");
2654
+ $$renderer5.push("<!--]-->");
2655
+ }
2656
+ },
2657
+ $$slots: { default: true }
2658
+ });
2659
+ $$renderer4.push("<!--]-->");
2660
+ } else {
2661
+ $$renderer4.push("<!--[!-->");
2662
+ $$renderer4.push("<!--]-->");
2663
+ }
2664
+ $$renderer4.push(` `);
2665
+ if (Alert_dialog_footer) {
2666
+ $$renderer4.push("<!--[-->");
2667
+ Alert_dialog_footer($$renderer4, {
2668
+ children: ($$renderer5) => {
2669
+ if (Alert_dialog_cancel) {
2670
+ $$renderer5.push("<!--[-->");
2671
+ Alert_dialog_cancel($$renderer5, {
2672
+ children: ($$renderer6) => {
2673
+ $$renderer6.push(`<!---->Cancel`);
2674
+ },
2675
+ $$slots: { default: true }
2676
+ });
2677
+ $$renderer5.push("<!--]-->");
2678
+ } else {
2679
+ $$renderer5.push("<!--[!-->");
2680
+ $$renderer5.push("<!--]-->");
2681
+ }
2682
+ $$renderer5.push(` `);
2683
+ if (Alert_dialog_action) {
2684
+ $$renderer5.push("<!--[-->");
2685
+ Alert_dialog_action($$renderer5, {
2686
+ onclick: () => confirmingRevoke && revoke(confirmingRevoke),
2687
+ disabled: !!revokingId,
2688
+ children: ($$renderer6) => {
2689
+ $$renderer6.push(`<!---->${escape_html(revokingId ? "Revoking…" : "Revoke")}`);
2690
+ },
2691
+ $$slots: { default: true }
2692
+ });
2693
+ $$renderer5.push("<!--]-->");
2694
+ } else {
2695
+ $$renderer5.push("<!--[!-->");
2696
+ $$renderer5.push("<!--]-->");
2697
+ }
2698
+ },
2699
+ $$slots: { default: true }
2700
+ });
2701
+ $$renderer4.push("<!--]-->");
2702
+ } else {
2703
+ $$renderer4.push("<!--[!-->");
2704
+ $$renderer4.push("<!--]-->");
2705
+ }
2706
+ },
2707
+ $$slots: { default: true }
2708
+ });
2709
+ $$renderer3.push("<!--]-->");
2710
+ } else {
2711
+ $$renderer3.push("<!--[!-->");
2712
+ $$renderer3.push("<!--]-->");
2713
+ }
2714
+ },
2715
+ $$slots: { default: true }
2716
+ });
2717
+ $$renderer2.push("<!--]-->");
2718
+ } else {
2719
+ $$renderer2.push("<!--[!-->");
2720
+ $$renderer2.push("<!--]-->");
2721
+ }
2722
+ });
2723
+ }
2724
+ function DefinitionEditDrawer($$renderer, $$props) {
2725
+ $$renderer.component(($$renderer2) => {
2726
+ let {
2727
+ record,
2728
+ projects,
2729
+ computeServers,
2730
+ defaultComputeServerId = null,
2731
+ isSaving,
2732
+ initialTab = "versions",
2733
+ enableSharing,
2734
+ onClose,
2735
+ onSave,
2736
+ onDelete,
2737
+ onOpenRunner,
2738
+ onBack
2739
+ } = $$props;
2740
+ let activeTab = initialTab === "shares" && !enableSharing ? "versions" : initialTab;
2741
+ let displayName = record.displayName;
2742
+ let description = record.description ?? "";
2743
+ let category = record.category ?? "";
2744
+ let tags = [...record.tags ?? []];
2745
+ let projectId = record.projectId;
2746
+ let computeServerId = record.computeServerId ?? null;
2747
+ let status = record.status;
2748
+ let userImageMode = void 0;
2749
+ let coverImageUrl = record.coverImage ?? "";
2750
+ let imageInput = void 0;
2751
+ let imageHasFile = false;
2752
+ let showDeleteConfirm = false;
2753
+ let uploadingImage = false;
2754
+ let pendingProjectId = null;
2755
+ const pendingProject = derived(() => pendingProjectId ? projects.find((p) => p.id === pendingProjectId) ?? null : null);
2756
+ const currentProject = derived(() => projects.find((p) => p.id === projectId) ?? null);
2757
+ function handleProjectChange(nextId) {
2758
+ if (nextId === projectId) return;
2759
+ pendingProjectId = nextId;
2760
+ }
2761
+ function confirmProjectChange() {
2762
+ if (pendingProjectId) projectId = pendingProjectId;
2763
+ pendingProjectId = null;
2764
+ }
2765
+ function cancelProjectChange() {
2766
+ pendingProjectId = null;
2767
+ }
2768
+ const imageMode = derived(() => userImageMode ?? (record.coverImage?.startsWith("/api/definitions/") ? "upload" : "url"));
2769
+ const statusItems = [
2770
+ {
2771
+ id: "draft",
2772
+ label: "Draft — work in progress",
2773
+ icon: Circle,
2774
+ iconStyle: "color: var(--muted-foreground); fill: var(--muted-foreground);"
2775
+ },
2776
+ {
2777
+ id: "published",
2778
+ label: "Published — live and visible to runners",
2779
+ icon: Circle,
2780
+ iconStyle: "color: #22c55e; fill: #22c55e;"
2781
+ }
2782
+ ];
2783
+ const computeServerItems = derived(() => computeServers.map((s) => ({
2784
+ id: s.id,
2785
+ label: s.id === defaultComputeServerId ? `${s.label} (Default)` : s.label
2786
+ })));
2787
+ async function handleImageUpload() {
2788
+ if (!imageInput?.files?.length) return;
2789
+ uploadingImage = true;
2790
+ const formData = new FormData();
2791
+ formData.append("image", imageInput.files[0]);
2792
+ try {
2793
+ const res = await fetch(`/api/definitions/${record.guid}/image`, { method: "POST", body: formData });
2794
+ if (res.ok) {
2795
+ toast.success("Cover image updated");
2796
+ await invalidateAll();
2797
+ } else {
2798
+ const e = await res.json().catch(() => ({}));
2799
+ toast.error(e.message || "Image upload failed");
2800
+ }
2801
+ } catch {
2802
+ toast.error("Image upload failed");
2803
+ } finally {
2804
+ uploadingImage = false;
2805
+ if (imageInput) imageInput.value = "";
2806
+ imageHasFile = false;
2807
+ }
2808
+ }
2809
+ function save() {
2810
+ onSave(record.guid, {
2811
+ displayName,
2812
+ description: description || void 0,
2813
+ category: category || void 0,
2814
+ tags: tags.length ? tags : void 0,
2815
+ coverImage: coverImageUrl || void 0,
2816
+ status,
2817
+ projectId: projectId || void 0,
2818
+ computeServerId
2819
+ });
2820
+ }
2821
+ let $$settled = true;
2822
+ let $$inner_renderer;
2823
+ function $$render_inner($$renderer3) {
2824
+ Drawer($$renderer3, {
2825
+ onClose,
2826
+ ariaLabel: "Close edit drawer",
2827
+ children: ($$renderer4) => {
2828
+ $$renderer4.push(`<div class="border-border flex shrink-0 items-center justify-between border-b px-6 py-4"><div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Editing</p> <h2 class="mt-0.5 text-base font-semibold">${escape_html(record.displayName)}</h2></div> `);
2829
+ Button($$renderer4, {
2830
+ variant: "ghost",
2831
+ size: "icon",
2832
+ onclick: onClose,
2833
+ class: "h-8 w-8 shrink-0",
2834
+ children: ($$renderer5) => {
2835
+ X($$renderer5, { class: "h-4 w-4" });
2836
+ },
2837
+ $$slots: { default: true }
2838
+ });
2839
+ $$renderer4.push(`<!----></div> `);
2840
+ if (onBack) {
2841
+ $$renderer4.push("<!--[0-->");
2842
+ $$renderer4.push(`<button type="button" class="text-muted-foreground hover:text-foreground mx-6 mt-4 inline-flex items-center gap-1.5 self-start text-xs transition-colors">`);
2843
+ Arrow_left($$renderer4, { class: "h-3 w-3" });
2844
+ $$renderer4.push(`<!----> Back to definition</button>`);
2845
+ } else {
2846
+ $$renderer4.push("<!--[-1-->");
2847
+ }
2848
+ $$renderer4.push(`<!--]--> `);
2849
+ if (Tabs) {
2850
+ $$renderer4.push("<!--[-->");
2851
+ Tabs($$renderer4, {
2852
+ class: "flex flex-1 flex-col overflow-hidden",
2853
+ get value() {
2854
+ return activeTab;
2855
+ },
2856
+ set value($$value) {
2857
+ activeTab = $$value;
2858
+ $$settled = false;
2859
+ },
2860
+ children: ($$renderer5) => {
2861
+ if (Tabs_list) {
2862
+ $$renderer5.push("<!--[-->");
2863
+ Tabs_list($$renderer5, {
2864
+ class: `mx-6 grid w-auto ${enableSharing ? "grid-cols-3" : "grid-cols-2"} ${onBack ? "mt-2" : "mt-4"}`,
2865
+ children: ($$renderer6) => {
2866
+ if (Tabs_trigger) {
2867
+ $$renderer6.push("<!--[-->");
2868
+ Tabs_trigger($$renderer6, {
2869
+ value: "details",
2870
+ children: ($$renderer7) => {
2871
+ $$renderer7.push(`<!---->Details`);
2872
+ },
2873
+ $$slots: { default: true }
2874
+ });
2875
+ $$renderer6.push("<!--]-->");
2876
+ } else {
2877
+ $$renderer6.push("<!--[!-->");
2878
+ $$renderer6.push("<!--]-->");
2879
+ }
2880
+ $$renderer6.push(` `);
2881
+ if (Tabs_trigger) {
2882
+ $$renderer6.push("<!--[-->");
2883
+ Tabs_trigger($$renderer6, {
2884
+ value: "versions",
2885
+ children: ($$renderer7) => {
2886
+ $$renderer7.push(`<!---->Versions`);
2887
+ },
2888
+ $$slots: { default: true }
2889
+ });
2890
+ $$renderer6.push("<!--]-->");
2891
+ } else {
2892
+ $$renderer6.push("<!--[!-->");
2893
+ $$renderer6.push("<!--]-->");
2894
+ }
2895
+ $$renderer6.push(` `);
2896
+ if (enableSharing) {
2897
+ $$renderer6.push("<!--[0-->");
2898
+ if (Tabs_trigger) {
2899
+ $$renderer6.push("<!--[-->");
2900
+ Tabs_trigger($$renderer6, {
2901
+ value: "shares",
2902
+ children: ($$renderer7) => {
2903
+ $$renderer7.push(`<!---->Share links`);
2904
+ },
2905
+ $$slots: { default: true }
2906
+ });
2907
+ $$renderer6.push("<!--]-->");
2908
+ } else {
2909
+ $$renderer6.push("<!--[!-->");
2910
+ $$renderer6.push("<!--]-->");
2911
+ }
2912
+ } else {
2913
+ $$renderer6.push("<!--[-1-->");
2914
+ }
2915
+ $$renderer6.push(`<!--]-->`);
2916
+ },
2917
+ $$slots: { default: true }
2918
+ });
2919
+ $$renderer5.push("<!--]-->");
2920
+ } else {
2921
+ $$renderer5.push("<!--[!-->");
2922
+ $$renderer5.push("<!--]-->");
2923
+ }
2924
+ $$renderer5.push(` `);
2925
+ if (Tabs_content) {
2926
+ $$renderer5.push("<!--[-->");
2927
+ Tabs_content($$renderer5, {
2928
+ value: "versions",
2929
+ class: "mt-4 flex-1 overflow-y-auto px-6 py-5",
2930
+ children: ($$renderer6) => {
2931
+ VersionsSection($$renderer6, { definitionGuid: record.guid, onOpenRunner });
2932
+ },
2933
+ $$slots: { default: true }
2934
+ });
2935
+ $$renderer5.push("<!--]-->");
2936
+ } else {
2937
+ $$renderer5.push("<!--[!-->");
2938
+ $$renderer5.push("<!--]-->");
2939
+ }
2940
+ $$renderer5.push(` `);
2941
+ if (Tabs_content) {
2942
+ $$renderer5.push("<!--[-->");
2943
+ Tabs_content($$renderer5, {
2944
+ value: "details",
2945
+ class: "mt-4 flex-1 space-y-5 overflow-y-auto px-6 py-5",
2946
+ children: ($$renderer6) => {
2947
+ $$renderer6.push(`<div class="space-y-1.5">`);
2948
+ Label($$renderer6, {
2949
+ for: "edit-name",
2950
+ children: ($$renderer7) => {
2951
+ $$renderer7.push(`<!---->Display name`);
2952
+ },
2953
+ $$slots: { default: true }
2954
+ });
2955
+ $$renderer6.push(`<!----> `);
2956
+ Input($$renderer6, {
2957
+ id: "edit-name",
2958
+ get value() {
2959
+ return displayName;
2960
+ },
2961
+ set value($$value) {
2962
+ displayName = $$value;
2963
+ $$settled = false;
2964
+ }
2965
+ });
2966
+ $$renderer6.push(`<!----></div> <div class="space-y-1.5">`);
2967
+ Label($$renderer6, {
2968
+ for: "edit-desc",
2969
+ children: ($$renderer7) => {
2970
+ $$renderer7.push(`<!---->Description`);
2971
+ },
2972
+ $$slots: { default: true }
2973
+ });
2974
+ $$renderer6.push(`<!----> `);
2975
+ Textarea($$renderer6, {
2976
+ id: "edit-desc",
2977
+ rows: 3,
2978
+ get value() {
2979
+ return description;
2980
+ },
2981
+ set value($$value) {
2982
+ description = $$value;
2983
+ $$settled = false;
2984
+ }
2985
+ });
2986
+ $$renderer6.push(`<!----></div> <div class="space-y-1.5">`);
2987
+ Label($$renderer6, {
2988
+ for: "edit-status",
2989
+ children: ($$renderer7) => {
2990
+ $$renderer7.push(`<!---->Status`);
2991
+ },
2992
+ $$slots: { default: true }
2993
+ });
2994
+ $$renderer6.push(`<!----> `);
2995
+ FilterableDropdown($$renderer6, {
2996
+ id: "edit-status",
2997
+ items: statusItems,
2998
+ value: status,
2999
+ onChange: (id) => status = id
3000
+ });
3001
+ $$renderer6.push(`<!----></div> <div class="grid grid-cols-2 gap-3"><div class="space-y-1.5">`);
3002
+ Label($$renderer6, {
3003
+ for: "edit-cat",
3004
+ children: ($$renderer7) => {
3005
+ $$renderer7.push(`<!---->Category`);
3006
+ },
3007
+ $$slots: { default: true }
3008
+ });
3009
+ $$renderer6.push(`<!----> `);
3010
+ Input($$renderer6, {
3011
+ id: "edit-cat",
3012
+ maxlength: 40,
3013
+ placeholder: "e.g. Facade",
3014
+ get value() {
3015
+ return category;
3016
+ },
3017
+ set value($$value) {
3018
+ category = $$value;
3019
+ $$settled = false;
3020
+ }
3021
+ });
3022
+ $$renderer6.push(`<!----></div> <div class="space-y-1.5"><div class="flex items-center justify-between">`);
3023
+ Label($$renderer6, {
3024
+ for: "edit-tags",
3025
+ children: ($$renderer7) => {
3026
+ $$renderer7.push(`<!---->Tags`);
3027
+ },
3028
+ $$slots: { default: true }
3029
+ });
3030
+ $$renderer6.push(`<!----> <span class="text-muted-foreground text-xs">${escape_html(tags.length)}/5</span></div> `);
3031
+ if (tags.length > 0) {
3032
+ $$renderer6.push("<!--[0-->");
3033
+ $$renderer6.push(`<div class="mb-1 flex flex-wrap gap-1"><!--[-->`);
3034
+ const each_array = ensure_array_like(tags);
3035
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
3036
+ let tag = each_array[$$index];
3037
+ Badge($$renderer6, {
3038
+ variant: "outline",
3039
+ class: "gap-1 text-xs",
3040
+ children: ($$renderer7) => {
3041
+ $$renderer7.push(`<!---->${escape_html(tag)} <button class="hover:opacity-70"${attr("aria-label", `Remove tag ${stringify(tag)}`)}>`);
3042
+ X($$renderer7, { class: "h-2.5 w-2.5" });
3043
+ $$renderer7.push(`<!----></button>`);
3044
+ },
3045
+ $$slots: { default: true }
3046
+ });
3047
+ }
3048
+ $$renderer6.push(`<!--]--></div>`);
3049
+ } else {
3050
+ $$renderer6.push("<!--[-1-->");
3051
+ }
3052
+ $$renderer6.push(`<!--]--> `);
3053
+ Input($$renderer6, {
3054
+ id: "edit-tags",
3055
+ placeholder: "Add tag + Enter",
3056
+ disabled: tags.length >= 5,
3057
+ onkeydown: (e) => {
3058
+ if (e.key === "Enter") {
3059
+ e.preventDefault();
3060
+ const el = e.currentTarget;
3061
+ const tag = el.value.trim();
3062
+ if (tag && !tags.includes(tag) && tags.length < 5) {
3063
+ tags = [...tags, tag];
3064
+ el.value = "";
3065
+ }
3066
+ }
3067
+ }
3068
+ });
3069
+ $$renderer6.push(`<!----></div></div> `);
3070
+ Separator($$renderer6, {});
3071
+ $$renderer6.push(`<!----> <div class="space-y-2"><div class="flex items-center gap-2">`);
3072
+ Image($$renderer6, { class: "text-muted-foreground h-4 w-4" });
3073
+ $$renderer6.push(`<!----> `);
3074
+ Label($$renderer6, {
3075
+ children: ($$renderer7) => {
3076
+ $$renderer7.push(`<!---->Cover image`);
3077
+ },
3078
+ $$slots: { default: true }
3079
+ });
3080
+ $$renderer6.push(`<!----></div> `);
3081
+ ImageUploadField($$renderer6, {
3082
+ mode: imageMode(),
3083
+ value: record.coverImage ?? "",
3084
+ isUploading: uploadingImage,
3085
+ hasFile: imageHasFile,
3086
+ onModeChange: (m) => userImageMode = m,
3087
+ onUpload: handleImageUpload,
3088
+ onFileSelected: () => imageHasFile = !!imageInput?.files?.length,
3089
+ onUrlChange: (url) => coverImageUrl = url,
3090
+ get inputRef() {
3091
+ return imageInput;
3092
+ },
3093
+ set inputRef($$value) {
3094
+ imageInput = $$value;
3095
+ $$settled = false;
3096
+ }
3097
+ });
3098
+ $$renderer6.push(`<!----></div> `);
3099
+ if (projects.length > 1 || computeServers.length > 0) {
3100
+ $$renderer6.push("<!--[0-->");
3101
+ $$renderer6.push(`<div class="grid grid-cols-2 gap-3">`);
3102
+ if (projects.length > 1) {
3103
+ $$renderer6.push("<!--[0-->");
3104
+ $$renderer6.push(`<div class="space-y-1.5">`);
3105
+ Label($$renderer6, {
3106
+ for: "edit-proj",
3107
+ children: ($$renderer7) => {
3108
+ $$renderer7.push(`<!---->Project`);
3109
+ },
3110
+ $$slots: { default: true }
3111
+ });
3112
+ $$renderer6.push(`<!----> `);
3113
+ ProjectPicker($$renderer6, {
3114
+ id: "edit-proj",
3115
+ projects,
3116
+ value: projectId,
3117
+ onChange: handleProjectChange
3118
+ });
3119
+ $$renderer6.push(`<!----></div>`);
3120
+ } else {
3121
+ $$renderer6.push("<!--[-1-->");
3122
+ }
3123
+ $$renderer6.push(`<!--]--> `);
3124
+ if (computeServers.length > 0) {
3125
+ $$renderer6.push("<!--[0-->");
3126
+ $$renderer6.push(`<div class="space-y-1.5">`);
3127
+ Label($$renderer6, {
3128
+ for: "edit-srv",
3129
+ children: ($$renderer7) => {
3130
+ $$renderer7.push(`<!---->Compute server`);
3131
+ },
3132
+ $$slots: { default: true }
3133
+ });
3134
+ $$renderer6.push(`<!----> `);
3135
+ FilterableDropdown($$renderer6, {
3136
+ id: "edit-srv",
3137
+ items: computeServerItems(),
3138
+ value: computeServerId ?? defaultComputeServerId ?? "",
3139
+ onChange: (picked) => {
3140
+ computeServerId = picked === defaultComputeServerId ? null : picked;
3141
+ }
3142
+ });
3143
+ $$renderer6.push(`<!----></div>`);
3144
+ } else {
3145
+ $$renderer6.push("<!--[-1-->");
3146
+ }
3147
+ $$renderer6.push(`<!--]--></div>`);
3148
+ } else {
3149
+ $$renderer6.push("<!--[-1-->");
3150
+ }
3151
+ $$renderer6.push(`<!--]-->`);
3152
+ },
3153
+ $$slots: { default: true }
3154
+ });
3155
+ $$renderer5.push("<!--]-->");
3156
+ } else {
3157
+ $$renderer5.push("<!--[!-->");
3158
+ $$renderer5.push("<!--]-->");
3159
+ }
3160
+ $$renderer5.push(` `);
3161
+ if (enableSharing) {
3162
+ $$renderer5.push("<!--[0-->");
3163
+ if (Tabs_content) {
3164
+ $$renderer5.push("<!--[-->");
3165
+ Tabs_content($$renderer5, {
3166
+ value: "shares",
3167
+ class: "mt-4 flex-1 overflow-y-auto px-6 py-5",
3168
+ children: ($$renderer6) => {
3169
+ ShareLinkSection($$renderer6, { definitionGuid: record.guid });
3170
+ },
3171
+ $$slots: { default: true }
3172
+ });
3173
+ $$renderer5.push("<!--]-->");
3174
+ } else {
3175
+ $$renderer5.push("<!--[!-->");
3176
+ $$renderer5.push("<!--]-->");
3177
+ }
3178
+ } else {
3179
+ $$renderer5.push("<!--[-1-->");
3180
+ }
3181
+ $$renderer5.push(`<!--]-->`);
3182
+ },
3183
+ $$slots: { default: true }
3184
+ });
3185
+ $$renderer4.push("<!--]-->");
3186
+ } else {
3187
+ $$renderer4.push("<!--[!-->");
3188
+ $$renderer4.push("<!--]-->");
3189
+ }
3190
+ $$renderer4.push(` <div class="border-border flex shrink-0 items-center justify-between border-t px-6 py-4">`);
3191
+ Button($$renderer4, {
3192
+ variant: "ghost",
3193
+ size: "sm",
3194
+ onclick: () => showDeleteConfirm = true,
3195
+ class: "text-destructive hover:text-destructive gap-1.5 px-2",
3196
+ children: ($$renderer5) => {
3197
+ Trash_2($$renderer5, { class: "h-3.5 w-3.5" });
3198
+ $$renderer5.push(`<!----> Delete`);
3199
+ },
3200
+ $$slots: { default: true }
3201
+ });
3202
+ $$renderer4.push(`<!----> <div class="flex gap-2">`);
3203
+ Button($$renderer4, {
3204
+ variant: "outline",
3205
+ size: "sm",
3206
+ onclick: onClose,
3207
+ children: ($$renderer5) => {
3208
+ $$renderer5.push(`<!---->Cancel`);
3209
+ },
3210
+ $$slots: { default: true }
3211
+ });
3212
+ $$renderer4.push(`<!----> `);
3213
+ if (activeTab === "details") {
3214
+ $$renderer4.push("<!--[0-->");
3215
+ Button($$renderer4, {
3216
+ size: "sm",
3217
+ disabled: isSaving,
3218
+ onclick: save,
3219
+ children: ($$renderer5) => {
3220
+ $$renderer5.push(`<!---->${escape_html(isSaving ? "Saving…" : "Save")}`);
3221
+ },
3222
+ $$slots: { default: true }
3223
+ });
3224
+ } else {
3225
+ $$renderer4.push("<!--[-1-->");
3226
+ }
3227
+ $$renderer4.push(`<!--]--></div></div>`);
3228
+ }
3229
+ });
3230
+ $$renderer3.push(`<!----> `);
3231
+ if (Root) {
3232
+ $$renderer3.push("<!--[-->");
3233
+ Root($$renderer3, {
3234
+ open: showDeleteConfirm,
3235
+ onOpenChange: (o) => showDeleteConfirm = o,
3236
+ children: ($$renderer4) => {
3237
+ if (Alert_dialog_content) {
3238
+ $$renderer4.push("<!--[-->");
3239
+ Alert_dialog_content($$renderer4, {
3240
+ children: ($$renderer5) => {
3241
+ if (Alert_dialog_header) {
3242
+ $$renderer5.push("<!--[-->");
3243
+ Alert_dialog_header($$renderer5, {
3244
+ children: ($$renderer6) => {
3245
+ if (Alert_dialog_title) {
3246
+ $$renderer6.push("<!--[-->");
3247
+ Alert_dialog_title($$renderer6, {
3248
+ children: ($$renderer7) => {
3249
+ $$renderer7.push(`<!---->Delete "${escape_html(record.displayName)}"?`);
3250
+ },
3251
+ $$slots: { default: true }
3252
+ });
3253
+ $$renderer6.push("<!--]-->");
3254
+ } else {
3255
+ $$renderer6.push("<!--[!-->");
3256
+ $$renderer6.push("<!--]-->");
3257
+ }
3258
+ $$renderer6.push(` `);
3259
+ if (Alert_dialog_description) {
3260
+ $$renderer6.push("<!--[-->");
3261
+ Alert_dialog_description($$renderer6, {
3262
+ children: ($$renderer7) => {
3263
+ $$renderer7.push(`<!---->This removes the definition and all its files. This cannot be undone.`);
3264
+ },
3265
+ $$slots: { default: true }
3266
+ });
3267
+ $$renderer6.push("<!--]-->");
3268
+ } else {
3269
+ $$renderer6.push("<!--[!-->");
3270
+ $$renderer6.push("<!--]-->");
3271
+ }
3272
+ },
3273
+ $$slots: { default: true }
3274
+ });
3275
+ $$renderer5.push("<!--]-->");
3276
+ } else {
3277
+ $$renderer5.push("<!--[!-->");
3278
+ $$renderer5.push("<!--]-->");
3279
+ }
3280
+ $$renderer5.push(` `);
3281
+ if (Alert_dialog_footer) {
3282
+ $$renderer5.push("<!--[-->");
3283
+ Alert_dialog_footer($$renderer5, {
3284
+ children: ($$renderer6) => {
3285
+ if (Alert_dialog_cancel) {
3286
+ $$renderer6.push("<!--[-->");
3287
+ Alert_dialog_cancel($$renderer6, {
3288
+ children: ($$renderer7) => {
3289
+ $$renderer7.push(`<!---->Cancel`);
3290
+ },
3291
+ $$slots: { default: true }
3292
+ });
3293
+ $$renderer6.push("<!--]-->");
3294
+ } else {
3295
+ $$renderer6.push("<!--[!-->");
3296
+ $$renderer6.push("<!--]-->");
3297
+ }
3298
+ $$renderer6.push(` `);
3299
+ if (Alert_dialog_action) {
3300
+ $$renderer6.push("<!--[-->");
3301
+ Alert_dialog_action($$renderer6, {
3302
+ onclick: () => onDelete(record.guid),
3303
+ children: ($$renderer7) => {
3304
+ $$renderer7.push(`<!---->Delete`);
3305
+ },
3306
+ $$slots: { default: true }
3307
+ });
3308
+ $$renderer6.push("<!--]-->");
3309
+ } else {
3310
+ $$renderer6.push("<!--[!-->");
3311
+ $$renderer6.push("<!--]-->");
3312
+ }
3313
+ },
3314
+ $$slots: { default: true }
3315
+ });
3316
+ $$renderer5.push("<!--]-->");
3317
+ } else {
3318
+ $$renderer5.push("<!--[!-->");
3319
+ $$renderer5.push("<!--]-->");
3320
+ }
3321
+ },
3322
+ $$slots: { default: true }
3323
+ });
3324
+ $$renderer4.push("<!--]-->");
3325
+ } else {
3326
+ $$renderer4.push("<!--[!-->");
3327
+ $$renderer4.push("<!--]-->");
3328
+ }
3329
+ },
3330
+ $$slots: { default: true }
3331
+ });
3332
+ $$renderer3.push("<!--]-->");
3333
+ } else {
3334
+ $$renderer3.push("<!--[!-->");
3335
+ $$renderer3.push("<!--]-->");
3336
+ }
3337
+ $$renderer3.push(` `);
3338
+ if (Root) {
3339
+ $$renderer3.push("<!--[-->");
3340
+ Root($$renderer3, {
3341
+ open: pendingProjectId !== null,
3342
+ onOpenChange: (o) => {
3343
+ if (!o) cancelProjectChange();
3344
+ },
3345
+ children: ($$renderer4) => {
3346
+ if (Alert_dialog_content) {
3347
+ $$renderer4.push("<!--[-->");
3348
+ Alert_dialog_content($$renderer4, {
3349
+ children: ($$renderer5) => {
3350
+ if (Alert_dialog_header) {
3351
+ $$renderer5.push("<!--[-->");
3352
+ Alert_dialog_header($$renderer5, {
3353
+ children: ($$renderer6) => {
3354
+ if (Alert_dialog_title) {
3355
+ $$renderer6.push("<!--[-->");
3356
+ Alert_dialog_title($$renderer6, {
3357
+ children: ($$renderer7) => {
3358
+ $$renderer7.push(`<!---->Move to a different project?`);
3359
+ },
3360
+ $$slots: { default: true }
3361
+ });
3362
+ $$renderer6.push("<!--]-->");
3363
+ } else {
3364
+ $$renderer6.push("<!--[!-->");
3365
+ $$renderer6.push("<!--]-->");
3366
+ }
3367
+ $$renderer6.push(` `);
3368
+ if (Alert_dialog_description) {
3369
+ $$renderer6.push("<!--[-->");
3370
+ Alert_dialog_description($$renderer6, {
3371
+ children: ($$renderer7) => {
3372
+ $$renderer7.push(`<strong>${escape_html(record.displayName)}</strong> will move from <strong>${escape_html(currentProject()?.name ?? "—")}</strong> to <strong>${escape_html(pendingProject()?.name ?? "—")}</strong>. Project members and visibility may change
3373
+ accordingly.${escape_html(enableSharing ? " Existing share links keep working." : "")}`);
3374
+ },
3375
+ $$slots: { default: true }
3376
+ });
3377
+ $$renderer6.push("<!--]-->");
3378
+ } else {
3379
+ $$renderer6.push("<!--[!-->");
3380
+ $$renderer6.push("<!--]-->");
3381
+ }
3382
+ },
3383
+ $$slots: { default: true }
3384
+ });
3385
+ $$renderer5.push("<!--]-->");
3386
+ } else {
3387
+ $$renderer5.push("<!--[!-->");
3388
+ $$renderer5.push("<!--]-->");
3389
+ }
3390
+ $$renderer5.push(` `);
3391
+ if (Alert_dialog_footer) {
3392
+ $$renderer5.push("<!--[-->");
3393
+ Alert_dialog_footer($$renderer5, {
3394
+ children: ($$renderer6) => {
3395
+ if (Alert_dialog_cancel) {
3396
+ $$renderer6.push("<!--[-->");
3397
+ Alert_dialog_cancel($$renderer6, {
3398
+ onclick: cancelProjectChange,
3399
+ children: ($$renderer7) => {
3400
+ $$renderer7.push(`<!---->Cancel`);
3401
+ },
3402
+ $$slots: { default: true }
3403
+ });
3404
+ $$renderer6.push("<!--]-->");
3405
+ } else {
3406
+ $$renderer6.push("<!--[!-->");
3407
+ $$renderer6.push("<!--]-->");
3408
+ }
3409
+ $$renderer6.push(` `);
3410
+ if (Alert_dialog_action) {
3411
+ $$renderer6.push("<!--[-->");
3412
+ Alert_dialog_action($$renderer6, {
3413
+ onclick: confirmProjectChange,
3414
+ children: ($$renderer7) => {
3415
+ $$renderer7.push(`<!---->Move`);
3416
+ },
3417
+ $$slots: { default: true }
3418
+ });
3419
+ $$renderer6.push("<!--]-->");
3420
+ } else {
3421
+ $$renderer6.push("<!--[!-->");
3422
+ $$renderer6.push("<!--]-->");
3423
+ }
3424
+ },
3425
+ $$slots: { default: true }
3426
+ });
3427
+ $$renderer5.push("<!--]-->");
3428
+ } else {
3429
+ $$renderer5.push("<!--[!-->");
3430
+ $$renderer5.push("<!--]-->");
3431
+ }
3432
+ },
3433
+ $$slots: { default: true }
3434
+ });
3435
+ $$renderer4.push("<!--]-->");
3436
+ } else {
3437
+ $$renderer4.push("<!--[!-->");
3438
+ $$renderer4.push("<!--]-->");
3439
+ }
3440
+ },
3441
+ $$slots: { default: true }
3442
+ });
3443
+ $$renderer3.push("<!--]-->");
3444
+ } else {
3445
+ $$renderer3.push("<!--[!-->");
3446
+ $$renderer3.push("<!--]-->");
3447
+ }
3448
+ }
3449
+ do {
3450
+ $$settled = true;
3451
+ $$inner_renderer = $$renderer2.copy();
3452
+ $$render_inner($$inner_renderer);
3453
+ } while (!$$settled);
3454
+ $$renderer2.subsume($$inner_renderer);
3455
+ });
3456
+ }
3457
+ function _page($$renderer, $$props) {
3458
+ $$renderer.component(($$renderer2) => {
3459
+ var $$store_subs;
3460
+ let { data } = $$props;
3461
+ const enableSharing = derived(() => !!store_get($$store_subs ??= {}, "$page", page).data.flags?.enableSharing);
3462
+ let searchQuery = "";
3463
+ let activeProjectId = null;
3464
+ let viewMode = "grid";
3465
+ let drawerRecord = null;
3466
+ let editingDefinitionId = null;
3467
+ let editingProjectId = null;
3468
+ let deletingProjectId = null;
3469
+ let showAddModal = false;
3470
+ let editCameFromDetail = false;
3471
+ let editInitialTab = "versions";
3472
+ let addingDefinition = false;
3473
+ let savingDefinitionId = null;
3474
+ const filtered = derived(() => {
3475
+ let records = data.records;
3476
+ if (activeProjectId) records = records.filter((r) => r.projectId === activeProjectId);
3477
+ if (searchQuery.trim()) {
3478
+ const q = searchQuery.toLowerCase();
3479
+ records = records.filter((r) => r.displayName?.toLowerCase().includes(q) || r.description?.toLowerCase().includes(q) || r.tags?.some((t) => t.toLowerCase().includes(q)));
3480
+ }
3481
+ return records;
3482
+ });
3483
+ const editingRecord = derived(() => editingDefinitionId ? data.records.find((r) => r.guid === editingDefinitionId) ?? null : null);
3484
+ const activeProject = derived(() => activeProjectId ? data.projects.find((p) => p.id === activeProjectId) ?? null : null);
3485
+ const canAddDefinition = derived(() => activeProject() ? activeProject().canEdit : data.projects.some((p) => p.canEdit));
3486
+ const editableProjects = derived(() => data.projects.filter((p) => p.canEdit));
3487
+ const editingProject = derived(() => editingProjectId ? data.projects.find((p) => p.id === editingProjectId) ?? null : null);
3488
+ const deletingProject = derived(() => deletingProjectId ? data.projects.find((p) => p.id === deletingProjectId) ?? null : null);
3489
+ function projectName(id) {
3490
+ return data.projects.find((p) => p.id === id)?.name ?? "";
3491
+ }
3492
+ function projectVisibility(id) {
3493
+ return data.projects.find((p) => p.id === id)?.visibility;
3494
+ }
3495
+ function recordCanEdit(record) {
3496
+ return data.projects.find((p) => p.id === record.projectId)?.canEdit ?? false;
3497
+ }
3498
+ async function errorMessage(res, fallback) {
3499
+ if (res.headers.get("content-type")?.includes("application/json")) {
3500
+ const e = await res.json().catch(() => null);
3501
+ return e?.message || e?.error?.message || `${fallback} (${res.status})`;
3502
+ }
3503
+ return `${fallback} (${res.status})`;
3504
+ }
3505
+ async function saveDefinition(guid, patch) {
3506
+ savingDefinitionId = guid;
3507
+ try {
3508
+ const res = await fetch(`/api/definitions/${guid}`, {
3509
+ method: "PUT",
3510
+ headers: { "Content-Type": "application/json" },
3511
+ body: JSON.stringify(patch)
3512
+ });
3513
+ if (res.ok) {
3514
+ toast.success("Definition saved");
3515
+ editingDefinitionId = null;
3516
+ drawerRecord = null;
3517
+ await invalidateAll();
3518
+ } else {
3519
+ toast.error(await errorMessage(res, "Save failed"));
3520
+ }
3521
+ } catch (e) {
3522
+ toast.error("Save failed: " + (e instanceof Error ? e.message : "Unknown error"));
3523
+ } finally {
3524
+ savingDefinitionId = null;
3525
+ }
3526
+ }
3527
+ async function deleteDefinition(guid) {
3528
+ const rec = data.records.find((r) => r.guid === guid);
3529
+ try {
3530
+ const res = await fetch(`/api/definitions/${guid}`, { method: "DELETE" });
3531
+ if (res.ok) {
3532
+ toast.success(`"${rec?.displayName ?? "Definition"}" deleted`);
3533
+ editingDefinitionId = null;
3534
+ await invalidateAll();
3535
+ } else {
3536
+ toast.error(await errorMessage(res, "Delete failed"));
3537
+ }
3538
+ } catch {
3539
+ toast.error("Delete failed");
3540
+ }
3541
+ }
3542
+ async function saveProject(id, patch) {
3543
+ const res = await fetch(`/api/projects/${id}`, {
3544
+ method: "PATCH",
3545
+ headers: { "Content-Type": "application/json" },
3546
+ body: JSON.stringify(patch)
3547
+ });
3548
+ if (res.ok) {
3549
+ toast.success("Project saved");
3550
+ editingProjectId = null;
3551
+ await invalidateAll();
3552
+ } else {
3553
+ toast.error(await errorMessage(res, "Failed to save project"));
3554
+ }
3555
+ }
3556
+ async function deleteProject(id) {
3557
+ const res = await fetch(`/api/projects/${id}`, { method: "DELETE" });
3558
+ if (res.ok) {
3559
+ toast.success("Project deleted");
3560
+ if (activeProjectId === id) {
3561
+ activeProjectId = data.projects.find((p) => p.id !== id)?.id ?? null;
3562
+ }
3563
+ deletingProjectId = null;
3564
+ editingProjectId = null;
3565
+ await invalidateAll();
3566
+ } else {
3567
+ toast.error(await errorMessage(res, "Failed to delete project"));
3568
+ }
3569
+ }
3570
+ async function updateMemberRole(projectId, userId, role) {
3571
+ const res = await fetch(`/api/projects/${projectId}/members/${userId}`, {
3572
+ method: "PATCH",
3573
+ headers: { "Content-Type": "application/json" },
3574
+ body: JSON.stringify({ role })
3575
+ });
3576
+ if (res.ok) await invalidateAll();
3577
+ else toast.error("Failed to update role");
3578
+ }
3579
+ async function removeMember(projectId, userId) {
3580
+ const res = await fetch(`/api/projects/${projectId}/members/${userId}`, { method: "DELETE" });
3581
+ if (res.ok) await invalidateAll();
3582
+ else toast.error("Failed to remove member");
3583
+ }
3584
+ let $$settled = true;
3585
+ let $$inner_renderer;
3586
+ function $$render_inner($$renderer3) {
3587
+ head("rqn88j", $$renderer3, ($$renderer4) => {
3588
+ $$renderer4.title(($$renderer5) => {
3589
+ $$renderer5.push(`<title>Projects</title>`);
3590
+ });
3591
+ });
3592
+ $$renderer3.push(`<div class="flex h-full overflow-hidden">`);
3593
+ ProjectSidebar($$renderer3, {
3594
+ projects: data.projects,
3595
+ records: data.records,
3596
+ activeProjectId,
3597
+ canManageProjects: data.canManageProjects
3598
+ });
3599
+ $$renderer3.push(`<!----> <div class="flex flex-1 flex-col overflow-hidden"><div class="border-border bg-background shrink-0 border-b px-(--page-px) py-5">`);
3600
+ {
3601
+ let actions = function($$renderer4) {
3602
+ if (data.canManageProjects && activeProject()) {
3603
+ $$renderer4.push("<!--[0-->");
3604
+ Button($$renderer4, {
3605
+ variant: "outline",
3606
+ size: "sm",
3607
+ onclick: () => editingProjectId = activeProject().id,
3608
+ children: ($$renderer5) => {
3609
+ Settings($$renderer5, { class: "mr-1.5 h-3.5 w-3.5" });
3610
+ $$renderer5.push(`<!----> Project settings`);
3611
+ },
3612
+ $$slots: { default: true }
3613
+ });
3614
+ } else {
3615
+ $$renderer4.push("<!--[-1-->");
3616
+ }
3617
+ $$renderer4.push(`<!--]--> `);
3618
+ if (canAddDefinition()) {
3619
+ $$renderer4.push("<!--[0-->");
3620
+ Button($$renderer4, {
3621
+ size: "sm",
3622
+ onclick: () => showAddModal = true,
3623
+ children: ($$renderer5) => {
3624
+ Plus($$renderer5, { class: "mr-1.5 h-3.5 w-3.5" });
3625
+ $$renderer5.push(`<!----> Add definition`);
3626
+ },
3627
+ $$slots: { default: true }
3628
+ });
3629
+ } else {
3630
+ $$renderer4.push("<!--[-1-->");
3631
+ }
3632
+ $$renderer4.push(`<!--]-->`);
3633
+ };
3634
+ SectionHeader($$renderer3, {
3635
+ class: "mb-0",
3636
+ eyebrow: activeProject() ? activeProject().name : "All projects",
3637
+ title: "Definitions",
3638
+ description: activeProject()?.description ?? (!activeProject() ? "Definitions across every project in this organization." : void 0),
3639
+ actions
3640
+ });
3641
+ }
3642
+ $$renderer3.push(`<!----></div> <div class="flex-1 overflow-y-auto px-(--page-px) py-5"><div class="mb-5 flex items-center gap-3"><div class="max-w-lg flex-1">`);
3643
+ Search$1($$renderer3, {
3644
+ placeholder: "Search by name, description, tags…",
3645
+ clearable: true,
3646
+ get value() {
3647
+ return searchQuery;
3648
+ },
3649
+ set value($$value) {
3650
+ searchQuery = $$value;
3651
+ $$settled = false;
3652
+ }
3653
+ });
3654
+ $$renderer3.push(`<!----></div> <span class="text-muted-foreground font-mono text-xs tabular-nums">${escape_html(filtered().length)} definition${escape_html(filtered().length === 1 ? "" : "s")}</span> <div class="ml-auto">`);
3655
+ ViewToggle($$renderer3, { mode: viewMode, size: "sm", onChange: (m) => viewMode = m });
3656
+ $$renderer3.push(`<!----></div></div> `);
3657
+ if (filtered().length === 0) {
3658
+ $$renderer3.push("<!--[0-->");
3659
+ EmptyState($$renderer3, {
3660
+ size: "lg",
3661
+ title: "No definitions found",
3662
+ description: searchQuery ? "Try adjusting your search" : "Add your first definition to get started"
3663
+ });
3664
+ } else if (viewMode === "grid") {
3665
+ $$renderer3.push("<!--[1-->");
3666
+ $$renderer3.push(`<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"><!--[-->`);
3667
+ const each_array = ensure_array_like(filtered());
3668
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
3669
+ let record = each_array[$$index];
3670
+ DefinitionCard($$renderer3, {
3671
+ record,
3672
+ showStatus: true,
3673
+ onOpen: (r) => drawerRecord = r,
3674
+ projectName: activeProjectId === null ? projectName(record.projectId) : void 0,
3675
+ projectVisibility: activeProjectId === null ? projectVisibility(record.projectId) : void 0
3676
+ });
3677
+ }
3678
+ $$renderer3.push(`<!--]--></div>`);
3679
+ } else {
3680
+ $$renderer3.push("<!--[-1-->");
3681
+ DefinitionListView($$renderer3, {
3682
+ records: filtered(),
3683
+ projects: data.projects
3684
+ });
3685
+ }
3686
+ $$renderer3.push(`<!--]--></div></div></div> `);
3687
+ if (drawerRecord) {
3688
+ $$renderer3.push("<!--[0-->");
3689
+ DefinitionDetailDrawer($$renderer3, {
3690
+ record: drawerRecord,
3691
+ projectName: projectName(drawerRecord.projectId),
3692
+ canEdit: recordCanEdit(drawerRecord),
3693
+ showShare: enableSharing(),
3694
+ onClose: () => drawerRecord = null,
3695
+ onEdit: (r) => {
3696
+ editInitialTab = "details";
3697
+ editingDefinitionId = r.guid;
3698
+ editCameFromDetail = true;
3699
+ drawerRecord = null;
3700
+ },
3701
+ onShare: (r) => {
3702
+ editInitialTab = "shares";
3703
+ editingDefinitionId = r.guid;
3704
+ editCameFromDetail = true;
3705
+ drawerRecord = null;
3706
+ },
3707
+ onOpenRunner: (guid, channel) => goto()
3708
+ });
3709
+ } else {
3710
+ $$renderer3.push("<!--[-1-->");
3711
+ }
3712
+ $$renderer3.push(`<!--]--> `);
3713
+ if (editingRecord()) {
3714
+ $$renderer3.push("<!--[0-->");
3715
+ $$renderer3.push(`<!---->`);
3716
+ {
3717
+ DefinitionEditDrawer($$renderer3, {
3718
+ record: editingRecord(),
3719
+ projects: data.projects,
3720
+ computeServers: data.computeServers,
3721
+ defaultComputeServerId: data.defaultComputeServerId,
3722
+ isSaving: savingDefinitionId === editingRecord().guid,
3723
+ initialTab: editInitialTab,
3724
+ enableSharing: enableSharing(),
3725
+ onClose: () => {
3726
+ editingDefinitionId = null;
3727
+ editCameFromDetail = false;
3728
+ editInitialTab = "versions";
3729
+ },
3730
+ onBack: editCameFromDetail ? () => {
3731
+ drawerRecord = editingRecord();
3732
+ editingDefinitionId = null;
3733
+ editCameFromDetail = false;
3734
+ } : void 0,
3735
+ onSave: saveDefinition,
3736
+ onDelete: deleteDefinition,
3737
+ onOpenRunner: (guid, channel) => goto()
3738
+ });
3739
+ }
3740
+ $$renderer3.push(`<!---->`);
3741
+ } else {
3742
+ $$renderer3.push("<!--[-1-->");
3743
+ }
3744
+ $$renderer3.push(`<!--]--> `);
3745
+ if (editingProject() && data.canManageProjects) {
3746
+ $$renderer3.push("<!--[0-->");
3747
+ ProjectSettingsDialog($$renderer3, {
3748
+ project: editingProject(),
3749
+ users: data.users,
3750
+ open: editingProjectId !== null,
3751
+ onOpenChange: (o) => {
3752
+ if (!o) editingProjectId = null;
3753
+ },
3754
+ onSave: saveProject,
3755
+ onDelete: (id) => {
3756
+ editingProjectId = null;
3757
+ deletingProjectId = id;
3758
+ },
3759
+ onUpdateMemberRole: updateMemberRole,
3760
+ onRemoveMember: removeMember
3761
+ });
3762
+ } else {
3763
+ $$renderer3.push("<!--[-1-->");
3764
+ }
3765
+ $$renderer3.push(`<!--]--> `);
3766
+ if (Root) {
3767
+ $$renderer3.push("<!--[-->");
3768
+ Root($$renderer3, {
3769
+ open: deletingProjectId !== null,
3770
+ onOpenChange: (o) => {
3771
+ if (!o) deletingProjectId = null;
3772
+ },
3773
+ children: ($$renderer4) => {
3774
+ if (Alert_dialog_content) {
3775
+ $$renderer4.push("<!--[-->");
3776
+ Alert_dialog_content($$renderer4, {
3777
+ children: ($$renderer5) => {
3778
+ if (Alert_dialog_header) {
3779
+ $$renderer5.push("<!--[-->");
3780
+ Alert_dialog_header($$renderer5, {
3781
+ children: ($$renderer6) => {
3782
+ if (Alert_dialog_title) {
3783
+ $$renderer6.push("<!--[-->");
3784
+ Alert_dialog_title($$renderer6, {
3785
+ children: ($$renderer7) => {
3786
+ $$renderer7.push(`<!---->Delete "${escape_html(deletingProject()?.name ?? "")}"?`);
3787
+ },
3788
+ $$slots: { default: true }
3789
+ });
3790
+ $$renderer6.push("<!--]-->");
3791
+ } else {
3792
+ $$renderer6.push("<!--[!-->");
3793
+ $$renderer6.push("<!--]-->");
3794
+ }
3795
+ $$renderer6.push(` `);
3796
+ if (Alert_dialog_description) {
3797
+ $$renderer6.push("<!--[-->");
3798
+ Alert_dialog_description($$renderer6, {
3799
+ children: ($$renderer7) => {
3800
+ $$renderer7.push(`<!---->This will remove the project and all member assignments. Definitions will become unassigned.`);
3801
+ },
3802
+ $$slots: { default: true }
3803
+ });
3804
+ $$renderer6.push("<!--]-->");
3805
+ } else {
3806
+ $$renderer6.push("<!--[!-->");
3807
+ $$renderer6.push("<!--]-->");
3808
+ }
3809
+ },
3810
+ $$slots: { default: true }
3811
+ });
3812
+ $$renderer5.push("<!--]-->");
3813
+ } else {
3814
+ $$renderer5.push("<!--[!-->");
3815
+ $$renderer5.push("<!--]-->");
3816
+ }
3817
+ $$renderer5.push(` `);
3818
+ if (Alert_dialog_footer) {
3819
+ $$renderer5.push("<!--[-->");
3820
+ Alert_dialog_footer($$renderer5, {
3821
+ children: ($$renderer6) => {
3822
+ if (Alert_dialog_cancel) {
3823
+ $$renderer6.push("<!--[-->");
3824
+ Alert_dialog_cancel($$renderer6, {
3825
+ children: ($$renderer7) => {
3826
+ $$renderer7.push(`<!---->Cancel`);
3827
+ },
3828
+ $$slots: { default: true }
3829
+ });
3830
+ $$renderer6.push("<!--]-->");
3831
+ } else {
3832
+ $$renderer6.push("<!--[!-->");
3833
+ $$renderer6.push("<!--]-->");
3834
+ }
3835
+ $$renderer6.push(` `);
3836
+ if (Alert_dialog_action) {
3837
+ $$renderer6.push("<!--[-->");
3838
+ Alert_dialog_action($$renderer6, {
3839
+ onclick: () => deletingProjectId && deleteProject(deletingProjectId),
3840
+ children: ($$renderer7) => {
3841
+ $$renderer7.push(`<!---->Delete`);
3842
+ },
3843
+ $$slots: { default: true }
3844
+ });
3845
+ $$renderer6.push("<!--]-->");
3846
+ } else {
3847
+ $$renderer6.push("<!--[!-->");
3848
+ $$renderer6.push("<!--]-->");
3849
+ }
3850
+ },
3851
+ $$slots: { default: true }
3852
+ });
3853
+ $$renderer5.push("<!--]-->");
3854
+ } else {
3855
+ $$renderer5.push("<!--[!-->");
3856
+ $$renderer5.push("<!--]-->");
3857
+ }
3858
+ },
3859
+ $$slots: { default: true }
3860
+ });
3861
+ $$renderer4.push("<!--]-->");
3862
+ } else {
3863
+ $$renderer4.push("<!--[!-->");
3864
+ $$renderer4.push("<!--]-->");
3865
+ }
3866
+ },
3867
+ $$slots: { default: true }
3868
+ });
3869
+ $$renderer3.push("<!--]-->");
3870
+ } else {
3871
+ $$renderer3.push("<!--[!-->");
3872
+ $$renderer3.push("<!--]-->");
3873
+ }
3874
+ $$renderer3.push(` `);
3875
+ AddDefinitionDialog($$renderer3, {
3876
+ open: showAddModal,
3877
+ isAdding: addingDefinition,
3878
+ projects: editableProjects(),
3879
+ defaultProjectId: activeProject()?.canEdit ? activeProjectId : editableProjects()[0]?.id,
3880
+ computeServers: data.computeServers,
3881
+ defaultComputeServerId: data.defaultComputeServerId,
3882
+ showProjectDropdown: editableProjects().length > 1,
3883
+ onOpenChange: (o) => showAddModal = o
3884
+ });
3885
+ $$renderer3.push(`<!---->`);
3886
+ }
3887
+ do {
3888
+ $$settled = true;
3889
+ $$inner_renderer = $$renderer2.copy();
3890
+ $$render_inner($$inner_renderer);
3891
+ } while (!$$settled);
3892
+ $$renderer2.subsume($$inner_renderer);
3893
+ if ($$store_subs) unsubscribe_stores($$store_subs);
3894
+ });
3895
+ }
3896
+
3897
+ export { _page as default };
3898
+ //# sourceMappingURL=_page.svelte-DSYaUquf.js.map