@selvajs/selva 4.16.0 → 4.16.2

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