@selvajs/selva 4.15.0 → 4.16.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 (1095) hide show
  1. package/build/client/_app/immutable/assets/0.CU5JquGT.css +2 -0
  2. package/build/client/_app/immutable/assets/0.CU5JquGT.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.CU5JquGT.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/-Oen0NrY2.js +1 -0
  5. package/build/client/_app/immutable/chunks/-Oen0NrY2.js.br +2 -0
  6. package/build/client/_app/immutable/chunks/-Oen0NrY2.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/1UJxtSvs2.js +1 -0
  8. package/build/client/_app/immutable/chunks/1UJxtSvs2.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/1UJxtSvs2.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/B6OSVQOc.js +1 -0
  11. package/build/client/_app/immutable/chunks/B6OSVQOc.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/B6OSVQOc.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BFXBZq1a.js +1 -0
  14. package/build/client/_app/immutable/chunks/BFXBZq1a.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BFXBZq1a.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BIn7znkK.js +1 -0
  17. package/build/client/_app/immutable/chunks/BIn7znkK.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BIn7znkK.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BJlpIVYb.js +1 -0
  20. package/build/client/_app/immutable/chunks/BJlpIVYb.js.br +3 -0
  21. package/build/client/_app/immutable/chunks/BJlpIVYb.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BO82HIZr2.js +1 -0
  23. package/build/client/_app/immutable/chunks/BO82HIZr2.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BO82HIZr2.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/Brga2HS_.js +1 -0
  26. package/build/client/_app/immutable/chunks/Brga2HS_.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/Brga2HS_.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/C_ZdRQti.js +1 -0
  29. package/build/client/_app/immutable/chunks/C_ZdRQti.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/C_ZdRQti.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/C_d7vA4S.js +3 -0
  32. package/build/client/_app/immutable/chunks/C_d7vA4S.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/C_d7vA4S.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/CqueJtmI2.js +1 -0
  35. package/build/client/_app/immutable/chunks/CqueJtmI2.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/CqueJtmI2.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/D0jLEemp.js +1 -0
  38. package/build/client/_app/immutable/chunks/D0jLEemp.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/D0jLEemp.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/DTBejwoN2.js +1 -0
  41. package/build/client/_app/immutable/chunks/DTBejwoN2.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/DTBejwoN2.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/DfUyypQ7.js +1 -0
  44. package/build/client/_app/immutable/chunks/DfUyypQ7.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/DfUyypQ7.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/DnKrwAC1.js +2 -0
  47. package/build/client/_app/immutable/chunks/DnKrwAC1.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/DnKrwAC1.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DpyI52SI.js +1 -0
  50. package/build/client/_app/immutable/chunks/DpyI52SI.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DpyI52SI.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/QuphO1og.js +1 -0
  53. package/build/client/_app/immutable/chunks/QuphO1og.js.br +1 -0
  54. package/build/client/_app/immutable/chunks/QuphO1og.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/jL8UqCnw.js +1 -0
  56. package/build/client/_app/immutable/chunks/jL8UqCnw.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/jL8UqCnw.js.gz +0 -0
  58. package/build/client/_app/immutable/entry/app.r6Ue89Ge.js +2 -0
  59. package/build/client/_app/immutable/entry/app.r6Ue89Ge.js.br +0 -0
  60. package/build/client/_app/immutable/entry/app.r6Ue89Ge.js.gz +0 -0
  61. package/build/client/_app/immutable/entry/start.B-CW0KOU.js +1 -0
  62. package/build/client/_app/immutable/entry/start.B-CW0KOU.js.br +0 -0
  63. package/build/client/_app/immutable/entry/start.B-CW0KOU.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/1.DuEm9vXT.js +1 -0
  65. package/build/client/_app/immutable/nodes/1.DuEm9vXT.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/1.DuEm9vXT.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/10.DJioMzsK.js +3 -0
  68. package/build/client/_app/immutable/nodes/10.DJioMzsK.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/10.DJioMzsK.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/11.DYKcZloK.js +3 -0
  71. package/build/client/_app/immutable/nodes/11.DYKcZloK.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/11.DYKcZloK.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/13.EhfY5b6k.js +2 -0
  74. package/build/client/_app/immutable/nodes/13.EhfY5b6k.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/13.EhfY5b6k.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/14.BKqFAKXC.js +2 -0
  77. package/build/client/_app/immutable/nodes/14.BKqFAKXC.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/14.BKqFAKXC.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/15.C2aavA2i.js +28 -0
  80. package/build/client/_app/immutable/nodes/15.C2aavA2i.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/15.C2aavA2i.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/16.CuHmBXsX.js +5 -0
  83. package/build/client/_app/immutable/nodes/16.CuHmBXsX.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/16.CuHmBXsX.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/17.CydV4o2A.js +2 -0
  86. package/build/client/_app/immutable/nodes/17.CydV4o2A.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/17.CydV4o2A.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/19.BbS2dAkd.js +7 -0
  89. package/build/client/_app/immutable/nodes/19.BbS2dAkd.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/19.BbS2dAkd.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/2.BhRxWIq_.js +1 -0
  92. package/build/client/_app/immutable/nodes/2.BhRxWIq_.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/2.BhRxWIq_.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/20.BnGz1DlQ.js +2 -0
  95. package/build/client/_app/immutable/nodes/20.BnGz1DlQ.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/20.BnGz1DlQ.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/21.CAwKBc7W.js +5495 -0
  98. package/build/client/_app/immutable/nodes/21.CAwKBc7W.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/21.CAwKBc7W.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/22.DBrG7gAA.js +6 -0
  101. package/build/client/_app/immutable/nodes/22.DBrG7gAA.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/22.DBrG7gAA.js.gz +0 -0
  103. package/build/client/_app/immutable/nodes/24.DOeLNtFl.js +16 -0
  104. package/build/client/_app/immutable/nodes/24.DOeLNtFl.js.br +0 -0
  105. package/build/client/_app/immutable/nodes/24.DOeLNtFl.js.gz +0 -0
  106. package/build/client/_app/immutable/nodes/25.CcxEi62e.js +6 -0
  107. package/build/client/_app/immutable/nodes/25.CcxEi62e.js.br +0 -0
  108. package/build/client/_app/immutable/nodes/25.CcxEi62e.js.gz +0 -0
  109. package/build/client/_app/immutable/nodes/26.BoWM3s5a.js +1 -0
  110. package/build/client/_app/immutable/nodes/26.BoWM3s5a.js.br +0 -0
  111. package/build/client/_app/immutable/nodes/26.BoWM3s5a.js.gz +0 -0
  112. package/build/client/_app/immutable/nodes/28.CvW9dVKt.js +4 -0
  113. package/build/client/_app/immutable/nodes/28.CvW9dVKt.js.br +0 -0
  114. package/build/client/_app/immutable/nodes/28.CvW9dVKt.js.gz +0 -0
  115. package/build/client/_app/immutable/nodes/29.CXHlx9Jk.js +6 -0
  116. package/build/client/_app/immutable/nodes/29.CXHlx9Jk.js.br +0 -0
  117. package/build/client/_app/immutable/nodes/29.CXHlx9Jk.js.gz +0 -0
  118. package/build/client/_app/immutable/nodes/3.BlHSJ2NI.js +1 -0
  119. package/build/client/_app/immutable/nodes/3.BlHSJ2NI.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/3.BlHSJ2NI.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/30.CNTcDjt4.js +2 -0
  122. package/build/client/_app/immutable/nodes/30.CNTcDjt4.js.br +0 -0
  123. package/build/client/_app/immutable/nodes/30.CNTcDjt4.js.gz +0 -0
  124. package/build/client/_app/immutable/nodes/31.DVQjTnFZ.js +2 -0
  125. package/build/client/_app/immutable/nodes/31.DVQjTnFZ.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/31.DVQjTnFZ.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/33.tYjgQRF8.js +1 -0
  128. package/build/client/_app/immutable/nodes/33.tYjgQRF8.js.br +0 -0
  129. package/build/client/_app/immutable/nodes/33.tYjgQRF8.js.gz +0 -0
  130. package/build/client/_app/immutable/nodes/5.DC_2fGJn.js +1 -0
  131. package/build/client/_app/immutable/nodes/5.DC_2fGJn.js.br +2 -0
  132. package/build/client/_app/immutable/nodes/5.DC_2fGJn.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/6.C8g8bALA.js +1 -0
  134. package/build/client/_app/immutable/nodes/6.C8g8bALA.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/6.C8g8bALA.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/7.CzJH6hlQ.js +1 -0
  137. package/build/client/_app/immutable/nodes/7.CzJH6hlQ.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/7.CzJH6hlQ.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/8.BKVEaqAk.js +3 -0
  140. package/build/client/_app/immutable/nodes/8.BKVEaqAk.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/8.BKVEaqAk.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/9.BHtrAkH_.js +1 -0
  143. package/build/client/_app/immutable/nodes/9.BHtrAkH_.js.br +0 -0
  144. package/build/client/_app/immutable/nodes/9.BHtrAkH_.js.gz +0 -0
  145. package/build/client/_app/version.json +1 -1
  146. package/build/client/_app/version.json.br +0 -0
  147. package/build/client/_app/version.json.gz +0 -0
  148. package/build/handler.js +4 -4
  149. package/build/index.js +4 -4
  150. package/build/server/chunks/chunks/AppHeader.js-CFdzxxPk.js +72 -0
  151. package/build/server/chunks/chunks/AppHeader.js-CFdzxxPk.js.map +1 -0
  152. package/build/server/chunks/chunks/Callout.js-2vvaMCZa.js +112 -0
  153. package/build/server/chunks/chunks/Callout.js-2vvaMCZa.js.map +1 -0
  154. package/build/server/chunks/chunks/ConfirmDialog.js-DRwiZj4l.js +152 -0
  155. package/build/server/chunks/chunks/ConfirmDialog.js-DRwiZj4l.js.map +1 -0
  156. package/build/server/chunks/chunks/SettingsMenu.js-Dp9bcAPe.js +1363 -0
  157. package/build/server/chunks/chunks/SettingsMenu.js-Dp9bcAPe.js.map +1 -0
  158. package/build/server/chunks/chunks/SideNav.js-B1ef7omE.js +71 -0
  159. package/build/server/chunks/chunks/SideNav.js-B1ef7omE.js.map +1 -0
  160. package/build/server/chunks/chunks/UserRowIdentity.js-qAEOnbnL.js +131 -0
  161. package/build/server/chunks/chunks/UserRowIdentity.js-qAEOnbnL.js.map +1 -0
  162. package/build/server/chunks/chunks/access.js-BcvkxfjS.js +756 -0
  163. package/build/server/chunks/chunks/access.js-BcvkxfjS.js.map +1 -0
  164. package/build/server/chunks/chunks/access.server.js-Cg7yYegl.js +12 -0
  165. package/build/server/chunks/chunks/access.server.js-Cg7yYegl.js.map +1 -0
  166. package/build/server/chunks/chunks/access2.server.js-B8CP1AuO.js +62 -0
  167. package/build/server/chunks/chunks/access2.server.js-B8CP1AuO.js.map +1 -0
  168. package/build/server/chunks/chunks/admin-auth.server.js-FOiBiJZ9.js +259 -0
  169. package/build/server/chunks/chunks/admin-auth.server.js-FOiBiJZ9.js.map +1 -0
  170. package/build/server/chunks/chunks/alert-dialog.js-D4VqWclq.js +461 -0
  171. package/build/server/chunks/chunks/alert-dialog.js-D4VqWclq.js.map +1 -0
  172. package/build/server/chunks/chunks/api-errors.js-WdfUbt0r.js +83 -0
  173. package/build/server/chunks/chunks/api-errors.js-WdfUbt0r.js.map +1 -0
  174. package/build/server/chunks/chunks/api.js-DErw1H-D.js +321 -0
  175. package/build/server/chunks/chunks/api.js-DErw1H-D.js.map +1 -0
  176. package/build/server/chunks/chunks/auth-bootstrap.server.js-ByqKAuSj.js +152 -0
  177. package/build/server/chunks/chunks/auth-bootstrap.server.js-ByqKAuSj.js.map +1 -0
  178. package/build/server/chunks/chunks/bootHealth.server.js-Cxedg2Q5.js +90 -0
  179. package/build/server/chunks/chunks/bootHealth.server.js-Cxedg2Q5.js.map +1 -0
  180. package/build/server/chunks/chunks/client.js-BoVg2GeJ.js +59 -0
  181. package/build/server/chunks/chunks/client.js-BoVg2GeJ.js.map +1 -0
  182. package/build/server/chunks/chunks/compute.js-DQbNxqxW.js +430 -0
  183. package/build/server/chunks/chunks/compute.js-DQbNxqxW.js.map +1 -0
  184. package/build/server/chunks/chunks/computeLimits.js-CeI4KbLV.js +48 -0
  185. package/build/server/chunks/chunks/computeLimits.js-CeI4KbLV.js.map +1 -0
  186. package/build/server/chunks/chunks/create-id.js-S9AoBzd9.js +809 -0
  187. package/build/server/chunks/chunks/create-id.js-S9AoBzd9.js.map +1 -0
  188. package/build/server/chunks/chunks/definitions.js-CqxzwiLn.js +496 -0
  189. package/build/server/chunks/chunks/definitions.js-CqxzwiLn.js.map +1 -0
  190. package/build/server/chunks/chunks/dialog-description.js-huVQABpc.js +494 -0
  191. package/build/server/chunks/chunks/dialog-description.js-huVQABpc.js.map +1 -0
  192. package/build/server/chunks/chunks/dialog.js-ChaJ-n8s.js +366 -0
  193. package/build/server/chunks/chunks/dialog.js-ChaJ-n8s.js.map +1 -0
  194. package/build/server/chunks/chunks/engine.server.js-C4sscTkq.js +566 -0
  195. package/build/server/chunks/chunks/engine.server.js-C4sscTkq.js.map +1 -0
  196. package/build/server/chunks/chunks/evict-changed-servers.js-whgDVM5R.js +18 -0
  197. package/build/server/chunks/chunks/evict-changed-servers.js-whgDVM5R.js.map +1 -0
  198. package/build/server/chunks/chunks/footerContext.svelte.js-GNNlOmlv.js +707 -0
  199. package/build/server/chunks/chunks/footerContext.svelte.js-GNNlOmlv.js.map +1 -0
  200. package/build/server/chunks/chunks/forms.js-Dr2_1xef.js +2 -0
  201. package/build/server/chunks/chunks/forms.js-Dr2_1xef.js.map +1 -0
  202. package/build/server/chunks/chunks/handlers.js-5PYrmt-n.js +1375 -0
  203. package/build/server/chunks/chunks/handlers.js-5PYrmt-n.js.map +1 -0
  204. package/build/server/chunks/chunks/http.js-QdTyaOX0.js +59 -0
  205. package/build/server/chunks/chunks/http.js-QdTyaOX0.js.map +1 -0
  206. package/build/server/chunks/chunks/index-server2.js-siA98IdX.js +23 -0
  207. package/build/server/chunks/chunks/index-server2.js-siA98IdX.js.map +1 -0
  208. package/build/server/chunks/chunks/info.js-ByvW1nC1.js +23 -0
  209. package/build/server/chunks/chunks/info.js-ByvW1nC1.js.map +1 -0
  210. package/build/server/chunks/chunks/instanceAdmins.server.js-W8Rulo90.js +23 -0
  211. package/build/server/chunks/chunks/instanceAdmins.server.js-W8Rulo90.js.map +1 -0
  212. package/build/server/chunks/chunks/internal.js-D-PIqUmO.js.map +1 -1
  213. package/build/server/chunks/chunks/internal2.js-BjFnZ91P.js +224 -0
  214. package/build/server/chunks/chunks/internal2.js-BjFnZ91P.js.map +1 -0
  215. package/build/server/chunks/chunks/label.js-B2fFCw6p.js +108 -0
  216. package/build/server/chunks/chunks/label.js-B2fFCw6p.js.map +1 -0
  217. package/build/server/chunks/chunks/limits.js-Bb8N4Nid.js +203 -0
  218. package/build/server/chunks/chunks/limits.js-Bb8N4Nid.js.map +1 -0
  219. package/build/server/chunks/chunks/minus.js-C88E4hSt.js +15 -0
  220. package/build/server/chunks/chunks/minus.js-C88E4hSt.js.map +1 -0
  221. package/build/server/chunks/chunks/navigation.js-Dr2_1xef.js +2 -0
  222. package/build/server/chunks/chunks/navigation.js-Dr2_1xef.js.map +1 -0
  223. package/build/server/chunks/chunks/oauthState.server.js-DZKDvVoo.js +53 -0
  224. package/build/server/chunks/chunks/oauthState.server.js-DZKDvVoo.js.map +1 -0
  225. package/build/server/chunks/chunks/package.js-D8HrDrPh.js +82 -0
  226. package/build/server/chunks/chunks/package.js-D8HrDrPh.js.map +1 -0
  227. package/build/server/chunks/chunks/paths.js-CMZHizSB.js +19 -0
  228. package/build/server/chunks/chunks/paths.js-CMZHizSB.js.map +1 -0
  229. package/build/server/chunks/chunks/permissions.server.js-akgNQA6l.js +24 -0
  230. package/build/server/chunks/chunks/permissions.server.js-akgNQA6l.js.map +1 -0
  231. package/build/server/chunks/chunks/projects.js-t4osYcer.js +47 -0
  232. package/build/server/chunks/chunks/projects.js-t4osYcer.js.map +1 -0
  233. package/build/server/chunks/chunks/providers.server.js-Dw01Yoxx.js +5904 -0
  234. package/build/server/chunks/chunks/providers.server.js-Dw01Yoxx.js.map +1 -0
  235. package/build/server/chunks/chunks/request.js-BqYoA9mL.js +119 -0
  236. package/build/server/chunks/chunks/request.js-BqYoA9mL.js.map +1 -0
  237. package/build/server/chunks/chunks/resolve.server.js-C5tbih4o.js +59 -0
  238. package/build/server/chunks/chunks/resolve.server.js-C5tbih4o.js.map +1 -0
  239. package/build/server/chunks/chunks/scroll-lock.js-BxB04xoK.js +3432 -0
  240. package/build/server/chunks/chunks/scroll-lock.js-BxB04xoK.js.map +1 -0
  241. package/build/server/chunks/chunks/select.js-B7igBIEr.js +3633 -0
  242. package/build/server/chunks/chunks/select.js-B7igBIEr.js.map +1 -0
  243. package/build/server/chunks/chunks/selfUpdate.server.js-CxJaaOWj.js +144 -0
  244. package/build/server/chunks/chunks/selfUpdate.server.js-CxJaaOWj.js.map +1 -0
  245. package/build/server/chunks/chunks/solve.server.js-j-gShs8S.js +304 -0
  246. package/build/server/chunks/chunks/solve.server.js-j-gShs8S.js.map +1 -0
  247. package/build/server/chunks/chunks/src.js-Cf1j97Z6.js +386 -0
  248. package/build/server/chunks/chunks/src.js-Cf1j97Z6.js.map +1 -0
  249. package/build/server/chunks/chunks/state.js-CvdR8gvc.js +76 -0
  250. package/build/server/chunks/chunks/state.js-CvdR8gvc.js.map +1 -0
  251. package/build/server/chunks/chunks/stores.js-CCXGL_6m.js +35 -0
  252. package/build/server/chunks/chunks/stores.js-CCXGL_6m.js.map +1 -0
  253. package/build/server/chunks/chunks/tabs-trigger.js-C3PICukN.js +512 -0
  254. package/build/server/chunks/chunks/tabs-trigger.js-C3PICukN.js.map +1 -0
  255. package/build/server/chunks/chunks/token.server.js-B_7Y_pF8.js +48 -0
  256. package/build/server/chunks/chunks/token.server.js-B_7Y_pF8.js.map +1 -0
  257. package/build/server/chunks/chunks/token2.server.js-DMWpWJUu.js +39 -0
  258. package/build/server/chunks/chunks/token2.server.js-DMWpWJUu.js.map +1 -0
  259. package/build/server/chunks/chunks/user-display.js-DK2uDS-J.js +18 -0
  260. package/build/server/chunks/chunks/user-display.js-DK2uDS-J.js.map +1 -0
  261. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-DJk_KecR.js +98 -0
  262. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-DJk_KecR.js.map +1 -0
  263. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-D2psO5jn.js +57 -0
  264. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-D2psO5jn.js.map +1 -0
  265. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-CDBMxQoR.js +83 -0
  266. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-CDBMxQoR.js.map +1 -0
  267. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-yoVJvJs7.js +46 -0
  268. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-yoVJvJs7.js.map +1 -0
  269. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-wHoMTlY4.js +69 -0
  270. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-wHoMTlY4.js.map +1 -0
  271. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-CUu0XkNB.js +62 -0
  272. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-CUu0XkNB.js.map +1 -0
  273. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-C2XgBa4m.js +34 -0
  274. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-C2XgBa4m.js.map +1 -0
  275. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BHVTq9Oj.js +65 -0
  276. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BHVTq9Oj.js.map +1 -0
  277. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-WQwB0lK9.js +80 -0
  278. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-WQwB0lK9.js.map +1 -0
  279. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-CQAf-KgN.js +334 -0
  280. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-CQAf-KgN.js.map +1 -0
  281. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-OSkDmB83.js +85 -0
  282. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-OSkDmB83.js.map +1 -0
  283. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-BLnW9TQS.js +607 -0
  284. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-BLnW9TQS.js.map +1 -0
  285. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-CkN1HILr.js +58 -0
  286. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-CkN1HILr.js.map +1 -0
  287. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Ch5xkXTD.js +67 -0
  288. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Ch5xkXTD.js.map +1 -0
  289. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-Di9KxJm0.js +83 -0
  290. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-Di9KxJm0.js.map +1 -0
  291. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DCHwefe1.js +62 -0
  292. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-DCHwefe1.js.map +1 -0
  293. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-McZuaweF.js +93 -0
  294. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-McZuaweF.js.map +1 -0
  295. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-ABRCeq66.js +59 -0
  296. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-ABRCeq66.js.map +1 -0
  297. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-Calh9GKK.js +62 -0
  298. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-Calh9GKK.js.map +1 -0
  299. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-BxdSGXRh.js +84 -0
  300. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-BxdSGXRh.js.map +1 -0
  301. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BYN34BDD.js +63 -0
  302. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-BYN34BDD.js.map +1 -0
  303. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-BE6gCe-d.js +40 -0
  304. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-BE6gCe-d.js.map +1 -0
  305. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-e1W1bqgc.js +38 -0
  306. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-e1W1bqgc.js.map +1 -0
  307. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-B1_WO5Um.js +38 -0
  308. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-B1_WO5Um.js.map +1 -0
  309. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-DYV4uVpr.js +38 -0
  310. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-DYV4uVpr.js.map +1 -0
  311. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-DgRnEL7_.js +38 -0
  312. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-DgRnEL7_.js.map +1 -0
  313. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-CtAJnfCv.js +39 -0
  314. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-CtAJnfCv.js.map +1 -0
  315. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-DuDotXXM.js +208 -0
  316. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-DuDotXXM.js.map +1 -0
  317. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-ZP-ueMnr.js +39 -0
  318. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-ZP-ueMnr.js.map +1 -0
  319. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-DbU8u0jE.js +39 -0
  320. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-DbU8u0jE.js.map +1 -0
  321. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-eX-cAnq9.js +38 -0
  322. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-eX-cAnq9.js.map +1 -0
  323. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-1VTsAuzE.js +39 -0
  324. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-1VTsAuzE.js.map +1 -0
  325. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-CkBGpReN.js +38 -0
  326. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-CkBGpReN.js.map +1 -0
  327. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CIDUu_SS.js +39 -0
  328. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CIDUu_SS.js.map +1 -0
  329. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DliCgqjf.js +38 -0
  330. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DliCgqjf.js.map +1 -0
  331. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-C9lOy1kA.js +39 -0
  332. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-C9lOy1kA.js.map +1 -0
  333. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-BOJuDnb_.js +39 -0
  334. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-BOJuDnb_.js.map +1 -0
  335. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-BJeH95ng.js +38 -0
  336. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-BJeH95ng.js.map +1 -0
  337. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-RM-_0oyM.js +38 -0
  338. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-RM-_0oyM.js.map +1 -0
  339. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-CDCNV9TT.js +39 -0
  340. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-CDCNV9TT.js.map +1 -0
  341. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-C2haNMeB.js +38 -0
  342. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-C2haNMeB.js.map +1 -0
  343. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-gKP9Fs8D.js +39 -0
  344. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-gKP9Fs8D.js.map +1 -0
  345. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-BdCNnjZ-.js +40 -0
  346. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-BdCNnjZ-.js.map +1 -0
  347. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-CbPwCCkP.js +39 -0
  348. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-CbPwCCkP.js.map +1 -0
  349. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-DmhPMzjm.js +39 -0
  350. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-DmhPMzjm.js.map +1 -0
  351. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-B5Btew1x.js +38 -0
  352. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-B5Btew1x.js.map +1 -0
  353. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CKsWgD4_.js +39 -0
  354. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-CKsWgD4_.js.map +1 -0
  355. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CQGIAOVe.js +47 -0
  356. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CQGIAOVe.js.map +1 -0
  357. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-qVoXx2Qi.js +53 -0
  358. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-qVoXx2Qi.js.map +1 -0
  359. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-t3IrORF4.js +64 -0
  360. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-t3IrORF4.js.map +1 -0
  361. package/build/server/chunks/entries/hooks.server.js-B-c6ZxZT.js +337 -0
  362. package/build/server/chunks/entries/hooks.server.js-B-c6ZxZT.js.map +1 -0
  363. package/build/server/chunks/entries/pages/_error.svelte.js-BsBttNlI.js +36 -0
  364. package/build/server/chunks/entries/pages/_error.svelte.js-BsBttNlI.js.map +1 -0
  365. package/build/server/chunks/entries/pages/_layout.server.ts.js-dnuMh-Ne.js +34 -0
  366. package/build/server/chunks/entries/pages/_layout.server.ts.js-dnuMh-Ne.js.map +1 -0
  367. package/build/server/chunks/entries/pages/_layout.svelte.js-0_x5mnEU.js +654 -0
  368. package/build/server/chunks/entries/pages/_layout.svelte.js-0_x5mnEU.js.map +1 -0
  369. package/build/server/chunks/entries/pages/_page.server.ts.js-BtTieY4L.js +55 -0
  370. package/build/server/chunks/entries/pages/_page.server.ts.js-BtTieY4L.js.map +1 -0
  371. package/build/server/chunks/entries/pages/_page.svelte.js-CVwZiBod.js +161 -0
  372. package/build/server/chunks/entries/pages/_page.svelte.js-CVwZiBod.js.map +1 -0
  373. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BtG78-wA.js +181 -0
  374. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BtG78-wA.js.map +1 -0
  375. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-WSQ9Oxzj.js +188 -0
  376. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-WSQ9Oxzj.js.map +1 -0
  377. package/build/server/chunks/entries/pages/admin/_error.svelte.js-DIS-M5MX.js +37 -0
  378. package/build/server/chunks/entries/pages/admin/_error.svelte.js-DIS-M5MX.js.map +1 -0
  379. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-CUMrLCVm.js +31 -0
  380. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-CUMrLCVm.js.map +1 -0
  381. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-Cl_wGaKc.js +124 -0
  382. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-Cl_wGaKc.js.map +1 -0
  383. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BoBMZbLQ.js +76 -0
  384. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-BoBMZbLQ.js.map +1 -0
  385. package/build/server/chunks/entries/pages/admin/_page.svelte.js-BCcU_UXJ.js +394 -0
  386. package/build/server/chunks/entries/pages/admin/_page.svelte.js-BCcU_UXJ.js.map +1 -0
  387. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-MGqlPjZx.js +265 -0
  388. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-MGqlPjZx.js.map +1 -0
  389. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-BILNw1sN.js +464 -0
  390. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-BILNw1sN.js.map +1 -0
  391. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-LYCdJqfj.js +74 -0
  392. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-LYCdJqfj.js.map +1 -0
  393. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-WT01s7dh.js +806 -0
  394. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-WT01s7dh.js.map +1 -0
  395. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BvL_cS8Z.js +35 -0
  396. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BvL_cS8Z.js.map +1 -0
  397. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-BsMBkEIL.js +86 -0
  398. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-BsMBkEIL.js.map +1 -0
  399. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-vQ18AsFq.js +638 -0
  400. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-vQ18AsFq.js.map +1 -0
  401. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-CyvRtUFK.js +42 -0
  402. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-CyvRtUFK.js.map +1 -0
  403. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-q4DhG1E7.js +283 -0
  404. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-q4DhG1E7.js.map +1 -0
  405. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-OAmY_1pd.js +87 -0
  406. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-OAmY_1pd.js.map +1 -0
  407. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-BSsdaeHC.js +1394 -0
  408. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-BSsdaeHC.js.map +1 -0
  409. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-Dtp3eeil.js +79 -0
  410. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-Dtp3eeil.js.map +1 -0
  411. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-BB3VNvxh.js +643 -0
  412. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-BB3VNvxh.js.map +1 -0
  413. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DodIav4j.js +63 -0
  414. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DodIav4j.js.map +1 -0
  415. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-DlX_NRfz.js +62 -0
  416. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-DlX_NRfz.js.map +1 -0
  417. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-hInjPre0.js +539 -0
  418. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-hInjPre0.js.map +1 -0
  419. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-CDQhxFWc.js +90 -0
  420. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-CDQhxFWc.js.map +1 -0
  421. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js--6bDD1Gw.js +120 -0
  422. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js--6bDD1Gw.js.map +1 -0
  423. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-wHooyK-i.js +12937 -0
  424. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-wHooyK-i.js.map +1 -0
  425. package/build/server/chunks/entries/pages/library/_page.server.ts.js-BcYH91Du.js +50 -0
  426. package/build/server/chunks/entries/pages/library/_page.server.ts.js-BcYH91Du.js.map +1 -0
  427. package/build/server/chunks/entries/pages/library/_page.svelte.js-DOX2TqlB.js +313 -0
  428. package/build/server/chunks/entries/pages/library/_page.svelte.js-DOX2TqlB.js.map +1 -0
  429. package/build/server/chunks/entries/pages/login/_page.server.ts.js-6Qhn8cHY.js +101 -0
  430. package/build/server/chunks/entries/pages/login/_page.server.ts.js-6Qhn8cHY.js.map +1 -0
  431. package/build/server/chunks/entries/pages/login/_page.svelte.js-htCOeNcE.js +272 -0
  432. package/build/server/chunks/entries/pages/login/_page.svelte.js-htCOeNcE.js.map +1 -0
  433. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-BFrUhP_9.js +19 -0
  434. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-BFrUhP_9.js.map +1 -0
  435. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-CQ7Zw4PJ.js +22 -0
  436. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-CQ7Zw4PJ.js.map +1 -0
  437. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-DAe7F6rg.js +51 -0
  438. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-DAe7F6rg.js.map +1 -0
  439. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BqKoy1dh.js +93 -0
  440. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BqKoy1dh.js.map +1 -0
  441. package/build/server/chunks/entries/pages/projects/_page.svelte.js-BpBP0yb4.js +3835 -0
  442. package/build/server/chunks/entries/pages/projects/_page.svelte.js-BpBP0yb4.js.map +1 -0
  443. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-Cz_w0toR.js +116 -0
  444. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-Cz_w0toR.js.map +1 -0
  445. package/build/server/chunks/entries/pages/setup/_page.svelte.js-Dxqbisrt.js +322 -0
  446. package/build/server/chunks/entries/pages/setup/_page.svelte.js-Dxqbisrt.js.map +1 -0
  447. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-BAvjXyHy.js +28 -0
  448. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-BAvjXyHy.js.map +1 -0
  449. package/build/server/chunks/entries/pages/team/_layout.svelte.js-tQ0BggNG.js +171 -0
  450. package/build/server/chunks/entries/pages/team/_layout.svelte.js-tQ0BggNG.js.map +1 -0
  451. package/build/server/chunks/entries/pages/team/_page.server.ts.js-crZqszJt.js +35 -0
  452. package/build/server/chunks/entries/pages/team/_page.server.ts.js-crZqszJt.js.map +1 -0
  453. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-BhBHuful.js +42 -0
  454. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-BhBHuful.js.map +1 -0
  455. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-Dw_hM0zq.js +626 -0
  456. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-Dw_hM0zq.js.map +1 -0
  457. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-DswnHMAB.js +62 -0
  458. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-DswnHMAB.js.map +1 -0
  459. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-BompU1-q.js +834 -0
  460. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-BompU1-q.js.map +1 -0
  461. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CnC3296I.js +58 -0
  462. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-CnC3296I.js.map +1 -0
  463. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-F8oM3mri.js +423 -0
  464. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-F8oM3mri.js.map +1 -0
  465. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-BfHbNANm.js +67 -0
  466. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-BfHbNANm.js.map +1 -0
  467. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-B0i5_tGt.js +268 -0
  468. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-B0i5_tGt.js.map +1 -0
  469. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-qomlghMU.js +34 -0
  470. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-qomlghMU.js.map +1 -0
  471. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-DJZZ2Buf.js +29 -0
  472. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-DJZZ2Buf.js.map +1 -0
  473. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-D_GLFyNh.js +322 -0
  474. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-D_GLFyNh.js.map +1 -0
  475. package/build/server/chunks/handler-D1DXPib9.js +1206 -0
  476. package/build/server/chunks/handler-D1DXPib9.js.map +1 -0
  477. package/build/server/chunks/index.js-BYQq6p11.js +3767 -0
  478. package/build/server/chunks/index.js-BYQq6p11.js.map +1 -0
  479. package/build/server/chunks/manifest.js-BpGfWOKY.js +612 -0
  480. package/build/server/chunks/manifest.js-BpGfWOKY.js.map +1 -0
  481. package/build/server/chunks/nodes/0.js-CREbQp-O.js +27 -0
  482. package/build/server/chunks/nodes/0.js-CREbQp-O.js.map +1 -0
  483. package/build/server/chunks/nodes/1.js-Dxy-eH_U.js +9 -0
  484. package/build/server/chunks/nodes/1.js-Dxy-eH_U.js.map +1 -0
  485. package/build/server/chunks/nodes/10.js-Drp0Eqt4.js +30 -0
  486. package/build/server/chunks/nodes/10.js-Drp0Eqt4.js.map +1 -0
  487. package/build/server/chunks/nodes/11.js-C-9Pdp8G.js +36 -0
  488. package/build/server/chunks/nodes/11.js-C-9Pdp8G.js.map +1 -0
  489. package/build/server/chunks/nodes/12.js-HbFO1cTW.js +28 -0
  490. package/build/server/chunks/nodes/12.js-HbFO1cTW.js.map +1 -0
  491. package/build/server/chunks/nodes/13.js-C5Kc26lb.js +28 -0
  492. package/build/server/chunks/nodes/13.js-C5Kc26lb.js.map +1 -0
  493. package/build/server/chunks/nodes/14.js-Co0FwUo4.js +28 -0
  494. package/build/server/chunks/nodes/14.js-Co0FwUo4.js.map +1 -0
  495. package/build/server/chunks/nodes/15.js-GCBffawi.js +37 -0
  496. package/build/server/chunks/nodes/15.js-GCBffawi.js.map +1 -0
  497. package/build/server/chunks/nodes/16.js-DY9WnV3G.js +30 -0
  498. package/build/server/chunks/nodes/16.js-DY9WnV3G.js.map +1 -0
  499. package/build/server/chunks/nodes/17.js-CwtpSmYF.js +9 -0
  500. package/build/server/chunks/nodes/17.js-CwtpSmYF.js.map +1 -0
  501. package/build/server/chunks/nodes/18.js-DPAxL-xS.js +30 -0
  502. package/build/server/chunks/nodes/18.js-DPAxL-xS.js.map +1 -0
  503. package/build/server/chunks/nodes/19.js-BiYB0dUn.js +24 -0
  504. package/build/server/chunks/nodes/19.js-BiYB0dUn.js.map +1 -0
  505. package/build/server/chunks/nodes/2.js-DBoi5zKb.js +30 -0
  506. package/build/server/chunks/nodes/2.js-DBoi5zKb.js.map +1 -0
  507. package/build/server/chunks/nodes/20.js-DMn95hj8.js +21 -0
  508. package/build/server/chunks/nodes/20.js-DMn95hj8.js.map +1 -0
  509. package/build/server/chunks/nodes/21.js-OWtr64FV.js +40 -0
  510. package/build/server/chunks/nodes/21.js-OWtr64FV.js.map +1 -0
  511. package/build/server/chunks/nodes/22.js-CgrfYomz.js +30 -0
  512. package/build/server/chunks/nodes/22.js-CgrfYomz.js.map +1 -0
  513. package/build/server/chunks/nodes/23.js-DSdFy57h.js +27 -0
  514. package/build/server/chunks/nodes/23.js-DSdFy57h.js.map +1 -0
  515. package/build/server/chunks/nodes/24.js-DTf4j6_g.js +29 -0
  516. package/build/server/chunks/nodes/24.js-DTf4j6_g.js.map +1 -0
  517. package/build/server/chunks/nodes/25.js-BeKjbo3g.js +30 -0
  518. package/build/server/chunks/nodes/25.js-BeKjbo3g.js.map +1 -0
  519. package/build/server/chunks/nodes/26.js-D2vYred6.js +28 -0
  520. package/build/server/chunks/nodes/26.js-D2vYred6.js.map +1 -0
  521. package/build/server/chunks/nodes/28.js-BCL0Bf64.js +28 -0
  522. package/build/server/chunks/nodes/28.js-BCL0Bf64.js.map +1 -0
  523. package/build/server/chunks/nodes/29.js--r9wrPrS.js +28 -0
  524. package/build/server/chunks/nodes/29.js--r9wrPrS.js.map +1 -0
  525. package/build/server/chunks/nodes/3.js-DbW1UeqM.js +9 -0
  526. package/build/server/chunks/nodes/3.js-DbW1UeqM.js.map +1 -0
  527. package/build/server/chunks/nodes/30.js-DpQBqzvz.js +29 -0
  528. package/build/server/chunks/nodes/30.js-DpQBqzvz.js.map +1 -0
  529. package/build/server/chunks/nodes/31.js-CYu7w_lU.js +28 -0
  530. package/build/server/chunks/nodes/31.js-CYu7w_lU.js.map +1 -0
  531. package/build/server/chunks/nodes/32.js-B3FBqYz3.js +28 -0
  532. package/build/server/chunks/nodes/32.js-B3FBqYz3.js.map +1 -0
  533. package/build/server/chunks/nodes/33.js-D6dOCmEr.js +28 -0
  534. package/build/server/chunks/nodes/33.js-D6dOCmEr.js.map +1 -0
  535. package/build/server/chunks/nodes/5.js-bOe5CfEb.js +15 -0
  536. package/build/server/chunks/nodes/5.js-bOe5CfEb.js.map +1 -0
  537. package/build/server/chunks/nodes/6.js-BOWda_QK.js +28 -0
  538. package/build/server/chunks/nodes/6.js-BOWda_QK.js.map +1 -0
  539. package/build/server/chunks/nodes/7.js-Doi5xOT0.js +21 -0
  540. package/build/server/chunks/nodes/7.js-Doi5xOT0.js.map +1 -0
  541. package/build/server/chunks/nodes/8.js-Chz3zPKT.js +32 -0
  542. package/build/server/chunks/nodes/8.js-Chz3zPKT.js.map +1 -0
  543. package/build/server/chunks/nodes/9.js-Bb1RL3WG.js +28 -0
  544. package/build/server/chunks/nodes/9.js-Bb1RL3WG.js.map +1 -0
  545. package/package.json +6 -6
  546. package/templates/.env.example +2 -1
  547. package/build/client/_app/immutable/assets/0.BE0zdY8D.css +0 -2
  548. package/build/client/_app/immutable/assets/0.BE0zdY8D.css.br +0 -0
  549. package/build/client/_app/immutable/assets/0.BE0zdY8D.css.gz +0 -0
  550. package/build/client/_app/immutable/chunks/AKEiRbkN.js +0 -1
  551. package/build/client/_app/immutable/chunks/AKEiRbkN.js.br +0 -1
  552. package/build/client/_app/immutable/chunks/AKEiRbkN.js.gz +0 -0
  553. package/build/client/_app/immutable/chunks/BNcSkuyR.js +0 -1
  554. package/build/client/_app/immutable/chunks/BNcSkuyR.js.br +0 -0
  555. package/build/client/_app/immutable/chunks/BNcSkuyR.js.gz +0 -0
  556. package/build/client/_app/immutable/chunks/BSlpxBl1.js +0 -1
  557. package/build/client/_app/immutable/chunks/BSlpxBl1.js.br +0 -2
  558. package/build/client/_app/immutable/chunks/BSlpxBl1.js.gz +0 -0
  559. package/build/client/_app/immutable/chunks/BnarF6qz.js +0 -1
  560. package/build/client/_app/immutable/chunks/BnarF6qz.js.br +0 -0
  561. package/build/client/_app/immutable/chunks/BnarF6qz.js.gz +0 -0
  562. package/build/client/_app/immutable/chunks/C5WbQNiI.js +0 -1
  563. package/build/client/_app/immutable/chunks/C5WbQNiI.js.br +0 -0
  564. package/build/client/_app/immutable/chunks/C5WbQNiI.js.gz +0 -0
  565. package/build/client/_app/immutable/chunks/CUvRSWSw.js +0 -1
  566. package/build/client/_app/immutable/chunks/CUvRSWSw.js.br +0 -0
  567. package/build/client/_app/immutable/chunks/CUvRSWSw.js.gz +0 -0
  568. package/build/client/_app/immutable/chunks/CqKQE3Ir2.js +0 -1
  569. package/build/client/_app/immutable/chunks/CqKQE3Ir2.js.br +0 -0
  570. package/build/client/_app/immutable/chunks/CqKQE3Ir2.js.gz +0 -0
  571. package/build/client/_app/immutable/chunks/CtM42dx0.js +0 -1
  572. package/build/client/_app/immutable/chunks/CtM42dx0.js.br +0 -0
  573. package/build/client/_app/immutable/chunks/CtM42dx0.js.gz +0 -0
  574. package/build/client/_app/immutable/chunks/DAFLBCN8.js +0 -1
  575. package/build/client/_app/immutable/chunks/DAFLBCN8.js.br +0 -0
  576. package/build/client/_app/immutable/chunks/DAFLBCN8.js.gz +0 -0
  577. package/build/client/_app/immutable/chunks/DGsar3v6.js +0 -1
  578. package/build/client/_app/immutable/chunks/DGsar3v6.js.br +0 -0
  579. package/build/client/_app/immutable/chunks/DGsar3v6.js.gz +0 -0
  580. package/build/client/_app/immutable/chunks/DPSqJyHw2.js +0 -1
  581. package/build/client/_app/immutable/chunks/DPSqJyHw2.js.br +0 -2
  582. package/build/client/_app/immutable/chunks/DPSqJyHw2.js.gz +0 -0
  583. package/build/client/_app/immutable/chunks/DnASnzaQ.js +0 -1
  584. package/build/client/_app/immutable/chunks/DnASnzaQ.js.br +0 -0
  585. package/build/client/_app/immutable/chunks/DnASnzaQ.js.gz +0 -0
  586. package/build/client/_app/immutable/chunks/DnkCFWqJ.js +0 -3
  587. package/build/client/_app/immutable/chunks/DnkCFWqJ.js.br +0 -0
  588. package/build/client/_app/immutable/chunks/DnkCFWqJ.js.gz +0 -0
  589. package/build/client/_app/immutable/chunks/ae90pKdy2.js +0 -1
  590. package/build/client/_app/immutable/chunks/ae90pKdy2.js.br +0 -0
  591. package/build/client/_app/immutable/chunks/ae90pKdy2.js.gz +0 -0
  592. package/build/client/_app/immutable/chunks/tibeb9me.js +0 -2
  593. package/build/client/_app/immutable/chunks/tibeb9me.js.br +0 -0
  594. package/build/client/_app/immutable/chunks/tibeb9me.js.gz +0 -0
  595. package/build/client/_app/immutable/chunks/yOnL5tdh.js +0 -1
  596. package/build/client/_app/immutable/chunks/yOnL5tdh.js.br +0 -0
  597. package/build/client/_app/immutable/chunks/yOnL5tdh.js.gz +0 -0
  598. package/build/client/_app/immutable/entry/app.CwUzD1qr.js +0 -2
  599. package/build/client/_app/immutable/entry/app.CwUzD1qr.js.br +0 -0
  600. package/build/client/_app/immutable/entry/app.CwUzD1qr.js.gz +0 -0
  601. package/build/client/_app/immutable/entry/start.BOYTQSdU.js +0 -1
  602. package/build/client/_app/immutable/entry/start.BOYTQSdU.js.br +0 -1
  603. package/build/client/_app/immutable/entry/start.BOYTQSdU.js.gz +0 -0
  604. package/build/client/_app/immutable/nodes/1.BrQo3lw0.js +0 -1
  605. package/build/client/_app/immutable/nodes/1.BrQo3lw0.js.br +0 -0
  606. package/build/client/_app/immutable/nodes/1.BrQo3lw0.js.gz +0 -0
  607. package/build/client/_app/immutable/nodes/10.BU_U-Tp0.js +0 -3
  608. package/build/client/_app/immutable/nodes/10.BU_U-Tp0.js.br +0 -0
  609. package/build/client/_app/immutable/nodes/10.BU_U-Tp0.js.gz +0 -0
  610. package/build/client/_app/immutable/nodes/11.CWq7wsu7.js +0 -3
  611. package/build/client/_app/immutable/nodes/11.CWq7wsu7.js.br +0 -0
  612. package/build/client/_app/immutable/nodes/11.CWq7wsu7.js.gz +0 -0
  613. package/build/client/_app/immutable/nodes/13.UD-lbJeV.js +0 -2
  614. package/build/client/_app/immutable/nodes/13.UD-lbJeV.js.br +0 -0
  615. package/build/client/_app/immutable/nodes/13.UD-lbJeV.js.gz +0 -0
  616. package/build/client/_app/immutable/nodes/14.hROh0eqn.js +0 -2
  617. package/build/client/_app/immutable/nodes/14.hROh0eqn.js.br +0 -0
  618. package/build/client/_app/immutable/nodes/14.hROh0eqn.js.gz +0 -0
  619. package/build/client/_app/immutable/nodes/15.hXxZxEiw.js +0 -28
  620. package/build/client/_app/immutable/nodes/15.hXxZxEiw.js.br +0 -0
  621. package/build/client/_app/immutable/nodes/15.hXxZxEiw.js.gz +0 -0
  622. package/build/client/_app/immutable/nodes/16.CFdzHhX-.js +0 -4
  623. package/build/client/_app/immutable/nodes/16.CFdzHhX-.js.br +0 -0
  624. package/build/client/_app/immutable/nodes/16.CFdzHhX-.js.gz +0 -0
  625. package/build/client/_app/immutable/nodes/17.Cbuo2qt0.js +0 -2
  626. package/build/client/_app/immutable/nodes/17.Cbuo2qt0.js.br +0 -0
  627. package/build/client/_app/immutable/nodes/17.Cbuo2qt0.js.gz +0 -0
  628. package/build/client/_app/immutable/nodes/19.Baor8G-S.js +0 -7
  629. package/build/client/_app/immutable/nodes/19.Baor8G-S.js.br +0 -0
  630. package/build/client/_app/immutable/nodes/19.Baor8G-S.js.gz +0 -0
  631. package/build/client/_app/immutable/nodes/2.DXpvSFBw.js +0 -1
  632. package/build/client/_app/immutable/nodes/2.DXpvSFBw.js.br +0 -0
  633. package/build/client/_app/immutable/nodes/2.DXpvSFBw.js.gz +0 -0
  634. package/build/client/_app/immutable/nodes/20.XFKawRvJ.js +0 -2
  635. package/build/client/_app/immutable/nodes/20.XFKawRvJ.js.br +0 -0
  636. package/build/client/_app/immutable/nodes/20.XFKawRvJ.js.gz +0 -0
  637. package/build/client/_app/immutable/nodes/21.BHnvVXns.js +0 -5495
  638. package/build/client/_app/immutable/nodes/21.BHnvVXns.js.br +0 -0
  639. package/build/client/_app/immutable/nodes/21.BHnvVXns.js.gz +0 -0
  640. package/build/client/_app/immutable/nodes/22.C1KJkJcn.js +0 -6
  641. package/build/client/_app/immutable/nodes/22.C1KJkJcn.js.br +0 -0
  642. package/build/client/_app/immutable/nodes/22.C1KJkJcn.js.gz +0 -0
  643. package/build/client/_app/immutable/nodes/24.BE-vbOXc.js +0 -16
  644. package/build/client/_app/immutable/nodes/24.BE-vbOXc.js.br +0 -0
  645. package/build/client/_app/immutable/nodes/24.BE-vbOXc.js.gz +0 -0
  646. package/build/client/_app/immutable/nodes/25.BNBqTvBj.js +0 -6
  647. package/build/client/_app/immutable/nodes/25.BNBqTvBj.js.br +0 -0
  648. package/build/client/_app/immutable/nodes/25.BNBqTvBj.js.gz +0 -0
  649. package/build/client/_app/immutable/nodes/26.C1BZ2Rfi.js +0 -1
  650. package/build/client/_app/immutable/nodes/26.C1BZ2Rfi.js.br +0 -0
  651. package/build/client/_app/immutable/nodes/26.C1BZ2Rfi.js.gz +0 -0
  652. package/build/client/_app/immutable/nodes/28.DdGIORNG.js +0 -4
  653. package/build/client/_app/immutable/nodes/28.DdGIORNG.js.br +0 -0
  654. package/build/client/_app/immutable/nodes/28.DdGIORNG.js.gz +0 -0
  655. package/build/client/_app/immutable/nodes/29.DmhfLsZf.js +0 -6
  656. package/build/client/_app/immutable/nodes/29.DmhfLsZf.js.br +0 -0
  657. package/build/client/_app/immutable/nodes/29.DmhfLsZf.js.gz +0 -0
  658. package/build/client/_app/immutable/nodes/3.BCIeNXqA.js +0 -1
  659. package/build/client/_app/immutable/nodes/3.BCIeNXqA.js.br +0 -0
  660. package/build/client/_app/immutable/nodes/3.BCIeNXqA.js.gz +0 -0
  661. package/build/client/_app/immutable/nodes/30.BCUyLdMa.js +0 -2
  662. package/build/client/_app/immutable/nodes/30.BCUyLdMa.js.br +0 -0
  663. package/build/client/_app/immutable/nodes/30.BCUyLdMa.js.gz +0 -0
  664. package/build/client/_app/immutable/nodes/31.DNbnTSz0.js +0 -2
  665. package/build/client/_app/immutable/nodes/31.DNbnTSz0.js.br +0 -0
  666. package/build/client/_app/immutable/nodes/31.DNbnTSz0.js.gz +0 -0
  667. package/build/client/_app/immutable/nodes/33.C-nAUiXU.js +0 -1
  668. package/build/client/_app/immutable/nodes/33.C-nAUiXU.js.br +0 -0
  669. package/build/client/_app/immutable/nodes/33.C-nAUiXU.js.gz +0 -0
  670. package/build/client/_app/immutable/nodes/5.Btz3zwkq.js +0 -1
  671. package/build/client/_app/immutable/nodes/5.Btz3zwkq.js.br +0 -2
  672. package/build/client/_app/immutable/nodes/5.Btz3zwkq.js.gz +0 -0
  673. package/build/client/_app/immutable/nodes/6.D8trozGz.js +0 -1
  674. package/build/client/_app/immutable/nodes/6.D8trozGz.js.br +0 -0
  675. package/build/client/_app/immutable/nodes/6.D8trozGz.js.gz +0 -0
  676. package/build/client/_app/immutable/nodes/7.CIuyXR-y.js +0 -1
  677. package/build/client/_app/immutable/nodes/7.CIuyXR-y.js.br +0 -0
  678. package/build/client/_app/immutable/nodes/7.CIuyXR-y.js.gz +0 -0
  679. package/build/client/_app/immutable/nodes/8.CE-ePdyl.js +0 -3
  680. package/build/client/_app/immutable/nodes/8.CE-ePdyl.js.br +0 -0
  681. package/build/client/_app/immutable/nodes/8.CE-ePdyl.js.gz +0 -0
  682. package/build/client/_app/immutable/nodes/9.BHGAYAPm.js +0 -1
  683. package/build/client/_app/immutable/nodes/9.BHGAYAPm.js.br +0 -0
  684. package/build/client/_app/immutable/nodes/9.BHGAYAPm.js.gz +0 -0
  685. package/build/server/chunks/chunks/AppHeader.js-BgNotb_w.js +0 -272
  686. package/build/server/chunks/chunks/AppHeader.js-BgNotb_w.js.map +0 -1
  687. package/build/server/chunks/chunks/SideNav.js-InLCM4Q9.js +0 -67
  688. package/build/server/chunks/chunks/SideNav.js-InLCM4Q9.js.map +0 -1
  689. package/build/server/chunks/chunks/UserChip.js-qOwOtN3X.js +0 -1162
  690. package/build/server/chunks/chunks/UserChip.js-qOwOtN3X.js.map +0 -1
  691. package/build/server/chunks/chunks/UserRowIdentity.js-GnL996l3.js +0 -131
  692. package/build/server/chunks/chunks/UserRowIdentity.js-GnL996l3.js.map +0 -1
  693. package/build/server/chunks/chunks/access.server.js-Fg4zaw5v.js +0 -531
  694. package/build/server/chunks/chunks/access.server.js-Fg4zaw5v.js.map +0 -1
  695. package/build/server/chunks/chunks/access2.server.js-BTdE9gim.js +0 -20
  696. package/build/server/chunks/chunks/access2.server.js-BTdE9gim.js.map +0 -1
  697. package/build/server/chunks/chunks/admin-auth.server.js-DsArAgnk.js +0 -201
  698. package/build/server/chunks/chunks/admin-auth.server.js-DsArAgnk.js.map +0 -1
  699. package/build/server/chunks/chunks/admin-config.js-BsBQKu2O.js +0 -3
  700. package/build/server/chunks/chunks/admin-config.js-BsBQKu2O.js.map +0 -1
  701. package/build/server/chunks/chunks/alert-dialog.js-CvyPsOGm.js +0 -462
  702. package/build/server/chunks/chunks/alert-dialog.js-CvyPsOGm.js.map +0 -1
  703. package/build/server/chunks/chunks/api-errors.js-D-tV7sBR.js +0 -143
  704. package/build/server/chunks/chunks/api-errors.js-D-tV7sBR.js.map +0 -1
  705. package/build/server/chunks/chunks/auth-bootstrap.server.js-DJ7P2NJX.js +0 -152
  706. package/build/server/chunks/chunks/auth-bootstrap.server.js-DJ7P2NJX.js.map +0 -1
  707. package/build/server/chunks/chunks/auth.server.js-D0YlbJuE.js +0 -2
  708. package/build/server/chunks/chunks/auth.server.js-D0YlbJuE.js.map +0 -1
  709. package/build/server/chunks/chunks/bodies.js-C9rGU8lD.js +0 -74
  710. package/build/server/chunks/chunks/bodies.js-C9rGU8lD.js.map +0 -1
  711. package/build/server/chunks/chunks/bootHealth.server.js-CV0TlUfV.js +0 -89
  712. package/build/server/chunks/chunks/bootHealth.server.js-CV0TlUfV.js.map +0 -1
  713. package/build/server/chunks/chunks/client.js-DgveY-J7.js +0 -59
  714. package/build/server/chunks/chunks/client.js-DgveY-J7.js.map +0 -1
  715. package/build/server/chunks/chunks/compute.js-B08Flkxe.js +0 -306
  716. package/build/server/chunks/chunks/compute.js-B08Flkxe.js.map +0 -1
  717. package/build/server/chunks/chunks/computeLimits.js-DSmUJ5Af.js +0 -43
  718. package/build/server/chunks/chunks/computeLimits.js-DSmUJ5Af.js.map +0 -1
  719. package/build/server/chunks/chunks/create-id.js-DZHvVzWu.js +0 -809
  720. package/build/server/chunks/chunks/create-id.js-DZHvVzWu.js.map +0 -1
  721. package/build/server/chunks/chunks/createProject.server.js-HkoyL_wi.js +0 -47
  722. package/build/server/chunks/chunks/createProject.server.js-HkoyL_wi.js.map +0 -1
  723. package/build/server/chunks/chunks/definitions.js-BAor6-wX.js +0 -2
  724. package/build/server/chunks/chunks/definitions.js-BAor6-wX.js.map +0 -1
  725. package/build/server/chunks/chunks/deliver.server.js-C9FXR5Nc.js +0 -135
  726. package/build/server/chunks/chunks/deliver.server.js-C9FXR5Nc.js.map +0 -1
  727. package/build/server/chunks/chunks/dialog-description.js-z7PmnPp9.js +0 -495
  728. package/build/server/chunks/chunks/dialog-description.js-z7PmnPp9.js.map +0 -1
  729. package/build/server/chunks/chunks/dialog.js-DzX3UL2M.js +0 -367
  730. package/build/server/chunks/chunks/dialog.js-DzX3UL2M.js.map +0 -1
  731. package/build/server/chunks/chunks/engine.server.js-BkCqJs2J.js +0 -568
  732. package/build/server/chunks/chunks/engine.server.js-BkCqJs2J.js.map +0 -1
  733. package/build/server/chunks/chunks/events2.js-g3pRSymE.js +0 -2
  734. package/build/server/chunks/chunks/events2.js-g3pRSymE.js.map +0 -1
  735. package/build/server/chunks/chunks/footerContext.svelte.js-hYVwYyNi.js +0 -707
  736. package/build/server/chunks/chunks/footerContext.svelte.js-hYVwYyNi.js.map +0 -1
  737. package/build/server/chunks/chunks/forms.js-CrY61HFP.js +0 -2
  738. package/build/server/chunks/chunks/forms.js-CrY61HFP.js.map +0 -1
  739. package/build/server/chunks/chunks/http.js-85jjtEx2.js +0 -172
  740. package/build/server/chunks/chunks/http.js-85jjtEx2.js.map +0 -1
  741. package/build/server/chunks/chunks/index-server2.js-UaiofxX-.js +0 -21
  742. package/build/server/chunks/chunks/index-server2.js-UaiofxX-.js.map +0 -1
  743. package/build/server/chunks/chunks/instanceAdmins.server.js-CJTPkLyu.js +0 -23
  744. package/build/server/chunks/chunks/instanceAdmins.server.js-CJTPkLyu.js.map +0 -1
  745. package/build/server/chunks/chunks/internal2.js-DITt-077.js +0 -224
  746. package/build/server/chunks/chunks/internal2.js-DITt-077.js.map +0 -1
  747. package/build/server/chunks/chunks/label.js-CJKpR7R4.js +0 -108
  748. package/build/server/chunks/chunks/label.js-CJKpR7R4.js.map +0 -1
  749. package/build/server/chunks/chunks/lookup.server.js-bQcvnig-.js +0 -28
  750. package/build/server/chunks/chunks/lookup.server.js-bQcvnig-.js.map +0 -1
  751. package/build/server/chunks/chunks/minus.js-Cb37TkCa.js +0 -33
  752. package/build/server/chunks/chunks/minus.js-Cb37TkCa.js.map +0 -1
  753. package/build/server/chunks/chunks/navigation.js-CrY61HFP.js +0 -2
  754. package/build/server/chunks/chunks/navigation.js-CrY61HFP.js.map +0 -1
  755. package/build/server/chunks/chunks/noop.js-_UEo7ePu.js +0 -467
  756. package/build/server/chunks/chunks/noop.js-_UEo7ePu.js.map +0 -1
  757. package/build/server/chunks/chunks/oauthState.server.js-DX7ZmU2E.js +0 -59
  758. package/build/server/chunks/chunks/oauthState.server.js-DX7ZmU2E.js.map +0 -1
  759. package/build/server/chunks/chunks/org-members.server.js-B6myURSW.js +0 -35
  760. package/build/server/chunks/chunks/org-members.server.js-B6myURSW.js.map +0 -1
  761. package/build/server/chunks/chunks/package.js-fXEMKa-U.js +0 -82
  762. package/build/server/chunks/chunks/package.js-fXEMKa-U.js.map +0 -1
  763. package/build/server/chunks/chunks/pagination.server.js-CtQ_3Is9.js +0 -41
  764. package/build/server/chunks/chunks/pagination.server.js-CtQ_3Is9.js.map +0 -1
  765. package/build/server/chunks/chunks/paths.js-CMZ8jGrp.js +0 -19
  766. package/build/server/chunks/chunks/paths.js-CMZ8jGrp.js.map +0 -1
  767. package/build/server/chunks/chunks/permissions.server.js-ClRmj6Mb.js +0 -23
  768. package/build/server/chunks/chunks/permissions.server.js-ClRmj6Mb.js.map +0 -1
  769. package/build/server/chunks/chunks/providers.server.js-CGtbhqJ3.js +0 -6632
  770. package/build/server/chunks/chunks/providers.server.js-CGtbhqJ3.js.map +0 -1
  771. package/build/server/chunks/chunks/resolve.server.js-BB8Yy5Nn.js +0 -63
  772. package/build/server/chunks/chunks/resolve.server.js-BB8Yy5Nn.js.map +0 -1
  773. package/build/server/chunks/chunks/responses.js-C3TpfP9h.js +0 -103
  774. package/build/server/chunks/chunks/responses.js-C3TpfP9h.js.map +0 -1
  775. package/build/server/chunks/chunks/route.js-CbZs7l_p.js +0 -4
  776. package/build/server/chunks/chunks/route.js-CbZs7l_p.js.map +0 -1
  777. package/build/server/chunks/chunks/scroll-lock.js-BRpQ9hSI.js +0 -2973
  778. package/build/server/chunks/chunks/scroll-lock.js-BRpQ9hSI.js.map +0 -1
  779. package/build/server/chunks/chunks/select.js-eozKAn7m.js +0 -3634
  780. package/build/server/chunks/chunks/select.js-eozKAn7m.js.map +0 -1
  781. package/build/server/chunks/chunks/selfUpdate.server.js-DVjJ-O6e.js +0 -149
  782. package/build/server/chunks/chunks/selfUpdate.server.js-DVjJ-O6e.js.map +0 -1
  783. package/build/server/chunks/chunks/serverConfigWrite.js-BbjK9tr4.js +0 -116
  784. package/build/server/chunks/chunks/serverConfigWrite.js-BbjK9tr4.js.map +0 -1
  785. package/build/server/chunks/chunks/solve.server.js-BDmbQZi6.js +0 -300
  786. package/build/server/chunks/chunks/solve.server.js-BDmbQZi6.js.map +0 -1
  787. package/build/server/chunks/chunks/src.js-B12bUNyu.js +0 -386
  788. package/build/server/chunks/chunks/src.js-B12bUNyu.js.map +0 -1
  789. package/build/server/chunks/chunks/state.js-ChsIPz4C.js +0 -76
  790. package/build/server/chunks/chunks/state.js-ChsIPz4C.js.map +0 -1
  791. package/build/server/chunks/chunks/stores.js-hAdaKJlG.js +0 -35
  792. package/build/server/chunks/chunks/stores.js-hAdaKJlG.js.map +0 -1
  793. package/build/server/chunks/chunks/tabs-trigger.js-BQ1gXeVJ.js +0 -512
  794. package/build/server/chunks/chunks/tabs-trigger.js-BQ1gXeVJ.js.map +0 -1
  795. package/build/server/chunks/chunks/token.server.js-qEsa9y7f.js +0 -45
  796. package/build/server/chunks/chunks/token.server.js-qEsa9y7f.js.map +0 -1
  797. package/build/server/chunks/chunks/token2.server.js-Y-zJuZS5.js +0 -40
  798. package/build/server/chunks/chunks/token2.server.js-Y-zJuZS5.js.map +0 -1
  799. package/build/server/chunks/chunks/user-display.js-B3d-spft.js +0 -23
  800. package/build/server/chunks/chunks/user-display.js-B3d-spft.js.map +0 -1
  801. package/build/server/chunks/chunks/visibility.server.js-B5fgOfdA.js +0 -107
  802. package/build/server/chunks/chunks/visibility.server.js-B5fgOfdA.js.map +0 -1
  803. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-DWZJ66wn.js +0 -83
  804. package/build/server/chunks/entries/endpoints/api/admin/compute/_server.ts.js-DWZJ66wn.js.map +0 -1
  805. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-C04Ehp2l.js +0 -52
  806. package/build/server/chunks/entries/endpoints/api/admin/compute/actions/_server.ts.js-C04Ehp2l.js.map +0 -1
  807. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-BHg7BPGx.js +0 -78
  808. package/build/server/chunks/entries/endpoints/api/admin/compute/status/_server.ts.js-BHg7BPGx.js.map +0 -1
  809. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-DA-yCa49.js +0 -40
  810. package/build/server/chunks/entries/endpoints/api/admin/orgs/_id_/_server.ts.js-DA-yCa49.js.map +0 -1
  811. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-CFWAYSj7.js +0 -63
  812. package/build/server/chunks/entries/endpoints/api/admin/orgs/_server.ts.js-CFWAYSj7.js.map +0 -1
  813. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-C8sW3U2c.js +0 -56
  814. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/_server.ts.js-C8sW3U2c.js.map +0 -1
  815. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DKmRt4iG.js +0 -28
  816. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_grantId_/_server.ts.js-DKmRt4iG.js.map +0 -1
  817. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BZw5aUv2.js +0 -59
  818. package/build/server/chunks/entries/endpoints/api/admin/projects/_id_/grants/_server.ts.js-BZw5aUv2.js.map +0 -1
  819. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-vaNUp3Kz.js +0 -74
  820. package/build/server/chunks/entries/endpoints/api/admin/projects/_server.ts.js-vaNUp3Kz.js.map +0 -1
  821. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-C0_ilWXL.js +0 -332
  822. package/build/server/chunks/entries/endpoints/api/admin/system/health/_server.ts.js-C0_ilWXL.js.map +0 -1
  823. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-CYwfokm5.js +0 -88
  824. package/build/server/chunks/entries/endpoints/api/admin/system/throughput/_server.ts.js-CYwfokm5.js.map +0 -1
  825. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-Cb885ABJ.js +0 -605
  826. package/build/server/chunks/entries/endpoints/api/admin/system/update/_server.ts.js-Cb885ABJ.js.map +0 -1
  827. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-Z5dXGIJ-.js +0 -52
  828. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/_server.ts.js-Z5dXGIJ-.js.map +0 -1
  829. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Dzc3t5Fv.js +0 -61
  830. package/build/server/chunks/entries/endpoints/api/admin/users/_id_/disable/_server.ts.js-Dzc3t5Fv.js.map +0 -1
  831. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-LimyZySG.js +0 -78
  832. package/build/server/chunks/entries/endpoints/api/admin/users/_server.ts.js-LimyZySG.js.map +0 -1
  833. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-qZlGweTN.js +0 -58
  834. package/build/server/chunks/entries/endpoints/api/diag/throughput/_server.ts.js-qZlGweTN.js.map +0 -1
  835. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-pTkMfjZa.js +0 -87
  836. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-pTkMfjZa.js.map +0 -1
  837. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-nLZw1K-c.js +0 -56
  838. package/build/server/chunks/entries/endpoints/api/health/_server.ts.js-nLZw1K-c.js.map +0 -1
  839. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-DjqaKJyT.js +0 -59
  840. package/build/server/chunks/entries/endpoints/api/health/ready/_server.ts.js-DjqaKJyT.js.map +0 -1
  841. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-BaTUsIDP.js +0 -81
  842. package/build/server/chunks/entries/endpoints/api/v1/compute/_server.ts.js-BaTUsIDP.js.map +0 -1
  843. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-Bms9H1Ca.js +0 -59
  844. package/build/server/chunks/entries/endpoints/api/v1/compute/schema/_server.ts.js-Bms9H1Ca.js.map +0 -1
  845. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-Cr8OSzLb.js +0 -61
  846. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/_server.ts.js-Cr8OSzLb.js.map +0 -1
  847. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-C95-_TuG.js +0 -35
  848. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/image/_server.ts.js-C95-_TuG.js.map +0 -1
  849. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-9SjW9Onl.js +0 -31
  850. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/publish/_server.ts.js-9SjW9Onl.js.map +0 -1
  851. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-B5Rq_s05.js +0 -37
  852. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/schema/_server.ts.js-B5Rq_s05.js.map +0 -1
  853. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-fJRBAq_i.js +0 -37
  854. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_linkId_/_server.ts.js-fJRBAq_i.js.map +0 -1
  855. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-CI7s0NEg.js +0 -79
  856. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/share-links/_server.ts.js-CI7s0NEg.js.map +0 -1
  857. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-Bnou4uvd.js +0 -0
  858. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/solve/_server.ts.js-Bnou4uvd.js.map +0 -1
  859. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-nu-Cqfpj.js +0 -51
  860. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_server.ts.js-nu-Cqfpj.js.map +0 -1
  861. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-CR6o5k_j.js +0 -46
  862. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/_server.ts.js-CR6o5k_j.js.map +0 -1
  863. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-BXiDmXUz.js +0 -38
  864. package/build/server/chunks/entries/endpoints/api/v1/definitions/_guid_/versions/_versionId_/schema/_server.ts.js-BXiDmXUz.js.map +0 -1
  865. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-DE3aoXNA.js +0 -112
  866. package/build/server/chunks/entries/endpoints/api/v1/definitions/_server.ts.js-DE3aoXNA.js.map +0 -1
  867. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-BAFBzsmG.js +0 -37
  868. package/build/server/chunks/entries/endpoints/api/v1/me/_server.ts.js-BAFBzsmG.js.map +0 -1
  869. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CAcvAbeC.js +0 -34
  870. package/build/server/chunks/entries/endpoints/api/v1/me/starred/_guid_/_server.ts.js-CAcvAbeC.js.map +0 -1
  871. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DV86mOG-.js +0 -28
  872. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/_server.ts.js-DV86mOG-.js.map +0 -1
  873. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-DZmqjgfH.js +0 -72
  874. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/assets/_kind_/_server.ts.js-DZmqjgfH.js.map +0 -1
  875. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-d-gNkYRy.js +0 -100
  876. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/compute/_server.ts.js-d-gNkYRy.js.map +0 -1
  877. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-DB6HIos9.js +0 -31
  878. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/_server.ts.js-DB6HIos9.js.map +0 -1
  879. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CTCCjTND.js +0 -75
  880. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_id_/resend/_server.ts.js-CTCCjTND.js.map +0 -1
  881. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-B2b4n-td.js +0 -90
  882. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/invites/_server.ts.js-B2b4n-td.js.map +0 -1
  883. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-_ue7Xam5.js +0 -31
  884. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_server.ts.js-_ue7Xam5.js.map +0 -1
  885. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-CNK6oZ_F.js +0 -172
  886. package/build/server/chunks/entries/endpoints/api/v1/orgs/_orgId_/members/_userId_/_server.ts.js-CNK6oZ_F.js.map +0 -1
  887. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-DiywyfgA.js +0 -85
  888. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/_server.ts.js-DiywyfgA.js.map +0 -1
  889. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-B-TPIFrn.js +0 -49
  890. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_server.ts.js-B-TPIFrn.js.map +0 -1
  891. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-98IBoqJ0.js +0 -64
  892. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/members/_userId_/_server.ts.js-98IBoqJ0.js.map +0 -1
  893. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-DDjaqwdz.js +0 -49
  894. package/build/server/chunks/entries/endpoints/api/v1/projects/_id_/reclaim/_server.ts.js-DDjaqwdz.js.map +0 -1
  895. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-Dm-i-ZHL.js +0 -67
  896. package/build/server/chunks/entries/endpoints/api/v1/projects/_server.ts.js-Dm-i-ZHL.js.map +0 -1
  897. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CGKUnL4_.js +0 -43
  898. package/build/server/chunks/entries/endpoints/auth/email/callback/_server.ts.js-CGKUnL4_.js.map +0 -1
  899. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-21onB8RL.js +0 -49
  900. package/build/server/chunks/entries/endpoints/auth/supabase/callback/_server.ts.js-21onB8RL.js.map +0 -1
  901. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-DaJpSdIS.js +0 -58
  902. package/build/server/chunks/entries/endpoints/auth/supabase/start/_server.ts.js-DaJpSdIS.js.map +0 -1
  903. package/build/server/chunks/entries/hooks.server.js-Dt1oAZte.js +0 -330
  904. package/build/server/chunks/entries/hooks.server.js-Dt1oAZte.js.map +0 -1
  905. package/build/server/chunks/entries/pages/_error.svelte.js-B0ejNwt8.js +0 -36
  906. package/build/server/chunks/entries/pages/_error.svelte.js-B0ejNwt8.js.map +0 -1
  907. package/build/server/chunks/entries/pages/_layout.server.ts.js-Bvf2Rz-R.js +0 -34
  908. package/build/server/chunks/entries/pages/_layout.server.ts.js-Bvf2Rz-R.js.map +0 -1
  909. package/build/server/chunks/entries/pages/_layout.svelte.js-Cnp9CnQ_.js +0 -654
  910. package/build/server/chunks/entries/pages/_layout.svelte.js-Cnp9CnQ_.js.map +0 -1
  911. package/build/server/chunks/entries/pages/_page.server.ts.js-D75Dp7Ld.js +0 -52
  912. package/build/server/chunks/entries/pages/_page.server.ts.js-D75Dp7Ld.js.map +0 -1
  913. package/build/server/chunks/entries/pages/_page.svelte.js-9XsUBjAv.js +0 -162
  914. package/build/server/chunks/entries/pages/_page.svelte.js-9XsUBjAv.js.map +0 -1
  915. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BkPjuazO.js +0 -180
  916. package/build/server/chunks/entries/pages/accept-invite/_page.server.ts.js-BkPjuazO.js.map +0 -1
  917. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-DIpR6y_G.js +0 -188
  918. package/build/server/chunks/entries/pages/accept-invite/_page.svelte.js-DIpR6y_G.js.map +0 -1
  919. package/build/server/chunks/entries/pages/admin/_error.svelte.js-CWhDOGs3.js +0 -37
  920. package/build/server/chunks/entries/pages/admin/_error.svelte.js-CWhDOGs3.js.map +0 -1
  921. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-B0waxi3O.js +0 -31
  922. package/build/server/chunks/entries/pages/admin/_layout.server.ts.js-B0waxi3O.js.map +0 -1
  923. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-MUFaZrsd.js +0 -124
  924. package/build/server/chunks/entries/pages/admin/_layout.svelte.js-MUFaZrsd.js.map +0 -1
  925. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-DFKMJT_n.js +0 -75
  926. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-DFKMJT_n.js.map +0 -1
  927. package/build/server/chunks/entries/pages/admin/_page.svelte.js-CKiUgYZP.js +0 -360
  928. package/build/server/chunks/entries/pages/admin/_page.svelte.js-CKiUgYZP.js.map +0 -1
  929. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-D_Fe3h0U.js +0 -265
  930. package/build/server/chunks/entries/pages/admin/audit/_page.server.ts.js-D_Fe3h0U.js.map +0 -1
  931. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-FnrC0c1E.js +0 -465
  932. package/build/server/chunks/entries/pages/admin/audit/_page.svelte.js-FnrC0c1E.js.map +0 -1
  933. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-YwHzzvKk.js +0 -73
  934. package/build/server/chunks/entries/pages/admin/compute/_page.server.ts.js-YwHzzvKk.js.map +0 -1
  935. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-ClgcGOUJ.js +0 -673
  936. package/build/server/chunks/entries/pages/admin/compute/_page.svelte.js-ClgcGOUJ.js.map +0 -1
  937. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BHK_vc-b.js +0 -35
  938. package/build/server/chunks/entries/pages/admin/organizations/_page.server.ts.js-BHK_vc-b.js.map +0 -1
  939. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-Bl_tYAQm.js +0 -86
  940. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.server.ts.js-Bl_tYAQm.js.map +0 -1
  941. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-X58IUa_5.js +0 -618
  942. package/build/server/chunks/entries/pages/admin/projects/_id_/_page.svelte.js-X58IUa_5.js.map +0 -1
  943. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-CYNXQGpq.js +0 -42
  944. package/build/server/chunks/entries/pages/admin/projects/_page.server.ts.js-CYNXQGpq.js.map +0 -1
  945. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-Dpa15CBO.js +0 -283
  946. package/build/server/chunks/entries/pages/admin/projects/_page.svelte.js-Dpa15CBO.js.map +0 -1
  947. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-BffcucYd.js +0 -86
  948. package/build/server/chunks/entries/pages/admin/system/_page.server.ts.js-BffcucYd.js.map +0 -1
  949. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-VvREAXv5.js +0 -1417
  950. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-VvREAXv5.js.map +0 -1
  951. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-D0Lfx66_.js +0 -80
  952. package/build/server/chunks/entries/pages/admin/users/_page.server.ts.js-D0Lfx66_.js.map +0 -1
  953. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-CutTSPRq.js +0 -569
  954. package/build/server/chunks/entries/pages/admin/users/_page.svelte.js-CutTSPRq.js.map +0 -1
  955. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DXveyCRC.js +0 -63
  956. package/build/server/chunks/entries/pages/auth/email/sent/_page.svelte.js-DXveyCRC.js.map +0 -1
  957. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-CAOwEw8j.js +0 -62
  958. package/build/server/chunks/entries/pages/auth/email/start/_page.server.ts.js-CAOwEw8j.js.map +0 -1
  959. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-BRUdAcJP.js +0 -539
  960. package/build/server/chunks/entries/pages/docs/api/_page.server.ts.js-BRUdAcJP.js.map +0 -1
  961. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-DLrkpgJc.js +0 -90
  962. package/build/server/chunks/entries/pages/docs/api/_page.svelte.js-DLrkpgJc.js.map +0 -1
  963. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-BvE0Hd_-.js +0 -118
  964. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-BvE0Hd_-.js.map +0 -1
  965. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-tWTueBVD.js +0 -12895
  966. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-tWTueBVD.js.map +0 -1
  967. package/build/server/chunks/entries/pages/library/_page.server.ts.js-n6S6247N.js +0 -48
  968. package/build/server/chunks/entries/pages/library/_page.server.ts.js-n6S6247N.js.map +0 -1
  969. package/build/server/chunks/entries/pages/library/_page.svelte.js-DeHiFggS.js +0 -314
  970. package/build/server/chunks/entries/pages/library/_page.svelte.js-DeHiFggS.js.map +0 -1
  971. package/build/server/chunks/entries/pages/login/_page.server.ts.js-CiiB_wlb.js +0 -101
  972. package/build/server/chunks/entries/pages/login/_page.server.ts.js-CiiB_wlb.js.map +0 -1
  973. package/build/server/chunks/entries/pages/login/_page.svelte.js-FGC1ropO.js +0 -272
  974. package/build/server/chunks/entries/pages/login/_page.svelte.js-FGC1ropO.js.map +0 -1
  975. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-DTVa04dn.js +0 -19
  976. package/build/server/chunks/entries/pages/logout/_page.server.ts.js-DTVa04dn.js.map +0 -1
  977. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-CkTXc3yQ.js +0 -22
  978. package/build/server/chunks/entries/pages/projects/_layout.server.ts.js-CkTXc3yQ.js.map +0 -1
  979. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-CqMDkUFx.js +0 -52
  980. package/build/server/chunks/entries/pages/projects/_layout.svelte.js-CqMDkUFx.js.map +0 -1
  981. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BLxCTvnL.js +0 -88
  982. package/build/server/chunks/entries/pages/projects/_page.server.ts.js-BLxCTvnL.js.map +0 -1
  983. package/build/server/chunks/entries/pages/projects/_page.svelte.js-f-lvRtgi.js +0 -3762
  984. package/build/server/chunks/entries/pages/projects/_page.svelte.js-f-lvRtgi.js.map +0 -1
  985. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-CeoLGSPB.js +0 -115
  986. package/build/server/chunks/entries/pages/setup/_page.server.ts.js-CeoLGSPB.js.map +0 -1
  987. package/build/server/chunks/entries/pages/setup/_page.svelte.js-C_-wjEMF.js +0 -322
  988. package/build/server/chunks/entries/pages/setup/_page.svelte.js-C_-wjEMF.js.map +0 -1
  989. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-DHk7yUkA.js +0 -28
  990. package/build/server/chunks/entries/pages/team/_layout.server.ts.js-DHk7yUkA.js.map +0 -1
  991. package/build/server/chunks/entries/pages/team/_layout.svelte.js-DxGFaOIF.js +0 -171
  992. package/build/server/chunks/entries/pages/team/_layout.svelte.js-DxGFaOIF.js.map +0 -1
  993. package/build/server/chunks/entries/pages/team/_page.server.ts.js-cVLaz9oa.js +0 -35
  994. package/build/server/chunks/entries/pages/team/_page.server.ts.js-cVLaz9oa.js.map +0 -1
  995. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-DiTK1NDm.js +0 -41
  996. package/build/server/chunks/entries/pages/team/compute/_page.server.ts.js-DiTK1NDm.js.map +0 -1
  997. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-DU3BOEqR.js +0 -594
  998. package/build/server/chunks/entries/pages/team/compute/_page.svelte.js-DU3BOEqR.js.map +0 -1
  999. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-BA2NLYdZ.js +0 -62
  1000. package/build/server/chunks/entries/pages/team/members/_page.server.ts.js-BA2NLYdZ.js.map +0 -1
  1001. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-CtHLoxVU.js +0 -760
  1002. package/build/server/chunks/entries/pages/team/members/_page.svelte.js-CtHLoxVU.js.map +0 -1
  1003. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DkPTxYhU.js +0 -56
  1004. package/build/server/chunks/entries/pages/team/projects/_page.server.ts.js-DkPTxYhU.js.map +0 -1
  1005. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-BObTz63m.js +0 -424
  1006. package/build/server/chunks/entries/pages/team/projects/_page.svelte.js-BObTz63m.js.map +0 -1
  1007. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-CKxgdWpg.js +0 -63
  1008. package/build/server/chunks/entries/pages/team/reclaim/_page.server.ts.js-CKxgdWpg.js.map +0 -1
  1009. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-KHVdMqr9.js +0 -263
  1010. package/build/server/chunks/entries/pages/team/reclaim/_page.svelte.js-KHVdMqr9.js.map +0 -1
  1011. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-BFOkYS1m.js +0 -34
  1012. package/build/server/chunks/entries/pages/team/settings/_page.server.ts.js-BFOkYS1m.js.map +0 -1
  1013. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-5U3nc5sZ.js +0 -29
  1014. package/build/server/chunks/entries/pages/team/shares/_page.server.ts.js-5U3nc5sZ.js.map +0 -1
  1015. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-65sG0PB6.js +0 -323
  1016. package/build/server/chunks/entries/pages/team/shares/_page.svelte.js-65sG0PB6.js.map +0 -1
  1017. package/build/server/chunks/handler-CVTB3BCS.js +0 -1206
  1018. package/build/server/chunks/handler-CVTB3BCS.js.map +0 -1
  1019. package/build/server/chunks/index.js-BooGos1O.js +0 -3767
  1020. package/build/server/chunks/index.js-BooGos1O.js.map +0 -1
  1021. package/build/server/chunks/manifest.js-DKE6kvmJ.js +0 -612
  1022. package/build/server/chunks/manifest.js-DKE6kvmJ.js.map +0 -1
  1023. package/build/server/chunks/nodes/0.js-Ck5p8NOF.js +0 -24
  1024. package/build/server/chunks/nodes/0.js-Ck5p8NOF.js.map +0 -1
  1025. package/build/server/chunks/nodes/1.js-DhAUta1q.js +0 -9
  1026. package/build/server/chunks/nodes/1.js-DhAUta1q.js.map +0 -1
  1027. package/build/server/chunks/nodes/10.js-B_qe3jqp.js +0 -27
  1028. package/build/server/chunks/nodes/10.js-B_qe3jqp.js.map +0 -1
  1029. package/build/server/chunks/nodes/11.js-DKBFpcmi.js +0 -33
  1030. package/build/server/chunks/nodes/11.js-DKBFpcmi.js.map +0 -1
  1031. package/build/server/chunks/nodes/12.js-CIR5plvu.js +0 -25
  1032. package/build/server/chunks/nodes/12.js-CIR5plvu.js.map +0 -1
  1033. package/build/server/chunks/nodes/13.js-DUB1nn4Q.js +0 -25
  1034. package/build/server/chunks/nodes/13.js-DUB1nn4Q.js.map +0 -1
  1035. package/build/server/chunks/nodes/14.js-BkFXcvWj.js +0 -25
  1036. package/build/server/chunks/nodes/14.js-BkFXcvWj.js.map +0 -1
  1037. package/build/server/chunks/nodes/15.js-DC17kxQH.js +0 -34
  1038. package/build/server/chunks/nodes/15.js-DC17kxQH.js.map +0 -1
  1039. package/build/server/chunks/nodes/16.js-BJK8XXIU.js +0 -28
  1040. package/build/server/chunks/nodes/16.js-BJK8XXIU.js.map +0 -1
  1041. package/build/server/chunks/nodes/17.js-BraBnwcD.js +0 -9
  1042. package/build/server/chunks/nodes/17.js-BraBnwcD.js.map +0 -1
  1043. package/build/server/chunks/nodes/18.js-DFqm24ZC.js +0 -29
  1044. package/build/server/chunks/nodes/18.js-DFqm24ZC.js.map +0 -1
  1045. package/build/server/chunks/nodes/19.js-Bq8mvhB0.js +0 -27
  1046. package/build/server/chunks/nodes/19.js-Bq8mvhB0.js.map +0 -1
  1047. package/build/server/chunks/nodes/2.js-D_XRKv5J.js +0 -27
  1048. package/build/server/chunks/nodes/2.js-D_XRKv5J.js.map +0 -1
  1049. package/build/server/chunks/nodes/20.js-CjT_yH6n.js +0 -28
  1050. package/build/server/chunks/nodes/20.js-CjT_yH6n.js.map +0 -1
  1051. package/build/server/chunks/nodes/21.js-DUXbFVve.js +0 -36
  1052. package/build/server/chunks/nodes/21.js-DUXbFVve.js.map +0 -1
  1053. package/build/server/chunks/nodes/22.js-BosxmNWV.js +0 -29
  1054. package/build/server/chunks/nodes/22.js-BosxmNWV.js.map +0 -1
  1055. package/build/server/chunks/nodes/23.js-B6OUyQos.js +0 -26
  1056. package/build/server/chunks/nodes/23.js-B6OUyQos.js.map +0 -1
  1057. package/build/server/chunks/nodes/24.js-BEXuWJFF.js +0 -27
  1058. package/build/server/chunks/nodes/24.js-BEXuWJFF.js.map +0 -1
  1059. package/build/server/chunks/nodes/25.js-D9kti8c3.js +0 -29
  1060. package/build/server/chunks/nodes/25.js-D9kti8c3.js.map +0 -1
  1061. package/build/server/chunks/nodes/26.js-B34LSHk-.js +0 -25
  1062. package/build/server/chunks/nodes/26.js-B34LSHk-.js.map +0 -1
  1063. package/build/server/chunks/nodes/28.js-QlQmEkBC.js +0 -25
  1064. package/build/server/chunks/nodes/28.js-QlQmEkBC.js.map +0 -1
  1065. package/build/server/chunks/nodes/29.js-CBp6r4K8.js +0 -25
  1066. package/build/server/chunks/nodes/29.js-CBp6r4K8.js.map +0 -1
  1067. package/build/server/chunks/nodes/3.js-CmpX8qxI.js +0 -9
  1068. package/build/server/chunks/nodes/3.js-CmpX8qxI.js.map +0 -1
  1069. package/build/server/chunks/nodes/30.js-DOeMNQi9.js +0 -28
  1070. package/build/server/chunks/nodes/30.js-DOeMNQi9.js.map +0 -1
  1071. package/build/server/chunks/nodes/31.js-CYGUex9S.js +0 -25
  1072. package/build/server/chunks/nodes/31.js-CYGUex9S.js.map +0 -1
  1073. package/build/server/chunks/nodes/32.js-vWsdngGn.js +0 -25
  1074. package/build/server/chunks/nodes/32.js-vWsdngGn.js.map +0 -1
  1075. package/build/server/chunks/nodes/33.js-D8bTS4_p.js +0 -25
  1076. package/build/server/chunks/nodes/33.js-D8bTS4_p.js.map +0 -1
  1077. package/build/server/chunks/nodes/5.js-D7JA1egX.js +0 -15
  1078. package/build/server/chunks/nodes/5.js-D7JA1egX.js.map +0 -1
  1079. package/build/server/chunks/nodes/6.js-CP3EFpRP.js +0 -25
  1080. package/build/server/chunks/nodes/6.js-CP3EFpRP.js.map +0 -1
  1081. package/build/server/chunks/nodes/7.js-CGVEjT6I.js +0 -28
  1082. package/build/server/chunks/nodes/7.js-CGVEjT6I.js.map +0 -1
  1083. package/build/server/chunks/nodes/8.js-DdsK-01C.js +0 -31
  1084. package/build/server/chunks/nodes/8.js-DdsK-01C.js.map +0 -1
  1085. package/build/server/chunks/nodes/9.js-8eCx0Tws.js +0 -25
  1086. package/build/server/chunks/nodes/9.js-8eCx0Tws.js.map +0 -1
  1087. /package/build/client/_app/immutable/chunks/{CNiMEtW-2.js → CNiMEtW-.js} +0 -0
  1088. /package/build/client/_app/immutable/chunks/{CNiMEtW-2.js.br → CNiMEtW-.js.br} +0 -0
  1089. /package/build/client/_app/immutable/chunks/{CNiMEtW-2.js.gz → CNiMEtW-.js.gz} +0 -0
  1090. /package/build/client/_app/immutable/chunks/{Cdax9bCF.js → Cdax9bCF2.js} +0 -0
  1091. /package/build/client/_app/immutable/chunks/{Cdax9bCF.js.br → Cdax9bCF2.js.br} +0 -0
  1092. /package/build/client/_app/immutable/chunks/{Cdax9bCF.js.gz → Cdax9bCF2.js.gz} +0 -0
  1093. /package/build/client/_app/immutable/nodes/{0.6Opph0mX.js → 0.DcymCSVc.js} +0 -0
  1094. /package/build/client/_app/immutable/nodes/{0.6Opph0mX.js.br → 0.DcymCSVc.js.br} +0 -0
  1095. /package/build/client/_app/immutable/nodes/{0.6Opph0mX.js.gz → 0.DcymCSVc.js.gz} +0 -0
@@ -1,3762 +0,0 @@
1
- import { X as head, a4 as escape_html, $ as ensure_array_like, T as derived, a9 as store_get, W as attr, a2 as attr_class, _ as stringify, aa as unsubscribe_stores, a6 as bind_props, Z as spread_props, a8 as props_id, a0 as attributes, a3 as attr_style } from '../../../chunks/server.js-fxznQVe4.js';
2
- import '../../../chunks/src.js-B12bUNyu.js';
3
- import { D as DEFAULT_SHARE_LINK_MAX_SOLVES } from '../../../chunks/types.js-B_zdqlv_.js';
4
- import { f as createBitsAttrs, q as createId, a as boxWith, k as attachRef, v as boolToStrTrueOrUndef, p as mergeProps } from '../../../chunks/create-id.js-DZHvVzWu.js';
5
- import { I as Icon, c as cn } from '../../../chunks/utils2.js-RqmNbcNh.js';
6
- import { B as Button } from '../../../chunks/button.js-DbB0dwmm.js';
7
- import { A as Arrow_left } from '../../../chunks/arrow-left.js-STi78UNq.js';
8
- import { C as Check } from '../../../chunks/check.js-ZBkcmA-B.js';
9
- import { C as Circle } from '../../../chunks/circle.js-DN_KsZqP.js';
10
- import { U as User_plus, C as Copy } from '../../../chunks/user-plus.js-BkFlJcz_.js';
11
- import { D as Dialog_footer, U as Upload, F as File_up, P as Play } from '../../../chunks/dialog-footer.js-WWtvlInW.js';
12
- import { F as Folder_open } from '../../../chunks/folder-open.js-CJnc8m6o.js';
13
- import { S as Search, V as ViewToggle } from '../../../chunks/ViewToggle.js-BV0e_r1y.js';
14
- import { L as Link_2 } from '../../../chunks/link-2.js-BZDNkm4u.js';
15
- import { P as Plus } from '../../../chunks/plus.js-CyKPA-9j.js';
16
- import { S as Search$1 } from '../../../chunks/search.js-p8OoyQ2D.js';
17
- import { S as Settings } from '../../../chunks/settings.js-ClaRhfQF.js';
18
- import { T as Trash_2 } from '../../../chunks/trash-2.js-ByDxap-k.js';
19
- import { T as Triangle_alert } from '../../../chunks/triangle-alert.js-B55Ovp_J.js';
20
- import { U as Users } from '../../../chunks/users.js-BLt400qR.js';
21
- import { X } from '../../../chunks/x.js-DsqVhvY1.js';
22
- import { R as Root, A as Alert_dialog_content, a as Alert_dialog_header, c as Alert_dialog_title, d as Alert_dialog_description, b as Alert_dialog_footer, e as Alert_dialog_cancel, f as Alert_dialog_action } from '../../../chunks/alert-dialog.js-CvyPsOGm.js';
23
- import { R as Root$1, D as Dialog_content, a as Dialog_header, b as Dialog_title, c as Dialog_description } from '../../../chunks/dialog.js-DzX3UL2M.js';
24
- import { L as Label } from '../../../chunks/label.js-CJKpR7R4.js';
25
- import { d as Textarea, T as Tabs, a as Tabs_list, c as Tabs_trigger, b as Tabs_content } from '../../../chunks/tabs-trigger.js-BQ1gXeVJ.js';
26
- import { i as invalidateAll, g as goto } from '../../../chunks/client.js-DgveY-J7.js';
27
- import { S as SectionHeader } from '../../../chunks/SectionHeader.js-CHWtMRIN.js';
28
- import { E as EmptyState } from '../../../chunks/EmptyState.js-CjCy0_9x.js';
29
- import { B as Badge } from '../../../chunks/badge.js-BN79hFGD.js';
30
- import { I as Input } from '../../../chunks/input.js-nXGVOn5i.js';
31
- import { a as toast } from '../../../chunks/toast-state.svelte.js-DkqKrnCj.js';
32
- import { F as FilterableDropdown } from '../../../chunks/FilterableDropdown.js-D5qHOijP.js';
33
- import { p as page } from '../../../chunks/stores.js-hAdaKJlG.js';
34
- import { D as DefinitionCard, h as huesFor, m as monogram, f as formatUpdated, s as statusRing, a as statusDot } from '../../../chunks/DefinitionCard.js-4gzEHiRL.js';
35
- import { e as emailSubtitle, p as primaryLabel } from '../../../chunks/user-display.js-B3d-spft.js';
36
- import { U as UserAvatar } from '../../../chunks/UserAvatar.js-ZRWQAlFC.js';
37
- import '../../../chunks/uneval.js-sOjdN_Ot.js';
38
- import 'clsx';
39
- import 'zod';
40
- import 'tailwind-merge';
41
- import 'tailwind-variants';
42
- import '../../../chunks/noop.js-_UEo7ePu.js';
43
- import '../../../chunks/index-server2.js-UaiofxX-.js';
44
- import '../../../chunks/scroll-lock.js-BRpQ9hSI.js';
45
- import '../../../chunks/index-server.js-gS5cdWCH.js';
46
- import '../../../chunks/events.js-DCr2n6fH.js';
47
- import '../../../chunks/dialog-description.js-z7PmnPp9.js';
48
- import '../../../chunks/shared.js-JbueMana.js';
49
- import '@sveltejs/kit/internal';
50
- import '../../../chunks/exports.js-CPkIuisC.js';
51
- import '../../../chunks/routing.js-C2Q7p_y3.js';
52
- import '../../../chunks/internal2.js-DITt-077.js';
53
- import '../../../chunks/legacy-client.js-B6XuTI3b.js';
54
- import '@sveltejs/kit/internal/server';
55
- import '../../../chunks/chevron-down.js-BDXhP2jb.js';
56
- import '../../../chunks/arrow-right.js-CJ2cNjuS.js';
57
- import '../../../chunks/server2.js-B1Z22rWd.js';
58
- import '../../../chunks/star.js-DiKFn7P4.js';
59
-
60
- //#region ../../node_modules/.pnpm/@lucide+svelte@1.31.0_svelte@5.56.9_@typescript-eslint+types@8.67.0_/node_modules/@lucide/svelte/dist/icons/cloud-upload.svelte
61
- function Cloud_upload($$renderer, $$props) {
62
- let { $$slots, $$events, ...props } = $$props;
63
- Icon($$renderer, spread_props([
64
- { name: "cloud-upload" },
65
- props,
66
- { iconNode: [
67
- ["path", { "d": "M12 13v8" }],
68
- ["path", { "d": "M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242" }],
69
- ["path", { "d": "m8 17 4-4 4 4" }]
70
- ] }
71
- ]));
72
- }
73
- //#endregion
74
- //#region ../../node_modules/.pnpm/@lucide+svelte@1.31.0_svelte@5.56.9_@typescript-eslint+types@8.67.0_/node_modules/@lucide/svelte/dist/icons/ellipsis.svelte
75
- function Ellipsis($$renderer, $$props) {
76
- let { $$slots, $$events, ...props } = $$props;
77
- Icon($$renderer, spread_props([
78
- { name: "ellipsis" },
79
- props,
80
- { iconNode: [
81
- ["circle", {
82
- "cx": "12",
83
- "cy": "12",
84
- "r": "1"
85
- }],
86
- ["circle", {
87
- "cx": "19",
88
- "cy": "12",
89
- "r": "1"
90
- }],
91
- ["circle", {
92
- "cx": "5",
93
- "cy": "12",
94
- "r": "1"
95
- }]
96
- ] }
97
- ]));
98
- }
99
- //#endregion
100
- //#region ../../node_modules/.pnpm/@lucide+svelte@1.31.0_svelte@5.56.9_@typescript-eslint+types@8.67.0_/node_modules/@lucide/svelte/dist/icons/image.svelte
101
- function Image($$renderer, $$props) {
102
- let { $$slots, $$events, ...props } = $$props;
103
- Icon($$renderer, spread_props([
104
- { name: "image" },
105
- props,
106
- { iconNode: [
107
- ["rect", {
108
- "width": "18",
109
- "height": "18",
110
- "x": "3",
111
- "y": "3",
112
- "rx": "2",
113
- "ry": "2"
114
- }],
115
- ["circle", {
116
- "cx": "9",
117
- "cy": "9",
118
- "r": "2"
119
- }],
120
- ["path", { "d": "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" }]
121
- ] }
122
- ]));
123
- }
124
- //#endregion
125
- //#region ../../node_modules/.pnpm/@lucide+svelte@1.31.0_svelte@5.56.9_@typescript-eslint+types@8.67.0_/node_modules/@lucide/svelte/dist/icons/share-2.svelte
126
- function Share_2($$renderer, $$props) {
127
- let { $$slots, $$events, ...props } = $$props;
128
- Icon($$renderer, spread_props([
129
- { name: "share-2" },
130
- props,
131
- { iconNode: [
132
- ["circle", {
133
- "cx": "18",
134
- "cy": "5",
135
- "r": "3"
136
- }],
137
- ["circle", {
138
- "cx": "6",
139
- "cy": "12",
140
- "r": "3"
141
- }],
142
- ["circle", {
143
- "cx": "18",
144
- "cy": "19",
145
- "r": "3"
146
- }],
147
- ["line", {
148
- "x1": "8.59",
149
- "x2": "15.42",
150
- "y1": "13.51",
151
- "y2": "17.49"
152
- }],
153
- ["line", {
154
- "x1": "15.41",
155
- "x2": "8.59",
156
- "y1": "6.51",
157
- "y2": "10.49"
158
- }]
159
- ] }
160
- ]));
161
- }
162
- //#endregion
163
- //#region ../../node_modules/.pnpm/bits-ui@2.18.1_@internationalized+date@3.12.3_@sveltejs+kit@2.70.2_@opentelemetry+api@1_4e0c45487324ec3761a3b8a2bad76a91/node_modules/bits-ui/dist/bits/separator/separator.svelte.js
164
- var separatorAttrs = createBitsAttrs({
165
- component: "separator",
166
- parts: ["root"]
167
- });
168
- var SeparatorRootState = class SeparatorRootState {
169
- static create(opts) {
170
- return new SeparatorRootState(opts);
171
- }
172
- opts;
173
- attachment;
174
- constructor(opts) {
175
- this.opts = opts;
176
- this.attachment = attachRef(opts.ref);
177
- }
178
- #props = derived(() => ({
179
- id: this.opts.id.current,
180
- role: this.opts.decorative.current ? "none" : "separator",
181
- "aria-orientation": this.opts.orientation.current,
182
- "aria-hidden": boolToStrTrueOrUndef(this.opts.decorative.current),
183
- "data-orientation": this.opts.orientation.current,
184
- [separatorAttrs.root]: "",
185
- ...this.attachment
186
- }));
187
- get props() {
188
- return this.#props();
189
- }
190
- set props($$value) {
191
- return this.#props($$value);
192
- }
193
- };
194
- //#endregion
195
- //#region ../../node_modules/.pnpm/bits-ui@2.18.1_@internationalized+date@3.12.3_@sveltejs+kit@2.70.2_@opentelemetry+api@1_4e0c45487324ec3761a3b8a2bad76a91/node_modules/bits-ui/dist/bits/separator/components/separator.svelte
196
- function Separator$1($$renderer, $$props) {
197
- $$renderer.component(($$renderer) => {
198
- const uid = props_id($$renderer);
199
- let { id = createId(uid), ref = null, child, children, decorative = false, orientation = "horizontal", $$slots, $$events, ...restProps } = $$props;
200
- const rootState = SeparatorRootState.create({
201
- ref: boxWith(() => ref, (v) => ref = v),
202
- id: boxWith(() => id),
203
- decorative: boxWith(() => decorative),
204
- orientation: boxWith(() => orientation)
205
- });
206
- const mergedProps = derived(() => mergeProps(restProps, rootState.props));
207
- if (child) {
208
- $$renderer.push("<!--[0-->");
209
- child($$renderer, { props: mergedProps() });
210
- $$renderer.push(`<!---->`);
211
- } else {
212
- $$renderer.push("<!--[-1-->");
213
- $$renderer.push(`<div${attributes({ ...mergedProps() })}>`);
214
- children?.($$renderer);
215
- $$renderer.push(`<!----></div>`);
216
- }
217
- $$renderer.push(`<!--]-->`);
218
- bind_props($$props, { ref });
219
- });
220
- }
221
- //#endregion
222
- //#region ../ui/dist/components/primitives/separator/separator.svelte
223
- function Separator($$renderer, $$props) {
224
- $$renderer.component(($$renderer) => {
225
- let { ref = null, class: className, "data-slot": dataSlot = "separator", $$slots, $$events, ...restProps } = $$props;
226
- let $$settled = true;
227
- let $$inner_renderer;
228
- function $$render_inner($$renderer) {
229
- if (Separator$1) {
230
- $$renderer.push("<!--[-->");
231
- Separator$1($$renderer, spread_props([
232
- {
233
- "data-slot": dataSlot,
234
- 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)
235
- },
236
- restProps,
237
- {
238
- get ref() {
239
- return ref;
240
- },
241
- set ref($$value) {
242
- ref = $$value;
243
- $$settled = false;
244
- }
245
- }
246
- ]));
247
- $$renderer.push("<!--]-->");
248
- } else {
249
- $$renderer.push("<!--[!-->");
250
- $$renderer.push("<!--]-->");
251
- }
252
- }
253
- do {
254
- $$settled = true;
255
- $$inner_renderer = $$renderer.copy();
256
- $$render_inner($$inner_renderer);
257
- } while (!$$settled);
258
- $$renderer.subsume($$inner_renderer);
259
- bind_props($$props, { ref });
260
- });
261
- }
262
- //#endregion
263
- //#region ../ui/dist/components/primitives/drawer/Drawer.svelte
264
- function Drawer($$renderer, $$props) {
265
- $$renderer.component(($$renderer) => {
266
- let { onClose, width = "w-125", ariaLabel = "Close drawer", children } = $$props;
267
- $$renderer.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`)}>`);
268
- children($$renderer);
269
- $$renderer.push(`<!----></div>`);
270
- });
271
- }
272
- //#endregion
273
- //#region ../ui/dist/components/primitives/ImageUploadField.svelte
274
- function ImageUploadField($$renderer, $$props) {
275
- $$renderer.component(($$renderer) => {
276
- let { mode = "url", value = "", disabled = false, isUploading = false, hasFile = false, onModeChange, onUpload, onUrlChange, onFileSelected, inputRef = void 0 } = $$props;
277
- $$renderer.push(`<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border">`);
278
- Button($$renderer, {
279
- size: "sm",
280
- variant: mode !== "upload" ? "default" : "ghost",
281
- onclick: () => onModeChange?.("url"),
282
- class: "h-7 text-xs flex-1",
283
- children: ($$renderer) => {
284
- $$renderer.push(`<!---->URL`);
285
- },
286
- $$slots: { default: true }
287
- });
288
- $$renderer.push(`<!----> `);
289
- Button($$renderer, {
290
- size: "sm",
291
- variant: mode === "upload" ? "default" : "ghost",
292
- onclick: () => onModeChange?.("upload"),
293
- class: "h-7 text-xs flex-1",
294
- children: ($$renderer) => {
295
- $$renderer.push(`<!---->Upload File`);
296
- },
297
- $$slots: { default: true }
298
- });
299
- $$renderer.push(`<!----></div> `);
300
- if (mode === "upload") {
301
- $$renderer.push("<!--[0-->");
302
- $$renderer.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"/> `);
303
- Button($$renderer, {
304
- size: "sm",
305
- disabled: disabled || !hasFile || isUploading,
306
- onclick: onUpload,
307
- class: "shrink-0",
308
- children: ($$renderer) => {
309
- Upload($$renderer, { class: "mr-2 h-4 w-4" });
310
- $$renderer.push(`<!----> <span class="sm:inline hidden">${escape_html(isUploading ? "Uploading…" : "Upload")}</span>`);
311
- },
312
- $$slots: { default: true }
313
- });
314
- $$renderer.push(`<!----></div>`);
315
- } else {
316
- $$renderer.push("<!--[-1-->");
317
- Input($$renderer, {
318
- type: "text",
319
- value,
320
- disabled,
321
- oninput: (e) => onUrlChange?.(e.target.value),
322
- placeholder: "https://..."
323
- });
324
- }
325
- $$renderer.push(`<!--]--></div>`);
326
- bind_props($$props, { inputRef });
327
- });
328
- }
329
- //#endregion
330
- //#region src/lib/components/definitions/ProjectPicker.svelte
331
- function ProjectPicker($$renderer, $$props) {
332
- $$renderer.component(($$renderer) => {
333
- let { projects, value, onChange, id, placeholder = "Select a project" } = $$props;
334
- const items = derived(() => projects.map((p) => ({
335
- id: p.id,
336
- label: p.name
337
- })));
338
- FilterableDropdown($$renderer, {
339
- items: items(),
340
- value,
341
- onChange,
342
- id,
343
- placeholder,
344
- triggerIcon: Folder_open,
345
- searchPlaceholder: "Filter projects"
346
- });
347
- });
348
- }
349
- //#endregion
350
- //#region src/lib/components/definitions/AddDefinitionDialog.svelte
351
- function AddDefinitionDialog($$renderer, $$props) {
352
- $$renderer.component(($$renderer) => {
353
- let { open = false, isAdding = false, projects = [], defaultProjectId, computeServers = [], defaultComputeServerId = null, showProjectDropdown = false, onOpenChange} = $$props;
354
- let displayName = "";
355
- let description = "";
356
- let category = "";
357
- let tags = [];
358
- let coverImage = "";
359
- let imageMode = "url";
360
- let selectedProjectId = "";
361
- let selectedComputeServerId = "";
362
- let imageInput = void 0;
363
- let imageHasFile = false;
364
- let validating = false;
365
- let validationError = null;
366
- let validationSchema = null;
367
- async function handleSubmit() {
368
- if (!displayName.trim()) {
369
- toast.error("Display name is required");
370
- return;
371
- }
372
- toast.error("A Grasshopper file is required");
373
- }
374
- function resetForm() {
375
- displayName = "";
376
- description = "";
377
- category = "";
378
- tags = [];
379
- coverImage = "";
380
- imageMode = "url";
381
- selectedProjectId = defaultProjectId ?? "";
382
- selectedComputeServerId = "";
383
- validating = false;
384
- validationError = null;
385
- validationSchema = null;
386
- if (imageInput) imageInput.value = "";
387
- imageHasFile = false;
388
- }
389
- function handleOpenChange(newOpen) {
390
- if (!newOpen) resetForm();
391
- onOpenChange?.(newOpen);
392
- }
393
- let $$settled = true;
394
- let $$inner_renderer;
395
- function $$render_inner($$renderer) {
396
- if (Root$1) {
397
- $$renderer.push("<!--[-->");
398
- Root$1($$renderer, {
399
- open,
400
- onOpenChange: handleOpenChange,
401
- children: ($$renderer) => {
402
- if (Dialog_content) {
403
- $$renderer.push("<!--[-->");
404
- Dialog_content($$renderer, {
405
- class: "max-w-xl",
406
- children: ($$renderer) => {
407
- if (Dialog_header) {
408
- $$renderer.push("<!--[-->");
409
- Dialog_header($$renderer, {
410
- children: ($$renderer) => {
411
- if (Dialog_title) {
412
- $$renderer.push("<!--[-->");
413
- Dialog_title($$renderer, {
414
- children: ($$renderer) => {
415
- $$renderer.push(`<!---->Add New Definition`);
416
- },
417
- $$slots: { default: true }
418
- });
419
- $$renderer.push("<!--]-->");
420
- } else {
421
- $$renderer.push("<!--[!-->");
422
- $$renderer.push("<!--]-->");
423
- }
424
- $$renderer.push(` `);
425
- if (Dialog_description) {
426
- $$renderer.push("<!--[-->");
427
- Dialog_description($$renderer, {
428
- children: ($$renderer) => {
429
- $$renderer.push(`<!---->Upload a Grasshopper file and fill in the metadata.`);
430
- },
431
- $$slots: { default: true }
432
- });
433
- $$renderer.push("<!--]-->");
434
- } else {
435
- $$renderer.push("<!--[!-->");
436
- $$renderer.push("<!--]-->");
437
- }
438
- },
439
- $$slots: { default: true }
440
- });
441
- $$renderer.push("<!--]-->");
442
- } else {
443
- $$renderer.push("<!--[!-->");
444
- $$renderer.push("<!--]-->");
445
- }
446
- $$renderer.push(` <div class="space-y-4">`);
447
- if (showProjectDropdown || computeServers.length > 0) {
448
- $$renderer.push("<!--[0-->");
449
- $$renderer.push(`<div${attr_class(`grid gap-3 ${showProjectDropdown && computeServers.length > 0 ? "sm:grid-cols-2" : ""}`)}>`);
450
- if (showProjectDropdown) {
451
- $$renderer.push("<!--[0-->");
452
- $$renderer.push(`<div class="space-y-1">`);
453
- Label($$renderer, {
454
- for: "new-project",
455
- children: ($$renderer) => {
456
- $$renderer.push(`<!---->Project`);
457
- },
458
- $$slots: { default: true }
459
- });
460
- $$renderer.push(`<!----> `);
461
- ProjectPicker($$renderer, {
462
- id: "new-project",
463
- projects,
464
- value: selectedProjectId,
465
- onChange: (id) => selectedProjectId = id
466
- });
467
- $$renderer.push(`<!----></div>`);
468
- } else if (defaultProjectId) {
469
- $$renderer.push("<!--[1-->");
470
- const selectedProject = projects.find((p) => p.id === defaultProjectId);
471
- $$renderer.push(`<div class="space-y-1">`);
472
- Label($$renderer, {
473
- children: ($$renderer) => {
474
- $$renderer.push(`<!---->Project`);
475
- },
476
- $$slots: { default: true }
477
- });
478
- $$renderer.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>`);
479
- } else $$renderer.push("<!--[-1-->");
480
- $$renderer.push(`<!--]--> `);
481
- if (computeServers.length > 0) {
482
- $$renderer.push("<!--[0-->");
483
- $$renderer.push(`<div class="space-y-1">`);
484
- Label($$renderer, {
485
- for: "new-server",
486
- children: ($$renderer) => {
487
- $$renderer.push(`<!---->Compute Server`);
488
- },
489
- $$slots: { default: true }
490
- });
491
- $$renderer.push(`<!----> `);
492
- $$renderer.select({
493
- id: "new-server",
494
- value: selectedComputeServerId || (defaultComputeServerId ?? ""),
495
- onchange: (e) => {
496
- const picked = e.currentTarget.value;
497
- selectedComputeServerId = picked === defaultComputeServerId ? "" : picked;
498
- },
499
- 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"
500
- }, ($$renderer) => {
501
- $$renderer.push(`<!--[-->`);
502
- const each_array = ensure_array_like(computeServers);
503
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
504
- let s = each_array[$$index];
505
- $$renderer.option({ value: s.id }, ($$renderer) => {
506
- $$renderer.push(`${escape_html(s.label)}${escape_html(s.id === defaultComputeServerId ? " (Default)" : "")}`);
507
- });
508
- }
509
- $$renderer.push(`<!--]-->`);
510
- });
511
- $$renderer.push(`</div>`);
512
- } else $$renderer.push("<!--[-1-->");
513
- $$renderer.push(`<!--]--></div>`);
514
- } else $$renderer.push("<!--[-1-->");
515
- $$renderer.push(`<!--]--> <div class="space-y-2">`);
516
- Label($$renderer, {
517
- for: "new-file",
518
- children: ($$renderer) => {
519
- $$renderer.push(`<!---->Grasshopper File <span class="text-destructive">*</span>`);
520
- },
521
- $$slots: { default: true }
522
- });
523
- $$renderer.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"/> `);
524
- if (validating) {
525
- $$renderer.push("<!--[0-->");
526
- $$renderer.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>`);
527
- } else if (validationError) {
528
- $$renderer.push("<!--[1-->");
529
- $$renderer.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>`);
530
- } else if (validationSchema) {
531
- $$renderer.push("<!--[2-->");
532
- const inputCount = validationSchema.inputs?.length ?? 0;
533
- const outputCount = validationSchema.outputs?.length ?? 0;
534
- $$renderer.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(inputCount)} input${escape_html(inputCount === 1 ? "" : "s")},
535
- ${escape_html(outputCount)} output${escape_html(outputCount === 1 ? "" : "s")}</p></div></div>`);
536
- } else $$renderer.push("<!--[-1-->");
537
- $$renderer.push(`<!--]--></div> <div class="space-y-2">`);
538
- Label($$renderer, {
539
- for: "new-dn",
540
- children: ($$renderer) => {
541
- $$renderer.push(`<!---->Display Name <span class="text-destructive">*</span>`);
542
- },
543
- $$slots: { default: true }
544
- });
545
- $$renderer.push(`<!----> `);
546
- Input($$renderer, {
547
- id: "new-dn",
548
- type: "text",
549
- placeholder: "e.g., Parametric Tower",
550
- get value() {
551
- return displayName;
552
- },
553
- set value($$value) {
554
- displayName = $$value;
555
- $$settled = false;
556
- }
557
- });
558
- $$renderer.push(`<!----></div> <div class="space-y-2">`);
559
- Label($$renderer, {
560
- for: "new-desc",
561
- children: ($$renderer) => {
562
- $$renderer.push(`<!---->Description`);
563
- },
564
- $$slots: { default: true }
565
- });
566
- $$renderer.push(`<!----> `);
567
- Textarea($$renderer, {
568
- id: "new-desc",
569
- rows: 3,
570
- placeholder: "Describe what this definition does…",
571
- get value() {
572
- return description;
573
- },
574
- set value($$value) {
575
- description = $$value;
576
- $$settled = false;
577
- }
578
- });
579
- $$renderer.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">`);
580
- Label($$renderer, {
581
- for: "new-cat",
582
- children: ($$renderer) => {
583
- $$renderer.push(`<!---->Category`);
584
- },
585
- $$slots: { default: true }
586
- });
587
- $$renderer.push(`<!----> <p class="text-muted-foreground text-xs">${escape_html(category?.length ?? 0)}/40</p></div> `);
588
- Input($$renderer, {
589
- id: "new-cat",
590
- type: "text",
591
- maxlength: 40,
592
- placeholder: "e.g., Architecture",
593
- get value() {
594
- return category;
595
- },
596
- set value($$value) {
597
- category = $$value;
598
- $$settled = false;
599
- }
600
- });
601
- $$renderer.push(`<!----></div> <div class="space-y-1"><div class="flex items-center justify-between">`);
602
- Label($$renderer, {
603
- for: "new-tags",
604
- children: ($$renderer) => {
605
- $$renderer.push(`<!---->Tags`);
606
- },
607
- $$slots: { default: true }
608
- });
609
- $$renderer.push(`<!----> <p class="text-muted-foreground text-xs">${escape_html(tags.length)}/5</p></div> `);
610
- if (tags.length > 0) {
611
- $$renderer.push("<!--[0-->");
612
- $$renderer.push(`<div class="mb-2 flex flex-wrap gap-2"><!--[-->`);
613
- const each_array_1 = ensure_array_like(tags);
614
- for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {
615
- let tag = each_array_1[$$index_1];
616
- Badge($$renderer, {
617
- variant: "outline",
618
- class: "cursor-pointer gap-1",
619
- children: ($$renderer) => {
620
- $$renderer.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">`);
621
- X($$renderer, { class: "h-3 w-3" });
622
- $$renderer.push(`<!----></button>`);
623
- },
624
- $$slots: { default: true }
625
- });
626
- }
627
- $$renderer.push(`<!--]--></div>`);
628
- } else $$renderer.push("<!--[-1-->");
629
- $$renderer.push(`<!--]--> `);
630
- Input($$renderer, {
631
- id: "new-tags",
632
- type: "text",
633
- placeholder: "Add tag and press Enter",
634
- disabled: tags.length >= 5,
635
- onkeydown: (e) => {
636
- if (e.key === "Enter") {
637
- e.preventDefault();
638
- const input = e.currentTarget;
639
- const tag = input.value.trim();
640
- if (tag && !tags.includes(tag) && tags.length < 5) {
641
- tags = [...tags, tag];
642
- input.value = "";
643
- }
644
- }
645
- }
646
- });
647
- $$renderer.push(`<!----></div></div> <div class="space-y-2">`);
648
- Label($$renderer, {
649
- children: ($$renderer) => {
650
- $$renderer.push(`<!---->Cover Image`);
651
- },
652
- $$slots: { default: true }
653
- });
654
- $$renderer.push(`<!----> `);
655
- ImageUploadField($$renderer, {
656
- mode: imageMode,
657
- value: coverImage,
658
- hasFile: imageHasFile,
659
- onModeChange: (m) => imageMode = m,
660
- onUpload: () => {},
661
- onFileSelected: () => imageHasFile = !!imageInput?.files?.length,
662
- onUrlChange: (url) => coverImage = url,
663
- get inputRef() {
664
- return imageInput;
665
- },
666
- set inputRef($$value) {
667
- imageInput = $$value;
668
- $$settled = false;
669
- }
670
- });
671
- $$renderer.push(`<!----></div></div> `);
672
- if (Dialog_footer) {
673
- $$renderer.push("<!--[-->");
674
- Dialog_footer($$renderer, {
675
- class: "gap-2 sm:justify-end",
676
- children: ($$renderer) => {
677
- Button($$renderer, {
678
- variant: "outline",
679
- onclick: () => onOpenChange?.(false),
680
- children: ($$renderer) => {
681
- $$renderer.push(`<!---->Cancel`);
682
- },
683
- $$slots: { default: true }
684
- });
685
- $$renderer.push(`<!----> `);
686
- Button($$renderer, {
687
- onclick: handleSubmit,
688
- disabled: isAdding || validating || !validationSchema,
689
- children: ($$renderer) => {
690
- $$renderer.push(`<!---->${escape_html(isAdding ? "Creating…" : validating ? "Validating…" : "Create Definition")}`);
691
- },
692
- $$slots: { default: true }
693
- });
694
- $$renderer.push(`<!---->`);
695
- },
696
- $$slots: { default: true }
697
- });
698
- $$renderer.push("<!--]-->");
699
- } else {
700
- $$renderer.push("<!--[!-->");
701
- $$renderer.push("<!--]-->");
702
- }
703
- },
704
- $$slots: { default: true }
705
- });
706
- $$renderer.push("<!--]-->");
707
- } else {
708
- $$renderer.push("<!--[!-->");
709
- $$renderer.push("<!--]-->");
710
- }
711
- },
712
- $$slots: { default: true }
713
- });
714
- $$renderer.push("<!--]-->");
715
- } else {
716
- $$renderer.push("<!--[!-->");
717
- $$renderer.push("<!--]-->");
718
- }
719
- }
720
- do {
721
- $$settled = true;
722
- $$inner_renderer = $$renderer.copy();
723
- $$render_inner($$inner_renderer);
724
- } while (!$$settled);
725
- $$renderer.subsume($$inner_renderer);
726
- });
727
- }
728
- //#endregion
729
- //#region src/routes/projects/_components/ProjectSidebar.svelte
730
- function ProjectSidebar($$renderer, $$props) {
731
- $$renderer.component(($$renderer) => {
732
- let { projects, records, activeProjectId, canManageProjects} = $$props;
733
- let filterQuery = "";
734
- const filteredProjects = derived(() => {
735
- const q = filterQuery.trim().toLowerCase();
736
- if (!q) return projects;
737
- return projects.filter((p) => p.name.toLowerCase().includes(q));
738
- });
739
- let $$settled = true;
740
- let $$inner_renderer;
741
- function $$render_inner($$renderer) {
742
- $$renderer.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> `);
743
- if (canManageProjects) {
744
- $$renderer.push("<!--[0-->");
745
- $$renderer.push(`<button class="text-muted-foreground hover:text-foreground rounded p-0.5 transition-colors" title="New project" aria-label="New project">`);
746
- Plus($$renderer, { class: "h-3.5 w-3.5" });
747
- $$renderer.push(`<!----></button>`);
748
- } else $$renderer.push("<!--[-1-->");
749
- $$renderer.push(`<!--]--></div> `);
750
- $$renderer.push("<!--[-1-->");
751
- $$renderer.push(`<!--]--> `);
752
- if (projects.length > 4) {
753
- $$renderer.push("<!--[0-->");
754
- $$renderer.push(`<div class="relative mx-3 mb-2">`);
755
- Search$1($$renderer, { class: "text-muted-foreground pointer-events-none absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2" });
756
- $$renderer.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>`);
757
- } else $$renderer.push("<!--[-1-->");
758
- $$renderer.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"}`)}>`);
759
- if (activeProjectId === null) {
760
- $$renderer.push("<!--[0-->");
761
- $$renderer.push(`<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>`);
762
- } else $$renderer.push("<!--[-1-->");
763
- $$renderer.push(`<!--]--> `);
764
- Folder_open($$renderer, { class: "h-3.5 w-3.5 shrink-0 opacity-70" });
765
- $$renderer.push(`<!----> <span class="flex-1 truncate text-sm font-medium">All projects</span></button> `);
766
- if (filteredProjects().length > 0) {
767
- $$renderer.push("<!--[0-->");
768
- $$renderer.push(`<div class="border-border/60 my-2 border-t"></div>`);
769
- } else $$renderer.push("<!--[-1-->");
770
- $$renderer.push(`<!--]--> <!--[-->`);
771
- const each_array = ensure_array_like(filteredProjects());
772
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
773
- let project = each_array[$$index];
774
- const isActive = activeProjectId === project.id;
775
- const defCount = records.filter((r) => r.projectId === project.id).length;
776
- $$renderer.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"}`)}>`);
777
- if (isActive) {
778
- $$renderer.push("<!--[0-->");
779
- $$renderer.push(`<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>`);
780
- } else $$renderer.push("<!--[-1-->");
781
- $$renderer.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>`);
782
- }
783
- $$renderer.push(`<!--]--> `);
784
- if (projects.length === 0) {
785
- $$renderer.push("<!--[0-->");
786
- $$renderer.push(`<p class="text-muted-foreground px-2 py-4 text-center text-xs">No projects yet</p>`);
787
- } else if (filteredProjects().length === 0 && filterQuery);
788
- else $$renderer.push("<!--[-1-->");
789
- $$renderer.push(`<!--]--></nav></aside>`);
790
- }
791
- do {
792
- $$settled = true;
793
- $$inner_renderer = $$renderer.copy();
794
- $$render_inner($$inner_renderer);
795
- } while (!$$settled);
796
- $$renderer.subsume($$inner_renderer);
797
- });
798
- }
799
- //#endregion
800
- //#region src/routes/projects/_components/AddMemberPicker.svelte
801
- function AddMemberPicker($$renderer, $$props) {
802
- $$renderer.component(($$renderer) => {
803
- let { availableUsers} = $$props;
804
- let query = "";
805
- let highlighted = 0;
806
- const matches = derived(() => {
807
- const q = query.trim().toLowerCase();
808
- if (!q) return availableUsers.slice(0, 50);
809
- return availableUsers.filter((u) => {
810
- const name = (u.displayName ?? "").toLowerCase();
811
- const email = (u.email ?? "").toLowerCase();
812
- return name.includes(q) || email.includes(q);
813
- }).slice(0, 50);
814
- });
815
- function userLabel(u) {
816
- return primaryLabel(u, u.id.slice(0, 8));
817
- }
818
- $$renderer.push(`<div class="border-border bg-card rounded-md border">`);
819
- {
820
- $$renderer.push("<!--[0-->");
821
- $$renderer.push(`<div class="border-border relative border-b">`);
822
- Search$1($$renderer, { class: "text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-3.5 w-3.5 -translate-y-1/2" });
823
- $$renderer.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">`);
824
- X($$renderer, { class: "h-3.5 w-3.5" });
825
- $$renderer.push(`<!----></button></div> <div class="max-h-60 overflow-y-auto py-1">`);
826
- if (matches().length === 0) {
827
- $$renderer.push("<!--[0-->");
828
- $$renderer.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>`);
829
- } else {
830
- $$renderer.push("<!--[-1-->");
831
- $$renderer.push(`<!--[-->`);
832
- const each_array = ensure_array_like(matches());
833
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
834
- let user = each_array[i];
835
- $$renderer.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"}`)}>`);
836
- UserAvatar($$renderer, {
837
- name: userLabel(user),
838
- size: "sm"
839
- });
840
- $$renderer.push(`<!----> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium">${escape_html(userLabel(user))}</p> `);
841
- if (emailSubtitle(user)) {
842
- $$renderer.push("<!--[0-->");
843
- $$renderer.push(`<p class="text-muted-foreground truncate font-mono text-xs">${escape_html(user.email)}</p>`);
844
- } else $$renderer.push("<!--[-1-->");
845
- $$renderer.push(`<!--]--></div></button>`);
846
- }
847
- $$renderer.push(`<!--]-->`);
848
- }
849
- $$renderer.push(`<!--]--></div>`);
850
- }
851
- $$renderer.push(`<!--]--></div>`);
852
- });
853
- }
854
- //#endregion
855
- //#region src/routes/projects/_components/ProjectSettingsDialog.svelte
856
- function ProjectSettingsDialog($$renderer, $$props) {
857
- $$renderer.component(($$renderer) => {
858
- let { project, users, open, onOpenChange, onSave, onDelete, onUpdateMemberRole, onRemoveMember } = $$props;
859
- let name = project.name;
860
- let description = project.description ?? "";
861
- let visibility = project.visibility;
862
- let saving = false;
863
- let tab = "general";
864
- let showAddForm = false;
865
- let removing = null;
866
- function userLabel(userId) {
867
- const u = users.find((u) => u.id === userId);
868
- return u?.displayName ?? u?.email ?? userId.slice(0, 8);
869
- }
870
- function userEmail(userId) {
871
- return users.find((u) => u.id === userId)?.email;
872
- }
873
- const visibilityHint = derived(() => ({
874
- public: "Any authenticated user can solve this project.",
875
- org: "Any member of the organization can solve this project.",
876
- private: "Only the project members listed under Members can solve this project.",
877
- platform: "Managed by platform admins — access is granted per org or user."
878
- })[visibility]);
879
- const membersGrantAccess = derived(() => project.visibility === "private");
880
- const membershipMeaning = derived(() => ({
881
- public: "Every authenticated user can already view and solve this project, whether or not they are a member. Membership here only grants editing rights.",
882
- org: "Every member of the organization can already view and solve this project, whether or not they are a member here. Membership only grants editing rights.",
883
- private: "This project is private, so this list is exactly who can reach it.",
884
- platform: "Access to a platform project is granted by platform admins per org or user. Membership here only grants editing rights."
885
- })[project.visibility]);
886
- function removalWarning(userId) {
887
- const who = userLabel(userId);
888
- if (membersGrantAccess()) return `Remove ${who} from this project? They lose access to it.`;
889
- return `Remove ${who} from this project? They lose editing rights, but ${project.visibility === "org" ? "every member of the organization" : "anyone who can reach it"} keeps view and solve access — including them. Make the project private if you need to cut off access.`;
890
- }
891
- const availableUsers = derived(() => {
892
- const ids = new Set(project.members.map((m) => m.userId));
893
- return users.filter((u) => !ids.has(u.id));
894
- });
895
- async function save() {
896
- saving = true;
897
- try {
898
- await onSave(project.id, {
899
- name,
900
- description,
901
- visibility
902
- });
903
- } finally {
904
- saving = false;
905
- }
906
- }
907
- async function remove(userId) {
908
- if (!confirm(removalWarning(userId))) return;
909
- removing = userId;
910
- try {
911
- await onRemoveMember(project.id, userId);
912
- } finally {
913
- removing = null;
914
- }
915
- }
916
- let $$settled = true;
917
- let $$inner_renderer;
918
- function $$render_inner($$renderer) {
919
- if (Root$1) {
920
- $$renderer.push("<!--[-->");
921
- Root$1($$renderer, {
922
- open,
923
- onOpenChange,
924
- children: ($$renderer) => {
925
- if (Dialog_content) {
926
- $$renderer.push("<!--[-->");
927
- Dialog_content($$renderer, {
928
- class: "flex max-h-[calc(100dvh-2rem)] max-w-lg flex-col overflow-hidden",
929
- children: ($$renderer) => {
930
- if (Dialog_header) {
931
- $$renderer.push("<!--[-->");
932
- Dialog_header($$renderer, {
933
- class: "shrink-0",
934
- children: ($$renderer) => {
935
- if (Dialog_title) {
936
- $$renderer.push("<!--[-->");
937
- Dialog_title($$renderer, {
938
- children: ($$renderer) => {
939
- $$renderer.push(`<!---->Project settings`);
940
- },
941
- $$slots: { default: true }
942
- });
943
- $$renderer.push("<!--]-->");
944
- } else {
945
- $$renderer.push("<!--[!-->");
946
- $$renderer.push("<!--]-->");
947
- }
948
- $$renderer.push(` `);
949
- if (Dialog_description) {
950
- $$renderer.push("<!--[-->");
951
- Dialog_description($$renderer, {
952
- children: ($$renderer) => {
953
- $$renderer.push(`<!---->Manage this project's details and members.`);
954
- },
955
- $$slots: { default: true }
956
- });
957
- $$renderer.push("<!--]-->");
958
- } else {
959
- $$renderer.push("<!--[!-->");
960
- $$renderer.push("<!--]-->");
961
- }
962
- },
963
- $$slots: { default: true }
964
- });
965
- $$renderer.push("<!--]-->");
966
- } else {
967
- $$renderer.push("<!--[!-->");
968
- $$renderer.push("<!--]-->");
969
- }
970
- $$renderer.push(` `);
971
- if (Tabs) {
972
- $$renderer.push("<!--[-->");
973
- Tabs($$renderer, {
974
- class: "mt-2 flex h-120 min-h-0 flex-col",
975
- get value() {
976
- return tab;
977
- },
978
- set value($$value) {
979
- tab = $$value;
980
- $$settled = false;
981
- },
982
- children: ($$renderer) => {
983
- if (Tabs_list) {
984
- $$renderer.push("<!--[-->");
985
- Tabs_list($$renderer, {
986
- class: "grid w-full shrink-0 grid-cols-2",
987
- children: ($$renderer) => {
988
- if (Tabs_trigger) {
989
- $$renderer.push("<!--[-->");
990
- Tabs_trigger($$renderer, {
991
- value: "general",
992
- children: ($$renderer) => {
993
- $$renderer.push(`<!---->General`);
994
- },
995
- $$slots: { default: true }
996
- });
997
- $$renderer.push("<!--]-->");
998
- } else {
999
- $$renderer.push("<!--[!-->");
1000
- $$renderer.push("<!--]-->");
1001
- }
1002
- $$renderer.push(` `);
1003
- if (Tabs_trigger) {
1004
- $$renderer.push("<!--[-->");
1005
- Tabs_trigger($$renderer, {
1006
- value: "members",
1007
- class: "gap-1.5",
1008
- children: ($$renderer) => {
1009
- Users($$renderer, { class: "h-3.5 w-3.5" });
1010
- $$renderer.push(`<!----> Members <span class="text-muted-foreground ml-1 font-mono text-[11px]">${escape_html(project.members.length)}</span>`);
1011
- },
1012
- $$slots: { default: true }
1013
- });
1014
- $$renderer.push("<!--]-->");
1015
- } else {
1016
- $$renderer.push("<!--[!-->");
1017
- $$renderer.push("<!--]-->");
1018
- }
1019
- },
1020
- $$slots: { default: true }
1021
- });
1022
- $$renderer.push("<!--]-->");
1023
- } else {
1024
- $$renderer.push("<!--[!-->");
1025
- $$renderer.push("<!--]-->");
1026
- }
1027
- $$renderer.push(` `);
1028
- if (Tabs_content) {
1029
- $$renderer.push("<!--[-->");
1030
- Tabs_content($$renderer, {
1031
- value: "general",
1032
- class: "mt-4 min-h-0 flex-1 space-y-5 overflow-y-auto pr-1 data-[state=inactive]:hidden",
1033
- children: ($$renderer) => {
1034
- $$renderer.push(`<div class="space-y-1.5">`);
1035
- Label($$renderer, {
1036
- for: "proj-name",
1037
- children: ($$renderer) => {
1038
- $$renderer.push(`<!---->Name`);
1039
- },
1040
- $$slots: { default: true }
1041
- });
1042
- $$renderer.push(`<!----> `);
1043
- Input($$renderer, {
1044
- id: "proj-name",
1045
- get value() {
1046
- return name;
1047
- },
1048
- set value($$value) {
1049
- name = $$value;
1050
- $$settled = false;
1051
- }
1052
- });
1053
- $$renderer.push(`<!----></div> <div class="space-y-1.5">`);
1054
- Label($$renderer, {
1055
- for: "proj-desc",
1056
- children: ($$renderer) => {
1057
- $$renderer.push(`<!---->Description`);
1058
- },
1059
- $$slots: { default: true }
1060
- });
1061
- $$renderer.push(`<!----> `);
1062
- Textarea($$renderer, {
1063
- id: "proj-desc",
1064
- rows: 5,
1065
- get value() {
1066
- return description;
1067
- },
1068
- set value($$value) {
1069
- description = $$value;
1070
- $$settled = false;
1071
- }
1072
- });
1073
- $$renderer.push(`<!----></div> <div class="space-y-1.5">`);
1074
- Label($$renderer, {
1075
- for: "proj-vis",
1076
- children: ($$renderer) => {
1077
- $$renderer.push(`<!---->Visibility`);
1078
- },
1079
- $$slots: { default: true }
1080
- });
1081
- $$renderer.push(`<!----> `);
1082
- $$renderer.select({
1083
- id: "proj-vis",
1084
- value: visibility,
1085
- class: "border-input bg-background h-10 w-full rounded-md border px-3 text-sm"
1086
- }, ($$renderer) => {
1087
- $$renderer.option({ value: "public" }, ($$renderer) => {
1088
- $$renderer.push(`Public`);
1089
- });
1090
- $$renderer.option({ value: "org" }, ($$renderer) => {
1091
- $$renderer.push(`Org`);
1092
- });
1093
- $$renderer.option({ value: "private" }, ($$renderer) => {
1094
- $$renderer.push(`Private`);
1095
- });
1096
- if (visibility === "platform") {
1097
- $$renderer.push("<!--[0-->");
1098
- $$renderer.option({ value: "platform" }, ($$renderer) => {
1099
- $$renderer.push(`Platform`);
1100
- });
1101
- } else $$renderer.push("<!--[-1-->");
1102
- $$renderer.push(`<!--]-->`);
1103
- });
1104
- $$renderer.push(` <p class="text-muted-foreground text-xs">${escape_html(visibilityHint())}</p></div>`);
1105
- },
1106
- $$slots: { default: true }
1107
- });
1108
- $$renderer.push("<!--]-->");
1109
- } else {
1110
- $$renderer.push("<!--[!-->");
1111
- $$renderer.push("<!--]-->");
1112
- }
1113
- $$renderer.push(` `);
1114
- if (Tabs_content) {
1115
- $$renderer.push("<!--[-->");
1116
- Tabs_content($$renderer, {
1117
- value: "members",
1118
- class: "mt-4 flex min-h-0 flex-1 flex-col gap-3 overflow-hidden data-[state=inactive]:hidden",
1119
- children: ($$renderer) => {
1120
- $$renderer.push(`<p${attr_class(`shrink-0 rounded-md border px-3 py-2 text-xs ${membersGrantAccess() ? "border-border bg-muted/40 text-muted-foreground" : "border-amber-500/40 bg-amber-500/5 text-amber-700 dark:text-amber-400"}`)}>${escape_html(membershipMeaning())}</p> `);
1121
- if (project.members.length === 0 && !showAddForm) {
1122
- $$renderer.push("<!--[0-->");
1123
- EmptyState($$renderer, {
1124
- size: "sm",
1125
- icon: Users,
1126
- title: "No members yet",
1127
- description: membersGrantAccess() ? "Add members to give them access to this project." : "Add members to give them editing rights on this project."
1128
- });
1129
- } else if (project.members.length > 0) {
1130
- $$renderer.push("<!--[1-->");
1131
- $$renderer.push(`<div class="border-border bg-card min-h-0 flex-1 overflow-y-auto rounded-md border"><!--[-->`);
1132
- const each_array = ensure_array_like(project.members);
1133
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1134
- let member = each_array[$$index];
1135
- $$renderer.push(`<div class="border-border flex items-center gap-3 border-b px-3 py-2.5 last:border-0"><div class="shrink-0">`);
1136
- UserAvatar($$renderer, {
1137
- name: userLabel(member.userId),
1138
- size: "sm"
1139
- });
1140
- $$renderer.push(`<!----></div> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium">${escape_html(userLabel(member.userId))}</p> `);
1141
- if (userEmail(member.userId) && userEmail(member.userId) !== userLabel(member.userId)) {
1142
- $$renderer.push("<!--[0-->");
1143
- $$renderer.push(`<p class="text-muted-foreground truncate font-mono text-xs">${escape_html(userEmail(member.userId))}</p>`);
1144
- } else $$renderer.push("<!--[-1-->");
1145
- $$renderer.push(`<!--]--></div> `);
1146
- $$renderer.select({
1147
- value: member.role,
1148
- onchange: (e) => onUpdateMemberRole(project.id, member.userId, e.target.value),
1149
- class: "border-input bg-background h-8 shrink-0 rounded-md border px-2 text-xs outline-none"
1150
- }, ($$renderer) => {
1151
- $$renderer.option({ value: "owner" }, ($$renderer) => {
1152
- $$renderer.push(`Owner`);
1153
- });
1154
- $$renderer.option({ value: "editor" }, ($$renderer) => {
1155
- $$renderer.push(`Editor`);
1156
- });
1157
- $$renderer.option({ value: "viewer" }, ($$renderer) => {
1158
- $$renderer.push(`Viewer`);
1159
- });
1160
- });
1161
- $$renderer.push(` `);
1162
- Button($$renderer, {
1163
- onclick: () => remove(member.userId),
1164
- disabled: removing === member.userId,
1165
- variant: "ghost",
1166
- size: "icon",
1167
- class: "text-muted-foreground hover:text-destructive h-7 w-7 shrink-0",
1168
- children: ($$renderer) => {
1169
- X($$renderer, { class: "h-3.5 w-3.5" });
1170
- },
1171
- $$slots: { default: true }
1172
- });
1173
- $$renderer.push(`<!----></div>`);
1174
- }
1175
- $$renderer.push(`<!--]--></div>`);
1176
- } else $$renderer.push("<!--[-1-->");
1177
- $$renderer.push(`<!--]--> <div class="shrink-0">`);
1178
- if (showAddForm) {
1179
- $$renderer.push("<!--[0-->");
1180
- AddMemberPicker($$renderer, {
1181
- availableUsers: availableUsers()});
1182
- } else {
1183
- $$renderer.push("<!--[-1-->");
1184
- Button($$renderer, {
1185
- onclick: () => showAddForm = true,
1186
- variant: "outline",
1187
- size: "sm",
1188
- class: "gap-1.5",
1189
- children: ($$renderer) => {
1190
- User_plus($$renderer, { class: "h-3.5 w-3.5" });
1191
- $$renderer.push(`<!----> Add member`);
1192
- },
1193
- $$slots: { default: true }
1194
- });
1195
- }
1196
- $$renderer.push(`<!--]--></div>`);
1197
- },
1198
- $$slots: { default: true }
1199
- });
1200
- $$renderer.push("<!--]-->");
1201
- } else {
1202
- $$renderer.push("<!--[!-->");
1203
- $$renderer.push("<!--]-->");
1204
- }
1205
- },
1206
- $$slots: { default: true }
1207
- });
1208
- $$renderer.push("<!--]-->");
1209
- } else {
1210
- $$renderer.push("<!--[!-->");
1211
- $$renderer.push("<!--]-->");
1212
- }
1213
- $$renderer.push(` <div class="border-border mt-4 flex shrink-0 items-center justify-between border-t pt-4">`);
1214
- Button($$renderer, {
1215
- onclick: () => onDelete(project.id),
1216
- variant: "ghost",
1217
- size: "sm",
1218
- class: "text-destructive hover:text-destructive gap-1.5 px-2",
1219
- children: ($$renderer) => {
1220
- Trash_2($$renderer, { class: "h-3.5 w-3.5" });
1221
- $$renderer.push(`<!----> Delete project`);
1222
- },
1223
- $$slots: { default: true }
1224
- });
1225
- $$renderer.push(`<!----> <div class="flex gap-2">`);
1226
- Button($$renderer, {
1227
- onclick: () => onOpenChange(false),
1228
- variant: "outline",
1229
- size: "sm",
1230
- children: ($$renderer) => {
1231
- $$renderer.push(`<!---->${escape_html(tab === "general" ? "Cancel" : "Close")}`);
1232
- },
1233
- $$slots: { default: true }
1234
- });
1235
- $$renderer.push(`<!----> `);
1236
- if (tab === "general") {
1237
- $$renderer.push("<!--[0-->");
1238
- Button($$renderer, {
1239
- onclick: save,
1240
- disabled: saving,
1241
- size: "sm",
1242
- children: ($$renderer) => {
1243
- $$renderer.push(`<!---->${escape_html(saving ? "Saving…" : "Save")}`);
1244
- },
1245
- $$slots: { default: true }
1246
- });
1247
- } else $$renderer.push("<!--[-1-->");
1248
- $$renderer.push(`<!--]--></div></div>`);
1249
- },
1250
- $$slots: { default: true }
1251
- });
1252
- $$renderer.push("<!--]-->");
1253
- } else {
1254
- $$renderer.push("<!--[!-->");
1255
- $$renderer.push("<!--]-->");
1256
- }
1257
- },
1258
- $$slots: { default: true }
1259
- });
1260
- $$renderer.push("<!--]-->");
1261
- } else {
1262
- $$renderer.push("<!--[!-->");
1263
- $$renderer.push("<!--]-->");
1264
- }
1265
- }
1266
- do {
1267
- $$settled = true;
1268
- $$inner_renderer = $$renderer.copy();
1269
- $$render_inner($$inner_renderer);
1270
- } while (!$$settled);
1271
- $$renderer.subsume($$inner_renderer);
1272
- });
1273
- }
1274
- //#endregion
1275
- //#region src/routes/projects/_components/StatusBadge.svelte
1276
- function StatusBadge($$renderer, $$props) {
1277
- $$renderer.component(($$renderer) => {
1278
- let { status, class: className = "" } = $$props;
1279
- $$renderer.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>`);
1280
- });
1281
- }
1282
- //#endregion
1283
- //#region src/routes/projects/_components/DefinitionListView.svelte
1284
- function DefinitionListView($$renderer, $$props) {
1285
- $$renderer.component(($$renderer) => {
1286
- let { records, projects} = $$props;
1287
- const gridTemplate = "grid-template-columns: 40px 1.6fr 0.9fr 0.8fr 0.7fr 0.6fr 36px";
1288
- function projectName(id) {
1289
- return projects.find((p) => p.id === id)?.name ?? "";
1290
- }
1291
- $$renderer.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> <!--[-->`);
1292
- const each_array = ensure_array_like(records);
1293
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
1294
- let record = each_array[i];
1295
- $$renderer.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)}>`);
1296
- if (record.coverImage) {
1297
- $$renderer.push("<!--[0-->");
1298
- $$renderer.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>`);
1299
- } else {
1300
- $$renderer.push("<!--[-1-->");
1301
- const hues = huesFor(record.guid);
1302
- $$renderer.push(`<div class="tool-cover-fallback flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"${attr_style("", {
1303
- "--tool-h1": hues.h1,
1304
- "--tool-h2": hues.h2
1305
- })}><span class="text-foreground/40 text-base font-semibold">${escape_html(monogram(record.displayName))}</span></div>`);
1306
- }
1307
- $$renderer.push(`<!--]--> <span class="min-w-0"><span class="font-semibold">${escape_html(record.displayName)}</span> `);
1308
- if (record.description) {
1309
- $$renderer.push("<!--[0-->");
1310
- $$renderer.push(`<span class="text-muted-foreground ml-2 text-[12px]">${escape_html(record.description.slice(0, 60))}${escape_html(record.description.length > 60 ? "…" : "")}</span>`);
1311
- } else $$renderer.push("<!--[-1-->");
1312
- $$renderer.push(`<!--]--></span> <span class="text-muted-foreground">${escape_html(projectName(record.projectId))}</span> <span>`);
1313
- StatusBadge($$renderer, { status: record.status });
1314
- $$renderer.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)}`)}>`);
1315
- Ellipsis($$renderer, { class: "h-4 w-4" });
1316
- $$renderer.push(`<!----></button></span></div>`);
1317
- }
1318
- $$renderer.push(`<!--]--></div>`);
1319
- });
1320
- }
1321
- //#endregion
1322
- //#region src/routes/projects/_components/DefinitionDetailDrawer.svelte
1323
- function DefinitionDetailDrawer($$renderer, $$props) {
1324
- $$renderer.component(($$renderer) => {
1325
- let { record, projectName, canEdit, showShare, onClose, onEdit, onOpenRunner, onShare } = $$props;
1326
- Drawer($$renderer, {
1327
- onClose,
1328
- children: ($$renderer) => {
1329
- $$renderer.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">`);
1330
- StatusBadge($$renderer, { status: record.status });
1331
- $$renderer.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> `);
1332
- if (record.description) {
1333
- $$renderer.push("<!--[0-->");
1334
- $$renderer.push(`<p class="text-muted-foreground mt-1 text-sm">${escape_html(record.description)}</p>`);
1335
- } else $$renderer.push("<!--[-1-->");
1336
- $$renderer.push(`<!--]--></div> `);
1337
- Button($$renderer, {
1338
- variant: "ghost",
1339
- size: "icon",
1340
- onclick: onClose,
1341
- class: "mt-0.5 h-8 w-8 shrink-0",
1342
- children: ($$renderer) => {
1343
- X($$renderer, { class: "h-4 w-4" });
1344
- },
1345
- $$slots: { default: true }
1346
- });
1347
- $$renderer.push(`<!----></div> <div class="flex-1 space-y-5 overflow-y-auto p-6">`);
1348
- if (record.coverImage) {
1349
- $$renderer.push("<!--[0-->");
1350
- $$renderer.push(`<img${attr("src", record.coverImage)}${attr("alt", record.displayName)} class="border-border aspect-4/3 w-full rounded-lg border object-cover"/>`);
1351
- } else {
1352
- $$renderer.push("<!--[-1-->");
1353
- $$renderer.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>`);
1354
- }
1355
- $$renderer.push(`<!--]--> <div class="flex gap-2">`);
1356
- Button($$renderer, {
1357
- class: "flex-1",
1358
- onclick: () => onOpenRunner(record.guid, "live"),
1359
- children: ($$renderer) => {
1360
- Play($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
1361
- $$renderer.push(`<!----> Run`);
1362
- },
1363
- $$slots: { default: true }
1364
- });
1365
- $$renderer.push(`<!----> `);
1366
- if (canEdit) {
1367
- $$renderer.push("<!--[0-->");
1368
- if (showShare) {
1369
- $$renderer.push("<!--[0-->");
1370
- Button($$renderer, {
1371
- variant: "outline",
1372
- size: "icon",
1373
- onclick: () => onShare(record),
1374
- title: "Share links",
1375
- children: ($$renderer) => {
1376
- Share_2($$renderer, { class: "h-4 w-4" });
1377
- },
1378
- $$slots: { default: true }
1379
- });
1380
- } else $$renderer.push("<!--[-1-->");
1381
- $$renderer.push(`<!--]--> `);
1382
- Button($$renderer, {
1383
- variant: "outline",
1384
- onclick: () => onEdit(record),
1385
- children: ($$renderer) => {
1386
- $$renderer.push(`<!---->Edit`);
1387
- },
1388
- $$slots: { default: true }
1389
- });
1390
- $$renderer.push(`<!---->`);
1391
- } else $$renderer.push("<!--[-1-->");
1392
- $$renderer.push(`<!--]--></div> `);
1393
- Separator($$renderer, {});
1394
- $$renderer.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> `);
1395
- if (record.category) {
1396
- $$renderer.push("<!--[0-->");
1397
- $$renderer.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>`);
1398
- } else $$renderer.push("<!--[-1-->");
1399
- $$renderer.push(`<!--]--></div> `);
1400
- if (record.tags?.length) {
1401
- $$renderer.push("<!--[0-->");
1402
- $$renderer.push(`<div>`);
1403
- Separator($$renderer, { class: "mb-4" });
1404
- $$renderer.push(`<!----> <div class="flex flex-wrap gap-1.5"><!--[-->`);
1405
- const each_array = ensure_array_like(record.tags);
1406
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1407
- let tag = each_array[$$index];
1408
- $$renderer.push(`<span class="bg-muted text-muted-foreground rounded px-2 py-0.5 font-mono text-[11px]">#${escape_html(tag)}</span>`);
1409
- }
1410
- $$renderer.push(`<!--]--></div></div>`);
1411
- } else $$renderer.push("<!--[-1-->");
1412
- $$renderer.push(`<!--]--></div>`);
1413
- }});
1414
- });
1415
- }
1416
- //#endregion
1417
- //#region src/routes/projects/_components/UploadVersionDialog.svelte
1418
- function UploadVersionDialog($$renderer, $$props) {
1419
- $$renderer.component(($$renderer) => {
1420
- let { nextVersionNumber, open, onOpenChange} = $$props;
1421
- let changeNote = "";
1422
- async function submit() {}
1423
- let $$settled = true;
1424
- let $$inner_renderer;
1425
- function $$render_inner($$renderer) {
1426
- if (Root$1) {
1427
- $$renderer.push("<!--[-->");
1428
- Root$1($$renderer, {
1429
- open,
1430
- onOpenChange,
1431
- children: ($$renderer) => {
1432
- if (Dialog_content) {
1433
- $$renderer.push("<!--[-->");
1434
- Dialog_content($$renderer, {
1435
- class: "max-w-md",
1436
- children: ($$renderer) => {
1437
- if (Dialog_header) {
1438
- $$renderer.push("<!--[-->");
1439
- Dialog_header($$renderer, {
1440
- children: ($$renderer) => {
1441
- if (Dialog_title) {
1442
- $$renderer.push("<!--[-->");
1443
- Dialog_title($$renderer, {
1444
- children: ($$renderer) => {
1445
- $$renderer.push(`<!---->Upload new version`);
1446
- },
1447
- $$slots: { default: true }
1448
- });
1449
- $$renderer.push("<!--]-->");
1450
- } else {
1451
- $$renderer.push("<!--[!-->");
1452
- $$renderer.push("<!--]-->");
1453
- }
1454
- $$renderer.push(` `);
1455
- if (Dialog_description) {
1456
- $$renderer.push("<!--[-->");
1457
- Dialog_description($$renderer, {
1458
- children: ($$renderer) => {
1459
- $$renderer.push(`<!---->The upload becomes <strong>v${escape_html(nextVersionNumber)}</strong> as a draft. The live channel stays unchanged
1460
- until you publish.`);
1461
- },
1462
- $$slots: { default: true }
1463
- });
1464
- $$renderer.push("<!--]-->");
1465
- } else {
1466
- $$renderer.push("<!--[!-->");
1467
- $$renderer.push("<!--]-->");
1468
- }
1469
- },
1470
- $$slots: { default: true }
1471
- });
1472
- $$renderer.push("<!--]-->");
1473
- } else {
1474
- $$renderer.push("<!--[!-->");
1475
- $$renderer.push("<!--]-->");
1476
- }
1477
- $$renderer.push(` <div class="mt-4 space-y-4"><div class="space-y-1.5">`);
1478
- Label($$renderer, {
1479
- for: "upload-file",
1480
- children: ($$renderer) => {
1481
- $$renderer.push(`<!---->Grasshopper file`);
1482
- },
1483
- $$slots: { default: true }
1484
- });
1485
- $$renderer.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">`);
1486
- File_up($$renderer, { class: "text-muted-foreground h-5 w-5 shrink-0" });
1487
- $$renderer.push(`<!----> <div class="min-w-0 flex-1">`);
1488
- $$renderer.push("<!--[-1-->");
1489
- $$renderer.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>`);
1490
- $$renderer.push(`<!--]--></div></label> <input id="upload-file" type="file" accept=".gh,.ghx" class="hidden"/></div> <div class="space-y-1.5">`);
1491
- Label($$renderer, {
1492
- for: "upload-note",
1493
- children: ($$renderer) => {
1494
- $$renderer.push(`<!---->What changed? <span class="text-muted-foreground font-normal">(optional)</span>`);
1495
- },
1496
- $$slots: { default: true }
1497
- });
1498
- $$renderer.push(`<!----> `);
1499
- Textarea($$renderer, {
1500
- id: "upload-note",
1501
- rows: 2,
1502
- maxlength: 1e3,
1503
- placeholder: "e.g. Fixed wall thickness calculation",
1504
- get value() {
1505
- return changeNote;
1506
- },
1507
- set value($$value) {
1508
- changeNote = $$value;
1509
- $$settled = false;
1510
- }
1511
- });
1512
- $$renderer.push(`<!----></div></div> `);
1513
- if (Dialog_footer) {
1514
- $$renderer.push("<!--[-->");
1515
- Dialog_footer($$renderer, {
1516
- class: "mt-4",
1517
- children: ($$renderer) => {
1518
- Button($$renderer, {
1519
- variant: "outline",
1520
- onclick: () => onOpenChange(false),
1521
- children: ($$renderer) => {
1522
- $$renderer.push(`<!---->Cancel`);
1523
- },
1524
- $$slots: { default: true }
1525
- });
1526
- $$renderer.push(`<!----> `);
1527
- Button($$renderer, {
1528
- onclick: submit,
1529
- disabled: true,
1530
- children: ($$renderer) => {
1531
- $$renderer.push("<!--[-1-->");
1532
- Upload($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
1533
- $$renderer.push(`<!----> Upload v${escape_html(nextVersionNumber)}`);
1534
- $$renderer.push(`<!--]-->`);
1535
- },
1536
- $$slots: { default: true }
1537
- });
1538
- $$renderer.push(`<!---->`);
1539
- },
1540
- $$slots: { default: true }
1541
- });
1542
- $$renderer.push("<!--]-->");
1543
- } else {
1544
- $$renderer.push("<!--[!-->");
1545
- $$renderer.push("<!--]-->");
1546
- }
1547
- },
1548
- $$slots: { default: true }
1549
- });
1550
- $$renderer.push("<!--]-->");
1551
- } else {
1552
- $$renderer.push("<!--[!-->");
1553
- $$renderer.push("<!--]-->");
1554
- }
1555
- },
1556
- $$slots: { default: true }
1557
- });
1558
- $$renderer.push("<!--]-->");
1559
- } else {
1560
- $$renderer.push("<!--[!-->");
1561
- $$renderer.push("<!--]-->");
1562
- }
1563
- }
1564
- do {
1565
- $$settled = true;
1566
- $$inner_renderer = $$renderer.copy();
1567
- $$render_inner($$inner_renderer);
1568
- } while (!$$settled);
1569
- $$renderer.subsume($$inner_renderer);
1570
- });
1571
- }
1572
- //#endregion
1573
- //#region src/routes/projects/_components/VersionsSection.svelte
1574
- function VersionsSection($$renderer, $$props) {
1575
- $$renderer.component(($$renderer) => {
1576
- let { definitionGuid, liveVersionId, draftVersionId, onOpenRunner } = $$props;
1577
- let versions = [];
1578
- let loading = true;
1579
- let showUploadDialog = false;
1580
- let publishingTarget = null;
1581
- let publishingTargetSet = false;
1582
- let publishing = false;
1583
- let confirmingDelete = null;
1584
- let deletingId = null;
1585
- async function loadVersions() {
1586
- loading = true;
1587
- try {
1588
- const res = await fetch(`/api/v1/definitions/${definitionGuid}/versions`);
1589
- if (!res.ok) throw new Error(`${res.status}`);
1590
- versions = (await res.json()).items;
1591
- } catch {
1592
- toast.error("Failed to load versions");
1593
- } finally {
1594
- loading = false;
1595
- }
1596
- }
1597
- const liveVersion = derived(() => versions.find((v) => v.id === liveVersionId) ?? null);
1598
- const draftVersion = derived(() => versions.find((v) => v.id === draftVersionId) ?? null);
1599
- const draftIsAhead = derived(() => draftVersion() !== null && liveVersion() !== null && draftVersion().id !== liveVersion().id);
1600
- const nextVersionNumber = derived(() => (versions[0]?.versionNumber ?? 0) + 1);
1601
- function formatRelative(iso) {
1602
- const ms = Date.now() - new Date(iso).getTime();
1603
- const minutes = Math.floor(ms / 6e4);
1604
- if (minutes < 1) return "Just now";
1605
- if (minutes < 60) return `${minutes}m ago`;
1606
- const hours = Math.floor(minutes / 60);
1607
- if (hours < 24) return `${hours}h ago`;
1608
- const days = Math.floor(hours / 24);
1609
- if (days === 1) return "Yesterday";
1610
- if (days < 30) return `${days}d ago`;
1611
- return new Date(iso).toLocaleDateString();
1612
- }
1613
- async function publish(target) {
1614
- publishing = true;
1615
- try {
1616
- const body = target ? { versionId: target.id } : {};
1617
- const res = await fetch(`/api/v1/definitions/${definitionGuid}/publish`, {
1618
- method: "POST",
1619
- headers: { "Content-Type": "application/json" },
1620
- body: JSON.stringify(body)
1621
- });
1622
- if (!res.ok) {
1623
- const err = await res.json().catch(() => ({}));
1624
- toast.error(err.message || err.error || "Failed to publish");
1625
- return;
1626
- }
1627
- const result = await res.json();
1628
- toast.success(`v${result.version?.versionNumber ?? "?"} is now live`);
1629
- await loadVersions();
1630
- await invalidateAll();
1631
- } catch {
1632
- toast.error("Failed to publish");
1633
- } finally {
1634
- publishing = false;
1635
- publishingTarget = null;
1636
- publishingTargetSet = false;
1637
- }
1638
- }
1639
- async function deleteVersion(version) {
1640
- deletingId = version.id;
1641
- try {
1642
- const res = await fetch(`/api/v1/definitions/${definitionGuid}/versions/${version.id}`, { method: "DELETE" });
1643
- if (!res.ok) {
1644
- const err = await res.json().catch(() => ({}));
1645
- toast.error(err.message || err.error || "Failed to delete version. Live or draft versions cannot be deleted.");
1646
- return;
1647
- }
1648
- toast.success(`v${version.versionNumber} deleted`);
1649
- await loadVersions();
1650
- await invalidateAll();
1651
- } catch {
1652
- toast.error("Failed to delete version");
1653
- } finally {
1654
- deletingId = null;
1655
- confirmingDelete = null;
1656
- }
1657
- }
1658
- $$renderer.push(`<div class="space-y-4">`);
1659
- if (loading) {
1660
- $$renderer.push("<!--[0-->");
1661
- $$renderer.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>`);
1662
- } else if (versions.length === 0) {
1663
- $$renderer.push("<!--[1-->");
1664
- $$renderer.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>`);
1665
- } else {
1666
- $$renderer.push("<!--[-1-->");
1667
- $$renderer.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> `);
1668
- if (liveVersion()) {
1669
- $$renderer.push("<!--[0-->");
1670
- $$renderer.push(`<span><strong>Live now</strong> — v${escape_html(liveVersion().versionNumber)}</span> `);
1671
- if (draftIsAhead() && draftVersion()) {
1672
- $$renderer.push("<!--[0-->");
1673
- $$renderer.push(`<span class="text-muted-foreground">· newer version uploaded</span>`);
1674
- } else {
1675
- $$renderer.push("<!--[-1-->");
1676
- $$renderer.push(`<span class="text-muted-foreground">· up to date</span>`);
1677
- }
1678
- $$renderer.push(`<!--]-->`);
1679
- } else {
1680
- $$renderer.push("<!--[-1-->");
1681
- $$renderer.push(`<span class="text-muted-foreground">Not yet published — promote a draft to go live</span>`);
1682
- }
1683
- $$renderer.push(`<!--]--></div> `);
1684
- if (draftIsAhead() && draftVersion()) {
1685
- $$renderer.push("<!--[0-->");
1686
- Button($$renderer, {
1687
- size: "sm",
1688
- onclick: () => publish(null),
1689
- disabled: publishing,
1690
- class: "shrink-0",
1691
- children: ($$renderer) => {
1692
- Cloud_upload($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
1693
- $$renderer.push(`<!----> Publish v${escape_html(draftVersion().versionNumber)}`);
1694
- },
1695
- $$slots: { default: true }
1696
- });
1697
- } else $$renderer.push("<!--[-1-->");
1698
- $$renderer.push(`<!--]--></div>`);
1699
- }
1700
- $$renderer.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
1701
- definition.</p></div> `);
1702
- Button($$renderer, {
1703
- variant: "outline",
1704
- size: "sm",
1705
- onclick: () => showUploadDialog = true,
1706
- class: "shrink-0",
1707
- children: ($$renderer) => {
1708
- Upload($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
1709
- $$renderer.push(`<!----> Upload new version`);
1710
- },
1711
- $$slots: { default: true }
1712
- });
1713
- $$renderer.push(`<!----></div> `);
1714
- if (!loading && versions.length > 0) {
1715
- $$renderer.push("<!--[0-->");
1716
- $$renderer.push(`<div class="space-y-2"><!--[-->`);
1717
- const each_array = ensure_array_like(versions);
1718
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
1719
- let version = each_array[$$index];
1720
- const isLive = version.id === liveVersionId;
1721
- const isDraft = version.id === draftVersionId && !isLive;
1722
- $$renderer.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> `);
1723
- if (isLive) {
1724
- $$renderer.push("<!--[0-->");
1725
- $$renderer.push(`<span class="bg-success/10 text-success rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">live</span>`);
1726
- } else $$renderer.push("<!--[-1-->");
1727
- $$renderer.push(`<!--]--> `);
1728
- if (isDraft) {
1729
- $$renderer.push("<!--[0-->");
1730
- $$renderer.push(`<span class="bg-warning/10 text-warning rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">draft</span>`);
1731
- } else $$renderer.push("<!--[-1-->");
1732
- $$renderer.push(`<!--]--></div> `);
1733
- if (version.changeNote) {
1734
- $$renderer.push("<!--[0-->");
1735
- $$renderer.push(`<p class="mt-1 truncate text-sm">${escape_html(version.changeNote)}</p>`);
1736
- } else $$renderer.push("<!--[-1-->");
1737
- $$renderer.push(`<!--]--> `);
1738
- if (version.originalFilename) {
1739
- $$renderer.push("<!--[0-->");
1740
- $$renderer.push(`<p class="text-muted-foreground mt-1 truncate font-mono text-xs">${escape_html(version.originalFilename)}</p>`);
1741
- } else $$renderer.push("<!--[-1-->");
1742
- $$renderer.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">`);
1743
- Button($$renderer, {
1744
- size: "sm",
1745
- variant: isLive ? "outline" : "ghost",
1746
- onclick: () => isLive ? onOpenRunner(definitionGuid, "live") : isDraft ? onOpenRunner(definitionGuid, "draft") : onOpenRunner(definitionGuid, void 0, version.id),
1747
- children: ($$renderer) => {
1748
- Play($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
1749
- $$renderer.push(`<!----> Run`);
1750
- },
1751
- $$slots: { default: true }
1752
- });
1753
- $$renderer.push(`<!----> `);
1754
- if (!isLive) {
1755
- $$renderer.push("<!--[0-->");
1756
- Button($$renderer, {
1757
- size: "sm",
1758
- variant: "outline",
1759
- disabled: publishing,
1760
- onclick: () => {
1761
- publishingTarget = version;
1762
- publishingTargetSet = true;
1763
- },
1764
- children: ($$renderer) => {
1765
- $$renderer.push(`<!---->Make live`);
1766
- },
1767
- $$slots: { default: true }
1768
- });
1769
- } else $$renderer.push("<!--[-1-->");
1770
- $$renderer.push(`<!--]--> `);
1771
- if (!isLive && !isDraft) {
1772
- $$renderer.push("<!--[0-->");
1773
- Button($$renderer, {
1774
- size: "sm",
1775
- variant: "ghost",
1776
- onclick: () => confirmingDelete = version,
1777
- disabled: deletingId === version.id,
1778
- class: "text-muted-foreground hover:text-destructive h-8 w-8 p-0",
1779
- "aria-label": "Delete version",
1780
- children: ($$renderer) => {
1781
- Trash_2($$renderer, { class: "h-3.5 w-3.5" });
1782
- },
1783
- $$slots: { default: true }
1784
- });
1785
- } else $$renderer.push("<!--[-1-->");
1786
- $$renderer.push(`<!--]--></div></div></div>`);
1787
- }
1788
- $$renderer.push(`<!--]--></div>`);
1789
- } else $$renderer.push("<!--[-1-->");
1790
- $$renderer.push(`<!--]--></div> `);
1791
- UploadVersionDialog($$renderer, {
1792
- nextVersionNumber: nextVersionNumber(),
1793
- open: showUploadDialog,
1794
- onOpenChange: (o) => showUploadDialog = o});
1795
- $$renderer.push(`<!----> `);
1796
- if (Root) {
1797
- $$renderer.push("<!--[-->");
1798
- Root($$renderer, {
1799
- open: publishingTargetSet,
1800
- onOpenChange: (o) => {
1801
- if (!o) {
1802
- publishingTarget = null;
1803
- publishingTargetSet = false;
1804
- }
1805
- },
1806
- children: ($$renderer) => {
1807
- if (Alert_dialog_content) {
1808
- $$renderer.push("<!--[-->");
1809
- Alert_dialog_content($$renderer, {
1810
- children: ($$renderer) => {
1811
- if (Alert_dialog_header) {
1812
- $$renderer.push("<!--[-->");
1813
- Alert_dialog_header($$renderer, {
1814
- children: ($$renderer) => {
1815
- if (Alert_dialog_title) {
1816
- $$renderer.push("<!--[-->");
1817
- Alert_dialog_title($$renderer, {
1818
- children: ($$renderer) => {
1819
- if (publishingTarget) {
1820
- $$renderer.push("<!--[0-->");
1821
- $$renderer.push(`Make v${escape_html(publishingTarget.versionNumber)} live?`);
1822
- } else {
1823
- $$renderer.push("<!--[-1-->");
1824
- $$renderer.push(`Publish current draft?`);
1825
- }
1826
- $$renderer.push(`<!--]-->`);
1827
- },
1828
- $$slots: { default: true }
1829
- });
1830
- $$renderer.push("<!--]-->");
1831
- } else {
1832
- $$renderer.push("<!--[!-->");
1833
- $$renderer.push("<!--]-->");
1834
- }
1835
- $$renderer.push(` `);
1836
- if (Alert_dialog_description) {
1837
- $$renderer.push("<!--[-->");
1838
- Alert_dialog_description($$renderer, {
1839
- children: ($$renderer) => {
1840
- if (publishingTarget && liveVersion() && publishingTarget.versionNumber < liveVersion().versionNumber) {
1841
- $$renderer.push("<!--[0-->");
1842
- $$renderer.push(`Rolling back to an older version. Anyone running this definition will immediately get v${escape_html(publishingTarget.versionNumber)}
1843
- instead of v${escape_html(liveVersion().versionNumber)}.`);
1844
- } else if (publishingTarget) {
1845
- $$renderer.push("<!--[1-->");
1846
- $$renderer.push(`Anyone running this definition will immediately get v${escape_html(publishingTarget.versionNumber)}
1847
- instead of v${escape_html(liveVersion()?.versionNumber ?? "—")}.`);
1848
- } else {
1849
- $$renderer.push("<!--[-1-->");
1850
- $$renderer.push(`Promotes the current draft to live. Everyone running this definition gets the new version
1851
- immediately.`);
1852
- }
1853
- $$renderer.push(`<!--]-->`);
1854
- },
1855
- $$slots: { default: true }
1856
- });
1857
- $$renderer.push("<!--]-->");
1858
- } else {
1859
- $$renderer.push("<!--[!-->");
1860
- $$renderer.push("<!--]-->");
1861
- }
1862
- },
1863
- $$slots: { default: true }
1864
- });
1865
- $$renderer.push("<!--]-->");
1866
- } else {
1867
- $$renderer.push("<!--[!-->");
1868
- $$renderer.push("<!--]-->");
1869
- }
1870
- $$renderer.push(` `);
1871
- if (Alert_dialog_footer) {
1872
- $$renderer.push("<!--[-->");
1873
- Alert_dialog_footer($$renderer, {
1874
- children: ($$renderer) => {
1875
- if (Alert_dialog_cancel) {
1876
- $$renderer.push("<!--[-->");
1877
- Alert_dialog_cancel($$renderer, {
1878
- children: ($$renderer) => {
1879
- $$renderer.push(`<!---->Cancel`);
1880
- },
1881
- $$slots: { default: true }
1882
- });
1883
- $$renderer.push("<!--]-->");
1884
- } else {
1885
- $$renderer.push("<!--[!-->");
1886
- $$renderer.push("<!--]-->");
1887
- }
1888
- $$renderer.push(` `);
1889
- if (Alert_dialog_action) {
1890
- $$renderer.push("<!--[-->");
1891
- Alert_dialog_action($$renderer, {
1892
- onclick: () => publish(publishingTarget),
1893
- disabled: publishing,
1894
- children: ($$renderer) => {
1895
- $$renderer.push(`<!---->${escape_html(publishing ? "Publishing…" : "Publish")}`);
1896
- },
1897
- $$slots: { default: true }
1898
- });
1899
- $$renderer.push("<!--]-->");
1900
- } else {
1901
- $$renderer.push("<!--[!-->");
1902
- $$renderer.push("<!--]-->");
1903
- }
1904
- },
1905
- $$slots: { default: true }
1906
- });
1907
- $$renderer.push("<!--]-->");
1908
- } else {
1909
- $$renderer.push("<!--[!-->");
1910
- $$renderer.push("<!--]-->");
1911
- }
1912
- },
1913
- $$slots: { default: true }
1914
- });
1915
- $$renderer.push("<!--]-->");
1916
- } else {
1917
- $$renderer.push("<!--[!-->");
1918
- $$renderer.push("<!--]-->");
1919
- }
1920
- },
1921
- $$slots: { default: true }
1922
- });
1923
- $$renderer.push("<!--]-->");
1924
- } else {
1925
- $$renderer.push("<!--[!-->");
1926
- $$renderer.push("<!--]-->");
1927
- }
1928
- $$renderer.push(` `);
1929
- if (Root) {
1930
- $$renderer.push("<!--[-->");
1931
- Root($$renderer, {
1932
- open: !!confirmingDelete,
1933
- onOpenChange: (o) => !o && (confirmingDelete = null),
1934
- children: ($$renderer) => {
1935
- if (Alert_dialog_content) {
1936
- $$renderer.push("<!--[-->");
1937
- Alert_dialog_content($$renderer, {
1938
- children: ($$renderer) => {
1939
- if (Alert_dialog_header) {
1940
- $$renderer.push("<!--[-->");
1941
- Alert_dialog_header($$renderer, {
1942
- children: ($$renderer) => {
1943
- if (Alert_dialog_title) {
1944
- $$renderer.push("<!--[-->");
1945
- Alert_dialog_title($$renderer, {
1946
- children: ($$renderer) => {
1947
- $$renderer.push(`<!---->Delete v${escape_html(confirmingDelete?.versionNumber)}?`);
1948
- },
1949
- $$slots: { default: true }
1950
- });
1951
- $$renderer.push("<!--]-->");
1952
- } else {
1953
- $$renderer.push("<!--[!-->");
1954
- $$renderer.push("<!--]-->");
1955
- }
1956
- $$renderer.push(` `);
1957
- if (Alert_dialog_description) {
1958
- $$renderer.push("<!--[-->");
1959
- Alert_dialog_description($$renderer, {
1960
- children: ($$renderer) => {
1961
- $$renderer.push(`<!---->This permanently removes the version's file. The live and draft versions cannot be deleted —
1962
- repoint first.`);
1963
- },
1964
- $$slots: { default: true }
1965
- });
1966
- $$renderer.push("<!--]-->");
1967
- } else {
1968
- $$renderer.push("<!--[!-->");
1969
- $$renderer.push("<!--]-->");
1970
- }
1971
- },
1972
- $$slots: { default: true }
1973
- });
1974
- $$renderer.push("<!--]-->");
1975
- } else {
1976
- $$renderer.push("<!--[!-->");
1977
- $$renderer.push("<!--]-->");
1978
- }
1979
- $$renderer.push(` `);
1980
- if (Alert_dialog_footer) {
1981
- $$renderer.push("<!--[-->");
1982
- Alert_dialog_footer($$renderer, {
1983
- children: ($$renderer) => {
1984
- if (Alert_dialog_cancel) {
1985
- $$renderer.push("<!--[-->");
1986
- Alert_dialog_cancel($$renderer, {
1987
- children: ($$renderer) => {
1988
- $$renderer.push(`<!---->Cancel`);
1989
- },
1990
- $$slots: { default: true }
1991
- });
1992
- $$renderer.push("<!--]-->");
1993
- } else {
1994
- $$renderer.push("<!--[!-->");
1995
- $$renderer.push("<!--]-->");
1996
- }
1997
- $$renderer.push(` `);
1998
- if (Alert_dialog_action) {
1999
- $$renderer.push("<!--[-->");
2000
- Alert_dialog_action($$renderer, {
2001
- onclick: () => confirmingDelete && deleteVersion(confirmingDelete),
2002
- disabled: !!deletingId,
2003
- children: ($$renderer) => {
2004
- $$renderer.push(`<!---->${escape_html(deletingId ? "Deleting…" : "Delete")}`);
2005
- },
2006
- $$slots: { default: true }
2007
- });
2008
- $$renderer.push("<!--]-->");
2009
- } else {
2010
- $$renderer.push("<!--[!-->");
2011
- $$renderer.push("<!--]-->");
2012
- }
2013
- },
2014
- $$slots: { default: true }
2015
- });
2016
- $$renderer.push("<!--]-->");
2017
- } else {
2018
- $$renderer.push("<!--[!-->");
2019
- $$renderer.push("<!--]-->");
2020
- }
2021
- },
2022
- $$slots: { default: true }
2023
- });
2024
- $$renderer.push("<!--]-->");
2025
- } else {
2026
- $$renderer.push("<!--[!-->");
2027
- $$renderer.push("<!--]-->");
2028
- }
2029
- },
2030
- $$slots: { default: true }
2031
- });
2032
- $$renderer.push("<!--]-->");
2033
- } else {
2034
- $$renderer.push("<!--[!-->");
2035
- $$renderer.push("<!--]-->");
2036
- }
2037
- });
2038
- }
2039
- //#endregion
2040
- //#region src/routes/projects/_components/MintShareLinkDialog.svelte
2041
- function MintShareLinkDialog($$renderer, $$props) {
2042
- $$renderer.component(($$renderer) => {
2043
- let { definitionGuid, open, onOpenChange, onMinted } = $$props;
2044
- let channel = "live";
2045
- let allowSolve = true;
2046
- let label = "";
2047
- let expiresEnabled = false;
2048
- let capEnabled = true;
2049
- let cap = DEFAULT_SHARE_LINK_MAX_SOLVES;
2050
- let creating = false;
2051
- let mintedToken = null;
2052
- let mintedShareUrl = null;
2053
- let copied = false;
2054
- async function submit() {
2055
- if (cap > 1e3) {
2056
- if (!confirm(`You're raising the cap above the default of 1000. An uncapped or high-cap link is a denial-of-wallet vector if leaked. Continue?`)) return;
2057
- }
2058
- creating = true;
2059
- try {
2060
- const body = {
2061
- channel,
2062
- allowSolve,
2063
- ...label.trim() ? { name: label.trim() } : {},
2064
- maxSolves: cap
2065
- };
2066
- const res = await fetch(`/api/v1/definitions/${definitionGuid}/share-links`, {
2067
- method: "POST",
2068
- headers: { "Content-Type": "application/json" },
2069
- body: JSON.stringify(body)
2070
- });
2071
- if (!res.ok) {
2072
- const err = await res.json().catch(() => ({}));
2073
- toast.error(err.message || err.error || "Failed to mint share link");
2074
- return;
2075
- }
2076
- const data = await res.json();
2077
- mintedToken = data.token;
2078
- mintedShareUrl = `${window.location.origin}/library/${definitionGuid}?token=${data.token}`;
2079
- onMinted();
2080
- } catch {
2081
- toast.error("Failed to mint share link");
2082
- } finally {
2083
- creating = false;
2084
- }
2085
- }
2086
- async function copyUrl() {
2087
- if (!mintedShareUrl) return;
2088
- try {
2089
- await navigator.clipboard.writeText(mintedShareUrl);
2090
- copied = true;
2091
- setTimeout(() => copied = false, 2e3);
2092
- } catch {
2093
- toast.error("Could not copy to clipboard");
2094
- }
2095
- }
2096
- let $$settled = true;
2097
- let $$inner_renderer;
2098
- function $$render_inner($$renderer) {
2099
- if (Root$1) {
2100
- $$renderer.push("<!--[-->");
2101
- Root$1($$renderer, {
2102
- open,
2103
- onOpenChange,
2104
- children: ($$renderer) => {
2105
- if (Dialog_content) {
2106
- $$renderer.push("<!--[-->");
2107
- Dialog_content($$renderer, {
2108
- class: "max-w-lg",
2109
- children: ($$renderer) => {
2110
- if (!mintedToken) {
2111
- $$renderer.push("<!--[0-->");
2112
- if (Dialog_header) {
2113
- $$renderer.push("<!--[-->");
2114
- Dialog_header($$renderer, {
2115
- children: ($$renderer) => {
2116
- if (Dialog_title) {
2117
- $$renderer.push("<!--[-->");
2118
- Dialog_title($$renderer, {
2119
- children: ($$renderer) => {
2120
- $$renderer.push(`<!---->New share link`);
2121
- },
2122
- $$slots: { default: true }
2123
- });
2124
- $$renderer.push("<!--]-->");
2125
- } else {
2126
- $$renderer.push("<!--[!-->");
2127
- $$renderer.push("<!--]-->");
2128
- }
2129
- $$renderer.push(` `);
2130
- if (Dialog_description) {
2131
- $$renderer.push("<!--[-->");
2132
- Dialog_description($$renderer, {
2133
- children: ($$renderer) => {
2134
- $$renderer.push(`<!---->Anyone with the link gets the access you configure here. Caps and expiry are the
2135
- load-bearing protection — they assume the URL will eventually leak.`);
2136
- },
2137
- $$slots: { default: true }
2138
- });
2139
- $$renderer.push("<!--]-->");
2140
- } else {
2141
- $$renderer.push("<!--[!-->");
2142
- $$renderer.push("<!--]-->");
2143
- }
2144
- },
2145
- $$slots: { default: true }
2146
- });
2147
- $$renderer.push("<!--]-->");
2148
- } else {
2149
- $$renderer.push("<!--[!-->");
2150
- $$renderer.push("<!--]-->");
2151
- }
2152
- $$renderer.push(` <div class="mt-4 space-y-4"><div class="space-y-1.5">`);
2153
- Label($$renderer, {
2154
- for: "sl-channel",
2155
- children: ($$renderer) => {
2156
- $$renderer.push(`<!---->Channel`);
2157
- },
2158
- $$slots: { default: true }
2159
- });
2160
- $$renderer.push(`<!----> `);
2161
- $$renderer.select({
2162
- id: "sl-channel",
2163
- value: channel,
2164
- class: "border-input bg-background h-9 w-full rounded-md border px-3 text-sm"
2165
- }, ($$renderer) => {
2166
- $$renderer.option({ value: "live" }, ($$renderer) => {
2167
- $$renderer.push(`Live — recipients see the published version`);
2168
- });
2169
- $$renderer.option({ value: "draft" }, ($$renderer) => {
2170
- $$renderer.push(`Draft — recipients see the unpublished version`);
2171
- });
2172
- });
2173
- $$renderer.push(` `);
2174
- $$renderer.push("<!--[-1-->");
2175
- $$renderer.push(`<!--]--></div> <div class="space-y-1.5">`);
2176
- Label($$renderer, {
2177
- for: "sl-label",
2178
- children: ($$renderer) => {
2179
- $$renderer.push(`<!---->Label (optional)`);
2180
- },
2181
- $$slots: { default: true }
2182
- });
2183
- $$renderer.push(`<!----> `);
2184
- Input($$renderer, {
2185
- id: "sl-label",
2186
- placeholder: "e.g. Demo for Acme",
2187
- get value() {
2188
- return label;
2189
- },
2190
- set value($$value) {
2191
- label = $$value;
2192
- $$settled = false;
2193
- }
2194
- });
2195
- $$renderer.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
2196
- 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
2197
- links are a denial-of-wallet risk if leaked.</p></div></label> `);
2198
- $$renderer.push("<!--[0-->");
2199
- $$renderer.push(`<div class="mt-2 ml-6">`);
2200
- Input($$renderer, {
2201
- type: "number",
2202
- min: 1,
2203
- class: "h-8 w-32 text-sm",
2204
- get value() {
2205
- return cap;
2206
- },
2207
- set value($$value) {
2208
- cap = $$value;
2209
- $$settled = false;
2210
- }
2211
- });
2212
- $$renderer.push(`<!----></div>`);
2213
- $$renderer.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> `);
2214
- $$renderer.push("<!--[-1-->");
2215
- $$renderer.push(`<!--]--></div></div> `);
2216
- if (Dialog_footer) {
2217
- $$renderer.push("<!--[-->");
2218
- Dialog_footer($$renderer, {
2219
- class: "mt-4",
2220
- children: ($$renderer) => {
2221
- Button($$renderer, {
2222
- variant: "outline",
2223
- onclick: () => onOpenChange(false),
2224
- children: ($$renderer) => {
2225
- $$renderer.push(`<!---->Cancel`);
2226
- },
2227
- $$slots: { default: true }
2228
- });
2229
- $$renderer.push(`<!----> `);
2230
- Button($$renderer, {
2231
- onclick: submit,
2232
- disabled: creating || cap < 1,
2233
- children: ($$renderer) => {
2234
- $$renderer.push(`<!---->${escape_html(creating ? "Creating…" : "Create link")}`);
2235
- },
2236
- $$slots: { default: true }
2237
- });
2238
- $$renderer.push(`<!---->`);
2239
- },
2240
- $$slots: { default: true }
2241
- });
2242
- $$renderer.push("<!--]-->");
2243
- } else {
2244
- $$renderer.push("<!--[!-->");
2245
- $$renderer.push("<!--]-->");
2246
- }
2247
- } else {
2248
- $$renderer.push("<!--[-1-->");
2249
- if (Dialog_header) {
2250
- $$renderer.push("<!--[-->");
2251
- Dialog_header($$renderer, {
2252
- children: ($$renderer) => {
2253
- if (Dialog_title) {
2254
- $$renderer.push("<!--[-->");
2255
- Dialog_title($$renderer, {
2256
- children: ($$renderer) => {
2257
- $$renderer.push(`<!---->Share link ready`);
2258
- },
2259
- $$slots: { default: true }
2260
- });
2261
- $$renderer.push("<!--]-->");
2262
- } else {
2263
- $$renderer.push("<!--[!-->");
2264
- $$renderer.push("<!--]-->");
2265
- }
2266
- $$renderer.push(` `);
2267
- if (Dialog_description) {
2268
- $$renderer.push("<!--[-->");
2269
- Dialog_description($$renderer, {
2270
- children: ($$renderer) => {
2271
- $$renderer.push(`<!---->Copy the link now — this is the only time you'll see it. The server stores only a hash; we
2272
- cannot show it again.`);
2273
- },
2274
- $$slots: { default: true }
2275
- });
2276
- $$renderer.push("<!--]-->");
2277
- } else {
2278
- $$renderer.push("<!--[!-->");
2279
- $$renderer.push("<!--]-->");
2280
- }
2281
- },
2282
- $$slots: { default: true }
2283
- });
2284
- $$renderer.push("<!--]-->");
2285
- } else {
2286
- $$renderer.push("<!--[!-->");
2287
- $$renderer.push("<!--]-->");
2288
- }
2289
- $$renderer.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">`);
2290
- Triangle_alert($$renderer, { class: "mt-0.5 h-3.5 w-3.5 shrink-0" });
2291
- $$renderer.push(`<!----> <span>This URL grants the configured access to anyone who receives it. Treat it like a
2292
- 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> `);
2293
- Button($$renderer, {
2294
- size: "sm",
2295
- variant: copied ? "default" : "outline",
2296
- onclick: copyUrl,
2297
- class: "shrink-0",
2298
- children: ($$renderer) => {
2299
- if (copied) {
2300
- $$renderer.push("<!--[0-->");
2301
- Check($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
2302
- $$renderer.push(`<!----> Copied`);
2303
- } else {
2304
- $$renderer.push("<!--[-1-->");
2305
- Copy($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
2306
- $$renderer.push(`<!----> Copy`);
2307
- }
2308
- $$renderer.push(`<!--]-->`);
2309
- },
2310
- $$slots: { default: true }
2311
- });
2312
- $$renderer.push(`<!----></div></div></div> `);
2313
- if (Dialog_footer) {
2314
- $$renderer.push("<!--[-->");
2315
- Dialog_footer($$renderer, {
2316
- class: "mt-4",
2317
- children: ($$renderer) => {
2318
- Button($$renderer, {
2319
- onclick: () => onOpenChange(false),
2320
- children: ($$renderer) => {
2321
- $$renderer.push(`<!---->Done`);
2322
- },
2323
- $$slots: { default: true }
2324
- });
2325
- },
2326
- $$slots: { default: true }
2327
- });
2328
- $$renderer.push("<!--]-->");
2329
- } else {
2330
- $$renderer.push("<!--[!-->");
2331
- $$renderer.push("<!--]-->");
2332
- }
2333
- }
2334
- $$renderer.push(`<!--]-->`);
2335
- },
2336
- $$slots: { default: true }
2337
- });
2338
- $$renderer.push("<!--]-->");
2339
- } else {
2340
- $$renderer.push("<!--[!-->");
2341
- $$renderer.push("<!--]-->");
2342
- }
2343
- },
2344
- $$slots: { default: true }
2345
- });
2346
- $$renderer.push("<!--]-->");
2347
- } else {
2348
- $$renderer.push("<!--[!-->");
2349
- $$renderer.push("<!--]-->");
2350
- }
2351
- }
2352
- do {
2353
- $$settled = true;
2354
- $$inner_renderer = $$renderer.copy();
2355
- $$render_inner($$inner_renderer);
2356
- } while (!$$settled);
2357
- $$renderer.subsume($$inner_renderer);
2358
- });
2359
- }
2360
- //#endregion
2361
- //#region src/routes/projects/_components/ShareLinkSection.svelte
2362
- function ShareLinkSection($$renderer, $$props) {
2363
- $$renderer.component(($$renderer) => {
2364
- let { definitionGuid } = $$props;
2365
- let links = [];
2366
- let loading = true;
2367
- let showMintDialog = false;
2368
- let confirmingRevoke = null;
2369
- let revokingId = null;
2370
- async function loadLinks() {
2371
- loading = true;
2372
- try {
2373
- const res = await fetch(`/api/v1/definitions/${definitionGuid}/share-links`);
2374
- if (!res.ok) throw new Error(`${res.status}`);
2375
- links = (await res.json()).items;
2376
- } catch {
2377
- toast.error("Failed to load share links");
2378
- } finally {
2379
- loading = false;
2380
- }
2381
- }
2382
- async function revoke(link) {
2383
- revokingId = link.id;
2384
- try {
2385
- if (!(await fetch(`/api/v1/definitions/${definitionGuid}/share-links/${link.id}`, { method: "DELETE" })).ok) {
2386
- toast.error("Failed to revoke link");
2387
- return;
2388
- }
2389
- toast.success("Link revoked");
2390
- await loadLinks();
2391
- } catch {
2392
- toast.error("Failed to revoke link");
2393
- } finally {
2394
- revokingId = null;
2395
- confirmingRevoke = null;
2396
- }
2397
- }
2398
- function formatExpiry(iso = null) {
2399
- if (!iso) return "Never";
2400
- const date = new Date(iso);
2401
- const now = /* @__PURE__ */ new Date();
2402
- const expired = date.getTime() < now.getTime();
2403
- return {
2404
- text: date.toLocaleDateString(),
2405
- expired
2406
- };
2407
- }
2408
- function formatRelative(iso) {
2409
- const ms = Date.now() - new Date(iso).getTime();
2410
- const minutes = Math.floor(ms / 6e4);
2411
- if (minutes < 1) return "just now";
2412
- if (minutes < 60) return `${minutes}m ago`;
2413
- const hours = Math.floor(minutes / 60);
2414
- if (hours < 24) return `${hours}h ago`;
2415
- const days = Math.floor(hours / 24);
2416
- if (days < 30) return `${days}d ago`;
2417
- return new Date(iso).toLocaleDateString();
2418
- }
2419
- const activeLinks = derived(() => links.filter((l) => !l.revokedAt));
2420
- $$renderer.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
2421
- review links.</p></div> `);
2422
- if (loading) {
2423
- $$renderer.push("<!--[0-->");
2424
- $$renderer.push(`<div class="border-border rounded-md border p-6 text-center"><p class="text-muted-foreground text-xs">Loading…</p></div>`);
2425
- } else if (activeLinks().length === 0) {
2426
- $$renderer.push("<!--[1-->");
2427
- {
2428
- function actions($$renderer) {
2429
- Button($$renderer, {
2430
- size: "sm",
2431
- onclick: () => showMintDialog = true,
2432
- children: ($$renderer) => {
2433
- Plus($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
2434
- $$renderer.push(`<!----> New link`);
2435
- },
2436
- $$slots: { default: true }
2437
- });
2438
- }
2439
- EmptyState($$renderer, {
2440
- size: "sm",
2441
- icon: Link_2,
2442
- title: "No share links yet",
2443
- description: "Mint a link to share this definition without requiring the recipient to have an account.",
2444
- actions});
2445
- }
2446
- } else {
2447
- $$renderer.push("<!--[-1-->");
2448
- $$renderer.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> `);
2449
- Button($$renderer, {
2450
- size: "sm",
2451
- variant: "outline",
2452
- onclick: () => showMintDialog = true,
2453
- children: ($$renderer) => {
2454
- Plus($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
2455
- $$renderer.push(`<!----> New link`);
2456
- },
2457
- $$slots: { default: true }
2458
- });
2459
- $$renderer.push(`<!----></div> <!--[-->`);
2460
- const each_array = ensure_array_like(activeLinks());
2461
- for (let i = 0, $$length = each_array.length; i < $$length; i++) {
2462
- let link = each_array[i];
2463
- const expiry = formatExpiry(link.expiresAt);
2464
- const expired = typeof expiry === "object" && expiry.expired;
2465
- const capValue = link.maxSolves;
2466
- const hasCap = capValue !== null && capValue !== void 0;
2467
- const capReached = hasCap && link.solveCount >= capValue;
2468
- $$renderer.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> `);
2469
- if (!link.allowSolve) {
2470
- $$renderer.push("<!--[0-->");
2471
- $$renderer.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>`);
2472
- } else $$renderer.push("<!--[-1-->");
2473
- $$renderer.push(`<!--]--> `);
2474
- if (expired) {
2475
- $$renderer.push("<!--[0-->");
2476
- $$renderer.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">`);
2477
- Triangle_alert($$renderer, { class: "h-2.5 w-2.5" });
2478
- $$renderer.push(`<!----> expired</span>`);
2479
- } else $$renderer.push("<!--[-1-->");
2480
- $$renderer.push(`<!--]--> `);
2481
- if (capReached) {
2482
- $$renderer.push("<!--[0-->");
2483
- $$renderer.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>`);
2484
- } else $$renderer.push("<!--[-1-->");
2485
- $$renderer.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> `);
2486
- Button($$renderer, {
2487
- variant: "ghost",
2488
- size: "icon",
2489
- onclick: () => confirmingRevoke = link,
2490
- disabled: revokingId === link.id,
2491
- class: "text-muted-foreground hover:text-destructive h-7 w-7 shrink-0",
2492
- "aria-label": "Revoke link",
2493
- children: ($$renderer) => {
2494
- Trash_2($$renderer, { class: "h-3.5 w-3.5" });
2495
- },
2496
- $$slots: { default: true }
2497
- });
2498
- $$renderer.push(`<!----></div>`);
2499
- }
2500
- $$renderer.push(`<!--]--></div>`);
2501
- }
2502
- $$renderer.push(`<!--]--></div> `);
2503
- MintShareLinkDialog($$renderer, {
2504
- definitionGuid,
2505
- open: showMintDialog,
2506
- onOpenChange: (o) => showMintDialog = o,
2507
- onMinted: loadLinks
2508
- });
2509
- $$renderer.push(`<!----> `);
2510
- if (Root) {
2511
- $$renderer.push("<!--[-->");
2512
- Root($$renderer, {
2513
- open: !!confirmingRevoke,
2514
- onOpenChange: (o) => !o && (confirmingRevoke = null),
2515
- children: ($$renderer) => {
2516
- if (Alert_dialog_content) {
2517
- $$renderer.push("<!--[-->");
2518
- Alert_dialog_content($$renderer, {
2519
- children: ($$renderer) => {
2520
- if (Alert_dialog_header) {
2521
- $$renderer.push("<!--[-->");
2522
- Alert_dialog_header($$renderer, {
2523
- children: ($$renderer) => {
2524
- if (Alert_dialog_title) {
2525
- $$renderer.push("<!--[-->");
2526
- Alert_dialog_title($$renderer, {
2527
- children: ($$renderer) => {
2528
- $$renderer.push(`<!---->Revoke this link?`);
2529
- },
2530
- $$slots: { default: true }
2531
- });
2532
- $$renderer.push("<!--]-->");
2533
- } else {
2534
- $$renderer.push("<!--[!-->");
2535
- $$renderer.push("<!--]-->");
2536
- }
2537
- $$renderer.push(` `);
2538
- if (Alert_dialog_description) {
2539
- $$renderer.push("<!--[-->");
2540
- Alert_dialog_description($$renderer, {
2541
- children: ($$renderer) => {
2542
- if (confirmingRevoke) {
2543
- $$renderer.push("<!--[0-->");
2544
- $$renderer.push(`<strong>${escape_html(confirmingRevoke.name ?? "This link")}</strong> will stop working immediately. Anyone
2545
- using it will see a "no longer active" page. This cannot be undone.`);
2546
- } else $$renderer.push("<!--[-1-->");
2547
- $$renderer.push(`<!--]-->`);
2548
- },
2549
- $$slots: { default: true }
2550
- });
2551
- $$renderer.push("<!--]-->");
2552
- } else {
2553
- $$renderer.push("<!--[!-->");
2554
- $$renderer.push("<!--]-->");
2555
- }
2556
- },
2557
- $$slots: { default: true }
2558
- });
2559
- $$renderer.push("<!--]-->");
2560
- } else {
2561
- $$renderer.push("<!--[!-->");
2562
- $$renderer.push("<!--]-->");
2563
- }
2564
- $$renderer.push(` `);
2565
- if (Alert_dialog_footer) {
2566
- $$renderer.push("<!--[-->");
2567
- Alert_dialog_footer($$renderer, {
2568
- children: ($$renderer) => {
2569
- if (Alert_dialog_cancel) {
2570
- $$renderer.push("<!--[-->");
2571
- Alert_dialog_cancel($$renderer, {
2572
- children: ($$renderer) => {
2573
- $$renderer.push(`<!---->Cancel`);
2574
- },
2575
- $$slots: { default: true }
2576
- });
2577
- $$renderer.push("<!--]-->");
2578
- } else {
2579
- $$renderer.push("<!--[!-->");
2580
- $$renderer.push("<!--]-->");
2581
- }
2582
- $$renderer.push(` `);
2583
- if (Alert_dialog_action) {
2584
- $$renderer.push("<!--[-->");
2585
- Alert_dialog_action($$renderer, {
2586
- onclick: () => confirmingRevoke && revoke(confirmingRevoke),
2587
- disabled: !!revokingId,
2588
- children: ($$renderer) => {
2589
- $$renderer.push(`<!---->${escape_html(revokingId ? "Revoking…" : "Revoke")}`);
2590
- },
2591
- $$slots: { default: true }
2592
- });
2593
- $$renderer.push("<!--]-->");
2594
- } else {
2595
- $$renderer.push("<!--[!-->");
2596
- $$renderer.push("<!--]-->");
2597
- }
2598
- },
2599
- $$slots: { default: true }
2600
- });
2601
- $$renderer.push("<!--]-->");
2602
- } else {
2603
- $$renderer.push("<!--[!-->");
2604
- $$renderer.push("<!--]-->");
2605
- }
2606
- },
2607
- $$slots: { default: true }
2608
- });
2609
- $$renderer.push("<!--]-->");
2610
- } else {
2611
- $$renderer.push("<!--[!-->");
2612
- $$renderer.push("<!--]-->");
2613
- }
2614
- },
2615
- $$slots: { default: true }
2616
- });
2617
- $$renderer.push("<!--]-->");
2618
- } else {
2619
- $$renderer.push("<!--[!-->");
2620
- $$renderer.push("<!--]-->");
2621
- }
2622
- });
2623
- }
2624
- //#endregion
2625
- //#region src/routes/projects/_components/DefinitionEditDrawer.svelte
2626
- function DefinitionEditDrawer($$renderer, $$props) {
2627
- $$renderer.component(($$renderer) => {
2628
- /** Optional — when set, surfaces a Back link to return to the detail view. */
2629
- let { record, projects, computeServers, defaultComputeServerId = null, isSaving, initialTab = "versions", enableSharing, onClose, onSave, onDelete, onOpenRunner, onBack } = $$props;
2630
- let activeTab = initialTab === "shares" && !enableSharing ? "versions" : initialTab;
2631
- let displayName = record.displayName;
2632
- let description = record.description ?? "";
2633
- let category = record.category ?? "";
2634
- let tags = [...record.tags ?? []];
2635
- let projectId = record.projectId;
2636
- let computeServerId = record.computeServerId ?? null;
2637
- let status = record.status;
2638
- let userImageMode = void 0;
2639
- let coverImageUrl = record.coverImage ?? "";
2640
- let imageInput = void 0;
2641
- let imageHasFile = false;
2642
- let showDeleteConfirm = false;
2643
- let uploadingImage = false;
2644
- let pendingProjectId = null;
2645
- const pendingProject = derived(() => pendingProjectId ? projects.find((p) => p.id === pendingProjectId) ?? null : null);
2646
- const currentProject = derived(() => projects.find((p) => p.id === projectId) ?? null);
2647
- function handleProjectChange(nextId) {
2648
- if (nextId === projectId) return;
2649
- pendingProjectId = nextId;
2650
- }
2651
- function confirmProjectChange() {
2652
- if (pendingProjectId) projectId = pendingProjectId;
2653
- pendingProjectId = null;
2654
- }
2655
- function cancelProjectChange() {
2656
- pendingProjectId = null;
2657
- }
2658
- const imageMode = derived(() => userImageMode ?? (record.coverImage?.startsWith("/api/files/") ? "upload" : "url"));
2659
- const statusItems = [{
2660
- id: "draft",
2661
- label: "Draft — work in progress",
2662
- icon: Circle,
2663
- iconStyle: "color: var(--muted-foreground); fill: var(--muted-foreground);"
2664
- }, {
2665
- id: "published",
2666
- label: "Published — live and visible to runners",
2667
- icon: Circle,
2668
- iconStyle: "color: #22c55e; fill: #22c55e;"
2669
- }];
2670
- const computeServerItems = derived(() => computeServers.map((s) => ({
2671
- id: s.id,
2672
- label: s.id === defaultComputeServerId ? `${s.label} (Default)` : s.label
2673
- })));
2674
- async function handleImageUpload() {
2675
- if (!imageInput?.files?.length) return;
2676
- uploadingImage = true;
2677
- const formData = new FormData();
2678
- formData.append("image", imageInput.files[0]);
2679
- try {
2680
- const res = await fetch(`/api/v1/definitions/${record.guid}/image`, {
2681
- method: "POST",
2682
- body: formData
2683
- });
2684
- if (res.ok) {
2685
- toast.success("Cover image updated");
2686
- await invalidateAll();
2687
- } else {
2688
- const e = await res.json().catch(() => ({}));
2689
- toast.error(e.message || "Image upload failed");
2690
- }
2691
- } catch {
2692
- toast.error("Image upload failed");
2693
- } finally {
2694
- uploadingImage = false;
2695
- if (imageInput) imageInput.value = "";
2696
- imageHasFile = false;
2697
- }
2698
- }
2699
- function save() {
2700
- onSave(record.guid, {
2701
- displayName,
2702
- description: description || null,
2703
- category: category || null,
2704
- tags: tags.length ? tags : null,
2705
- coverImage: coverImageUrl || void 0,
2706
- status,
2707
- projectId: projectId || void 0,
2708
- computeServerId
2709
- });
2710
- }
2711
- let $$settled = true;
2712
- let $$inner_renderer;
2713
- function $$render_inner($$renderer) {
2714
- Drawer($$renderer, {
2715
- onClose,
2716
- ariaLabel: "Close edit drawer",
2717
- children: ($$renderer) => {
2718
- $$renderer.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> `);
2719
- Button($$renderer, {
2720
- variant: "ghost",
2721
- size: "icon",
2722
- onclick: onClose,
2723
- class: "h-8 w-8 shrink-0",
2724
- children: ($$renderer) => {
2725
- X($$renderer, { class: "h-4 w-4" });
2726
- },
2727
- $$slots: { default: true }
2728
- });
2729
- $$renderer.push(`<!----></div> `);
2730
- if (onBack) {
2731
- $$renderer.push("<!--[0-->");
2732
- $$renderer.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">`);
2733
- Arrow_left($$renderer, { class: "h-3 w-3" });
2734
- $$renderer.push(`<!----> Back to definition</button>`);
2735
- } else $$renderer.push("<!--[-1-->");
2736
- $$renderer.push(`<!--]--> `);
2737
- if (Tabs) {
2738
- $$renderer.push("<!--[-->");
2739
- Tabs($$renderer, {
2740
- class: "flex flex-1 flex-col overflow-hidden",
2741
- get value() {
2742
- return activeTab;
2743
- },
2744
- set value($$value) {
2745
- activeTab = $$value;
2746
- $$settled = false;
2747
- },
2748
- children: ($$renderer) => {
2749
- if (Tabs_list) {
2750
- $$renderer.push("<!--[-->");
2751
- Tabs_list($$renderer, {
2752
- class: `mx-6 grid w-auto ${enableSharing ? "grid-cols-3" : "grid-cols-2"} ${onBack ? "mt-2" : "mt-4"}`,
2753
- children: ($$renderer) => {
2754
- if (Tabs_trigger) {
2755
- $$renderer.push("<!--[-->");
2756
- Tabs_trigger($$renderer, {
2757
- value: "details",
2758
- children: ($$renderer) => {
2759
- $$renderer.push(`<!---->Details`);
2760
- },
2761
- $$slots: { default: true }
2762
- });
2763
- $$renderer.push("<!--]-->");
2764
- } else {
2765
- $$renderer.push("<!--[!-->");
2766
- $$renderer.push("<!--]-->");
2767
- }
2768
- $$renderer.push(` `);
2769
- if (Tabs_trigger) {
2770
- $$renderer.push("<!--[-->");
2771
- Tabs_trigger($$renderer, {
2772
- value: "versions",
2773
- children: ($$renderer) => {
2774
- $$renderer.push(`<!---->Versions`);
2775
- },
2776
- $$slots: { default: true }
2777
- });
2778
- $$renderer.push("<!--]-->");
2779
- } else {
2780
- $$renderer.push("<!--[!-->");
2781
- $$renderer.push("<!--]-->");
2782
- }
2783
- $$renderer.push(` `);
2784
- if (enableSharing) {
2785
- $$renderer.push("<!--[0-->");
2786
- if (Tabs_trigger) {
2787
- $$renderer.push("<!--[-->");
2788
- Tabs_trigger($$renderer, {
2789
- value: "shares",
2790
- children: ($$renderer) => {
2791
- $$renderer.push(`<!---->Share links`);
2792
- },
2793
- $$slots: { default: true }
2794
- });
2795
- $$renderer.push("<!--]-->");
2796
- } else {
2797
- $$renderer.push("<!--[!-->");
2798
- $$renderer.push("<!--]-->");
2799
- }
2800
- } else $$renderer.push("<!--[-1-->");
2801
- $$renderer.push(`<!--]-->`);
2802
- },
2803
- $$slots: { default: true }
2804
- });
2805
- $$renderer.push("<!--]-->");
2806
- } else {
2807
- $$renderer.push("<!--[!-->");
2808
- $$renderer.push("<!--]-->");
2809
- }
2810
- $$renderer.push(` `);
2811
- if (Tabs_content) {
2812
- $$renderer.push("<!--[-->");
2813
- Tabs_content($$renderer, {
2814
- value: "versions",
2815
- class: "mt-4 flex-1 overflow-y-auto px-6 py-5",
2816
- children: ($$renderer) => {
2817
- VersionsSection($$renderer, {
2818
- definitionGuid: record.guid,
2819
- liveVersionId: record.liveVersionId,
2820
- draftVersionId: record.draftVersionId,
2821
- onOpenRunner
2822
- });
2823
- },
2824
- $$slots: { default: true }
2825
- });
2826
- $$renderer.push("<!--]-->");
2827
- } else {
2828
- $$renderer.push("<!--[!-->");
2829
- $$renderer.push("<!--]-->");
2830
- }
2831
- $$renderer.push(` `);
2832
- if (Tabs_content) {
2833
- $$renderer.push("<!--[-->");
2834
- Tabs_content($$renderer, {
2835
- value: "details",
2836
- class: "mt-4 flex-1 space-y-5 overflow-y-auto px-6 py-5",
2837
- children: ($$renderer) => {
2838
- $$renderer.push(`<div class="space-y-1.5">`);
2839
- Label($$renderer, {
2840
- for: "edit-name",
2841
- children: ($$renderer) => {
2842
- $$renderer.push(`<!---->Display name`);
2843
- },
2844
- $$slots: { default: true }
2845
- });
2846
- $$renderer.push(`<!----> `);
2847
- Input($$renderer, {
2848
- id: "edit-name",
2849
- get value() {
2850
- return displayName;
2851
- },
2852
- set value($$value) {
2853
- displayName = $$value;
2854
- $$settled = false;
2855
- }
2856
- });
2857
- $$renderer.push(`<!----></div> <div class="space-y-1.5">`);
2858
- Label($$renderer, {
2859
- for: "edit-desc",
2860
- children: ($$renderer) => {
2861
- $$renderer.push(`<!---->Description`);
2862
- },
2863
- $$slots: { default: true }
2864
- });
2865
- $$renderer.push(`<!----> `);
2866
- Textarea($$renderer, {
2867
- id: "edit-desc",
2868
- rows: 3,
2869
- get value() {
2870
- return description;
2871
- },
2872
- set value($$value) {
2873
- description = $$value;
2874
- $$settled = false;
2875
- }
2876
- });
2877
- $$renderer.push(`<!----></div> <div class="space-y-1.5">`);
2878
- Label($$renderer, {
2879
- for: "edit-status",
2880
- children: ($$renderer) => {
2881
- $$renderer.push(`<!---->Status`);
2882
- },
2883
- $$slots: { default: true }
2884
- });
2885
- $$renderer.push(`<!----> `);
2886
- FilterableDropdown($$renderer, {
2887
- id: "edit-status",
2888
- items: statusItems,
2889
- value: status,
2890
- onChange: (id) => status = id
2891
- });
2892
- $$renderer.push(`<!----></div> <div class="grid grid-cols-2 gap-3"><div class="space-y-1.5">`);
2893
- Label($$renderer, {
2894
- for: "edit-cat",
2895
- children: ($$renderer) => {
2896
- $$renderer.push(`<!---->Category`);
2897
- },
2898
- $$slots: { default: true }
2899
- });
2900
- $$renderer.push(`<!----> `);
2901
- Input($$renderer, {
2902
- id: "edit-cat",
2903
- maxlength: 40,
2904
- placeholder: "e.g. Facade",
2905
- get value() {
2906
- return category;
2907
- },
2908
- set value($$value) {
2909
- category = $$value;
2910
- $$settled = false;
2911
- }
2912
- });
2913
- $$renderer.push(`<!----></div> <div class="space-y-1.5"><div class="flex items-center justify-between">`);
2914
- Label($$renderer, {
2915
- for: "edit-tags",
2916
- children: ($$renderer) => {
2917
- $$renderer.push(`<!---->Tags`);
2918
- },
2919
- $$slots: { default: true }
2920
- });
2921
- $$renderer.push(`<!----> <span class="text-muted-foreground text-xs">${escape_html(tags.length)}/5</span></div> `);
2922
- if (tags.length > 0) {
2923
- $$renderer.push("<!--[0-->");
2924
- $$renderer.push(`<div class="mb-1 flex flex-wrap gap-1"><!--[-->`);
2925
- const each_array = ensure_array_like(tags);
2926
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
2927
- let tag = each_array[$$index];
2928
- Badge($$renderer, {
2929
- variant: "outline",
2930
- class: "gap-1 text-xs",
2931
- children: ($$renderer) => {
2932
- $$renderer.push(`<!---->${escape_html(tag)} <button class="hover:opacity-70"${attr("aria-label", `Remove tag ${stringify(tag)}`)}>`);
2933
- X($$renderer, { class: "h-2.5 w-2.5" });
2934
- $$renderer.push(`<!----></button>`);
2935
- },
2936
- $$slots: { default: true }
2937
- });
2938
- }
2939
- $$renderer.push(`<!--]--></div>`);
2940
- } else $$renderer.push("<!--[-1-->");
2941
- $$renderer.push(`<!--]--> `);
2942
- Input($$renderer, {
2943
- id: "edit-tags",
2944
- placeholder: "Add tag + Enter",
2945
- disabled: tags.length >= 5,
2946
- onkeydown: (e) => {
2947
- if (e.key === "Enter") {
2948
- e.preventDefault();
2949
- const el = e.currentTarget;
2950
- const tag = el.value.trim();
2951
- if (tag && !tags.includes(tag) && tags.length < 5) {
2952
- tags = [...tags, tag];
2953
- el.value = "";
2954
- }
2955
- }
2956
- }
2957
- });
2958
- $$renderer.push(`<!----></div></div> `);
2959
- Separator($$renderer, {});
2960
- $$renderer.push(`<!----> <div class="space-y-2"><div class="flex items-center gap-2">`);
2961
- Image($$renderer, { class: "text-muted-foreground h-4 w-4" });
2962
- $$renderer.push(`<!----> `);
2963
- Label($$renderer, {
2964
- children: ($$renderer) => {
2965
- $$renderer.push(`<!---->Cover image`);
2966
- },
2967
- $$slots: { default: true }
2968
- });
2969
- $$renderer.push(`<!----></div> `);
2970
- ImageUploadField($$renderer, {
2971
- mode: imageMode(),
2972
- value: record.coverImage ?? "",
2973
- isUploading: uploadingImage,
2974
- hasFile: imageHasFile,
2975
- onModeChange: (m) => userImageMode = m,
2976
- onUpload: handleImageUpload,
2977
- onFileSelected: () => imageHasFile = !!imageInput?.files?.length,
2978
- onUrlChange: (url) => coverImageUrl = url,
2979
- get inputRef() {
2980
- return imageInput;
2981
- },
2982
- set inputRef($$value) {
2983
- imageInput = $$value;
2984
- $$settled = false;
2985
- }
2986
- });
2987
- $$renderer.push(`<!----></div> `);
2988
- if (projects.length > 1 || computeServers.length > 0) {
2989
- $$renderer.push("<!--[0-->");
2990
- $$renderer.push(`<div class="grid grid-cols-2 gap-3">`);
2991
- if (projects.length > 1) {
2992
- $$renderer.push("<!--[0-->");
2993
- $$renderer.push(`<div class="space-y-1.5">`);
2994
- Label($$renderer, {
2995
- for: "edit-proj",
2996
- children: ($$renderer) => {
2997
- $$renderer.push(`<!---->Project`);
2998
- },
2999
- $$slots: { default: true }
3000
- });
3001
- $$renderer.push(`<!----> `);
3002
- ProjectPicker($$renderer, {
3003
- id: "edit-proj",
3004
- projects,
3005
- value: projectId,
3006
- onChange: handleProjectChange
3007
- });
3008
- $$renderer.push(`<!----></div>`);
3009
- } else $$renderer.push("<!--[-1-->");
3010
- $$renderer.push(`<!--]--> `);
3011
- if (computeServers.length > 0) {
3012
- $$renderer.push("<!--[0-->");
3013
- $$renderer.push(`<div class="space-y-1.5">`);
3014
- Label($$renderer, {
3015
- for: "edit-srv",
3016
- children: ($$renderer) => {
3017
- $$renderer.push(`<!---->Compute server`);
3018
- },
3019
- $$slots: { default: true }
3020
- });
3021
- $$renderer.push(`<!----> `);
3022
- FilterableDropdown($$renderer, {
3023
- id: "edit-srv",
3024
- items: computeServerItems(),
3025
- value: computeServerId ?? defaultComputeServerId ?? "",
3026
- onChange: (picked) => {
3027
- computeServerId = picked === defaultComputeServerId ? null : picked;
3028
- }
3029
- });
3030
- $$renderer.push(`<!----></div>`);
3031
- } else $$renderer.push("<!--[-1-->");
3032
- $$renderer.push(`<!--]--></div>`);
3033
- } else $$renderer.push("<!--[-1-->");
3034
- $$renderer.push(`<!--]-->`);
3035
- },
3036
- $$slots: { default: true }
3037
- });
3038
- $$renderer.push("<!--]-->");
3039
- } else {
3040
- $$renderer.push("<!--[!-->");
3041
- $$renderer.push("<!--]-->");
3042
- }
3043
- $$renderer.push(` `);
3044
- if (enableSharing) {
3045
- $$renderer.push("<!--[0-->");
3046
- if (Tabs_content) {
3047
- $$renderer.push("<!--[-->");
3048
- Tabs_content($$renderer, {
3049
- value: "shares",
3050
- class: "mt-4 flex-1 overflow-y-auto px-6 py-5",
3051
- children: ($$renderer) => {
3052
- ShareLinkSection($$renderer, { definitionGuid: record.guid });
3053
- },
3054
- $$slots: { default: true }
3055
- });
3056
- $$renderer.push("<!--]-->");
3057
- } else {
3058
- $$renderer.push("<!--[!-->");
3059
- $$renderer.push("<!--]-->");
3060
- }
3061
- } else $$renderer.push("<!--[-1-->");
3062
- $$renderer.push(`<!--]-->`);
3063
- },
3064
- $$slots: { default: true }
3065
- });
3066
- $$renderer.push("<!--]-->");
3067
- } else {
3068
- $$renderer.push("<!--[!-->");
3069
- $$renderer.push("<!--]-->");
3070
- }
3071
- $$renderer.push(` <div class="border-border flex shrink-0 items-center justify-between border-t px-6 py-4">`);
3072
- Button($$renderer, {
3073
- variant: "ghost",
3074
- size: "sm",
3075
- onclick: () => showDeleteConfirm = true,
3076
- class: "text-destructive hover:text-destructive gap-1.5 px-2",
3077
- children: ($$renderer) => {
3078
- Trash_2($$renderer, { class: "h-3.5 w-3.5" });
3079
- $$renderer.push(`<!----> Delete`);
3080
- },
3081
- $$slots: { default: true }
3082
- });
3083
- $$renderer.push(`<!----> <div class="flex gap-2">`);
3084
- Button($$renderer, {
3085
- variant: "outline",
3086
- size: "sm",
3087
- onclick: onClose,
3088
- children: ($$renderer) => {
3089
- $$renderer.push(`<!---->Cancel`);
3090
- },
3091
- $$slots: { default: true }
3092
- });
3093
- $$renderer.push(`<!----> `);
3094
- if (activeTab === "details") {
3095
- $$renderer.push("<!--[0-->");
3096
- Button($$renderer, {
3097
- size: "sm",
3098
- disabled: isSaving,
3099
- onclick: save,
3100
- children: ($$renderer) => {
3101
- $$renderer.push(`<!---->${escape_html(isSaving ? "Saving…" : "Save")}`);
3102
- },
3103
- $$slots: { default: true }
3104
- });
3105
- } else $$renderer.push("<!--[-1-->");
3106
- $$renderer.push(`<!--]--></div></div>`);
3107
- }});
3108
- $$renderer.push(`<!----> `);
3109
- if (Root) {
3110
- $$renderer.push("<!--[-->");
3111
- Root($$renderer, {
3112
- open: showDeleteConfirm,
3113
- onOpenChange: (o) => showDeleteConfirm = o,
3114
- children: ($$renderer) => {
3115
- if (Alert_dialog_content) {
3116
- $$renderer.push("<!--[-->");
3117
- Alert_dialog_content($$renderer, {
3118
- children: ($$renderer) => {
3119
- if (Alert_dialog_header) {
3120
- $$renderer.push("<!--[-->");
3121
- Alert_dialog_header($$renderer, {
3122
- children: ($$renderer) => {
3123
- if (Alert_dialog_title) {
3124
- $$renderer.push("<!--[-->");
3125
- Alert_dialog_title($$renderer, {
3126
- children: ($$renderer) => {
3127
- $$renderer.push(`<!---->Delete "${escape_html(record.displayName)}"?`);
3128
- },
3129
- $$slots: { default: true }
3130
- });
3131
- $$renderer.push("<!--]-->");
3132
- } else {
3133
- $$renderer.push("<!--[!-->");
3134
- $$renderer.push("<!--]-->");
3135
- }
3136
- $$renderer.push(` `);
3137
- if (Alert_dialog_description) {
3138
- $$renderer.push("<!--[-->");
3139
- Alert_dialog_description($$renderer, {
3140
- children: ($$renderer) => {
3141
- $$renderer.push(`<!---->This removes the definition and all its files. This cannot be undone.`);
3142
- },
3143
- $$slots: { default: true }
3144
- });
3145
- $$renderer.push("<!--]-->");
3146
- } else {
3147
- $$renderer.push("<!--[!-->");
3148
- $$renderer.push("<!--]-->");
3149
- }
3150
- },
3151
- $$slots: { default: true }
3152
- });
3153
- $$renderer.push("<!--]-->");
3154
- } else {
3155
- $$renderer.push("<!--[!-->");
3156
- $$renderer.push("<!--]-->");
3157
- }
3158
- $$renderer.push(` `);
3159
- if (Alert_dialog_footer) {
3160
- $$renderer.push("<!--[-->");
3161
- Alert_dialog_footer($$renderer, {
3162
- children: ($$renderer) => {
3163
- if (Alert_dialog_cancel) {
3164
- $$renderer.push("<!--[-->");
3165
- Alert_dialog_cancel($$renderer, {
3166
- children: ($$renderer) => {
3167
- $$renderer.push(`<!---->Cancel`);
3168
- },
3169
- $$slots: { default: true }
3170
- });
3171
- $$renderer.push("<!--]-->");
3172
- } else {
3173
- $$renderer.push("<!--[!-->");
3174
- $$renderer.push("<!--]-->");
3175
- }
3176
- $$renderer.push(` `);
3177
- if (Alert_dialog_action) {
3178
- $$renderer.push("<!--[-->");
3179
- Alert_dialog_action($$renderer, {
3180
- onclick: () => onDelete(record.guid),
3181
- children: ($$renderer) => {
3182
- $$renderer.push(`<!---->Delete`);
3183
- },
3184
- $$slots: { default: true }
3185
- });
3186
- $$renderer.push("<!--]-->");
3187
- } else {
3188
- $$renderer.push("<!--[!-->");
3189
- $$renderer.push("<!--]-->");
3190
- }
3191
- },
3192
- $$slots: { default: true }
3193
- });
3194
- $$renderer.push("<!--]-->");
3195
- } else {
3196
- $$renderer.push("<!--[!-->");
3197
- $$renderer.push("<!--]-->");
3198
- }
3199
- },
3200
- $$slots: { default: true }
3201
- });
3202
- $$renderer.push("<!--]-->");
3203
- } else {
3204
- $$renderer.push("<!--[!-->");
3205
- $$renderer.push("<!--]-->");
3206
- }
3207
- },
3208
- $$slots: { default: true }
3209
- });
3210
- $$renderer.push("<!--]-->");
3211
- } else {
3212
- $$renderer.push("<!--[!-->");
3213
- $$renderer.push("<!--]-->");
3214
- }
3215
- $$renderer.push(` `);
3216
- if (Root) {
3217
- $$renderer.push("<!--[-->");
3218
- Root($$renderer, {
3219
- open: pendingProjectId !== null,
3220
- onOpenChange: (o) => {
3221
- if (!o) cancelProjectChange();
3222
- },
3223
- children: ($$renderer) => {
3224
- if (Alert_dialog_content) {
3225
- $$renderer.push("<!--[-->");
3226
- Alert_dialog_content($$renderer, {
3227
- children: ($$renderer) => {
3228
- if (Alert_dialog_header) {
3229
- $$renderer.push("<!--[-->");
3230
- Alert_dialog_header($$renderer, {
3231
- children: ($$renderer) => {
3232
- if (Alert_dialog_title) {
3233
- $$renderer.push("<!--[-->");
3234
- Alert_dialog_title($$renderer, {
3235
- children: ($$renderer) => {
3236
- $$renderer.push(`<!---->Move to a different project?`);
3237
- },
3238
- $$slots: { default: true }
3239
- });
3240
- $$renderer.push("<!--]-->");
3241
- } else {
3242
- $$renderer.push("<!--[!-->");
3243
- $$renderer.push("<!--]-->");
3244
- }
3245
- $$renderer.push(` `);
3246
- if (Alert_dialog_description) {
3247
- $$renderer.push("<!--[-->");
3248
- Alert_dialog_description($$renderer, {
3249
- children: ($$renderer) => {
3250
- $$renderer.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
3251
- accordingly.${escape_html(enableSharing ? " Existing share links keep working." : "")}`);
3252
- },
3253
- $$slots: { default: true }
3254
- });
3255
- $$renderer.push("<!--]-->");
3256
- } else {
3257
- $$renderer.push("<!--[!-->");
3258
- $$renderer.push("<!--]-->");
3259
- }
3260
- },
3261
- $$slots: { default: true }
3262
- });
3263
- $$renderer.push("<!--]-->");
3264
- } else {
3265
- $$renderer.push("<!--[!-->");
3266
- $$renderer.push("<!--]-->");
3267
- }
3268
- $$renderer.push(` `);
3269
- if (Alert_dialog_footer) {
3270
- $$renderer.push("<!--[-->");
3271
- Alert_dialog_footer($$renderer, {
3272
- children: ($$renderer) => {
3273
- if (Alert_dialog_cancel) {
3274
- $$renderer.push("<!--[-->");
3275
- Alert_dialog_cancel($$renderer, {
3276
- onclick: cancelProjectChange,
3277
- children: ($$renderer) => {
3278
- $$renderer.push(`<!---->Cancel`);
3279
- },
3280
- $$slots: { default: true }
3281
- });
3282
- $$renderer.push("<!--]-->");
3283
- } else {
3284
- $$renderer.push("<!--[!-->");
3285
- $$renderer.push("<!--]-->");
3286
- }
3287
- $$renderer.push(` `);
3288
- if (Alert_dialog_action) {
3289
- $$renderer.push("<!--[-->");
3290
- Alert_dialog_action($$renderer, {
3291
- onclick: confirmProjectChange,
3292
- children: ($$renderer) => {
3293
- $$renderer.push(`<!---->Move`);
3294
- },
3295
- $$slots: { default: true }
3296
- });
3297
- $$renderer.push("<!--]-->");
3298
- } else {
3299
- $$renderer.push("<!--[!-->");
3300
- $$renderer.push("<!--]-->");
3301
- }
3302
- },
3303
- $$slots: { default: true }
3304
- });
3305
- $$renderer.push("<!--]-->");
3306
- } else {
3307
- $$renderer.push("<!--[!-->");
3308
- $$renderer.push("<!--]-->");
3309
- }
3310
- },
3311
- $$slots: { default: true }
3312
- });
3313
- $$renderer.push("<!--]-->");
3314
- } else {
3315
- $$renderer.push("<!--[!-->");
3316
- $$renderer.push("<!--]-->");
3317
- }
3318
- },
3319
- $$slots: { default: true }
3320
- });
3321
- $$renderer.push("<!--]-->");
3322
- } else {
3323
- $$renderer.push("<!--[!-->");
3324
- $$renderer.push("<!--]-->");
3325
- }
3326
- }
3327
- do {
3328
- $$settled = true;
3329
- $$inner_renderer = $$renderer.copy();
3330
- $$render_inner($$inner_renderer);
3331
- } while (!$$settled);
3332
- $$renderer.subsume($$inner_renderer);
3333
- });
3334
- }
3335
- //#endregion
3336
- //#region src/routes/projects/+page.svelte
3337
- function _page($$renderer, $$props) {
3338
- $$renderer.component(($$renderer) => {
3339
- var $$store_subs;
3340
- let { data } = $$props;
3341
- const enableSharing = derived(() => !!store_get($$store_subs ??= {}, "$page", page).data.flags?.enableSharing);
3342
- let searchQuery = "";
3343
- let activeProjectId = null;
3344
- let viewMode = "grid";
3345
- let drawerRecord = null;
3346
- let editingDefinitionId = null;
3347
- let editingProjectId = null;
3348
- let deletingProjectId = null;
3349
- let showAddModal = false;
3350
- let editCameFromDetail = false;
3351
- let editInitialTab = "versions";
3352
- let addingDefinition = false;
3353
- let savingDefinitionId = null;
3354
- const filtered = derived(() => {
3355
- let records = data.records;
3356
- if (activeProjectId) records = records.filter((r) => r.projectId === activeProjectId);
3357
- if (searchQuery.trim()) {
3358
- const q = searchQuery.toLowerCase();
3359
- records = records.filter((r) => r.displayName?.toLowerCase().includes(q) || r.description?.toLowerCase().includes(q) || r.tags?.some((t) => t.toLowerCase().includes(q)));
3360
- }
3361
- return records;
3362
- });
3363
- const editingRecord = derived(() => editingDefinitionId ? data.records.find((r) => r.guid === editingDefinitionId) ?? null : null);
3364
- const activeProject = derived(() => activeProjectId ? data.projects.find((p) => p.id === activeProjectId) ?? null : null);
3365
- const canAddDefinition = derived(() => activeProject() ? activeProject().canEdit : data.projects.some((p) => p.canEdit));
3366
- const editableProjects = derived(() => data.projects.filter((p) => p.canEdit));
3367
- const editingProject = derived(() => editingProjectId ? data.projects.find((p) => p.id === editingProjectId) ?? null : null);
3368
- const deletingProject = derived(() => deletingProjectId ? data.projects.find((p) => p.id === deletingProjectId) ?? null : null);
3369
- function projectName(id) {
3370
- return data.projects.find((p) => p.id === id)?.name ?? "";
3371
- }
3372
- function projectVisibility(id) {
3373
- return data.projects.find((p) => p.id === id)?.visibility;
3374
- }
3375
- function serverNameFor(record) {
3376
- const servers = data.computeServers;
3377
- if (servers.length === 0) return void 0;
3378
- const pinned = record.computeServerId ? servers.find((s) => s.id === record.computeServerId) : void 0;
3379
- const fallback = servers.find((s) => s.id === data.defaultComputeServerId) ?? servers[0];
3380
- return (pinned ?? fallback)?.label;
3381
- }
3382
- function recordCanEdit(record) {
3383
- return data.projects.find((p) => p.id === record.projectId)?.canEdit ?? false;
3384
- }
3385
- async function errorMessage(res, fallback) {
3386
- if (res.headers.get("content-type")?.includes("application/json")) {
3387
- const e = await res.json().catch(() => null);
3388
- return e?.message || e?.error?.message || `${fallback} (${res.status})`;
3389
- }
3390
- return `${fallback} (${res.status})`;
3391
- }
3392
- async function saveDefinition(guid, patch) {
3393
- savingDefinitionId = guid;
3394
- try {
3395
- const res = await fetch(`/api/v1/definitions/${guid}`, {
3396
- method: "PATCH",
3397
- headers: { "Content-Type": "application/json" },
3398
- body: JSON.stringify(patch)
3399
- });
3400
- if (res.ok) {
3401
- toast.success("Definition saved");
3402
- editingDefinitionId = null;
3403
- drawerRecord = null;
3404
- await invalidateAll();
3405
- } else toast.error(await errorMessage(res, "Save failed"));
3406
- } catch (e) {
3407
- toast.error("Save failed: " + (e instanceof Error ? e.message : "Unknown error"));
3408
- } finally {
3409
- savingDefinitionId = null;
3410
- }
3411
- }
3412
- async function deleteDefinition(guid) {
3413
- const rec = data.records.find((r) => r.guid === guid);
3414
- try {
3415
- const res = await fetch(`/api/v1/definitions/${guid}`, { method: "DELETE" });
3416
- if (res.ok) {
3417
- toast.success(`"${rec?.displayName ?? "Definition"}" deleted`);
3418
- editingDefinitionId = null;
3419
- await invalidateAll();
3420
- } else toast.error(await errorMessage(res, "Delete failed"));
3421
- } catch {
3422
- toast.error("Delete failed");
3423
- }
3424
- }
3425
- async function saveProject(id, patch) {
3426
- const res = await fetch(`/api/v1/projects/${id}`, {
3427
- method: "PATCH",
3428
- headers: { "Content-Type": "application/json" },
3429
- body: JSON.stringify(patch)
3430
- });
3431
- if (res.ok) {
3432
- toast.success("Project saved");
3433
- editingProjectId = null;
3434
- await invalidateAll();
3435
- } else toast.error(await errorMessage(res, "Failed to save project"));
3436
- }
3437
- async function deleteProject(id) {
3438
- const res = await fetch(`/api/v1/projects/${id}`, { method: "DELETE" });
3439
- if (res.ok) {
3440
- toast.success("Project deleted");
3441
- if (activeProjectId === id) activeProjectId = data.projects.find((p) => p.id !== id)?.id ?? null;
3442
- deletingProjectId = null;
3443
- editingProjectId = null;
3444
- await invalidateAll();
3445
- } else toast.error(await errorMessage(res, "Failed to delete project"));
3446
- }
3447
- async function updateMemberRole(projectId, userId, role) {
3448
- if ((await fetch(`/api/v1/projects/${projectId}/members/${userId}`, {
3449
- method: "PATCH",
3450
- headers: { "Content-Type": "application/json" },
3451
- body: JSON.stringify({ role })
3452
- })).ok) await invalidateAll();
3453
- else toast.error("Failed to update role");
3454
- }
3455
- async function removeMember(projectId, userId) {
3456
- if ((await fetch(`/api/v1/projects/${projectId}/members/${userId}`, { method: "DELETE" })).ok) await invalidateAll();
3457
- else toast.error("Failed to remove member");
3458
- }
3459
- let $$settled = true;
3460
- let $$inner_renderer;
3461
- function $$render_inner($$renderer) {
3462
- head("rqn88j", $$renderer, ($$renderer) => {
3463
- $$renderer.title(($$renderer) => {
3464
- $$renderer.push(`<title>Projects</title>`);
3465
- });
3466
- });
3467
- $$renderer.push(`<div class="flex h-full overflow-hidden">`);
3468
- ProjectSidebar($$renderer, {
3469
- projects: data.projects,
3470
- records: data.records,
3471
- activeProjectId,
3472
- canManageProjects: data.canManageProjects});
3473
- $$renderer.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">`);
3474
- {
3475
- function actions($$renderer) {
3476
- if (data.canManageProjects && activeProject()?.canManage) {
3477
- $$renderer.push("<!--[0-->");
3478
- Button($$renderer, {
3479
- variant: "outline",
3480
- size: "sm",
3481
- onclick: () => editingProjectId = activeProject().id,
3482
- children: ($$renderer) => {
3483
- Settings($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
3484
- $$renderer.push(`<!----> Project settings`);
3485
- },
3486
- $$slots: { default: true }
3487
- });
3488
- } else $$renderer.push("<!--[-1-->");
3489
- $$renderer.push(`<!--]--> `);
3490
- if (canAddDefinition()) {
3491
- $$renderer.push("<!--[0-->");
3492
- Button($$renderer, {
3493
- size: "sm",
3494
- onclick: () => showAddModal = true,
3495
- children: ($$renderer) => {
3496
- Plus($$renderer, { class: "mr-1.5 h-3.5 w-3.5" });
3497
- $$renderer.push(`<!----> Add definition`);
3498
- },
3499
- $$slots: { default: true }
3500
- });
3501
- } else $$renderer.push("<!--[-1-->");
3502
- $$renderer.push(`<!--]-->`);
3503
- }
3504
- SectionHeader($$renderer, {
3505
- class: "mb-0",
3506
- eyebrow: activeProject() ? activeProject().name : "All projects",
3507
- title: "Definitions",
3508
- description: activeProject()?.description ?? (!activeProject() ? "Definitions across every project in this organization." : void 0),
3509
- actions});
3510
- }
3511
- $$renderer.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">`);
3512
- Search($$renderer, {
3513
- placeholder: "Search by name, description, tags…",
3514
- clearable: true,
3515
- get value() {
3516
- return searchQuery;
3517
- },
3518
- set value($$value) {
3519
- searchQuery = $$value;
3520
- $$settled = false;
3521
- }
3522
- });
3523
- $$renderer.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">`);
3524
- ViewToggle($$renderer, {
3525
- mode: viewMode,
3526
- size: "sm",
3527
- onChange: (m) => viewMode = m
3528
- });
3529
- $$renderer.push(`<!----></div></div> `);
3530
- if (filtered().length === 0) {
3531
- $$renderer.push("<!--[0-->");
3532
- EmptyState($$renderer, {
3533
- size: "lg",
3534
- title: "No definitions found",
3535
- description: searchQuery ? "Try adjusting your search" : "Add your first definition to get started"
3536
- });
3537
- } else if (viewMode === "grid") {
3538
- $$renderer.push("<!--[1-->");
3539
- $$renderer.push(`<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"><!--[-->`);
3540
- const each_array = ensure_array_like(filtered());
3541
- for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
3542
- let record = each_array[$$index];
3543
- DefinitionCard($$renderer, {
3544
- record,
3545
- showStatus: true,
3546
- onOpen: (r) => drawerRecord = r,
3547
- projectName: activeProjectId === null ? projectName(record.projectId) : void 0,
3548
- projectVisibility: activeProjectId === null ? projectVisibility(record.projectId) : void 0,
3549
- serverName: serverNameFor(record)
3550
- });
3551
- }
3552
- $$renderer.push(`<!--]--></div>`);
3553
- } else {
3554
- $$renderer.push("<!--[-1-->");
3555
- DefinitionListView($$renderer, {
3556
- records: filtered(),
3557
- projects: data.projects});
3558
- }
3559
- $$renderer.push(`<!--]--></div></div></div> `);
3560
- if (drawerRecord) {
3561
- $$renderer.push("<!--[0-->");
3562
- DefinitionDetailDrawer($$renderer, {
3563
- record: drawerRecord,
3564
- projectName: projectName(drawerRecord.projectId),
3565
- canEdit: recordCanEdit(drawerRecord),
3566
- showShare: enableSharing(),
3567
- onClose: () => drawerRecord = null,
3568
- onEdit: (r) => {
3569
- editInitialTab = "details";
3570
- editingDefinitionId = r.guid;
3571
- editCameFromDetail = true;
3572
- drawerRecord = null;
3573
- },
3574
- onShare: (r) => {
3575
- editInitialTab = "shares";
3576
- editingDefinitionId = r.guid;
3577
- editCameFromDetail = true;
3578
- drawerRecord = null;
3579
- },
3580
- onOpenRunner: (guid, channel, versionId) => goto()
3581
- });
3582
- } else $$renderer.push("<!--[-1-->");
3583
- $$renderer.push(`<!--]--> `);
3584
- if (editingRecord()) {
3585
- $$renderer.push("<!--[0-->");
3586
- $$renderer.push(`<!---->`);
3587
- DefinitionEditDrawer($$renderer, {
3588
- record: editingRecord(),
3589
- projects: data.projects,
3590
- computeServers: data.computeServers,
3591
- defaultComputeServerId: data.defaultComputeServerId,
3592
- isSaving: savingDefinitionId === editingRecord().guid,
3593
- initialTab: editInitialTab,
3594
- enableSharing: enableSharing(),
3595
- onClose: () => {
3596
- editingDefinitionId = null;
3597
- editCameFromDetail = false;
3598
- editInitialTab = "versions";
3599
- },
3600
- onBack: editCameFromDetail ? () => {
3601
- drawerRecord = editingRecord();
3602
- editingDefinitionId = null;
3603
- editCameFromDetail = false;
3604
- } : void 0,
3605
- onSave: saveDefinition,
3606
- onDelete: deleteDefinition,
3607
- onOpenRunner: (guid, channel, versionId) => goto()
3608
- });
3609
- $$renderer.push(`<!---->`);
3610
- } else $$renderer.push("<!--[-1-->");
3611
- $$renderer.push(`<!--]--> `);
3612
- if (editingProject() && data.canManageProjects && editingProject().canManage) {
3613
- $$renderer.push("<!--[0-->");
3614
- ProjectSettingsDialog($$renderer, {
3615
- project: editingProject(),
3616
- users: data.users,
3617
- open: editingProjectId !== null,
3618
- onOpenChange: (o) => {
3619
- if (!o) editingProjectId = null;
3620
- },
3621
- onSave: saveProject,
3622
- onDelete: (id) => {
3623
- editingProjectId = null;
3624
- deletingProjectId = id;
3625
- },
3626
- onUpdateMemberRole: updateMemberRole,
3627
- onRemoveMember: removeMember
3628
- });
3629
- } else $$renderer.push("<!--[-1-->");
3630
- $$renderer.push(`<!--]--> `);
3631
- if (Root) {
3632
- $$renderer.push("<!--[-->");
3633
- Root($$renderer, {
3634
- open: deletingProjectId !== null,
3635
- onOpenChange: (o) => {
3636
- if (!o) deletingProjectId = null;
3637
- },
3638
- children: ($$renderer) => {
3639
- if (Alert_dialog_content) {
3640
- $$renderer.push("<!--[-->");
3641
- Alert_dialog_content($$renderer, {
3642
- children: ($$renderer) => {
3643
- if (Alert_dialog_header) {
3644
- $$renderer.push("<!--[-->");
3645
- Alert_dialog_header($$renderer, {
3646
- children: ($$renderer) => {
3647
- if (Alert_dialog_title) {
3648
- $$renderer.push("<!--[-->");
3649
- Alert_dialog_title($$renderer, {
3650
- children: ($$renderer) => {
3651
- $$renderer.push(`<!---->Delete "${escape_html(deletingProject()?.name ?? "")}"?`);
3652
- },
3653
- $$slots: { default: true }
3654
- });
3655
- $$renderer.push("<!--]-->");
3656
- } else {
3657
- $$renderer.push("<!--[!-->");
3658
- $$renderer.push("<!--]-->");
3659
- }
3660
- $$renderer.push(` `);
3661
- if (Alert_dialog_description) {
3662
- $$renderer.push("<!--[-->");
3663
- Alert_dialog_description($$renderer, {
3664
- children: ($$renderer) => {
3665
- $$renderer.push(`<!---->This will remove the project and all member assignments. Definitions will become unassigned.`);
3666
- },
3667
- $$slots: { default: true }
3668
- });
3669
- $$renderer.push("<!--]-->");
3670
- } else {
3671
- $$renderer.push("<!--[!-->");
3672
- $$renderer.push("<!--]-->");
3673
- }
3674
- },
3675
- $$slots: { default: true }
3676
- });
3677
- $$renderer.push("<!--]-->");
3678
- } else {
3679
- $$renderer.push("<!--[!-->");
3680
- $$renderer.push("<!--]-->");
3681
- }
3682
- $$renderer.push(` `);
3683
- if (Alert_dialog_footer) {
3684
- $$renderer.push("<!--[-->");
3685
- Alert_dialog_footer($$renderer, {
3686
- children: ($$renderer) => {
3687
- if (Alert_dialog_cancel) {
3688
- $$renderer.push("<!--[-->");
3689
- Alert_dialog_cancel($$renderer, {
3690
- children: ($$renderer) => {
3691
- $$renderer.push(`<!---->Cancel`);
3692
- },
3693
- $$slots: { default: true }
3694
- });
3695
- $$renderer.push("<!--]-->");
3696
- } else {
3697
- $$renderer.push("<!--[!-->");
3698
- $$renderer.push("<!--]-->");
3699
- }
3700
- $$renderer.push(` `);
3701
- if (Alert_dialog_action) {
3702
- $$renderer.push("<!--[-->");
3703
- Alert_dialog_action($$renderer, {
3704
- onclick: () => deletingProjectId && deleteProject(deletingProjectId),
3705
- children: ($$renderer) => {
3706
- $$renderer.push(`<!---->Delete`);
3707
- },
3708
- $$slots: { default: true }
3709
- });
3710
- $$renderer.push("<!--]-->");
3711
- } else {
3712
- $$renderer.push("<!--[!-->");
3713
- $$renderer.push("<!--]-->");
3714
- }
3715
- },
3716
- $$slots: { default: true }
3717
- });
3718
- $$renderer.push("<!--]-->");
3719
- } else {
3720
- $$renderer.push("<!--[!-->");
3721
- $$renderer.push("<!--]-->");
3722
- }
3723
- },
3724
- $$slots: { default: true }
3725
- });
3726
- $$renderer.push("<!--]-->");
3727
- } else {
3728
- $$renderer.push("<!--[!-->");
3729
- $$renderer.push("<!--]-->");
3730
- }
3731
- },
3732
- $$slots: { default: true }
3733
- });
3734
- $$renderer.push("<!--]-->");
3735
- } else {
3736
- $$renderer.push("<!--[!-->");
3737
- $$renderer.push("<!--]-->");
3738
- }
3739
- $$renderer.push(` `);
3740
- AddDefinitionDialog($$renderer, {
3741
- open: showAddModal,
3742
- isAdding: addingDefinition,
3743
- projects: editableProjects(),
3744
- defaultProjectId: activeProject()?.canEdit ? activeProjectId : editableProjects()[0]?.id,
3745
- computeServers: data.computeServers,
3746
- defaultComputeServerId: data.defaultComputeServerId,
3747
- showProjectDropdown: editableProjects().length > 1,
3748
- onOpenChange: (o) => showAddModal = o});
3749
- $$renderer.push(`<!---->`);
3750
- }
3751
- do {
3752
- $$settled = true;
3753
- $$inner_renderer = $$renderer.copy();
3754
- $$render_inner($$inner_renderer);
3755
- } while (!$$settled);
3756
- $$renderer.subsume($$inner_renderer);
3757
- if ($$store_subs) unsubscribe_stores($$store_subs);
3758
- });
3759
- }
3760
-
3761
- export { _page as default };
3762
- //# sourceMappingURL=_page.svelte.js-f-lvRtgi.js.map