@selvajs/selva 4.6.0-beta.2 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/build/client/_app/immutable/assets/0.Cj1PUDYF.css +1 -0
  2. package/build/client/_app/immutable/assets/0.Cj1PUDYF.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.Cj1PUDYF.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{Dj6REzZ0.js → B3863r4K.js} +1 -1
  5. package/build/client/_app/immutable/chunks/B3863r4K.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/B3863r4K.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{o-qHmMxg.js → B7HUdsZm.js} +1 -1
  8. package/build/client/_app/immutable/chunks/B7HUdsZm.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/B7HUdsZm.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{KecTfFG2.js → ByprRtK5.js} +1 -1
  11. package/build/client/_app/immutable/chunks/ByprRtK5.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/ByprRtK5.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{Cd8uUagh.js → Cf84tWpN.js} +1 -1
  14. package/build/client/_app/immutable/chunks/Cf84tWpN.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/Cf84tWpN.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{D-RnPGVi.js → CoQ9fTF5.js} +1 -1
  17. package/build/client/_app/immutable/chunks/CoQ9fTF5.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/CoQ9fTF5.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{DE1IAae-.js → CpLycSEC.js} +4 -4
  20. package/build/client/_app/immutable/chunks/CpLycSEC.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/CpLycSEC.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/{BNlGWnEa.js → DYVN_iHa.js} +2 -2
  23. package/build/client/_app/immutable/chunks/DYVN_iHa.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/DYVN_iHa.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/{Dh9wssNG.js → Dc6oAxlV.js} +1 -1
  26. package/build/client/_app/immutable/chunks/Dc6oAxlV.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/Dc6oAxlV.js.gz +0 -0
  28. package/build/client/_app/immutable/entry/app.C2qtLXu2.js +2 -0
  29. package/build/client/_app/immutable/entry/app.C2qtLXu2.js.br +0 -0
  30. package/build/client/_app/immutable/entry/app.C2qtLXu2.js.gz +0 -0
  31. package/build/client/_app/immutable/entry/start.8SkoDI6l.js +1 -0
  32. package/build/client/_app/immutable/entry/start.8SkoDI6l.js.br +2 -0
  33. package/build/client/_app/immutable/entry/start.8SkoDI6l.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{1.h5RSNGbs.js → 1.BZeDeTb6.js} +1 -1
  35. package/build/client/_app/immutable/nodes/1.BZeDeTb6.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/1.BZeDeTb6.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{11.BrUohDzR.js → 11.RXCFeYZu.js} +1 -1
  38. package/build/client/_app/immutable/nodes/11.RXCFeYZu.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/11.RXCFeYZu.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{13.RPUAXFD4.js → 13.wdYbd877.js} +1 -1
  41. package/build/client/_app/immutable/nodes/13.wdYbd877.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/13.wdYbd877.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{14.DD25MrcN.js → 14.DD7XD9GU.js} +1 -1
  44. package/build/client/_app/immutable/nodes/14.DD7XD9GU.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/14.DD7XD9GU.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{15.2borWKNj.js → 15.DY0SZIUd.js} +13 -13
  47. package/build/client/_app/immutable/nodes/15.DY0SZIUd.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/15.DY0SZIUd.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{16.AnMZqiO6.js → 16.C1v8VywM.js} +1 -1
  50. package/build/client/_app/immutable/nodes/16.C1v8VywM.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/16.C1v8VywM.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{17.MCt65051.js → 17.o9x0mNbV.js} +1 -1
  53. package/build/client/_app/immutable/nodes/17.o9x0mNbV.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/17.o9x0mNbV.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{19.6aT-fTMy.js → 19.CUaj7-cs.js} +1 -1
  56. package/build/client/_app/immutable/nodes/19.CUaj7-cs.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/19.CUaj7-cs.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{2.DTLt5gvF.js → 2.Byp7Cy5O.js} +1 -1
  59. package/build/client/_app/immutable/nodes/2.Byp7Cy5O.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/2.Byp7Cy5O.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{20.CpXK8jYA.js → 20.BBJjjtVo.js} +64 -64
  62. package/build/client/_app/immutable/nodes/20.BBJjjtVo.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/20.BBJjjtVo.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{21.hMALoCev.js → 21.H0xJhKOR.js} +1 -1
  65. package/build/client/_app/immutable/nodes/21.H0xJhKOR.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/21.H0xJhKOR.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/23.CzZJ1Z4F.js +16 -0
  68. package/build/client/_app/immutable/nodes/23.CzZJ1Z4F.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/23.CzZJ1Z4F.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{24.D4e0bX6T.js → 24.BdClZySL.js} +1 -1
  71. package/build/client/_app/immutable/nodes/24.BdClZySL.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/24.BdClZySL.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{27.CBtqq6qp.js → 27.Sx8VQZPb.js} +1 -1
  74. package/build/client/_app/immutable/nodes/27.Sx8VQZPb.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/27.Sx8VQZPb.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{28.2dbj6GEG.js → 28.DM3lB66C.js} +1 -1
  77. package/build/client/_app/immutable/nodes/28.DM3lB66C.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/28.DM3lB66C.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{29.Cni5D37m.js → 29.DMxRfN-X.js} +1 -1
  80. package/build/client/_app/immutable/nodes/29.DMxRfN-X.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/29.DMxRfN-X.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{3.CfZ37YEr.js → 3.Ch9SZOx0.js} +1 -1
  83. package/build/client/_app/immutable/nodes/3.Ch9SZOx0.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/3.Ch9SZOx0.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{30.B5u2_6d1.js → 30.B4uslO3W.js} +1 -1
  86. package/build/client/_app/immutable/nodes/30.B4uslO3W.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/30.B4uslO3W.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{5.Co5caC3o.js → 5.sJES-uLE.js} +1 -1
  89. package/build/client/_app/immutable/nodes/5.sJES-uLE.js.br +1 -0
  90. package/build/client/_app/immutable/nodes/5.sJES-uLE.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{6.PNCZDQUQ.js → 6.Dnp2ke2O.js} +1 -1
  92. package/build/client/_app/immutable/nodes/6.Dnp2ke2O.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/6.Dnp2ke2O.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/{7.B-MS6ohL.js → 7.D0_g6ne3.js} +1 -1
  95. package/build/client/_app/immutable/nodes/7.D0_g6ne3.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/7.D0_g6ne3.js.gz +0 -0
  97. package/build/client/_app/immutable/nodes/{8.BuLcFKAl.js → 8.Ba7__1HU.js} +1 -1
  98. package/build/client/_app/immutable/nodes/8.Ba7__1HU.js.br +0 -0
  99. package/build/client/_app/immutable/nodes/8.Ba7__1HU.js.gz +0 -0
  100. package/build/client/_app/immutable/nodes/9.BqTmDQ0D.js +1 -0
  101. package/build/client/_app/immutable/nodes/9.BqTmDQ0D.js.br +0 -0
  102. package/build/client/_app/immutable/nodes/9.BqTmDQ0D.js.gz +0 -0
  103. package/build/client/_app/version.json +1 -1
  104. package/build/client/_app/version.json.br +0 -0
  105. package/build/client/_app/version.json.gz +0 -0
  106. package/build/handler.js +4 -4
  107. package/build/index.js +4 -4
  108. package/build/server/chunks/chunks/{AppHeader.js-DPS1L7af.js → AppHeader.js-D1BAf8Eq.js} +2 -2
  109. package/build/server/chunks/chunks/{AppHeader.js-DPS1L7af.js.map → AppHeader.js-D1BAf8Eq.js.map} +1 -1
  110. package/build/server/chunks/chunks/{UserChip.js-BD3_PDH3.js → UserChip.js-DIRuYUCH.js} +2 -2
  111. package/build/server/chunks/chunks/{UserChip.js-BD3_PDH3.js.map → UserChip.js-DIRuYUCH.js.map} +1 -1
  112. package/build/server/chunks/chunks/{access.server.js-7luP5O4P.js → access.server.js-x_KrjYJP.js} +16 -6
  113. package/build/server/chunks/chunks/access.server.js-x_KrjYJP.js.map +1 -0
  114. package/build/server/chunks/chunks/{api-errors.js-DjgsTHzx.js → api-errors.js-B1VX-zf8.js} +4 -4
  115. package/build/server/chunks/chunks/{api-errors.js-DjgsTHzx.js.map → api-errors.js-B1VX-zf8.js.map} +1 -1
  116. package/build/server/chunks/chunks/{auth-bootstrap.server.js-Bg-Qy-YX.js → auth-bootstrap.server.js-C3M4bN44.js} +3 -3
  117. package/build/server/chunks/chunks/{auth-bootstrap.server.js-Bg-Qy-YX.js.map → auth-bootstrap.server.js-C3M4bN44.js.map} +1 -1
  118. package/build/server/chunks/chunks/{bootHealth.server.js-C24EAEVt.js → bootHealth.server.js-o9cAZ837.js} +3 -3
  119. package/build/server/chunks/chunks/{bootHealth.server.js-C24EAEVt.js.map → bootHealth.server.js-o9cAZ837.js.map} +1 -1
  120. package/build/server/chunks/chunks/{context.js-CYsGbpHa.js → context.js-D8E0GFTw.js} +57 -2
  121. package/build/server/chunks/chunks/context.js-D8E0GFTw.js.map +1 -0
  122. package/build/server/chunks/chunks/{index4.js-CMkITbZa.js → index3.js-CMkITbZa.js} +1 -1
  123. package/build/server/chunks/chunks/{index4.js-CMkITbZa.js.map → index3.js-CMkITbZa.js.map} +1 -1
  124. package/build/server/chunks/chunks/{index3.js-DBDmmwF4.js → index4.js-DBDmmwF4.js} +1 -1
  125. package/build/server/chunks/chunks/{index3.js-DBDmmwF4.js.map → index4.js-DBDmmwF4.js.map} +1 -1
  126. package/build/server/chunks/chunks/{internal.js-Xh6As0I_.js → internal.js-DFETyO32.js} +3 -3
  127. package/build/server/chunks/chunks/{internal.js-Xh6As0I_.js.map → internal.js-DFETyO32.js.map} +1 -1
  128. package/build/server/chunks/chunks/{package.js-CRz9GLaw.js → package.js-CGBcIxLn.js} +2 -2
  129. package/build/server/chunks/chunks/package.js-CGBcIxLn.js.map +1 -0
  130. package/build/server/chunks/chunks/{permissions-compat.server.js-BRYePqvR.js → permissions-compat.server.js-BfoBZYSH.js} +2 -2
  131. package/build/server/chunks/chunks/{permissions-compat.server.js-BRYePqvR.js.map → permissions-compat.server.js-BfoBZYSH.js.map} +1 -1
  132. package/build/server/chunks/chunks/{permissions.server.js-D61RQTaQ.js → permissions.server.js-B1Spnvnp.js} +2 -2
  133. package/build/server/chunks/chunks/{permissions.server.js-D61RQTaQ.js.map → permissions.server.js-B1Spnvnp.js.map} +1 -1
  134. package/build/server/chunks/chunks/{providers.server.js-CvFPEaVE.js → providers.server.js-Sbk117pY.js} +99 -12
  135. package/build/server/chunks/chunks/providers.server.js-Sbk117pY.js.map +1 -0
  136. package/build/server/chunks/chunks/{resolve.server.js-C-Ts05L6.js → resolve.server.js-oRLjLsp2.js} +3 -3
  137. package/build/server/chunks/chunks/{resolve.server.js-C-Ts05L6.js.map → resolve.server.js-oRLjLsp2.js.map} +1 -1
  138. package/build/server/chunks/chunks/{types2.js-DdHhYSMF.js → types.js-DdHhYSMF.js} +1 -1
  139. package/build/server/chunks/chunks/types.js-DdHhYSMF.js.map +1 -0
  140. package/build/server/chunks/chunks/{utils4.js-CzzZn2eq.js → utils4.js-DvnSECfA.js} +2 -2
  141. package/build/server/chunks/chunks/{utils4.js-CzzZn2eq.js.map → utils4.js-DvnSECfA.js.map} +1 -1
  142. package/build/server/chunks/entries/endpoints/admin/api/compute/{_server.ts.js-BgLRpUtK.js → _server.ts.js-At2WPXTO.js} +6 -6
  143. package/build/server/chunks/entries/endpoints/admin/api/compute/{_server.ts.js-BgLRpUtK.js.map → _server.ts.js-At2WPXTO.js.map} +1 -1
  144. package/build/server/chunks/entries/endpoints/admin/api/compute/actions/{_server.ts.js-D5dm9VRE.js → _server.ts.js-C7IxEmV_.js} +6 -6
  145. package/build/server/chunks/entries/endpoints/admin/api/compute/actions/{_server.ts.js-D5dm9VRE.js.map → _server.ts.js-C7IxEmV_.js.map} +1 -1
  146. package/build/server/chunks/entries/endpoints/admin/api/compute/status/{_server.ts.js-DH93ywqu.js → _server.ts.js-C3wKOPU7.js} +6 -6
  147. package/build/server/chunks/entries/endpoints/admin/api/compute/status/{_server.ts.js-DH93ywqu.js.map → _server.ts.js-C3wKOPU7.js.map} +1 -1
  148. package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/{_server.ts.js-34QzYRnZ.js → _server.ts.js-DPXSSURv.js} +6 -6
  149. package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/{_server.ts.js-34QzYRnZ.js.map → _server.ts.js-DPXSSURv.js.map} +1 -1
  150. package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/_server.ts.js-C3h2a4jh.js +78 -0
  151. package/build/server/chunks/entries/endpoints/admin/api/orgs/_id_/assets/_kind_/_server.ts.js-C3h2a4jh.js.map +1 -0
  152. package/build/server/chunks/entries/endpoints/admin/api/orgs/{_server.ts.js-DUYn5akM.js → _server.ts.js-CWC6GVdY.js} +6 -6
  153. package/build/server/chunks/entries/endpoints/admin/api/orgs/{_server.ts.js-DUYn5akM.js.map → _server.ts.js-CWC6GVdY.js.map} +1 -1
  154. package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/{_server.ts.js-CSz_2jk0.js → _server.ts.js-CS5ErY1M.js} +6 -6
  155. package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/{_server.ts.js-CSz_2jk0.js.map → _server.ts.js-CS5ErY1M.js.map} +1 -1
  156. package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/{_server.ts.js-LYhsZcY-.js → _server.ts.js-DU_gLDs6.js} +6 -6
  157. package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/_grantId_/{_server.ts.js-LYhsZcY-.js.map → _server.ts.js-DU_gLDs6.js.map} +1 -1
  158. package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/{_server.ts.js-C4K7fnEv.js → _server.ts.js-DMxdDGgQ.js} +6 -6
  159. package/build/server/chunks/entries/endpoints/admin/api/projects/_id_/grants/{_server.ts.js-C4K7fnEv.js.map → _server.ts.js-DMxdDGgQ.js.map} +1 -1
  160. package/build/server/chunks/entries/endpoints/admin/api/projects/{_server.ts.js-CUPY6YtC.js → _server.ts.js-DvyK27Fl.js} +6 -6
  161. package/build/server/chunks/entries/endpoints/admin/api/projects/{_server.ts.js-CUPY6YtC.js.map → _server.ts.js-DvyK27Fl.js.map} +1 -1
  162. package/build/server/chunks/entries/endpoints/admin/api/system/health/{_server.ts.js-DRad-P2w.js → _server.ts.js-CWBVKNdf.js} +6 -6
  163. package/build/server/chunks/entries/endpoints/admin/api/system/health/{_server.ts.js-DRad-P2w.js.map → _server.ts.js-CWBVKNdf.js.map} +1 -1
  164. package/build/server/chunks/entries/endpoints/admin/api/system/update/{_server.ts.js-B8GIFRxz.js → _server.ts.js-Bm7Ktrs8.js} +6 -6
  165. package/build/server/chunks/entries/endpoints/admin/api/system/update/{_server.ts.js-B8GIFRxz.js.map → _server.ts.js-Bm7Ktrs8.js.map} +1 -1
  166. package/build/server/chunks/entries/endpoints/admin/api/users/_id_/{_server.ts.js-D0CEHD1q.js → _server.ts.js-Bo9FJ97l.js} +8 -8
  167. package/build/server/chunks/entries/endpoints/admin/api/users/_id_/{_server.ts.js-D0CEHD1q.js.map → _server.ts.js-Bo9FJ97l.js.map} +1 -1
  168. package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/{_server.ts.js-CcyFddp3.js → _server.ts.js-DIwBwpnn.js} +6 -6
  169. package/build/server/chunks/entries/endpoints/admin/api/users/_id_/disable/{_server.ts.js-CcyFddp3.js.map → _server.ts.js-DIwBwpnn.js.map} +1 -1
  170. package/build/server/chunks/entries/endpoints/admin/api/users/{_server.ts.js-CH64KfJa.js → _server.ts.js-C1svi-Ld.js} +8 -8
  171. package/build/server/chunks/entries/endpoints/admin/api/users/{_server.ts.js-CH64KfJa.js.map → _server.ts.js-C1svi-Ld.js.map} +1 -1
  172. package/build/server/chunks/entries/endpoints/api/compute/{_server.ts.js-PDUSGtWL.js → _server.ts.js-D_9YzrC7.js} +12 -11
  173. package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-D_9YzrC7.js.map +1 -0
  174. package/build/server/chunks/entries/endpoints/api/compute/schema/{_server.ts.js-CRdaMbr5.js → _server.ts.js-CS7DNpIB.js} +6 -6
  175. package/build/server/chunks/entries/endpoints/api/compute/schema/{_server.ts.js-CRdaMbr5.js.map → _server.ts.js-CS7DNpIB.js.map} +1 -1
  176. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/{_server.ts.js-CcVYY8qB.js → _server.ts.js-C1bI6fx_.js} +6 -7
  177. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/_server.ts.js-C1bI6fx_.js.map +1 -0
  178. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/{_server.ts.js-Dty9JTwS.js → _server.ts.js-DG0bgqAW.js} +6 -7
  179. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js-DG0bgqAW.js.map +1 -0
  180. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/{_server.ts.js-B5Ff8JLF.js → _server.ts.js-vURofqUH.js} +6 -6
  181. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/{_server.ts.js-B5Ff8JLF.js.map → _server.ts.js-vURofqUH.js.map} +1 -1
  182. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/{_server.ts.js-BsxirCwS.js → _server.ts.js-tDF_TKqq.js} +6 -6
  183. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/publish/{_server.ts.js-BsxirCwS.js.map → _server.ts.js-tDF_TKqq.js.map} +1 -1
  184. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/{_server.ts.js-DTHTIL25.js → _server.ts.js-BKFS4e1E.js} +6 -6
  185. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_linkId_/{_server.ts.js-DTHTIL25.js.map → _server.ts.js-BKFS4e1E.js.map} +1 -1
  186. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/{_server.ts.js-BSk-XMi6.js → _server.ts.js-BTVUUKaO.js} +7 -7
  187. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js-BTVUUKaO.js.map +1 -0
  188. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/{_server.ts.js-DHaix4jV.js → _server.ts.js-BPTGDGrE.js} +6 -6
  189. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/{_server.ts.js-DHaix4jV.js.map → _server.ts.js-BPTGDGrE.js.map} +1 -1
  190. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/{_server.ts.js-DgsqUpvy.js → _server.ts.js-DmpMY-tz.js} +6 -6
  191. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/versions/_versionId_/{_server.ts.js-DgsqUpvy.js.map → _server.ts.js-DmpMY-tz.js.map} +1 -1
  192. package/build/server/chunks/entries/endpoints/api/definitions/{_server.ts.js-CSlXv8pl.js → _server.ts.js-CgDtxILD.js} +6 -7
  193. package/build/server/chunks/entries/endpoints/api/definitions/_server.ts.js-CgDtxILD.js.map +1 -0
  194. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-JYCUGi0C.js +66 -0
  195. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-JYCUGi0C.js.map +1 -0
  196. package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js---TaqOG4.js → _server.ts.js-CcG69a2b.js} +4 -4
  197. package/build/server/chunks/entries/endpoints/api/health/{_server.ts.js---TaqOG4.js.map → _server.ts.js-CcG69a2b.js.map} +1 -1
  198. package/build/server/chunks/entries/endpoints/api/invites/_id_/{_server.ts.js-D8PLQyfl.js → _server.ts.js-CpTViiM7.js} +6 -6
  199. package/build/server/chunks/entries/endpoints/api/invites/_id_/{_server.ts.js-D8PLQyfl.js.map → _server.ts.js-CpTViiM7.js.map} +1 -1
  200. package/build/server/chunks/entries/endpoints/api/invites/{_server.ts.js-bw5-SMCA.js → _server.ts.js-DveWNfQf.js} +7 -7
  201. package/build/server/chunks/entries/endpoints/api/invites/{_server.ts.js-bw5-SMCA.js.map → _server.ts.js-DveWNfQf.js.map} +1 -1
  202. package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/{_server.ts.js-xb3Bmd1T.js → _server.ts.js-DvBZkOHM.js} +5 -5
  203. package/build/server/chunks/entries/endpoints/api/me/starred/_guid_/{_server.ts.js-xb3Bmd1T.js.map → _server.ts.js-DvBZkOHM.js.map} +1 -1
  204. package/build/server/chunks/entries/endpoints/api/org/compute/{_server.ts.js-Md2vW_JR.js → _server.ts.js-jFG7Wq0K.js} +6 -6
  205. package/build/server/chunks/entries/endpoints/api/org/compute/{_server.ts.js-Md2vW_JR.js.map → _server.ts.js-jFG7Wq0K.js.map} +1 -1
  206. package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/{_server.ts.js-BnDxcUMX.js → _server.ts.js-B2ycg2AE.js} +6 -6
  207. package/build/server/chunks/entries/endpoints/api/orgs/_orgId_/members/_userId_/{_server.ts.js-BnDxcUMX.js.map → _server.ts.js-B2ycg2AE.js.map} +1 -1
  208. package/build/server/chunks/entries/endpoints/api/projects/_id_/{_server.ts.js-BDBuktWA.js → _server.ts.js-CNP_RE3t.js} +6 -6
  209. package/build/server/chunks/entries/endpoints/api/projects/_id_/{_server.ts.js-BDBuktWA.js.map → _server.ts.js-CNP_RE3t.js.map} +1 -1
  210. package/build/server/chunks/entries/endpoints/api/projects/_id_/members/{_server.ts.js-C6jztoDj.js → _server.ts.js-Bn5xwjry.js} +6 -6
  211. package/build/server/chunks/entries/endpoints/api/projects/_id_/members/{_server.ts.js-C6jztoDj.js.map → _server.ts.js-Bn5xwjry.js.map} +1 -1
  212. package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/{_server.ts.js-bnRRtqNM.js → _server.ts.js-BM6OdR6F.js} +6 -6
  213. package/build/server/chunks/entries/endpoints/api/projects/_id_/members/_userId_/{_server.ts.js-bnRRtqNM.js.map → _server.ts.js-BM6OdR6F.js.map} +1 -1
  214. package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/{_server.ts.js-CwPJVSlh.js → _server.ts.js-kZpX0JUe.js} +6 -6
  215. package/build/server/chunks/entries/endpoints/api/projects/_id_/reclaim/{_server.ts.js-CwPJVSlh.js.map → _server.ts.js-kZpX0JUe.js.map} +1 -1
  216. package/build/server/chunks/entries/endpoints/api/projects/{_server.ts.js-DFtwR98t.js → _server.ts.js-B-9USbyM.js} +6 -6
  217. package/build/server/chunks/entries/endpoints/api/projects/{_server.ts.js-DFtwR98t.js.map → _server.ts.js-B-9USbyM.js.map} +1 -1
  218. package/build/server/chunks/entries/endpoints/auth/email/callback/{_server.ts.js-RrX9l-Lx.js → _server.ts.js-BBxTiBOV.js} +6 -6
  219. package/build/server/chunks/entries/endpoints/auth/email/callback/{_server.ts.js-RrX9l-Lx.js.map → _server.ts.js-BBxTiBOV.js.map} +1 -1
  220. package/build/server/chunks/entries/endpoints/auth/supabase/callback/{_server.ts.js-BD35FhKQ.js → _server.ts.js-C2ENZLn1.js} +6 -6
  221. package/build/server/chunks/entries/endpoints/auth/supabase/callback/{_server.ts.js-BD35FhKQ.js.map → _server.ts.js-C2ENZLn1.js.map} +1 -1
  222. package/build/server/chunks/entries/endpoints/auth/supabase/start/{_server.ts.js-4f91Kqiq.js → _server.ts.js-DQkl2H6i.js} +5 -5
  223. package/build/server/chunks/entries/endpoints/auth/supabase/start/{_server.ts.js-4f91Kqiq.js.map → _server.ts.js-DQkl2H6i.js.map} +1 -1
  224. package/build/server/chunks/entries/{hooks.server.js-COXVYevB.js → hooks.server.js-CEJghe6K.js} +14 -8
  225. package/build/server/chunks/entries/hooks.server.js-CEJghe6K.js.map +1 -0
  226. package/build/server/chunks/entries/pages/{_layout.server.ts.js-GUqRaAWY.js → _layout.server.ts.js-BJt_Hh-8.js} +2 -2
  227. package/build/server/chunks/entries/pages/{_layout.server.ts.js-GUqRaAWY.js.map → _layout.server.ts.js-BJt_Hh-8.js.map} +1 -1
  228. package/build/server/chunks/entries/pages/{_page.svelte.js-DGriO6RK.js → _page.svelte.js-DYHX2cXS.js} +4 -4
  229. package/build/server/chunks/entries/pages/{_page.svelte.js-DGriO6RK.js.map → _page.svelte.js-DYHX2cXS.js.map} +1 -1
  230. package/build/server/chunks/entries/pages/accept-invite/{_page.server.ts.js-fXauaTHa.js → _page.server.ts.js-p0Ur2D2z.js} +3 -3
  231. package/build/server/chunks/entries/pages/accept-invite/{_page.server.ts.js-fXauaTHa.js.map → _page.server.ts.js-p0Ur2D2z.js.map} +1 -1
  232. package/build/server/chunks/entries/pages/admin/{_layout.server.ts.js-C0CrUKMc.js → _layout.server.ts.js-CwHlKomC.js} +3 -3
  233. package/build/server/chunks/entries/pages/admin/{_layout.server.ts.js-C0CrUKMc.js.map → _layout.server.ts.js-CwHlKomC.js.map} +1 -1
  234. package/build/server/chunks/entries/pages/admin/{_layout.svelte.js-m5w7AtPm.js → _layout.svelte.js-BQTc-1yu.js} +4 -4
  235. package/build/server/chunks/entries/pages/admin/{_layout.svelte.js-m5w7AtPm.js.map → _layout.svelte.js-BQTc-1yu.js.map} +1 -1
  236. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-C8t8e0PN.js +46 -0
  237. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-C8t8e0PN.js.map +1 -0
  238. package/build/server/chunks/entries/pages/admin/_page.svelte.js-pR3aIlUh.js +343 -0
  239. package/build/server/chunks/entries/pages/admin/_page.svelte.js-pR3aIlUh.js.map +1 -0
  240. package/build/server/chunks/entries/pages/admin/audit/{_page.server.ts.js-CmQyI84L.js → _page.server.ts.js-B2E4712L.js} +4 -4
  241. package/build/server/chunks/entries/pages/admin/audit/{_page.server.ts.js-CmQyI84L.js.map → _page.server.ts.js-B2E4712L.js.map} +1 -1
  242. package/build/server/chunks/entries/pages/admin/audit/{_page.svelte.js-DKnhcr0i.js → _page.svelte.js-Qrf4BkvU.js} +2 -2
  243. package/build/server/chunks/entries/pages/admin/audit/{_page.svelte.js-DKnhcr0i.js.map → _page.svelte.js-Qrf4BkvU.js.map} +1 -1
  244. package/build/server/chunks/entries/pages/admin/compute/{_page.server.ts.js-DbdS__5V.js → _page.server.ts.js-X7vOXVx_.js} +5 -5
  245. package/build/server/chunks/entries/pages/admin/compute/{_page.server.ts.js-DbdS__5V.js.map → _page.server.ts.js-X7vOXVx_.js.map} +1 -1
  246. package/build/server/chunks/entries/pages/admin/organizations/{_page.server.ts.js-B5gIXJYU.js → _page.server.ts.js-C9ThvUZW.js} +3 -3
  247. package/build/server/chunks/entries/pages/admin/organizations/{_page.server.ts.js-B5gIXJYU.js.map → _page.server.ts.js-C9ThvUZW.js.map} +1 -1
  248. package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.server.ts.js-DZo022zC.js → _page.server.ts.js-CbYQUdsT.js} +3 -3
  249. package/build/server/chunks/entries/pages/admin/projects/_id_/{_page.server.ts.js-DZo022zC.js.map → _page.server.ts.js-CbYQUdsT.js.map} +1 -1
  250. package/build/server/chunks/entries/pages/admin/projects/{_page.server.ts.js-DMCzmhaO.js → _page.server.ts.js-Bwzbc5U7.js} +3 -3
  251. package/build/server/chunks/entries/pages/admin/projects/{_page.server.ts.js-DMCzmhaO.js.map → _page.server.ts.js-Bwzbc5U7.js.map} +1 -1
  252. package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-DLtoSAtZ.js → _page.server.ts.js-CVJE8A-M.js} +5 -5
  253. package/build/server/chunks/entries/pages/admin/system/{_page.server.ts.js-DLtoSAtZ.js.map → _page.server.ts.js-CVJE8A-M.js.map} +1 -1
  254. package/build/server/chunks/entries/pages/admin/system/{_page.svelte.js-D40qz7h1.js → _page.svelte.js-DCVW0G-O.js} +11 -9
  255. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-DCVW0G-O.js.map +1 -0
  256. package/build/server/chunks/entries/pages/admin/users/{_page.server.ts.js-CoesHwNn.js → _page.server.ts.js-5CoqZYu7.js} +5 -5
  257. package/build/server/chunks/entries/pages/admin/users/{_page.server.ts.js-CoesHwNn.js.map → _page.server.ts.js-5CoqZYu7.js.map} +1 -1
  258. package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-B8lliTJb.js → _page.svelte.js-C4nuIM5S.js} +2 -2
  259. package/build/server/chunks/entries/pages/admin/users/{_page.svelte.js-B8lliTJb.js.map → _page.svelte.js-C4nuIM5S.js.map} +1 -1
  260. package/build/server/chunks/entries/pages/auth/email/start/{_page.server.ts.js-CytdSW2U.js → _page.server.ts.js-CJVxmsjJ.js} +2 -2
  261. package/build/server/chunks/entries/pages/auth/email/start/{_page.server.ts.js-CytdSW2U.js.map → _page.server.ts.js-CJVxmsjJ.js.map} +1 -1
  262. package/build/server/chunks/entries/pages/library/_guid_/{_page.server.ts.js-Bg8aqgge.js → _page.server.ts.js-CdsnDM7L.js} +32 -13
  263. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-CdsnDM7L.js.map +1 -0
  264. package/build/server/chunks/entries/pages/library/_guid_/{_page.svelte.js-64m55aas.js → _page.svelte.js-BKgJcySA.js} +25 -8
  265. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-BKgJcySA.js.map +1 -0
  266. package/build/server/chunks/entries/pages/library/{_page.server.ts.js-D4HeAIm2.js → _page.server.ts.js-CGuuDwN6.js} +3 -3
  267. package/build/server/chunks/entries/pages/library/{_page.server.ts.js-D4HeAIm2.js.map → _page.server.ts.js-CGuuDwN6.js.map} +1 -1
  268. package/build/server/chunks/entries/pages/library/{_page.svelte.js-DCyL3B8c.js → _page.svelte.js-5i6dSCN0.js} +4 -4
  269. package/build/server/chunks/entries/pages/library/{_page.svelte.js-DCyL3B8c.js.map → _page.svelte.js-5i6dSCN0.js.map} +1 -1
  270. package/build/server/chunks/entries/pages/login/{_page.server.ts.js-F5J46dSA.js → _page.server.ts.js-DKowuYxD.js} +2 -2
  271. package/build/server/chunks/entries/pages/login/{_page.server.ts.js-F5J46dSA.js.map → _page.server.ts.js-DKowuYxD.js.map} +1 -1
  272. package/build/server/chunks/entries/pages/projects/{_layout.server.ts.js-DKAa-WX1.js → _layout.server.ts.js-CNMJpFAK.js} +2 -2
  273. package/build/server/chunks/entries/pages/projects/{_layout.server.ts.js-DKAa-WX1.js.map → _layout.server.ts.js-CNMJpFAK.js.map} +1 -1
  274. package/build/server/chunks/entries/pages/projects/{_layout.svelte.js-CnS5vZg7.js → _layout.svelte.js-BhualuOA.js} +4 -4
  275. package/build/server/chunks/entries/pages/projects/{_layout.svelte.js-CnS5vZg7.js.map → _layout.svelte.js-BhualuOA.js.map} +1 -1
  276. package/build/server/chunks/entries/pages/projects/{_page.server.ts.js-BjETS8O4.js → _page.server.ts.js-DUSltMia.js} +5 -5
  277. package/build/server/chunks/entries/pages/projects/{_page.server.ts.js-BjETS8O4.js.map → _page.server.ts.js-DUSltMia.js.map} +1 -1
  278. package/build/server/chunks/entries/pages/projects/{_page.svelte.js-CAqDXDn_.js → _page.svelte.js-BJ2zx31e.js} +20 -36
  279. package/build/server/chunks/entries/pages/projects/_page.svelte.js-BJ2zx31e.js.map +1 -0
  280. package/build/server/chunks/entries/pages/setup/{_page.server.ts.js-CB9mBWz8.js → _page.server.ts.js-Bi43FW5A.js} +4 -4
  281. package/build/server/chunks/entries/pages/setup/{_page.server.ts.js-CB9mBWz8.js.map → _page.server.ts.js-Bi43FW5A.js.map} +1 -1
  282. package/build/server/chunks/entries/pages/team/{_layout.server.ts.js-BS38iHNQ.js → _layout.server.ts.js-kTT4BcsF.js} +2 -2
  283. package/build/server/chunks/entries/pages/team/{_layout.server.ts.js-BS38iHNQ.js.map → _layout.server.ts.js-kTT4BcsF.js.map} +1 -1
  284. package/build/server/chunks/entries/pages/team/{_layout.svelte.js-DsH0R5CP.js → _layout.svelte.js-fvMFVC5K.js} +4 -4
  285. package/build/server/chunks/entries/pages/team/{_layout.svelte.js-DsH0R5CP.js.map → _layout.svelte.js-fvMFVC5K.js.map} +1 -1
  286. package/build/server/chunks/entries/pages/team/{_page.server.ts.js-DaPu8CKH.js → _page.server.ts.js-BM0HjGiv.js} +2 -2
  287. package/build/server/chunks/entries/pages/team/{_page.server.ts.js-DaPu8CKH.js.map → _page.server.ts.js-BM0HjGiv.js.map} +1 -1
  288. package/build/server/chunks/entries/pages/team/compute/{_page.server.ts.js-Dzz9klWW.js → _page.server.ts.js-DSVbfXjJ.js} +4 -4
  289. package/build/server/chunks/entries/pages/team/compute/{_page.server.ts.js-Dzz9klWW.js.map → _page.server.ts.js-DSVbfXjJ.js.map} +1 -1
  290. package/build/server/chunks/entries/pages/team/members/{_page.server.ts.js-BXhljlWE.js → _page.server.ts.js-B8od5Y-v.js} +3 -3
  291. package/build/server/chunks/entries/pages/team/members/{_page.server.ts.js-BXhljlWE.js.map → _page.server.ts.js-B8od5Y-v.js.map} +1 -1
  292. package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-Dy7GTJgI.js → _page.svelte.js-DwmoagP7.js} +2 -2
  293. package/build/server/chunks/entries/pages/team/members/{_page.svelte.js-Dy7GTJgI.js.map → _page.svelte.js-DwmoagP7.js.map} +1 -1
  294. package/build/server/chunks/entries/pages/team/projects/{_page.server.ts.js-AfkRGQXS.js → _page.server.ts.js-BU18iBCr.js} +3 -3
  295. package/build/server/chunks/entries/pages/team/projects/{_page.server.ts.js-AfkRGQXS.js.map → _page.server.ts.js-BU18iBCr.js.map} +1 -1
  296. package/build/server/chunks/entries/pages/team/reclaim/{_page.server.ts.js--s1Cxd4d.js → _page.server.ts.js-DQR8CiW5.js} +3 -3
  297. package/build/server/chunks/entries/pages/team/reclaim/{_page.server.ts.js--s1Cxd4d.js.map → _page.server.ts.js-DQR8CiW5.js.map} +1 -1
  298. package/build/server/chunks/entries/pages/team/settings/{_page.server.ts.js-D8NAShTy.js → _page.server.ts.js-Ds2Ncl_k.js} +3 -3
  299. package/build/server/chunks/entries/pages/team/settings/{_page.server.ts.js-D8NAShTy.js.map → _page.server.ts.js-Ds2Ncl_k.js.map} +1 -1
  300. package/build/server/chunks/entries/pages/team/shares/{_page.server.ts.js-CcFjlszF.js → _page.server.ts.js-BPApcgSj.js} +2 -2
  301. package/build/server/chunks/entries/pages/team/shares/{_page.server.ts.js-CcFjlszF.js.map → _page.server.ts.js-BPApcgSj.js.map} +1 -1
  302. package/build/server/chunks/{handler-eGoBEmyE.js → handler-CCM1mFE_.js} +3 -3
  303. package/build/server/chunks/{handler-eGoBEmyE.js.map → handler-CCM1mFE_.js.map} +1 -1
  304. package/build/server/chunks/{index.js-CQyjqGjX.js → index.js-BijxEH4l.js} +2 -2
  305. package/build/server/chunks/{index.js-CQyjqGjX.js.map → index.js-BijxEH4l.js.map} +1 -1
  306. package/build/server/chunks/{manifest.js-CxNOAaGX.js → manifest.js-DGqOiurT.js} +79 -72
  307. package/build/server/chunks/manifest.js-DGqOiurT.js.map +1 -0
  308. package/build/server/chunks/nodes/{0.js-PcSktsRm.js → 0.js-CSowTy6s.js} +6 -6
  309. package/build/server/chunks/nodes/{0.js-PcSktsRm.js.map → 0.js-CSowTy6s.js.map} +1 -1
  310. package/build/server/chunks/nodes/{1.js-ChXxsPw8.js → 1.js-JkhEKVKD.js} +2 -2
  311. package/build/server/chunks/nodes/{1.js-ChXxsPw8.js.map → 1.js-JkhEKVKD.js.map} +1 -1
  312. package/build/server/chunks/nodes/{10.js-lAWyY09k.js → 10.js-H0usRAOJ.js} +8 -8
  313. package/build/server/chunks/nodes/{10.js-lAWyY09k.js.map → 10.js-H0usRAOJ.js.map} +1 -1
  314. package/build/server/chunks/nodes/{11.js-wBUVvXW0.js → 11.js-zU1ghV-s.js} +8 -8
  315. package/build/server/chunks/nodes/{11.js-wBUVvXW0.js.map → 11.js-zU1ghV-s.js.map} +1 -1
  316. package/build/server/chunks/nodes/{12.js-DKvWtkL1.js → 12.js-Hi7yiemE.js} +4 -4
  317. package/build/server/chunks/nodes/{12.js-DKvWtkL1.js.map → 12.js-Hi7yiemE.js.map} +1 -1
  318. package/build/server/chunks/nodes/{13.js-MWWbkVdz.js → 13.js-BecfMvrP.js} +5 -5
  319. package/build/server/chunks/nodes/{13.js-MWWbkVdz.js.map → 13.js-BecfMvrP.js.map} +1 -1
  320. package/build/server/chunks/nodes/{14.js-DQIXjqDn.js → 14.js-C_XeyRH1.js} +5 -5
  321. package/build/server/chunks/nodes/{14.js-DQIXjqDn.js.map → 14.js-C_XeyRH1.js.map} +1 -1
  322. package/build/server/chunks/nodes/{15.js-tr_0nQ1v.js → 15.js-Xfq1Hlsv.js} +10 -10
  323. package/build/server/chunks/nodes/{15.js-tr_0nQ1v.js.map → 15.js-Xfq1Hlsv.js.map} +1 -1
  324. package/build/server/chunks/nodes/{16.js--K69LBee.js → 16.js-DNAhQw2R.js} +10 -10
  325. package/build/server/chunks/nodes/{16.js--K69LBee.js.map → 16.js-DNAhQw2R.js.map} +1 -1
  326. package/build/server/chunks/nodes/{17.js-3ynjiEFj.js → 17.js-zS4c5CqT.js} +2 -2
  327. package/build/server/chunks/nodes/{17.js-3ynjiEFj.js.map → 17.js-zS4c5CqT.js.map} +1 -1
  328. package/build/server/chunks/nodes/{18.js-D85x42Pd.js → 18.js-DGcj7w2M.js} +4 -4
  329. package/build/server/chunks/nodes/{18.js-D85x42Pd.js.map → 18.js-DGcj7w2M.js.map} +1 -1
  330. package/build/server/chunks/nodes/{19.js-Cd61FaK8.js → 19.js-CCl0PnaY.js} +6 -6
  331. package/build/server/chunks/nodes/{19.js-Cd61FaK8.js.map → 19.js-CCl0PnaY.js.map} +1 -1
  332. package/build/server/chunks/nodes/{2.js-Chf3iuzZ.js → 2.js-DDmfVBSG.js} +9 -9
  333. package/build/server/chunks/nodes/{2.js-Chf3iuzZ.js.map → 2.js-DDmfVBSG.js.map} +1 -1
  334. package/build/server/chunks/nodes/{20.js-Dk1BWuh0.js → 20.js-DRI5Uoa0.js} +10 -10
  335. package/build/server/chunks/nodes/{20.js-Dk1BWuh0.js.map → 20.js-DRI5Uoa0.js.map} +1 -1
  336. package/build/server/chunks/nodes/{21.js-BYpV6WJ_.js → 21.js-HQMDLLY8.js} +5 -5
  337. package/build/server/chunks/nodes/{21.js-BYpV6WJ_.js.map → 21.js-HQMDLLY8.js.map} +1 -1
  338. package/build/server/chunks/nodes/{23.js-CXSDFivZ.js → 23.js-CUtU6P7T.js} +9 -9
  339. package/build/server/chunks/nodes/{23.js-CXSDFivZ.js.map → 23.js-CUtU6P7T.js.map} +1 -1
  340. package/build/server/chunks/nodes/{24.js-Bli5zZo9.js → 24.js-DEB1MpJO.js} +6 -6
  341. package/build/server/chunks/nodes/{24.js-Bli5zZo9.js.map → 24.js-DEB1MpJO.js.map} +1 -1
  342. package/build/server/chunks/nodes/{25.js-D7N3t-6a.js → 25.js-Dz_tw4Pc.js} +4 -4
  343. package/build/server/chunks/nodes/{25.js-D7N3t-6a.js.map → 25.js-Dz_tw4Pc.js.map} +1 -1
  344. package/build/server/chunks/nodes/{27.js-4swICaaU.js → 27.js-BFJkH0a-.js} +6 -6
  345. package/build/server/chunks/nodes/{27.js-4swICaaU.js.map → 27.js-BFJkH0a-.js.map} +1 -1
  346. package/build/server/chunks/nodes/{28.js-DDulqtuY.js → 28.js-Dmzn1oyt.js} +6 -6
  347. package/build/server/chunks/nodes/{28.js-DDulqtuY.js.map → 28.js-Dmzn1oyt.js.map} +1 -1
  348. package/build/server/chunks/nodes/{29.js-Dwc6d9G9.js → 29.js-CYk1T9YK.js} +5 -5
  349. package/build/server/chunks/nodes/{29.js-Dwc6d9G9.js.map → 29.js-CYk1T9YK.js.map} +1 -1
  350. package/build/server/chunks/nodes/{3.js-huEbI-kz.js → 3.js-CQMjn48j.js} +2 -2
  351. package/build/server/chunks/nodes/{3.js-huEbI-kz.js.map → 3.js-CQMjn48j.js.map} +1 -1
  352. package/build/server/chunks/nodes/{30.js-BakSwhvf.js → 30.js-IFuEWY3z.js} +5 -5
  353. package/build/server/chunks/nodes/{30.js-BakSwhvf.js.map → 30.js-IFuEWY3z.js.map} +1 -1
  354. package/build/server/chunks/nodes/{31.js-2-KePkFt.js → 31.js-C6TEDhTN.js} +4 -4
  355. package/build/server/chunks/nodes/{31.js-2-KePkFt.js.map → 31.js-C6TEDhTN.js.map} +1 -1
  356. package/build/server/chunks/nodes/{32.js-GzMFQ-NT.js → 32.js-B2ywocPi.js} +4 -4
  357. package/build/server/chunks/nodes/{32.js-GzMFQ-NT.js.map → 32.js-B2ywocPi.js.map} +1 -1
  358. package/build/server/chunks/nodes/{5.js-DoQQZ_BT.js → 5.js-tGFha7PK.js} +5 -5
  359. package/build/server/chunks/nodes/{5.js-DoQQZ_BT.js.map → 5.js-tGFha7PK.js.map} +1 -1
  360. package/build/server/chunks/nodes/{6.js-BIFmdlrm.js → 6.js-rduNGbyy.js} +6 -6
  361. package/build/server/chunks/nodes/{6.js-BIFmdlrm.js.map → 6.js-rduNGbyy.js.map} +1 -1
  362. package/build/server/chunks/nodes/{7.js-BRw0-0zy.js → 7.js-C5KuvcoZ.js} +3 -3
  363. package/build/server/chunks/nodes/{7.js-BRw0-0zy.js.map → 7.js-C5KuvcoZ.js.map} +1 -1
  364. package/build/server/chunks/nodes/{8.js-BnwlKqWj.js → 8.js-LI48HZY1.js} +5 -5
  365. package/build/server/chunks/nodes/{8.js-BnwlKqWj.js.map → 8.js-LI48HZY1.js.map} +1 -1
  366. package/build/server/chunks/nodes/9.js-ocRRXGJE.js +23 -0
  367. package/build/server/chunks/nodes/9.js-ocRRXGJE.js.map +1 -0
  368. package/package.json +5 -5
  369. package/build/client/_app/immutable/assets/0.Df7_lxfV.css +0 -1
  370. package/build/client/_app/immutable/assets/0.Df7_lxfV.css.br +0 -0
  371. package/build/client/_app/immutable/assets/0.Df7_lxfV.css.gz +0 -0
  372. package/build/client/_app/immutable/chunks/BNlGWnEa.js.br +0 -0
  373. package/build/client/_app/immutable/chunks/BNlGWnEa.js.gz +0 -0
  374. package/build/client/_app/immutable/chunks/Cd8uUagh.js.br +0 -0
  375. package/build/client/_app/immutable/chunks/Cd8uUagh.js.gz +0 -0
  376. package/build/client/_app/immutable/chunks/D-RnPGVi.js.br +0 -0
  377. package/build/client/_app/immutable/chunks/D-RnPGVi.js.gz +0 -0
  378. package/build/client/_app/immutable/chunks/DE1IAae-.js.br +0 -0
  379. package/build/client/_app/immutable/chunks/DE1IAae-.js.gz +0 -0
  380. package/build/client/_app/immutable/chunks/Dh9wssNG.js.br +0 -0
  381. package/build/client/_app/immutable/chunks/Dh9wssNG.js.gz +0 -0
  382. package/build/client/_app/immutable/chunks/Dj6REzZ0.js.br +0 -0
  383. package/build/client/_app/immutable/chunks/Dj6REzZ0.js.gz +0 -0
  384. package/build/client/_app/immutable/chunks/KecTfFG2.js.br +0 -0
  385. package/build/client/_app/immutable/chunks/KecTfFG2.js.gz +0 -0
  386. package/build/client/_app/immutable/chunks/o-qHmMxg.js.br +0 -0
  387. package/build/client/_app/immutable/chunks/o-qHmMxg.js.gz +0 -0
  388. package/build/client/_app/immutable/entry/app.BeT-AHPr.js +0 -2
  389. package/build/client/_app/immutable/entry/app.BeT-AHPr.js.br +0 -0
  390. package/build/client/_app/immutable/entry/app.BeT-AHPr.js.gz +0 -0
  391. package/build/client/_app/immutable/entry/start.CrvouL8l.js +0 -1
  392. package/build/client/_app/immutable/entry/start.CrvouL8l.js.br +0 -2
  393. package/build/client/_app/immutable/entry/start.CrvouL8l.js.gz +0 -0
  394. package/build/client/_app/immutable/nodes/1.h5RSNGbs.js.br +0 -0
  395. package/build/client/_app/immutable/nodes/1.h5RSNGbs.js.gz +0 -0
  396. package/build/client/_app/immutable/nodes/11.BrUohDzR.js.br +0 -0
  397. package/build/client/_app/immutable/nodes/11.BrUohDzR.js.gz +0 -0
  398. package/build/client/_app/immutable/nodes/13.RPUAXFD4.js.br +0 -0
  399. package/build/client/_app/immutable/nodes/13.RPUAXFD4.js.gz +0 -0
  400. package/build/client/_app/immutable/nodes/14.DD25MrcN.js.br +0 -0
  401. package/build/client/_app/immutable/nodes/14.DD25MrcN.js.gz +0 -0
  402. package/build/client/_app/immutable/nodes/15.2borWKNj.js.br +0 -0
  403. package/build/client/_app/immutable/nodes/15.2borWKNj.js.gz +0 -0
  404. package/build/client/_app/immutable/nodes/16.AnMZqiO6.js.br +0 -0
  405. package/build/client/_app/immutable/nodes/16.AnMZqiO6.js.gz +0 -0
  406. package/build/client/_app/immutable/nodes/17.MCt65051.js.br +0 -0
  407. package/build/client/_app/immutable/nodes/17.MCt65051.js.gz +0 -0
  408. package/build/client/_app/immutable/nodes/19.6aT-fTMy.js.br +0 -0
  409. package/build/client/_app/immutable/nodes/19.6aT-fTMy.js.gz +0 -0
  410. package/build/client/_app/immutable/nodes/2.DTLt5gvF.js.br +0 -0
  411. package/build/client/_app/immutable/nodes/2.DTLt5gvF.js.gz +0 -0
  412. package/build/client/_app/immutable/nodes/20.CpXK8jYA.js.br +0 -0
  413. package/build/client/_app/immutable/nodes/20.CpXK8jYA.js.gz +0 -0
  414. package/build/client/_app/immutable/nodes/21.hMALoCev.js.br +0 -0
  415. package/build/client/_app/immutable/nodes/21.hMALoCev.js.gz +0 -0
  416. package/build/client/_app/immutable/nodes/23.BHMRNMwo.js +0 -16
  417. package/build/client/_app/immutable/nodes/23.BHMRNMwo.js.br +0 -0
  418. package/build/client/_app/immutable/nodes/23.BHMRNMwo.js.gz +0 -0
  419. package/build/client/_app/immutable/nodes/24.D4e0bX6T.js.br +0 -0
  420. package/build/client/_app/immutable/nodes/24.D4e0bX6T.js.gz +0 -0
  421. package/build/client/_app/immutable/nodes/27.CBtqq6qp.js.br +0 -0
  422. package/build/client/_app/immutable/nodes/27.CBtqq6qp.js.gz +0 -0
  423. package/build/client/_app/immutable/nodes/28.2dbj6GEG.js.br +0 -0
  424. package/build/client/_app/immutable/nodes/28.2dbj6GEG.js.gz +0 -0
  425. package/build/client/_app/immutable/nodes/29.Cni5D37m.js.br +0 -0
  426. package/build/client/_app/immutable/nodes/29.Cni5D37m.js.gz +0 -0
  427. package/build/client/_app/immutable/nodes/3.CfZ37YEr.js.br +0 -0
  428. package/build/client/_app/immutable/nodes/3.CfZ37YEr.js.gz +0 -0
  429. package/build/client/_app/immutable/nodes/30.B5u2_6d1.js.br +0 -0
  430. package/build/client/_app/immutable/nodes/30.B5u2_6d1.js.gz +0 -0
  431. package/build/client/_app/immutable/nodes/5.Co5caC3o.js.br +0 -0
  432. package/build/client/_app/immutable/nodes/5.Co5caC3o.js.gz +0 -0
  433. package/build/client/_app/immutable/nodes/6.PNCZDQUQ.js.br +0 -0
  434. package/build/client/_app/immutable/nodes/6.PNCZDQUQ.js.gz +0 -0
  435. package/build/client/_app/immutable/nodes/7.B-MS6ohL.js.br +0 -0
  436. package/build/client/_app/immutable/nodes/7.B-MS6ohL.js.gz +0 -0
  437. package/build/client/_app/immutable/nodes/8.BuLcFKAl.js.br +0 -0
  438. package/build/client/_app/immutable/nodes/8.BuLcFKAl.js.gz +0 -0
  439. package/build/client/_app/immutable/nodes/9.KKtWtrqc.js +0 -1
  440. package/build/client/_app/immutable/nodes/9.KKtWtrqc.js.br +0 -0
  441. package/build/client/_app/immutable/nodes/9.KKtWtrqc.js.gz +0 -0
  442. package/build/server/chunks/chunks/access.server.js-7luP5O4P.js.map +0 -1
  443. package/build/server/chunks/chunks/context.js-CYsGbpHa.js.map +0 -1
  444. package/build/server/chunks/chunks/package.js-CRz9GLaw.js.map +0 -1
  445. package/build/server/chunks/chunks/providers.server.js-CvFPEaVE.js.map +0 -1
  446. package/build/server/chunks/chunks/types.js-DxzJoaA4.js +0 -11
  447. package/build/server/chunks/chunks/types.js-DxzJoaA4.js.map +0 -1
  448. package/build/server/chunks/chunks/types2.js-DdHhYSMF.js.map +0 -1
  449. package/build/server/chunks/entries/endpoints/api/compute/_server.ts.js-PDUSGtWL.js.map +0 -1
  450. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/_server.ts.js-CcVYY8qB.js.map +0 -1
  451. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/image/_filename_/_server.ts.js-Dty9JTwS.js.map +0 -1
  452. package/build/server/chunks/entries/endpoints/api/definitions/_guid_/share-links/_server.ts.js-BSk-XMi6.js.map +0 -1
  453. package/build/server/chunks/entries/endpoints/api/definitions/_server.ts.js-CSlXv8pl.js.map +0 -1
  454. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-BNV_mEcx.js +0 -51
  455. package/build/server/chunks/entries/endpoints/api/files/_...path_/_server.ts.js-BNV_mEcx.js.map +0 -1
  456. package/build/server/chunks/entries/hooks.server.js-COXVYevB.js.map +0 -1
  457. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-Ch_K9Eqm.js +0 -32
  458. package/build/server/chunks/entries/pages/admin/_page.server.ts.js-Ch_K9Eqm.js.map +0 -1
  459. package/build/server/chunks/entries/pages/admin/_page.svelte.js-Cazj7gb_.js +0 -173
  460. package/build/server/chunks/entries/pages/admin/_page.svelte.js-Cazj7gb_.js.map +0 -1
  461. package/build/server/chunks/entries/pages/admin/system/_page.svelte.js-D40qz7h1.js.map +0 -1
  462. package/build/server/chunks/entries/pages/library/_guid_/_page.server.ts.js-Bg8aqgge.js.map +0 -1
  463. package/build/server/chunks/entries/pages/library/_guid_/_page.svelte.js-64m55aas.js.map +0 -1
  464. package/build/server/chunks/entries/pages/projects/_page.svelte.js-CAqDXDn_.js.map +0 -1
  465. package/build/server/chunks/manifest.js-CxNOAaGX.js.map +0 -1
  466. package/build/server/chunks/nodes/9.js-BfWwYBB0.js +0 -23
  467. package/build/server/chunks/nodes/9.js-BfWwYBB0.js.map +0 -1
  468. /package/build/client/_app/immutable/nodes/{0.DbHFFbkB.js → 0.CpKGgbSx.js} +0 -0
  469. /package/build/client/_app/immutable/nodes/{0.DbHFFbkB.js.br → 0.CpKGgbSx.js.br} +0 -0
  470. /package/build/client/_app/immutable/nodes/{0.DbHFFbkB.js.gz → 0.CpKGgbSx.js.gz} +0 -0
@@ -1,4 +1,4 @@
1
- import"../chunks/DsnmJJEf.js";import{p as ve,a as ue,k as ce,$ as me,c as m,d as s,g as b,r as l,u as Y,f as $,n as P,t as E,i as fe}from"../chunks/BtOVeLcI.js";import{s as I}from"../chunks/BNpXeuQ_.js";import{a as o,f as v,c as F,t as w}from"../chunks/BoLtD6vo.js";import{i as p}from"../chunks/DAQN5y4A.js";import{e as he,a as pe,r as J,s as K}from"../chunks/22C0ZkpD.js";import{c as C}from"../chunks/ChEZL1UP.js";import{h as _e}from"../chunks/CTTkX-27.js";import{p as Q}from"../chunks/Cd8uUagh.js";import{C as V}from"../chunks/Mn4D08zE.js";import{A as W,a as X}from"../chunks/CiRf7cog.js";import{B as O}from"../chunks/mlApEF2J.js";import{L as U}from"../chunks/wegQDfR0.js";import{I as D}from"../chunks/CJvX1bCR.js";const Z=(S,t=fe)=>{var _=xe(),H=m(_),R=m(H);l(H);var q=s(H,2),T=m(q,!0);l(q),l(_),E(k=>{I(R,`Request headers (${t().length??""})`),I(T,k)},[()=>t().map(k=>`${k.name}: ${k.value}`).join(`
1
+ import"../chunks/DsnmJJEf.js";import{p as ve,a as ue,k as ce,$ as me,c as m,d as s,g as b,r as l,u as Y,f as $,n as P,t as E,i as fe}from"../chunks/BtOVeLcI.js";import{s as I}from"../chunks/BNpXeuQ_.js";import{a as o,f as v,c as F,t as w}from"../chunks/BoLtD6vo.js";import{i as p}from"../chunks/DAQN5y4A.js";import{e as he,a as pe,r as J,s as K}from"../chunks/22C0ZkpD.js";import{c as C}from"../chunks/ChEZL1UP.js";import{h as _e}from"../chunks/CTTkX-27.js";import{p as Q}from"../chunks/Cf84tWpN.js";import{C as V}from"../chunks/Mn4D08zE.js";import{A as W,a as X}from"../chunks/CiRf7cog.js";import{B as O}from"../chunks/mlApEF2J.js";import{L as U}from"../chunks/wegQDfR0.js";import{I as D}from"../chunks/CJvX1bCR.js";const Z=(S,t=fe)=>{var _=xe(),H=m(_),R=m(H);l(H);var q=s(H,2),T=m(q,!0);l(q),l(_),E(k=>{I(R,`Request headers (${t().length??""})`),I(T,k)},[()=>t().map(k=>`${k.name}: ${k.value}`).join(`
2
2
  `)]),o(S,_)};var xe=v('<details class="border-border rounded border p-3 text-xs"><summary class="text-muted-foreground cursor-pointer font-medium"> </summary> <pre class="text-muted-foreground mt-2 max-h-96 overflow-auto break-all whitespace-pre-wrap"> </pre></details>'),ge=v("<!> <!>",1),ye=v('<a class="block"><!></a>'),be=v('<div class="space-y-2"></div>'),Pe=v('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),we=v('<input type="hidden" name="redirectTo"/>'),ke=v('<form method="POST" action="/auth/email/start" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <!></form>'),Ae=v('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),qe=v('<input type="hidden" name="redirectTo"/>'),Ee=v('<form method="POST" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <!></form>'),He=v(`<div class="space-y-3"><p class="text-muted-foreground text-sm">This deployment uses forward-auth — sign-in happens upstream at your identity provider,
3
3
  not on this page. If you're seeing this page, your proxy didn't forward the identity
4
4
  headers. Check that:</p> <ul class="text-muted-foreground list-disc space-y-1 pl-5 text-xs"><li>You're reaching the app through the proxy, not directly</li> <li>The proxy authenticated you (visit the IdP first if needed)</li> <li>The proxy is forwarding the configured identity header</li></ul> <p class="text-muted-foreground text-xs">Operators: see <code>HEADER_AUTH_UPN_HEADER</code> and your proxy's forward-auth config.</p> <!></div>`),Te=v(`<div class="space-y-3"><p class="text-muted-foreground text-sm">You're signed in with your identity provider, but your account hasn't been granted access
@@ -0,0 +1,16 @@
1
+ import"../chunks/DsnmJJEf.js";import{s as m,F as Lt,g as e,u as U,h as o,p as tt,f,a as rt,c as s,i as Ur,r as n,aC as Er,d as a,t as X,n as u,b as ot,j as yt,bg as Fr,e as Or,$ as Lr}from"../chunks/BtOVeLcI.js";import{s as qt,r as Ft,p as Xe,c as _,b as Qt,d as Rr,a as Mr}from"../chunks/ChEZL1UP.js";import{e as br,a as at,d as wt,s as E}from"../chunks/BNpXeuQ_.js";import{p as zr,c as Ge,a as r,f as i,t as T}from"../chunks/BoLtD6vo.js";import{i as H}from"../chunks/DAQN5y4A.js";import{k as Vr}from"../chunks/SM988pE-.js";import{f as Gr,a as jt,c as pt,e as mt,i as $r,g as yr,b as Xt,r as St,j as nr}from"../chunks/22C0ZkpD.js";import{h as Br}from"../chunks/CTTkX-27.js";import{i as ct,g as _r}from"../chunks/DYVN_iHa.js";import{p as qr}from"../chunks/ByprRtK5.js";import{F as ir}from"../chunks/CeolKPEY.js";import{F as wr}from"../chunks/k1GnUs7f.js";import{D as Yt,a as Vt,b as Gt,c as Bt,R as Zt}from"../chunks/jiMRToiE.js";import{L as Qe}from"../chunks/wegQDfR0.js";import{I as ft}from"../chunks/CJvX1bCR.js";import{c as er,d as Pr,T as kr,a as Mt,b as zt}from"../chunks/BVUbFuzT.js";import{B as Ne}from"../chunks/mlApEF2J.js";import{U as ur,D as Wt,P as jr,F as Jr}from"../chunks/CFq1UfS7.js";import{B as Sr}from"../chunks/5fK69wOi.js";import{X as Pt}from"../chunks/Ca8xAcDY.js";import{t as Ce}from"../chunks/DTLLn7uD.js";import{b as fr,c as sr}from"../chunks/Bfsx6G_D.js";import{P as Kt}from"../chunks/BnS8rxFx.js";import{S as Cr}from"../chunks/CitY1SZ1.js";import{U as lr}from"../chunks/CfYcWYC1.js";import{U as hr}from"../chunks/BYQ2KYuV.js";import{T as tr}from"../chunks/BuBobyR7.js";import{E as pr}from"../chunks/Ct6ntSZV.js";import{U as Hr}from"../chunks/B3OAhCNZ.js";import{s as Wr,a as Kr,f as Dr,m as Qr,h as Xr,S as Yr,V as Zr,D as ea}from"../chunks/6P6fn4fQ.js";import{I as rr,c as ta}from"../chunks/BuC_QZkR.js";import{s as dr}from"../chunks/8uBOzWQA.js";import{a as ra,p as aa,c as oa,b as na,d as Ht,m as sa}from"../chunks/Bf2Kb0d4.js";import{R as Ct,A as Dt,a as It,b as Nt,c as Tt,d as At,e as Ut,f as Et}from"../chunks/T404WsWw.js";import{C as ia}from"../chunks/CpLycSEC.js";import{T as cr}from"../chunks/DllGpGf3.js";import{C as la}from"../chunks/LZnjyP_x.js";import{L as da}from"../chunks/BYVjhRZj.js";import{C as xr}from"../chunks/EVm4fAGL.js";import{A as ca}from"../chunks/DQtEKe83.js";import{S as va}from"../chunks/Bixcgta2.js";import{S as ua}from"../chunks/BTfzafVu.js";const fa=Symbol();class pa extends URLSearchParams{#e=m(0);#a=ga();#t=!1;#r(){if(!this.#a||this.#t)return;this.#t=!0;const t=this.toString();this.#a.search=t&&`?${t}`,this.#t=!1}[fa](t){if(!this.#t){this.#t=!0;for(const p of[...super.keys()])super.delete(p);for(const[p,j]of t)super.append(p,j);Lt(this.#e),this.#t=!1}}append(t,p){super.append(t,p),this.#r(),Lt(this.#e)}delete(t,p){var j=super.has(t,p);super.delete(t,p),j&&(this.#r(),Lt(this.#e))}get(t){return e(this.#e),super.get(t)}getAll(t){return e(this.#e),super.getAll(t)}has(t,p){return e(this.#e),super.has(t,p)}keys(){return e(this.#e),super.keys()}set(t,p){var j=super.getAll(t).join("");super.set(t,p),j!==super.getAll(t).join("")&&(this.#r(),Lt(this.#e))}sort(){super.sort(),this.#r(),Lt(this.#e)}toString(){return e(this.#e),super.toString()}values(){return e(this.#e),super.values()}entries(){return e(this.#e),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return e(this.#e),super.size}}let ma=null;function ga(){return ma}function _a(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const j=[["path",{d:"M12 13v8"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242"}],["path",{d:"m8 17 4-4 4 4"}]];rr(Pe,qt({name:"cloud-upload"},()=>p,{get iconNode(){return j}}))}function ha(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const j=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];rr(Pe,qt({name:"ellipsis"},()=>p,{get iconNode(){return j}}))}function xa(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const j=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2"}],["circle",{cx:"9",cy:"9",r:"2"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"}]];rr(Pe,qt({name:"image"},()=>p,{get iconNode(){return j}}))}function ba(Pe,t){let p=Ft(t,["$$slots","$$events","$$legacy"]);const j=[["circle",{cx:"18",cy:"5",r:"3"}],["circle",{cx:"6",cy:"12",r:"3"}],["circle",{cx:"18",cy:"19",r:"3"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49"}]];rr(Pe,qt({name:"share-2"},()=>p,{get iconNode(){return j}}))}const $a=oa({component:"separator",parts:["root"]});class mr{static create(t){return new mr(t)}opts;attachment;constructor(t){this.opts=t,this.attachment=ra(t.ref)}#e=U(()=>({id:this.opts.id.current,role:this.opts.decorative.current?"none":"separator","aria-orientation":this.opts.orientation.current,"aria-hidden":aa(this.opts.decorative.current),"data-orientation":this.opts.orientation.current,[$a.root]:"",...this.attachment}));get props(){return e(this.#e)}set props(t){o(this.#e,t)}}var ya=i("<div><!></div>");function wa(Pe,t){const p=zr();tt(t,!0);let j=Xe(t,"id",19,()=>na(p)),F=Xe(t,"ref",15,null),L=Xe(t,"decorative",3,!1),G=Xe(t,"orientation",3,"horizontal"),h=Ft(t,["$$slots","$$events","$$legacy","id","ref","child","children","decorative","orientation"]);const w=mr.create({ref:Ht(()=>F(),oe=>F(oe)),id:Ht(()=>j()),decorative:Ht(()=>L()),orientation:Ht(()=>G())}),B=U(()=>sa(h,w.props));var ie=Ge(),M=f(ie);{var be=oe=>{var re=Ge(),we=f(re);dr(we,()=>t.child,()=>({props:e(B)})),r(oe,re)},$e=oe=>{var re=ya();Gr(re,()=>({...e(B)}));var we=s(re);dr(we,()=>t.children??Ur),n(re),r(oe,re)};H(M,oe=>{t.child?oe(be):oe($e,-1)})}r(Pe,ie),rt()}function vr(Pe,t){tt(t,!0);let p=Xe(t,"ref",15,null),j=Xe(t,"data-slot",3,"separator"),F=Ft(t,["$$slots","$$events","$$legacy","ref","class","data-slot"]);var L=Ge(),G=f(L);{let h=U(()=>ta("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",t.class));_(G,()=>wa,(w,B)=>{B(w,qt({get"data-slot"(){return j()},get class(){return e(h)}},()=>F,{get ref(){return p()},set ref(ie){p(ie)}}))})}r(Pe,L),rt()}var Pa=i('<div role="button" tabindex="-1" class="inset-0 bg-black/30 fixed z-50"></div> <div><!></div>',1);function Ir(Pe,t){tt(t,!0);let p=Xe(t,"width",3,"w-125"),j=Xe(t,"ariaLabel",3,"Close drawer");function F(B){B.key==="Escape"&&t.onClose()}var L=Pa();br("keydown",Er,F);var G=f(L),h=a(G,2),w=s(h);dr(w,()=>t.children),n(h),X(()=>{jt(G,"aria-label",j()),pt(h,1,`animate-in slide-in-from-right-4 top-0 right-0 fixed z-50 flex h-full border-border bg-background ${p()??""} flex-col overflow-y-auto border-l duration-150`)}),at("click",G,function(...B){t.onClose?.apply(this,B)}),at("keydown",G,F),r(Pe,L),rt()}wt(["click","keydown"]);var ka=i('<!> <span class="sm:inline hidden"> </span>',1),ja=i('<div class="gap-2 sm:flex-row sm:items-center flex flex-col"><input type="file" accept="image/*" 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"/> <!></div>'),Sa=i('<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border"><!> <!></div> <!></div>');function Nr(Pe,t){tt(t,!0);let p=Xe(t,"mode",3,"url"),j=Xe(t,"value",3,""),F=Xe(t,"disabled",3,!1),L=Xe(t,"isUploading",3,!1),G=Xe(t,"hasFile",3,!1),h=Xe(t,"inputRef",15);var w=Sa(),B=s(w),ie=s(B);{let re=U(()=>p()!=="upload"?"default":"ghost");Ne(ie,{size:"sm",get variant(){return e(re)},onclick:()=>t.onModeChange?.("url"),class:"h-7 text-xs flex-1",children:(we,S)=>{u();var A=T("URL");r(we,A)},$$slots:{default:!0}})}var M=a(ie,2);{let re=U(()=>p()==="upload"?"default":"ghost");Ne(M,{size:"sm",get variant(){return e(re)},onclick:()=>t.onModeChange?.("upload"),class:"h-7 text-xs flex-1",children:(we,S)=>{u();var A=T("Upload File");r(we,A)},$$slots:{default:!0}})}n(B);var be=a(B,2);{var $e=re=>{var we=ja(),S=s(we);Qt(S,fe=>h(fe),()=>h());var A=a(S,2);{let fe=U(()=>F()||!G()||L());Ne(A,{size:"sm",get disabled(){return e(fe)},get onclick(){return t.onUpload},class:"shrink-0",children:(O,ae)=>{var pe=ka(),ce=f(pe);ur(ce,{class:"mr-2 h-4 w-4"});var Ie=a(ce,2),je=s(Ie,!0);n(Ie),X(()=>E(je,L()?"Uploading…":"Upload")),r(O,pe)},$$slots:{default:!0}})}n(we),X(()=>S.disabled=F()),at("change",S,function(...fe){t.onFileSelected?.apply(this,fe)}),r(re,we)},oe=re=>{ft(re,{type:"text",get value(){return j()},get disabled(){return F()},oninput:we=>t.onUrlChange?.(we.target.value),placeholder:"https://..."})};H(be,re=>{p()==="upload"?re($e):re(oe,-1)})}n(w),r(Pe,w),rt()}wt(["change"]);const Rt=1e3;function Tr(Pe,t){tt(t,!0);let p=Xe(t,"placeholder",3,"Select a project");const j=U(()=>t.projects.map(F=>({id:F.id,label:F.name})));ir(Pe,{get items(){return e(j)},get value(){return t.value},get onChange(){return t.onChange},get id(){return t.id},get placeholder(){return p()},get triggerIcon(){return wr},searchPlaceholder:"Filter projects"}),rt()}var Ca=i("<!> <!>",1),Da=i('<div class="space-y-1"><!> <!></div>'),Ia=i('<div class="space-y-1"><!> <div class="bg-muted rounded-md px-3 py-2"><p class="text-sm font-medium"> </p></div></div>'),Na=i("<option> </option>"),Ta=i('<div class="space-y-1"><!> <select id="new-server" 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"></select></div>'),Aa=i("<div><!> <!></div>"),Ua=i('Grasshopper File <span class="text-destructive">*</span>',1),Ea=i('<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>'),Fa=i(`<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"> </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>`),Oa=i('<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"> </p></div></div>'),La=i('Display Name <span class="text-destructive">*</span>',1),Ra=i(' <button type="button" class="ml-0.5 inline-flex items-center justify-center transition-opacity hover:opacity-70" title="Remove tag"><!></button>',1),Ma=i('<div class="mb-2 flex flex-wrap gap-2"></div>'),za=i("<!> <!>",1),Va=i('<!> <div class="space-y-4"><!> <div class="space-y-2"><!> <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"/> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></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"><!> <p class="text-muted-foreground text-xs"> </p></div> <!></div> <div class="space-y-1"><div class="flex items-center justify-between"><!> <p class="text-muted-foreground text-xs"> </p></div> <!> <!></div></div> <div class="space-y-2"><!> <!></div></div> <!>',1);function Ga(Pe,t){tt(t,!0);let p=Xe(t,"open",3,!1),j=Xe(t,"isAdding",3,!1),F=Xe(t,"projects",19,()=>[]),L=Xe(t,"computeServers",19,()=>[]),G=Xe(t,"defaultComputeServerId",3,null),h=Xe(t,"showProjectDropdown",3,!1),w=m(""),B=m(""),ie=m(""),M=m(ot([])),be=m(""),$e=m("url"),oe=m(""),re=m("");yt(()=>{t.defaultProjectId&&o(oe,t.defaultProjectId,!0)});let we=m(null);yt(()=>{if(!e(oe)||!e(A))return;const l=[e(oe),e(re),e(A).name,e(A).size,e(A).lastModified].join("|");l===e(we)||e(ae)||(o(we,l,!0),Ae())});let S=m(void 0),A=m(null),fe=m(void 0),O=m(!1),ae=m(!1),pe=m(null),ce=m(null);function Ie(l){return`${(l/(1024*1024)).toFixed(1)} MB`}function je(l){return l.name.replace(/\.(gh|ghx)$/i,"").replace(/[_-]/g," ").replace(/\b\w/g,x=>x.toUpperCase())}function Te(){const l=e(S)?.files?.[0]??null;o(pe,null),o(ce,null),o(B,""),o(M,[],!0),o(A,l,!0),o(w,l?je(l):"",!0)}async function Ae(){const l=e(A);if(!(!l||!e(oe))){o(ae,!0);try{const x=new FormData;x.append("files",l);const P=new URLSearchParams(e(re)?{projectId:e(oe),computeServerId:e(re)}:{projectId:e(oe)}).toString(),c=await fetch(`/api/compute/schema?${P}`,{method:"POST",body:x});if(!c.ok){const y=await c.json().catch(()=>null);if(c.status===413){o(pe,y?.message??`This Grasshopper file is too large to upload (${Ie(l.size)}). Reduce its size or raise the server's upload limit.`,!0);return}o(pe,y?.message??(c.status===503?"Compute server is unreachable. It must be online to upload a definition.":"Validation failed"),!0);return}const g=(await c.json())?.[0];if(!g){o(pe,"No valid Selva schema found in this definition.");return}o(ce,g,!0),g.name&&o(w,g.name,!0),g.description&&o(B,g.description,!0),g.tags?.length&&o(M,g.tags,!0)}catch{o(pe,"Compute server is unreachable. It must be online to upload a definition.")}finally{o(ae,!1)}}}async function me(){if(!e(w).trim()){Ce.error("Display name is required");return}if(!e(S)?.files||e(S).files.length===0){Ce.error("A Grasshopper file is required");return}if(h()&&!e(oe)){Ce.error("Please pick a project");return}if(!e(ce)){Ce.error(e(pe)??"The definition must be validated against an online compute server first");return}const l=new FormData;l.append("displayName",e(w).trim()),l.append("description",e(B)),l.append("category",e(ie)),l.append("tags",e(M).join(",")),e($e)==="upload"&&e(fe)?.files?.[0]?l.append("image",e(fe).files[0]):e($e)==="url"&&e(be).trim()&&l.append("coverImage",e(be).trim()),l.append("file",e(S).files[0]),e(oe)&&l.append("projectId",e(oe)),e(re)&&l.append("computeServerId",e(re));try{await t.onSubmit?.(l)}catch{}}function C(){o(w,""),o(B,""),o(ie,""),o(M,[],!0),o(be,""),o($e,"url"),o(oe,t.defaultProjectId??"",!0),o(re,""),o(ae,!1),o(pe,null),o(ce,null),e(S)&&(e(S).value=""),o(A,null),o(we,null),e(fe)&&(e(fe).value=""),o(O,!1)}function D(l){l||C(),t.onOpenChange?.(l)}yt(()=>{p()||C()});var V=Ge(),Y=f(V);_(Y,()=>Zt,(l,x)=>{x(l,{get open(){return p()},onOpenChange:D,children:(P,c)=>{var v=Ge(),g=f(v);_(g,()=>Yt,(y,W)=>{W(y,{class:"max-w-xl",children:(I,K)=>{var Z=Va(),he=f(Z);_(he,()=>Vt,(_e,De)=>{De(_e,{children:(Fe,Ke)=>{var Ze=Ca(),it=f(Ze);_(it,()=>Gt,(Oe,Le)=>{Le(Oe,{children:(We,Re)=>{u();var st=T("Add New Definition");r(We,st)},$$slots:{default:!0}})});var et=a(it,2);_(et,()=>Bt,(Oe,Le)=>{Le(Oe,{children:(We,Re)=>{u();var st=T("Upload a Grasshopper file and fill in the metadata.");r(We,st)},$$slots:{default:!0}})}),r(Fe,Ze)},$$slots:{default:!0}})});var le=a(he,2),ne=s(le);{var xe=_e=>{var De=Aa(),Fe=s(De);{var Ke=Oe=>{var Le=Da(),We=s(Le);Qe(We,{for:"new-project",children:(st,dt)=>{u();var lt=T("Project");r(st,lt)},$$slots:{default:!0}});var Re=a(We,2);Tr(Re,{id:"new-project",get projects(){return F()},get value(){return e(oe)},onChange:st=>o(oe,st,!0)}),n(Le),r(Oe,Le)},Ze=Oe=>{const Le=U(()=>F().find(Se=>Se.id===t.defaultProjectId));var We=Ia(),Re=s(We);Qe(Re,{children:(Se,Be)=>{u();var qe=T("Project");r(Se,qe)},$$slots:{default:!0}});var st=a(Re,2),dt=s(st),lt=s(dt,!0);n(dt),n(st),n(We),X(()=>E(lt,e(Le)?.name??"Unknown")),r(Oe,We)};H(Fe,Oe=>{h()?Oe(Ke):t.defaultProjectId&&Oe(Ze,1)})}var it=a(Fe,2);{var et=Oe=>{var Le=Ta(),We=s(Le);Qe(We,{for:"new-server",children:(dt,lt)=>{u();var Se=T("Compute Server");r(dt,Se)},$$slots:{default:!0}});var Re=a(We,2);mt(Re,21,L,dt=>dt.id,(dt,lt)=>{var Se=Na(),Be=s(Se);n(Se);var qe={};X(()=>{E(Be,`${e(lt).label??""}${e(lt).id===G()?" (Default)":""}`),qe!==(qe=e(lt).id)&&(Se.value=(Se.__value=e(lt).id)??"")}),r(dt,Se)}),n(Re);var st;$r(Re),n(Le),X(()=>{st!==(st=e(re)||(G()??""))&&(Re.value=(Re.__value=e(re)||(G()??""))??"",yr(Re,e(re)||(G()??"")))}),at("change",Re,dt=>{const lt=dt.currentTarget.value;o(re,lt===G()?"":lt,!0)}),r(Oe,Le)};H(it,Oe=>{L().length>0&&Oe(et)})}n(De),X(()=>pt(De,1,`grid gap-3 ${h()&&L().length>0?"sm:grid-cols-2":""}`)),r(_e,De)};H(ne,_e=>{(h()||L().length>0)&&_e(xe)})}var de=a(ne,2),R=s(de);Qe(R,{for:"new-file",children:(_e,De)=>{u();var Fe=Ua();u(),r(_e,Fe)},$$slots:{default:!0}});var z=a(R,2);Qt(z,_e=>o(S,_e),()=>e(S));var N=a(z,2);{var k=_e=>{var De=Ea();r(_e,De)},Q=_e=>{var De=Fa(),Fe=a(s(De),2),Ke=s(Fe,!0);n(Fe),u(2),n(De),X(()=>E(Ke,e(pe))),r(_e,De)},se=_e=>{var De=Oa(),Fe=s(De),Ke=a(s(Fe),2),Ze=s(Ke);n(Ke),n(Fe),n(De),X(()=>E(Ze,`${e(ce).inputs.length??""} input${e(ce).inputs.length===1?"":"s"},
2
+ ${e(ce).outputs.length??""} output${e(ce).outputs.length===1?"":"s"}`)),r(_e,De)};H(N,_e=>{e(ae)?_e(k):e(pe)?_e(Q,1):e(ce)&&_e(se,2)})}n(de);var ge=a(de,2),ee=s(ge);Qe(ee,{for:"new-dn",children:(_e,De)=>{u();var Fe=La();u(),r(_e,Fe)},$$slots:{default:!0}});var ve=a(ee,2);ft(ve,{id:"new-dn",type:"text",placeholder:"e.g., Parametric Tower",get value(){return e(w)},set value(_e){o(w,_e,!0)}}),n(ge);var ke=a(ge,2),Ve=s(ke);Qe(Ve,{for:"new-desc",children:(_e,De)=>{u();var Fe=T("Description");r(_e,Fe)},$$slots:{default:!0}});var q=a(Ve,2);er(q,{id:"new-desc",rows:3,placeholder:"Describe what this definition does…",get value(){return e(B)},set value(_e){o(B,_e,!0)}}),n(ke);var te=a(ke,2),ue=s(te),J=s(ue),Ue=s(J);Qe(Ue,{for:"new-cat",children:(_e,De)=>{u();var Fe=T("Category");r(_e,Fe)},$$slots:{default:!0}});var d=a(Ue,2),b=s(d);n(d),n(J);var $=a(J,2);ft($,{id:"new-cat",type:"text",maxlength:40,placeholder:"e.g., Architecture",get value(){return e(ie)},set value(_e){o(ie,_e,!0)}}),n(ue);var ye=a(ue,2),Me=s(ye),Ee=s(Me);Qe(Ee,{for:"new-tags",children:(_e,De)=>{u();var Fe=T("Tags");r(_e,Fe)},$$slots:{default:!0}});var ze=a(Ee,2),Je=s(ze);n(ze),n(Me);var Ye=a(Me,2);{var He=_e=>{var De=Ma();mt(De,20,()=>e(M),Fe=>Fe,(Fe,Ke)=>{Sr(Fe,{variant:"outline",class:"cursor-pointer gap-1",children:(Ze,it)=>{u();var et=Ra(),Oe=f(et),Le=a(Oe),We=s(Le);Pt(We,{class:"h-3 w-3"}),n(Le),X(()=>E(Oe,`${Ke??""} `)),at("click",Le,()=>{o(M,e(M).filter(Re=>Re!==Ke),!0)}),r(Ze,et)},$$slots:{default:!0}})}),n(De),r(_e,De)};H(Ye,_e=>{e(M).length>0&&_e(He)})}var vt=a(Ye,2);{let _e=U(()=>e(M).length>=5);ft(vt,{id:"new-tags",type:"text",placeholder:"Add tag and press Enter",get disabled(){return e(_e)},onkeydown:De=>{if(De.key==="Enter"){De.preventDefault();const Fe=De.currentTarget,Ke=Fe.value.trim();Ke&&!e(M).includes(Ke)&&e(M).length<5&&(o(M,[...e(M),Ke],!0),Fe.value="")}}})}n(ye),n(te);var ut=a(te,2),nt=s(ut);Qe(nt,{children:(_e,De)=>{u();var Fe=T("Cover Image");r(_e,Fe)},$$slots:{default:!0}});var gt=a(nt,2);Nr(gt,{get mode(){return e($e)},get value(){return e(be)},get hasFile(){return e(O)},onModeChange:_e=>o($e,_e,!0),onUpload:()=>{},onFileSelected:()=>o(O,!!e(fe)?.files?.length),onUrlChange:_e=>o(be,_e,!0),get inputRef(){return e(fe)},set inputRef(_e){o(fe,_e,!0)}}),n(ut),n(le);var bt=a(le,2);_(bt,()=>Wt,(_e,De)=>{De(_e,{class:"gap-2 sm:justify-end",children:(Fe,Ke)=>{var Ze=za(),it=f(Ze);Ne(it,{variant:"outline",onclick:()=>t.onOpenChange?.(!1),children:(Oe,Le)=>{u();var We=T("Cancel");r(Oe,We)},$$slots:{default:!0}});var et=a(it,2);{let Oe=U(()=>j()||e(ae)||!e(ce));Ne(et,{onclick:me,get disabled(){return e(Oe)},children:(Le,We)=>{u();var Re=T();X(()=>E(Re,j()?"Creating…":e(ae)?"Validating…":"Create Definition")),r(Le,Re)},$$slots:{default:!0}})}r(Fe,Ze)},$$slots:{default:!0}})}),X(()=>{E(b,`${e(ie)?.length??0??""}/40`),E(Je,`${e(M).length??""}/5`)}),at("change",z,Te),r(I,Z)},$$slots:{default:!0}})}),r(P,v)},$$slots:{default:!0}})}),r(Pe,V),rt()}wt(["change","click"]);var Ba=i('<button class="text-muted-foreground hover:text-foreground rounded p-0.5 transition-colors" title="New project" aria-label="New project"><!></button>'),qa=i('<div class="border-border bg-muted/40 mx-3 mb-3 space-y-2 rounded-md border p-3"><!> <select class="border-input bg-background w-full rounded-md border px-2.5 py-1.5 text-xs outline-none"><option>Public</option><option>Org</option><option>Private</option></select> <div class="flex gap-1.5"><!> <!></div></div>'),Ja=i('<div class="relative mx-3 mb-2"><!> <input 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>'),Ha=i('<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>'),Wa=i('<div class="border-border/60 my-2 border-t"></div>'),Ka=i('<span class="bg-primary absolute top-0 bottom-0 left-0 w-0.75" aria-hidden="true"></span>'),Qa=i('<button><!> <span class="flex-1 truncate text-sm font-medium"> </span> <span class="shrink-0 font-mono text-[11px] tabular-nums opacity-60"> </span></button>'),Xa=i('<p class="text-muted-foreground px-2 py-4 text-center text-xs">No projects yet</p>'),Ya=i('<p class="text-muted-foreground px-2 py-4 text-center text-xs"> </p>'),Za=i('<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> <!></div> <!> <!> <nav class="flex-1 space-y-px pr-2 pb-4"><button><!> <!> <span class="flex-1 truncate text-sm font-medium">All projects</span></button> <!> <!> <!></nav></aside>');function eo(Pe,t){tt(t,!0);let p=m(!1),j=m(""),F=m(""),L=m("public"),G=m(!1),h=m("");const w=U(()=>{const C=e(h).trim().toLowerCase();return C?t.projects.filter(D=>D.name.toLowerCase().includes(C)):t.projects});async function B(){if(e(j).trim()){o(G,!0);try{await t.onCreate({name:e(j).trim(),description:e(F),visibility:e(L)}),o(j,""),o(F,""),o(L,"public"),o(p,!1)}finally{o(G,!1)}}}var ie=Za(),M=s(ie),be=a(s(M),2);{var $e=C=>{var D=Ba(),V=s(D);Kt(V,{class:"h-3.5 w-3.5"}),n(D),at("click",D,()=>o(p,!e(p))),r(C,D)};H(be,C=>{t.canManageProjects&&C($e)})}n(M);var oe=a(M,2);{var re=C=>{var D=qa(),V=s(D);ft(V,{placeholder:"Project name",class:"h-8 text-xs",get value(){return e(j)},set value(y){o(j,y,!0)}});var Y=a(V,2),l=s(Y);l.value=l.__value="public";var x=a(l);x.value=x.__value="org";var P=a(x);P.value=P.__value="private",n(Y);var c=a(Y,2),v=s(c);{let y=U(()=>e(G)||!e(j).trim());Ne(v,{onclick:B,get disabled(){return e(y)},size:"sm",class:"h-6 flex-1 text-xs",children:(W,I)=>{u();var K=T();X(()=>E(K,e(G)?"…":"Create")),r(W,K)},$$slots:{default:!0}})}var g=a(v,2);Ne(g,{onclick:()=>o(p,!1),variant:"ghost",size:"sm",class:"h-6 px-2 text-xs",children:(y,W)=>{Pt(y,{class:"h-3 w-3"})},$$slots:{default:!0}}),n(c),n(D),Xt(Y,()=>e(L),y=>o(L,y)),r(C,D)};H(oe,C=>{e(p)&&t.canManageProjects&&C(re)})}var we=a(oe,2);{var S=C=>{var D=Ja(),V=s(D);Cr(V,{class:"text-muted-foreground pointer-events-none absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2"});var Y=a(V,2);St(Y),n(D),fr(Y,()=>e(h),l=>o(h,l)),r(C,D)};H(we,C=>{t.projects.length>4&&C(S)})}var A=a(we,2),fe=s(A),O=s(fe);{var ae=C=>{var D=Ha();r(C,D)};H(O,C=>{t.activeProjectId===null&&C(ae)})}var pe=a(O,2);wr(pe,{class:"h-3.5 w-3.5 shrink-0 opacity-70"}),u(2),n(fe);var ce=a(fe,2);{var Ie=C=>{var D=Wa();r(C,D)};H(ce,C=>{e(w).length>0&&C(Ie)})}var je=a(ce,2);mt(je,17,()=>e(w),C=>C.id,(C,D)=>{const V=U(()=>t.activeProjectId===e(D).id),Y=U(()=>t.records.filter(W=>W.projectId===e(D).id).length);var l=Qa(),x=s(l);{var P=W=>{var I=Ka();r(W,I)};H(x,W=>{e(V)&&W(P)})}var c=a(x,2),v=s(c,!0);n(c);var g=a(c,2),y=s(g,!0);n(g),n(l),X(()=>{pt(l,1,`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${e(V)?"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"}`),E(v,e(D).name),E(y,e(Y))}),at("click",l,()=>t.onSelect(e(D).id)),r(C,l)});var Te=a(je,2);{var Ae=C=>{var D=Xa();r(C,D)},me=C=>{var D=Ya(),V=s(D);n(D),X(()=>E(V,`No matches for "${e(h)??""}"`)),r(C,D)};H(Te,C=>{t.projects.length===0?C(Ae):e(w).length===0&&e(h)&&C(me,1)})}n(A),n(ie),X(()=>pt(fe,1,`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${t.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"}`)),at("click",fe,()=>t.onSelect(null)),r(Pe,ie),rt()}wt(["click"]);var to=i('<p class="text-muted-foreground px-3 py-6 text-center text-xs"> </p>'),ro=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),ao=i('<button type="button"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <!></div></button>'),oo=i('<div class="border-border relative border-b"><!> <input 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"><!></button></div> <div class="max-h-60 overflow-y-auto py-1"><!></div>',1),no=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),so=i('<div class="flex items-center gap-3 p-2.5"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <!></div> <select class="border-input bg-background h-8 rounded-md border px-2 text-xs outline-none"><option>Owner</option><option>Editor</option><option>Viewer</option></select> <!> <!></div>'),io=i('<div class="border-border bg-card rounded-md border"><!></div>');function lo(Pe,t){tt(t,!0);let p=m(""),j=m(0),F=m(null),L=m("viewer"),G=m(void 0);const h=U(()=>{const S=e(p).trim().toLowerCase();return S?t.availableUsers.filter(A=>{const fe=(A.displayName??"").toLowerCase(),O=(A.email??"").toLowerCase();return fe.includes(S)||O.includes(S)}).slice(0,50):t.availableUsers.slice(0,50)});yt(()=>{e(h),o(j,0)});function w(S){return S.displayName??S.email??S.id.slice(0,8)}function B(S){o(F,S,!0),o(p,"")}async function ie(){e(F)&&(await t.onAdd(e(F).id,e(L)),o(F,null),o(L,"viewer"))}function M(S){if(!e(F))if(S.key==="ArrowDown")S.preventDefault(),o(j,Math.min(e(j)+1,e(h).length-1),!0),be();else if(S.key==="ArrowUp")S.preventDefault(),o(j,Math.max(e(j)-1,0),!0),be();else if(S.key==="Enter"){S.preventDefault();const A=e(h)[e(j)];A&&B(A)}else S.key==="Escape"&&(S.preventDefault(),t.onCancel())}function be(){e(G)?.querySelector(`[data-idx="${e(j)}"]`)?.scrollIntoView({block:"nearest"})}var $e=io(),oe=s($e);{var re=S=>{var A=oo(),fe=f(A),O=s(fe);Cr(O,{class:"text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-3.5 w-3.5 -translate-y-1/2"});var ae=a(O,2);St(ae),Fr(ae,!0);var pe=a(ae,2),ce=s(pe);Pt(ce,{class:"h-3.5 w-3.5"}),n(pe),n(fe);var Ie=a(fe,2),je=s(Ie);{var Te=me=>{var C=to(),D=s(C,!0);n(C),X(()=>E(D,t.availableUsers.length===0?"Everyone in this org is already on the project.":`No matches for "${e(p)}"`)),r(me,C)},Ae=me=>{var C=Ge(),D=f(C);mt(D,19,()=>e(h),V=>V.id,(V,Y,l)=>{var x=ao(),P=s(x);{let I=U(()=>w(e(Y)));lr(P,{get name(){return e(I)},size:"sm"})}var c=a(P,2),v=s(c),g=s(v,!0);n(v);var y=a(v,2);{var W=I=>{var K=ro(),Z=s(K,!0);n(K),X(()=>E(Z,e(Y).email)),r(I,K)};H(y,I=>{e(Y).displayName&&e(Y).email&&I(W)})}n(c),n(x),X(I=>{jt(x,"data-idx",e(l)),pt(x,1,`flex w-full items-center gap-3 px-3 py-2 text-left transition-colors ${e(j)===e(l)?"bg-accent text-accent-foreground":"hover:bg-muted/60"}`),E(g,I)},[()=>w(e(Y))]),at("click",x,()=>B(e(Y))),br("mouseenter",x,()=>o(j,e(l),!0)),r(V,x)}),r(me,C)};H(je,me=>{e(h).length===0?me(Te):me(Ae,-1)})}n(Ie),Qt(Ie,me=>o(G,me),()=>e(G)),at("keydown",ae,M),fr(ae,()=>e(p),me=>o(p,me)),at("click",pe,function(...me){t.onCancel?.apply(this,me)}),r(S,A)},we=S=>{var A=so(),fe=s(A);{let V=U(()=>w(e(F)));lr(fe,{get name(){return e(V)},size:"sm"})}var O=a(fe,2),ae=s(O),pe=s(ae,!0);n(ae);var ce=a(ae,2);{var Ie=V=>{var Y=no(),l=s(Y,!0);n(Y),X(()=>E(l,e(F).email)),r(V,Y)};H(ce,V=>{e(F).email&&e(F).displayName&&V(Ie)})}n(O);var je=a(O,2),Te=s(je);Te.value=Te.__value="owner";var Ae=a(Te);Ae.value=Ae.__value="editor";var me=a(Ae);me.value=me.__value="viewer",n(je);var C=a(je,2);Ne(C,{onclick:ie,get disabled(){return t.adding},size:"sm",children:(V,Y)=>{u();var l=T();X(()=>E(l,t.adding?"Adding…":"Add")),r(V,l)},$$slots:{default:!0}});var D=a(C,2);Ne(D,{onclick:()=>o(F,null),variant:"ghost",size:"icon",class:"text-muted-foreground h-8 w-8","aria-label":"Pick a different user",children:(V,Y)=>{Pt(V,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}}),n(A),X(V=>E(pe,V),[()=>w(e(F))]),Xt(je,()=>e(L),V=>o(L,V)),r(S,A)};H(oe,S=>{e(F)?S(we,-1):S(re)})}n($e),r(Pe,$e),rt()}wt(["keydown","click"]);var co=i("<!> <!>",1),vo=i('<!> Members <span class="text-muted-foreground ml-1 font-mono text-[11px]"> </span>',1),uo=i("<!> <!>",1),fo=i("<!> Delete project",1),po=i('<div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <select id="proj-vis" class="border-input bg-background h-10 w-full rounded-md border px-3 text-sm"><option>Public — any authenticated user can solve</option><option>Org — any org member can solve</option><option>Private — only project members can solve</option></select></div> <div class="flex items-center justify-between pt-2"><!> <div class="flex gap-2"><!> <!></div></div>',1),mo=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),go=i('<div class="border-border flex items-center gap-3 border-b px-3 py-2.5 last:border-0"><!> <div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <!></div> <select class="border-input bg-background h-8 rounded-md border px-2 text-xs outline-none"><option>Owner</option><option>Editor</option><option>Viewer</option></select> <!></div>'),_o=i('<div class="border-border bg-card overflow-hidden rounded-md border"></div>'),ho=i("<!> Add member",1),xo=i("<!> <!>",1),bo=i("<!> <!> <!>",1),$o=i("<!> <!>",1);function yo(Pe,t){tt(t,!0);let p=m(ot(t.project.name)),j=m(ot(t.project.description??"")),F=m(ot(t.project.visibility)),L=m(!1),G=m(!1),h=m(!1),w=m(null);function B(S){const A=t.users.find(fe=>fe.id===S);return A?.displayName??A?.email??S.slice(0,8)}function ie(S){return t.users.find(A=>A.id===S)?.email}const M=U(()=>{const S=new Set(t.project.members.map(A=>A.userId));return t.users.filter(A=>!S.has(A.id))});async function be(){o(L,!0);try{await t.onSave(t.project.id,{name:e(p),description:e(j),visibility:e(F)})}finally{o(L,!1)}}async function $e(S,A){o(h,!0);try{await t.onAddMember(t.project.id,S,A),o(G,!1)}finally{o(h,!1)}}async function oe(S){o(w,S,!0);try{await t.onRemoveMember(t.project.id,S)}finally{o(w,null)}}var re=Ge(),we=f(re);_(we,()=>Zt,(S,A)=>{A(S,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:(fe,O)=>{var ae=Ge(),pe=f(ae);_(pe,()=>Yt,(ce,Ie)=>{Ie(ce,{class:"max-w-lg",children:(je,Te)=>{var Ae=$o(),me=f(Ae);_(me,()=>Vt,(D,V)=>{V(D,{children:(Y,l)=>{var x=co(),P=f(x);_(P,()=>Gt,(v,g)=>{g(v,{children:(y,W)=>{u();var I=T("Project settings");r(y,I)},$$slots:{default:!0}})});var c=a(P,2);_(c,()=>Bt,(v,g)=>{g(v,{children:(y,W)=>{u();var I=T("Manage this project's details and members.");r(y,I)},$$slots:{default:!0}})}),r(Y,x)},$$slots:{default:!0}})});var C=a(me,2);_(C,()=>Pr,(D,V)=>{V(D,{value:"general",class:"mt-2",children:(Y,l)=>{var x=bo(),P=f(x);_(P,()=>kr,(g,y)=>{y(g,{class:"grid w-full grid-cols-2",children:(W,I)=>{var K=uo(),Z=f(K);_(Z,()=>Mt,(le,ne)=>{ne(le,{value:"general",children:(xe,de)=>{u();var R=T("General");r(xe,R)},$$slots:{default:!0}})});var he=a(Z,2);_(he,()=>Mt,(le,ne)=>{ne(le,{value:"members",class:"gap-1.5",children:(xe,de)=>{var R=vo(),z=f(R);hr(z,{class:"h-3.5 w-3.5"});var N=a(z,2),k=s(N,!0);n(N),X(()=>E(k,t.project.members.length)),r(xe,R)},$$slots:{default:!0}})}),r(W,K)},$$slots:{default:!0}})});var c=a(P,2);_(c,()=>zt,(g,y)=>{y(g,{value:"general",class:"mt-4 space-y-4",children:(W,I)=>{var K=po(),Z=f(K),he=s(Z);Qe(he,{for:"proj-name",children:(q,te)=>{u();var ue=T("Name");r(q,ue)},$$slots:{default:!0}});var le=a(he,2);ft(le,{id:"proj-name",get value(){return e(p)},set value(q){o(p,q,!0)}}),n(Z);var ne=a(Z,2),xe=s(ne);Qe(xe,{for:"proj-desc",children:(q,te)=>{u();var ue=T("Description");r(q,ue)},$$slots:{default:!0}});var de=a(xe,2);er(de,{id:"proj-desc",rows:2,get value(){return e(j)},set value(q){o(j,q,!0)}}),n(ne);var R=a(ne,2),z=s(R);Qe(z,{for:"proj-vis",children:(q,te)=>{u();var ue=T("Visibility");r(q,ue)},$$slots:{default:!0}});var N=a(z,2),k=s(N);k.value=k.__value="public";var Q=a(k);Q.value=Q.__value="org";var se=a(Q);se.value=se.__value="private",n(N),n(R);var ge=a(R,2),ee=s(ge);Ne(ee,{onclick:()=>t.onDelete(t.project.id),variant:"ghost",size:"sm",class:"text-destructive hover:text-destructive gap-1.5 px-2",children:(q,te)=>{var ue=fo(),J=f(ue);tr(J,{class:"h-3.5 w-3.5"}),u(),r(q,ue)},$$slots:{default:!0}});var ve=a(ee,2),ke=s(ve);Ne(ke,{onclick:()=>t.onOpenChange(!1),variant:"outline",size:"sm",children:(q,te)=>{u();var ue=T("Cancel");r(q,ue)},$$slots:{default:!0}});var Ve=a(ke,2);Ne(Ve,{onclick:be,get disabled(){return e(L)},size:"sm",children:(q,te)=>{u();var ue=T();X(()=>E(ue,e(L)?"Saving…":"Save")),r(q,ue)},$$slots:{default:!0}}),n(ve),n(ge),Xt(N,()=>e(F),q=>o(F,q)),r(W,K)},$$slots:{default:!0}})});var v=a(c,2);_(v,()=>zt,(g,y)=>{y(g,{value:"members",class:"mt-4 space-y-3",children:(W,I)=>{var K=xo(),Z=f(K);{var he=R=>{pr(R,{size:"sm",get icon(){return hr},title:"No members yet",description:"Add members to control who can edit this project."})},le=R=>{var z=_o();mt(z,21,()=>t.project.members,N=>`${N.projectId}:${N.userId}`,(N,k)=>{var Q=go(),se=s(Q);{let $=U(()=>B(e(k).userId));lr(se,{get name(){return e($)},size:"sm"})}var ge=a(se,2),ee=s(ge),ve=s(ee,!0);n(ee);var ke=a(ee,2);{var Ve=$=>{var ye=mo(),Me=s(ye,!0);n(ye),X(Ee=>E(Me,Ee),[()=>ie(e(k).userId)]),r($,ye)},q=U(()=>ie(e(k).userId)&&ie(e(k).userId)!==B(e(k).userId));H(ke,$=>{e(q)&&$(Ve)})}n(ge);var te=a(ge,2),ue=s(te);ue.value=ue.__value="owner";var J=a(ue);J.value=J.__value="editor";var Ue=a(J);Ue.value=Ue.__value="viewer",n(te);var d;$r(te);var b=a(te,2);{let $=U(()=>e(w)===e(k).userId);Ne(b,{onclick:()=>oe(e(k).userId),get disabled(){return e($)},variant:"ghost",size:"icon",class:"text-muted-foreground hover:text-destructive h-7 w-7",children:(ye,Me)=>{Pt(ye,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}n(Q),X($=>{E(ve,$),d!==(d=e(k).role)&&(te.value=(te.__value=e(k).role)??"",yr(te,e(k).role))},[()=>B(e(k).userId)]),at("change",te,$=>t.onUpdateMemberRole(t.project.id,e(k).userId,$.target.value)),r(N,Q)}),n(z),r(R,z)};H(Z,R=>{t.project.members.length===0&&!e(G)?R(he):t.project.members.length>0&&R(le,1)})}var ne=a(Z,2);{var xe=R=>{lo(R,{get availableUsers(){return e(M)},get adding(){return e(h)},onAdd:$e,onCancel:()=>o(G,!1)})},de=R=>{Ne(R,{onclick:()=>o(G,!0),variant:"outline",size:"sm",class:"gap-1.5",children:(z,N)=>{var k=ho(),Q=f(k);Hr(Q,{class:"h-3.5 w-3.5"}),u(),r(z,k)},$$slots:{default:!0}})};H(ne,R=>{e(G)?R(xe):R(de,-1)})}r(W,K)},$$slots:{default:!0}})}),r(Y,x)},$$slots:{default:!0}})}),r(je,Ae)},$$slots:{default:!0}})}),r(fe,ae)},$$slots:{default:!0}})}),r(Pe,re),rt()}wt(["change"]);var wo=i("<span><span></span> </span>");function Ar(Pe,t){tt(t,!0);let p=Xe(t,"class",3,"");var j=wo(),F=s(j),L=a(F);n(j),X((G,h)=>{pt(j,1,`inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 font-mono text-[11px] tracking-wide ${G??""} ${p()??""}`),pt(F,1,`h-1.5 w-1.5 rounded-full ${h??""}`),E(L,` ${t.status??""}`)},[()=>Wr(t.status),()=>Kr(t.status)]),r(Pe,j),rt()}var Po=i('<div class="flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><img alt="" class="h-full w-full object-cover"/></div>'),ko=i('<div class="tool-cover-fallback flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-md"><span class="text-foreground/40 text-base font-semibold"> </span></div>'),jo=i('<span class="text-muted-foreground ml-2 text-[12px]"> </span>'),So=i('<div><!> <span class="min-w-0"><span class="font-semibold"> </span> <!></span> <span class="text-muted-foreground"> </span> <span><!></span> <span class="text-muted-foreground font-mono text-[12px]"> </span> <span class="text-right font-mono text-[12px]"> </span> <span class="flex justify-end"><button type="button" class="text-muted-foreground hover:bg-muted hover:text-foreground rounded p-1 transition-colors"><!></button></span></div>'),Co=i('<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"><span></span><span>Definition</span><span>Project</span><span>Status</span><span>Updated</span> <span class="text-right">Runs</span><span></span></div> <!></div>');function Do(Pe,t){tt(t,!0);const p="grid-template-columns: 40px 1.6fr 0.9fr 0.8fr 0.7fr 0.6fr 36px";function j(h){return t.projects.find(w=>w.id===h)?.name??""}var F=Co(),L=s(F);nr(L,p);var G=a(L,2);mt(G,19,()=>t.records,h=>h.guid,(h,w,B)=>{var ie=So();nr(ie,p);var M=s(ie);{var be=D=>{var V=Po(),Y=s(V);n(V),X(()=>jt(Y,"src",e(w).coverImage)),r(D,V)},$e=D=>{const V=U(()=>Xr(e(w).guid));var Y=ko();let l;var x=s(Y),P=s(x,!0);n(x),n(Y),X(c=>{l=nr(Y,"",l,{"--tool-h1":e(V).h1,"--tool-h2":e(V).h2}),E(P,c)},[()=>Qr(e(w).displayName)]),r(D,Y)};H(M,D=>{e(w).coverImage?D(be):D($e,-1)})}var oe=a(M,2),re=s(oe),we=s(re,!0);n(re);var S=a(re,2);{var A=D=>{var V=jo(),Y=s(V);n(V),X(l=>E(Y,`${l??""}${e(w).description.length>60?"…":""}`),[()=>e(w).description.slice(0,60)]),r(D,V)};H(S,D=>{e(w).description&&D(A)})}n(oe);var fe=a(oe,2),O=s(fe,!0);n(fe);var ae=a(fe,2),pe=s(ae);Ar(pe,{get status(){return e(w).status}}),n(ae);var ce=a(ae,2),Ie=s(ce,!0);n(ce);var je=a(ce,2),Te=s(je,!0);n(je);var Ae=a(je,2),me=s(Ae),C=s(me);ha(C,{class:"h-4 w-4"}),n(me),n(Ae),n(ie),X((D,V,Y)=>{pt(ie,1,`grid items-center gap-4 px-4 py-3 text-[13px] ${e(B)<t.records.length-1?"border-border border-b":""}`),E(we,e(w).displayName),E(O,D),E(Ie,V),E(Te,Y),jt(me,"aria-label",`Open ${e(w).displayName??""}`)},[()=>j(e(w).projectId),()=>Dr(e(w).updatedAt),()=>e(w).solveCount.toLocaleString()]),at("click",me,()=>t.onOpen(e(w))),r(h,ie)}),n(F),r(Pe,F),rt()}wt(["click"]);var Io=i('<p class="text-muted-foreground mt-1 text-sm"> </p>'),No=i('<img class="border-border aspect-4/3 w-full rounded-lg border object-cover"/>'),To=i('<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>'),Ao=i("<!> Run",1),Uo=i("<!> <!>",1),Eo=i('<div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Category</p> <p class="mt-1 text-sm"> </p></div>'),Fo=i('<span class="bg-muted text-muted-foreground rounded px-2 py-0.5 font-mono text-[11px]"> </span>'),Oo=i('<div><!> <div class="flex flex-wrap gap-1.5"></div></div>'),Lo=i('<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"><!> <span class="text-muted-foreground font-mono text-[11px] tracking-wide uppercase"> </span></div> <h2 class="mt-2.5 text-xl font-semibold tracking-tight"> </h2> <!></div> <!></div> <div class="flex-1 space-y-5 overflow-y-auto p-6"><!> <div class="flex gap-2"><!> <!></div> <!> <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"> </p></div> <div><p class="text-muted-foreground font-mono text-[10.5px] tracking-widest uppercase">Runs</p> <p class="mt-1 text-sm"> </p></div> <!></div> <!></div>',1);function Ro(Pe,t){tt(t,!0),Ir(Pe,{get onClose(){return t.onClose},children:(p,j)=>{var F=Lo(),L=f(F),G=s(L),h=s(G),w=s(h);Ar(w,{get status(){return t.record.status}});var B=a(w,2),ie=s(B,!0);n(B),n(h);var M=a(h,2),be=s(M,!0);n(M);var $e=a(M,2);{var oe=c=>{var v=Io(),g=s(v,!0);n(v),X(()=>E(g,t.record.description)),r(c,v)};H($e,c=>{t.record.description&&c(oe)})}n(G);var re=a(G,2);Ne(re,{variant:"ghost",size:"icon",get onclick(){return t.onClose},class:"mt-0.5 h-8 w-8 shrink-0",children:(c,v)=>{Pt(c,{class:"h-4 w-4"})},$$slots:{default:!0}}),n(L);var we=a(L,2),S=s(we);{var A=c=>{var v=No();X(()=>{jt(v,"src",t.record.coverImage),jt(v,"alt",t.record.displayName)}),r(c,v)},fe=c=>{var v=To();r(c,v)};H(S,c=>{t.record.coverImage?c(A):c(fe,-1)})}var O=a(S,2),ae=s(O);Ne(ae,{class:"flex-1",onclick:()=>t.onOpenRunner(t.record.guid,"live"),children:(c,v)=>{var g=Ao(),y=f(g);jr(y,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(c,g)},$$slots:{default:!0}});var pe=a(ae,2);{var ce=c=>{var v=Uo(),g=f(v);{var y=I=>{Ne(I,{variant:"outline",size:"icon",onclick:()=>t.onShare(t.record),title:"Share links",children:(K,Z)=>{ba(K,{class:"h-4 w-4"})},$$slots:{default:!0}})};H(g,I=>{t.showShare&&I(y)})}var W=a(g,2);Ne(W,{variant:"outline",onclick:()=>t.onEdit(t.record),children:(I,K)=>{u();var Z=T("Edit");r(I,Z)},$$slots:{default:!0}}),r(c,v)};H(pe,c=>{t.canEdit&&c(ce)})}n(O);var Ie=a(O,2);vr(Ie,{});var je=a(Ie,2),Te=s(je),Ae=a(s(Te),2),me=s(Ae);n(Ae),n(Te);var C=a(Te,2),D=a(s(C),2),V=s(D,!0);n(D),n(C);var Y=a(C,2);{var l=c=>{var v=Eo(),g=a(s(v),2),y=s(g,!0);n(g),n(v),X(()=>E(y,t.record.category)),r(c,v)};H(Y,c=>{t.record.category&&c(l)})}n(je);var x=a(je,2);{var P=c=>{var v=Oo(),g=s(v);vr(g,{class:"mb-4"});var y=a(g,2);mt(y,20,()=>t.record.tags,W=>W,(W,I)=>{var K=Fo(),Z=s(K);n(K),X(()=>E(Z,`#${I??""}`)),r(W,K)}),n(y),n(v),r(c,v)};H(x,c=>{t.record.tags?.length&&c(P)})}n(we),X((c,v)=>{E(ie,t.projectName),E(be,t.record.displayName),E(me,`${c??""} ago`),E(V,v)},[()=>Dr(t.record.updatedAt),()=>t.record.solveCount.toLocaleString()]),r(p,F)},$$slots:{default:!0}}),rt()}var Mo=i(`The upload becomes <strong> </strong> as a draft. The live channel stays unchanged
3
+ until you publish.`,1),zo=i("<!> <!>",1),Vo=i('<p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground text-xs">Click to choose a different file</p>',1),Go=i('<p class="text-sm font-medium">Pick a .gh or .ghx file</p> <p class="text-muted-foreground text-xs"> </p>',1),Bo=i('What changed? <span class="text-muted-foreground font-normal">(optional)</span>',1),qo=i("<!> ",1),Jo=i("<!> <!>",1),Ho=i('<!> <div class="mt-4 space-y-4"><div class="space-y-1.5"><!> <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"><!> <div class="min-w-0 flex-1"><!></div></label> <input id="upload-file" type="file" accept=".gh,.ghx" class="hidden"/></div> <div class="space-y-1.5"><!> <!></div></div> <!>',1);function Wo(Pe,t){tt(t,!0);let p=m(void 0),j=m(null),F=m(""),L=m(!1);yt(()=>{t.open||G()});function G(){o(j,null),o(F,""),o(L,!1),e(p)&&(e(p).value="")}function h(){o(j,e(p)?.files?.[0]?.name??null,!0)}async function w(){if(!e(p)?.files?.length)return;o(L,!0);const M=new FormData;M.append("file",e(p).files[0]),e(F).trim()&&M.append("changeNote",e(F).trim());try{const be=await fetch(`/api/definitions/${t.definitionGuid}`,{method:"POST",body:M});if(be.ok){const $e=await be.json();Ce.success(`v${$e.version?.versionNumber??t.nextVersionNumber} uploaded as draft`),t.onUploaded(),await ct(),t.onOpenChange(!1)}else{const $e=await be.json().catch(()=>({}));Ce.error($e.message||$e.error||"Upload failed")}}catch{Ce.error("Upload failed")}finally{o(L,!1)}}var B=Ge(),ie=f(B);_(ie,()=>Zt,(M,be)=>{be(M,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:($e,oe)=>{var re=Ge(),we=f(re);_(we,()=>Yt,(S,A)=>{A(S,{class:"max-w-md",children:(fe,O)=>{var ae=Ho(),pe=f(ae);_(pe,()=>Vt,(v,g)=>{g(v,{children:(y,W)=>{var I=zo(),K=f(I);_(K,()=>Gt,(he,le)=>{le(he,{children:(ne,xe)=>{u();var de=T("Upload new version");r(ne,de)},$$slots:{default:!0}})});var Z=a(K,2);_(Z,()=>Bt,(he,le)=>{le(he,{children:(ne,xe)=>{u();var de=Mo(),R=a(f(de)),z=s(R);n(R),u(),X(()=>E(z,`v${t.nextVersionNumber??""}`)),r(ne,de)},$$slots:{default:!0}})}),r(y,I)},$$slots:{default:!0}})});var ce=a(pe,2),Ie=s(ce),je=s(Ie);Qe(je,{for:"upload-file",children:(v,g)=>{u();var y=T("Grasshopper file");r(v,y)},$$slots:{default:!0}});var Te=a(je,2),Ae=s(Te);Jr(Ae,{class:"text-muted-foreground h-5 w-5 shrink-0"});var me=a(Ae,2),C=s(me);{var D=v=>{var g=Vo(),y=f(g),W=s(y,!0);n(y),u(2),X(()=>E(W,e(j))),r(v,g)},V=v=>{var g=Go(),y=a(f(g),2),W=s(y);n(y),X(()=>E(W,`Becomes v${t.nextVersionNumber??""} draft`)),r(v,g)};H(C,v=>{e(j)?v(D):v(V,-1)})}n(me),n(Te);var Y=a(Te,2);Qt(Y,v=>o(p,v),()=>e(p)),n(Ie);var l=a(Ie,2),x=s(l);Qe(x,{for:"upload-note",children:(v,g)=>{u();var y=Bo();u(),r(v,y)},$$slots:{default:!0}});var P=a(x,2);er(P,{id:"upload-note",rows:2,maxlength:1e3,placeholder:"e.g. Fixed wall thickness calculation",get value(){return e(F)},set value(v){o(F,v,!0)}}),n(l),n(ce);var c=a(ce,2);_(c,()=>Wt,(v,g)=>{g(v,{class:"mt-4",children:(y,W)=>{var I=Jo(),K=f(I);Ne(K,{variant:"outline",onclick:()=>t.onOpenChange(!1),children:(he,le)=>{u();var ne=T("Cancel");r(he,ne)},$$slots:{default:!0}});var Z=a(K,2);{let he=U(()=>e(L)||!e(j));Ne(Z,{onclick:w,get disabled(){return e(he)},children:(le,ne)=>{var xe=Ge(),de=f(xe);{var R=N=>{var k=T("Uploading…");r(N,k)},z=N=>{var k=qo(),Q=f(k);ur(Q,{class:"mr-1.5 h-3.5 w-3.5"});var se=a(Q);X(()=>E(se,` Upload v${t.nextVersionNumber??""}`)),r(N,k)};H(de,N=>{e(L)?N(R):N(z,-1)})}r(le,xe)},$$slots:{default:!0}})}r(y,I)},$$slots:{default:!0}})}),at("change",Y,h),r(fe,ae)},$$slots:{default:!0}})}),r($e,re)},$$slots:{default:!0}})}),r(Pe,B),rt()}wt(["change"]);var Ko=i('<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>'),Qo=i('<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>'),Xo=i('<span class="text-muted-foreground">· newer version uploaded</span>'),Yo=i('<span class="text-muted-foreground">· up to date</span>'),Zo=i("<span><strong>Live now</strong> </span> <!>",1),en=i('<span class="text-muted-foreground">Not yet published — promote a draft to go live</span>'),tn=i("<!> ",1),rn=i('<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> <!></div> <!></div>'),an=i("<!> Upload new version",1),on=i('<span class="bg-success/10 text-success rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">live</span>'),nn=i('<span class="bg-warning/10 text-warning rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">draft</span>'),sn=i('<p class="mt-1 truncate text-sm"> </p>'),ln=i('<p class="text-muted-foreground mt-1 truncate font-mono text-xs"> </p>'),dn=i("<!> Run",1),cn=i('<div><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"> </span> <!> <!></div> <!> <p class="text-muted-foreground mt-1 text-xs"> </p></div> <div class="flex shrink-0 items-center gap-1"><!> <!> <!></div></div></div>'),vn=i('<div class="space-y-2"></div>'),un=i("<!> <!>",1),fn=i("<!> <!>",1),pn=i("<!> <!>",1),mn=i("<!> <!>",1),gn=i("<!> <!>",1),_n=i("<!> <!>",1),hn=i(`<div class="space-y-4"><!> <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
4
+ definition.</p></div> <!></div> <!></div> <!> <!> <!>`,1);function xn(Pe,t){tt(t,!0);let p=m(ot([])),j=m(null),F=m(null),L=m(!0),G=m(!1),h=m(null),w=m(!1),B=m(!1),ie=m(null),M=m(null);yt(()=>{t.definitionGuid,be()});async function be(){o(L,!0);try{const l=await fetch(`/api/definitions/${t.definitionGuid}/versions`);if(!l.ok)throw new Error(`${l.status}`);const x=await l.json();o(p,x.versions,!0),o(j,x.liveVersionId,!0),o(F,x.draftVersionId,!0)}catch{Ce.error("Failed to load versions")}finally{o(L,!1)}}const $e=U(()=>e(p).find(l=>l.id===e(j))??null),oe=U(()=>e(p).find(l=>l.id===e(F))??null),re=U(()=>e(oe)!==null&&e($e)!==null&&e(oe).id!==e($e).id),we=U(()=>(e(p)[0]?.versionNumber??0)+1);function S(l){const x=Date.now()-new Date(l).getTime(),P=Math.floor(x/6e4);if(P<1)return"Just now";if(P<60)return`${P}m ago`;const c=Math.floor(P/60);if(c<24)return`${c}h ago`;const v=Math.floor(c/24);return v===1?"Yesterday":v<30?`${v}d ago`:new Date(l).toLocaleDateString()}async function A(l){o(B,!0);try{const x=l?{versionId:l.id}:{},P=await fetch(`/api/definitions/${t.definitionGuid}/publish`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(x)});if(!P.ok){const v=await P.json().catch(()=>({}));Ce.error(v.message||v.error||"Failed to publish");return}const c=await P.json();Ce.success(`v${c.version?.versionNumber??"?"} is now live`),await be(),await ct()}catch{Ce.error("Failed to publish")}finally{o(B,!1),o(h,null),o(w,!1)}}async function fe(l){o(M,l.id,!0);try{const x=await fetch(`/api/definitions/${t.definitionGuid}/versions/${l.id}`,{method:"DELETE"});if(!x.ok){const P=await x.json().catch(()=>({}));Ce.error(P.message||P.error||"Failed to delete version. Live or draft versions cannot be deleted.");return}Ce.success(`v${l.versionNumber} deleted`),await be(),await ct()}catch{Ce.error("Failed to delete version")}finally{o(M,null),o(ie,null)}}var O=hn(),ae=f(O),pe=s(ae);{var ce=l=>{var x=Ko();r(l,x)},Ie=l=>{var x=Qo();r(l,x)},je=l=>{var x=rn(),P=s(x),c=a(s(P),2);{var v=I=>{var K=Zo(),Z=f(K),he=a(s(Z));n(Z);var le=a(Z,2);{var ne=de=>{var R=Xo();r(de,R)},xe=de=>{var R=Yo();r(de,R)};H(le,de=>{e(re)&&e(oe)?de(ne):de(xe,-1)})}X(()=>E(he,` — v${e($e).versionNumber??""}`)),r(I,K)},g=I=>{var K=en();r(I,K)};H(c,I=>{e($e)?I(v):I(g,-1)})}n(P);var y=a(P,2);{var W=I=>{Ne(I,{size:"sm",onclick:()=>A(null),get disabled(){return e(B)},class:"shrink-0",children:(K,Z)=>{var he=tn(),le=f(he);_a(le,{class:"mr-1.5 h-3.5 w-3.5"});var ne=a(le);X(()=>E(ne,` Publish v${e(oe).versionNumber??""}`)),r(K,he)},$$slots:{default:!0}})};H(y,I=>{e(re)&&e(oe)&&I(W)})}n(x),r(l,x)};H(pe,l=>{e(L)?l(ce):e(p).length===0?l(Ie,1):l(je,-1)})}var Te=a(pe,2),Ae=a(s(Te),2);Ne(Ae,{variant:"outline",size:"sm",onclick:()=>o(G,!0),class:"shrink-0",children:(l,x)=>{var P=an(),c=f(P);ur(c,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(l,P)},$$slots:{default:!0}}),n(Te);var me=a(Te,2);{var C=l=>{var x=vn();mt(x,21,()=>e(p),P=>P.id,(P,c)=>{const v=U(()=>e(c).id===e(j)),g=U(()=>e(c).id===e(F)&&!e(v));var y=cn(),W=s(y),I=s(W),K=s(I),Z=s(K),he=s(Z);n(Z);var le=a(Z,2);{var ne=q=>{var te=on();r(q,te)};H(le,q=>{e(v)&&q(ne)})}var xe=a(le,2);{var de=q=>{var te=nn();r(q,te)};H(xe,q=>{e(g)&&q(de)})}n(K);var R=a(K,2);{var z=q=>{var te=sn(),ue=s(te,!0);n(te),X(()=>E(ue,e(c).changeNote)),r(q,te)},N=q=>{var te=ln(),ue=s(te,!0);n(te),X(()=>E(ue,e(c).originalFilename)),r(q,te)};H(R,q=>{e(c).changeNote?q(z):e(c).originalFilename&&q(N,1)})}var k=a(R,2),Q=s(k);n(k),n(I);var se=a(I,2),ge=s(se);{let q=U(()=>e(v)?"outline":"ghost");Ne(ge,{size:"sm",get variant(){return e(q)},onclick:()=>e(v)?t.onOpenRunner(t.definitionGuid,"live"):e(g)?t.onOpenRunner(t.definitionGuid,"draft"):t.onOpenRunner(t.definitionGuid,void 0,e(c).id),children:(te,ue)=>{var J=dn(),Ue=f(J);jr(Ue,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(te,J)},$$slots:{default:!0}})}var ee=a(ge,2);{var ve=q=>{Ne(q,{size:"sm",variant:"outline",get disabled(){return e(B)},onclick:()=>{o(h,e(c),!0),o(w,!0)},children:(te,ue)=>{u();var J=T("Make live");r(te,J)},$$slots:{default:!0}})};H(ee,q=>{e(v)||q(ve)})}var ke=a(ee,2);{var Ve=q=>{{let te=U(()=>e(M)===e(c).id);Ne(q,{size:"sm",variant:"ghost",onclick:()=>o(ie,e(c),!0),get disabled(){return e(te)},class:"text-muted-foreground hover:text-destructive h-8 w-8 p-0","aria-label":"Delete version",children:(ue,J)=>{tr(ue,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}};H(ke,q=>{!e(v)&&!e(g)&&q(Ve)})}n(se),n(W),n(y),X(q=>{pt(y,1,`rounded-md border p-3 transition-colors ${e(v)?"border-primary/40 bg-accent/40":"border-border bg-card hover:bg-muted/30"}`),E(he,`v${e(c).versionNumber??""}`),E(Q,`Uploaded ${q??""}`)},[()=>S(e(c).uploadedAt)]),r(P,y)}),n(x),r(l,x)};H(me,l=>{!e(L)&&e(p).length>0&&l(C)})}n(ae);var D=a(ae,2);Wo(D,{get definitionGuid(){return t.definitionGuid},get nextVersionNumber(){return e(we)},get open(){return e(G)},onOpenChange:l=>o(G,l,!0),onUploaded:be});var V=a(D,2);_(V,()=>Ct,(l,x)=>{x(l,{get open(){return e(w)},onOpenChange:P=>{P||(o(h,null),o(w,!1))},children:(P,c)=>{var v=Ge(),g=f(v);_(g,()=>Dt,(y,W)=>{W(y,{children:(I,K)=>{var Z=pn(),he=f(Z);_(he,()=>It,(ne,xe)=>{xe(ne,{children:(de,R)=>{var z=un(),N=f(z);_(N,()=>Nt,(Q,se)=>{se(Q,{children:(ge,ee)=>{var ve=Ge(),ke=f(ve);{var Ve=te=>{var ue=T();X(()=>E(ue,`Make v${e(h).versionNumber??""} live?`)),r(te,ue)},q=te=>{var ue=T("Publish current draft?");r(te,ue)};H(ke,te=>{e(h)?te(Ve):te(q,-1)})}r(ge,ve)},$$slots:{default:!0}})});var k=a(N,2);_(k,()=>Tt,(Q,se)=>{se(Q,{children:(ge,ee)=>{var ve=Ge(),ke=f(ve);{var Ve=ue=>{var J=T();X(()=>E(J,`Rolling back to an older version. Anyone running this definition will immediately get v${e(h).versionNumber??""}
5
+ instead of v${e($e).versionNumber??""}.`)),r(ue,J)},q=ue=>{var J=T();X(()=>E(J,`Anyone running this definition will immediately get v${e(h).versionNumber??""}
6
+ instead of v${e($e)?.versionNumber??"—"??""}.`)),r(ue,J)},te=ue=>{var J=T(`Promotes the current draft to live. Everyone running this definition gets the new version
7
+ immediately.`);r(ue,J)};H(ke,ue=>{e(h)&&e($e)&&e(h).versionNumber<e($e).versionNumber?ue(Ve):e(h)?ue(q,1):ue(te,-1)})}r(ge,ve)},$$slots:{default:!0}})}),r(de,z)},$$slots:{default:!0}})});var le=a(he,2);_(le,()=>At,(ne,xe)=>{xe(ne,{children:(de,R)=>{var z=fn(),N=f(z);_(N,()=>Ut,(Q,se)=>{se(Q,{children:(ge,ee)=>{u();var ve=T("Cancel");r(ge,ve)},$$slots:{default:!0}})});var k=a(N,2);_(k,()=>Et,(Q,se)=>{se(Q,{onclick:()=>A(e(h)),get disabled(){return e(B)},children:(ge,ee)=>{u();var ve=T();X(()=>E(ve,e(B)?"Publishing…":"Publish")),r(ge,ve)},$$slots:{default:!0}})}),r(de,z)},$$slots:{default:!0}})}),r(I,Z)},$$slots:{default:!0}})}),r(P,v)},$$slots:{default:!0}})});var Y=a(V,2);{let l=U(()=>!!e(ie));_(Y,()=>Ct,(x,P)=>{P(x,{get open(){return e(l)},onOpenChange:c=>!c&&o(ie,null),children:(c,v)=>{var g=Ge(),y=f(g);_(y,()=>Dt,(W,I)=>{I(W,{children:(K,Z)=>{var he=_n(),le=f(he);_(le,()=>It,(xe,de)=>{de(xe,{children:(R,z)=>{var N=mn(),k=f(N);_(k,()=>Nt,(se,ge)=>{ge(se,{children:(ee,ve)=>{u();var ke=T();X(()=>E(ke,`Delete v${e(ie)?.versionNumber??""}?`)),r(ee,ke)},$$slots:{default:!0}})});var Q=a(k,2);_(Q,()=>Tt,(se,ge)=>{ge(se,{children:(ee,ve)=>{u();var ke=T(`This permanently removes the version's file. The live and draft versions cannot be deleted —
8
+ repoint first.`);r(ee,ke)},$$slots:{default:!0}})}),r(R,N)},$$slots:{default:!0}})});var ne=a(le,2);_(ne,()=>At,(xe,de)=>{de(xe,{children:(R,z)=>{var N=gn(),k=f(N);_(k,()=>Ut,(se,ge)=>{ge(se,{children:(ee,ve)=>{u();var ke=T("Cancel");r(ee,ke)},$$slots:{default:!0}})});var Q=a(k,2);{let se=U(()=>!!e(M));_(Q,()=>Et,(ge,ee)=>{ee(ge,{onclick:()=>e(ie)&&fe(e(ie)),get disabled(){return e(se)},children:(ve,ke)=>{u();var Ve=T();X(()=>E(Ve,e(M)?"Deleting…":"Delete")),r(ve,Ve)},$$slots:{default:!0}})})}r(R,N)},$$slots:{default:!0}})}),r(K,he)},$$slots:{default:!0}})}),r(c,g)},$$slots:{default:!0}})})}r(Pe,O),rt()}var bn=i("<!> <!>",1),$n=i('<p class="text-warning flex items-start gap-1.5 text-xs"><!> Draft links expose the unpublished version. Use only for reviewers.</p>'),yn=i('<div class="mt-2 ml-6"><!></div>'),wn=i('<div class="mt-2 ml-6"><input type="datetime-local" class="border-input bg-background h-8 rounded-md border px-2 text-sm"/></div>'),Pn=i("<!> <!>",1),kn=i(`<!> <div class="mt-4 space-y-4"><div class="space-y-1.5"><!> <select id="sl-channel" class="border-input bg-background h-9 w-full rounded-md border px-3 text-sm"><option>Live — recipients see the published version</option><option>Draft — recipients see the unpublished version</option></select> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="border-border rounded-md border p-3"><label class="flex cursor-pointer items-start gap-3"><input type="checkbox" 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
9
+ 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" 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"> </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" 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> <!></div></div> <!>`,1),jn=i("<!> <!>",1),Sn=i("<!> Copied",1),Cn=i("<!> Copy",1),Dn=i(`<!> <div class="mt-4 space-y-3"><div class="border-warning/40 bg-warning/5 rounded-md border p-3"><p class="text-warning flex items-start gap-2 text-xs"><!> <span>This URL grants the configured access to anyone who receives it. Treat it like a
10
+ password — revoke it immediately if it's compromised.</span></p></div> <div class="border-border bg-muted/40 rounded-md border p-3"><p class="text-muted-foreground mb-2 text-xs font-medium tracking-wider uppercase">Share URL</p> <div class="flex items-start gap-2"><code class="bg-background min-w-0 flex-1 rounded p-2 font-mono text-xs break-all"> </code> <!></div></div></div> <!>`,1);function In(Pe,t){tt(t,!0);let p=m("live"),j=m(!0),F=m(""),L=m(!1),G=m(""),h=m(!0),w=m(ot(Rt)),B=m(!1),ie=m(null),M=m(null),be=m(!1);yt(()=>{t.open||$e()});function $e(){o(p,"live"),o(j,!0),o(F,""),o(L,!1),o(G,""),o(h,!0),o(w,Rt,!0),o(ie,null),o(M,null),o(be,!1)}async function oe(){if(!(e(h)&&e(w)>Rt&&!confirm(`You're raising the cap above the default of ${Rt}. An uncapped or high-cap link is a denial-of-wallet vector if leaked. Continue?`))&&!(!e(h)&&!confirm("Removing the cap means an unlimited number of solves on this link. Recommended only for trusted recipients. Continue?"))){o(B,!0);try{const A={channel:e(p),allowSolve:e(j),...e(F).trim()?{name:e(F).trim()}:{},maxSolves:e(h)?e(w):null,...e(L)&&e(G)?{expiresAt:new Date(e(G)).toISOString()}:{}},fe=await fetch(`/api/definitions/${t.definitionGuid}/share-links`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)});if(!fe.ok){const ae=await fe.json().catch(()=>({}));Ce.error(ae.message||ae.error||"Failed to mint share link");return}const O=await fe.json();o(ie,O.token,!0),o(M,`${window.location.origin}/library/${t.definitionGuid}?token=${O.token}`),t.onMinted()}catch{Ce.error("Failed to mint share link")}finally{o(B,!1)}}}async function re(){if(e(M))try{await navigator.clipboard.writeText(e(M)),o(be,!0),setTimeout(()=>o(be,!1),2e3)}catch{Ce.error("Could not copy to clipboard")}}var we=Ge(),S=f(we);_(S,()=>Zt,(A,fe)=>{fe(A,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:(O,ae)=>{var pe=Ge(),ce=f(pe);_(ce,()=>Yt,(Ie,je)=>{je(Ie,{class:"max-w-lg",children:(Te,Ae)=>{var me=Ge(),C=f(me);{var D=Y=>{var l=kn(),x=f(l);_(x,()=>Vt,(J,Ue)=>{Ue(J,{children:(d,b)=>{var $=bn(),ye=f($);_(ye,()=>Gt,(Ee,ze)=>{ze(Ee,{children:(Je,Ye)=>{u();var He=T("New share link");r(Je,He)},$$slots:{default:!0}})});var Me=a(ye,2);_(Me,()=>Bt,(Ee,ze)=>{ze(Ee,{children:(Je,Ye)=>{u();var He=T(`Anyone with the link gets the access you configure here. Caps and expiry are the
11
+ load-bearing protection — they assume the URL will eventually leak.`);r(Je,He)},$$slots:{default:!0}})}),r(d,$)},$$slots:{default:!0}})});var P=a(x,2),c=s(P),v=s(c);Qe(v,{for:"sl-channel",children:(J,Ue)=>{u();var d=T("Channel");r(J,d)},$$slots:{default:!0}});var g=a(v,2),y=s(g);y.value=y.__value="live";var W=a(y);W.value=W.__value="draft",n(g);var I=a(g,2);{var K=J=>{var Ue=$n(),d=s(Ue);cr(d,{class:"mt-0.5 h-3 w-3 shrink-0"}),u(),n(Ue),r(J,Ue)};H(I,J=>{e(p)==="draft"&&J(K)})}n(c);var Z=a(c,2),he=s(Z);Qe(he,{for:"sl-label",children:(J,Ue)=>{u();var d=T("Label (optional)");r(J,d)},$$slots:{default:!0}});var le=a(he,2);ft(le,{id:"sl-label",placeholder:"e.g. Demo for Acme",get value(){return e(F)},set value(J){o(F,J,!0)}}),n(Z);var ne=a(Z,2),xe=s(ne),de=s(xe);St(de),u(2),n(xe),n(ne);var R=a(ne,2),z=s(R),N=s(z);St(N);var k=a(N,2),Q=a(s(k),2),se=s(Q);n(Q),n(k),n(z);var ge=a(z,2);{var ee=J=>{var Ue=yn(),d=s(Ue);ft(d,{type:"number",min:1,class:"h-8 w-32 text-sm",get value(){return e(w)},set value(b){o(w,b,!0)}}),n(Ue),r(J,Ue)};H(ge,J=>{e(h)&&J(ee)})}n(R);var ve=a(R,2),ke=s(ve),Ve=s(ke);St(Ve),u(2),n(ke);var q=a(ke,2);{var te=J=>{var Ue=wn(),d=s(Ue);St(d),n(Ue),fr(d,()=>e(G),b=>o(G,b)),r(J,Ue)};H(q,J=>{e(L)&&J(te)})}n(ve),n(P);var ue=a(P,2);_(ue,()=>Wt,(J,Ue)=>{Ue(J,{class:"mt-4",children:(d,b)=>{var $=Pn(),ye=f($);Ne(ye,{variant:"outline",onclick:()=>t.onOpenChange(!1),children:(Ee,ze)=>{u();var Je=T("Cancel");r(Ee,Je)},$$slots:{default:!0}});var Me=a(ye,2);{let Ee=U(()=>e(B)||e(L)&&!e(G)||e(h)&&e(w)<1);Ne(Me,{onclick:oe,get disabled(){return e(Ee)},children:(ze,Je)=>{u();var Ye=T();X(()=>E(Ye,e(B)?"Creating…":"Create link")),r(ze,Ye)},$$slots:{default:!0}})}r(d,$)},$$slots:{default:!0}})}),X(J=>E(se,`Default ${J??""}. Recommended. Uncapped
12
+ links are a denial-of-wallet risk if leaked.`),[()=>Rt.toLocaleString()]),Xt(g,()=>e(p),J=>o(p,J)),sr(de,()=>e(j),J=>o(j,J)),sr(N,()=>e(h),J=>o(h,J)),sr(Ve,()=>e(L),J=>o(L,J)),r(Y,l)},V=Y=>{var l=Dn(),x=f(l);_(x,()=>Vt,(le,ne)=>{ne(le,{children:(xe,de)=>{var R=jn(),z=f(R);_(z,()=>Gt,(k,Q)=>{Q(k,{children:(se,ge)=>{u();var ee=T("Share link ready");r(se,ee)},$$slots:{default:!0}})});var N=a(z,2);_(N,()=>Bt,(k,Q)=>{Q(k,{children:(se,ge)=>{u();var ee=T(`Copy the link now — this is the only time you'll see it. The server stores only a hash; we
13
+ cannot show it again.`);r(se,ee)},$$slots:{default:!0}})}),r(xe,R)},$$slots:{default:!0}})});var P=a(x,2),c=s(P),v=s(c),g=s(v);cr(g,{class:"mt-0.5 h-3.5 w-3.5 shrink-0"}),u(2),n(v),n(c);var y=a(c,2),W=a(s(y),2),I=s(W),K=s(I,!0);n(I);var Z=a(I,2);{let le=U(()=>e(be)?"default":"outline");Ne(Z,{size:"sm",get variant(){return e(le)},onclick:re,class:"shrink-0",children:(ne,xe)=>{var de=Ge(),R=f(de);{var z=k=>{var Q=Sn(),se=f(Q);la(se,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(k,Q)},N=k=>{var Q=Cn(),se=f(Q);ia(se,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(k,Q)};H(R,k=>{e(be)?k(z):k(N,-1)})}r(ne,de)},$$slots:{default:!0}})}n(W),n(y),n(P);var he=a(P,2);_(he,()=>Wt,(le,ne)=>{ne(le,{class:"mt-4",children:(xe,de)=>{Ne(xe,{onclick:()=>t.onOpenChange(!1),children:(R,z)=>{u();var N=T("Done");r(R,N)},$$slots:{default:!0}})},$$slots:{default:!0}})}),X(()=>E(K,e(M))),r(Y,l)};H(C,Y=>{e(ie)?Y(V,-1):Y(D)})}r(Te,me)},$$slots:{default:!0}})}),r(O,pe)},$$slots:{default:!0}})}),r(Pe,we),rt()}var Nn=i('<div class="border-border rounded-md border p-6 text-center"><p class="text-muted-foreground text-xs">Loading…</p></div>'),Tn=i("<!> New link",1),An=i("<!> New link",1),Un=i('<span class="bg-muted text-muted-foreground rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">view-only</span>'),En=i('<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"><!> expired</span>'),Fn=i('<span class="bg-destructive/10 text-destructive rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase">cap reached</span>'),On=i('<div><div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-1.5"><p class="truncate text-sm font-medium"> </p> <span> </span> <!> <!> <!></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"> </span> <span>·</span> <span> </span> <span>·</span> <span> </span></div></div> <!></div>'),Ln=i('<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"> </span> <!></div> <!></div>'),Rn=i(`<strong> </strong> will stop working immediately. Anyone
14
+ using it will see a "no longer active" page. This cannot be undone.`,1),Mn=i("<!> <!>",1),zn=i("<!> <!>",1),Vn=i("<!> <!>",1),Gn=i(`<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
15
+ review links.</p></div> <!></div> <!> <!>`,1);function Bn(Pe,t){tt(t,!0);let p=m(ot([])),j=m(!0),F=m(!1),L=m(null),G=m(null);yt(()=>{t.definitionGuid,h()});async function h(){o(j,!0);try{const O=await fetch(`/api/definitions/${t.definitionGuid}/share-links`);if(!O.ok)throw new Error(`${O.status}`);const ae=await O.json();o(p,ae.links,!0)}catch{Ce.error("Failed to load share links")}finally{o(j,!1)}}async function w(O){o(G,O.id,!0);try{if(!(await fetch(`/api/definitions/${t.definitionGuid}/share-links/${O.id}`,{method:"DELETE"})).ok){Ce.error("Failed to revoke link");return}Ce.success("Link revoked"),await h()}catch{Ce.error("Failed to revoke link")}finally{o(G,null),o(L,null)}}function B(O=null){if(!O)return"Never";const ae=new Date(O),pe=new Date,ce=ae.getTime()<pe.getTime();return{text:ae.toLocaleDateString(),expired:ce}}function ie(O){const ae=Date.now()-new Date(O).getTime(),pe=Math.floor(ae/6e4);if(pe<1)return"just now";if(pe<60)return`${pe}m ago`;const ce=Math.floor(pe/60);if(ce<24)return`${ce}h ago`;const Ie=Math.floor(ce/24);return Ie<30?`${Ie}d ago`:new Date(O).toLocaleDateString()}const M=U(()=>e(p).filter(O=>!O.revokedAt));var be=Gn(),$e=f(be),oe=a(s($e),2);{var re=O=>{var ae=Nn();r(O,ae)},we=O=>{pr(O,{size:"sm",get icon(){return da},title:"No share links yet",description:"Mint a link to share this definition without requiring the recipient to have an account.",actions:pe=>{Ne(pe,{size:"sm",onclick:()=>o(F,!0),children:(ce,Ie)=>{var je=Tn(),Te=f(je);Kt(Te,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(ce,je)},$$slots:{default:!0}})},$$slots:{actions:!0}})},S=O=>{var ae=Ln(),pe=s(ae),ce=s(pe),Ie=s(ce);n(ce);var je=a(ce,2);Ne(je,{size:"sm",variant:"outline",onclick:()=>o(F,!0),children:(Ae,me)=>{var C=An(),D=f(C);Kt(D,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(Ae,C)},$$slots:{default:!0}}),n(pe);var Te=a(pe,2);mt(Te,19,()=>e(M),Ae=>Ae.id,(Ae,me,C)=>{const D=U(()=>B(e(me).expiresAt)),V=U(()=>typeof e(D)=="object"&&e(D).expired),Y=U(()=>e(me).maxSolves),l=U(()=>e(Y)!==null&&e(Y)!==void 0),x=U(()=>e(l)&&e(me).solveCount>=e(Y));var P=On(),c=s(P),v=s(c),g=s(v),y=s(g,!0);n(g);var W=a(g,2),I=s(W,!0);n(W);var K=a(W,2);{var Z=ee=>{var ve=Un();r(ee,ve)};H(K,ee=>{e(me).allowSolve||ee(Z)})}var he=a(K,2);{var le=ee=>{var ve=En(),ke=s(ve);cr(ke,{class:"h-2.5 w-2.5"}),u(),n(ve),r(ee,ve)};H(he,ee=>{e(V)&&ee(le)})}var ne=a(he,2);{var xe=ee=>{var ve=Fn();r(ee,ve)};H(ne,ee=>{e(x)&&ee(xe)})}n(v);var de=a(v,2),R=s(de),z=s(R);n(R);var N=a(R,4),k=s(N);n(N);var Q=a(N,4),se=s(Q);n(Q),n(de),n(c);var ge=a(c,2);{let ee=U(()=>e(G)===e(me).id);Ne(ge,{variant:"ghost",size:"icon",onclick:()=>o(L,e(me),!0),get disabled(){return e(ee)},class:"text-muted-foreground hover:text-destructive h-7 w-7 shrink-0","aria-label":"Revoke link",children:(ve,ke)=>{tr(ve,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}n(P),X((ee,ve,ke)=>{pt(P,1,`flex items-start gap-3 px-4 py-3 ${e(C)<e(M).length-1?"border-border border-b":""}`),E(y,e(me).name??"Untitled link"),pt(W,1,`rounded-full px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${e(me).channel==="live"?"bg-success/10 text-success":"bg-warning/10 text-warning"}`),E(I,e(me).channel),E(z,`${ee??""}${ve??""} solves`),E(k,`Expires: ${(typeof e(D)=="object"?e(D).text:e(D))??""}`),E(se,`Minted ${ke??""}`)},[()=>e(me).solveCount.toLocaleString(),()=>e(l)?` / ${e(Y).toLocaleString()}`:"",()=>ie(e(me).createdAt)]),r(Ae,P)}),n(ae),X(()=>E(Ie,`${e(M).length??""} active link${e(M).length===1?"":"s"}`)),r(O,ae)};H(oe,O=>{e(j)?O(re):e(M).length===0?O(we,1):O(S,-1)})}n($e);var A=a($e,2);In(A,{get definitionGuid(){return t.definitionGuid},get open(){return e(F)},onOpenChange:O=>o(F,O,!0),onMinted:h});var fe=a(A,2);{let O=U(()=>!!e(L));_(fe,()=>Ct,(ae,pe)=>{pe(ae,{get open(){return e(O)},onOpenChange:ce=>!ce&&o(L,null),children:(ce,Ie)=>{var je=Ge(),Te=f(je);_(Te,()=>Dt,(Ae,me)=>{me(Ae,{children:(C,D)=>{var V=Vn(),Y=f(V);_(Y,()=>It,(x,P)=>{P(x,{children:(c,v)=>{var g=Mn(),y=f(g);_(y,()=>Nt,(I,K)=>{K(I,{children:(Z,he)=>{u();var le=T("Revoke this link?");r(Z,le)},$$slots:{default:!0}})});var W=a(y,2);_(W,()=>Tt,(I,K)=>{K(I,{children:(Z,he)=>{var le=Ge(),ne=f(le);{var xe=de=>{var R=Rn(),z=f(R),N=s(z,!0);n(z),u(),X(()=>E(N,e(L).name??"This link")),r(de,R)};H(ne,de=>{e(L)&&de(xe)})}r(Z,le)},$$slots:{default:!0}})}),r(c,g)},$$slots:{default:!0}})});var l=a(Y,2);_(l,()=>At,(x,P)=>{P(x,{children:(c,v)=>{var g=zn(),y=f(g);_(y,()=>Ut,(I,K)=>{K(I,{children:(Z,he)=>{u();var le=T("Cancel");r(Z,le)},$$slots:{default:!0}})});var W=a(y,2);{let I=U(()=>!!e(G));_(W,()=>Et,(K,Z)=>{Z(K,{onclick:()=>e(L)&&w(e(L)),get disabled(){return e(I)},children:(he,le)=>{u();var ne=T();X(()=>E(ne,e(G)?"Revoking…":"Revoke")),r(he,ne)},$$slots:{default:!0}})})}r(c,g)},$$slots:{default:!0}})}),r(C,V)},$$slots:{default:!0}})}),r(ce,je)},$$slots:{default:!0}})})}r(Pe,be),rt()}var qn=i('<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"><!> Back to definition</button>'),Jn=i("<!> <!> <!>",1),Hn=i(' <button class="hover:opacity-70"><!></button>',1),Wn=i('<div class="mb-1 flex flex-wrap gap-1"></div>'),Kn=i('<div class="space-y-1.5"><!> <!></div>'),Qn=i('<div class="space-y-1.5"><!> <!></div>'),Xn=i('<div class="grid grid-cols-2 gap-3"><!> <!></div>'),Yn=i('<div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><!> <!></div> <div class="grid grid-cols-2 gap-3"><div class="space-y-1.5"><!> <!></div> <div class="space-y-1.5"><div class="flex items-center justify-between"><!> <span class="text-muted-foreground text-xs"> </span></div> <!> <!></div></div> <!> <div class="space-y-2"><div class="flex items-center gap-2"><!> <!></div> <!></div> <!>',1),Zn=i("<!> <!> <!> <!>",1),es=i("<!> Delete",1),ts=i('<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"> </h2></div> <!></div> <!> <!> <div class="border-border flex shrink-0 items-center justify-between border-t px-6 py-4"><!> <div class="flex gap-2"><!> <!></div></div>',1),rs=i("<!> <!>",1),as=i("<!> <!>",1),os=i("<!> <!>",1),ns=i("<strong> </strong> will move from <strong> </strong> to <strong> </strong> ",1),ss=i("<!> <!>",1),is=i("<!> <!>",1),ls=i("<!> <!>",1),ds=i("<!> <!> <!>",1);function cs(Pe,t){tt(t,!0);let p=Xe(t,"defaultComputeServerId",3,null),j=Xe(t,"initialTab",3,"versions"),F=m(ot(j()==="shares"&&!t.enableSharing?"versions":j())),L=m(ot(t.record.displayName)),G=m(ot(t.record.description??"")),h=m(ot(t.record.category??"")),w=m(ot([...t.record.tags??[]])),B=m(ot(t.record.projectId)),ie=m(ot(t.record.computeServerId??null)),M=m(ot(t.record.status)),be=m(void 0),$e=m(ot(t.record.coverImage??"")),oe=m(void 0),re=m(!1),we=m(!1),S=m(!1),A=m(null);const fe=U(()=>e(A)?t.projects.find(l=>l.id===e(A))??null:null),O=U(()=>t.projects.find(l=>l.id===e(B))??null);function ae(l){l!==e(B)&&o(A,l,!0)}function pe(){e(A)&&o(B,e(A),!0),o(A,null)}function ce(){o(A,null)}const Ie=U(()=>e(be)??(t.record.coverImage?.startsWith("/api/definitions/")?"upload":"url")),je=[{id:"draft",label:"Draft — work in progress",icon:xr,iconStyle:"color: var(--muted-foreground); fill: var(--muted-foreground);"},{id:"published",label:"Published — live and visible to runners",icon:xr,iconStyle:"color: #22c55e; fill: #22c55e;"}],Te=U(()=>t.computeServers.map(l=>({id:l.id,label:l.id===p()?`${l.label} (Default)`:l.label})));async function Ae(){if(!e(oe)?.files?.length)return;o(S,!0);const l=new FormData;l.append("image",e(oe).files[0]);try{const x=await fetch(`/api/definitions/${t.record.guid}/image`,{method:"POST",body:l});if(x.ok)Ce.success("Cover image updated"),await ct();else{const P=await x.json().catch(()=>({}));Ce.error(P.message||"Image upload failed")}}catch{Ce.error("Image upload failed")}finally{o(S,!1),e(oe)&&(e(oe).value=""),o(re,!1)}}function me(){t.onSave(t.record.guid,{displayName:e(L),description:e(G)||void 0,category:e(h)||void 0,tags:e(w).length?e(w):void 0,coverImage:e($e)||void 0,status:e(M),projectId:e(B)||void 0,computeServerId:e(ie)})}var C=ds(),D=f(C);Ir(D,{get onClose(){return t.onClose},ariaLabel:"Close edit drawer",children:(l,x)=>{var P=ts(),c=f(P),v=s(c),g=a(s(v),2),y=s(g,!0);n(g),n(v);var W=a(v,2);Ne(W,{variant:"ghost",size:"icon",get onclick(){return t.onClose},class:"h-8 w-8 shrink-0",children:(z,N)=>{Pt(z,{class:"h-4 w-4"})},$$slots:{default:!0}}),n(c);var I=a(c,2);{var K=z=>{var N=qn(),k=s(N);ca(k,{class:"h-3 w-3"}),u(),n(N),at("click",N,function(...Q){t.onBack?.apply(this,Q)}),r(z,N)};H(I,z=>{t.onBack&&z(K)})}var Z=a(I,2);_(Z,()=>Pr,(z,N)=>{N(z,{class:"flex flex-1 flex-col overflow-hidden",get value(){return e(F)},set value(k){o(F,k,!0)},children:(k,Q)=>{var se=Zn(),ge=f(se);{let q=U(()=>`mx-6 grid w-auto ${t.enableSharing?"grid-cols-3":"grid-cols-2"} ${t.onBack?"mt-2":"mt-4"}`);_(ge,()=>kr,(te,ue)=>{ue(te,{get class(){return e(q)},children:(J,Ue)=>{var d=Jn(),b=f(d);_(b,()=>Mt,(Ee,ze)=>{ze(Ee,{value:"details",children:(Je,Ye)=>{u();var He=T("Details");r(Je,He)},$$slots:{default:!0}})});var $=a(b,2);_($,()=>Mt,(Ee,ze)=>{ze(Ee,{value:"versions",children:(Je,Ye)=>{u();var He=T("Versions");r(Je,He)},$$slots:{default:!0}})});var ye=a($,2);{var Me=Ee=>{var ze=Ge(),Je=f(ze);_(Je,()=>Mt,(Ye,He)=>{He(Ye,{value:"shares",children:(vt,ut)=>{u();var nt=T("Share links");r(vt,nt)},$$slots:{default:!0}})}),r(Ee,ze)};H(ye,Ee=>{t.enableSharing&&Ee(Me)})}r(J,d)},$$slots:{default:!0}})})}var ee=a(ge,2);_(ee,()=>zt,(q,te)=>{te(q,{value:"versions",class:"mt-4 flex-1 overflow-y-auto px-6 py-5",children:(ue,J)=>{xn(ue,{get definitionGuid(){return t.record.guid},get onOpenRunner(){return t.onOpenRunner}})},$$slots:{default:!0}})});var ve=a(ee,2);_(ve,()=>zt,(q,te)=>{te(q,{value:"details",class:"mt-4 flex-1 space-y-5 overflow-y-auto px-6 py-5",children:(ue,J)=>{var Ue=Yn(),d=f(Ue),b=s(d);Qe(b,{for:"edit-name",children:(Se,Be)=>{u();var qe=T("Display name");r(Se,qe)},$$slots:{default:!0}});var $=a(b,2);ft($,{id:"edit-name",get value(){return e(L)},set value(Se){o(L,Se,!0)}}),n(d);var ye=a(d,2),Me=s(ye);Qe(Me,{for:"edit-desc",children:(Se,Be)=>{u();var qe=T("Description");r(Se,qe)},$$slots:{default:!0}});var Ee=a(Me,2);er(Ee,{id:"edit-desc",rows:3,get value(){return e(G)},set value(Se){o(G,Se,!0)}}),n(ye);var ze=a(ye,2),Je=s(ze);Qe(Je,{for:"edit-status",children:(Se,Be)=>{u();var qe=T("Status");r(Se,qe)},$$slots:{default:!0}});var Ye=a(Je,2);ir(Ye,{id:"edit-status",get items(){return je},get value(){return e(M)},onChange:Se=>o(M,Se,!0)}),n(ze);var He=a(ze,2),vt=s(He),ut=s(vt);Qe(ut,{for:"edit-cat",children:(Se,Be)=>{u();var qe=T("Category");r(Se,qe)},$$slots:{default:!0}});var nt=a(ut,2);ft(nt,{id:"edit-cat",maxlength:40,placeholder:"e.g. Facade",get value(){return e(h)},set value(Se){o(h,Se,!0)}}),n(vt);var gt=a(vt,2),bt=s(gt),_e=s(bt);Qe(_e,{for:"edit-tags",children:(Se,Be)=>{u();var qe=T("Tags");r(Se,qe)},$$slots:{default:!0}});var De=a(_e,2),Fe=s(De);n(De),n(bt);var Ke=a(bt,2);{var Ze=Se=>{var Be=Wn();mt(Be,20,()=>e(w),qe=>qe,(qe,$t)=>{Sr(qe,{variant:"outline",class:"gap-1 text-xs",children:(ar,gr)=>{u();var _t=Hn(),ht=f(_t),xt=a(ht),Ot=s(xt);Pt(Ot,{class:"h-2.5 w-2.5"}),n(xt),X(()=>{E(ht,`${$t??""} `),jt(xt,"aria-label",`Remove tag ${$t??""}`)}),at("click",xt,()=>o(w,e(w).filter(kt=>kt!==$t),!0)),r(ar,_t)},$$slots:{default:!0}})}),n(Be),r(Se,Be)};H(Ke,Se=>{e(w).length>0&&Se(Ze)})}var it=a(Ke,2);{let Se=U(()=>e(w).length>=5);ft(it,{id:"edit-tags",placeholder:"Add tag + Enter",get disabled(){return e(Se)},onkeydown:Be=>{if(Be.key==="Enter"){Be.preventDefault();const qe=Be.currentTarget,$t=qe.value.trim();$t&&!e(w).includes($t)&&e(w).length<5&&(o(w,[...e(w),$t],!0),qe.value="")}}})}n(gt),n(He);var et=a(He,2);vr(et,{});var Oe=a(et,2),Le=s(Oe),We=s(Le);xa(We,{class:"text-muted-foreground h-4 w-4"});var Re=a(We,2);Qe(Re,{children:(Se,Be)=>{u();var qe=T("Cover image");r(Se,qe)},$$slots:{default:!0}}),n(Le);var st=a(Le,2);{let Se=U(()=>t.record.coverImage??"");Nr(st,{get mode(){return e(Ie)},get value(){return e(Se)},get isUploading(){return e(S)},get hasFile(){return e(re)},onModeChange:Be=>o(be,Be,!0),onUpload:Ae,onFileSelected:()=>o(re,!!e(oe)?.files?.length),onUrlChange:Be=>o($e,Be,!0),get inputRef(){return e(oe)},set inputRef(Be){o(oe,Be,!0)}})}n(Oe);var dt=a(Oe,2);{var lt=Se=>{var Be=Xn(),qe=s(Be);{var $t=_t=>{var ht=Kn(),xt=s(ht);Qe(xt,{for:"edit-proj",children:(kt,Jt)=>{u();var or=T("Project");r(kt,or)},$$slots:{default:!0}});var Ot=a(xt,2);Tr(Ot,{id:"edit-proj",get projects(){return t.projects},get value(){return e(B)},onChange:ae}),n(ht),r(_t,ht)};H(qe,_t=>{t.projects.length>1&&_t($t)})}var ar=a(qe,2);{var gr=_t=>{var ht=Qn(),xt=s(ht);Qe(xt,{for:"edit-srv",children:(kt,Jt)=>{u();var or=T("Compute server");r(kt,or)},$$slots:{default:!0}});var Ot=a(xt,2);{let kt=U(()=>e(ie)??p()??"");ir(Ot,{id:"edit-srv",get items(){return e(Te)},get value(){return e(kt)},onChange:Jt=>{o(ie,Jt===p()?null:Jt,!0)}})}n(ht),r(_t,ht)};H(ar,_t=>{t.computeServers.length>0&&_t(gr)})}n(Be),r(Se,Be)};H(dt,Se=>{(t.projects.length>1||t.computeServers.length>0)&&Se(lt)})}X(()=>E(Fe,`${e(w).length??""}/5`)),r(ue,Ue)},$$slots:{default:!0}})});var ke=a(ve,2);{var Ve=q=>{var te=Ge(),ue=f(te);_(ue,()=>zt,(J,Ue)=>{Ue(J,{value:"shares",class:"mt-4 flex-1 overflow-y-auto px-6 py-5",children:(d,b)=>{Bn(d,{get definitionGuid(){return t.record.guid}})},$$slots:{default:!0}})}),r(q,te)};H(ke,q=>{t.enableSharing&&q(Ve)})}r(k,se)},$$slots:{default:!0}})});var he=a(Z,2),le=s(he);Ne(le,{variant:"ghost",size:"sm",onclick:()=>o(we,!0),class:"text-destructive hover:text-destructive gap-1.5 px-2",children:(z,N)=>{var k=es(),Q=f(k);tr(Q,{class:"h-3.5 w-3.5"}),u(),r(z,k)},$$slots:{default:!0}});var ne=a(le,2),xe=s(ne);Ne(xe,{variant:"outline",size:"sm",get onclick(){return t.onClose},children:(z,N)=>{u();var k=T("Cancel");r(z,k)},$$slots:{default:!0}});var de=a(xe,2);{var R=z=>{Ne(z,{size:"sm",get disabled(){return t.isSaving},onclick:me,children:(N,k)=>{u();var Q=T();X(()=>E(Q,t.isSaving?"Saving…":"Save")),r(N,Q)},$$slots:{default:!0}})};H(de,z=>{e(F)==="details"&&z(R)})}n(ne),n(he),X(()=>E(y,t.record.displayName)),r(l,P)},$$slots:{default:!0}});var V=a(D,2);_(V,()=>Ct,(l,x)=>{x(l,{get open(){return e(we)},onOpenChange:P=>o(we,P,!0),children:(P,c)=>{var v=Ge(),g=f(v);_(g,()=>Dt,(y,W)=>{W(y,{children:(I,K)=>{var Z=os(),he=f(Z);_(he,()=>It,(ne,xe)=>{xe(ne,{children:(de,R)=>{var z=rs(),N=f(z);_(N,()=>Nt,(Q,se)=>{se(Q,{children:(ge,ee)=>{u();var ve=T();X(()=>E(ve,`Delete "${t.record.displayName??""}"?`)),r(ge,ve)},$$slots:{default:!0}})});var k=a(N,2);_(k,()=>Tt,(Q,se)=>{se(Q,{children:(ge,ee)=>{u();var ve=T("This removes the definition and all its files. This cannot be undone.");r(ge,ve)},$$slots:{default:!0}})}),r(de,z)},$$slots:{default:!0}})});var le=a(he,2);_(le,()=>At,(ne,xe)=>{xe(ne,{children:(de,R)=>{var z=as(),N=f(z);_(N,()=>Ut,(Q,se)=>{se(Q,{children:(ge,ee)=>{u();var ve=T("Cancel");r(ge,ve)},$$slots:{default:!0}})});var k=a(N,2);_(k,()=>Et,(Q,se)=>{se(Q,{onclick:()=>t.onDelete(t.record.guid),children:(ge,ee)=>{u();var ve=T("Delete");r(ge,ve)},$$slots:{default:!0}})}),r(de,z)},$$slots:{default:!0}})}),r(I,Z)},$$slots:{default:!0}})}),r(P,v)},$$slots:{default:!0}})});var Y=a(V,2);{let l=U(()=>e(A)!==null);_(Y,()=>Ct,(x,P)=>{P(x,{get open(){return e(l)},onOpenChange:c=>{c||ce()},children:(c,v)=>{var g=Ge(),y=f(g);_(y,()=>Dt,(W,I)=>{I(W,{children:(K,Z)=>{var he=ls(),le=f(he);_(le,()=>It,(xe,de)=>{de(xe,{children:(R,z)=>{var N=ss(),k=f(N);_(k,()=>Nt,(se,ge)=>{ge(se,{children:(ee,ve)=>{u();var ke=T("Move to a different project?");r(ee,ke)},$$slots:{default:!0}})});var Q=a(k,2);_(Q,()=>Tt,(se,ge)=>{ge(se,{children:(ee,ve)=>{var ke=ns(),Ve=f(ke),q=s(Ve,!0);n(Ve);var te=a(Ve,2),ue=s(te,!0);n(te);var J=a(te,2),Ue=s(J,!0);n(J);var d=a(J);X(()=>{E(q,t.record.displayName),E(ue,e(O)?.name??"—"),E(Ue,e(fe)?.name??"—"),E(d,`. Project members and visibility may change
16
+ accordingly.${t.enableSharing?" Existing share links keep working.":""}`)}),r(ee,ke)},$$slots:{default:!0}})}),r(R,N)},$$slots:{default:!0}})});var ne=a(le,2);_(ne,()=>At,(xe,de)=>{de(xe,{children:(R,z)=>{var N=is(),k=f(N);_(k,()=>Ut,(se,ge)=>{ge(se,{onclick:ce,children:(ee,ve)=>{u();var ke=T("Cancel");r(ee,ke)},$$slots:{default:!0}})});var Q=a(k,2);_(Q,()=>Et,(se,ge)=>{ge(se,{onclick:pe,children:(ee,ve)=>{u();var ke=T("Move");r(ee,ke)},$$slots:{default:!0}})}),r(R,N)},$$slots:{default:!0}})}),r(K,he)},$$slots:{default:!0}})}),r(c,g)},$$slots:{default:!0}})})}r(Pe,C),rt()}wt(["click"]);var vs=i("<!> Project settings",1),us=i("<!> Add definition",1),fs=i("<!> <!>",1),ps=i('<div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4"></div>'),ms=i("<!> <!>",1),gs=i("<!> <!>",1),_s=i("<!> <!>",1),hs=i('<div class="flex h-full overflow-hidden"><!> <div class="flex flex-1 flex-col overflow-hidden"><div class="border-border bg-background shrink-0 border-b px-(--page-px) py-5"><!></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"><!></div> <span class="text-muted-foreground font-mono text-xs tabular-nums"> </span> <div class="ml-auto"><!></div></div> <!></div></div></div> <!> <!> <!> <!> <!>',1);function li(Pe,t){tt(t,!0);const p=()=>Rr(qr,"$page",j),[j,F]=Mr(),L=U(()=>!!p().data.flags?.enableSharing);let G=m(""),h=m(null),w=m("grid");yt(()=>{const d=p().url.searchParams.get("project");if(d){const b=t.data.projects.find($=>$.slug===d);b&&o(h,b.id,!0)}});let B=m(null),ie=m(null),M=m(null),be=m(null),$e=m(!1),oe=m(!1),re=m("versions"),we=m(!1),S=m(null);const A=U(()=>{let d=t.data.records;if(e(h)&&(d=d.filter(b=>b.projectId===e(h))),e(G).trim()){const b=e(G).toLowerCase();d=d.filter($=>$.displayName?.toLowerCase().includes(b)||$.description?.toLowerCase().includes(b)||$.tags?.some(ye=>ye.toLowerCase().includes(b)))}return d}),fe=U(()=>e(ie)?t.data.records.find(d=>d.guid===e(ie))??null:null),O=U(()=>e(h)?t.data.projects.find(d=>d.id===e(h))??null:null),ae=U(()=>e(O)?e(O).canEdit:t.data.projects.some(d=>d.canEdit)),pe=U(()=>t.data.projects.filter(d=>d.canEdit)),ce=U(()=>e(M)?t.data.projects.find(d=>d.id===e(M))??null:null),Ie=U(()=>e(be)?t.data.projects.find(d=>d.id===e(be))??null:null);function je(d){return t.data.projects.find(b=>b.id===d)?.name??""}function Te(d){return t.data.projects.find(b=>b.id===d)?.visibility}function Ae(d){const b=t.data.computeServers;if(b.length===0)return;const $=d.computeServerId?b.find(Me=>Me.id===d.computeServerId):void 0,ye=b.find(Me=>Me.id===t.data.defaultComputeServerId)??b[0];return($??ye)?.label}function me(d){return t.data.projects.find(b=>b.id===d.projectId)?.canEdit??!1}async function C(d,b){if(d.headers.get("content-type")?.includes("application/json")){const $=await d.json().catch(()=>null);return $?.message||$?.error?.message||`${b} (${d.status})`}return`${b} (${d.status})`}async function D(d,b){o(S,d,!0);try{const $=await fetch(`/api/definitions/${d}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});$.ok?(Ce.success("Definition saved"),o(ie,null),o(B,null),await ct()):Ce.error(await C($,"Save failed"))}catch($){Ce.error("Save failed: "+($ instanceof Error?$.message:"Unknown error"))}finally{o(S,null)}}async function V(d){const b=t.data.records.find($=>$.guid===d);try{const $=await fetch(`/api/definitions/${d}`,{method:"DELETE"});$.ok?(Ce.success(`"${b?.displayName??"Definition"}" deleted`),o(ie,null),await ct()):Ce.error(await C($,"Delete failed"))}catch{Ce.error("Delete failed")}}async function Y(d){o(we,!0);try{const b=await fetch("/api/definitions",{method:"POST",body:d});if(b.ok)Ce.success(`"${d.get("displayName")}" created`),o($e,!1),await ct();else{const $=await C(b,"Failed to create definition");throw Ce.error($),new Error($)}}finally{o(we,!1)}}async function l(d){const b=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)});if(b.ok){const $=await b.json().catch(()=>null);Ce.success(`Project "${d.name}" created`),await ct(),$?.id&&o(h,$.id,!0)}else throw Ce.error(await C(b,"Failed to create project")),new Error("create project failed")}async function x(d,b){const $=await fetch(`/api/projects/${d}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});$.ok?(Ce.success("Project saved"),o(M,null),await ct()):Ce.error(await C($,"Failed to save project"))}async function P(d){const b=await fetch(`/api/projects/${d}`,{method:"DELETE"});b.ok?(Ce.success("Project deleted"),e(h)===d&&o(h,t.data.projects.find($=>$.id!==d)?.id??null,!0),o(be,null),o(M,null),await ct()):Ce.error(await C(b,"Failed to delete project"))}async function c(d,b,$){const ye=await fetch(`/api/projects/${d}/members`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:b,role:$})});ye.ok?(Ce.success("Member added"),await ct()):Ce.error(await C(ye,"Failed to add member"))}async function v(d,b,$){(await fetch(`/api/projects/${d}/members/${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({role:$})})).ok?await ct():Ce.error("Failed to update role")}async function g(d,b){(await fetch(`/api/projects/${d}/members/${b}`,{method:"DELETE"})).ok?await ct():Ce.error("Failed to remove member")}var y=hs();Br("rqn88j",d=>{Or(()=>{Lr.title="Projects"})});var W=f(y),I=s(W);eo(I,{get projects(){return t.data.projects},get records(){return t.data.records},get activeProjectId(){return e(h)},get canManageProjects(){return t.data.canManageProjects},onSelect:d=>{o(h,d,!0);const b=t.data.projects.find($=>$.id===d);if(b){const $=new pa(p().url.search);$.set("project",b.slug),window.history.replaceState(null,"",`?${$}`)}},onCreate:l});var K=a(I,2),Z=s(K),he=s(Z);{const d=ye=>{var Me=fs(),Ee=f(Me);{var ze=He=>{Ne(He,{variant:"outline",size:"sm",onclick:()=>o(M,e(O).id,!0),children:(vt,ut)=>{var nt=vs(),gt=f(nt);ua(gt,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(vt,nt)},$$slots:{default:!0}})};H(Ee,He=>{t.data.canManageProjects&&e(O)&&He(ze)})}var Je=a(Ee,2);{var Ye=He=>{Ne(He,{size:"sm",onclick:()=>o($e,!0),children:(vt,ut)=>{var nt=us(),gt=f(nt);Kt(gt,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(vt,nt)},$$slots:{default:!0}})};H(Je,He=>{e(ae)&&He(Ye)})}r(ye,Me)};let b=U(()=>e(O)?e(O).name:"All projects"),$=U(()=>e(O)?.description??(e(O)?void 0:"Definitions across every project in this organization."));va(he,{class:"mb-0",get eyebrow(){return e(b)},title:"Definitions",get description(){return e($)},actions:d,$$slots:{actions:!0}})}n(Z);var le=a(Z,2),ne=s(le),xe=s(ne),de=s(xe);Yr(de,{placeholder:"Search by name, description, tags…",clearable:!0,get value(){return e(G)},set value(d){o(G,d,!0)}}),n(xe);var R=a(xe,2),z=s(R);n(R);var N=a(R,2),k=s(N);Zr(k,{get mode(){return e(w)},size:"sm",onChange:d=>o(w,d,!0)}),n(N),n(ne);var Q=a(ne,2);{var se=d=>{{let b=U(()=>e(G)?"Try adjusting your search":"Add your first definition to get started");pr(d,{size:"lg",title:"No definitions found",get description(){return e(b)}})}},ge=d=>{var b=ps();mt(b,21,()=>e(A),$=>$.guid,($,ye)=>{{let Me=U(()=>e(h)===null?je(e(ye).projectId):void 0),Ee=U(()=>e(h)===null?Te(e(ye).projectId):void 0),ze=U(()=>Ae(e(ye)));ea($,{get record(){return e(ye)},showStatus:!0,onOpen:Je=>o(B,Je,!0),get projectName(){return e(Me)},get projectVisibility(){return e(Ee)},get serverName(){return e(ze)}})}}),n(b),r(d,b)},ee=d=>{Do(d,{get records(){return e(A)},get projects(){return t.data.projects},onOpen:b=>o(B,b,!0)})};H(Q,d=>{e(A).length===0?d(se):e(w)==="grid"?d(ge,1):d(ee,-1)})}n(le),n(K),n(W);var ve=a(W,2);{var ke=d=>{{let b=U(()=>je(e(B).projectId)),$=U(()=>me(e(B)));Ro(d,{get record(){return e(B)},get projectName(){return e(b)},get canEdit(){return e($)},get showShare(){return e(L)},onClose:()=>o(B,null),onEdit:ye=>{o(re,"details"),o(ie,ye.guid,!0),o(oe,!0),o(B,null)},onShare:ye=>{o(re,"shares"),o(ie,ye.guid,!0),o(oe,!0),o(B,null)},onOpenRunner:(ye,Me,Ee)=>_r(`/library/${ye}${Ee?`?version=${Ee}`:Me==="draft"?"?channel=draft":""}`)})}};H(ve,d=>{e(B)&&d(ke)})}var Ve=a(ve,2);{var q=d=>{var b=Ge(),$=f(b);Vr($,()=>e(re),ye=>{{let Me=U(()=>e(S)===e(fe).guid),Ee=U(()=>e(oe)?()=>{o(B,e(fe),!0),o(ie,null),o(oe,!1)}:void 0);cs(ye,{get record(){return e(fe)},get projects(){return t.data.projects},get computeServers(){return t.data.computeServers},get defaultComputeServerId(){return t.data.defaultComputeServerId},get isSaving(){return e(Me)},get initialTab(){return e(re)},get enableSharing(){return e(L)},onClose:()=>{o(ie,null),o(oe,!1),o(re,"versions")},get onBack(){return e(Ee)},onSave:D,onDelete:V,onOpenRunner:(ze,Je,Ye)=>_r(`/library/${ze}${Ye?`?version=${Ye}`:Je==="draft"?"?channel=draft":""}`)})}}),r(d,b)};H(Ve,d=>{e(fe)&&d(q)})}var te=a(Ve,2);{var ue=d=>{{let b=U(()=>e(M)!==null);yo(d,{get project(){return e(ce)},get users(){return t.data.users},get open(){return e(b)},onOpenChange:$=>{$||o(M,null)},onSave:x,onDelete:$=>{o(M,null),o(be,$,!0)},onAddMember:c,onUpdateMemberRole:v,onRemoveMember:g})}};H(te,d=>{e(ce)&&t.data.canManageProjects&&d(ue)})}var J=a(te,2);{let d=U(()=>e(be)!==null);_(J,()=>Ct,(b,$)=>{$(b,{get open(){return e(d)},onOpenChange:ye=>{ye||o(be,null)},children:(ye,Me)=>{var Ee=Ge(),ze=f(Ee);_(ze,()=>Dt,(Je,Ye)=>{Ye(Je,{children:(He,vt)=>{var ut=_s(),nt=f(ut);_(nt,()=>It,(bt,_e)=>{_e(bt,{children:(De,Fe)=>{var Ke=ms(),Ze=f(Ke);_(Ze,()=>Nt,(et,Oe)=>{Oe(et,{children:(Le,We)=>{u();var Re=T();X(()=>E(Re,`Delete "${e(Ie)?.name??""??""}"?`)),r(Le,Re)},$$slots:{default:!0}})});var it=a(Ze,2);_(it,()=>Tt,(et,Oe)=>{Oe(et,{children:(Le,We)=>{u();var Re=T("This will remove the project and all member assignments. Definitions will become unassigned.");r(Le,Re)},$$slots:{default:!0}})}),r(De,Ke)},$$slots:{default:!0}})});var gt=a(nt,2);_(gt,()=>At,(bt,_e)=>{_e(bt,{children:(De,Fe)=>{var Ke=gs(),Ze=f(Ke);_(Ze,()=>Ut,(et,Oe)=>{Oe(et,{children:(Le,We)=>{u();var Re=T("Cancel");r(Le,Re)},$$slots:{default:!0}})});var it=a(Ze,2);_(it,()=>Et,(et,Oe)=>{Oe(et,{onclick:()=>e(be)&&P(e(be)),children:(Le,We)=>{u();var Re=T("Delete");r(Le,Re)},$$slots:{default:!0}})}),r(De,Ke)},$$slots:{default:!0}})}),r(He,ut)},$$slots:{default:!0}})}),r(ye,Ee)},$$slots:{default:!0}})})}var Ue=a(J,2);{let d=U(()=>e(O)?.canEdit?e(h):e(pe)[0]?.id),b=U(()=>e(pe).length>1);Ga(Ue,{get open(){return e($e)},get isAdding(){return e(we)},get projects(){return e(pe)},get defaultProjectId(){return e(d)},get computeServers(){return t.data.computeServers},get defaultComputeServerId(){return t.data.defaultComputeServerId},get showProjectDropdown(){return e(b)},onOpenChange:$=>o($e,$,!0),onSubmit:Y})}X(()=>E(z,`${e(A).length??""} definition${e(A).length===1?"":"s"}`)),r(Pe,y),rt(),F()}export{li as component};
@@ -1,4 +1,4 @@
1
- import"../chunks/DsnmJJEf.js";import{p as la,a as na,k as va,$ as ma,c as v,d as t,r as m,f as E,n as f,t as L}from"../chunks/BtOVeLcI.js";import{s as B}from"../chunks/BNpXeuQ_.js";import{a as e,f as p,c as R,t as g}from"../chunks/BoLtD6vo.js";import{i as w}from"../chunks/DAQN5y4A.js";import{e as ca,a as ua}from"../chunks/22C0ZkpD.js";import{c as k}from"../chunks/ChEZL1UP.js";import{h as fa}from"../chunks/CTTkX-27.js";import{p as pa}from"../chunks/Cd8uUagh.js";import{C as D}from"../chunks/Mn4D08zE.js";import{A as G,a as F}from"../chunks/CiRf7cog.js";import{B as I}from"../chunks/mlApEF2J.js";import{L as N}from"../chunks/wegQDfR0.js";import{I as C}from"../chunks/CJvX1bCR.js";var ha=p("<!> <!>",1),_a=p('<a class="block"><!></a>'),xa=p('<div class="space-y-2"><p class="text-muted-foreground text-center text-xs">The first user to sign in becomes the platform admin.</p> <!></div>'),ga=p('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),ya=p(`<form method="POST" action="/auth/email/start?redirectTo=%2Fadmin" class="space-y-4"><p class="text-muted-foreground text-center text-xs">Sign in via email link. Set <code>BOOTSTRAP_INSTANCE_ADMIN_EMAIL</code> in your env to control
1
+ import"../chunks/DsnmJJEf.js";import{p as la,a as na,k as va,$ as ma,c as v,d as t,r as m,f as E,n as f,t as L}from"../chunks/BtOVeLcI.js";import{s as B}from"../chunks/BNpXeuQ_.js";import{a as e,f as p,c as R,t as g}from"../chunks/BoLtD6vo.js";import{i as w}from"../chunks/DAQN5y4A.js";import{e as ca,a as ua}from"../chunks/22C0ZkpD.js";import{c as k}from"../chunks/ChEZL1UP.js";import{h as fa}from"../chunks/CTTkX-27.js";import{p as pa}from"../chunks/Cf84tWpN.js";import{C as D}from"../chunks/Mn4D08zE.js";import{A as G,a as F}from"../chunks/CiRf7cog.js";import{B as I}from"../chunks/mlApEF2J.js";import{L as N}from"../chunks/wegQDfR0.js";import{I as C}from"../chunks/CJvX1bCR.js";var ha=p("<!> <!>",1),_a=p('<a class="block"><!></a>'),xa=p('<div class="space-y-2"><p class="text-muted-foreground text-center text-xs">The first user to sign in becomes the platform admin.</p> <!></div>'),ga=p('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),ya=p(`<form method="POST" action="/auth/email/start?redirectTo=%2Fadmin" class="space-y-4"><p class="text-muted-foreground text-center text-xs">Sign in via email link. Set <code>BOOTSTRAP_INSTANCE_ADMIN_EMAIL</code> in your env to control
2
2
  which address becomes admin.</p> <div class="space-y-2"><!> <!></div> <!></form>`),ba=p('<div class="text-muted-foreground flex items-center gap-2 text-xs uppercase"><div class="bg-border h-px flex-1"></div> <span>or</span> <div class="bg-border h-px flex-1"></div></div>'),Pa=p('<form method="POST" class="space-y-4"><div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <!></form>'),$a=p('<p class="text-sm">Expected email: <code class="bg-muted rounded px-1 py-0.5"> </code></p>'),wa=p(`<code>BOOTSTRAP_INSTANCE_ADMIN_EMAIL</code> is unset. Set it in <code>.env</code>, restart, and reload this page — otherwise the first
3
3
  proxy-authenticated visitor would gain admin (and may not be you).`,1),Aa=p("<!> <!>",1),Ea=p(`<div class="space-y-3"><p class="text-muted-foreground text-sm">This deployment authenticates via your upstream proxy (forward-auth). To claim admin, sign
4
4
  in through the proxy with the email below — the first proxy-authenticated visit will be
@@ -1,4 +1,4 @@
1
- import"../chunks/DsnmJJEf.js";import{p as ze,s as Z,b as De,j as Ne,g as t,h as c,a as Te,e as Oe,f as k,d as i,t as ee,u as Y,c as K,$ as Le,n as I,r as $,i as $e}from"../chunks/BtOVeLcI.js";import{d as Re,s as q,a as ne}from"../chunks/BNpXeuQ_.js";import{a,f,t as O,c as te}from"../chunks/BoLtD6vo.js";import{i as L}from"../chunks/DAQN5y4A.js";import{e as ye}from"../chunks/22C0ZkpD.js";import{c as S}from"../chunks/ChEZL1UP.js";import{h as je}from"../chunks/CTTkX-27.js";import{p as Be}from"../chunks/Cd8uUagh.js";import{i as Fe}from"../chunks/BNlGWnEa.js";import{S as Ge}from"../chunks/Bixcgta2.js";import{B as ae}from"../chunks/mlApEF2J.js";import{t as de}from"../chunks/DTLLn7uD.js";import{C as ue,a as ve}from"../chunks/CY6l1SkO.js";import{C as ce}from"../chunks/C0Xb3vka.js";import{C as fe,a as me}from"../chunks/BawNisij.js";import{F as Ve}from"../chunks/CeolKPEY.js";import{E as pe}from"../chunks/Ct6ntSZV.js";import{S as re}from"../chunks/BRHPfB44.js";import{B as oe}from"../chunks/5fK69wOi.js";import{P as we}from"../chunks/BnS8rxFx.js";import{I as Q}from"../chunks/CJvX1bCR.js";import{T as Ye}from"../chunks/BuBobyR7.js";import{r as He}from"../chunks/Cbu9Tg11.js";import{S as Je}from"../chunks/CuRUkrho.js";var We=f('<span class="flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-400"><!> org default</span>'),qe=f('<button class="text-muted-foreground hover:text-destructive shrink-0 text-xs underline-offset-2 hover:underline">Clear</button>'),Qe=f('<button class="text-muted-foreground hover:text-foreground shrink-0 text-xs underline-offset-2 hover:underline">Undo</button>'),Xe=f('<button type="button" class="text-muted-foreground hover:text-foreground text-xs underline-offset-2 hover:underline">Make org default</button>'),Ze=f('<div class="bg-muted/30 space-y-3 rounded-lg border p-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><!> <!></div> <!></div> <div class="grid gap-2 sm:grid-cols-2"><div class="space-y-1"><p class="text-muted-foreground text-xs">Server URL</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">API Key (optional)</p> <div class="flex gap-1.5"><!> <!></div></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Timeout (ms)</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Retries</p> <!></div></div> <!></div>'),et=f("<!> Add server",1),tt=f("<!> <!>",1),at=f("<!> <!>",1),rt=f(`<p class="text-warning text-xs">No global default is configured. Solves will fail until either a global default is set or
1
+ import"../chunks/DsnmJJEf.js";import{p as ze,s as Z,b as De,j as Ne,g as t,h as c,a as Te,e as Oe,f as k,d as i,t as ee,u as Y,c as K,$ as Le,n as I,r as $,i as $e}from"../chunks/BtOVeLcI.js";import{d as Re,s as q,a as ne}from"../chunks/BNpXeuQ_.js";import{a,f,t as O,c as te}from"../chunks/BoLtD6vo.js";import{i as L}from"../chunks/DAQN5y4A.js";import{e as ye}from"../chunks/22C0ZkpD.js";import{c as S}from"../chunks/ChEZL1UP.js";import{h as je}from"../chunks/CTTkX-27.js";import{p as Be}from"../chunks/Cf84tWpN.js";import{i as Fe}from"../chunks/DYVN_iHa.js";import{S as Ge}from"../chunks/Bixcgta2.js";import{B as ae}from"../chunks/mlApEF2J.js";import{t as de}from"../chunks/DTLLn7uD.js";import{C as ue,a as ve}from"../chunks/CY6l1SkO.js";import{C as ce}from"../chunks/C0Xb3vka.js";import{C as fe,a as me}from"../chunks/BawNisij.js";import{F as Ve}from"../chunks/CeolKPEY.js";import{E as pe}from"../chunks/Ct6ntSZV.js";import{S as re}from"../chunks/BRHPfB44.js";import{B as oe}from"../chunks/5fK69wOi.js";import{P as we}from"../chunks/BnS8rxFx.js";import{I as Q}from"../chunks/CJvX1bCR.js";import{T as Ye}from"../chunks/BuBobyR7.js";import{r as He}from"../chunks/Cbu9Tg11.js";import{S as Je}from"../chunks/CuRUkrho.js";var We=f('<span class="flex items-center gap-1 rounded-full bg-green-100 px-2 py-0.5 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-400"><!> org default</span>'),qe=f('<button class="text-muted-foreground hover:text-destructive shrink-0 text-xs underline-offset-2 hover:underline">Clear</button>'),Qe=f('<button class="text-muted-foreground hover:text-foreground shrink-0 text-xs underline-offset-2 hover:underline">Undo</button>'),Xe=f('<button type="button" class="text-muted-foreground hover:text-foreground text-xs underline-offset-2 hover:underline">Make org default</button>'),Ze=f('<div class="bg-muted/30 space-y-3 rounded-lg border p-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><!> <!></div> <!></div> <div class="grid gap-2 sm:grid-cols-2"><div class="space-y-1"><p class="text-muted-foreground text-xs">Server URL</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">API Key (optional)</p> <div class="flex gap-1.5"><!> <!></div></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Timeout (ms)</p> <!></div> <div class="space-y-1"><p class="text-muted-foreground text-xs">Retries</p> <!></div></div> <!></div>'),et=f("<!> Add server",1),tt=f("<!> <!>",1),at=f("<!> <!>",1),rt=f(`<p class="text-warning text-xs">No global default is configured. Solves will fail until either a global default is set or
2
2
  you pick an org default.</p>`),ot=f("<!> <!>",1),st=f("<!> <!>",1),lt=f("<!> <!>",1),it=f('<li class="flex items-center gap-3 px-3 py-2 text-sm"><!> <span class="font-medium"> </span> <code class="text-muted-foreground truncate font-mono text-xs"> </code> <div class="ml-auto flex items-center gap-1.5"><!> <!> <!></div></li>'),nt=f('<ul class="divide-border divide-y rounded-md border"></ul>'),dt=f("<!> <!>",1),ut=f(' <code class="text-xs">ALLOW_ORG_COMPUTE_OVERRIDE</code> if you need to bring your own compute.',1),vt=f("<!> <!>",1),ct=f("<!> Add server",1),ft=f("<!> <!>",1),mt=f('<div class="space-y-6"><!> <!> <!> <!></div>');function Rt(Pe,M){ze(M,!0);const Ce=(l,e=$e,p=$e)=>{var z=Ze(),g=K(z),x=K(g),b=K(x);Q(b,{placeholder:"label",get value(){return e().label},oninput:s=>{const u=s.target;e().label=u.value.toLowerCase().replace(/[^a-z0-9_-]/g,""),u.value=e().label,c(U,!0)},class:"h-7 w-32 font-mono text-xs"});var _=i(b,2);{var y=s=>{var u=We(),W=K(u);Je(W,{class:"h-3 w-3"}),I(),$(u),a(s,u)};L(_,s=>{e().id===t(N)&&s(y)})}$(x);var m=i(x,2);ae(m,{variant:"ghost",size:"sm",onclick:()=>Se(p()),class:"text-destructive hover:text-destructive h-7 w-7 p-0",children:(s,u)=>{Ye(s,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}}),$(g);var T=i(g,2),d=K(T),h=i(K(d),2);Q(h,{placeholder:"http://localhost:5000",oninput:()=>c(U,!0),class:"font-mono text-xs",get value(){return e().serverUrl},set value(s){e().serverUrl=s}}),$(d);var w=i(d,2),v=i(K(w),2),r=K(v);{let s=Y(()=>e().hasApiKey&&e().apiKey!==F&&!e().apiKey?"Key set - enter new value to replace":e().apiKey===F?"Key will be cleared on save":""),u=Y(()=>e().apiKey===F?"":e().apiKey),W=Y(()=>e().apiKey===F);Q(r,{type:"password",get placeholder(){return t(s)},get value(){return t(u)},get disabled(){return t(W)},oninput:le=>{e().apiKey=le.target.value,c(U,!0)},class:"font-mono text-xs"})}var o=i(r,2);{var P=s=>{var u=qe();ne("click",u,()=>{e().apiKey=F,c(U,!0)}),a(s,u)},n=s=>{var u=Qe();ne("click",u,()=>e().apiKey=""),a(s,u)};L(o,s=>{e().hasApiKey&&e().apiKey!==F&&!e().apiKey?s(P):e().apiKey===F&&s(n,1)})}$(v),$(w);var C=i(w,2),B=i(K(C),2);Q(B,{type:"number",placeholder:"30000",oninput:()=>c(U,!0),onblur:()=>{e().timeoutMs=Math.min(3e5,Math.max(1e3,Number(e().timeoutMs)||3e4))},class:"text-xs",get value(){return e().timeoutMs},set value(s){e().timeoutMs=s}}),$(C);var E=i(C,2),D=i(K(E),2);Q(D,{type:"number",placeholder:"0",oninput:()=>c(U,!0),onblur:()=>{e().retryCount=Math.min(5,Math.max(0,Number(e().retryCount)||0))},class:"text-xs",get value(){return e().retryCount},set value(s){e().retryCount=s}}),$(E),$(T);var j=i(T,2);{var J=s=>{var u=Xe();ne("click",u,()=>{c(N,e().id,!0),c(U,!0)}),a(s,u)};L(j,s=>{e().id!==t(N)&&s(J)})}$(z),a(l,z)},H=Y(()=>Be.data.branding.name),F="__clear__";let R=Z(De([])),N=Z(""),X=Z(!1),U=Z(!1);Ne(()=>{t(U)||(c(R,M.data.ownServers.map(l=>({id:l.id,label:l.label,serverUrl:l.serverUrl,timeoutMs:l.timeoutMs??3e4,retryCount:l.retryCount??0,apiKey:"",hasApiKey:l.hasApiKey})),!0),c(N,M.data.orgDefaultServerId??"",!0))});const ke=Y(()=>M.data.catalog.find(l=>l.id===M.data.globalDefaultServerId)?.label??"(none configured)"),Ke=Y(()=>[{id:"",label:`Use global default — ${t(ke)}`},...M.data.catalog.map(l=>({id:l.id,label:`${l.label} ${l.source==="org"?"(your org)":l.isGlobalDefault?"(global default)":"(platform)"}`}))]);function ge(){M.data.overrideEnabled&&(c(R,[...t(R),{id:He(),label:"org-server",serverUrl:"http://localhost:5000",timeoutMs:3e4,retryCount:0,apiKey:"",hasApiKey:!1}],!0),c(U,!0))}function Se(l){const e=t(R)[l];c(R,t(R).filter((p,z)=>z!==l),!0),t(N)===e.id&&c(N,""),c(U,!0)}async function Me(){c(X,!0);try{const l={defaultServerId:t(N)===""?null:t(N),servers:t(R).map(({apiKey:p,hasApiKey:z,retryCount:g,timeoutMs:x,...b})=>({...b,timeoutMs:Math.min(3e5,Math.max(1e3,Number(x)||3e4)),...p===F?{apiKey:null}:p?{apiKey:p}:{},...Number(g)?{retryCount:Math.min(5,Math.max(0,Number(g)))}:{}}))},e=await fetch("/api/org/compute",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(e.ok)de.success("Compute settings saved"),await Fe(),c(U,!1);else{const p=await e.json().catch(()=>({error:"Unknown error"}));de.error(p.message||p.error||`Failed to save (${e.status})`)}}catch{de.error("Failed to save compute settings")}finally{c(X,!1)}}var se=mt();je("t08wys",l=>{Oe(()=>{Le.title="Team · Compute"})});var _e=K(se);Ge(_e,{eyebrow:"Team",title:"Compute",get description(){return`Compute servers available to this organization. Platform servers are managed by ${t(H)??""} staff and shown read-only; you can add your own org-private servers and pick which server is your org's default.`},actions:e=>{var p=tt(),z=k(p);{var g=b=>{ae(b,{variant:"outline",size:"sm",onclick:ge,children:(_,y)=>{var m=et(),T=k(m);we(T,{class:"mr-1.5 h-3.5 w-3.5"}),I(),a(_,m)},$$slots:{default:!0}})};L(z,b=>{M.data.overrideEnabled&&b(g)})}var x=i(z,2);{let b=Y(()=>t(X)||!t(U));ae(x,{size:"sm",onclick:Me,get disabled(){return t(b)},children:(_,y)=>{I();var m=O();ee(()=>q(m,t(X)?"Saving…":"Save")),a(_,m)},$$slots:{default:!0}})}a(e,p)},$$slots:{actions:!0}});var he=i(_e,2);S(he,()=>me,(l,e)=>{e(l,{children:(p,z)=>{var g=st(),x=k(g);S(x,()=>ue,(_,y)=>{y(_,{children:(m,T)=>{var d=at(),h=k(d);S(h,()=>ve,(v,r)=>{r(v,{class:"text-sm font-medium",children:(o,P)=>{I();var n=O("Org default");a(o,n)},$$slots:{default:!0}})});var w=i(h,2);S(w,()=>ce,(v,r)=>{r(v,{children:(o,P)=>{I();var n=O(`The server new definitions in this org use unless they're pinned to a specific one. Picks
3
3
  from any server visible to your org. Leave on "Use global default" to inherit the
4
4
  platform-wide pick.`);a(o,n)},$$slots:{default:!0}})}),a(m,d)},$$slots:{default:!0}})});var b=i(x,2);S(b,()=>fe,(_,y)=>{y(_,{class:"space-y-2",children:(m,T)=>{var d=ot(),h=k(d);Ve(h,{class:"max-w-md",get items(){return t(Ke)},get value(){return t(N)},onChange:r=>{c(N,r,!0),c(U,!0)}});var w=i(h,2);{var v=r=>{var o=rt();a(r,o)};L(w,r=>{t(N)===""&&M.data.globalDefaultServerId===null&&r(v)})}a(m,d)},$$slots:{default:!0}})}),a(p,g)},$$slots:{default:!0}})});var xe=i(he,2);S(xe,()=>me,(l,e)=>{e(l,{children:(p,z)=>{var g=dt(),x=k(g);S(x,()=>ue,(_,y)=>{y(_,{children:(m,T)=>{var d=lt(),h=k(d);S(h,()=>ve,(v,r)=>{r(v,{class:"text-sm font-medium",children:(o,P)=>{I();var n=O("Available servers");a(o,n)},$$slots:{default:!0}})});var w=i(h,2);S(w,()=>ce,(v,r)=>{r(v,{children:(o,P)=>{I();var n=O();ee(()=>q(n,`Every server visible to this organization. Platform rows are managed by ${t(H)??""} staff.`)),a(o,n)},$$slots:{default:!0}})}),a(m,d)},$$slots:{default:!0}})});var b=i(x,2);S(b,()=>fe,(_,y)=>{y(_,{children:(m,T)=>{var d=te(),h=k(d);{var w=r=>{pe(r,{size:"sm",get icon(){return re},title:"No servers visible",get description(){return`No platform server is shared with this org and no global default is configured. Ask a ${t(H)??""} admin to share a server or set a global default.`}})},v=r=>{var o=nt();ye(o,21,()=>M.data.catalog,P=>P.id,(P,n)=>{var C=it(),B=K(C);re(B,{class:"text-muted-foreground h-3.5 w-3.5 shrink-0"});var E=i(B,2),D=K(E,!0);$(E);var j=i(E,2),J=K(j,!0);$(j);var s=i(j,2),u=K(s);{var W=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("your org");a(G,V)},$$slots:{default:!0}})},le=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("platform");a(G,V)},$$slots:{default:!0}})};L(u,A=>{t(n).source==="org"?A(W):A(le,-1)})}var be=i(u,2);{var Ie=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("global default");a(G,V)},$$slots:{default:!0}})};L(be,A=>{t(n).isGlobalDefault&&A(Ie)})}var Ue=i(be,2);{var Ee=A=>{oe(A,{variant:"outline",class:"text-[10px]",children:(G,ie)=>{I();var V=O("org default");a(G,V)},$$slots:{default:!0}})};L(Ue,A=>{t(n).id===M.data.orgDefaultServerId&&A(Ee)})}$(s),$(C),ee(()=>{q(D,t(n).label),q(J,t(n).serverUrl)}),a(P,C)}),$(o),a(r,o)};L(h,r=>{M.data.catalog.length===0?r(w):r(v,-1)})}a(m,d)},$$slots:{default:!0}})}),a(p,g)},$$slots:{default:!0}})});var Ae=i(xe,2);S(Ae,()=>me,(l,e)=>{e(l,{children:(p,z)=>{var g=ft(),x=k(g);S(x,()=>ue,(_,y)=>{y(_,{children:(m,T)=>{var d=vt(),h=k(d);S(h,()=>ve,(v,r)=>{r(v,{class:"text-sm font-medium",children:(o,P)=>{I();var n=O("Your org's servers");a(o,n)},$$slots:{default:!0}})});var w=i(h,2);S(w,()=>ce,(v,r)=>{r(v,{children:(o,P)=>{var n=te(),C=k(n);{var B=D=>{var j=O("Compute servers managed by your org. Visible only to members of this organization.");a(D,j)},E=D=>{var j=ut(),J=k(j);I(2),ee(()=>q(J,`Org-private servers are disabled on this ${t(H)??""} instance. Ask the platform admin to flip `)),a(D,j)};L(C,D=>{M.data.overrideEnabled?D(B):D(E,-1)})}a(o,n)},$$slots:{default:!0}})}),a(m,d)},$$slots:{default:!0}})});var b=i(x,2);S(b,()=>fe,(_,y)=>{y(_,{class:"space-y-3",children:(m,T)=>{var d=te(),h=k(d);{var w=o=>{pe(o,{size:"sm",get icon(){return re},title:"Org-private servers disabled",get description(){return`This ${t(H)??""} instance does not allow per-org compute servers.`}})},v=o=>{pe(o,{size:"sm",get icon(){return re},title:"No org-private servers yet",actions:n=>{ae(n,{variant:"outline",size:"sm",onclick:ge,children:(C,B)=>{var E=ct(),D=k(E);we(D,{class:"mr-1.5 h-3.5 w-3.5"}),I(),a(C,E)},$$slots:{default:!0}})},$$slots:{actions:!0}})},r=o=>{var P=te(),n=k(P);ye(n,19,()=>t(R),C=>C.id,(C,B,E)=>{Ce(C,()=>t(B),()=>t(E))}),a(o,P)};L(h,o=>{!M.data.overrideEnabled&&t(R).length===0?o(w):t(R).length===0?o(v,1):o(r,-1)})}a(m,d)},$$slots:{default:!0}})}),a(p,g)},$$slots:{default:!0}})}),$(se),a(Pe,se),Te()}Re(["click"]);export{Rt as component};
@@ -1,4 +1,4 @@
1
- import"../chunks/DsnmJJEf.js";import{p as ut,s as Z,b as ft,a as _t,e as pt,g as e,f as S,u as y,c as i,$ as gt,d as l,r as a,n as X,h as x,t as h}from"../chunks/BtOVeLcI.js";import{d as xt,s as b,a as Ae}from"../chunks/BNpXeuQ_.js";import{a as t,f as d,c as me,t as ee}from"../chunks/BoLtD6vo.js";import{i as N}from"../chunks/DAQN5y4A.js";import{e as ue,i as ht,c as Ee,g as bt,a as $t,r as ze,h as Be,b as wt}from"../chunks/22C0ZkpD.js";import{c as T}from"../chunks/ChEZL1UP.js";import{h as yt}from"../chunks/CTTkX-27.js";import{i as Oe}from"../chunks/BNlGWnEa.js";import{O as Fe,M as It,C as kt,A as Ye}from"../chunks/DE1IAae-.js";import{S as Pt}from"../chunks/Bixcgta2.js";import{B as fe}from"../chunks/mlApEF2J.js";import{M as St}from"../chunks/B36B-q5q.js";import{C as Ge,a as Je}from"../chunks/CY6l1SkO.js";import{C as He}from"../chunks/C0Xb3vka.js";import{C as Re,a as Ce}from"../chunks/BawNisij.js";import{E as At}from"../chunks/Ct6ntSZV.js";import{U as Et}from"../chunks/B3OAhCNZ.js";import{t as z}from"../chunks/DTLLn7uD.js";import{I as Ot}from"../chunks/CJvX1bCR.js";import{X as Rt}from"../chunks/Ca8xAcDY.js";import{T as Ct}from"../chunks/BuBobyR7.js";var Mt=d("<!> Invite member",1),Lt=d("<option> </option>"),Nt=d('<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>'),Tt=d('<label><input type="checkbox"/> </label>'),jt=d(`<div><p class="text-sm font-medium">Invite member</p> <p class="text-muted-foreground text-xs">The invitee sets their own credentials when they open the link. No password leaves
1
+ import"../chunks/DsnmJJEf.js";import{p as ut,s as Z,b as ft,a as _t,e as pt,g as e,f as S,u as y,c as i,$ as gt,d as l,r as a,n as X,h as x,t as h}from"../chunks/BtOVeLcI.js";import{d as xt,s as b,a as Ae}from"../chunks/BNpXeuQ_.js";import{a as t,f as d,c as me,t as ee}from"../chunks/BoLtD6vo.js";import{i as N}from"../chunks/DAQN5y4A.js";import{e as ue,i as ht,c as Ee,g as bt,a as $t,r as ze,h as Be,b as wt}from"../chunks/22C0ZkpD.js";import{c as T}from"../chunks/ChEZL1UP.js";import{h as yt}from"../chunks/CTTkX-27.js";import{i as Oe}from"../chunks/DYVN_iHa.js";import{O as Fe,M as It,C as kt,A as Ye}from"../chunks/CpLycSEC.js";import{S as Pt}from"../chunks/Bixcgta2.js";import{B as fe}from"../chunks/mlApEF2J.js";import{M as St}from"../chunks/B36B-q5q.js";import{C as Ge,a as Je}from"../chunks/CY6l1SkO.js";import{C as He}from"../chunks/C0Xb3vka.js";import{C as Re,a as Ce}from"../chunks/BawNisij.js";import{E as At}from"../chunks/Ct6ntSZV.js";import{U as Et}from"../chunks/B3OAhCNZ.js";import{t as z}from"../chunks/DTLLn7uD.js";import{I as Ot}from"../chunks/CJvX1bCR.js";import{X as Rt}from"../chunks/Ca8xAcDY.js";import{T as Ct}from"../chunks/BuBobyR7.js";var Mt=d("<!> Invite member",1),Lt=d("<option> </option>"),Nt=d('<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>'),Tt=d('<label><input type="checkbox"/> </label>'),jt=d(`<div><p class="text-sm font-medium">Invite member</p> <p class="text-muted-foreground text-xs">The invitee sets their own credentials when they open the link. No password leaves
2
2
  your machine.</p></div> <div class="grid gap-3 sm:grid-cols-2"><!> <select class="border-input bg-background h-9 rounded-md border px-3 text-sm"></select></div> <div><p class="mb-2 text-xs font-medium">Permissions</p> <!> <div class="flex flex-wrap gap-3"></div></div> <div class="flex gap-2"><!> <!></div>`,1),Dt=d("<!> Copy",1),Ut=d('<div class="border-success/30 bg-success/5 flex items-start gap-3 rounded-lg border p-4"><div class="min-w-0 flex-1"><p class="text-sm font-medium">Invite ready — copy the link and share it</p> <p class="text-muted-foreground mt-1 truncate font-mono text-xs"> </p></div> <!> <!></div>'),zt=d("<!> <!>",1),Bt=d("<option> </option>"),Ft=d("<select></select>"),Yt=d("<span> </span>"),Gt=d('<label class="flex cursor-pointer items-center gap-1.5 text-xs"><input type="checkbox"/> </label>'),Jt=d('<span class="bg-muted text-muted-foreground rounded-full px-2 py-0.5 font-mono text-[10px]"> </span>'),Ht=d('<div class="mt-2 flex flex-wrap gap-3"></div>'),Wt=d('<p class="text-muted-foreground mt-2 text-xs"> </p>'),Xt=d('<div class="px-4 py-3"><div class="flex items-start justify-between gap-4"><div class="min-w-0 flex-1"><div class="flex items-center gap-2"><p class="truncate text-sm font-medium"> </p> <!></div> <p class="text-muted-foreground text-xs"><!></p></div></div> <!></div>'),qt=d('<div class="divide-y rounded-lg border"></div>'),Kt=d("<!> <!>",1),Qt=d("<!> <!>",1),Vt=d('<div class="flex items-center justify-between gap-4 px-4 py-3"><div class="min-w-0 flex-1"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground text-xs"> </p></div> <!></div>'),Zt=d('<div class="divide-y rounded-lg border"></div>'),er=d("<!> <!>",1),tr=d("<!> <!> <!> <!>",1),rr=d('<div class="space-y-6"><!> <!></div>');function kr(We,_){ut(_,!0);const Me=y(()=>_.data.actorRole==="owner"),Le=y(()=>_.data.actorRole==="owner"||_.data.actorRole==="admin"),Xe=y(()=>_.data.members.filter(o=>o.role==="owner").length);let xe=Z(null);async function Ne(o,v){if(_.data.orgId){x(xe,o,!0);try{const O=await fetch(`/api/orgs/${_.data.orgId}/members/${o}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)});if(O.ok)z.success("Updated"),await Oe();else{const G=await O.json().catch(()=>({}));z.error(G.message||G.error||"Update failed")}}catch{z.error("Update failed")}finally{x(xe,null)}}}function qe(o,v){o.role!==v&&Ne(o.userId,{role:v})}function Ke(o,v,O){const G=O?Array.from(new Set([...o.permissions,v])):o.permissions.filter(ie=>ie!==v);Ne(o.userId,{permissions:G})}const Te=["owner","admin","member"],$e={manage_org_members:"Manage members",manage_org_compute:"Manage compute",manage_definitions:"Manage definitions",manage_projects:"Manage projects"},je={owner:"border-amber-500/40 text-amber-600 dark:text-amber-400",admin:"border-blue-500/40 text-blue-600 dark:text-blue-400",member:"border-border text-muted-foreground"};let oe=Z(!1),se=Z(""),q=Z("member"),ne=Z(ft([])),he=Z(!1),_e=Z(null),we=Z(null);const Qe=y(()=>e(q)==="member"?Ye.filter(o=>!Fe.includes(o)):[...Ye]);function Ve(o,v){x(ne,v?[...e(ne),o]:e(ne).filter(O=>O!==o),!0)}async function Ze(){x(he,!0);try{const o=await fetch("/api/invites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e(se),orgRole:e(q),permissions:e(ne)})});if(o.ok){const{acceptUrl:v}=await o.json();x(_e,v,!0),z.success(`Invite created for ${e(se)}`),x(se,""),x(q,"member"),x(ne,[],!0),x(oe,!1),await Oe()}else{const v=await o.json().catch(()=>({error:"Unknown error"}));z.error(v.message||v.error||"Failed to create invite")}}catch{z.error("Failed to create invite")}finally{x(he,!1)}}async function et(o,v){if(confirm(`Revoke invite for "${v}"?`)){x(we,o,!0);try{(await fetch(`/api/invites/${o}`,{method:"DELETE"})).ok?(z.success("Invite revoked"),await Oe()):z.error("Failed to revoke invite")}catch{z.error("Failed to revoke invite")}finally{x(we,null)}}}var ye=rr();yt("1mgom9i",o=>{pt(()=>{gt.title="Team · Members"})});var De=i(ye);{const o=O=>{var G=me(),ie=S(G);{var Ie=le=>{{let ke=y(()=>e(oe)?"outline":"default");fe(le,{onclick:()=>x(oe,!e(oe)),get variant(){return e(ke)},children:(Pe,I)=>{var k=Mt(),j=S(k);St(j,{class:"mr-2 h-4 w-4"}),X(),t(Pe,k)},$$slots:{default:!0}})}};N(ie,le=>{_.data.orgId&&le(Ie)})}t(O,G)};let v=y(()=>_.data.orgId?`${_.data.members.length} member${_.data.members.length===1?"":"s"} in this organization.`:"No active organization. Switch orgs from the user menu.");Pt(De,{eyebrow:"Team",title:"Members & roles",get description(){return e(v)},actions:o,$$slots:{actions:!0}})}var tt=l(De,2);{var rt=o=>{var v=tr(),O=S(v);{var G=I=>{var k=me(),j=S(k);T(j,()=>Ce,(te,K)=>{K(te,{children:(J,pe)=>{var A=me(),B=S(A);T(B,()=>Re,(F,H)=>{H(F,{class:"space-y-3 pt-6",children:(D,W)=>{var Q=jt(),$=l(S(Q),2),m=i($);Ot(m,{type:"email",placeholder:"Email",get value(){return e(se)},set value(n){x(se,n,!0)}});var c=l(m,2);ue(c,20,()=>Te,n=>n,(n,p)=>{var u=Lt(),g=i(u,!0);a(u);var M={};h(()=>{b(g,p),M!==(M=p)&&(u.value=(u.__value=p)??"")}),t(n,u)}),a(c),a($);var w=l($,2),r=l(i(w),2);{var R=n=>{var p=Nt(),u=i(p);X(2),a(p),h(()=>b(u,`${e(q)==="owner"?"Owners":"Admins"} automatically receive all organization
3
3
  permissions. Pick `)),t(n,p)};N(r,n=>{e(q)!=="member"&&n(R)})}var U=l(r,2);ue(U,20,()=>e(Qe),n=>n,(n,p)=>{const u=y(()=>e(q)!=="member");var g=Tt(),M=i(g);ze(M);var ge=l(M);a(g),h(de=>{Ee(g,1,`flex items-center gap-1.5 text-xs ${e(u)?"cursor-not-allowed opacity-60":"cursor-pointer"}`),Be(M,de),M.disabled=e(u),b(ge,` ${$e[p]??""}`)},[()=>e(u)||e(ne).includes(p)]),Ae("change",M,de=>Ve(p,de.target.checked)),t(n,g)}),a(U),a(w);var E=l(w,2),C=i(E);{let n=y(()=>e(he)||!e(se));fe(C,{onclick:Ze,get disabled(){return e(n)},children:(p,u)=>{X();var g=ee();h(()=>b(g,e(he)?"Creating…":"Create invite")),t(p,g)},$$slots:{default:!0}})}var Y=l(C,2);fe(Y,{variant:"outline",onclick:()=>x(oe,!1),children:(n,p)=>{X();var u=ee("Cancel");t(n,u)},$$slots:{default:!0}}),a(E),wt(c,()=>e(q),n=>x(q,n)),t(D,Q)},$$slots:{default:!0}})}),t(J,A)},$$slots:{default:!0}})}),t(I,k)};N(O,I=>{e(oe)&&I(G)})}var ie=l(O,2);{var Ie=I=>{var k=Ut(),j=i(k),te=l(i(j),2),K=i(te,!0);a(te),a(j);var J=l(j,2);fe(J,{size:"sm",variant:"outline",onclick:async()=>{try{await navigator.clipboard.writeText(e(_e)),z.success("Invite link copied")}catch{z.error("Could not copy to clipboard")}},children:(A,B)=>{var F=Dt(),H=S(F);kt(H,{class:"mr-1.5 h-3.5 w-3.5"}),X(),t(A,F)},$$slots:{default:!0}});var pe=l(J,2);fe(pe,{size:"sm",variant:"ghost",onclick:()=>x(_e,null),children:(A,B)=>{Rt(A,{class:"h-4 w-4"})},$$slots:{default:!0}}),a(k),h(()=>b(K,e(_e))),t(I,k)};N(ie,I=>{e(_e)&&I(Ie)})}var le=l(ie,2);T(le,()=>Ce,(I,k)=>{k(I,{children:(j,te)=>{var K=Kt(),J=S(K);T(J,()=>Ge,(A,B)=>{B(A,{children:(F,H)=>{var D=zt(),W=S(D);T(W,()=>Je,($,m)=>{m($,{class:"text-sm font-medium",children:(c,w)=>{X();var r=ee("Roster");t(c,r)},$$slots:{default:!0}})});var Q=l(W,2);T(Q,()=>He,($,m)=>{m($,{children:(c,w)=>{X();var r=ee();h(()=>b(r,`Roles and per-member permissions.${e(Me)?" You can change roles and permissions.":e(Le)?" You can grant member permissions; only the owner can change roles.":""}`)),t(c,r)},$$slots:{default:!0}})}),t(F,D)},$$slots:{default:!0}})});var pe=l(J,2);T(pe,()=>Re,(A,B)=>{B(A,{children:(F,H)=>{var D=me(),W=S(D);{var Q=m=>{At(m,{get icon(){return Et},title:"No members yet",description:"Invite teammates to get started."})},$=m=>{var c=qt();ue(c,21,()=>_.data.members,w=>w.userId,(w,r)=>{const R=y(()=>e(r).userId===_.data.actorUserId),U=y(()=>e(r).role==="owner"&&e(Xe)===1),E=y(()=>e(Me)&&!e(R)&&!e(U)),C=y(()=>e(Le)&&e(r).role==="member");var Y=Xt(),n=i(Y),p=i(n),u=i(p),g=i(u),M=i(g,!0);a(g);var ge=l(g,2);{var de=f=>{var s=Ft();ue(s,20,()=>Te,L=>L,(L,ce)=>{var V=Bt(),Se=i(V,!0);a(V);var be={};h(()=>{b(Se,ce),be!==(be=ce)&&(V.value=(V.__value=ce)??"")}),t(L,V)}),a(s);var P;ht(s),h(()=>{s.disabled=e(xe)===e(r).userId,Ee(s,1,`border-input bg-background h-6 rounded-md border px-1.5 font-mono text-[10px] tracking-wide uppercase ${je[e(r).role]}`),P!==(P=e(r).role)&&(s.value=(s.__value=e(r).role)??"",bt(s,e(r).role))}),Ae("change",s,L=>qe(e(r),L.target.value)),t(f,s)},at=f=>{var s=Yt(),P=i(s,!0);a(s),h(()=>{Ee(s,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${je[e(r).role]}`),$t(s,"title",e(U)?"Sole owner — promote another member to owner before changing this role.":e(R)?"You cannot change your own role.":void 0),b(P,e(r).role)}),t(f,s)};N(ge,f=>{e(E)?f(de):f(at,-1)})}a(u);var Ue=l(u,2),ot=i(Ue);{var st=f=>{var s=ee();h(P=>b(s,`Joined ${P??""}`),[()=>new Date(e(r).joinedAt).toLocaleDateString()]),t(f,s)},nt=f=>{var s=ee();h(P=>b(s,`Invited ${P??""} · never signed in`),[()=>new Date(e(r).joinedAt).toLocaleDateString()]),t(f,s)};N(ot,f=>{e(r).lastLoginAt?f(st):f(nt,-1)})}a(Ue),a(p),a(n);var it=l(n,2);{var lt=f=>{var s=Ht();ue(s,20,()=>It,P=>P,(P,L)=>{const ce=y(()=>e(r).permissions.includes(L));var V=me(),Se=S(V);{var be=ve=>{var re=Gt(),ae=i(re);ze(ae);var vt=l(ae);a(re),h(()=>{Be(ae,e(ce)),ae.disabled=e(xe)===e(r).userId,b(vt,` ${$e[L]??L??""}`)}),Ae("change",ae,mt=>Ke(e(r),L,mt.target.checked)),t(ve,re)},ct=ve=>{var re=Jt(),ae=i(re,!0);a(re),h(()=>b(ae,$e[L]??L)),t(ve,re)};N(Se,ve=>{e(C)?ve(be):e(ce)&&ve(ct,1)})}t(P,V)}),a(s),t(f,s)},dt=f=>{var s=Wt(),P=i(s);a(s),h(()=>b(P,`${e(r).role==="owner"?"Owners":"Admins"} hold all organization permissions
4
4
  by default.`)),t(f,s)};N(it,f=>{e(r).role==="member"?f(lt):Fe.length>0&&f(dt,1)})}a(Y),h(()=>b(M,e(r).email??e(r).displayName??e(r).userId)),t(w,Y)}),a(c),t(m,c)};N(W,m=>{_.data.members.length===0?m(Q):m($,-1)})}t(F,D)},$$slots:{default:!0}})}),t(j,K)},$$slots:{default:!0}})});var ke=l(le,2);{var Pe=I=>{var k=me(),j=S(k);T(j,()=>Ce,(te,K)=>{K(te,{children:(J,pe)=>{var A=er(),B=S(A);T(B,()=>Ge,(H,D)=>{D(H,{children:(W,Q)=>{var $=Qt(),m=S($);T(m,()=>Je,(w,r)=>{r(w,{class:"text-sm font-medium",children:(R,U)=>{X();var E=ee("Invites");t(R,E)},$$slots:{default:!0}})});var c=l(m,2);T(c,()=>He,(w,r)=>{r(w,{children:(R,U)=>{X();var E=ee();h((C,Y)=>b(E,`${C??""} pending, ${Y??""} accepted`),[()=>_.data.invites.filter(C=>!C.acceptedAt).length,()=>_.data.invites.filter(C=>C.acceptedAt).length]),t(R,E)},$$slots:{default:!0}})}),t(W,$)},$$slots:{default:!0}})});var F=l(B,2);T(F,()=>Re,(H,D)=>{D(H,{children:(W,Q)=>{var $=Zt();ue($,21,()=>_.data.invites,m=>m.id,(m,c)=>{const w=y(()=>Date.parse(e(c).expiresAt)<=Date.now()),r=y(()=>e(c).acceptedAt?"Accepted":e(w)?"Expired":"Pending");var R=Vt(),U=i(R),E=i(U),C=i(E,!0);a(E);var Y=l(E,2),n=i(Y);a(Y),a(U);var p=l(U,2);{var u=g=>{{let M=y(()=>e(we)===e(c).id);fe(g,{size:"sm",variant:"ghost",get disabled(){return e(M)},onclick:()=>et(e(c).id,e(c).email),class:"text-destructive hover:text-destructive",children:(ge,de)=>{Ct(ge,{class:"h-4 w-4"})},$$slots:{default:!0}})}};N(p,g=>{!e(c).acceptedAt&&!e(w)&&g(u)})}a(R),h(g=>{b(C,e(c).email),b(n,`${e(r)??""} · ${e(c).orgRole??""} · expires ${g??""}`)},[()=>new Date(e(c).expiresAt).toLocaleDateString()]),t(m,R)}),a($),t(W,$)},$$slots:{default:!0}})}),t(J,A)},$$slots:{default:!0}})}),t(I,k)};N(ke,I=>{_.data.invites.length>0&&I(Pe)})}t(o,v)};N(tt,o=>{_.data.orgId&&o(rt)})}a(ye),t(We,ye),_t()}xt(["change"]);export{kr as component};
@@ -1,2 +1,2 @@
1
- import"../chunks/DsnmJJEf.js";import{p as Ie,f as d,a as Ce,e as De,g as e,u as Y,c as v,$ as Te,d as s,i as Ae,r as c,n as F,t as W,h as n,s as O}from"../chunks/BtOVeLcI.js";import{s as P}from"../chunks/BNpXeuQ_.js";import{a as r,f as y,c as V,t as X}from"../chunks/BoLtD6vo.js";import{i as oe}from"../chunks/DAQN5y4A.js";import{a as me,c as Ne,e as Se,b as Ee}from"../chunks/22C0ZkpD.js";import{s as Fe,r as Oe,c as _}from"../chunks/ChEZL1UP.js";import{h as Ve}from"../chunks/CTTkX-27.js";import{i as fe}from"../chunks/BNlGWnEa.js";import{S as Be}from"../chunks/Bixcgta2.js";import{C as _e,a as ge}from"../chunks/BawNisij.js";import{E as Le}from"../chunks/Ct6ntSZV.js";import{F as Me}from"../chunks/1awtB_xB.js";import{D as ze}from"../chunks/sxUC6FDI.js";import{A as He,a as Re,b as Ye,c as qe,d as Je,e as Ke,f as Ue,R as Ge}from"../chunks/T404WsWw.js";import{I as Qe}from"../chunks/BuC_QZkR.js";import{B as se}from"../chunks/mlApEF2J.js";import{T as We}from"../chunks/BuBobyR7.js";import{t as q}from"../chunks/DTLLn7uD.js";import{P as Xe}from"../chunks/BnS8rxFx.js";import{I as $e}from"../chunks/CJvX1bCR.js";function Ze(le,j){let Z=Oe(j,["$$slots","$$events","$$legacy"]);const ne=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];Qe(le,Fe({name:"external-link"},()=>Z,{get iconNode(){return ne}}))}var et=y("<!> New project",1),tt=y("<option> </option>"),rt=y('<div><p class="text-sm font-medium">New project</p> <p class="text-muted-foreground text-xs">Visibility can be changed later. Public requires the platform flag.</p></div> <div class="grid gap-3 sm:grid-cols-2"><!> <select class="border-input bg-background h-9 rounded-md border px-3 text-sm"></select></div> <!> <div class="flex gap-2"><!> <!></div>',1),at=y('<div class="min-w-0"><div class="flex items-center gap-2"><a class="truncate text-sm font-medium hover:underline"> </a> <a class="text-muted-foreground hover:text-foreground" aria-label="Open project"><!></a></div> <p class="text-muted-foreground truncate font-mono text-xs"> </p></div> <span> </span> <span class="text-right font-mono text-sm tabular-nums"> </span> <span class="text-muted-foreground text-right text-xs"> </span> <div class="flex justify-end"><!></div>',1),ot=y(`<strong> </strong> will be removed from view immediately. Permanent deletion
1
+ import"../chunks/DsnmJJEf.js";import{p as Ie,f as d,a as Ce,e as De,g as e,u as Y,c as v,$ as Te,d as s,i as Ae,r as c,n as F,t as W,h as n,s as O}from"../chunks/BtOVeLcI.js";import{s as P}from"../chunks/BNpXeuQ_.js";import{a as r,f as y,c as V,t as X}from"../chunks/BoLtD6vo.js";import{i as oe}from"../chunks/DAQN5y4A.js";import{a as me,c as Ne,e as Se,b as Ee}from"../chunks/22C0ZkpD.js";import{s as Fe,r as Oe,c as _}from"../chunks/ChEZL1UP.js";import{h as Ve}from"../chunks/CTTkX-27.js";import{i as fe}from"../chunks/DYVN_iHa.js";import{S as Be}from"../chunks/Bixcgta2.js";import{C as _e,a as ge}from"../chunks/BawNisij.js";import{E as Le}from"../chunks/Ct6ntSZV.js";import{F as Me}from"../chunks/1awtB_xB.js";import{D as ze}from"../chunks/sxUC6FDI.js";import{A as He,a as Re,b as Ye,c as qe,d as Je,e as Ke,f as Ue,R as Ge}from"../chunks/T404WsWw.js";import{I as Qe}from"../chunks/BuC_QZkR.js";import{B as se}from"../chunks/mlApEF2J.js";import{T as We}from"../chunks/BuBobyR7.js";import{t as q}from"../chunks/DTLLn7uD.js";import{P as Xe}from"../chunks/BnS8rxFx.js";import{I as $e}from"../chunks/CJvX1bCR.js";function Ze(le,j){let Z=Oe(j,["$$slots","$$events","$$legacy"]);const ne=[["path",{d:"M15 3h6v6"}],["path",{d:"M10 14 21 3"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}]];Qe(le,Fe({name:"external-link"},()=>Z,{get iconNode(){return ne}}))}var et=y("<!> New project",1),tt=y("<option> </option>"),rt=y('<div><p class="text-sm font-medium">New project</p> <p class="text-muted-foreground text-xs">Visibility can be changed later. Public requires the platform flag.</p></div> <div class="grid gap-3 sm:grid-cols-2"><!> <select class="border-input bg-background h-9 rounded-md border px-3 text-sm"></select></div> <!> <div class="flex gap-2"><!> <!></div>',1),at=y('<div class="min-w-0"><div class="flex items-center gap-2"><a class="truncate text-sm font-medium hover:underline"> </a> <a class="text-muted-foreground hover:text-foreground" aria-label="Open project"><!></a></div> <p class="text-muted-foreground truncate font-mono text-xs"> </p></div> <span> </span> <span class="text-right font-mono text-sm tabular-nums"> </span> <span class="text-muted-foreground text-right text-xs"> </span> <div class="flex justify-end"><!></div>',1),ot=y(`<strong> </strong> will be removed from view immediately. Permanent deletion
2
2
  happens after the retention window.`,1),st=y("<!> <!>",1),lt=y("<!> <!>",1),nt=y("<!> <!>",1),it=y('<div class="space-y-6"><!> <!> <!></div> <!>',1);function At(le,j){Ie(j,!0);const Z={public:"border-success/40 text-success",org:"border-blue-500/40 text-blue-600 dark:text-blue-400",private:"border-border text-muted-foreground"},ne=["private","org","public"];let B=O(!1),L=O(""),ee=O(""),te=O("private"),re=O(!1),k=O(null),J=O(null);async function he(){n(re,!0);try{const o=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e(L),description:e(ee)||void 0,visibility:e(te)})});if(o.ok)q.success(`Project "${e(L)}" created`),n(L,""),n(ee,""),n(te,"private"),n(B,!1),await fe();else{const u=await o.json().catch(()=>({}));q.error(u.message||u.error||"Failed to create project")}}catch{q.error("Failed to create project")}finally{n(re,!1)}}async function xe(o){n(J,o.id,!0);try{const u=await fetch(`/api/projects/${o.id}`,{method:"DELETE"});if(u.ok)q.success(`Deleted "${o.name}"`),await fe();else{const x=await u.json().catch(()=>({}));q.error(x.message||x.error||"Failed to delete project")}}catch{q.error("Failed to delete project")}finally{n(J,null),n(k,null)}}var ce=it();Ve("1o7kh6r",o=>{De(()=>{Te.title="Team · Projects"})});var ie=d(ce),ue=v(ie);{const o=x=>{var b=V(),N=d(b);{var I=C=>{{let D=Y(()=>e(B)?"outline":"default");se(C,{onclick:()=>n(B,!e(B)),get variant(){return e(D)},children:(S,K)=>{var T=et(),A=d(T);Xe(A,{class:"mr-2 h-4 w-4"}),F(),r(S,T)},$$slots:{default:!0}})}};oe(N,C=>{j.data.canCreate&&C(I)})}r(x,b)};let u=Y(()=>`${j.data.projects.length} project${j.data.projects.length===1?"":"s"} in this organization.`);Be(ue,{eyebrow:"Team",title:"Projects",get description(){return e(u)},actions:o,$$slots:{actions:!0}})}var pe=s(ue,2);{var be=o=>{var u=V(),x=d(u);_(x,()=>ge,(b,N)=>{N(b,{children:(I,C)=>{var D=V(),S=d(D);_(S,()=>_e,(K,T)=>{T(K,{class:"space-y-3 pt-6",children:(A,U)=>{var M=rt(),p=s(d(M),2),E=v(p);$e(E,{placeholder:"Project name",get value(){return e(L)},set value(t){n(L,t,!0)}});var g=s(E,2);Se(g,20,()=>ne,t=>t,(t,l)=>{var a=tt(),h=v(a,!0);c(a);var m={};W(()=>{P(h,l),m!==(m=l)&&(a.value=(a.__value=l)??"")}),r(t,a)}),c(g),c(p);var i=s(p,2);$e(i,{placeholder:"Description (optional)",get value(){return e(ee)},set value(t){n(ee,t,!0)}});var $=s(i,2),f=v($);{let t=Y(()=>e(re)||!e(L));se(f,{onclick:he,get disabled(){return e(t)},children:(l,a)=>{F();var h=X();W(()=>P(h,e(re)?"Creating…":"Create project")),r(l,h)},$$slots:{default:!0}})}var w=s(f,2);se(w,{variant:"outline",onclick:()=>n(B,!1),children:(t,l)=>{F();var a=X("Cancel");r(t,a)},$$slots:{default:!0}}),c($),Ee(g,()=>e(te),t=>n(te,t)),r(A,M)},$$slots:{default:!0}})}),r(I,D)},$$slots:{default:!0}})}),r(o,u)};oe(pe,o=>{e(B)&&o(be)})}var we=s(pe,2);_(we,()=>ge,(o,u)=>{u(o,{children:(x,b)=>{var N=V(),I=d(N);_(I,()=>_e,(C,D)=>{D(C,{class:"pt-6",children:(S,K)=>{var T=V(),A=d(T);{var U=p=>{Le(p,{get icon(){return Me},title:"No projects yet",description:"Create your first project to start uploading definitions."})},M=p=>{ze(p,{get rows(){return j.data.projects},getKey:g=>g.id,columns:[{label:"Project"},{label:"Visibility",width:"120px"},{label:"Members",width:"100px",align:"right"},{label:"Updated",width:"120px",align:"right"},{label:"",width:"80px"}],row:(g,i=Ae)=>{var $=at(),f=d($),w=v(f),t=v(w),l=v(t,!0);c(t);var a=s(t,2),h=v(a);Ze(h,{class:"h-3.5 w-3.5"}),c(a),c(w);var m=s(w,2),z=v(m,!0);c(m),c(f);var H=s(f,2),G=v(H,!0);c(H);var R=s(H,2),ae=v(R,!0);c(R);var Q=s(R,2),ye=v(Q,!0);c(Q);var ve=s(Q,2),je=v(ve);{let de=Y(()=>e(J)===i().id);se(je,{size:"sm",variant:"ghost",get disabled(){return e(de)},onclick:()=>n(k,i(),!0),class:"text-destructive hover:text-destructive h-8 w-8 p-0",children:(ke,dt)=>{We(ke,{class:"h-4 w-4"})},$$slots:{default:!0}})}c(ve),W(de=>{me(t,"href",`/projects?project=${i().slug}`),P(l,i().name),me(a,"href",`/projects?project=${i().slug}`),P(z,i().slug),Ne(H,1,`w-fit rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${Z[i().visibility]??Z.private}`),P(G,i().visibility),P(ae,i().memberCount),P(ye,de)},[()=>new Date(i().updatedAt).toLocaleDateString()]),r(g,$)},$$slots:{row:!0}})};oe(A,p=>{j.data.projects.length===0?p(U):p(M,-1)})}r(S,T)},$$slots:{default:!0}})}),r(x,N)},$$slots:{default:!0}})}),c(ie);var Pe=s(ie,2);{let o=Y(()=>!!e(k));_(Pe,()=>Ge,(u,x)=>{x(u,{get open(){return e(o)},onOpenChange:b=>!b&&n(k,null),children:(b,N)=>{var I=V(),C=d(I);_(C,()=>He,(D,S)=>{S(D,{children:(K,T)=>{var A=nt(),U=d(A);_(U,()=>Re,(p,E)=>{E(p,{children:(g,i)=>{var $=st(),f=d($);_(f,()=>Ye,(t,l)=>{l(t,{children:(a,h)=>{F();var m=X("Delete this project?");r(a,m)},$$slots:{default:!0}})});var w=s(f,2);_(w,()=>qe,(t,l)=>{l(t,{children:(a,h)=>{var m=V(),z=d(m);{var H=G=>{var R=ot(),ae=d(R),Q=v(ae,!0);c(ae),F(),W(()=>P(Q,e(k).name)),r(G,R)};oe(z,G=>{e(k)&&G(H)})}r(a,m)},$$slots:{default:!0}})}),r(g,$)},$$slots:{default:!0}})});var M=s(U,2);_(M,()=>Je,(p,E)=>{E(p,{children:(g,i)=>{var $=lt(),f=d($);_(f,()=>Ke,(t,l)=>{l(t,{children:(a,h)=>{F();var m=X("Cancel");r(a,m)},$$slots:{default:!0}})});var w=s(f,2);{let t=Y(()=>!!e(J));_(w,()=>Ue,(l,a)=>{a(l,{onclick:()=>e(k)&&xe(e(k)),get disabled(){return e(t)},children:(h,m)=>{F();var z=X();W(()=>P(z,e(J)?"Deleting…":"Delete")),r(h,z)},$$slots:{default:!0}})})}r(g,$)},$$slots:{default:!0}})}),r(K,A)},$$slots:{default:!0}})}),r(b,I)},$$slots:{default:!0}})})}r(le,ce),Ce()}export{At as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p,a as m,g as i,u as n,c as u,r as d}from"../chunks/BtOVeLcI.js";import{a as f,f as g}from"../chunks/BoLtD6vo.js";import{p as e}from"../chunks/Cd8uUagh.js";import{E as v}from"../chunks/Dxp1VkzK.js";var c=g('<div class="px-6 py-6"><!></div>');function y(s,a){p(a,!0);var r=c(),t=u(r);{let o=n(()=>e.error?.message);v(t,{get status(){return e.status},get message(){return i(o)}})}d(r),f(s,r),m()}export{y as component};
1
+ import"../chunks/DsnmJJEf.js";import{p,a as m,g as i,u as n,c as u,r as d}from"../chunks/BtOVeLcI.js";import{a as f,f as g}from"../chunks/BoLtD6vo.js";import{p as e}from"../chunks/Cf84tWpN.js";import{E as v}from"../chunks/Dxp1VkzK.js";var c=g('<div class="px-6 py-6"><!></div>');function y(s,a){p(a,!0);var r=c(),t=u(r);{let o=n(()=>e.error?.message);v(t,{get status(){return e.status},get message(){return i(o)}})}d(r),f(s,r),m()}export{y as component};
@@ -1,2 +1,2 @@
1
- import"../chunks/DsnmJJEf.js";import{p as dt,f as e,a as ct,e as mt,c as g,$ as ut,d as s,i as pt,r as $,n as T,g as r,t as G,h as k,u as J,s as rt}from"../chunks/BtOVeLcI.js";import{s as R}from"../chunks/BNpXeuQ_.js";import{a as t,f as b,c as B,t as Q}from"../chunks/BoLtD6vo.js";import{i as at}from"../chunks/DAQN5y4A.js";import{c as i}from"../chunks/ChEZL1UP.js";import{h as ft}from"../chunks/CTTkX-27.js";import{c as vt}from"../chunks/22C0ZkpD.js";import{i as _t}from"../chunks/BNlGWnEa.js";import{S as gt}from"../chunks/Bixcgta2.js";import{C as $t,a as ht}from"../chunks/BawNisij.js";import{E as xt}from"../chunks/Ct6ntSZV.js";import{F as bt}from"../chunks/k1GnUs7f.js";import{D as wt}from"../chunks/sxUC6FDI.js";import{A as yt,a as Pt,b as Rt,c as At,d as Tt,e as kt,f as Ct,R as It}from"../chunks/T404WsWw.js";import{B as St}from"../chunks/mlApEF2J.js";import{R as zt}from"../chunks/DgJBZX8M.js";import{t as U}from"../chunks/DTLLn7uD.js";var Ft=b("<!> Reclaim",1),Ot=b('<div class="min-w-0"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-xs"> </p></div> <span> </span> <span class="text-right font-mono text-sm tabular-nums"> </span> <div class="flex justify-end"><!></div>',1),jt=b(`You'll be added as a co-owner of <strong> </strong>. The existing owner is
1
+ import"../chunks/DsnmJJEf.js";import{p as dt,f as e,a as ct,e as mt,c as g,$ as ut,d as s,i as pt,r as $,n as T,g as r,t as G,h as k,u as J,s as rt}from"../chunks/BtOVeLcI.js";import{s as R}from"../chunks/BNpXeuQ_.js";import{a as t,f as b,c as B,t as Q}from"../chunks/BoLtD6vo.js";import{i as at}from"../chunks/DAQN5y4A.js";import{c as i}from"../chunks/ChEZL1UP.js";import{h as ft}from"../chunks/CTTkX-27.js";import{c as vt}from"../chunks/22C0ZkpD.js";import{i as _t}from"../chunks/DYVN_iHa.js";import{S as gt}from"../chunks/Bixcgta2.js";import{C as $t,a as ht}from"../chunks/BawNisij.js";import{E as xt}from"../chunks/Ct6ntSZV.js";import{F as bt}from"../chunks/k1GnUs7f.js";import{D as wt}from"../chunks/sxUC6FDI.js";import{A as yt,a as Pt,b as Rt,c as At,d as Tt,e as kt,f as Ct,R as It}from"../chunks/T404WsWw.js";import{B as St}from"../chunks/mlApEF2J.js";import{R as zt}from"../chunks/DgJBZX8M.js";import{t as U}from"../chunks/DTLLn7uD.js";var Ft=b("<!> Reclaim",1),Ot=b('<div class="min-w-0"><p class="truncate text-sm font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-xs"> </p></div> <span> </span> <span class="text-right font-mono text-sm tabular-nums"> </span> <div class="flex justify-end"><!></div>',1),jt=b(`You'll be added as a co-owner of <strong> </strong>. The existing owner is
2
2
  not demoted. This action is recorded in the audit log.`,1),Bt=b("<!> <!>",1),Et=b("<!> <!>",1),Nt=b("<!> <!>",1),Dt=b('<div class="space-y-6"><!> <!></div> <!>',1);function se(ot,E){dt(E,!0);let p=rt(null),A=rt(null);const W={public:"border-success/40 text-success",org:"border-blue-500/40 text-blue-600 dark:text-blue-400",private:"border-border text-muted-foreground"};async function st(f){k(A,f.id,!0);try{const w=await fetch(`/api/projects/${f.id}/reclaim`,{method:"POST"});if(w.ok)U.success(`Reclaimed "${f.name}"`),await _t();else{const y=await w.json().catch(()=>({}));U.error(y.message||y.error||"Failed to reclaim")}}catch{U.error("Failed to reclaim")}finally{k(A,null),k(p,null)}}var X=Dt();ft("1h6uwd2",f=>{mt(()=>{ut.title="Team · Reclaim"})});var N=e(X),Z=g(N);gt(Z,{eyebrow:"Organization",title:"Reclaim project",description:"Take co-ownership of any project in this organization. Reclaiming does not demote the existing owner — it adds you alongside them. Recorded in the audit log."});var it=s(Z,2);i(it,()=>ht,(f,w)=>{w(f,{children:(y,C)=>{var D=B(),I=e(D);i(I,()=>$t,(V,Y)=>{Y(V,{class:"pt-6",children:(H,tt)=>{var K=B(),S=e(K);{var z=a=>{xt(a,{get icon(){return bt},title:"No projects",description:"No projects exist in this organization yet."})},L=a=>{wt(a,{get rows(){return E.data.projects},getKey:h=>h.id,columns:[{label:"Project"},{label:"Visibility",width:"120px"},{label:"Members",width:"100px",align:"right"},{label:"",width:"100px"}],row:(h,l=pt)=>{var v=Ot(),n=e(v),x=g(n),d=g(x,!0);$(x);var o=s(x,2),c=g(o,!0);$(o),$(n);var m=s(n,2),u=g(m,!0);$(m);var _=s(m,2),M=g(_,!0);$(_);var P=s(_,2),O=g(P);{let j=J(()=>r(A)===l().id);St(O,{size:"sm",variant:"outline",get disabled(){return r(j)},onclick:()=>k(p,l(),!0),children:(q,Vt)=>{var et=Ft(),nt=e(et);zt(nt,{class:"mr-1.5 h-3.5 w-3.5"}),T(),t(q,et)},$$slots:{default:!0}})}$(P),G(()=>{R(d,l().name),R(c,l().id),vt(m,1,`w-fit rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${W[l().visibility]??W.private}`),R(u,l().visibility),R(M,l().memberCount)}),t(h,v)},$$slots:{row:!0}})};at(S,a=>{E.data.projects.length===0?a(z):a(L,-1)})}t(H,K)},$$slots:{default:!0}})}),t(y,D)},$$slots:{default:!0}})}),$(N);var lt=s(N,2);{let f=J(()=>!!r(p));i(lt,()=>It,(w,y)=>{y(w,{get open(){return r(f)},onOpenChange:C=>!C&&k(p,null),children:(C,D)=>{var I=B(),V=e(I);i(V,()=>yt,(Y,H)=>{H(Y,{children:(tt,K)=>{var S=Nt(),z=e(S);i(z,()=>Pt,(a,F)=>{F(a,{children:(h,l)=>{var v=Bt(),n=e(v);i(n,()=>Rt,(d,o)=>{o(d,{children:(c,m)=>{T();var u=Q("Reclaim this project?");t(c,u)},$$slots:{default:!0}})});var x=s(n,2);i(x,()=>At,(d,o)=>{o(d,{children:(c,m)=>{var u=B(),_=e(u);{var M=P=>{var O=jt(),j=s(e(O)),q=g(j,!0);$(j),T(),G(()=>R(q,r(p).name)),t(P,O)};at(_,P=>{r(p)&&P(M)})}t(c,u)},$$slots:{default:!0}})}),t(h,v)},$$slots:{default:!0}})});var L=s(z,2);i(L,()=>Tt,(a,F)=>{F(a,{children:(h,l)=>{var v=Et(),n=e(v);i(n,()=>kt,(d,o)=>{o(d,{children:(c,m)=>{T();var u=Q("Cancel");t(c,u)},$$slots:{default:!0}})});var x=s(n,2);{let d=J(()=>!!r(A));i(x,()=>Ct,(o,c)=>{c(o,{onclick:()=>r(p)&&st(r(p)),get disabled(){return r(d)},children:(m,u)=>{T();var _=Q();G(()=>R(_,r(A)?"Reclaiming…":"Reclaim")),t(m,_)},$$slots:{default:!0}})})}t(h,v)},$$slots:{default:!0}})}),t(tt,S)},$$slots:{default:!0}})}),t(C,I)},$$slots:{default:!0}})})}t(ot,X),ct()}export{se as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{f as p,i as m}from"../chunks/BtOVeLcI.js";import{c as s,a as i}from"../chunks/BoLtD6vo.js";import{s as n}from"../chunks/8uBOzWQA.js";import{A as f}from"../chunks/D-RnPGVi.js";function _(r,t){f(r,{mode:"fixed",children:(a,d)=>{var o=s(),e=p(o);n(e,()=>t.children??m),i(a,o)},$$slots:{default:!0}})}export{_ as component};
1
+ import"../chunks/DsnmJJEf.js";import{f as p,i as m}from"../chunks/BtOVeLcI.js";import{c as s,a as i}from"../chunks/BoLtD6vo.js";import{s as n}from"../chunks/8uBOzWQA.js";import{A as f}from"../chunks/CoQ9fTF5.js";function _(r,t){f(r,{mode:"fixed",children:(a,d)=>{var o=s(),e=p(o);n(e,()=>t.children??m),i(a,o)},$$slots:{default:!0}})}export{_ as component};
@@ -0,0 +1 @@
1
+ e �ؚ}%���4���s,w~�Q⁽Y���[[RۯX�Ĺ�u�M(�3<�H~G������)��z=��:D;���a�nV�j�g3&���Vd9Z�9[2�?�Ն�f0>|�F�L�SK��k2�� ?K�O��[VkGU�hV�F\VĽ�o�N�J=9�c#)��J�x ,�k��N����Q��SqoG��b*��#�5h'
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as R,a as U,g,f as C,u as v,c as r,i as F,r as o,d as w,t as L}from"../chunks/BtOVeLcI.js";import{s as B,r as O,a as q,d as D}from"../chunks/ChEZL1UP.js";import{s as u}from"../chunks/BNpXeuQ_.js";import{s as E}from"../chunks/8uBOzWQA.js";import{i as J}from"../chunks/DAQN5y4A.js";import{a as _,f as y,c as K}from"../chunks/BoLtD6vo.js";import{p as Q}from"../chunks/KecTfFG2.js";import{A as T}from"../chunks/D-RnPGVi.js";import{S as V,G as W}from"../chunks/Dh9wssNG.js";import{U as X}from"../chunks/BYQ2KYuV.js";import{F as Y}from"../chunks/1awtB_xB.js";import{R as Z}from"../chunks/DgJBZX8M.js";import{A as ee}from"../chunks/cwYjabEo.js";import{L as ae}from"../chunks/BYVjhRZj.js";import{S as te}from"../chunks/BRHPfB44.js";import{I as re}from"../chunks/BuC_QZkR.js";function oe(m,e){let p=O(e,["$$slots","$$events","$$legacy"]);const c=[["path",{d:"M10 5H3"}],["path",{d:"M12 19H3"}],["path",{d:"M14 3v4"}],["path",{d:"M16 17v4"}],["path",{d:"M21 12h-9"}],["path",{d:"M21 19h-5"}],["path",{d:"M21 5h-7"}],["path",{d:"M8 10v4"}],["path",{d:"M8 12H3"}]];re(m,B({name:"sliders-horizontal"},()=>p,{get iconNode(){return c}}))}var se=y('<div class="border-border bg-accent/40 flex items-center gap-2 rounded-md border px-2.5 py-2"><span class="bg-primary/15 text-primary flex h-6 w-6 shrink-0 items-center justify-center rounded font-mono text-[11px] font-semibold"> </span> <div class="min-w-0 flex-1"><p class="truncate text-sm leading-tight font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-[10px]"> </p></div></div>'),ie=y('<div class="px-(--page-px) py-(--page-py)"><!></div>');function Se(m,e){R(e,!0);const p=()=>D(Q,"$page",c),[c,M]=q(),S=v(()=>e.data.ctx?.orgPermissions??[]),a=t=>g(S).includes(t),$=v(()=>!!p().data.flags?.enableSharing),j=v(()=>[{href:"/team",label:"General",icon:W,show:!0},{href:"/team/members",label:"Members & roles",icon:X,match:"prefix",show:a("manage_org_members")},{href:"/team/projects",label:"Projects",icon:Y,match:"prefix",show:a("manage_projects")},{href:"/team/reclaim",label:"Reclaim",icon:Z,match:"prefix",show:a("manage_org_members")},{href:"/team/activity",label:"Activity",icon:ee,match:"prefix",show:!0},{href:"/team/shares",label:"Share links",icon:ae,match:"prefix",show:g($)&&a("manage_definitions")},{href:"/team/compute",label:"Compute",icon:te,match:"prefix",show:a("manage_org_compute")},{href:"/team/settings",label:"Settings",icon:oe,match:"prefix",show:a("manage_org_members")}].filter(t=>t.show));function k(t){return t.split(/\s+/).filter(Boolean).slice(0,2).map(s=>s[0].toUpperCase()).join("")}T(m,{sidenav:s=>{V(s,{get items(){return g(j)},eyebrow:"Organization",header:i=>{var n=K(),H=C(n);{var P=d=>{var l=se(),f=r(l),z=r(f,!0);o(f);var x=w(f,2),h=r(x),G=r(h,!0);o(h);var b=w(h,2),I=r(b,!0);o(b),o(x),o(l),L(N=>{u(z,N),u(G,e.data.org.name),u(I,e.data.org.slug)},[()=>k(e.data.org.name)]),_(d,l)};J(H,d=>{e.data.org&&d(P)})}_(i,n)},$$slots:{header:!0}})},children:(s,A)=>{var i=ie(),n=r(i);E(n,()=>e.children??F),o(i),_(s,i)},$$slots:{sidenav:!0,default:!0}}),U(),M()}export{Se as component};
1
+ import"../chunks/DsnmJJEf.js";import{p as R,a as U,g,f as C,u as v,c as r,i as F,r as o,d as w,t as L}from"../chunks/BtOVeLcI.js";import{s as B,r as O,a as q,d as D}from"../chunks/ChEZL1UP.js";import{s as u}from"../chunks/BNpXeuQ_.js";import{s as E}from"../chunks/8uBOzWQA.js";import{i as J}from"../chunks/DAQN5y4A.js";import{a as _,f as y,c as K}from"../chunks/BoLtD6vo.js";import{p as Q}from"../chunks/ByprRtK5.js";import{A as T}from"../chunks/CoQ9fTF5.js";import{S as V,G as W}from"../chunks/Dc6oAxlV.js";import{U as X}from"../chunks/BYQ2KYuV.js";import{F as Y}from"../chunks/1awtB_xB.js";import{R as Z}from"../chunks/DgJBZX8M.js";import{A as ee}from"../chunks/cwYjabEo.js";import{L as ae}from"../chunks/BYVjhRZj.js";import{S as te}from"../chunks/BRHPfB44.js";import{I as re}from"../chunks/BuC_QZkR.js";function oe(m,e){let p=O(e,["$$slots","$$events","$$legacy"]);const c=[["path",{d:"M10 5H3"}],["path",{d:"M12 19H3"}],["path",{d:"M14 3v4"}],["path",{d:"M16 17v4"}],["path",{d:"M21 12h-9"}],["path",{d:"M21 19h-5"}],["path",{d:"M21 5h-7"}],["path",{d:"M8 10v4"}],["path",{d:"M8 12H3"}]];re(m,B({name:"sliders-horizontal"},()=>p,{get iconNode(){return c}}))}var se=y('<div class="border-border bg-accent/40 flex items-center gap-2 rounded-md border px-2.5 py-2"><span class="bg-primary/15 text-primary flex h-6 w-6 shrink-0 items-center justify-center rounded font-mono text-[11px] font-semibold"> </span> <div class="min-w-0 flex-1"><p class="truncate text-sm leading-tight font-medium"> </p> <p class="text-muted-foreground truncate font-mono text-[10px]"> </p></div></div>'),ie=y('<div class="px-(--page-px) py-(--page-py)"><!></div>');function Se(m,e){R(e,!0);const p=()=>D(Q,"$page",c),[c,M]=q(),S=v(()=>e.data.ctx?.orgPermissions??[]),a=t=>g(S).includes(t),$=v(()=>!!p().data.flags?.enableSharing),j=v(()=>[{href:"/team",label:"General",icon:W,show:!0},{href:"/team/members",label:"Members & roles",icon:X,match:"prefix",show:a("manage_org_members")},{href:"/team/projects",label:"Projects",icon:Y,match:"prefix",show:a("manage_projects")},{href:"/team/reclaim",label:"Reclaim",icon:Z,match:"prefix",show:a("manage_org_members")},{href:"/team/activity",label:"Activity",icon:ee,match:"prefix",show:!0},{href:"/team/shares",label:"Share links",icon:ae,match:"prefix",show:g($)&&a("manage_definitions")},{href:"/team/compute",label:"Compute",icon:te,match:"prefix",show:a("manage_org_compute")},{href:"/team/settings",label:"Settings",icon:oe,match:"prefix",show:a("manage_org_members")}].filter(t=>t.show));function k(t){return t.split(/\s+/).filter(Boolean).slice(0,2).map(s=>s[0].toUpperCase()).join("")}T(m,{sidenav:s=>{V(s,{get items(){return g(j)},eyebrow:"Organization",header:i=>{var n=K(),H=C(n);{var P=d=>{var l=se(),f=r(l),z=r(f,!0);o(f);var x=w(f,2),h=r(x),G=r(h,!0);o(h);var b=w(h,2),I=r(b,!0);o(b),o(x),o(l),L(N=>{u(z,N),u(G,e.data.org.name),u(I,e.data.org.slug)},[()=>k(e.data.org.name)]),_(d,l)};J(H,d=>{e.data.org&&d(P)})}_(i,n)},$$slots:{header:!0}})},children:(s,A)=>{var i=ie(),n=r(i);E(n,()=>e.children??F),o(i),_(s,i)},$$slots:{sidenav:!0,default:!0}}),U(),M()}export{Se as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as O,a as S,k as U,t as q,$ as z,g as r,c as e,r as a,d as v,n as u,u as x}from"../chunks/BtOVeLcI.js";import{s as h}from"../chunks/BNpXeuQ_.js";import{a as p,f as C,t as g}from"../chunks/BoLtD6vo.js";import{i as D}from"../chunks/DAQN5y4A.js";import{h as E}from"../chunks/CTTkX-27.js";import{p as $}from"../chunks/Cd8uUagh.js";import{A as F}from"../chunks/D-RnPGVi.js";import{B as _}from"../chunks/mlApEF2J.js";var G=C('<div class="flex flex-1 flex-col items-center justify-center px-4 text-center"><div class="max-w-md space-y-6"><h1 class="text-4xl font-bold tracking-tight"> </h1> <p class="text-muted-foreground text-lg"> </p> <div class="flex justify-center gap-3"><!></div></div></div>');function W(b,y){O(y,!0);const k=x(()=>!!$.data.user),s=x(()=>$.data.branding);E("1uha8ag",f=>{U(()=>{z.title=r(s).name??""})}),F(b,{homeUrl:"/",children:(f,I)=>{var o=G(),m=e(o),i=e(m),A=e(i,!0);a(i);var l=v(i,2),P=e(l,!0);a(l);var c=v(l,2),j=e(c);{var B=t=>{_(t,{href:"/library",children:(d,H)=>{u();var n=g("Open library");p(d,n)},$$slots:{default:!0}})},w=t=>{_(t,{href:"/login",children:(d,H)=>{u();var n=g("Sign in");p(d,n)},$$slots:{default:!0}})};D(j,t=>{r(k)?t(B):t(w,-1)})}a(c),a(m),a(o),q(()=>{h(A,r(s).name),h(P,r(s).tagline)}),p(f,o)},$$slots:{default:!0}}),S()}export{W as component};
1
+ import"../chunks/DsnmJJEf.js";import{p as O,a as S,k as U,t as q,$ as z,g as r,c as e,r as a,d as v,n as u,u as x}from"../chunks/BtOVeLcI.js";import{s as h}from"../chunks/BNpXeuQ_.js";import{a as p,f as C,t as g}from"../chunks/BoLtD6vo.js";import{i as D}from"../chunks/DAQN5y4A.js";import{h as E}from"../chunks/CTTkX-27.js";import{p as $}from"../chunks/Cf84tWpN.js";import{A as F}from"../chunks/CoQ9fTF5.js";import{B as _}from"../chunks/mlApEF2J.js";var G=C('<div class="flex flex-1 flex-col items-center justify-center px-4 text-center"><div class="max-w-md space-y-6"><h1 class="text-4xl font-bold tracking-tight"> </h1> <p class="text-muted-foreground text-lg"> </p> <div class="flex justify-center gap-3"><!></div></div></div>');function W(b,y){O(y,!0);const k=x(()=>!!$.data.user),s=x(()=>$.data.branding);E("1uha8ag",f=>{U(()=>{z.title=r(s).name??""})}),F(b,{homeUrl:"/",children:(f,I)=>{var o=G(),m=e(o),i=e(m),A=e(i,!0);a(i);var l=v(i,2),P=e(l,!0);a(l);var c=v(l,2),j=e(c);{var B=t=>{_(t,{href:"/library",children:(d,H)=>{u();var n=g("Open library");p(d,n)},$$slots:{default:!0}})},w=t=>{_(t,{href:"/login",children:(d,H)=>{u();var n=g("Sign in");p(d,n)},$$slots:{default:!0}})};D(j,t=>{r(k)?t(B):t(w,-1)})}a(c),a(m),a(o),q(()=>{h(A,r(s).name),h(P,r(s).tagline)}),p(f,o)},$$slots:{default:!0}}),S()}export{W as component};