@selvajs/selva 2.0.0 → 2.0.1

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 (227) hide show
  1. package/build/client/_app/immutable/assets/20.DvtWUFNX.css +1 -0
  2. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.br +0 -0
  3. package/build/client/_app/immutable/assets/20.DvtWUFNX.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{BFXFuY-o.js → 4PBDTLFF.js} +1 -1
  5. package/build/client/_app/immutable/chunks/4PBDTLFF.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/4PBDTLFF.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{ChSMnQMB.js → BMwGnr2J.js} +1 -1
  8. package/build/client/_app/immutable/chunks/BMwGnr2J.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/BMwGnr2J.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{DHWrMZkd.js → BSyJ0ZuA.js} +1 -1
  11. package/build/client/_app/immutable/chunks/BSyJ0ZuA.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BSyJ0ZuA.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{DdaJZmuM.js → CS49LPny.js} +1 -1
  14. package/build/client/_app/immutable/chunks/CS49LPny.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/CS49LPny.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{4y4xLOS_.js → VmqnFAi3.js} +1 -1
  17. package/build/client/_app/immutable/chunks/VmqnFAi3.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/VmqnFAi3.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{D7PHp8xb.js → smW5maEe.js} +1 -1
  20. package/build/client/_app/immutable/chunks/smW5maEe.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/smW5maEe.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/{app.CY1cyDxx.js → app.GElcRZPp.js} +2 -2
  23. package/build/client/_app/immutable/entry/app.GElcRZPp.js.br +0 -0
  24. package/build/client/_app/immutable/entry/app.GElcRZPp.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/start.D-b3nSOP.js +1 -0
  26. package/build/client/_app/immutable/entry/start.D-b3nSOP.js.br +0 -0
  27. package/build/client/_app/immutable/entry/start.D-b3nSOP.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/0.r0PA_Sxw.js +1 -0
  29. package/build/client/_app/immutable/nodes/0.r0PA_Sxw.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/0.r0PA_Sxw.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{1.WcE6FOcF.js → 1.CTfA0FAT.js} +1 -1
  32. package/build/client/_app/immutable/nodes/1.CTfA0FAT.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/1.CTfA0FAT.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{11.kVvSmSNV.js → 11.Dk81DreT.js} +1 -1
  35. package/build/client/_app/immutable/nodes/11.Dk81DreT.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/11.Dk81DreT.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{13.JyGUEsdb.js → 13.B3m9NRrd.js} +1 -1
  38. package/build/client/_app/immutable/nodes/13.B3m9NRrd.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/13.B3m9NRrd.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{14.BbJglRXt.js → 14.9MmuwEpn.js} +1 -1
  41. package/build/client/_app/immutable/nodes/14.9MmuwEpn.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/14.9MmuwEpn.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{16.DRADdurD.js → 16.BMWgVDGJ.js} +1 -1
  44. package/build/client/_app/immutable/nodes/16.BMWgVDGJ.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/16.BMWgVDGJ.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{17.DOsqdwdd.js → 17.Bch7V784.js} +1 -1
  47. package/build/client/_app/immutable/nodes/17.Bch7V784.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/17.Bch7V784.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{19.S2J54AdY.js → 19.DQtOUgti.js} +1 -1
  50. package/build/client/_app/immutable/nodes/19.DQtOUgti.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/19.DQtOUgti.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{2.CKVtP2Ky.js → 2.CyCY9Gpy.js} +1 -1
  53. package/build/client/_app/immutable/nodes/2.CyCY9Gpy.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/2.CyCY9Gpy.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{20.BCasu2g4.js → 20.CT0e7phi.js} +6 -6
  56. package/build/client/_app/immutable/nodes/20.CT0e7phi.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/20.CT0e7phi.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{21.C1aTaoAB.js → 21.C43xF0qL.js} +1 -1
  59. package/build/client/_app/immutable/nodes/21.C43xF0qL.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/21.C43xF0qL.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{23.DP5Be3HR.js → 23.CFT1SOUF.js} +1 -1
  62. package/build/client/_app/immutable/nodes/23.CFT1SOUF.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/23.CFT1SOUF.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/{24.BB6fXxnh.js → 24.BjGP5G3P.js} +1 -1
  65. package/build/client/_app/immutable/nodes/24.BjGP5G3P.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/24.BjGP5G3P.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/{27.DB7PVQXo.js → 27.BS48zWld.js} +1 -1
  68. package/build/client/_app/immutable/nodes/27.BS48zWld.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/27.BS48zWld.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/{28.Cf2R7A3f.js → 28.eQk5ZqHl.js} +1 -1
  71. package/build/client/_app/immutable/nodes/28.eQk5ZqHl.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/28.eQk5ZqHl.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/{29.CyJS5sye.js → 29.-im11HaY.js} +1 -1
  74. package/build/client/_app/immutable/nodes/29.-im11HaY.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/29.-im11HaY.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/{3.DWyky0UV.js → 3.CfPrUs70.js} +1 -1
  77. package/build/client/_app/immutable/nodes/3.CfPrUs70.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/3.CfPrUs70.js.gz +0 -0
  79. package/build/client/_app/immutable/nodes/{30.BFpYKBJh.js → 30.DUz5JI16.js} +1 -1
  80. package/build/client/_app/immutable/nodes/30.DUz5JI16.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/30.DUz5JI16.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/{5.BzQBSRbS.js → 5.D4jMtb1M.js} +1 -1
  83. package/build/client/_app/immutable/nodes/5.D4jMtb1M.js.br +0 -0
  84. package/build/client/_app/immutable/nodes/5.D4jMtb1M.js.gz +0 -0
  85. package/build/client/_app/immutable/nodes/{6.gJ2nhxWc.js → 6.BhoBomwz.js} +1 -1
  86. package/build/client/_app/immutable/nodes/6.BhoBomwz.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/6.BhoBomwz.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/{7.tBTDolnc.js → 7.CaJkp9fo.js} +1 -1
  89. package/build/client/_app/immutable/nodes/7.CaJkp9fo.js.br +0 -0
  90. package/build/client/_app/immutable/nodes/7.CaJkp9fo.js.gz +0 -0
  91. package/build/client/_app/immutable/nodes/{8.BJK9n85D.js → 8.Bt2DWfca.js} +1 -1
  92. package/build/client/_app/immutable/nodes/8.Bt2DWfca.js.br +0 -0
  93. package/build/client/_app/immutable/nodes/8.Bt2DWfca.js.gz +0 -0
  94. package/build/client/_app/immutable/nodes/9.C5-qch-V.js +1 -0
  95. package/build/client/_app/immutable/nodes/9.C5-qch-V.js.br +0 -0
  96. package/build/client/_app/immutable/nodes/9.C5-qch-V.js.gz +0 -0
  97. package/build/client/_app/version.json +1 -1
  98. package/build/client/_app/version.json.br +0 -0
  99. package/build/client/_app/version.json.gz +0 -0
  100. package/build/server/chunks/{0-BRU03dEw.js → 0-BXYXs3Xm.js} +3 -3
  101. package/build/server/chunks/{0-BRU03dEw.js.map → 0-BXYXs3Xm.js.map} +1 -1
  102. package/build/server/chunks/{1-m_oCIIXD.js → 1-V8dFtmbb.js} +2 -2
  103. package/build/server/chunks/{1-m_oCIIXD.js.map → 1-V8dFtmbb.js.map} +1 -1
  104. package/build/server/chunks/{11-Dz77N9MO.js → 11-C54ZyrYp.js} +2 -2
  105. package/build/server/chunks/{11-Dz77N9MO.js.map → 11-C54ZyrYp.js.map} +1 -1
  106. package/build/server/chunks/{13-DQGOyx8W.js → 13-DVoUfflf.js} +2 -2
  107. package/build/server/chunks/{13-DQGOyx8W.js.map → 13-DVoUfflf.js.map} +1 -1
  108. package/build/server/chunks/{14-Dl5jyPyO.js → 14-DkBYx89e.js} +2 -2
  109. package/build/server/chunks/{14-Dl5jyPyO.js.map → 14-DkBYx89e.js.map} +1 -1
  110. package/build/server/chunks/{16-5ZcnQNjK.js → 16-cz9yc7Nq.js} +2 -2
  111. package/build/server/chunks/{16-5ZcnQNjK.js.map → 16-cz9yc7Nq.js.map} +1 -1
  112. package/build/server/chunks/{17-C4Zpziyd.js → 17-BLqAW2P3.js} +2 -2
  113. package/build/server/chunks/{17-C4Zpziyd.js.map → 17-BLqAW2P3.js.map} +1 -1
  114. package/build/server/chunks/{19-C8RtlFzY.js → 19-BZm3F7yF.js} +2 -2
  115. package/build/server/chunks/{19-C8RtlFzY.js.map → 19-BZm3F7yF.js.map} +1 -1
  116. package/build/server/chunks/{2-tPIqsVg3.js → 2-CNp1ZQp0.js} +2 -2
  117. package/build/server/chunks/{2-tPIqsVg3.js.map → 2-CNp1ZQp0.js.map} +1 -1
  118. package/build/server/chunks/{20-DLtIYsB6.js → 20-BXy_jr30.js} +4 -4
  119. package/build/server/chunks/{20-DLtIYsB6.js.map → 20-BXy_jr30.js.map} +1 -1
  120. package/build/server/chunks/{21-Bs7WlXoO.js → 21-DSjRU6S2.js} +2 -2
  121. package/build/server/chunks/{21-Bs7WlXoO.js.map → 21-DSjRU6S2.js.map} +1 -1
  122. package/build/server/chunks/{23-dTtOINB8.js → 23-CjL9FJFA.js} +2 -2
  123. package/build/server/chunks/{23-dTtOINB8.js.map → 23-CjL9FJFA.js.map} +1 -1
  124. package/build/server/chunks/{24-DFoVUKXD.js → 24-D9rqHSTE.js} +2 -2
  125. package/build/server/chunks/{24-DFoVUKXD.js.map → 24-D9rqHSTE.js.map} +1 -1
  126. package/build/server/chunks/{27-CpQEotb7.js → 27-nNwc75ro.js} +2 -2
  127. package/build/server/chunks/{27-CpQEotb7.js.map → 27-nNwc75ro.js.map} +1 -1
  128. package/build/server/chunks/{28-B-G5uvxa.js → 28-CvOKckIC.js} +2 -2
  129. package/build/server/chunks/{28-B-G5uvxa.js.map → 28-CvOKckIC.js.map} +1 -1
  130. package/build/server/chunks/{29-BFo4HkLa.js → 29-omUxa3rd.js} +2 -2
  131. package/build/server/chunks/{29-BFo4HkLa.js.map → 29-omUxa3rd.js.map} +1 -1
  132. package/build/server/chunks/{3-BU-Ucrf8.js → 3-D43IIYqW.js} +2 -2
  133. package/build/server/chunks/{3-BU-Ucrf8.js.map → 3-D43IIYqW.js.map} +1 -1
  134. package/build/server/chunks/{30-zdVVQ-al.js → 30-BMQ7Cr8A.js} +2 -2
  135. package/build/server/chunks/{30-zdVVQ-al.js.map → 30-BMQ7Cr8A.js.map} +1 -1
  136. package/build/server/chunks/{5-CsoWfpGS.js → 5-lJnHNLmp.js} +2 -2
  137. package/build/server/chunks/{5-CsoWfpGS.js.map → 5-lJnHNLmp.js.map} +1 -1
  138. package/build/server/chunks/{6-D7wR-syA.js → 6-BydCaB4v.js} +2 -2
  139. package/build/server/chunks/{6-D7wR-syA.js.map → 6-BydCaB4v.js.map} +1 -1
  140. package/build/server/chunks/{7-uEz6AFkY.js → 7-D4q4IBnf.js} +2 -2
  141. package/build/server/chunks/{7-uEz6AFkY.js.map → 7-D4q4IBnf.js.map} +1 -1
  142. package/build/server/chunks/{8-BF-aCqND.js → 8-1AErDsjI.js} +2 -2
  143. package/build/server/chunks/{8-BF-aCqND.js.map → 8-1AErDsjI.js.map} +1 -1
  144. package/build/server/chunks/{9-BSxBuZbd.js → 9-Cr4VDcCh.js} +3 -3
  145. package/build/server/chunks/{9-BSxBuZbd.js.map → 9-Cr4VDcCh.js.map} +1 -1
  146. package/build/server/chunks/{_layout.svelte-Czx3WsTK.js → _layout.svelte-Px4pdCxU.js} +4 -4
  147. package/build/server/chunks/_layout.svelte-Px4pdCxU.js.map +1 -0
  148. package/build/server/chunks/{_page.svelte-CGuEBnqj.js → _page.svelte-BcFniUOO.js} +5 -5
  149. package/build/server/chunks/_page.svelte-BcFniUOO.js.map +1 -0
  150. package/build/server/chunks/{_page.svelte-BO2coOCw.js → _page.svelte-D6lEOLLp.js} +14 -14
  151. package/build/server/chunks/_page.svelte-D6lEOLLp.js.map +1 -0
  152. package/build/server/index.js +1 -1
  153. package/build/server/index.js.map +1 -1
  154. package/build/server/manifest.js +24 -24
  155. package/build/server/manifest.js.map +1 -1
  156. package/package.json +5 -5
  157. package/build/client/_app/immutable/assets/20.DzF5JyuX.css +0 -1
  158. package/build/client/_app/immutable/assets/20.DzF5JyuX.css.br +0 -0
  159. package/build/client/_app/immutable/assets/20.DzF5JyuX.css.gz +0 -0
  160. package/build/client/_app/immutable/chunks/4y4xLOS_.js.br +0 -0
  161. package/build/client/_app/immutable/chunks/4y4xLOS_.js.gz +0 -0
  162. package/build/client/_app/immutable/chunks/BFXFuY-o.js.br +0 -0
  163. package/build/client/_app/immutable/chunks/BFXFuY-o.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/ChSMnQMB.js.br +0 -0
  165. package/build/client/_app/immutable/chunks/ChSMnQMB.js.gz +0 -0
  166. package/build/client/_app/immutable/chunks/D7PHp8xb.js.br +0 -0
  167. package/build/client/_app/immutable/chunks/D7PHp8xb.js.gz +0 -0
  168. package/build/client/_app/immutable/chunks/DHWrMZkd.js.br +0 -0
  169. package/build/client/_app/immutable/chunks/DHWrMZkd.js.gz +0 -0
  170. package/build/client/_app/immutable/chunks/DdaJZmuM.js.br +0 -0
  171. package/build/client/_app/immutable/chunks/DdaJZmuM.js.gz +0 -0
  172. package/build/client/_app/immutable/entry/app.CY1cyDxx.js.br +0 -0
  173. package/build/client/_app/immutable/entry/app.CY1cyDxx.js.gz +0 -0
  174. package/build/client/_app/immutable/entry/start.ByTVZFMZ.js +0 -1
  175. package/build/client/_app/immutable/entry/start.ByTVZFMZ.js.br +0 -2
  176. package/build/client/_app/immutable/entry/start.ByTVZFMZ.js.gz +0 -0
  177. package/build/client/_app/immutable/nodes/0.CQbbSrko.js +0 -1
  178. package/build/client/_app/immutable/nodes/0.CQbbSrko.js.br +0 -0
  179. package/build/client/_app/immutable/nodes/0.CQbbSrko.js.gz +0 -0
  180. package/build/client/_app/immutable/nodes/1.WcE6FOcF.js.br +0 -0
  181. package/build/client/_app/immutable/nodes/1.WcE6FOcF.js.gz +0 -0
  182. package/build/client/_app/immutable/nodes/11.kVvSmSNV.js.br +0 -0
  183. package/build/client/_app/immutable/nodes/11.kVvSmSNV.js.gz +0 -0
  184. package/build/client/_app/immutable/nodes/13.JyGUEsdb.js.br +0 -0
  185. package/build/client/_app/immutable/nodes/13.JyGUEsdb.js.gz +0 -0
  186. package/build/client/_app/immutable/nodes/14.BbJglRXt.js.br +0 -0
  187. package/build/client/_app/immutable/nodes/14.BbJglRXt.js.gz +0 -0
  188. package/build/client/_app/immutable/nodes/16.DRADdurD.js.br +0 -0
  189. package/build/client/_app/immutable/nodes/16.DRADdurD.js.gz +0 -0
  190. package/build/client/_app/immutable/nodes/17.DOsqdwdd.js.br +0 -0
  191. package/build/client/_app/immutable/nodes/17.DOsqdwdd.js.gz +0 -0
  192. package/build/client/_app/immutable/nodes/19.S2J54AdY.js.br +0 -0
  193. package/build/client/_app/immutable/nodes/19.S2J54AdY.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js.br +0 -0
  195. package/build/client/_app/immutable/nodes/2.CKVtP2Ky.js.gz +0 -0
  196. package/build/client/_app/immutable/nodes/20.BCasu2g4.js.br +0 -0
  197. package/build/client/_app/immutable/nodes/20.BCasu2g4.js.gz +0 -0
  198. package/build/client/_app/immutable/nodes/21.C1aTaoAB.js.br +0 -0
  199. package/build/client/_app/immutable/nodes/21.C1aTaoAB.js.gz +0 -0
  200. package/build/client/_app/immutable/nodes/23.DP5Be3HR.js.br +0 -0
  201. package/build/client/_app/immutable/nodes/23.DP5Be3HR.js.gz +0 -0
  202. package/build/client/_app/immutable/nodes/24.BB6fXxnh.js.br +0 -0
  203. package/build/client/_app/immutable/nodes/24.BB6fXxnh.js.gz +0 -0
  204. package/build/client/_app/immutable/nodes/27.DB7PVQXo.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/27.DB7PVQXo.js.gz +0 -0
  206. package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js.br +0 -0
  207. package/build/client/_app/immutable/nodes/28.Cf2R7A3f.js.gz +0 -0
  208. package/build/client/_app/immutable/nodes/29.CyJS5sye.js.br +0 -0
  209. package/build/client/_app/immutable/nodes/29.CyJS5sye.js.gz +0 -0
  210. package/build/client/_app/immutable/nodes/3.DWyky0UV.js.br +0 -0
  211. package/build/client/_app/immutable/nodes/3.DWyky0UV.js.gz +0 -0
  212. package/build/client/_app/immutable/nodes/30.BFpYKBJh.js.br +0 -0
  213. package/build/client/_app/immutable/nodes/30.BFpYKBJh.js.gz +0 -0
  214. package/build/client/_app/immutable/nodes/5.BzQBSRbS.js.br +0 -0
  215. package/build/client/_app/immutable/nodes/5.BzQBSRbS.js.gz +0 -0
  216. package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js.br +0 -0
  217. package/build/client/_app/immutable/nodes/6.gJ2nhxWc.js.gz +0 -0
  218. package/build/client/_app/immutable/nodes/7.tBTDolnc.js.br +0 -0
  219. package/build/client/_app/immutable/nodes/7.tBTDolnc.js.gz +0 -0
  220. package/build/client/_app/immutable/nodes/8.BJK9n85D.js.br +0 -0
  221. package/build/client/_app/immutable/nodes/8.BJK9n85D.js.gz +0 -0
  222. package/build/client/_app/immutable/nodes/9.un0j6nRP.js +0 -1
  223. package/build/client/_app/immutable/nodes/9.un0j6nRP.js.br +0 -0
  224. package/build/client/_app/immutable/nodes/9.un0j6nRP.js.gz +0 -0
  225. package/build/server/chunks/_layout.svelte-Czx3WsTK.js.map +0 -1
  226. package/build/server/chunks/_page.svelte-BO2coOCw.js.map +0 -1
  227. package/build/server/chunks/_page.svelte-CGuEBnqj.js.map +0 -1
@@ -1,3 +1,3 @@
1
- import"../chunks/DsnmJJEf.js";import{p as ne,a as le,d as ve,$ as ue,c as g,s as o,g as y,r as _,u as D,f as E,b,t as k}from"../chunks/ooPBmYPj.js";import{s as M}from"../chunks/BMGykAfL.js";import{a as t,f as u,c as N,t as P}from"../chunks/_OLpdTiI.js";import{i as x}from"../chunks/C8ko2SLk.js";import{e as ce,a as me,r as j,s as Y}from"../chunks/C1aQuqo_.js";import{c as T}from"../chunks/CcYNc8-G.js";import{h as fe}from"../chunks/BM4_iXSA.js";import{p as F}from"../chunks/D7PHp8xb.js";import{C as J}from"../chunks/D99uXqZb.js";import{A as K,a as Q}from"../chunks/BW4xleRz.js";import{B as C}from"../chunks/azBeeLR0.js";import{L as I}from"../chunks/B8uG8z2c.js";import{I as S}from"../chunks/jFKgkeON.js";var pe=u("<!> <!>",1),he=u('<a class="block"><!></a>'),_e=u('<div class="space-y-2"></div>'),xe=u('<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>'),ge=u('<input type="hidden" name="redirectTo"/>'),ye=u('<form method="POST" action="/auth/email/start" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <!></form>'),be=u('<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>'),Pe=u('<input type="hidden" name="redirectTo"/>'),we=u('<form method="POST" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <!></form>'),$e=u(`<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,
1
+ import"../chunks/DsnmJJEf.js";import{p as ne,a as le,d as ve,$ as ue,c as g,s as o,g as y,r as _,u as D,f as E,b,t as k}from"../chunks/ooPBmYPj.js";import{s as M}from"../chunks/BMGykAfL.js";import{a as t,f as u,c as N,t as P}from"../chunks/_OLpdTiI.js";import{i as x}from"../chunks/C8ko2SLk.js";import{e as ce,a as me,r as j,s as Y}from"../chunks/C1aQuqo_.js";import{c as T}from"../chunks/CcYNc8-G.js";import{h as fe}from"../chunks/BM4_iXSA.js";import{p as F}from"../chunks/smW5maEe.js";import{C as J}from"../chunks/D99uXqZb.js";import{A as K,a as Q}from"../chunks/BW4xleRz.js";import{B as C}from"../chunks/azBeeLR0.js";import{L as I}from"../chunks/B8uG8z2c.js";import{I as S}from"../chunks/jFKgkeON.js";var pe=u("<!> <!>",1),he=u('<a class="block"><!></a>'),_e=u('<div class="space-y-2"></div>'),xe=u('<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>'),ge=u('<input type="hidden" name="redirectTo"/>'),ye=u('<form method="POST" action="/auth/email/start" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <!></form>'),be=u('<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>'),Pe=u('<input type="hidden" name="redirectTo"/>'),we=u('<form method="POST" class="space-y-4"><!> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <!></form>'),$e=u(`<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,
2
2
  not on this page. If you're seeing this page, your proxy didn't forward the identity
3
3
  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>`),ke=u("<!> <!>",1),Ae=u('<div class="bg-background flex min-h-screen items-center justify-center px-4 py-12 sm:px-6 lg:px-8"><div class="w-full max-w-sm space-y-6"><div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight">Sign in</h2> <p class="text-muted-foreground text-sm">Sign in to your account</p></div> <!> <!> <!> <!> <!> <!> <!></div></div>');function De(V,s){ne(s,!0);const $=D(()=>F.url.searchParams.get("redirectTo")??"");function W(e){return`/auth/supabase/start?${`provider=${encodeURIComponent(e)}${y($)?`&redirectTo=${encodeURIComponent(y($))}`:""}`}`}function X(e){return{google:"Google",github:"GitHub",azure:"Microsoft",gitlab:"GitLab"}[e]??e}const q=D(()=>!s.data.hasPasswordAuth&&!s.data.hasEmailLink&&s.data.oauthProviders.length===0);var L=Ae();fe("1x05zx6",e=>{ve(()=>{ue.title=`Login - ${F.data.branding.name??""}`})});var H=g(L),R=o(g(H),2);{var Z=e=>{var a=N(),d=E(a);T(d,()=>Q,(m,i)=>{i(m,{variant:"destructive",children:(c,p)=>{var v=pe(),r=E(v);J(r,{});var n=o(r,2);T(n,()=>K,(h,l)=>{l(h,{children:(f,w)=>{b();var A=P();k(()=>M(A,s.form.error)),t(f,A)},$$slots:{default:!0}})}),t(c,v)},$$slots:{default:!0}})}),t(e,a)};x(R,e=>{s.form?.error&&e(Z)})}var U=o(R,2);{var ee=e=>{var a=_e();ce(a,20,()=>s.data.oauthProviders,d=>d,(d,m)=>{var i=he(),c=g(i);C(c,{type:"button",variant:"outline",class:"w-full",children:(p,v)=>{b();var r=P();k(n=>M(r,`Continue with ${n??""}`),[()=>X(m)]),t(p,r)},$$slots:{default:!0}}),_(i),k(p=>me(i,"href",p),[()=>W(m)]),t(d,i)}),_(a),t(e,a)};x(U,e=>{s.data.oauthProviders.length>0&&e(ee)})}var G=o(U,2);{var ae=e=>{var a=xe();t(e,a)};x(G,e=>{s.data.hasEmailLink&&s.data.oauthProviders.length>0&&e(ae)})}var O=o(G,2);{var te=e=>{var a=ye(),d=g(a);{var m=r=>{var n=ge();j(n),k(()=>Y(n,y($))),t(r,n)};x(d,r=>{y($)&&r(m)})}var i=o(d,2),c=g(i);I(c,{for:"email-link-email",children:(r,n)=>{b();var h=P("Email");t(r,h)},$$slots:{default:!0}});var p=o(c,2);S(p,{id:"email-link-email",name:"email",type:"email",required:!0,placeholder:"you@example.com"}),_(i);var v=o(i,2);C(v,{type:"submit",variant:"outline",class:"w-full",children:(r,n)=>{b();var h=P("Email me a sign-in link");t(r,h)},$$slots:{default:!0}}),_(a),t(e,a)};x(O,e=>{s.data.hasEmailLink&&e(te)})}var z=o(O,2);{var re=e=>{var a=be();t(e,a)};x(z,e=>{s.data.hasPasswordAuth&&(s.data.hasEmailLink||s.data.oauthProviders.length>0)&&e(re)})}var B=o(z,2);{var oe=e=>{var a=we(),d=g(a);{var m=l=>{var f=Pe();j(f),k(()=>Y(f,y($))),t(l,f)};x(d,l=>{y($)&&l(m)})}var i=o(d,2),c=g(i);I(c,{for:"email",children:(l,f)=>{b();var w=P("Email");t(l,w)},$$slots:{default:!0}});var p=o(c,2);S(p,{id:"email",name:"email",type:"email",required:!0,placeholder:"admin@example.com"}),_(i);var v=o(i,2),r=g(v);I(r,{for:"password",children:(l,f)=>{b();var w=P("Password");t(l,w)},$$slots:{default:!0}});var n=o(r,2);S(n,{id:"password",name:"password",type:"password",required:!0,placeholder:"Password"}),_(v);var h=o(v,2);C(h,{type:"submit",class:"w-full",children:(l,f)=>{b();var w=P("Sign in with password");t(l,w)},$$slots:{default:!0}}),_(a),t(e,a)};x(B,e=>{s.data.hasPasswordAuth&&e(oe)})}var se=o(B,2);{var ie=e=>{var a=$e();t(e,a)},de=e=>{var a=N(),d=E(a);T(d,()=>Q,(m,i)=>{i(m,{variant:"destructive",children:(c,p)=>{var v=ke(),r=E(v);J(r,{});var n=o(r,2);T(n,()=>K,(h,l)=>{l(h,{children:(f,w)=>{b();var A=P("No login methods are configured. Set up an auth provider before signing in.");t(f,A)},$$slots:{default:!0}})}),t(c,v)},$$slots:{default:!0}})}),t(e,a)};x(se,e=>{y(q)&&s.data.hasProxyAuth?e(ie):y(q)&&e(de,1)})}_(H),_(L),t(V,L),le()}export{De as component};
@@ -1,4 +1,4 @@
1
- import"../chunks/DsnmJJEf.js";import{e as h,F as Ot,g as e,u as L,j as n,p as at,f as p,a as ot,c as s,n as Ur,r as o,ay as Er,s as a,t as W,b as u,h as it,k as xt,bf as Or,i as Fr,$ as Lr}from"../chunks/ooPBmYPj.js";import{p as We,r as Ut,s as Gt,c as _,b as Kt,d as Rr,a as Mr}from"../chunks/CcYNc8-G.js";import{e as br,a as nt,d as bt,s as U}from"../chunks/BMGykAfL.js";import{p as zr,c as ze,a as r,f as i,t as A}from"../chunks/_OLpdTiI.js";import{i as J}from"../chunks/C8ko2SLk.js";import{k as Vr}from"../chunks/CZ1oTCKP.js";import{f as Gr,a as wt,c as ft,e as pt,i as $r,g as yr,b as Yt,r as kt,j as or}from"../chunks/C1aQuqo_.js";import{h as Br}from"../chunks/BM4_iXSA.js";import{i as ct,g as _r}from"../chunks/BFXFuY-o.js";import{p as qr}from"../chunks/DHWrMZkd.js";import{F as sr}from"../chunks/Br5bpmJC.js";import{F as wr}from"../chunks/pRg-f8xU.js";import{D as Qt,a as Mt,b as zt,c as Vt,R as Xt,T as ir}from"../chunks/CpGv0MSX.js";import{L as He}from"../chunks/B8uG8z2c.js";import{I as ut}from"../chunks/jFKgkeON.js";import{c as Zt,d as Pr,T as kr,a as Lt,b as Rt}from"../chunks/1s2jTHrf.js";import{B as De}from"../chunks/azBeeLR0.js";import{U as ur,D as Ht,P as lr,F as Jr}from"../chunks/C26nmevH.js";import{B as jr}from"../chunks/B8zY50Bc.js";import{X as $t}from"../chunks/CEnIp_6Y.js";import{t as Se}from"../chunks/Ce2MupFq.js";import{b as fr,c as nr}from"../chunks/DEBBEmC0.js";import{P as Wt}from"../chunks/D6MI_dhi.js";import{S as Cr}from"../chunks/Doks8ISn.js";import{U as dr}from"../chunks/CfP1DoGT.js";import{U as hr}from"../chunks/BxCHY0iG.js";import{T as er}from"../chunks/4tskcAVN.js";import{E as pr}from"../chunks/AEyooZaf.js";import{U as Hr}from"../chunks/CAMhfNhW.js";import{s as Wr,a as Kr,f as Sr,m as Yr,h as Qr,S as Xr,V as Zr,D as ea}from"../chunks/Dl4WTuMB.js";import{I as tr,c as ta}from"../chunks/Bnpwcepm.js";import{s as cr}from"../chunks/BNScKugQ.js";import{a as ra,p as aa,c as oa,b as na,d as Jt,m as sa}from"../chunks/CRRzXoPz.js";import{R as jt,A as Ct,a as St,b as Dt,c as It,d as Nt,e as Tt,f as At}from"../chunks/Ib-7xmHT.js";import{C as ia}from"../chunks/DNsLImlA.js";import{C as la}from"../chunks/Zf7VV5ZB.js";import{L as da}from"../chunks/DZFqETAQ.js";import{C as xr}from"../chunks/B1aRL9Hz.js";import{A as ca}from"../chunks/D40b34QZ.js";import{S as va}from"../chunks/BZmrLQwT.js";import{S as ua}from"../chunks/E3yOQTT0.js";const fa=Symbol();class pa extends URLSearchParams{#e=h(0);#a=ma();#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 m of[...super.keys()])super.delete(m);for(const[m,C]of t)super.append(m,C);Ot(this.#e),this.#t=!1}}append(t,m){super.append(t,m),this.#r(),Ot(this.#e)}delete(t,m){var C=super.has(t,m);super.delete(t,m),C&&(this.#r(),Ot(this.#e))}get(t){return e(this.#e),super.get(t)}getAll(t){return e(this.#e),super.getAll(t)}has(t,m){return e(this.#e),super.has(t,m)}keys(){return e(this.#e),super.keys()}set(t,m){var C=super.getAll(t).join("");super.set(t,m),C!==super.getAll(t).join("")&&(this.#r(),Ot(this.#e))}sort(){super.sort(),this.#r(),Ot(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 ga=null;function ma(){return ga}const _a=oa({component:"separator",parts:["root"]});class gr{static create(t){return new gr(t)}opts;attachment;constructor(t){this.opts=t,this.attachment=ra(t.ref)}#e=L(()=>({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){n(this.#e,t)}}var ha=i("<div><!></div>");function xa(ke,t){const m=zr();at(t,!0);let C=We(t,"id",19,()=>na(m)),O=We(t,"ref",15,null),F=We(t,"decorative",3,!1),B=We(t,"orientation",3,"horizontal"),x=Ut(t,["$$slots","$$events","$$legacy","id","ref","child","children","decorative","orientation"]);const w=gr.create({ref:Jt(()=>O(),le=>O(le)),id:Jt(()=>C()),decorative:Jt(()=>F()),orientation:Jt(()=>B())}),q=L(()=>sa(x,w.props));var ne=ze(),z=p(ne);{var _e=le=>{var de=ze(),he=p(de);cr(he,()=>t.child,()=>({props:e(q)})),r(le,de)},$e=le=>{var de=ha();Gr(de,()=>({...e(q)}));var he=s(de);cr(he,()=>t.children??Ur),o(de),r(le,de)};J(z,le=>{t.child?le(_e):le($e,-1)})}r(ke,ne),ot()}function ba(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["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"}]];tr(ke,Gt({name:"cloud-upload"},()=>m,{get iconNode(){return C}}))}function $a(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];tr(ke,Gt({name:"ellipsis"},()=>m,{get iconNode(){return C}}))}function ya(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["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"}]];tr(ke,Gt({name:"image"},()=>m,{get iconNode(){return C}}))}function wa(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["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"}]];tr(ke,Gt({name:"share-2"},()=>m,{get iconNode(){return C}}))}function vr(ke,t){at(t,!0);let m=We(t,"ref",15,null),C=We(t,"data-slot",3,"separator"),O=Ut(t,["$$slots","$$events","$$legacy","ref","class","data-slot"]);var F=ze(),B=p(F);{let x=L(()=>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));_(B,()=>xa,(w,q)=>{q(w,Gt({get"data-slot"(){return C()},get class(){return e(x)}},()=>O,{get ref(){return m()},set ref(ne){m(ne)}}))})}r(ke,F),ot()}var Pa=i('<div role="button" tabindex="-1" class="inset-0 bg-black/30 fixed z-50"></div> <div><!></div>',1);function Dr(ke,t){at(t,!0);let m=We(t,"width",3,"w-125"),C=We(t,"ariaLabel",3,"Close drawer");function O(q){q.key==="Escape"&&t.onClose()}var F=Pa();br("keydown",Er,O);var B=p(F),x=a(B,2),w=s(x);cr(w,()=>t.children),o(x),W(()=>{wt(B,"aria-label",C()),ft(x,1,`animate-in slide-in-from-right-4 top-0 right-0 fixed z-50 flex h-full border-border bg-background ${m()??""} flex-col overflow-y-auto border-l duration-150`)}),nt("click",B,function(...q){t.onClose?.apply(this,q)}),nt("keydown",B,O),r(ke,F),ot()}bt(["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>'),Ca=i('<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border"><!> <!></div> <!></div>');function Ir(ke,t){at(t,!0);let m=We(t,"mode",3,"url"),C=We(t,"value",3,""),O=We(t,"disabled",3,!1),F=We(t,"isUploading",3,!1),B=We(t,"hasFile",3,!1),x=We(t,"inputRef",15);var w=Ca(),q=s(w),ne=s(q);{let de=L(()=>m()!=="upload"?"default":"ghost");De(ne,{size:"sm",get variant(){return e(de)},onclick:()=>t.onModeChange?.("url"),class:"h-7 text-xs flex-1",children:(he,I)=>{u();var R=A("URL");r(he,R)},$$slots:{default:!0}})}var z=a(ne,2);{let de=L(()=>m()==="upload"?"default":"ghost");De(z,{size:"sm",get variant(){return e(de)},onclick:()=>t.onModeChange?.("upload"),class:"h-7 text-xs flex-1",children:(he,I)=>{u();var R=A("Upload File");r(he,R)},$$slots:{default:!0}})}o(q);var _e=a(q,2);{var $e=de=>{var he=ja(),I=s(he);Kt(I,pe=>x(pe),()=>x());var R=a(I,2);{let pe=L(()=>O()||!B()||F());De(R,{size:"sm",get disabled(){return e(pe)},get onclick(){return t.onUpload},class:"shrink-0",children:(T,Y)=>{var we=ka(),ye=p(we);ur(ye,{class:"mr-2 h-4 w-4"});var Ie=a(ye,2),je=s(Ie,!0);o(Ie),W(()=>U(je,F()?"Uploading…":"Upload")),r(T,we)},$$slots:{default:!0}})}o(he),W(()=>I.disabled=O()),nt("change",I,function(...pe){t.onFileSelected?.apply(this,pe)}),r(de,he)},le=de=>{ut(de,{type:"text",get value(){return C()},get disabled(){return O()},oninput:he=>t.onUrlChange?.(he.target.value),placeholder:"https://..."})};J(_e,de=>{m()==="upload"?de($e):de(le,-1)})}o(w),r(ke,w),ot()}bt(["change"]);const Ft=1e3;function Nr(ke,t){at(t,!0);let m=We(t,"placeholder",3,"Select a project");const C=L(()=>t.projects.map(O=>({id:O.id,label:O.name})));sr(ke,{get items(){return e(C)},get value(){return t.value},get onChange(){return t.onChange},get id(){return t.id},get placeholder(){return m()},get triggerIcon(){return wr},searchPlaceholder:"Filter projects"}),ot()}var Sa=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>'),Oa=i('<div class="border-warning/40 bg-warning/5 rounded-md border p-3"><p class="text-warning text-xs font-medium">Validation warning</p> <p class="text-warning/80 mt-0.5 text-xs"> </p> <p class="text-warning/60 mt-1 text-xs">You can still upload the file.</p></div>'),Fa=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(ke,t){at(t,!0);let m=We(t,"open",3,!1),C=We(t,"isAdding",3,!1),O=We(t,"projects",19,()=>[]),F=We(t,"computeServers",19,()=>[]),B=We(t,"defaultComputeServerId",3,null),x=We(t,"showProjectDropdown",3,!1),w=h(""),q=h(""),ne=h(""),z=h(it([])),_e=h(""),$e=h("url"),le=h(""),de=h("");xt(()=>{t.defaultProjectId&&n(le,t.defaultProjectId,!0)}),xt(()=>{e(le)&&e(he)?.files?.length&&!e(Y)&&!e(pe)&&ye()});let he=h(void 0),I=h(void 0),R=h(!1),pe=h(!1),T=h(null),Y=h(null);function we(ce){return ce.name.replace(/\.(gh|ghx)$/i,"").replace(/[_-]/g," ").replace(/\b\w/g,ge=>ge.toUpperCase())}async function ye(){const ce=e(he)?.files?.[0];if(n(T,null),n(Y,null),n(q,""),n(z,[],!0),!ce){n(w,"");return}if(n(w,we(ce),!0),!!e(le)){n(pe,!0);try{const ge=new FormData;ge.append("files",ce);const g=await fetch(`/api/compute/schema?projectId=${encodeURIComponent(e(le))}`,{method:"POST",body:ge});if(g.status===404)return;const b=await g.json();if(!g.ok){n(T,b?.message??"Validation failed",!0);return}const d=b?.[0];if(!d)return;n(Y,d,!0),d.name&&n(w,d.name,!0),d.description&&n(q,d.description,!0),d.tags?.length&&n(z,d.tags,!0)}catch{}finally{n(pe,!1)}}}async function Ie(){if(!e(w).trim()){Se.error("Display name is required");return}if(!e(he)?.files||e(he).files.length===0){Se.error("A Grasshopper file is required");return}if(x()&&!e(le)){Se.error("Please pick a project");return}const ce=new FormData;ce.append("displayName",e(w).trim()),ce.append("description",e(q)),ce.append("category",e(ne)),ce.append("tags",e(z).join(",")),e($e)==="upload"&&e(I)?.files?.[0]?ce.append("image",e(I).files[0]):e($e)==="url"&&e(_e).trim()&&ce.append("coverImage",e(_e).trim()),ce.append("file",e(he).files[0]),e(le)&&ce.append("projectId",e(le)),e(de)&&ce.append("computeServerId",e(de));try{await t.onSubmit?.(ce)}catch{}}function je(){n(w,""),n(q,""),n(ne,""),n(z,[],!0),n(_e,""),n($e,"url"),n(le,t.defaultProjectId??"",!0),n(de,""),n(pe,!1),n(T,null),n(Y,null),e(he)&&(e(he).value=""),e(I)&&(e(I).value=""),n(R,!1)}function Ae(ce){ce||je(),t.onOpenChange?.(ce)}xt(()=>{m()||je()});var Ne=ze(),Z=p(Ne);_(Z,()=>Xt,(ce,ge)=>{ge(ce,{get open(){return m()},onOpenChange:Ae,children:(g,b)=>{var d=ze(),k=p(d);_(k,()=>Qt,($,c)=>{c($,{class:"max-w-xl",children:(f,P)=>{var N=Va(),ee=p(N);_(ee,()=>Mt,(oe,Ce)=>{Ce(oe,{children:(Te,Ye)=>{var rt=Sa(),lt=p(rt);_(lt,()=>zt,(Oe,Ge)=>{Ge(Oe,{children:(Re,Fe)=>{u();var qe=A("Add New Definition");r(Re,qe)},$$slots:{default:!0}})});var st=a(lt,2);_(st,()=>Vt,(Oe,Ge)=>{Ge(Oe,{children:(Re,Fe)=>{u();var qe=A("Upload a Grasshopper file and fill in the metadata.");r(Re,qe)},$$slots:{default:!0}})}),r(Te,rt)},$$slots:{default:!0}})});var y=a(ee,2),E=s(y);{var Q=oe=>{var Ce=Aa(),Te=s(Ce);{var Ye=Oe=>{var Ge=Da(),Re=s(Ge);He(Re,{for:"new-project",children:(qe,tt)=>{u();var Je=A("Project");r(qe,Je)},$$slots:{default:!0}});var Fe=a(Re,2);Nr(Fe,{id:"new-project",get projects(){return O()},get value(){return e(le)},onChange:qe=>n(le,qe,!0)}),o(Ge),r(Oe,Ge)},rt=Oe=>{const Ge=L(()=>O().find(dt=>dt.id===t.defaultProjectId));var Re=Ia(),Fe=s(Re);He(Fe,{children:(dt,Bt)=>{u();var Pt=A("Project");r(dt,Pt)},$$slots:{default:!0}});var qe=a(Fe,2),tt=s(qe),Je=s(tt,!0);o(tt),o(qe),o(Re),W(()=>U(Je,e(Ge)?.name??"Unknown")),r(Oe,Re)};J(Te,Oe=>{x()?Oe(Ye):t.defaultProjectId&&Oe(rt,1)})}var lt=a(Te,2);{var st=Oe=>{var Ge=Ta(),Re=s(Ge);He(Re,{for:"new-server",children:(tt,Je)=>{u();var dt=A("Compute Server");r(tt,dt)},$$slots:{default:!0}});var Fe=a(Re,2);pt(Fe,21,F,tt=>tt.id,(tt,Je)=>{var dt=Na(),Bt=s(dt);o(dt);var Pt={};W(()=>{U(Bt,`${e(Je).label??""}${e(Je).id===B()?" (Default)":""}`),Pt!==(Pt=e(Je).id)&&(dt.value=(dt.__value=e(Je).id)??"")}),r(tt,dt)}),o(Fe);var qe;$r(Fe),o(Ge),W(()=>{qe!==(qe=e(de)||(B()??""))&&(Fe.value=(Fe.__value=e(de)||(B()??""))??"",yr(Fe,e(de)||(B()??"")))}),nt("change",Fe,tt=>{const Je=tt.currentTarget.value;n(de,Je===B()?"":Je,!0)}),r(Oe,Ge)};J(lt,Oe=>{F().length>0&&Oe(st)})}o(Ce),W(()=>ft(Ce,1,`grid gap-3 ${x()&&F().length>0?"sm:grid-cols-2":""}`)),r(oe,Ce)};J(E,oe=>{(x()||F().length>0)&&oe(Q)})}var ve=a(E,2),se=s(ve);He(se,{for:"new-file",children:(oe,Ce)=>{u();var Te=Ua();u(),r(oe,Te)},$$slots:{default:!0}});var te=a(se,2);Kt(te,oe=>n(he,oe),()=>e(he));var xe=a(te,2);{var ie=oe=>{var Ce=Ea();r(oe,Ce)},V=oe=>{var Ce=Oa(),Te=a(s(Ce),2),Ye=s(Te,!0);o(Te),u(2),o(Ce),W(()=>U(Ye,e(T))),r(oe,Ce)},G=oe=>{var Ce=Fa(),Te=s(Ce),Ye=a(s(Te),2),rt=s(Ye);o(Ye),o(Te),o(Ce),W(()=>U(rt,`${e(Y).inputs.length??""} input${e(Y).inputs.length===1?"":"s"},
1
+ import"../chunks/DsnmJJEf.js";import{e as h,F as Ot,g as e,u as L,j as n,p as at,f as p,a as ot,c as s,n as Ur,r as o,ay as Er,s as a,t as W,b as u,h as it,k as xt,bf as Or,i as Fr,$ as Lr}from"../chunks/ooPBmYPj.js";import{p as We,r as Ut,s as Gt,c as _,b as Kt,d as Rr,a as Mr}from"../chunks/CcYNc8-G.js";import{e as br,a as nt,d as bt,s as U}from"../chunks/BMGykAfL.js";import{p as zr,c as ze,a as r,f as i,t as A}from"../chunks/_OLpdTiI.js";import{i as J}from"../chunks/C8ko2SLk.js";import{k as Vr}from"../chunks/CZ1oTCKP.js";import{f as Gr,a as wt,c as ft,e as pt,i as $r,g as yr,b as Yt,r as kt,j as or}from"../chunks/C1aQuqo_.js";import{h as Br}from"../chunks/BM4_iXSA.js";import{i as ct,g as _r}from"../chunks/4PBDTLFF.js";import{p as qr}from"../chunks/BSyJ0ZuA.js";import{F as sr}from"../chunks/Br5bpmJC.js";import{F as wr}from"../chunks/pRg-f8xU.js";import{D as Qt,a as Mt,b as zt,c as Vt,R as Xt,T as ir}from"../chunks/CpGv0MSX.js";import{L as He}from"../chunks/B8uG8z2c.js";import{I as ut}from"../chunks/jFKgkeON.js";import{c as Zt,d as Pr,T as kr,a as Lt,b as Rt}from"../chunks/1s2jTHrf.js";import{B as De}from"../chunks/azBeeLR0.js";import{U as ur,D as Ht,P as lr,F as Jr}from"../chunks/C26nmevH.js";import{B as jr}from"../chunks/B8zY50Bc.js";import{X as $t}from"../chunks/CEnIp_6Y.js";import{t as Se}from"../chunks/Ce2MupFq.js";import{b as fr,c as nr}from"../chunks/DEBBEmC0.js";import{P as Wt}from"../chunks/D6MI_dhi.js";import{S as Cr}from"../chunks/Doks8ISn.js";import{U as dr}from"../chunks/CfP1DoGT.js";import{U as hr}from"../chunks/BxCHY0iG.js";import{T as er}from"../chunks/4tskcAVN.js";import{E as pr}from"../chunks/AEyooZaf.js";import{U as Hr}from"../chunks/CAMhfNhW.js";import{s as Wr,a as Kr,f as Sr,m as Yr,h as Qr,S as Xr,V as Zr,D as ea}from"../chunks/Dl4WTuMB.js";import{I as tr,c as ta}from"../chunks/Bnpwcepm.js";import{s as cr}from"../chunks/BNScKugQ.js";import{a as ra,p as aa,c as oa,b as na,d as Jt,m as sa}from"../chunks/CRRzXoPz.js";import{R as jt,A as Ct,a as St,b as Dt,c as It,d as Nt,e as Tt,f as At}from"../chunks/Ib-7xmHT.js";import{C as ia}from"../chunks/DNsLImlA.js";import{C as la}from"../chunks/Zf7VV5ZB.js";import{L as da}from"../chunks/DZFqETAQ.js";import{C as xr}from"../chunks/B1aRL9Hz.js";import{A as ca}from"../chunks/D40b34QZ.js";import{S as va}from"../chunks/BZmrLQwT.js";import{S as ua}from"../chunks/E3yOQTT0.js";const fa=Symbol();class pa extends URLSearchParams{#e=h(0);#a=ma();#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 m of[...super.keys()])super.delete(m);for(const[m,C]of t)super.append(m,C);Ot(this.#e),this.#t=!1}}append(t,m){super.append(t,m),this.#r(),Ot(this.#e)}delete(t,m){var C=super.has(t,m);super.delete(t,m),C&&(this.#r(),Ot(this.#e))}get(t){return e(this.#e),super.get(t)}getAll(t){return e(this.#e),super.getAll(t)}has(t,m){return e(this.#e),super.has(t,m)}keys(){return e(this.#e),super.keys()}set(t,m){var C=super.getAll(t).join("");super.set(t,m),C!==super.getAll(t).join("")&&(this.#r(),Ot(this.#e))}sort(){super.sort(),this.#r(),Ot(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 ga=null;function ma(){return ga}const _a=oa({component:"separator",parts:["root"]});class gr{static create(t){return new gr(t)}opts;attachment;constructor(t){this.opts=t,this.attachment=ra(t.ref)}#e=L(()=>({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){n(this.#e,t)}}var ha=i("<div><!></div>");function xa(ke,t){const m=zr();at(t,!0);let C=We(t,"id",19,()=>na(m)),O=We(t,"ref",15,null),F=We(t,"decorative",3,!1),B=We(t,"orientation",3,"horizontal"),x=Ut(t,["$$slots","$$events","$$legacy","id","ref","child","children","decorative","orientation"]);const w=gr.create({ref:Jt(()=>O(),le=>O(le)),id:Jt(()=>C()),decorative:Jt(()=>F()),orientation:Jt(()=>B())}),q=L(()=>sa(x,w.props));var ne=ze(),z=p(ne);{var _e=le=>{var de=ze(),he=p(de);cr(he,()=>t.child,()=>({props:e(q)})),r(le,de)},$e=le=>{var de=ha();Gr(de,()=>({...e(q)}));var he=s(de);cr(he,()=>t.children??Ur),o(de),r(le,de)};J(z,le=>{t.child?le(_e):le($e,-1)})}r(ke,ne),ot()}function ba(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["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"}]];tr(ke,Gt({name:"cloud-upload"},()=>m,{get iconNode(){return C}}))}function $a(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["circle",{cx:"12",cy:"12",r:"1"}],["circle",{cx:"19",cy:"12",r:"1"}],["circle",{cx:"5",cy:"12",r:"1"}]];tr(ke,Gt({name:"ellipsis"},()=>m,{get iconNode(){return C}}))}function ya(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["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"}]];tr(ke,Gt({name:"image"},()=>m,{get iconNode(){return C}}))}function wa(ke,t){let m=Ut(t,["$$slots","$$events","$$legacy"]);const C=[["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"}]];tr(ke,Gt({name:"share-2"},()=>m,{get iconNode(){return C}}))}function vr(ke,t){at(t,!0);let m=We(t,"ref",15,null),C=We(t,"data-slot",3,"separator"),O=Ut(t,["$$slots","$$events","$$legacy","ref","class","data-slot"]);var F=ze(),B=p(F);{let x=L(()=>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));_(B,()=>xa,(w,q)=>{q(w,Gt({get"data-slot"(){return C()},get class(){return e(x)}},()=>O,{get ref(){return m()},set ref(ne){m(ne)}}))})}r(ke,F),ot()}var Pa=i('<div role="button" tabindex="-1" class="inset-0 bg-black/30 fixed z-50"></div> <div><!></div>',1);function Dr(ke,t){at(t,!0);let m=We(t,"width",3,"w-125"),C=We(t,"ariaLabel",3,"Close drawer");function O(q){q.key==="Escape"&&t.onClose()}var F=Pa();br("keydown",Er,O);var B=p(F),x=a(B,2),w=s(x);cr(w,()=>t.children),o(x),W(()=>{wt(B,"aria-label",C()),ft(x,1,`animate-in slide-in-from-right-4 top-0 right-0 fixed z-50 flex h-full border-border bg-background ${m()??""} flex-col overflow-y-auto border-l duration-150`)}),nt("click",B,function(...q){t.onClose?.apply(this,q)}),nt("keydown",B,O),r(ke,F),ot()}bt(["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>'),Ca=i('<div class="space-y-2"><div class="gap-1 p-0.5 flex rounded-md border"><!> <!></div> <!></div>');function Ir(ke,t){at(t,!0);let m=We(t,"mode",3,"url"),C=We(t,"value",3,""),O=We(t,"disabled",3,!1),F=We(t,"isUploading",3,!1),B=We(t,"hasFile",3,!1),x=We(t,"inputRef",15);var w=Ca(),q=s(w),ne=s(q);{let de=L(()=>m()!=="upload"?"default":"ghost");De(ne,{size:"sm",get variant(){return e(de)},onclick:()=>t.onModeChange?.("url"),class:"h-7 text-xs flex-1",children:(he,I)=>{u();var R=A("URL");r(he,R)},$$slots:{default:!0}})}var z=a(ne,2);{let de=L(()=>m()==="upload"?"default":"ghost");De(z,{size:"sm",get variant(){return e(de)},onclick:()=>t.onModeChange?.("upload"),class:"h-7 text-xs flex-1",children:(he,I)=>{u();var R=A("Upload File");r(he,R)},$$slots:{default:!0}})}o(q);var _e=a(q,2);{var $e=de=>{var he=ja(),I=s(he);Kt(I,pe=>x(pe),()=>x());var R=a(I,2);{let pe=L(()=>O()||!B()||F());De(R,{size:"sm",get disabled(){return e(pe)},get onclick(){return t.onUpload},class:"shrink-0",children:(T,Y)=>{var we=ka(),ye=p(we);ur(ye,{class:"mr-2 h-4 w-4"});var Ie=a(ye,2),je=s(Ie,!0);o(Ie),W(()=>U(je,F()?"Uploading…":"Upload")),r(T,we)},$$slots:{default:!0}})}o(he),W(()=>I.disabled=O()),nt("change",I,function(...pe){t.onFileSelected?.apply(this,pe)}),r(de,he)},le=de=>{ut(de,{type:"text",get value(){return C()},get disabled(){return O()},oninput:he=>t.onUrlChange?.(he.target.value),placeholder:"https://..."})};J(_e,de=>{m()==="upload"?de($e):de(le,-1)})}o(w),r(ke,w),ot()}bt(["change"]);const Ft=1e3;function Nr(ke,t){at(t,!0);let m=We(t,"placeholder",3,"Select a project");const C=L(()=>t.projects.map(O=>({id:O.id,label:O.name})));sr(ke,{get items(){return e(C)},get value(){return t.value},get onChange(){return t.onChange},get id(){return t.id},get placeholder(){return m()},get triggerIcon(){return wr},searchPlaceholder:"Filter projects"}),ot()}var Sa=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>'),Oa=i('<div class="border-warning/40 bg-warning/5 rounded-md border p-3"><p class="text-warning text-xs font-medium">Validation warning</p> <p class="text-warning/80 mt-0.5 text-xs"> </p> <p class="text-warning/60 mt-1 text-xs">You can still upload the file.</p></div>'),Fa=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(ke,t){at(t,!0);let m=We(t,"open",3,!1),C=We(t,"isAdding",3,!1),O=We(t,"projects",19,()=>[]),F=We(t,"computeServers",19,()=>[]),B=We(t,"defaultComputeServerId",3,null),x=We(t,"showProjectDropdown",3,!1),w=h(""),q=h(""),ne=h(""),z=h(it([])),_e=h(""),$e=h("url"),le=h(""),de=h("");xt(()=>{t.defaultProjectId&&n(le,t.defaultProjectId,!0)}),xt(()=>{e(le)&&e(he)?.files?.length&&!e(Y)&&!e(pe)&&ye()});let he=h(void 0),I=h(void 0),R=h(!1),pe=h(!1),T=h(null),Y=h(null);function we(ce){return ce.name.replace(/\.(gh|ghx)$/i,"").replace(/[_-]/g," ").replace(/\b\w/g,ge=>ge.toUpperCase())}async function ye(){const ce=e(he)?.files?.[0];if(n(T,null),n(Y,null),n(q,""),n(z,[],!0),!ce){n(w,"");return}if(n(w,we(ce),!0),!!e(le)){n(pe,!0);try{const ge=new FormData;ge.append("files",ce);const g=await fetch(`/api/compute/schema?projectId=${encodeURIComponent(e(le))}`,{method:"POST",body:ge});if(g.status===404)return;const b=await g.json();if(!g.ok){n(T,b?.message??"Validation failed",!0);return}const d=b?.[0];if(!d)return;n(Y,d,!0),d.name&&n(w,d.name,!0),d.description&&n(q,d.description,!0),d.tags?.length&&n(z,d.tags,!0)}catch{}finally{n(pe,!1)}}}async function Ie(){if(!e(w).trim()){Se.error("Display name is required");return}if(!e(he)?.files||e(he).files.length===0){Se.error("A Grasshopper file is required");return}if(x()&&!e(le)){Se.error("Please pick a project");return}const ce=new FormData;ce.append("displayName",e(w).trim()),ce.append("description",e(q)),ce.append("category",e(ne)),ce.append("tags",e(z).join(",")),e($e)==="upload"&&e(I)?.files?.[0]?ce.append("image",e(I).files[0]):e($e)==="url"&&e(_e).trim()&&ce.append("coverImage",e(_e).trim()),ce.append("file",e(he).files[0]),e(le)&&ce.append("projectId",e(le)),e(de)&&ce.append("computeServerId",e(de));try{await t.onSubmit?.(ce)}catch{}}function je(){n(w,""),n(q,""),n(ne,""),n(z,[],!0),n(_e,""),n($e,"url"),n(le,t.defaultProjectId??"",!0),n(de,""),n(pe,!1),n(T,null),n(Y,null),e(he)&&(e(he).value=""),e(I)&&(e(I).value=""),n(R,!1)}function Ae(ce){ce||je(),t.onOpenChange?.(ce)}xt(()=>{m()||je()});var Ne=ze(),Z=p(Ne);_(Z,()=>Xt,(ce,ge)=>{ge(ce,{get open(){return m()},onOpenChange:Ae,children:(g,b)=>{var d=ze(),k=p(d);_(k,()=>Qt,($,c)=>{c($,{class:"max-w-xl",children:(f,P)=>{var N=Va(),ee=p(N);_(ee,()=>Mt,(oe,Ce)=>{Ce(oe,{children:(Te,Ye)=>{var rt=Sa(),lt=p(rt);_(lt,()=>zt,(Oe,Ge)=>{Ge(Oe,{children:(Re,Fe)=>{u();var qe=A("Add New Definition");r(Re,qe)},$$slots:{default:!0}})});var st=a(lt,2);_(st,()=>Vt,(Oe,Ge)=>{Ge(Oe,{children:(Re,Fe)=>{u();var qe=A("Upload a Grasshopper file and fill in the metadata.");r(Re,qe)},$$slots:{default:!0}})}),r(Te,rt)},$$slots:{default:!0}})});var y=a(ee,2),E=s(y);{var Q=oe=>{var Ce=Aa(),Te=s(Ce);{var Ye=Oe=>{var Ge=Da(),Re=s(Ge);He(Re,{for:"new-project",children:(qe,tt)=>{u();var Je=A("Project");r(qe,Je)},$$slots:{default:!0}});var Fe=a(Re,2);Nr(Fe,{id:"new-project",get projects(){return O()},get value(){return e(le)},onChange:qe=>n(le,qe,!0)}),o(Ge),r(Oe,Ge)},rt=Oe=>{const Ge=L(()=>O().find(dt=>dt.id===t.defaultProjectId));var Re=Ia(),Fe=s(Re);He(Fe,{children:(dt,Bt)=>{u();var Pt=A("Project");r(dt,Pt)},$$slots:{default:!0}});var qe=a(Fe,2),tt=s(qe),Je=s(tt,!0);o(tt),o(qe),o(Re),W(()=>U(Je,e(Ge)?.name??"Unknown")),r(Oe,Re)};J(Te,Oe=>{x()?Oe(Ye):t.defaultProjectId&&Oe(rt,1)})}var lt=a(Te,2);{var st=Oe=>{var Ge=Ta(),Re=s(Ge);He(Re,{for:"new-server",children:(tt,Je)=>{u();var dt=A("Compute Server");r(tt,dt)},$$slots:{default:!0}});var Fe=a(Re,2);pt(Fe,21,F,tt=>tt.id,(tt,Je)=>{var dt=Na(),Bt=s(dt);o(dt);var Pt={};W(()=>{U(Bt,`${e(Je).label??""}${e(Je).id===B()?" (Default)":""}`),Pt!==(Pt=e(Je).id)&&(dt.value=(dt.__value=e(Je).id)??"")}),r(tt,dt)}),o(Fe);var qe;$r(Fe),o(Ge),W(()=>{qe!==(qe=e(de)||(B()??""))&&(Fe.value=(Fe.__value=e(de)||(B()??""))??"",yr(Fe,e(de)||(B()??"")))}),nt("change",Fe,tt=>{const Je=tt.currentTarget.value;n(de,Je===B()?"":Je,!0)}),r(Oe,Ge)};J(lt,Oe=>{F().length>0&&Oe(st)})}o(Ce),W(()=>ft(Ce,1,`grid gap-3 ${x()&&F().length>0?"sm:grid-cols-2":""}`)),r(oe,Ce)};J(E,oe=>{(x()||F().length>0)&&oe(Q)})}var ve=a(E,2),se=s(ve);He(se,{for:"new-file",children:(oe,Ce)=>{u();var Te=Ua();u(),r(oe,Te)},$$slots:{default:!0}});var te=a(se,2);Kt(te,oe=>n(he,oe),()=>e(he));var xe=a(te,2);{var ie=oe=>{var Ce=Ea();r(oe,Ce)},V=oe=>{var Ce=Oa(),Te=a(s(Ce),2),Ye=s(Te,!0);o(Te),u(2),o(Ce),W(()=>U(Ye,e(T))),r(oe,Ce)},G=oe=>{var Ce=Fa(),Te=s(Ce),Ye=a(s(Te),2),rt=s(Ye);o(Ye),o(Te),o(Ce),W(()=>U(rt,`${e(Y).inputs.length??""} input${e(Y).inputs.length===1?"":"s"},
2
2
  ${e(Y).outputs.length??""} output${e(Y).outputs.length===1?"":"s"}`)),r(oe,Ce)};J(xe,oe=>{e(pe)?oe(ie):e(T)?oe(V,1):e(Y)&&oe(G,2)})}o(ve);var S=a(ve,2),j=s(S);He(j,{for:"new-dn",children:(oe,Ce)=>{u();var Te=La();u(),r(oe,Te)},$$slots:{default:!0}});var H=a(j,2);ut(H,{id:"new-dn",type:"text",placeholder:"e.g., Parametric Tower",get value(){return e(w)},set value(oe){n(w,oe,!0)}}),o(S);var X=a(S,2),me=s(X);He(me,{for:"new-desc",children:(oe,Ce)=>{u();var Te=A("Description");r(oe,Te)},$$slots:{default:!0}});var re=a(me,2);Zt(re,{id:"new-desc",rows:3,placeholder:"Describe what this definition does…",get value(){return e(q)},set value(oe){n(q,oe,!0)}}),o(X);var ue=a(X,2),Pe=s(ue),Me=s(Pe),M=s(Me);He(M,{for:"new-cat",children:(oe,Ce)=>{u();var Te=A("Category");r(oe,Te)},$$slots:{default:!0}});var ae=a(M,2),fe=s(ae);o(ae),o(Me);var K=a(Me,2);ut(K,{id:"new-cat",type:"text",maxlength:40,placeholder:"e.g., Architecture",get value(){return e(ne)},set value(oe){n(ne,oe,!0)}}),o(Pe);var l=a(Pe,2),v=s(l),D=s(v);He(D,{for:"new-tags",children:(oe,Ce)=>{u();var Te=A("Tags");r(oe,Te)},$$slots:{default:!0}});var be=a(D,2),Ue=s(be);o(be),o(v);var Ve=a(v,2);{var Le=oe=>{var Ce=Ma();pt(Ce,20,()=>e(z),Te=>Te,(Te,Ye)=>{jr(Te,{variant:"outline",class:"cursor-pointer gap-1",children:(rt,lt)=>{u();var st=Ra(),Oe=p(st),Ge=a(Oe),Re=s(Ge);$t(Re,{class:"h-3 w-3"}),o(Ge),W(()=>U(Oe,`${Ye??""} `)),nt("click",Ge,()=>{n(z,e(z).filter(Fe=>Fe!==Ye),!0)}),r(rt,st)},$$slots:{default:!0}})}),o(Ce),r(oe,Ce)};J(Ve,oe=>{e(z).length>0&&oe(Le)})}var Be=a(Ve,2);{let oe=L(()=>e(z).length>=5);ut(Be,{id:"new-tags",type:"text",placeholder:"Add tag and press Enter",get disabled(){return e(oe)},onkeydown:Ce=>{if(Ce.key==="Enter"){Ce.preventDefault();const Te=Ce.currentTarget,Ye=Te.value.trim();Ye&&!e(z).includes(Ye)&&e(z).length<5&&(n(z,[...e(z),Ye],!0),Te.value="")}}})}o(l),o(ue);var Xe=a(ue,2),Ke=s(Xe);He(Ke,{children:(oe,Ce)=>{u();var Te=A("Cover Image");r(oe,Te)},$$slots:{default:!0}});var et=a(Ke,2);Ir(et,{get mode(){return e($e)},get value(){return e(_e)},get hasFile(){return e(R)},onModeChange:oe=>n($e,oe,!0),onUpload:()=>{},onFileSelected:()=>n(R,!!e(I)?.files?.length),onUrlChange:oe=>n(_e,oe,!0),get inputRef(){return e(I)},set inputRef(oe){n(I,oe,!0)}}),o(Xe),o(y);var vt=a(y,2);_(vt,()=>Ht,(oe,Ce)=>{Ce(oe,{class:"gap-2 sm:justify-end",children:(Te,Ye)=>{var rt=za(),lt=p(rt);De(lt,{variant:"outline",onclick:()=>t.onOpenChange?.(!1),children:(Oe,Ge)=>{u();var Re=A("Cancel");r(Oe,Re)},$$slots:{default:!0}});var st=a(lt,2);{let Oe=L(()=>C()||e(pe));De(st,{onclick:Ie,get disabled(){return e(Oe)},children:(Ge,Re)=>{u();var Fe=A();W(()=>U(Fe,C()?"Creating…":e(pe)?"Validating…":"Create Definition")),r(Ge,Fe)},$$slots:{default:!0}})}r(Te,rt)},$$slots:{default:!0}})}),W(()=>{U(fe,`${e(ne)?.length??0??""}/40`),U(Ue,`${e(z).length??""}/5`)}),nt("change",te,ye),r(f,N)},$$slots:{default:!0}})}),r(g,d)},$$slots:{default:!0}})}),r(ke,Ne),ot()}bt(["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>'),Ya=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>'),Qa=i('<p class="text-muted-foreground px-2 py-4 text-center text-xs">No projects yet</p>'),Xa=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> <span class="shrink-0 font-mono text-[11px] tabular-nums opacity-60"> </span></button> <!> <!> <!></nav></aside>');function eo(ke,t){at(t,!0);let m=h(!1),C=h(""),O=h(""),F=h("public"),B=h(!1),x=h("");const w=L(()=>{const g=e(x).trim().toLowerCase();return g?t.projects.filter(b=>b.name.toLowerCase().includes(g)):t.projects});async function q(){if(e(C).trim()){n(B,!0);try{await t.onCreate({name:e(C).trim(),description:e(O),visibility:e(F)}),n(C,""),n(O,""),n(F,"public"),n(m,!1)}finally{n(B,!1)}}}var ne=Za(),z=s(ne),_e=a(s(z),2);{var $e=g=>{var b=Ba(),d=s(b);Wt(d,{class:"h-3.5 w-3.5"}),o(b),nt("click",b,()=>n(m,!e(m))),r(g,b)};J(_e,g=>{t.canManageProjects&&g($e)})}o(z);var le=a(z,2);{var de=g=>{var b=qa(),d=s(b);ut(d,{placeholder:"Project name",class:"h-8 text-xs",get value(){return e(C)},set value(y){n(C,y,!0)}});var k=a(d,2),$=s(k);$.value=$.__value="public";var c=a($);c.value=c.__value="org";var f=a(c);f.value=f.__value="private",o(k);var P=a(k,2),N=s(P);{let y=L(()=>e(B)||!e(C).trim());De(N,{onclick:q,get disabled(){return e(y)},size:"sm",class:"h-6 flex-1 text-xs",children:(E,Q)=>{u();var ve=A();W(()=>U(ve,e(B)?"…":"Create")),r(E,ve)},$$slots:{default:!0}})}var ee=a(N,2);De(ee,{onclick:()=>n(m,!1),variant:"ghost",size:"sm",class:"h-6 px-2 text-xs",children:(y,E)=>{$t(y,{class:"h-3 w-3"})},$$slots:{default:!0}}),o(P),o(b),Yt(k,()=>e(F),y=>n(F,y)),r(g,b)};J(le,g=>{e(m)&&t.canManageProjects&&g(de)})}var he=a(le,2);{var I=g=>{var b=Ja(),d=s(b);Cr(d,{class:"text-muted-foreground pointer-events-none absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2"});var k=a(d,2);kt(k),o(b),fr(k,()=>e(x),$=>n(x,$)),r(g,b)};J(he,g=>{t.projects.length>4&&g(I)})}var R=a(he,2),pe=s(R),T=s(pe);{var Y=g=>{var b=Ha();r(g,b)};J(T,g=>{t.activeProjectId===null&&g(Y)})}var we=a(T,2);wr(we,{class:"h-3.5 w-3.5 shrink-0 opacity-70"});var ye=a(we,4),Ie=s(ye,!0);o(ye),o(pe);var je=a(pe,2);{var Ae=g=>{var b=Wa();r(g,b)};J(je,g=>{e(w).length>0&&g(Ae)})}var Ne=a(je,2);pt(Ne,17,()=>e(w),g=>g.id,(g,b)=>{const d=L(()=>t.activeProjectId===e(b).id),k=L(()=>t.records.filter(E=>E.projectId===e(b).id).length);var $=Ya(),c=s($);{var f=E=>{var Q=Ka();r(E,Q)};J(c,E=>{e(d)&&E(f)})}var P=a(c,2),N=s(P,!0);o(P);var ee=a(P,2),y=s(ee,!0);o(ee),o($),W(()=>{ft($,1,`group relative flex w-full items-center gap-2 py-1.5 pr-2.5 text-left transition-colors ${e(d)?"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"}`),U(N,e(b).name),U(y,e(k))}),nt("click",$,()=>t.onSelect(e(b).id)),r(g,$)});var Z=a(Ne,2);{var ce=g=>{var b=Qa();r(g,b)},ge=g=>{var b=Xa(),d=s(b);o(b),W(()=>U(d,`No matches for "${e(x)??""}"`)),r(g,b)};J(Z,g=>{t.projects.length===0?g(ce):e(w).length===0&&e(x)&&g(ge,1)})}o(R),o(ne),W(()=>{ft(pe,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"}`),U(Ie,t.records.length)}),nt("click",pe,()=>t.onSelect(null)),r(ke,ne),ot()}bt(["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(ke,t){at(t,!0);let m=h(""),C=h(0),O=h(null),F=h("viewer"),B=h(void 0);const x=L(()=>{const I=e(m).trim().toLowerCase();return I?t.availableUsers.filter(R=>{const pe=(R.displayName??"").toLowerCase(),T=(R.email??"").toLowerCase();return pe.includes(I)||T.includes(I)}).slice(0,50):t.availableUsers.slice(0,50)});xt(()=>{e(x),n(C,0)});function w(I){return I.displayName??I.email??I.id.slice(0,8)}function q(I){n(O,I,!0),n(m,"")}async function ne(){e(O)&&(await t.onAdd(e(O).id,e(F)),n(O,null),n(F,"viewer"))}function z(I){if(!e(O))if(I.key==="ArrowDown")I.preventDefault(),n(C,Math.min(e(C)+1,e(x).length-1),!0),_e();else if(I.key==="ArrowUp")I.preventDefault(),n(C,Math.max(e(C)-1,0),!0),_e();else if(I.key==="Enter"){I.preventDefault();const R=e(x)[e(C)];R&&q(R)}else I.key==="Escape"&&(I.preventDefault(),t.onCancel())}function _e(){e(B)?.querySelector(`[data-idx="${e(C)}"]`)?.scrollIntoView({block:"nearest"})}var $e=io(),le=s($e);{var de=I=>{var R=oo(),pe=p(R),T=s(pe);Cr(T,{class:"text-muted-foreground pointer-events-none absolute top-1/2 left-3 h-3.5 w-3.5 -translate-y-1/2"});var Y=a(T,2);kt(Y),Or(Y,!0);var we=a(Y,2),ye=s(we);$t(ye,{class:"h-3.5 w-3.5"}),o(we),o(pe);var Ie=a(pe,2),je=s(Ie);{var Ae=Z=>{var ce=to(),ge=s(ce,!0);o(ce),W(()=>U(ge,t.availableUsers.length===0?"Everyone in this org is already on the project.":`No matches for "${e(m)}"`)),r(Z,ce)},Ne=Z=>{var ce=ze(),ge=p(ce);pt(ge,19,()=>e(x),g=>g.id,(g,b,d)=>{var k=ao(),$=s(k);{let y=L(()=>w(e(b)));dr($,{get name(){return e(y)},size:"sm"})}var c=a($,2),f=s(c),P=s(f,!0);o(f);var N=a(f,2);{var ee=y=>{var E=ro(),Q=s(E,!0);o(E),W(()=>U(Q,e(b).email)),r(y,E)};J(N,y=>{e(b).displayName&&e(b).email&&y(ee)})}o(c),o(k),W(y=>{wt(k,"data-idx",e(d)),ft(k,1,`flex w-full items-center gap-3 px-3 py-2 text-left transition-colors ${e(C)===e(d)?"bg-accent text-accent-foreground":"hover:bg-muted/60"}`),U(P,y)},[()=>w(e(b))]),nt("click",k,()=>q(e(b))),br("mouseenter",k,()=>n(C,e(d),!0)),r(g,k)}),r(Z,ce)};J(je,Z=>{e(x).length===0?Z(Ae):Z(Ne,-1)})}o(Ie),Kt(Ie,Z=>n(B,Z),()=>e(B)),nt("keydown",Y,z),fr(Y,()=>e(m),Z=>n(m,Z)),nt("click",we,function(...Z){t.onCancel?.apply(this,Z)}),r(I,R)},he=I=>{var R=so(),pe=s(R);{let g=L(()=>w(e(O)));dr(pe,{get name(){return e(g)},size:"sm"})}var T=a(pe,2),Y=s(T),we=s(Y,!0);o(Y);var ye=a(Y,2);{var Ie=g=>{var b=no(),d=s(b,!0);o(b),W(()=>U(d,e(O).email)),r(g,b)};J(ye,g=>{e(O).email&&e(O).displayName&&g(Ie)})}o(T);var je=a(T,2),Ae=s(je);Ae.value=Ae.__value="owner";var Ne=a(Ae);Ne.value=Ne.__value="editor";var Z=a(Ne);Z.value=Z.__value="viewer",o(je);var ce=a(je,2);De(ce,{onclick:ne,get disabled(){return t.adding},size:"sm",children:(g,b)=>{u();var d=A();W(()=>U(d,t.adding?"Adding…":"Add")),r(g,d)},$$slots:{default:!0}});var ge=a(ce,2);De(ge,{onclick:()=>n(O,null),variant:"ghost",size:"icon",class:"text-muted-foreground h-8 w-8","aria-label":"Pick a different user",children:(g,b)=>{$t(g,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}}),o(R),W(g=>U(we,g),[()=>w(e(O))]),Yt(je,()=>e(F),g=>n(F,g)),r(I,R)};J(le,I=>{e(O)?I(he,-1):I(de)})}o($e),r(ke,$e),ot()}bt(["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),go=i('<p class="text-muted-foreground truncate font-mono text-xs"> </p>'),mo=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(ke,t){at(t,!0);let m=h(it(t.project.name)),C=h(it(t.project.description??"")),O=h(it(t.project.visibility)),F=h(!1),B=h(!1),x=h(!1),w=h(null);function q(I){const R=t.users.find(pe=>pe.id===I);return R?.displayName??R?.email??I.slice(0,8)}function ne(I){return t.users.find(R=>R.id===I)?.email}const z=L(()=>{const I=new Set(t.project.members.map(R=>R.userId));return t.users.filter(R=>!I.has(R.id))});async function _e(){n(F,!0);try{await t.onSave(t.project.id,{name:e(m),description:e(C),visibility:e(O)})}finally{n(F,!1)}}async function $e(I,R){n(x,!0);try{await t.onAddMember(t.project.id,I,R),n(B,!1)}finally{n(x,!1)}}async function le(I){n(w,I,!0);try{await t.onRemoveMember(t.project.id,I)}finally{n(w,null)}}var de=ze(),he=p(de);_(he,()=>Xt,(I,R)=>{R(I,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:(pe,T)=>{var Y=ze(),we=p(Y);_(we,()=>Qt,(ye,Ie)=>{Ie(ye,{class:"max-w-lg",children:(je,Ae)=>{var Ne=$o(),Z=p(Ne);_(Z,()=>Mt,(ge,g)=>{g(ge,{children:(b,d)=>{var k=co(),$=p(k);_($,()=>zt,(f,P)=>{P(f,{children:(N,ee)=>{u();var y=A("Project settings");r(N,y)},$$slots:{default:!0}})});var c=a($,2);_(c,()=>Vt,(f,P)=>{P(f,{children:(N,ee)=>{u();var y=A("Manage this project's details and members.");r(N,y)},$$slots:{default:!0}})}),r(b,k)},$$slots:{default:!0}})});var ce=a(Z,2);_(ce,()=>Pr,(ge,g)=>{g(ge,{value:"general",class:"mt-2",children:(b,d)=>{var k=bo(),$=p(k);_($,()=>kr,(P,N)=>{N(P,{class:"grid w-full grid-cols-2",children:(ee,y)=>{var E=uo(),Q=p(E);_(Q,()=>Lt,(se,te)=>{te(se,{value:"general",children:(xe,ie)=>{u();var V=A("General");r(xe,V)},$$slots:{default:!0}})});var ve=a(Q,2);_(ve,()=>Lt,(se,te)=>{te(se,{value:"members",class:"gap-1.5",children:(xe,ie)=>{var V=vo(),G=p(V);hr(G,{class:"h-3.5 w-3.5"});var S=a(G,2),j=s(S,!0);o(S),W(()=>U(j,t.project.members.length)),r(xe,V)},$$slots:{default:!0}})}),r(ee,E)},$$slots:{default:!0}})});var c=a($,2);_(c,()=>Rt,(P,N)=>{N(P,{value:"general",class:"mt-4 space-y-4",children:(ee,y)=>{var E=po(),Q=p(E),ve=s(Q);He(ve,{for:"proj-name",children:(M,ae)=>{u();var fe=A("Name");r(M,fe)},$$slots:{default:!0}});var se=a(ve,2);ut(se,{id:"proj-name",get value(){return e(m)},set value(M){n(m,M,!0)}}),o(Q);var te=a(Q,2),xe=s(te);He(xe,{for:"proj-desc",children:(M,ae)=>{u();var fe=A("Description");r(M,fe)},$$slots:{default:!0}});var ie=a(xe,2);Zt(ie,{id:"proj-desc",rows:2,get value(){return e(C)},set value(M){n(C,M,!0)}}),o(te);var V=a(te,2),G=s(V);He(G,{for:"proj-vis",children:(M,ae)=>{u();var fe=A("Visibility");r(M,fe)},$$slots:{default:!0}});var S=a(G,2),j=s(S);j.value=j.__value="public";var H=a(j);H.value=H.__value="org";var X=a(H);X.value=X.__value="private",o(S),o(V);var me=a(V,2),re=s(me);De(re,{onclick:()=>t.onDelete(t.project.id),variant:"ghost",size:"sm",class:"text-destructive hover:text-destructive gap-1.5 px-2",children:(M,ae)=>{var fe=fo(),K=p(fe);er(K,{class:"h-3.5 w-3.5"}),u(),r(M,fe)},$$slots:{default:!0}});var ue=a(re,2),Pe=s(ue);De(Pe,{onclick:()=>t.onOpenChange(!1),variant:"outline",size:"sm",children:(M,ae)=>{u();var fe=A("Cancel");r(M,fe)},$$slots:{default:!0}});var Me=a(Pe,2);De(Me,{onclick:_e,get disabled(){return e(F)},size:"sm",children:(M,ae)=>{u();var fe=A();W(()=>U(fe,e(F)?"Saving…":"Save")),r(M,fe)},$$slots:{default:!0}}),o(ue),o(me),Yt(S,()=>e(O),M=>n(O,M)),r(ee,E)},$$slots:{default:!0}})});var f=a(c,2);_(f,()=>Rt,(P,N)=>{N(P,{value:"members",class:"mt-4 space-y-3",children:(ee,y)=>{var E=xo(),Q=p(E);{var ve=V=>{pr(V,{size:"sm",get icon(){return hr},title:"No members yet",description:"Add members to control who can edit this project."})},se=V=>{var G=_o();pt(G,21,()=>t.project.members,S=>`${S.projectId}:${S.userId}`,(S,j)=>{var H=mo(),X=s(H);{let be=L(()=>q(e(j).userId));dr(X,{get name(){return e(be)},size:"sm"})}var me=a(X,2),re=s(me),ue=s(re,!0);o(re);var Pe=a(re,2);{var Me=be=>{var Ue=go(),Ve=s(Ue,!0);o(Ue),W(Le=>U(Ve,Le),[()=>ne(e(j).userId)]),r(be,Ue)},M=L(()=>ne(e(j).userId)&&ne(e(j).userId)!==q(e(j).userId));J(Pe,be=>{e(M)&&be(Me)})}o(me);var ae=a(me,2),fe=s(ae);fe.value=fe.__value="owner";var K=a(fe);K.value=K.__value="editor";var l=a(K);l.value=l.__value="viewer",o(ae);var v;$r(ae);var D=a(ae,2);{let be=L(()=>e(w)===e(j).userId);De(D,{onclick:()=>le(e(j).userId),get disabled(){return e(be)},variant:"ghost",size:"icon",class:"text-muted-foreground hover:text-destructive h-7 w-7",children:(Ue,Ve)=>{$t(Ue,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}o(H),W(be=>{U(ue,be),v!==(v=e(j).role)&&(ae.value=(ae.__value=e(j).role)??"",yr(ae,e(j).role))},[()=>q(e(j).userId)]),nt("change",ae,be=>t.onUpdateMemberRole(t.project.id,e(j).userId,be.target.value)),r(S,H)}),o(G),r(V,G)};J(Q,V=>{t.project.members.length===0&&!e(B)?V(ve):t.project.members.length>0&&V(se,1)})}var te=a(Q,2);{var xe=V=>{lo(V,{get availableUsers(){return e(z)},get adding(){return e(x)},onAdd:$e,onCancel:()=>n(B,!1)})},ie=V=>{De(V,{onclick:()=>n(B,!0),variant:"outline",size:"sm",class:"gap-1.5",children:(G,S)=>{var j=ho(),H=p(j);Hr(H,{class:"h-3.5 w-3.5"}),u(),r(G,j)},$$slots:{default:!0}})};J(te,V=>{e(B)?V(xe):V(ie,-1)})}r(ee,E)},$$slots:{default:!0}})}),r(b,k)},$$slots:{default:!0}})}),r(je,Ne)},$$slots:{default:!0}})}),r(pe,Y)},$$slots:{default:!0}})}),r(ke,de),ot()}bt(["change"]);var wo=i("<span><span></span> </span>");function Tr(ke,t){at(t,!0);let m=We(t,"class",3,"");var C=wo(),O=s(C),F=a(O);o(C),W((B,x)=>{ft(C,1,`inline-flex items-center gap-1.5 rounded-full border px-2 py-0.5 font-mono text-[11px] tracking-wide ${B??""} ${m()??""}`),ft(O,1,`h-1.5 w-1.5 rounded-full ${x??""}`),U(F,` ${t.status??""}`)},[()=>Wr(t.status),()=>Kr(t.status)]),r(ke,C),ot()}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>'),Co=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>'),So=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(ke,t){at(t,!0);const m="grid-template-columns: 40px 1.6fr 0.9fr 0.8fr 0.7fr 0.6fr 36px";function C(x){return t.projects.find(w=>w.id===x)?.name??""}var O=So(),F=s(O);or(F,m);var B=a(F,2);pt(B,19,()=>t.records,x=>x.guid,(x,w,q)=>{var ne=Co();or(ne,m);var z=s(ne);{var _e=ge=>{var g=Po(),b=s(g);o(g),W(()=>wt(b,"src",e(w).coverImage)),r(ge,g)},$e=ge=>{const g=L(()=>Qr(e(w).guid));var b=ko();let d;var k=s(b),$=s(k,!0);o(k),o(b),W(c=>{d=or(b,"",d,{"--tool-h1":e(g).h1,"--tool-h2":e(g).h2}),U($,c)},[()=>Yr(e(w).displayName)]),r(ge,b)};J(z,ge=>{e(w).coverImage?ge(_e):ge($e,-1)})}var le=a(z,2),de=s(le),he=s(de,!0);o(de);var I=a(de,2);{var R=ge=>{var g=jo(),b=s(g);o(g),W(d=>U(b,`${d??""}${e(w).description.length>60?"…":""}`),[()=>e(w).description.slice(0,60)]),r(ge,g)};J(I,ge=>{e(w).description&&ge(R)})}o(le);var pe=a(le,2),T=s(pe,!0);o(pe);var Y=a(pe,2),we=s(Y);Tr(we,{get status(){return e(w).status}}),o(Y);var ye=a(Y,2),Ie=s(ye,!0);o(ye);var je=a(ye,2),Ae=s(je,!0);o(je);var Ne=a(je,2),Z=s(Ne),ce=s(Z);$a(ce,{class:"h-4 w-4"}),o(Z),o(Ne),o(ne),W((ge,g,b)=>{ft(ne,1,`grid items-center gap-4 px-4 py-3 text-[13px] ${e(q)<t.records.length-1?"border-border border-b":""}`),U(he,e(w).displayName),U(T,ge),U(Ie,g),U(Ae,b),wt(Z,"aria-label",`Open ${e(w).displayName??""}`)},[()=>C(e(w).projectId),()=>Sr(e(w).updatedAt),()=>e(w).solveCount.toLocaleString()]),nt("click",Z,()=>t.onOpen(e(w))),r(x,ne)}),o(O),r(ke,O),ot()}bt(["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>'),Oo=i('<span class="bg-muted text-muted-foreground rounded px-2 py-0.5 font-mono text-[11px]"> </span>'),Fo=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(ke,t){at(t,!0),Dr(ke,{get onClose(){return t.onClose},children:(m,C)=>{var O=Lo(),F=p(O),B=s(F),x=s(B),w=s(x);Tr(w,{get status(){return t.record.status}});var q=a(w,2),ne=s(q,!0);o(q),o(x);var z=a(x,2),_e=s(z,!0);o(z);var $e=a(z,2);{var le=c=>{var f=Io(),P=s(f,!0);o(f),W(()=>U(P,t.record.description)),r(c,f)};J($e,c=>{t.record.description&&c(le)})}o(B);var de=a(B,2);De(de,{variant:"ghost",size:"icon",get onclick(){return t.onClose},class:"mt-0.5 h-8 w-8 shrink-0",children:(c,f)=>{$t(c,{class:"h-4 w-4"})},$$slots:{default:!0}}),o(F);var he=a(F,2),I=s(he);{var R=c=>{var f=No();W(()=>{wt(f,"src",t.record.coverImage),wt(f,"alt",t.record.displayName)}),r(c,f)},pe=c=>{var f=To();r(c,f)};J(I,c=>{t.record.coverImage?c(R):c(pe,-1)})}var T=a(I,2),Y=s(T);De(Y,{class:"flex-1",onclick:()=>t.onOpenRunner(t.record.guid,"live"),children:(c,f)=>{var P=Ao(),N=p(P);lr(N,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(c,P)},$$slots:{default:!0}});var we=a(Y,2);{var ye=c=>{var f=Uo(),P=p(f);{var N=y=>{De(y,{variant:"outline",size:"icon",onclick:()=>t.onShare(t.record),title:"Share links",children:(E,Q)=>{wa(E,{class:"h-4 w-4"})},$$slots:{default:!0}})};J(P,y=>{t.showShare&&y(N)})}var ee=a(P,2);De(ee,{variant:"outline",onclick:()=>t.onEdit(t.record),children:(y,E)=>{u();var Q=A("Edit");r(y,Q)},$$slots:{default:!0}}),r(c,f)};J(we,c=>{t.canEdit&&c(ye)})}o(T);var Ie=a(T,2);vr(Ie,{});var je=a(Ie,2),Ae=s(je),Ne=a(s(Ae),2),Z=s(Ne);o(Ne),o(Ae);var ce=a(Ae,2),ge=a(s(ce),2),g=s(ge,!0);o(ge),o(ce);var b=a(ce,2);{var d=c=>{var f=Eo(),P=a(s(f),2),N=s(P,!0);o(P),o(f),W(()=>U(N,t.record.category)),r(c,f)};J(b,c=>{t.record.category&&c(d)})}o(je);var k=a(je,2);{var $=c=>{var f=Fo(),P=s(f);vr(P,{class:"mb-4"});var N=a(P,2);pt(N,20,()=>t.record.tags,ee=>ee,(ee,y)=>{var E=Oo(),Q=s(E);o(E),W(()=>U(Q,`#${y??""}`)),r(ee,E)}),o(N),o(f),r(c,f)};J(k,c=>{t.record.tags?.length&&c($)})}o(he),W((c,f)=>{U(ne,t.projectName),U(_e,t.record.displayName),U(Z,`${c??""} ago`),U(g,f)},[()=>Sr(t.record.updatedAt),()=>t.record.solveCount.toLocaleString()]),r(m,O)},$$slots:{default:!0}}),ot()}var Mo=i(`The upload becomes <strong> </strong> as a draft. The live channel stays unchanged
3
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(ke,t){at(t,!0);let m=h(void 0),C=h(null),O=h(""),F=h(!1);xt(()=>{t.open||B()});function B(){n(C,null),n(O,""),n(F,!1),e(m)&&(e(m).value="")}function x(){n(C,e(m)?.files?.[0]?.name??null,!0)}async function w(){if(!e(m)?.files?.length)return;n(F,!0);const z=new FormData;z.append("file",e(m).files[0]),e(O).trim()&&z.append("changeNote",e(O).trim());try{const _e=await fetch(`/api/definitions/${t.definitionGuid}`,{method:"POST",body:z});if(_e.ok){const $e=await _e.json();Se.success(`v${$e.version?.versionNumber??t.nextVersionNumber} uploaded as draft`),t.onUploaded(),await ct(),t.onOpenChange(!1)}else{const $e=await _e.json().catch(()=>({}));Se.error($e.message||$e.error||"Upload failed")}}catch{Se.error("Upload failed")}finally{n(F,!1)}}var q=ze(),ne=p(q);_(ne,()=>Xt,(z,_e)=>{_e(z,{get open(){return t.open},get onOpenChange(){return t.onOpenChange},children:($e,le)=>{var de=ze(),he=p(de);_(he,()=>Qt,(I,R)=>{R(I,{class:"max-w-md",children:(pe,T)=>{var Y=Ho(),we=p(Y);_(we,()=>Mt,(f,P)=>{P(f,{children:(N,ee)=>{var y=zo(),E=p(y);_(E,()=>zt,(ve,se)=>{se(ve,{children:(te,xe)=>{u();var ie=A("Upload new version");r(te,ie)},$$slots:{default:!0}})});var Q=a(E,2);_(Q,()=>Vt,(ve,se)=>{se(ve,{children:(te,xe)=>{u();var ie=Mo(),V=a(p(ie)),G=s(V);o(V),u(),W(()=>U(G,`v${t.nextVersionNumber??""}`)),r(te,ie)},$$slots:{default:!0}})}),r(N,y)},$$slots:{default:!0}})});var ye=a(we,2),Ie=s(ye),je=s(Ie);He(je,{for:"upload-file",children:(f,P)=>{u();var N=A("Grasshopper file");r(f,N)},$$slots:{default:!0}});var Ae=a(je,2),Ne=s(Ae);Jr(Ne,{class:"text-muted-foreground h-5 w-5 shrink-0"});var Z=a(Ne,2),ce=s(Z);{var ge=f=>{var P=Vo(),N=p(P),ee=s(N,!0);o(N),u(2),W(()=>U(ee,e(C))),r(f,P)},g=f=>{var P=Go(),N=a(p(P),2),ee=s(N);o(N),W(()=>U(ee,`Becomes v${t.nextVersionNumber??""} draft`)),r(f,P)};J(ce,f=>{e(C)?f(ge):f(g,-1)})}o(Z),o(Ae);var b=a(Ae,2);Kt(b,f=>n(m,f),()=>e(m)),o(Ie);var d=a(Ie,2),k=s(d);He(k,{for:"upload-note",children:(f,P)=>{u();var N=Bo();u(),r(f,N)},$$slots:{default:!0}});var $=a(k,2);Zt($,{id:"upload-note",rows:2,maxlength:1e3,placeholder:"e.g. Fixed wall thickness calculation",get value(){return e(O)},set value(f){n(O,f,!0)}}),o(d),o(ye);var c=a(ye,2);_(c,()=>Ht,(f,P)=>{P(f,{class:"mt-4",children:(N,ee)=>{var y=Jo(),E=p(y);De(E,{variant:"outline",onclick:()=>t.onOpenChange(!1),children:(ve,se)=>{u();var te=A("Cancel");r(ve,te)},$$slots:{default:!0}});var Q=a(E,2);{let ve=L(()=>e(F)||!e(C));De(Q,{onclick:w,get disabled(){return e(ve)},children:(se,te)=>{var xe=ze(),ie=p(xe);{var V=S=>{var j=A("Uploading…");r(S,j)},G=S=>{var j=qo(),H=p(j);ur(H,{class:"mr-1.5 h-3.5 w-3.5"});var X=a(H);W(()=>U(X,` Upload v${t.nextVersionNumber??""}`)),r(S,j)};J(ie,S=>{e(F)?S(V):S(G,-1)})}r(se,xe)},$$slots:{default:!0}})}r(N,y)},$$slots:{default:!0}})}),nt("change",b,x),r(pe,Y)},$$slots:{default:!0}})}),r($e,de)},$$slots:{default:!0}})}),r(ke,q),ot()}bt(["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>'),Yo=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>'),Qo=i('<span class="text-muted-foreground">· newer version uploaded</span>'),Xo=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("<!> Run",1),vn=i("<!> <!>",1),un=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>'),fn=i('<div class="space-y-2"></div>'),pn=i("<!> <!>",1),gn=i("<!> <!>",1),mn=i("<!> <!>",1),_n=i("<!> <!>",1),hn=i("<!> <!>",1),xn=i("<!> <!>",1),bn=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
4
  definition.</p></div> <!></div> <!></div> <!> <!> <!>`,1);function $n(ke,t){at(t,!0);let m=h(it([])),C=h(null),O=h(null),F=h(!0),B=h(!1),x=h(null),w=h(!1),q=h(!1),ne=h(null),z=h(null);xt(()=>{t.definitionGuid,_e()});async function _e(){n(F,!0);try{const d=await fetch(`/api/definitions/${t.definitionGuid}/versions`);if(!d.ok)throw new Error(`${d.status}`);const k=await d.json();n(m,k.versions,!0),n(C,k.liveVersionId,!0),n(O,k.draftVersionId,!0)}catch{Se.error("Failed to load versions")}finally{n(F,!1)}}const $e=L(()=>e(m).find(d=>d.id===e(C))??null),le=L(()=>e(m).find(d=>d.id===e(O))??null),de=L(()=>e(le)!==null&&e($e)!==null&&e(le).id!==e($e).id),he=L(()=>(e(m)[0]?.versionNumber??0)+1);function I(d){const k=Date.now()-new Date(d).getTime(),$=Math.floor(k/6e4);if($<1)return"Just now";if($<60)return`${$}m ago`;const c=Math.floor($/60);if(c<24)return`${c}h ago`;const f=Math.floor(c/24);return f===1?"Yesterday":f<30?`${f}d ago`:new Date(d).toLocaleDateString()}async function R(d){n(q,!0);try{const k=d?{versionId:d.id}:{},$=await fetch(`/api/definitions/${t.definitionGuid}/publish`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k)});if(!$.ok){const f=await $.json().catch(()=>({}));Se.error(f.message||f.error||"Failed to publish");return}const c=await $.json();Se.success(`v${c.version?.versionNumber??"?"} is now live`),await _e(),await ct()}catch{Se.error("Failed to publish")}finally{n(q,!1),n(x,null),n(w,!1)}}async function pe(d){n(z,d.id,!0);try{const k=await fetch(`/api/definitions/${t.definitionGuid}/versions/${d.id}`,{method:"DELETE"});if(!k.ok){const $=await k.json().catch(()=>({}));Se.error($.message||$.error||"Failed to delete version. Live or draft versions cannot be deleted.");return}Se.success(`v${d.versionNumber} deleted`),await _e(),await ct()}catch{Se.error("Failed to delete version")}finally{n(z,null),n(ne,null)}}var T=bn(),Y=p(T),we=s(Y);{var ye=d=>{var k=Ko();r(d,k)},Ie=d=>{var k=Yo();r(d,k)},je=d=>{var k=rn(),$=s(k),c=a(s($),2);{var f=y=>{var E=Zo(),Q=p(E),ve=a(s(Q));o(Q);var se=a(Q,2);{var te=ie=>{var V=Qo();r(ie,V)},xe=ie=>{var V=Xo();r(ie,V)};J(se,ie=>{e(de)&&e(le)?ie(te):ie(xe,-1)})}W(()=>U(ve,` — v${e($e).versionNumber??""}`)),r(y,E)},P=y=>{var E=en();r(y,E)};J(c,y=>{e($e)?y(f):y(P,-1)})}o($);var N=a($,2);{var ee=y=>{De(y,{size:"sm",onclick:()=>R(null),get disabled(){return e(q)},class:"shrink-0",children:(E,Q)=>{var ve=tn(),se=p(ve);ba(se,{class:"mr-1.5 h-3.5 w-3.5"});var te=a(se);W(()=>U(te,` Publish v${e(le).versionNumber??""}`)),r(E,ve)},$$slots:{default:!0}})};J(N,y=>{e(de)&&e(le)&&y(ee)})}o(k),r(d,k)};J(we,d=>{e(F)?d(ye):e(m).length===0?d(Ie,1):d(je,-1)})}var Ae=a(we,2),Ne=a(s(Ae),2);De(Ne,{variant:"outline",size:"sm",onclick:()=>n(B,!0),class:"shrink-0",children:(d,k)=>{var $=an(),c=p($);ur(c,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(d,$)},$$slots:{default:!0}}),o(Ae);var Z=a(Ae,2);{var ce=d=>{var k=fn();pt(k,21,()=>e(m),$=>$.id,($,c)=>{const f=L(()=>e(c).id===e(C)),P=L(()=>e(c).id===e(O)&&!e(f));var N=un(),ee=s(N),y=s(ee),E=s(y),Q=s(E),ve=s(Q);o(Q);var se=a(Q,2);{var te=M=>{var ae=on();r(M,ae)};J(se,M=>{e(f)&&M(te)})}var xe=a(se,2);{var ie=M=>{var ae=nn();r(M,ae)};J(xe,M=>{e(P)&&M(ie)})}o(E);var V=a(E,2);{var G=M=>{var ae=sn(),fe=s(ae,!0);o(ae),W(()=>U(fe,e(c).changeNote)),r(M,ae)},S=M=>{var ae=ln(),fe=s(ae,!0);o(ae),W(()=>U(fe,e(c).originalFilename)),r(M,ae)};J(V,M=>{e(c).changeNote?M(G):e(c).originalFilename&&M(S,1)})}var j=a(V,2),H=s(j);o(j),o(y);var X=a(y,2),me=s(X);{var re=M=>{De(M,{size:"sm",variant:"outline",onclick:()=>t.onOpenRunner(t.definitionGuid,"live"),children:(ae,fe)=>{var K=dn(),l=p(K);lr(l,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(ae,K)},$$slots:{default:!0}})},ue=M=>{var ae=vn(),fe=p(ae);{var K=v=>{De(v,{size:"sm",variant:"ghost",onclick:()=>t.onOpenRunner(t.definitionGuid,"draft"),children:(D,be)=>{var Ue=cn(),Ve=p(Ue);lr(Ve,{class:"mr-1.5 h-3.5 w-3.5"}),u(),r(D,Ue)},$$slots:{default:!0}})};J(fe,v=>{e(P)&&v(K)})}var l=a(fe,2);De(l,{size:"sm",variant:"outline",get disabled(){return e(q)},onclick:()=>{n(x,e(c),!0),n(w,!0)},children:(v,D)=>{u();var be=A("Make live");r(v,be)},$$slots:{default:!0}}),r(M,ae)};J(me,M=>{e(f)?M(re):M(ue,-1)})}var Pe=a(me,2);{var Me=M=>{{let ae=L(()=>e(z)===e(c).id);De(M,{size:"sm",variant:"ghost",onclick:()=>n(ne,e(c),!0),get disabled(){return e(ae)},class:"text-muted-foreground hover:text-destructive h-8 w-8 p-0","aria-label":"Delete version",children:(fe,K)=>{er(fe,{class:"h-3.5 w-3.5"})},$$slots:{default:!0}})}};J(Pe,M=>{!e(f)&&!e(P)&&M(Me)})}o(X),o(ee),o(N),W(M=>{ft(N,1,`rounded-md border p-3 transition-colors ${e(f)?"border-primary/40 bg-accent/40":"border-border bg-card hover:bg-muted/30"}`),U(ve,`v${e(c).versionNumber??""}`),U(H,`Uploaded ${M??""}`)},[()=>I(e(c).uploadedAt)]),r($,N)}),o(k),r(d,k)};J(Z,d=>{!e(F)&&e(m).length>0&&d(ce)})}o(Y);var ge=a(Y,2);Wo(ge,{get definitionGuid(){return t.definitionGuid},get nextVersionNumber(){return e(he)},get open(){return e(B)},onOpenChange:d=>n(B,d,!0),onUploaded:_e});var g=a(ge,2);_(g,()=>jt,(d,k)=>{k(d,{get open(){return e(w)},onOpenChange:$=>{$||(n(x,null),n(w,!1))},children:($,c)=>{var f=ze(),P=p(f);_(P,()=>Ct,(N,ee)=>{ee(N,{children:(y,E)=>{var Q=mn(),ve=p(Q);_(ve,()=>St,(te,xe)=>{xe(te,{children:(ie,V)=>{var G=pn(),S=p(G);_(S,()=>Dt,(H,X)=>{X(H,{children:(me,re)=>{var ue=ze(),Pe=p(ue);{var Me=ae=>{var fe=A();W(()=>U(fe,`Make v${e(x).versionNumber??""} live?`)),r(ae,fe)},M=ae=>{var fe=A("Publish current draft?");r(ae,fe)};J(Pe,ae=>{e(x)?ae(Me):ae(M,-1)})}r(me,ue)},$$slots:{default:!0}})});var j=a(S,2);_(j,()=>It,(H,X)=>{X(H,{children:(me,re)=>{var ue=ze(),Pe=p(ue);{var Me=fe=>{var K=A();W(()=>U(K,`Rolling back to an older version. Anyone running this definition will immediately get v${e(x).versionNumber??""}
@@ -1,4 +1,4 @@
1
- import"../chunks/DsnmJJEf.js";import{p as la,a as na,d as va,$ as ma,c as v,s as t,r as m,f as E,b as f,t as L}from"../chunks/ooPBmYPj.js";import{s as B}from"../chunks/BMGykAfL.js";import{a as e,f as p,c as R,t as g}from"../chunks/_OLpdTiI.js";import{i as w}from"../chunks/C8ko2SLk.js";import{e as ca,a as ua}from"../chunks/C1aQuqo_.js";import{c as N}from"../chunks/CcYNc8-G.js";import{h as fa}from"../chunks/BM4_iXSA.js";import{p as pa}from"../chunks/D7PHp8xb.js";import{C as D}from"../chunks/D99uXqZb.js";import{A as G,a as F}from"../chunks/BW4xleRz.js";import{B as I}from"../chunks/azBeeLR0.js";import{L as k}from"../chunks/B8uG8z2c.js";import{I as C}from"../chunks/jFKgkeON.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,d as va,$ as ma,c as v,s as t,r as m,f as E,b as f,t as L}from"../chunks/ooPBmYPj.js";import{s as B}from"../chunks/BMGykAfL.js";import{a as e,f as p,c as R,t as g}from"../chunks/_OLpdTiI.js";import{i as w}from"../chunks/C8ko2SLk.js";import{e as ca,a as ua}from"../chunks/C1aQuqo_.js";import{c as N}from"../chunks/CcYNc8-G.js";import{h as fa}from"../chunks/BM4_iXSA.js";import{p as pa}from"../chunks/smW5maEe.js";import{C as D}from"../chunks/D99uXqZb.js";import{A as G,a as F}from"../chunks/BW4xleRz.js";import{B as I}from"../chunks/azBeeLR0.js";import{L as k}from"../chunks/B8uG8z2c.js";import{I as C}from"../chunks/jFKgkeON.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,e as Z,h as De,k as Ne,g as t,j as c,a as Te,i as Oe,f as k,s as i,t as ee,u as Y,c as K,$ as Le,b as I,r as $,n as $e}from"../chunks/ooPBmYPj.js";import{d as Re,s as q,a as ne}from"../chunks/BMGykAfL.js";import{a,f,t as O,c as te}from"../chunks/_OLpdTiI.js";import{i as L}from"../chunks/C8ko2SLk.js";import{e as ye}from"../chunks/C1aQuqo_.js";import{c as S}from"../chunks/CcYNc8-G.js";import{h as je}from"../chunks/BM4_iXSA.js";import{p as Be}from"../chunks/D7PHp8xb.js";import{i as Fe}from"../chunks/BFXFuY-o.js";import{S as Ge}from"../chunks/BZmrLQwT.js";import{B as ae}from"../chunks/azBeeLR0.js";import{t as de}from"../chunks/Ce2MupFq.js";import{C as ue,a as ve}from"../chunks/uINs3xv3.js";import{C as ce}from"../chunks/D7l1JayF.js";import{C as fe,a as me}from"../chunks/wamM80bu.js";import{F as Ve}from"../chunks/Br5bpmJC.js";import{E as pe}from"../chunks/AEyooZaf.js";import{S as re}from"../chunks/DRDjLZb3.js";import{B as oe}from"../chunks/B8zY50Bc.js";import{P as we}from"../chunks/D6MI_dhi.js";import{I as Q}from"../chunks/jFKgkeON.js";import{T as Ye}from"../chunks/4tskcAVN.js";import{r as He}from"../chunks/Cbu9Tg11.js";import{S as Je}from"../chunks/CoR7xVWs.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,e as Z,h as De,k as Ne,g as t,j as c,a as Te,i as Oe,f as k,s as i,t as ee,u as Y,c as K,$ as Le,b as I,r as $,n as $e}from"../chunks/ooPBmYPj.js";import{d as Re,s as q,a as ne}from"../chunks/BMGykAfL.js";import{a,f,t as O,c as te}from"../chunks/_OLpdTiI.js";import{i as L}from"../chunks/C8ko2SLk.js";import{e as ye}from"../chunks/C1aQuqo_.js";import{c as S}from"../chunks/CcYNc8-G.js";import{h as je}from"../chunks/BM4_iXSA.js";import{p as Be}from"../chunks/smW5maEe.js";import{i as Fe}from"../chunks/4PBDTLFF.js";import{S as Ge}from"../chunks/BZmrLQwT.js";import{B as ae}from"../chunks/azBeeLR0.js";import{t as de}from"../chunks/Ce2MupFq.js";import{C as ue,a as ve}from"../chunks/uINs3xv3.js";import{C as ce}from"../chunks/D7l1JayF.js";import{C as fe,a as me}from"../chunks/wamM80bu.js";import{F as Ve}from"../chunks/Br5bpmJC.js";import{E as pe}from"../chunks/AEyooZaf.js";import{S as re}from"../chunks/DRDjLZb3.js";import{B as oe}from"../chunks/B8zY50Bc.js";import{P as we}from"../chunks/D6MI_dhi.js";import{I as Q}from"../chunks/jFKgkeON.js";import{T as Ye}from"../chunks/4tskcAVN.js";import{r as He}from"../chunks/Cbu9Tg11.js";import{S as Je}from"../chunks/CoR7xVWs.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 vt,e as Z,h as mt,a as ut,i as ft,g as e,f as P,u as b,c as i,$ as pt,s as n,r as a,b as X,j as g,t as y}from"../chunks/ooPBmYPj.js";import{d as _t,s as $,a as Ee}from"../chunks/BMGykAfL.js";import{a as t,f as d,c as ve,t as me}from"../chunks/_OLpdTiI.js";import{i as D}from"../chunks/C8ko2SLk.js";import{e as ue,i as gt,c as Oe,g as xt,a as ht,r as ze,h as Be,b as bt}from"../chunks/C1aQuqo_.js";import{c as N}from"../chunks/CcYNc8-G.js";import{h as $t}from"../chunks/BM4_iXSA.js";import{i as Re}from"../chunks/BFXFuY-o.js";import{O as Fe,M as wt,C as yt,A as Ye}from"../chunks/DNsLImlA.js";import{S as It}from"../chunks/BZmrLQwT.js";import{B as fe}from"../chunks/azBeeLR0.js";import{M as kt}from"../chunks/CfhPDo21.js";import{C as Ge,a as Je}from"../chunks/uINs3xv3.js";import{C as He}from"../chunks/D7l1JayF.js";import{C as Ae,a as Ce}from"../chunks/wamM80bu.js";import{E as Pt}from"../chunks/AEyooZaf.js";import{U as St}from"../chunks/CAMhfNhW.js";import{t as U}from"../chunks/Ce2MupFq.js";import{I as Et}from"../chunks/jFKgkeON.js";import{X as Ot}from"../chunks/CEnIp_6Y.js";import{T as Rt}from"../chunks/4tskcAVN.js";var At=d("<!> Invite member",1),Ct=d("<option> </option>"),Mt=d('<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>'),Nt=d('<label><input type="checkbox"/> </label>'),Lt=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 vt,e as Z,h as mt,a as ut,i as ft,g as e,f as P,u as b,c as i,$ as pt,s as n,r as a,b as X,j as g,t as y}from"../chunks/ooPBmYPj.js";import{d as _t,s as $,a as Ee}from"../chunks/BMGykAfL.js";import{a as t,f as d,c as ve,t as me}from"../chunks/_OLpdTiI.js";import{i as D}from"../chunks/C8ko2SLk.js";import{e as ue,i as gt,c as Oe,g as xt,a as ht,r as ze,h as Be,b as bt}from"../chunks/C1aQuqo_.js";import{c as N}from"../chunks/CcYNc8-G.js";import{h as $t}from"../chunks/BM4_iXSA.js";import{i as Re}from"../chunks/4PBDTLFF.js";import{O as Fe,M as wt,C as yt,A as Ye}from"../chunks/DNsLImlA.js";import{S as It}from"../chunks/BZmrLQwT.js";import{B as fe}from"../chunks/azBeeLR0.js";import{M as kt}from"../chunks/CfhPDo21.js";import{C as Ge,a as Je}from"../chunks/uINs3xv3.js";import{C as He}from"../chunks/D7l1JayF.js";import{C as Ae,a as Ce}from"../chunks/wamM80bu.js";import{E as Pt}from"../chunks/AEyooZaf.js";import{U as St}from"../chunks/CAMhfNhW.js";import{t as U}from"../chunks/Ce2MupFq.js";import{I as Et}from"../chunks/jFKgkeON.js";import{X as Ot}from"../chunks/CEnIp_6Y.js";import{T as Rt}from"../chunks/4tskcAVN.js";var At=d("<!> Invite member",1),Ct=d("<option> </option>"),Mt=d('<p class="text-muted-foreground mb-2 text-xs"> <span class="font-mono">member</span> to grant a custom subset.</p>'),Nt=d('<label><input type="checkbox"/> </label>'),Lt=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),Tt=d("<!> Copy",1),jt=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>'),Dt=d("<!> <!>",1),Ut=d("<option> </option>"),zt=d("<select></select>"),Bt=d("<span> </span>"),Ft=d('<label class="flex cursor-pointer items-center gap-1.5 text-xs"><input type="checkbox"/> </label>'),Yt=d('<span class="bg-muted text-muted-foreground rounded-full px-2 py-0.5 font-mono text-[10px]"> </span>'),Gt=d('<div class="mt-2 flex flex-wrap gap-3"></div>'),Jt=d('<p class="text-muted-foreground mt-2 text-xs"> </p>'),Ht=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>'),Wt=d('<div class="divide-y rounded-lg border"></div>'),Xt=d("<!> <!>",1),qt=d("<!> <!>",1),Kt=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>'),Qt=d('<div class="divide-y rounded-lg border"></div>'),Vt=d("<!> <!>",1),Zt=d("<!> <!> <!> <!>",1),er=d('<div class="space-y-6"><!> <!></div>');function yr(We,f){vt(f,!0);const Me=b(()=>f.data.actorRole==="owner"),Ne=b(()=>f.data.actorRole==="owner"||f.data.actorRole==="admin"),Xe=b(()=>f.data.members.filter(o=>o.role==="owner").length);let xe=Z(null);async function Le(o,v){if(f.data.orgId){g(xe,o,!0);try{const O=await fetch(`/api/orgs/${f.data.orgId}/members/${o}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)});if(O.ok)U.success("Updated"),await Re();else{const G=await O.json().catch(()=>({}));U.error(G.message||G.error||"Update failed")}}catch{U.error("Update failed")}finally{g(xe,null)}}}function qe(o,v){o.role!==v&&Le(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);Le(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 ae=Z(!1),oe=Z(""),q=Z("member"),se=Z(mt([])),he=Z(!1),pe=Z(null),we=Z(null);const Qe=b(()=>e(q)==="member"?Ye.filter(o=>!Fe.includes(o)):[...Ye]);function Ve(o,v){g(se,v?[...e(se),o]:e(se).filter(O=>O!==o),!0)}async function Ze(){g(he,!0);try{const o=await fetch("/api/invites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e(oe),orgRole:e(q),permissions:e(se)})});if(o.ok){const{acceptUrl:v}=await o.json();g(pe,v,!0),U.success(`Invite created for ${e(oe)}`),g(oe,""),g(q,"member"),g(se,[],!0),g(ae,!1),await Re()}else{const v=await o.json().catch(()=>({error:"Unknown error"}));U.error(v.message||v.error||"Failed to create invite")}}catch{U.error("Failed to create invite")}finally{g(he,!1)}}async function et(o,v){if(confirm(`Revoke invite for "${v}"?`)){g(we,o,!0);try{(await fetch(`/api/invites/${o}`,{method:"DELETE"})).ok?(U.success("Invite revoked"),await Re()):U.error("Failed to revoke invite")}catch{U.error("Failed to revoke invite")}finally{g(we,null)}}}var ye=er();$t("1mgom9i",o=>{ft(()=>{pt.title="Team · Members"})});var De=i(ye);{const o=O=>{var G=ve(),ie=P(G);{var Ie=ne=>{{let ke=b(()=>e(ae)?"outline":"default");fe(ne,{onclick:()=>g(ae,!e(ae)),get variant(){return e(ke)},children:(Pe,I)=>{var k=At(),L=P(k);kt(L,{class:"mr-2 h-4 w-4"}),X(),t(Pe,k)},$$slots:{default:!0}})}};D(ie,ne=>{f.data.orgId&&ne(Ie)})}t(O,G)};let v=b(()=>f.data.orgId?`${f.data.members.length} member${f.data.members.length===1?"":"s"} in this organization.`:"No active organization. Switch orgs from the user menu.");It(De,{eyebrow:"Team",title:"Members & roles",get description(){return e(v)},actions:o,$$slots:{actions:!0}})}var tt=n(De,2);{var rt=o=>{var v=Zt(),O=P(v);{var G=I=>{var k=ve(),L=P(k);N(L,()=>Ce,(ee,K)=>{K(ee,{children:(J,_e)=>{var S=ve(),z=P(S);N(z,()=>Ae,(B,H)=>{H(B,{class:"space-y-3 pt-6",children:(T,W)=>{var Q=Lt(),x=n(P(Q),2),m=i(x);Et(m,{type:"email",placeholder:"Email",get value(){return e(oe)},set value(s){g(oe,s,!0)}});var c=n(m,2);ue(c,20,()=>Te,s=>s,(s,p)=>{var u=Ct(),_=i(u,!0);a(u);var C={};y(()=>{$(_,p),C!==(C=p)&&(u.value=(u.__value=p)??"")}),t(s,u)}),a(c),a(x);var h=n(x,2),r=n(i(h),2);{var R=s=>{var p=Mt(),u=i(p);X(2),a(p),y(()=>$(u,`${e(q)==="owner"?"Owners":"Admins"} automatically receive all organization
3
3
  permissions. Pick `)),t(s,p)};D(r,s=>{e(q)!=="member"&&s(R)})}var j=n(r,2);ue(j,20,()=>e(Qe),s=>s,(s,p)=>{const u=b(()=>e(q)!=="member");var _=Nt(),C=i(_);ze(C);var ge=n(C);a(_),y(le=>{Oe(_,1,`flex items-center gap-1.5 text-xs ${e(u)?"cursor-not-allowed opacity-60":"cursor-pointer"}`),Be(C,le),C.disabled=e(u),$(ge,` ${$e[p]??""}`)},[()=>e(u)||e(se).includes(p)]),Ee("change",C,le=>Ve(p,le.target.checked)),t(s,_)}),a(j),a(h);var E=n(h,2),A=i(E);{let s=b(()=>e(he)||!e(oe));fe(A,{onclick:Ze,get disabled(){return e(s)},children:(p,u)=>{X();var _=me();y(()=>$(_,e(he)?"Creating…":"Create invite")),t(p,_)},$$slots:{default:!0}})}var F=n(A,2);fe(F,{variant:"outline",onclick:()=>g(ae,!1),children:(s,p)=>{X();var u=me("Cancel");t(s,u)},$$slots:{default:!0}}),a(E),bt(c,()=>e(q),s=>g(q,s)),t(T,Q)},$$slots:{default:!0}})}),t(J,S)},$$slots:{default:!0}})}),t(I,k)};D(O,I=>{e(ae)&&I(G)})}var ie=n(O,2);{var Ie=I=>{var k=jt(),L=i(k),ee=n(i(L),2),K=i(ee,!0);a(ee),a(L);var J=n(L,2);fe(J,{size:"sm",variant:"outline",onclick:async()=>{try{await navigator.clipboard.writeText(e(pe)),U.success("Invite link copied")}catch{U.error("Could not copy to clipboard")}},children:(S,z)=>{var B=Tt(),H=P(B);yt(H,{class:"mr-1.5 h-3.5 w-3.5"}),X(),t(S,B)},$$slots:{default:!0}});var _e=n(J,2);fe(_e,{size:"sm",variant:"ghost",onclick:()=>g(pe,null),children:(S,z)=>{Ot(S,{class:"h-4 w-4"})},$$slots:{default:!0}}),a(k),y(()=>$(K,e(pe))),t(I,k)};D(ie,I=>{e(pe)&&I(Ie)})}var ne=n(ie,2);N(ne,()=>Ce,(I,k)=>{k(I,{children:(L,ee)=>{var K=Xt(),J=P(K);N(J,()=>Ge,(S,z)=>{z(S,{children:(B,H)=>{var T=Dt(),W=P(T);N(W,()=>Je,(x,m)=>{m(x,{class:"text-sm font-medium",children:(c,h)=>{X();var r=me("Roster");t(c,r)},$$slots:{default:!0}})});var Q=n(W,2);N(Q,()=>He,(x,m)=>{m(x,{children:(c,h)=>{X();var r=me();y(()=>$(r,`Roles and per-member permissions.${e(Me)?" You can change roles and permissions.":e(Ne)?" You can grant member permissions; only the owner can change roles.":""}`)),t(c,r)},$$slots:{default:!0}})}),t(B,T)},$$slots:{default:!0}})});var _e=n(J,2);N(_e,()=>Ae,(S,z)=>{z(S,{children:(B,H)=>{var T=ve(),W=P(T);{var Q=m=>{Pt(m,{get icon(){return St},title:"No members yet",description:"Invite teammates to get started."})},x=m=>{var c=Wt();ue(c,21,()=>f.data.members,h=>h.userId,(h,r)=>{const R=b(()=>e(r).userId===f.data.actorUserId),j=b(()=>e(r).role==="owner"&&e(Xe)===1),E=b(()=>e(Me)&&!e(R)&&!e(j)),A=b(()=>e(Ne)&&e(r).role==="member");var F=Ht(),s=i(F),p=i(s),u=i(p),_=i(u),C=i(_,!0);a(_);var ge=n(_,2);{var le=w=>{var l=zt();ue(l,20,()=>Te,M=>M,(M,de)=>{var V=Ut(),Se=i(V,!0);a(V);var be={};y(()=>{$(Se,de),be!==(be=de)&&(V.value=(V.__value=de)??"")}),t(M,V)}),a(l);var Y;gt(l),y(()=>{l.disabled=e(xe)===e(r).userId,Oe(l,1,`border-input bg-background h-6 rounded-md border px-1.5 font-mono text-[10px] tracking-wide uppercase ${je[e(r).role]}`),Y!==(Y=e(r).role)&&(l.value=(l.__value=e(r).role)??"",xt(l,e(r).role))}),Ee("change",l,M=>qe(e(r),M.target.value)),t(w,l)},at=w=>{var l=Bt(),Y=i(l,!0);a(l),y(()=>{Oe(l,1,`rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-wide uppercase ${je[e(r).role]}`),ht(l,"title",e(j)?"Sole owner — promote another member to owner before changing this role.":e(R)?"You cannot change your own role.":void 0),$(Y,e(r).role)}),t(w,l)};D(ge,w=>{e(E)?w(le):w(at,-1)})}a(u);var Ue=n(u,2),ot=i(Ue);a(Ue),a(p),a(s);var st=n(s,2);{var it=w=>{var l=Gt();ue(l,20,()=>wt,Y=>Y,(Y,M)=>{const de=b(()=>e(r).permissions.includes(M));var V=ve(),Se=P(V);{var be=ce=>{var te=Ft(),re=i(te);ze(re);var dt=n(re);a(te),y(()=>{Be(re,e(de)),re.disabled=e(xe)===e(r).userId,$(dt,` ${$e[M]??M??""}`)}),Ee("change",re,ct=>Ke(e(r),M,ct.target.checked)),t(ce,te)},lt=ce=>{var te=Yt(),re=i(te,!0);a(te),y(()=>$(re,$e[M]??M)),t(ce,te)};D(Se,ce=>{e(A)?ce(be):e(de)&&ce(lt,1)})}t(Y,V)}),a(l),t(w,l)},nt=w=>{var l=Jt(),Y=i(l);a(l),y(()=>$(Y,`${e(r).role==="owner"?"Owners":"Admins"} hold all organization permissions
4
4
  by default.`)),t(w,l)};D(st,w=>{e(r).role==="member"?w(it):Fe.length>0&&w(nt,1)})}a(F),y(w=>{$(C,e(r).email??e(r).displayName??e(r).userId),$(ot,`Joined ${w??""}`)},[()=>new Date(e(r).joinedAt).toLocaleDateString()]),t(h,F)}),a(c),t(m,c)};D(W,m=>{f.data.members.length===0?m(Q):m(x,-1)})}t(B,T)},$$slots:{default:!0}})}),t(L,K)},$$slots:{default:!0}})});var ke=n(ne,2);{var Pe=I=>{var k=ve(),L=P(k);N(L,()=>Ce,(ee,K)=>{K(ee,{children:(J,_e)=>{var S=Vt(),z=P(S);N(z,()=>Ge,(H,T)=>{T(H,{children:(W,Q)=>{var x=qt(),m=P(x);N(m,()=>Je,(h,r)=>{r(h,{class:"text-sm font-medium",children:(R,j)=>{X();var E=me("Invites");t(R,E)},$$slots:{default:!0}})});var c=n(m,2);N(c,()=>He,(h,r)=>{r(h,{children:(R,j)=>{X();var E=me();y((A,F)=>$(E,`${A??""} pending, ${F??""} accepted`),[()=>f.data.invites.filter(A=>!A.acceptedAt).length,()=>f.data.invites.filter(A=>A.acceptedAt).length]),t(R,E)},$$slots:{default:!0}})}),t(W,x)},$$slots:{default:!0}})});var B=n(z,2);N(B,()=>Ae,(H,T)=>{T(H,{children:(W,Q)=>{var x=Qt();ue(x,21,()=>f.data.invites,m=>m.id,(m,c)=>{const h=b(()=>Date.parse(e(c).expiresAt)<=Date.now()),r=b(()=>e(c).acceptedAt?"Accepted":e(h)?"Expired":"Pending");var R=Kt(),j=i(R),E=i(j),A=i(E,!0);a(E);var F=n(E,2),s=i(F);a(F),a(j);var p=n(j,2);{var u=_=>{{let C=b(()=>e(we)===e(c).id);fe(_,{size:"sm",variant:"ghost",get disabled(){return e(C)},onclick:()=>et(e(c).id,e(c).email),class:"text-destructive hover:text-destructive",children:(ge,le)=>{Rt(ge,{class:"h-4 w-4"})},$$slots:{default:!0}})}};D(p,_=>{!e(c).acceptedAt&&!e(h)&&_(u)})}a(R),y(_=>{$(A,e(c).email),$(s,`${e(r)??""} · ${e(c).orgRole??""} · expires ${_??""}`)},[()=>new Date(e(c).expiresAt).toLocaleDateString()]),t(m,R)}),a(x),t(W,x)},$$slots:{default:!0}})}),t(J,S)},$$slots:{default:!0}})}),t(I,k)};D(ke,I=>{f.data.invites.length>0&&I(Pe)})}t(o,v)};D(tt,o=>{f.data.orgId&&o(rt)})}a(ye),t(We,ye),ut()}_t(["change"]);export{yr as component};
@@ -1,2 +1,2 @@
1
- import"../chunks/DsnmJJEf.js";import{p as Ie,f as d,a as Ce,i as De,g as e,u as Y,c as v,$ as Te,s,n as Ae,r as c,b as F,t as W,j as n,e as O}from"../chunks/ooPBmYPj.js";import{s as P}from"../chunks/BMGykAfL.js";import{a as r,f as y,c as V,t as X}from"../chunks/_OLpdTiI.js";import{i as oe}from"../chunks/C8ko2SLk.js";import{a as me,c as Ne,e as Se,b as Ee}from"../chunks/C1aQuqo_.js";import{s as Fe,r as Oe,c as _}from"../chunks/CcYNc8-G.js";import{h as Ve}from"../chunks/BM4_iXSA.js";import{i as fe}from"../chunks/BFXFuY-o.js";import{S as Be}from"../chunks/BZmrLQwT.js";import{C as _e,a as ge}from"../chunks/wamM80bu.js";import{E as Le}from"../chunks/AEyooZaf.js";import{F as Me}from"../chunks/CMjc_m7Z.js";import{D as ze}from"../chunks/Cdcajer6.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/Ib-7xmHT.js";import{I as Qe}from"../chunks/Bnpwcepm.js";import{B as se}from"../chunks/azBeeLR0.js";import{T as We}from"../chunks/4tskcAVN.js";import{t as q}from"../chunks/Ce2MupFq.js";import{P as Xe}from"../chunks/D6MI_dhi.js";import{I as $e}from"../chunks/jFKgkeON.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,i as De,g as e,u as Y,c as v,$ as Te,s,n as Ae,r as c,b as F,t as W,j as n,e as O}from"../chunks/ooPBmYPj.js";import{s as P}from"../chunks/BMGykAfL.js";import{a as r,f as y,c as V,t as X}from"../chunks/_OLpdTiI.js";import{i as oe}from"../chunks/C8ko2SLk.js";import{a as me,c as Ne,e as Se,b as Ee}from"../chunks/C1aQuqo_.js";import{s as Fe,r as Oe,c as _}from"../chunks/CcYNc8-G.js";import{h as Ve}from"../chunks/BM4_iXSA.js";import{i as fe}from"../chunks/4PBDTLFF.js";import{S as Be}from"../chunks/BZmrLQwT.js";import{C as _e,a as ge}from"../chunks/wamM80bu.js";import{E as Le}from"../chunks/AEyooZaf.js";import{F as Me}from"../chunks/CMjc_m7Z.js";import{D as ze}from"../chunks/Cdcajer6.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/Ib-7xmHT.js";import{I as Qe}from"../chunks/Bnpwcepm.js";import{B as se}from"../chunks/azBeeLR0.js";import{T as We}from"../chunks/4tskcAVN.js";import{t as q}from"../chunks/Ce2MupFq.js";import{P as Xe}from"../chunks/D6MI_dhi.js";import{I as $e}from"../chunks/jFKgkeON.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/ooPBmYPj.js";import{a as f,f as g}from"../chunks/_OLpdTiI.js";import{p as e}from"../chunks/D7PHp8xb.js";import{E as v}from"../chunks/DTJeGfAL.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/ooPBmYPj.js";import{a as f,f as g}from"../chunks/_OLpdTiI.js";import{p as e}from"../chunks/smW5maEe.js";import{E as v}from"../chunks/DTJeGfAL.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,i as mt,c as g,$ as ut,s,n as pt,r as $,b as T,g as r,t as G,j as k,u as J,e as rt}from"../chunks/ooPBmYPj.js";import{s as R}from"../chunks/BMGykAfL.js";import{a as t,f as b,c as B,t as Q}from"../chunks/_OLpdTiI.js";import{i as at}from"../chunks/C8ko2SLk.js";import{c as i}from"../chunks/CcYNc8-G.js";import{h as ft}from"../chunks/BM4_iXSA.js";import{c as vt}from"../chunks/C1aQuqo_.js";import{i as _t}from"../chunks/BFXFuY-o.js";import{S as gt}from"../chunks/BZmrLQwT.js";import{C as $t,a as ht}from"../chunks/wamM80bu.js";import{E as xt}from"../chunks/AEyooZaf.js";import{F as bt}from"../chunks/pRg-f8xU.js";import{D as wt}from"../chunks/Cdcajer6.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/Ib-7xmHT.js";import{B as St}from"../chunks/azBeeLR0.js";import{R as jt}from"../chunks/Bmz9gLBz.js";import{t as U}from"../chunks/Ce2MupFq.js";var zt=b("<!> Reclaim",1),Ft=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),Ot=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,i as mt,c as g,$ as ut,s,n as pt,r as $,b as T,g as r,t as G,j as k,u as J,e as rt}from"../chunks/ooPBmYPj.js";import{s as R}from"../chunks/BMGykAfL.js";import{a as t,f as b,c as B,t as Q}from"../chunks/_OLpdTiI.js";import{i as at}from"../chunks/C8ko2SLk.js";import{c as i}from"../chunks/CcYNc8-G.js";import{h as ft}from"../chunks/BM4_iXSA.js";import{c as vt}from"../chunks/C1aQuqo_.js";import{i as _t}from"../chunks/4PBDTLFF.js";import{S as gt}from"../chunks/BZmrLQwT.js";import{C as $t,a as ht}from"../chunks/wamM80bu.js";import{E as xt}from"../chunks/AEyooZaf.js";import{F as bt}from"../chunks/pRg-f8xU.js";import{D as wt}from"../chunks/Cdcajer6.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/Ib-7xmHT.js";import{B as St}from"../chunks/azBeeLR0.js";import{R as jt}from"../chunks/Bmz9gLBz.js";import{t as U}from"../chunks/Ce2MupFq.js";var zt=b("<!> Reclaim",1),Ft=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),Ot=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 j=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=Ft(),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),F=g(P);{let O=J(()=>r(A)===l().id);St(F,{size:"sm",variant:"outline",get disabled(){return r(O)},onclick:()=>k(p,l(),!0),children:(q,Vt)=>{var et=zt(),nt=e(et);jt(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(j):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(),j=e(S);i(j,()=>Pt,(a,z)=>{z(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 F=Ot(),O=s(e(F)),q=g(O,!0);$(O),T(),G(()=>R(q,r(p).name)),t(P,F)};at(_,P=>{r(p)&&P(M)})}t(c,u)},$$slots:{default:!0}})}),t(h,v)},$$slots:{default:!0}})});var L=s(j,2);i(L,()=>Tt,(a,z)=>{z(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,n as m}from"../chunks/ooPBmYPj.js";import{c as s,a as n}from"../chunks/_OLpdTiI.js";import{s as i}from"../chunks/BNScKugQ.js";import{A as f}from"../chunks/DdaJZmuM.js";function _(r,t){f(r,{mode:"fixed",children:(a,d)=>{var o=s(),e=p(o);i(e,()=>t.children??m),n(a,o)},$$slots:{default:!0}})}export{_ as component};
1
+ import"../chunks/DsnmJJEf.js";import{f as p,n as m}from"../chunks/ooPBmYPj.js";import{c as s,a as n}from"../chunks/_OLpdTiI.js";import{s as i}from"../chunks/BNScKugQ.js";import{A as f}from"../chunks/CS49LPny.js";function _(r,t){f(r,{mode:"fixed",children:(a,d)=>{var o=s(),e=p(o);i(e,()=>t.children??m),n(a,o)},$$slots:{default:!0}})}export{_ as component};
@@ -1 +1 @@
1
- import"../chunks/DsnmJJEf.js";import{p as R,a as U,g,f as C,u as v,c as r,n as F,r as o,s as w,t as L}from"../chunks/ooPBmYPj.js";import{s as B,r as O,a as q,d as D}from"../chunks/CcYNc8-G.js";import{s as u}from"../chunks/BMGykAfL.js";import{s as E}from"../chunks/BNScKugQ.js";import{i as J}from"../chunks/C8ko2SLk.js";import{a as _,f as y,c as K}from"../chunks/_OLpdTiI.js";import{p as Q}from"../chunks/DHWrMZkd.js";import{A as T}from"../chunks/DdaJZmuM.js";import{S as V,G as W}from"../chunks/4y4xLOS_.js";import{U as X}from"../chunks/BxCHY0iG.js";import{F as Y}from"../chunks/CMjc_m7Z.js";import{R as Z}from"../chunks/Bmz9gLBz.js";import{A as ee}from"../chunks/2XlIPTRw.js";import{L as ae}from"../chunks/DZFqETAQ.js";import{S as te}from"../chunks/DRDjLZb3.js";import{I as re}from"../chunks/Bnpwcepm.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=l=>{var d=se(),f=r(d),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(d),L(N=>{u(z,N),u(G,e.data.org.name),u(I,e.data.org.slug)},[()=>k(e.data.org.name)]),_(l,d)};J(H,l=>{e.data.org&&l(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,n as F,r as o,s as w,t as L}from"../chunks/ooPBmYPj.js";import{s as B,r as O,a as q,d as D}from"../chunks/CcYNc8-G.js";import{s as u}from"../chunks/BMGykAfL.js";import{s as E}from"../chunks/BNScKugQ.js";import{i as J}from"../chunks/C8ko2SLk.js";import{a as _,f as y,c as K}from"../chunks/_OLpdTiI.js";import{p as Q}from"../chunks/BSyJ0ZuA.js";import{A as T}from"../chunks/CS49LPny.js";import{S as V,G as W}from"../chunks/VmqnFAi3.js";import{U as X}from"../chunks/BxCHY0iG.js";import{F as Y}from"../chunks/CMjc_m7Z.js";import{R as Z}from"../chunks/Bmz9gLBz.js";import{A as ee}from"../chunks/2XlIPTRw.js";import{L as ae}from"../chunks/DZFqETAQ.js";import{S as te}from"../chunks/DRDjLZb3.js";import{I as re}from"../chunks/Bnpwcepm.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=l=>{var d=se(),f=r(d),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(d),L(N=>{u(z,N),u(G,e.data.org.name),u(I,e.data.org.slug)},[()=>k(e.data.org.name)]),_(l,d)};J(H,l=>{e.data.org&&l(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,d as U,t as q,$ as z,g as r,c as e,r as a,s as v,b as u,u as x}from"../chunks/ooPBmYPj.js";import{s as h}from"../chunks/BMGykAfL.js";import{a as n,f as C,t as g}from"../chunks/_OLpdTiI.js";import{i as D}from"../chunks/C8ko2SLk.js";import{h as E}from"../chunks/BM4_iXSA.js";import{p as $}from"../chunks/D7PHp8xb.js";import{A as F}from"../chunks/DdaJZmuM.js";import{B as _}from"../chunks/azBeeLR0.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 A=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),P=e(i,!0);a(i);var l=v(i,2),j=e(l,!0);a(l);var c=v(l,2),k=e(c);{var B=t=>{_(t,{href:"/library",children:(d,H)=>{u();var p=g("Open library");n(d,p)},$$slots:{default:!0}})},w=t=>{_(t,{href:"/login",children:(d,H)=>{u();var p=g("Sign in");n(d,p)},$$slots:{default:!0}})};D(k,t=>{r(A)?t(B):t(w,-1)})}a(c),a(m),a(o),q(()=>{h(P,r(s).name),h(j,r(s).tagline)}),n(f,o)},$$slots:{default:!0}}),S()}export{W as component};
1
+ import"../chunks/DsnmJJEf.js";import{p as O,a as S,d as U,t as q,$ as z,g as r,c as e,r as a,s as v,b as u,u as x}from"../chunks/ooPBmYPj.js";import{s as h}from"../chunks/BMGykAfL.js";import{a as n,f as C,t as g}from"../chunks/_OLpdTiI.js";import{i as D}from"../chunks/C8ko2SLk.js";import{h as E}from"../chunks/BM4_iXSA.js";import{p as $}from"../chunks/smW5maEe.js";import{A as F}from"../chunks/CS49LPny.js";import{B as _}from"../chunks/azBeeLR0.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 A=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),P=e(i,!0);a(i);var l=v(i,2),j=e(l,!0);a(l);var c=v(l,2),k=e(c);{var B=t=>{_(t,{href:"/library",children:(d,H)=>{u();var p=g("Open library");n(d,p)},$$slots:{default:!0}})},w=t=>{_(t,{href:"/login",children:(d,H)=>{u();var p=g("Sign in");n(d,p)},$$slots:{default:!0}})};D(k,t=>{r(A)?t(B):t(w,-1)})}a(c),a(m),a(o),q(()=>{h(P,r(s).name),h(j,r(s).tagline)}),n(f,o)},$$slots:{default:!0}}),S()}export{W as component};
@@ -1,2 +1,2 @@
1
- import"../chunks/DsnmJJEf.js";import{p as aa,a as ta,d as ea,$ as ra,c as r,r as o,f as g,s as t,b as v,t as $}from"../chunks/ooPBmYPj.js";import{s as y}from"../chunks/BMGykAfL.js";import{a as e,f as u,t as f,c as oa}from"../chunks/_OLpdTiI.js";import{i as A}from"../chunks/C8ko2SLk.js";import{c as T}from"../chunks/CcYNc8-G.js";import{h as sa}from"../chunks/BM4_iXSA.js";import{r as ia,s as da}from"../chunks/C1aQuqo_.js";import{p as na}from"../chunks/D7PHp8xb.js";import{B as la}from"../chunks/azBeeLR0.js";import{C as va}from"../chunks/D99uXqZb.js";import{A as ma,a as ca}from"../chunks/BW4xleRz.js";import{L as Y}from"../chunks/B8uG8z2c.js";import{I as j}from"../chunks/jFKgkeON.js";var pa=u('<div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight">Invite unavailable</h2> <p class="text-muted-foreground text-sm"> </p></div> <div class="text-center"><a href="/login" class="text-primary text-sm underline">Go to login</a></div>',1),fa=u("<!> <!>",1),ua=u('Display name <span class="text-muted-foreground">(optional)</span>',1),_a=u('<div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div>',1),xa=u('<div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight"> </h2> <p class="text-muted-foreground text-sm">You were invited as <span class="font-medium"> </span>. <!></p></div> <form method="POST" class="space-y-4"><input type="hidden" name="token"/> <!> <!> <!></form>',1),ha=u('<div class="bg-background flex min-h-screen items-center justify-center px-4 py-12 sm:px-6 lg:px-8"><div class="w-full max-w-sm space-y-6"><!></div></div>');function Sa(z,s){aa(s,!0);var C=ha();sa("p8b09p",n=>{ea(()=>{ra.title=`Accept invite - ${na.data.branding.name??""}`})});var D=r(C),E=r(D);{var F=n=>{var _=pa(),m=g(_),c=t(r(m),2),N=r(c,!0);o(c),o(m),v(2),$(()=>y(N,s.data.reason)),e(n,_)},H=n=>{var _=xa(),m=g(_),c=r(m),N=r(c);o(c);var G=t(c,2),I=t(r(G)),K=r(I,!0);o(I);var Q=t(I,2);{var U=a=>{var i=f(`Click below to finish creating your account — your identity is verified by your company
1
+ import"../chunks/DsnmJJEf.js";import{p as aa,a as ta,d as ea,$ as ra,c as r,r as o,f as g,s as t,b as v,t as $}from"../chunks/ooPBmYPj.js";import{s as y}from"../chunks/BMGykAfL.js";import{a as e,f as u,t as f,c as oa}from"../chunks/_OLpdTiI.js";import{i as A}from"../chunks/C8ko2SLk.js";import{c as T}from"../chunks/CcYNc8-G.js";import{h as sa}from"../chunks/BM4_iXSA.js";import{r as ia,s as da}from"../chunks/C1aQuqo_.js";import{p as na}from"../chunks/smW5maEe.js";import{B as la}from"../chunks/azBeeLR0.js";import{C as va}from"../chunks/D99uXqZb.js";import{A as ma,a as ca}from"../chunks/BW4xleRz.js";import{L as Y}from"../chunks/B8uG8z2c.js";import{I as j}from"../chunks/jFKgkeON.js";var pa=u('<div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight">Invite unavailable</h2> <p class="text-muted-foreground text-sm"> </p></div> <div class="text-center"><a href="/login" class="text-primary text-sm underline">Go to login</a></div>',1),fa=u("<!> <!>",1),ua=u('Display name <span class="text-muted-foreground">(optional)</span>',1),_a=u('<div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div> <div class="space-y-2"><!> <!></div>',1),xa=u('<div class="space-y-1 text-center"><h2 class="text-foreground text-2xl font-bold tracking-tight"> </h2> <p class="text-muted-foreground text-sm">You were invited as <span class="font-medium"> </span>. <!></p></div> <form method="POST" class="space-y-4"><input type="hidden" name="token"/> <!> <!> <!></form>',1),ha=u('<div class="bg-background flex min-h-screen items-center justify-center px-4 py-12 sm:px-6 lg:px-8"><div class="w-full max-w-sm space-y-6"><!></div></div>');function Sa(z,s){aa(s,!0);var C=ha();sa("p8b09p",n=>{ea(()=>{ra.title=`Accept invite - ${na.data.branding.name??""}`})});var D=r(C),E=r(D);{var F=n=>{var _=pa(),m=g(_),c=t(r(m),2),N=r(c,!0);o(c),o(m),v(2),$(()=>y(N,s.data.reason)),e(n,_)},H=n=>{var _=xa(),m=g(_),c=r(m),N=r(c);o(c);var G=t(c,2),I=t(r(G)),K=r(I,!0);o(I);var Q=t(I,2);{var U=a=>{var i=f(`Click below to finish creating your account — your identity is verified by your company
2
2
  sign-in.`);e(a,i)},V=a=>{var i=f("Set a password to finish creating your account.");e(a,i)};A(Q,a=>{s.data.mode==="proxy"?a(U):a(V,-1)})}o(G),o(m);var J=t(m,2),q=r(J);ia(q);var M=t(q,2);{var W=a=>{var i=oa(),d=g(i);T(d,()=>ca,(w,B)=>{B(w,{variant:"destructive",children:(x,L)=>{var b=fa(),h=g(b);va(h,{});var k=t(h,2);T(k,()=>ma,(S,l)=>{l(S,{children:(P,p)=>{v();var R=f();$(()=>y(R,s.form.error)),e(P,R)},$$slots:{default:!0}})}),e(x,b)},$$slots:{default:!0}})}),e(a,i)};A(M,a=>{s.form?.error&&a(W)})}var O=t(M,2);{var X=a=>{var i=_a(),d=g(i),w=r(d);Y(w,{for:"displayName",children:(l,P)=>{v();var p=ua();v(),e(l,p)},$$slots:{default:!0}});var B=t(w,2);j(B,{id:"displayName",name:"displayName",type:"text",placeholder:"Your name"}),o(d);var x=t(d,2),L=r(x);Y(L,{for:"password",children:(l,P)=>{v();var p=f("Password");e(l,p)},$$slots:{default:!0}});var b=t(L,2);j(b,{id:"password",name:"password",type:"password",required:!0,placeholder:"Min. 8 characters"}),o(x);var h=t(x,2),k=r(h);Y(k,{for:"confirm",children:(l,P)=>{v();var p=f("Confirm password");e(l,p)},$$slots:{default:!0}});var S=t(k,2);j(S,{id:"confirm",name:"confirm",type:"password",required:!0,placeholder:"Repeat password"}),o(h),e(a,i)};A(O,a=>{s.data.mode==="password"&&a(X)})}var Z=t(O,2);la(Z,{type:"submit",class:"w-full",children:(a,i)=>{v();var d=f();$(()=>y(d,s.data.mode==="proxy"?"Accept invite":"Create account")),e(a,d)},$$slots:{default:!0}}),o(J),$(()=>{y(N,`Join ${s.data.orgName??""}`),y(K,s.data.email),da(q,s.data.token)}),e(n,_)};A(E,n=>{s.data.ok?n(H,-1):n(F)})}o(D),o(C),e(z,C),ta()}export{Sa as component};
@@ -0,0 +1 @@
1
+ import"../chunks/DsnmJJEf.js";import{p as O,a as V,i as W,$ as E,c as l,g as S,s as c,r as o,f as N,b as F,t as J,u as G}from"../chunks/ooPBmYPj.js";import{s as P}from"../chunks/BMGykAfL.js";import{a as m,f as h,c as K}from"../chunks/_OLpdTiI.js";import{e as Q,a as R}from"../chunks/C1aQuqo_.js";import{s as z,r as H,c as p}from"../chunks/CcYNc8-G.js";import{h as T}from"../chunks/BM4_iXSA.js";import{p as X}from"../chunks/smW5maEe.js";import{S as Y}from"../chunks/B_Lmgh7q.js";import{S as Z}from"../chunks/BZmrLQwT.js";import{C as ee,a as te}from"../chunks/uINs3xv3.js";import{I as B}from"../chunks/Bnpwcepm.js";import{C as ae,a as se}from"../chunks/wamM80bu.js";import{U as re}from"../chunks/BxCHY0iG.js";import{B as oe}from"../chunks/BNzEBMy8.js";import{S as ne}from"../chunks/DRDjLZb3.js";function ie(n,e){let i=H(e,["$$slots","$$events","$$legacy"]);const a=[["circle",{cx:"12",cy:"12",r:"3"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12"}]];B(n,z({name:"git-commit-horizontal"},()=>i,{get iconNode(){return a}}))}function de(n,e){let i=H(e,["$$slots","$$events","$$legacy"]);const a=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1"}]];B(n,z({name:"layout-dashboard"},()=>i,{get iconNode(){return a}}))}var le=h("<!> Web app build",1),ce=h('<div class="flex flex-wrap items-baseline gap-x-3 gap-y-1"><code class="text-foreground font-mono text-xs"> </code> <span class="text-muted-foreground text-xs"> </span> <span class="text-muted-foreground text-xs"> </span></div>'),me=h("<!> <!>",1),fe=h('<div class="space-y-6"><!> <div class="grid gap-3 sm:grid-cols-2 lg:grid-cols-3"></div> <!></div>');function Ue(n,e){O(e,!0);const i=G(()=>X.data.branding.name),a={hash:"d5f0b8c",fullHash:"d5f0b8c0ba24b0b12bff65c5e75e13e32dd94b3a",message:"Merge pull request #54 from VektorNode/changeset-release/main",date:"2026-05-14 16:32:16 +0200"},f=t=>e.data.platformPermissions.includes("instance_admin")||e.data.platformPermissions.includes(t),I=G(()=>[{href:"/admin/users",icon:re,value:e.data.stats.users??"—",label:e.data.stats.users===null?"User store unavailable":`User${e.data.stats.users===1?"":"s"}`,show:f("manage_instance_users")},{href:"/admin/organizations",icon:oe,value:"Organizations",label:"All orgs on this instance",show:f("instance_admin")},{href:"/admin/compute",icon:ne,value:"Compute",label:"Servers, status & config",show:f("manage_compute")},{href:"/projects",icon:de,value:"Content",label:"Definitions & projects",show:f("instance_admin")}].filter(t=>t.show));var g=fe();T("1jef3w8",t=>{W(()=>{E.title="Admin · General"})});var A=l(g);Z(A,{eyebrow:"Admin",title:"General",get description(){return`At-a-glance health of this ${S(i)??""} instance — users, compute, and content.`}});var v=c(A,2);Q(v,21,()=>S(I),t=>t.href,(t,_)=>{Y(t,z(()=>S(_)))}),o(v);var k=c(v,2);p(k,()=>se,(t,_)=>{_(t,{children:(q,ue)=>{var U=me(),j=N(U);p(j,()=>ee,(x,b)=>{b(x,{children:($,L)=>{var s=K(),r=N(s);p(r,()=>te,(y,d)=>{d(y,{class:"flex items-center gap-2 text-sm font-medium",children:(w,C)=>{var u=le(),M=N(u);ie(M,{class:"text-muted-foreground h-4 w-4"}),F(),m(w,u)},$$slots:{default:!0}})}),m($,s)},$$slots:{default:!0}})});var D=c(j,2);p(D,()=>ae,(x,b)=>{b(x,{children:($,L)=>{var s=ce(),r=l(s),y=l(r,!0);o(r);var d=c(r,2),w=l(d,!0);o(d);var C=c(d,2),u=l(C,!0);o(C),o(s),J(()=>{R(r,"title",a.fullHash),P(y,a.hash),P(w,a.message),P(u,a.date)}),m($,s)},$$slots:{default:!0}})}),m(q,U)},$$slots:{default:!0}})}),o(g),m(n,g),V()}export{Ue as component};
@@ -1 +1 @@
1
- {"version":"1778764328080"}
1
+ {"version":"1778769353572"}
Binary file
Binary file