@lunora/studio 1.0.0-alpha.59 → 1.0.0-alpha.60

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 (381) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -43
  3. package/dist/mount.js +1 -27
  4. package/dist/packem_chunks/ApiTab.js +1 -251
  5. package/dist/packem_chunks/AuditPanel.js +1 -200
  6. package/dist/packem_chunks/DeploymentHealthPanel.js +1 -664
  7. package/dist/packem_chunks/ExportImportPanel.js +3 -198
  8. package/dist/packem_chunks/FileBrowser.js +4 -2955
  9. package/dist/packem_chunks/FunctionRunner.js +1 -326
  10. package/dist/packem_chunks/FunctionStatsPanel.js +1 -377
  11. package/dist/packem_chunks/HealthPanel.js +1 -648
  12. package/dist/packem_chunks/InsightsPanel.js +1 -462
  13. package/dist/packem_chunks/LogsPanel.js +1 -1303
  14. package/dist/packem_chunks/MailPanel.js +2 -353
  15. package/dist/packem_chunks/MetricsPanel.js +1 -1960
  16. package/dist/packem_chunks/MigrationsPanel.js +1 -239
  17. package/dist/packem_chunks/NotificationsPanel.js +1 -306
  18. package/dist/packem_chunks/PitrPanel.js +1 -252
  19. package/dist/packem_chunks/SchemaViewer.js +1 -2512
  20. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -95
  21. package/dist/packem_chunks/SettingsPanel.js +1 -391
  22. package/dist/packem_chunks/SqlEditorPanel.js +4 -2340
  23. package/dist/packem_chunks/TableEditor.js +1 -290
  24. package/dist/packem_chunks/agents-panel.js +1 -326
  25. package/dist/packem_chunks/analytics-panel.js +1 -261
  26. package/dist/packem_chunks/auth-audit-panel.js +1 -247
  27. package/dist/packem_chunks/auth-config-panel.js +1 -365
  28. package/dist/packem_chunks/auth-sessions-panel.js +1 -175
  29. package/dist/packem_chunks/containers-panel.js +1 -261
  30. package/dist/packem_chunks/dashboards-panel.js +1 -781
  31. package/dist/packem_chunks/fanout-panel.js +1 -482
  32. package/dist/packem_chunks/flags-panel.js +1 -176
  33. package/dist/packem_chunks/issues-panel.js +1 -427
  34. package/dist/packem_chunks/kv-browser.js +1 -1896
  35. package/dist/packem_chunks/log-drains-panel.js +4 -273
  36. package/dist/packem_chunks/organizations-panel.js +1 -3209
  37. package/dist/packem_chunks/payments-panel.js +1 -213
  38. package/dist/packem_chunks/permissions-panel.js +1 -805
  39. package/dist/packem_chunks/queues-panel.js +1 -1075
  40. package/dist/packem_chunks/rls-panel.js +1 -315
  41. package/dist/packem_chunks/schedule-panel.js +1 -831
  42. package/dist/packem_chunks/sparkline.js +1 -79
  43. package/dist/packem_chunks/storage-rules-panel.js +1 -140
  44. package/dist/packem_chunks/subscriptions-panel.js +1 -238
  45. package/dist/packem_chunks/sync-client-panel.js +1 -0
  46. package/dist/packem_chunks/traces-panel.js +1 -747
  47. package/dist/packem_chunks/users-panel.js +1 -1731
  48. package/dist/packem_chunks/vector-browser.js +1 -281
  49. package/dist/packem_chunks/workflows-panel.js +1 -562
  50. package/dist/packem_shared/ADMIN_FUNCTIONS-BYNSbBVE.js +1 -0
  51. package/dist/packem_shared/ApiDocsPanel-eJYZlylw.js +2 -0
  52. package/dist/packem_shared/ApiReferencePanel-C42v1jr6.js +1 -0
  53. package/dist/packem_shared/CommandPalette-CVIaY3j8.js +1 -0
  54. package/dist/packem_shared/ConfirmButton-CTL3f3kr.js +1 -0
  55. package/dist/packem_shared/ConnectionBadge-DOk0CQWo.js +1 -0
  56. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-BCC8_4BQ.js +1 -0
  57. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-B-hcFVoi.js +1 -0
  58. package/dist/packem_shared/DEFAULT_LOCALE-BZ4NojpD.js +1 -0
  59. package/dist/packem_shared/DataBrowser-B8J5lHjP.js +1 -0
  60. package/dist/packem_shared/DataFilters-Csb30F0C.js +1 -0
  61. package/dist/packem_shared/ErrorBoundary-DvzYskH7.js +1 -0
  62. package/dist/packem_shared/GlobalDataBrowser-RLJ6NvOs.js +1 -0
  63. package/dist/packem_shared/HomePanel-DL1HupAN.js +1 -0
  64. package/dist/packem_shared/OpenRpcReferencePanel-sGsIgYWj.js +1 -0
  65. package/dist/packem_shared/STUDIO_ROOT_CLASS-C6MccdVk.js +1 -0
  66. package/dist/packem_shared/ScheduledJobs-DUbo6epc.js +1 -0
  67. package/dist/packem_shared/ShardInput-BVn2iCU0.js +1 -0
  68. package/dist/packem_shared/Studio-BWBclm_C.js +1 -0
  69. package/dist/packem_shared/StudioApp-BFm73yVr.js +1 -0
  70. package/dist/packem_shared/StudioI18nProvider-CZ5h4nrV.js +1 -0
  71. package/dist/packem_shared/advisor-view-DaCX9Jy5.js +1 -0
  72. package/dist/packem_shared/aggregateMetrics-BNfajLa2.js +1 -0
  73. package/dist/packem_shared/alert-CVcOFuDR.js +1 -0
  74. package/dist/packem_shared/badge-BbuuAio7.js +1 -0
  75. package/dist/packem_shared/bar-chart-AryFCeoa.js +9 -0
  76. package/dist/packem_shared/browser-storage-xjTyMKY0.js +1 -0
  77. package/dist/packem_shared/button-BkCrNcAs.js +1 -0
  78. package/dist/packem_shared/card-CIDGUN6K.js +1 -0
  79. package/dist/packem_shared/cf-links-gbDy51nR.js +1 -0
  80. package/dist/packem_shared/checkbox-StT4Gob6.js +1 -0
  81. package/dist/packem_shared/data-grid-BMBKzMEJ.js +1 -0
  82. package/dist/packem_shared/data-view-params-C8T3bW1z.js +1 -0
  83. package/dist/packem_shared/dropdown-menu-C3RQ_HlW.js +2 -0
  84. package/dist/packem_shared/empty-state-Cg7t_8qu.js +1 -0
  85. package/dist/packem_shared/error-alert-B59DnrDI.js +1 -0
  86. package/dist/packem_shared/grid-features-uZCUj955.js +6 -0
  87. package/dist/packem_shared/home-panel-B-8BCffw.js +3 -0
  88. package/dist/packem_shared/input-JHu63lTv.js +1 -0
  89. package/dist/packem_shared/internal-AtZ4bTal.js +2 -0
  90. package/dist/packem_shared/label-6uP1obNF.js +1 -0
  91. package/dist/packem_shared/live-status-CGW2JHf_.js +1 -0
  92. package/dist/packem_shared/log-fields-CoL3hsIQ.js +1 -0
  93. package/dist/packem_shared/modal-shell-CUwwWC2o.js +1 -0
  94. package/dist/packem_shared/reference-view-KvhektwF.js +12 -0
  95. package/dist/packem_shared/result-chart-CwKhhKM0.js +1 -0
  96. package/dist/packem_shared/scroll-area-DTEq6Jec.js +2 -0
  97. package/dist/packem_shared/select-Bul-DeII.js +2 -0
  98. package/dist/packem_shared/shard-history-DMEW5VBE.js +1 -0
  99. package/dist/packem_shared/skeleton-C1wQ9M5t.js +1 -0
  100. package/dist/packem_shared/sparkline-DtcZoU48.js +1 -0
  101. package/dist/packem_shared/storage-tier-DznqOf-q.js +1 -0
  102. package/dist/packem_shared/studio-BHA7hnI3.js +2 -0
  103. package/dist/packem_shared/table-DdJBrClo.js +2 -0
  104. package/dist/packem_shared/table-list-sidebar-CMCcNALK.js +1 -0
  105. package/dist/packem_shared/textarea-Bu2-jKAs.js +1 -0
  106. package/dist/packem_shared/trace-handoff-Dw7mwjxu.js +1 -0
  107. package/dist/packem_shared/use-admin-query-Di3fLE8H.js +1 -0
  108. package/dist/packem_shared/use-async-submit-H68GHPz8.js +1 -0
  109. package/dist/packem_shared/useDebounced-Ihdiid_k.js +1 -0
  110. package/dist/packem_shared/utils-bhneXptQ.js +1 -0
  111. package/dist/packem_shared/virtual-rect-1o1veP7R.js +1 -0
  112. package/dist/standalone/chunk-23HKRH5H.js +13 -0
  113. package/dist/standalone/chunk-2A4RKII2.js +1 -0
  114. package/dist/standalone/chunk-3DTM4GI5.js +1 -0
  115. package/dist/standalone/chunk-3MHKT76P.js +1 -0
  116. package/dist/standalone/chunk-46IB4C4Q.js +1 -0
  117. package/dist/standalone/chunk-4AYEV5UN.js +1 -0
  118. package/dist/standalone/chunk-4FNHHFWR.js +1 -0
  119. package/dist/standalone/chunk-6CLVIOCB.js +1 -0
  120. package/dist/standalone/chunk-6I62RSI5.js +1 -0
  121. package/dist/standalone/chunk-6OKDCV7J.js +1 -0
  122. package/dist/standalone/chunk-6P7HIPUE.js +1 -0
  123. package/dist/standalone/chunk-6UYILUSX.js +1 -0
  124. package/dist/standalone/chunk-725RLB7D.js +1 -0
  125. package/dist/standalone/chunk-7AZZ7OJO.js +1 -0
  126. package/dist/standalone/chunk-7CRLAMGB.js +1 -0
  127. package/dist/standalone/chunk-7Z5QEFR4.js +2 -0
  128. package/dist/standalone/chunk-AGVJJQFL.js +1 -0
  129. package/dist/standalone/chunk-AKTGRZXN.js +1 -0
  130. package/dist/standalone/chunk-BAIN7UJ4.js +1 -0
  131. package/dist/standalone/chunk-BHWSIIDT.js +1 -0
  132. package/dist/standalone/{chunk-L7SK4ZZD.js → chunk-C4O5UR4Y.js} +1 -1
  133. package/dist/standalone/chunk-C4VURT57.js +1 -0
  134. package/dist/standalone/chunk-CKO3F55C.js +4 -0
  135. package/dist/standalone/chunk-CVMRZUF5.js +4 -0
  136. package/dist/standalone/chunk-CWWGDW4V.js +1 -0
  137. package/dist/standalone/chunk-CYET4BRZ.js +1 -0
  138. package/dist/standalone/chunk-CZEUVNCQ.js +1 -0
  139. package/dist/standalone/chunk-FXFK4M4E.js +1 -0
  140. package/dist/standalone/chunk-FYAJPWE7.js +1 -0
  141. package/dist/standalone/chunk-GS7OBQO5.js +1 -0
  142. package/dist/standalone/chunk-GTXVH7I5.js +1 -0
  143. package/dist/standalone/chunk-H6SIM4BT.js +1 -0
  144. package/dist/standalone/chunk-H6WOFY6A.js +8 -0
  145. package/dist/standalone/chunk-HA34GYEX.js +1 -0
  146. package/dist/standalone/chunk-HMIOF5GV.js +1 -0
  147. package/dist/standalone/chunk-HY46NTNW.js +6 -0
  148. package/dist/standalone/chunk-IBCKC2BO.js +1 -0
  149. package/dist/standalone/chunk-ICKBVXPP.js +1 -0
  150. package/dist/standalone/chunk-IE4ROTQD.js +1 -0
  151. package/dist/standalone/chunk-IYYTWZ2E.js +2 -0
  152. package/dist/standalone/chunk-J2LMP2A7.js +1 -0
  153. package/dist/standalone/chunk-JC6WYIHM.js +1 -0
  154. package/dist/standalone/chunk-JKPK25JO.js +1 -0
  155. package/dist/standalone/chunk-JLFCXBNQ.js +1 -0
  156. package/dist/standalone/chunk-JRWBGR5B.js +1 -0
  157. package/dist/standalone/chunk-K5PFWU5J.js +1 -0
  158. package/dist/standalone/chunk-KJTLW5W2.js +11 -0
  159. package/dist/standalone/{chunk-HBGS4SEX.js → chunk-KLLYGWNF.js} +9 -9
  160. package/dist/standalone/chunk-KNN3ZEQ7.js +1 -0
  161. package/dist/standalone/{chunk-4QHKBC77.js → chunk-KOC5KV3E.js} +1 -1
  162. package/dist/standalone/chunk-KSRXMTBV.js +1 -0
  163. package/dist/standalone/chunk-KYCAYNXM.js +1 -0
  164. package/dist/standalone/chunk-KZ2YUNMR.js +1 -0
  165. package/dist/standalone/chunk-LKHUVEHX.js +1 -0
  166. package/dist/standalone/chunk-LPOKAJT4.js +4 -0
  167. package/dist/standalone/chunk-MZEK4SGD.js +1 -0
  168. package/dist/standalone/chunk-NCCUM26H.js +1 -0
  169. package/dist/standalone/chunk-O62HJZV3.js +1 -0
  170. package/dist/standalone/chunk-OTJOI23O.js +62 -0
  171. package/dist/standalone/chunk-P2NBOUGZ.js +1 -0
  172. package/dist/standalone/chunk-P4J6XNG3.js +1 -0
  173. package/dist/standalone/chunk-PGDWFWH5.js +1 -0
  174. package/dist/standalone/chunk-PR2SE2MD.js +1 -0
  175. package/dist/standalone/chunk-PTTDIYGP.js +1 -0
  176. package/dist/standalone/chunk-PWDMXMRD.js +1 -0
  177. package/dist/standalone/chunk-Q34MSC2F.js +1 -0
  178. package/dist/standalone/chunk-Q5WXTZWX.js +1 -0
  179. package/dist/standalone/chunk-QC5HCNJZ.js +4 -0
  180. package/dist/standalone/chunk-QJKRHZYV.js +1 -0
  181. package/dist/standalone/chunk-R43KHQDA.js +1 -0
  182. package/dist/standalone/chunk-RC2K5RBE.js +1 -0
  183. package/dist/standalone/chunk-RE6UWCMG.js +1 -0
  184. package/dist/standalone/chunk-RUP3M2GF.js +3 -0
  185. package/dist/standalone/chunk-SA6MBPBL.js +1 -0
  186. package/dist/standalone/{chunk-BJGBHGK3.js → chunk-SEDZDNQF.js} +1 -1
  187. package/dist/standalone/chunk-SKHEGARW.js +1 -0
  188. package/dist/standalone/chunk-SKJZDOHG.js +1 -0
  189. package/dist/standalone/chunk-SNDYNCAA.js +1 -0
  190. package/dist/standalone/chunk-SZUHZ2OG.js +1 -0
  191. package/dist/standalone/chunk-TAE2H7PU.js +1 -0
  192. package/dist/standalone/chunk-TEIBKU46.js +1 -0
  193. package/dist/standalone/chunk-TO6NLVFD.js +1 -0
  194. package/dist/standalone/chunk-TYTJDFX2.js +1 -0
  195. package/dist/standalone/{chunk-LXULVPEM.js → chunk-UDZY7MKE.js} +3 -3
  196. package/dist/standalone/chunk-UHHTEBC3.js +1 -0
  197. package/dist/standalone/chunk-UNDFOYRI.js +1 -0
  198. package/dist/standalone/chunk-UNN4CESU.js +1 -0
  199. package/dist/standalone/chunk-UNXX5GQH.js +1 -0
  200. package/dist/standalone/{chunk-ZHVTQ37P.js → chunk-UREY4GLG.js} +1 -1
  201. package/dist/standalone/chunk-UWF5DOGV.js +1 -0
  202. package/dist/standalone/chunk-UY2Y5CXB.js +1 -0
  203. package/dist/standalone/{chunk-VLXV72QE.js → chunk-UZYGEOWY.js} +1 -1
  204. package/dist/standalone/chunk-V66TSUKV.js +1 -0
  205. package/dist/standalone/chunk-VEFNSN7P.js +1 -0
  206. package/dist/standalone/chunk-VUJGR4PB.js +1 -0
  207. package/dist/standalone/chunk-VUXJER3D.js +1 -0
  208. package/dist/standalone/chunk-W572365D.js +1 -0
  209. package/dist/standalone/chunk-WYFLGXZ3.js +3 -0
  210. package/dist/standalone/chunk-XDKFPBIL.js +1 -0
  211. package/dist/standalone/chunk-XRKCGQM2.js +1 -0
  212. package/dist/standalone/chunk-YNBJ6ICE.js +1 -0
  213. package/dist/standalone/chunk-YQ5PILIJ.js +1 -0
  214. package/dist/standalone/chunk-YT7VXQVX.js +1 -0
  215. package/dist/standalone/chunk-Z7MUQMLE.js +1 -0
  216. package/dist/standalone/chunk-ZFWEPGWG.js +1 -0
  217. package/dist/standalone/chunk-ZMFZRGAN.js +1 -0
  218. package/dist/standalone/studio.js +9 -214
  219. package/package.json +4 -4
  220. package/dist/packem_shared/ADMIN_FUNCTIONS-P2UzJscH.js +0 -62
  221. package/dist/packem_shared/ApiDocsPanel-DNDpeR5O.js +0 -842
  222. package/dist/packem_shared/ApiReferencePanel-ChlRsAXU.js +0 -230
  223. package/dist/packem_shared/CommandPalette-BpkopP5f.js +0 -373
  224. package/dist/packem_shared/ConfirmButton-C2eVi2Qv.js +0 -59
  225. package/dist/packem_shared/ConnectionBadge-B2DDM2Tn.js +0 -111
  226. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js +0 -50
  227. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js +0 -89
  228. package/dist/packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js +0 -27
  229. package/dist/packem_shared/DataBrowser-obTn4sKX.js +0 -4493
  230. package/dist/packem_shared/DataFilters-B1Q7mrt7.js +0 -253
  231. package/dist/packem_shared/ErrorBoundary-BzAApI7J.js +0 -66
  232. package/dist/packem_shared/GlobalDataBrowser-BCaohHZ5.js +0 -293
  233. package/dist/packem_shared/HomePanel-DCRj3hGB.js +0 -14
  234. package/dist/packem_shared/OpenRpcReferencePanel-CIeQE1aE.js +0 -192
  235. package/dist/packem_shared/STUDIO_ROOT_CLASS-D12gX2dV.js +0 -3
  236. package/dist/packem_shared/ScheduledJobs-BQzQo84k.js +0 -262
  237. package/dist/packem_shared/ShardInput-CZnpHILL.js +0 -107
  238. package/dist/packem_shared/Studio-DnlPCbID.js +0 -16
  239. package/dist/packem_shared/StudioApp-CzqlB4zO.js +0 -708
  240. package/dist/packem_shared/StudioI18nProvider-B-tDCZIi.js +0 -48
  241. package/dist/packem_shared/advisor-view-D95sN-wO.js +0 -159
  242. package/dist/packem_shared/aggregateMetrics-D4nUHEKU.js +0 -108
  243. package/dist/packem_shared/alert-CdAET2K_.js +0 -68
  244. package/dist/packem_shared/badge-B2PKA1-5.js +0 -49
  245. package/dist/packem_shared/bar-chart-DSwcWIRy.js +0 -3246
  246. package/dist/packem_shared/browser-storage-L4gOP5gJ.js +0 -105
  247. package/dist/packem_shared/button-BhsN2uZH.js +0 -49
  248. package/dist/packem_shared/card-F2vH_aj2.js +0 -175
  249. package/dist/packem_shared/cf-links-SIbyi4Y1.js +0 -8
  250. package/dist/packem_shared/checkbox-UNkzAxl-.js +0 -63
  251. package/dist/packem_shared/data-grid-BywzWfek.js +0 -183
  252. package/dist/packem_shared/data-view-params-Cd6yRVbv.js +0 -96
  253. package/dist/packem_shared/dropdown-menu-WY4B_eJO.js +0 -280
  254. package/dist/packem_shared/empty-state-DY_oe0k6.js +0 -98
  255. package/dist/packem_shared/error-alert-D9uIFJUS.js +0 -114
  256. package/dist/packem_shared/grid-features-ZOLhHKrR.js +0 -809
  257. package/dist/packem_shared/home-panel-BRAA2UlM.js +0 -1889
  258. package/dist/packem_shared/input-XH4r1Pt1.js +0 -53
  259. package/dist/packem_shared/internal-DzHCc2Rq.js +0 -131
  260. package/dist/packem_shared/label-D8ykjn5J.js +0 -46
  261. package/dist/packem_shared/live-status-FZ0psC1z.js +0 -44
  262. package/dist/packem_shared/log-fields-jEH83H2G.js +0 -18
  263. package/dist/packem_shared/modal-shell-hyaJvIJ6.js +0 -100
  264. package/dist/packem_shared/reference-view-DfXN7oWP.js +0 -2127
  265. package/dist/packem_shared/result-chart-Bf9mbCIo.js +0 -119
  266. package/dist/packem_shared/scroll-area-DLhcy-ml.js +0 -93
  267. package/dist/packem_shared/select-D9OwHEch.js +0 -273
  268. package/dist/packem_shared/shard-history-AxiJ1WPP.js +0 -16
  269. package/dist/packem_shared/skeleton-CGhL0p20.js +0 -45
  270. package/dist/packem_shared/sparkline-BnA1kC9X.js +0 -93
  271. package/dist/packem_shared/storage-tier-CL98eOvn.js +0 -85
  272. package/dist/packem_shared/studio-8QSXbZ98.js +0 -4192
  273. package/dist/packem_shared/table-DsCa9Qp9.js +0 -246
  274. package/dist/packem_shared/table-list-sidebar-gCE17v9B.js +0 -842
  275. package/dist/packem_shared/textarea-D3gaCU_-.js +0 -46
  276. package/dist/packem_shared/trace-handoff-CGolF3KS.js +0 -38
  277. package/dist/packem_shared/use-admin-query-C7JNuQp-.js +0 -106
  278. package/dist/packem_shared/use-async-submit-rnSk_jXl.js +0 -91
  279. package/dist/packem_shared/useDebounced-Dxncpg6z.js +0 -32
  280. package/dist/packem_shared/utils-B05Dmz_H.js +0 -8
  281. package/dist/packem_shared/virtual-rect-CVMUskSm.js +0 -10
  282. package/dist/standalone/chunk-2K47A3P6.js +0 -1
  283. package/dist/standalone/chunk-2MLA6WFH.js +0 -1
  284. package/dist/standalone/chunk-2NGUNNGW.js +0 -1
  285. package/dist/standalone/chunk-2TJVFKD2.js +0 -1
  286. package/dist/standalone/chunk-2YTF6LJ6.js +0 -1
  287. package/dist/standalone/chunk-3GXGLNKW.js +0 -1
  288. package/dist/standalone/chunk-3HGNPZBN.js +0 -1
  289. package/dist/standalone/chunk-3LJEGSMK.js +0 -11
  290. package/dist/standalone/chunk-3OA7PECS.js +0 -6
  291. package/dist/standalone/chunk-4PC7IXNY.js +0 -1
  292. package/dist/standalone/chunk-56XQYNUJ.js +0 -1
  293. package/dist/standalone/chunk-5OIBXYZM.js +0 -1
  294. package/dist/standalone/chunk-5QT5JRXD.js +0 -3
  295. package/dist/standalone/chunk-6RLPR7PL.js +0 -1
  296. package/dist/standalone/chunk-6V74EUPK.js +0 -1
  297. package/dist/standalone/chunk-7EE33WLB.js +0 -1
  298. package/dist/standalone/chunk-7TJJXVSE.js +0 -1
  299. package/dist/standalone/chunk-AHILM3ZP.js +0 -1
  300. package/dist/standalone/chunk-AN4RKMKW.js +0 -1
  301. package/dist/standalone/chunk-APSSZB6Z.js +0 -1
  302. package/dist/standalone/chunk-AXNGWSBM.js +0 -1
  303. package/dist/standalone/chunk-AXZILWRM.js +0 -1
  304. package/dist/standalone/chunk-C7RHEBOH.js +0 -1
  305. package/dist/standalone/chunk-CKSHCYGC.js +0 -2
  306. package/dist/standalone/chunk-CSWIYOB3.js +0 -1
  307. package/dist/standalone/chunk-D3VAON25.js +0 -1
  308. package/dist/standalone/chunk-DDLQN67F.js +0 -1
  309. package/dist/standalone/chunk-DGHW5JG5.js +0 -1
  310. package/dist/standalone/chunk-DMCSOTAE.js +0 -3
  311. package/dist/standalone/chunk-E3BKETAS.js +0 -1
  312. package/dist/standalone/chunk-E3OXNN6O.js +0 -1
  313. package/dist/standalone/chunk-E6BOGDIS.js +0 -1
  314. package/dist/standalone/chunk-F2YMCQ6B.js +0 -1
  315. package/dist/standalone/chunk-F7GE4X2U.js +0 -1
  316. package/dist/standalone/chunk-FAVUOGJR.js +0 -1
  317. package/dist/standalone/chunk-FXP6256Q.js +0 -1
  318. package/dist/standalone/chunk-G6CTAYHJ.js +0 -1
  319. package/dist/standalone/chunk-GTM65MVX.js +0 -1
  320. package/dist/standalone/chunk-H42W62SE.js +0 -1
  321. package/dist/standalone/chunk-HTF5ZX4I.js +0 -8
  322. package/dist/standalone/chunk-HV7G6DFP.js +0 -5
  323. package/dist/standalone/chunk-I2PS4L74.js +0 -1
  324. package/dist/standalone/chunk-IYHPYY4A.js +0 -1
  325. package/dist/standalone/chunk-J6J54MBP.js +0 -1
  326. package/dist/standalone/chunk-J7OGP4NN.js +0 -1
  327. package/dist/standalone/chunk-JSEXCW5Q.js +0 -1
  328. package/dist/standalone/chunk-JZLGLG4T.js +0 -1
  329. package/dist/standalone/chunk-KEGAWN6Y.js +0 -1
  330. package/dist/standalone/chunk-KZ6INM5M.js +0 -1
  331. package/dist/standalone/chunk-L2LN3MK4.js +0 -4
  332. package/dist/standalone/chunk-LT3FH6MW.js +0 -1
  333. package/dist/standalone/chunk-LZUWZBPE.js +0 -1
  334. package/dist/standalone/chunk-M4JM3TOY.js +0 -1
  335. package/dist/standalone/chunk-MLA5ZAEB.js +0 -1
  336. package/dist/standalone/chunk-MRBI5HNQ.js +0 -1
  337. package/dist/standalone/chunk-N5XX4HOL.js +0 -6
  338. package/dist/standalone/chunk-N7SVJOHN.js +0 -1
  339. package/dist/standalone/chunk-NKFXMDOD.js +0 -1
  340. package/dist/standalone/chunk-NPSNKFHE.js +0 -1
  341. package/dist/standalone/chunk-O3NAGRTR.js +0 -1
  342. package/dist/standalone/chunk-O7FVPUCO.js +0 -1
  343. package/dist/standalone/chunk-OKQXTLFX.js +0 -1
  344. package/dist/standalone/chunk-OXHHSUXO.js +0 -1
  345. package/dist/standalone/chunk-QAFAJBAW.js +0 -1
  346. package/dist/standalone/chunk-QAIM6KWT.js +0 -1
  347. package/dist/standalone/chunk-QCPMTB6W.js +0 -1
  348. package/dist/standalone/chunk-QQ2LOSZL.js +0 -1
  349. package/dist/standalone/chunk-QVIPA6UJ.js +0 -1
  350. package/dist/standalone/chunk-QVUQXJCT.js +0 -4
  351. package/dist/standalone/chunk-R2GMHLJY.js +0 -1
  352. package/dist/standalone/chunk-RD5UG2YL.js +0 -1
  353. package/dist/standalone/chunk-RJTIP3WF.js +0 -1
  354. package/dist/standalone/chunk-RRCPZMC2.js +0 -22
  355. package/dist/standalone/chunk-SHERR7ZP.js +0 -1
  356. package/dist/standalone/chunk-SOC5CY3F.js +0 -1
  357. package/dist/standalone/chunk-SS7JLF2I.js +0 -4
  358. package/dist/standalone/chunk-SWWYUGPL.js +0 -2
  359. package/dist/standalone/chunk-TAD43CG5.js +0 -1
  360. package/dist/standalone/chunk-TTXRHJUP.js +0 -4
  361. package/dist/standalone/chunk-UK64ZSUW.js +0 -1
  362. package/dist/standalone/chunk-UKDHGVOC.js +0 -1
  363. package/dist/standalone/chunk-UPNTMJFF.js +0 -1
  364. package/dist/standalone/chunk-V43BLH4J.js +0 -1
  365. package/dist/standalone/chunk-VL23Y44O.js +0 -4
  366. package/dist/standalone/chunk-VXM5H542.js +0 -4
  367. package/dist/standalone/chunk-WMDH2CIZ.js +0 -1
  368. package/dist/standalone/chunk-WVTPZ6CM.js +0 -1
  369. package/dist/standalone/chunk-XN6QYJQ6.js +0 -13
  370. package/dist/standalone/chunk-XNJNSCLM.js +0 -1
  371. package/dist/standalone/chunk-Y4U6CC22.js +0 -1
  372. package/dist/standalone/chunk-Y572GMZE.js +0 -1
  373. package/dist/standalone/chunk-Y7PD5KP4.js +0 -76
  374. package/dist/standalone/chunk-YFIPHCEC.js +0 -1
  375. package/dist/standalone/chunk-YJXOWLFJ.js +0 -1
  376. package/dist/standalone/chunk-YNN6NFRZ.js +0 -1
  377. package/dist/standalone/chunk-YUGHRVPD.js +0 -1
  378. package/dist/standalone/chunk-ZIGWVHCS.js +0 -1
  379. package/dist/standalone/chunk-ZPP2KOR4.js +0 -1
  380. package/dist/standalone/chunk-ZPUO7FNI.js +0 -1
  381. /package/dist/standalone/{chunk-TEWVD66F.js → chunk-GXZAXNZI.js} +0 -0
@@ -1,4192 +0,0 @@
1
- 'use client';
2
- import { c } from 'react/compiler-runtime';
3
- import { createRootRoute, createRoute, createBrowserHistory, createMemoryHistory, createRouter, useNavigate, useRouterState, useSearch, Outlet, RouterProvider } from '@tanstack/react-router';
4
- import * as React from 'react';
5
- import { use, createContext, useState, useEffect, lazy, Suspense } from 'react';
6
- import { c as cn } from './utils-B05Dmz_H.js';
7
- import { jsxDEV, Fragment } from 'react/jsx-dev-runtime';
8
- import { ErrorBoundary } from './ErrorBoundary-BzAApI7J.js';
9
- import { useT } from './DEFAULT_LOCALE-CiX4W7Kr.js';
10
- import { LunoraError } from '@lunora/errors';
11
- import { motion } from 'motion/react';
12
- import { B as Badge } from './badge-B2PKA1-5.js';
13
- import { I as Input } from './input-XH4r1Pt1.js';
14
- import { Popover as Popover$1 } from '@base-ui/react/popover';
15
- import { Cancel01Icon, SidebarLeftIcon } from '@hugeicons/core-free-icons';
16
- import { HugeiconsIcon } from '@hugeicons/react';
17
- import { mergeProps } from '@base-ui/react/merge-props';
18
- import { useRender } from '@base-ui/react/use-render';
19
- import { cva } from 'class-variance-authority';
20
- import { B as Button } from './button-BhsN2uZH.js';
21
- import { Dialog } from '@base-ui/react/dialog';
22
- import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
23
- import { S as Skeleton } from './skeleton-CGhL0p20.js';
24
- import { u as useStudioFeatures, H as HomePanel } from './home-panel-BRAA2UlM.js';
25
- import { StudioI18nProvider } from './StudioI18nProvider-B-tDCZIi.js';
26
- import { v as validateDataViewSearch } from './data-view-params-Cd6yRVbv.js';
27
- import { f as fireAndForget } from './internal-DzHCc2Rq.js';
28
- import { CommandPalette, openCommandPalette } from './CommandPalette-BpkopP5f.js';
29
-
30
- const DARK_MEDIA_QUERY = "(prefers-color-scheme: dark)";
31
- const store = () => {
32
- try {
33
- return globalThis.localStorage;
34
- } catch {
35
- return void 0;
36
- }
37
- };
38
- const isPreference = (value) => value === "system" || value === "light" || value === "dark";
39
- const matchMedia = () => globalThis.matchMedia;
40
- const THEME_STORAGE_KEY = "lunora-studio-theme";
41
- const THEME_ORDER = ["system", "light", "dark"];
42
- const loadThemePreference = (fallback = "system") => {
43
- try {
44
- const raw = store()?.getItem(THEME_STORAGE_KEY);
45
- return isPreference(raw) ? raw : fallback;
46
- } catch {
47
- return fallback;
48
- }
49
- };
50
- const saveThemePreference = (preference) => {
51
- const storage = store();
52
- if (storage === void 0) {
53
- return;
54
- }
55
- try {
56
- storage.setItem(THEME_STORAGE_KEY, preference);
57
- } catch {
58
- }
59
- };
60
- const getSystemTheme = () => {
61
- try {
62
- return matchMedia()?.(DARK_MEDIA_QUERY).matches ? "dark" : "light";
63
- } catch {
64
- return "light";
65
- }
66
- };
67
- const resolveTheme = (preference, system) => preference === "system" ? system : preference;
68
- const subscribeSystemTheme = (onChange) => {
69
- let mql;
70
- try {
71
- mql = matchMedia()?.(DARK_MEDIA_QUERY);
72
- } catch {
73
- mql = void 0;
74
- }
75
- if (mql === void 0) {
76
- return () => {
77
- };
78
- }
79
- const handler = (event) => {
80
- onChange(event.matches ? "dark" : "light");
81
- };
82
- mql.addEventListener("change", handler);
83
- return () => {
84
- mql.removeEventListener("change", handler);
85
- };
86
- };
87
-
88
- const ThemeContext = /* @__PURE__ */ createContext(null);
89
- const ThemeProvider = ({
90
- children,
91
- defaultTheme = "system"
92
- }) => {
93
- const [theme, setThemeState] = useState(() => loadThemePreference(defaultTheme));
94
- const [systemTheme, setSystemTheme] = useState(() => getSystemTheme());
95
- useEffect(() => subscribeSystemTheme(setSystemTheme), []);
96
- const setTheme = (next) => {
97
- saveThemePreference(next);
98
- setThemeState(next);
99
- };
100
- const cycleTheme = () => {
101
- setThemeState((current) => {
102
- const next_0 = THEME_ORDER[(THEME_ORDER.indexOf(current) + 1) % THEME_ORDER.length] ?? current;
103
- saveThemePreference(next_0);
104
- return next_0;
105
- });
106
- };
107
- const value = {
108
- cycleTheme,
109
- resolvedTheme: resolveTheme(theme, systemTheme),
110
- setTheme,
111
- systemTheme,
112
- theme
113
- };
114
- return /* @__PURE__ */ jsxDEV(ThemeContext, {
115
- value,
116
- children
117
- }, void 0, false);
118
- };
119
- const EnsureThemeProvider = (t0) => {
120
- const $ = c(3);
121
- const {
122
- children
123
- } = t0;
124
- const existing = use(ThemeContext);
125
- let t1;
126
- if ($[0] !== children || $[1] !== existing) {
127
- t1 = existing === null ? /* @__PURE__ */ jsxDEV(ThemeProvider, {
128
- children
129
- }, void 0, false) : children;
130
- $[0] = children;
131
- $[1] = existing;
132
- $[2] = t1;
133
- } else {
134
- t1 = $[2];
135
- }
136
- return t1;
137
- };
138
- const useTheme = () => {
139
- const context = use(ThemeContext);
140
- if (context === null) {
141
- throw new LunoraError("INTERNAL", "useTheme must be used within a <ThemeProvider>");
142
- }
143
- return context;
144
- };
145
-
146
- function TooltipProvider({
147
- delay = 0,
148
- ...props
149
- }) {
150
- return /* @__PURE__ */ jsxDEV(Tooltip$1.Provider, {
151
- "data-slot": "tooltip-provider",
152
- delay,
153
- ...props
154
- }, void 0, false);
155
- }
156
- function Tooltip(t0) {
157
- const $ = c(4);
158
- let props;
159
- if ($[0] !== t0) {
160
- ({
161
- ...props
162
- } = t0);
163
- $[0] = t0;
164
- $[1] = props;
165
- } else {
166
- props = $[1];
167
- }
168
- let t1;
169
- if ($[2] !== props) {
170
- t1 = /* @__PURE__ */ jsxDEV(Tooltip$1.Root, {
171
- "data-slot": "tooltip",
172
- ...props
173
- }, void 0, false);
174
- $[2] = props;
175
- $[3] = t1;
176
- } else {
177
- t1 = $[3];
178
- }
179
- return t1;
180
- }
181
- function TooltipTrigger(t0) {
182
- const $ = c(4);
183
- let props;
184
- if ($[0] !== t0) {
185
- ({
186
- ...props
187
- } = t0);
188
- $[0] = t0;
189
- $[1] = props;
190
- } else {
191
- props = $[1];
192
- }
193
- let t1;
194
- if ($[2] !== props) {
195
- t1 = /* @__PURE__ */ jsxDEV(Tooltip$1.Trigger, {
196
- "data-slot": "tooltip-trigger",
197
- ...props
198
- }, void 0, false);
199
- $[2] = props;
200
- $[3] = t1;
201
- } else {
202
- t1 = $[3];
203
- }
204
- return t1;
205
- }
206
- function TooltipContent({
207
- className,
208
- side = "top",
209
- sideOffset = 4,
210
- align = "center",
211
- alignOffset = 0,
212
- children,
213
- ...props
214
- }) {
215
- return /* @__PURE__ */ jsxDEV(Tooltip$1.Portal, {
216
- children: /* @__PURE__ */ jsxDEV(Tooltip$1.Positioner, {
217
- align,
218
- alignOffset,
219
- side,
220
- sideOffset,
221
- className: "isolate z-50",
222
- children: /* @__PURE__ */ jsxDEV(Tooltip$1.Popup, {
223
- "data-slot": "tooltip-content",
224
- className: cn("z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pe-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-md data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
225
- ...props,
226
- children: [children, /* @__PURE__ */ jsxDEV(Tooltip$1.Arrow, {
227
- className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-md bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-start-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-end-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"
228
- }, void 0, false)]
229
- }, void 0, true)
230
- }, void 0, false)
231
- }, void 0, false);
232
- }
233
-
234
- const BrandMark = (t0) => {
235
- const $ = c(5);
236
- const {
237
- className
238
- } = t0;
239
- let t1;
240
- if ($[0] !== className) {
241
- t1 = cn("h-full w-full text-foreground", className);
242
- $[0] = className;
243
- $[1] = t1;
244
- } else {
245
- t1 = $[1];
246
- }
247
- let t2;
248
- if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
249
- t2 = /* @__PURE__ */ jsxDEV("path", {
250
- d: "M 259.500 10.552 C 220.080 15.859, 182.424 32.566, 152.500 58.025 C 110.179 94.031, 85.380 137.183, 77.518 188.500 C 75.410 202.255, 74.569 225.677, 75.796 236.466 C 76.757 244.917, 76.683 245.692, 74.518 249.966 C 63.118 272.466, 53.141 303.876, 51.382 322.799 L 50.718 329.943 71.960 320.471 C 83.643 315.262, 93.326 311, 93.478 311 C 93.630 311, 96.547 316.063, 99.959 322.250 C 103.371 328.438, 107.249 334.850, 108.577 336.500 L 110.990 339.500 110.981 336 C 110.977 334.075, 111.499 324.991, 112.143 315.813 L 113.312 299.127 121.406 293.336 C 132.495 285.403, 149.593 271.554, 161 261.268 C 171.556 251.748, 189.116 235, 188.540 235 C 188.337 235, 183.069 238.648, 176.835 243.106 C 142.318 267.789, 68.537 314, 63.646 314 C 61.843 314, 72.791 281.179, 80.905 262.259 C 92.233 235.845, 107.473 212.389, 132.106 183.453 L 138.451 176 148.268 176 C 176.192 176, 197.512 187.154, 212.868 209.797 C 216.470 215.108, 217.035 216.595, 216.477 219.297 C 211.386 243.968, 202.359 274.496, 193.797 296 C 183.898 320.861, 167.147 352.101, 152.395 373.215 L 147.004 380.930 152.891 385.830 C 161.400 392.911, 165.563 396, 166.594 395.998 C 167.092 395.998, 168.772 391.641, 170.327 386.317 C 176.279 365.934, 188.422 338.749, 200.942 317.778 C 223.060 280.731, 256.432 244.369, 294.500 215.836 C 309.956 204.252, 313.937 201.603, 314.719 202.385 C 315.116 202.783, 315.449 213.096, 315.460 225.304 C 315.474 241.855, 315.021 250.405, 313.680 258.924 C 307.009 301.272, 291.175 336.677, 263.112 372 C 255.259 381.883, 227.182 410.673, 218.516 417.727 L 213.532 421.783 223.439 424.880 C 281.705 443.093, 349.165 436.018, 398.616 406.508 C 446.728 377.797, 483.322 331.466, 497.366 281.481 C 503.381 260.075, 504.480 250.741, 504.491 221 C 504.501 191.997, 503.598 184.047, 497.987 163.732 C 484.768 115.871, 452.505 72.708, 407.718 42.964 C 381.051 25.254, 352.818 14.828, 319.695 10.460 C 305.932 8.645, 273.298 8.695, 259.500 10.552",
251
- fillRule: "evenodd"
252
- }, void 0, false);
253
- $[2] = t2;
254
- } else {
255
- t2 = $[2];
256
- }
257
- let t3;
258
- if ($[3] !== t1) {
259
- t3 = /* @__PURE__ */ jsxDEV("svg", {
260
- "aria-hidden": "true",
261
- className: t1,
262
- fill: "currentColor",
263
- viewBox: "0 0 543 446",
264
- children: t2
265
- }, void 0, false);
266
- $[3] = t1;
267
- $[4] = t3;
268
- } else {
269
- t3 = $[4];
270
- }
271
- return t3;
272
- };
273
-
274
- const RULES_BANNER_DISMISSED_KEY = "lunora.studio.rulesBannerDismissed";
275
- const readBannerDismissed = () => {
276
- try {
277
- return globalThis.localStorage.getItem(RULES_BANNER_DISMISSED_KEY) === "1";
278
- } catch {
279
- return false;
280
- }
281
- };
282
- const writeBannerDismissed = () => {
283
- try {
284
- globalThis.localStorage.setItem(RULES_BANNER_DISMISSED_KEY, "1");
285
- } catch {
286
- }
287
- };
288
- const RulesBanner = () => {
289
- const $ = c(18);
290
- const t = useT();
291
- const [dismissed, setDismissed] = useState(_temp$1);
292
- let t0;
293
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
294
- t0 = () => {
295
- setDismissed(true);
296
- writeBannerDismissed();
297
- };
298
- $[0] = t0;
299
- } else {
300
- t0 = $[0];
301
- }
302
- const dismiss = t0;
303
- if (dismissed) {
304
- return null;
305
- }
306
- let t1;
307
- if ($[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
308
- t1 = /* @__PURE__ */ jsxDEV("span", {
309
- "aria-hidden": "true",
310
- className: "text-warning",
311
- children: "⚠"
312
- }, void 0, false);
313
- $[1] = t1;
314
- } else {
315
- t1 = $[1];
316
- }
317
- let t2;
318
- if ($[2] !== t) {
319
- t2 = t("Lunora AI rules aren't installed.");
320
- $[2] = t;
321
- $[3] = t2;
322
- } else {
323
- t2 = $[3];
324
- }
325
- let t3;
326
- if ($[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
327
- t3 = /* @__PURE__ */ jsxDEV("code", {
328
- className: "rounded bg-muted px-1 py-0.5 font-mono text-[11px]",
329
- children: "lunora rules install"
330
- }, void 0, false);
331
- $[4] = t3;
332
- } else {
333
- t3 = $[4];
334
- }
335
- let t4;
336
- if ($[5] !== t) {
337
- t4 = t("lets your coding agent use Lunora correctly.");
338
- $[5] = t;
339
- $[6] = t4;
340
- } else {
341
- t4 = $[6];
342
- }
343
- let t5;
344
- if ($[7] !== t2 || $[8] !== t4) {
345
- t5 = /* @__PURE__ */ jsxDEV("span", {
346
- children: [t2, " ", t3, " ", t4]
347
- }, void 0, true);
348
- $[7] = t2;
349
- $[8] = t4;
350
- $[9] = t5;
351
- } else {
352
- t5 = $[9];
353
- }
354
- let t6;
355
- if ($[10] !== t) {
356
- t6 = t("Dismiss");
357
- $[10] = t;
358
- $[11] = t6;
359
- } else {
360
- t6 = $[11];
361
- }
362
- let t7;
363
- if ($[12] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
364
- t7 = /* @__PURE__ */ jsxDEV("svg", {
365
- "aria-hidden": "true",
366
- className: "size-3.5",
367
- fill: "none",
368
- stroke: "currentColor",
369
- strokeLinecap: "round",
370
- strokeWidth: 1.8,
371
- viewBox: "0 0 24 24",
372
- children: /* @__PURE__ */ jsxDEV("path", {
373
- d: "M18 6 6 18M6 6l12 12"
374
- }, void 0, false)
375
- }, void 0, false);
376
- $[12] = t7;
377
- } else {
378
- t7 = $[12];
379
- }
380
- let t8;
381
- if ($[13] !== t6) {
382
- t8 = /* @__PURE__ */ jsxDEV("button", {
383
- "aria-label": t6,
384
- className: "ms-auto flex size-5 items-center justify-center rounded text-muted-foreground outline-none transition-colors hover:bg-accent hover:text-foreground focus-visible:bg-accent",
385
- "data-testid": "dash-app-rules-banner-dismiss",
386
- onClick: dismiss,
387
- type: "button",
388
- children: t7
389
- }, void 0, false);
390
- $[13] = t6;
391
- $[14] = t8;
392
- } else {
393
- t8 = $[14];
394
- }
395
- let t9;
396
- if ($[15] !== t5 || $[16] !== t8) {
397
- t9 = /* @__PURE__ */ jsxDEV("div", {
398
- className: "flex shrink-0 items-center gap-2 border-b border-warning/30 bg-warning/10 px-6 py-2 text-[12px] text-foreground",
399
- "data-testid": "dash-app-rules-banner",
400
- role: "note",
401
- children: [t1, t5, t8]
402
- }, void 0, true);
403
- $[15] = t5;
404
- $[16] = t8;
405
- $[17] = t9;
406
- } else {
407
- t9 = $[17];
408
- }
409
- return t9;
410
- };
411
- function _temp$1() {
412
- return readBannerDismissed();
413
- }
414
-
415
- const MonitorIcon = () => {
416
- const $ = c(1);
417
- let t0;
418
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
419
- t0 = /* @__PURE__ */ jsxDEV("svg", {
420
- "aria-hidden": "true",
421
- className: "size-3.5",
422
- fill: "none",
423
- stroke: "currentColor",
424
- strokeLinecap: "round",
425
- strokeLinejoin: "round",
426
- strokeWidth: 1.8,
427
- viewBox: "0 0 24 24",
428
- children: [/* @__PURE__ */ jsxDEV("rect", {
429
- height: "14",
430
- rx: "2",
431
- width: "20",
432
- x: "2",
433
- y: "3"
434
- }, void 0, false), /* @__PURE__ */ jsxDEV("path", {
435
- d: "M8 21h8M12 17v4"
436
- }, void 0, false)]
437
- }, void 0, true);
438
- $[0] = t0;
439
- } else {
440
- t0 = $[0];
441
- }
442
- return t0;
443
- };
444
- const SunIcon = () => {
445
- const $ = c(1);
446
- let t0;
447
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
448
- t0 = /* @__PURE__ */ jsxDEV("svg", {
449
- "aria-hidden": "true",
450
- className: "size-3.5",
451
- fill: "none",
452
- stroke: "currentColor",
453
- strokeLinecap: "round",
454
- strokeLinejoin: "round",
455
- strokeWidth: 1.8,
456
- viewBox: "0 0 24 24",
457
- children: [/* @__PURE__ */ jsxDEV("circle", {
458
- cx: "12",
459
- cy: "12",
460
- r: "4"
461
- }, void 0, false), /* @__PURE__ */ jsxDEV("path", {
462
- d: "M12 2v2m0 16v2M4.9 4.9l1.4 1.4m11.4 11.4 1.4 1.4M2 12h2m16 0h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"
463
- }, void 0, false)]
464
- }, void 0, true);
465
- $[0] = t0;
466
- } else {
467
- t0 = $[0];
468
- }
469
- return t0;
470
- };
471
- const MoonIcon = () => {
472
- const $ = c(1);
473
- let t0;
474
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
475
- t0 = /* @__PURE__ */ jsxDEV("svg", {
476
- "aria-hidden": "true",
477
- className: "size-3.5",
478
- fill: "none",
479
- stroke: "currentColor",
480
- strokeLinecap: "round",
481
- strokeLinejoin: "round",
482
- strokeWidth: 1.8,
483
- viewBox: "0 0 24 24",
484
- children: /* @__PURE__ */ jsxDEV("path", {
485
- d: "M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z"
486
- }, void 0, false)
487
- }, void 0, false);
488
- $[0] = t0;
489
- } else {
490
- t0 = $[0];
491
- }
492
- return t0;
493
- };
494
- const OPTIONS = [{
495
- Icon: MonitorIcon,
496
- value: "system"
497
- }, {
498
- Icon: SunIcon,
499
- value: "light"
500
- }, {
501
- Icon: MoonIcon,
502
- value: "dark"
503
- }];
504
- const ThemeToggle = () => {
505
- const $ = c(19);
506
- const {
507
- theme,
508
- setTheme
509
- } = useTheme();
510
- const t = useT();
511
- let t0;
512
- if ($[0] !== t) {
513
- t0 = t("Dark theme");
514
- $[0] = t;
515
- $[1] = t0;
516
- } else {
517
- t0 = $[1];
518
- }
519
- let t1;
520
- if ($[2] !== t) {
521
- t1 = t("Light theme");
522
- $[2] = t;
523
- $[3] = t1;
524
- } else {
525
- t1 = $[3];
526
- }
527
- let t2;
528
- if ($[4] !== t) {
529
- t2 = t("System theme");
530
- $[4] = t;
531
- $[5] = t2;
532
- } else {
533
- t2 = $[5];
534
- }
535
- let t3;
536
- if ($[6] !== t0 || $[7] !== t1 || $[8] !== t2) {
537
- t3 = {
538
- dark: t0,
539
- light: t1,
540
- system: t2
541
- };
542
- $[6] = t0;
543
- $[7] = t1;
544
- $[8] = t2;
545
- $[9] = t3;
546
- } else {
547
- t3 = $[9];
548
- }
549
- const label = t3;
550
- let t4;
551
- if ($[10] !== t) {
552
- t4 = t("Theme");
553
- $[10] = t;
554
- $[11] = t4;
555
- } else {
556
- t4 = $[11];
557
- }
558
- let t5;
559
- if ($[12] !== label || $[13] !== setTheme || $[14] !== theme) {
560
- t5 = OPTIONS.map((t62) => {
561
- const {
562
- Icon,
563
- value
564
- } = t62;
565
- const active = theme === value;
566
- return /* @__PURE__ */ jsxDEV("button", {
567
- "aria-checked": active,
568
- "aria-label": label[value],
569
- className: cn("relative flex size-7 cursor-pointer items-center justify-center rounded-md outline-none transition-colors focus-visible:bg-accent", active ? "text-foreground" : "text-muted-foreground hover:text-foreground"),
570
- "data-testid": `dash-app-theme-${value}`,
571
- onClick: () => {
572
- setTheme(value);
573
- },
574
- role: "radio",
575
- title: label[value],
576
- type: "button",
577
- children: [active && /* @__PURE__ */ jsxDEV(motion.span, {
578
- className: "absolute inset-0 rounded-md border border-muted-foreground/40 bg-background/40",
579
- layoutId: "studio-theme-active",
580
- transition: {
581
- bounce: 0.1,
582
- duration: 0.45,
583
- type: "spring"
584
- }
585
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
586
- className: "relative",
587
- children: /* @__PURE__ */ jsxDEV(Icon, {}, void 0, false)
588
- }, void 0, false)]
589
- }, value, true);
590
- });
591
- $[12] = label;
592
- $[13] = setTheme;
593
- $[14] = theme;
594
- $[15] = t5;
595
- } else {
596
- t5 = $[15];
597
- }
598
- let t6;
599
- if ($[16] !== t4 || $[17] !== t5) {
600
- t6 = /* @__PURE__ */ jsxDEV("div", {
601
- "aria-label": t4,
602
- className: "inline-flex items-center gap-0.5 overflow-hidden rounded-md border border-border bg-muted/60 p-0.5",
603
- "data-testid": "dash-app-theme",
604
- role: "radiogroup",
605
- children: t5
606
- }, void 0, false);
607
- $[16] = t4;
608
- $[17] = t5;
609
- $[18] = t6;
610
- } else {
611
- t6 = $[18];
612
- }
613
- return t6;
614
- };
615
-
616
- function Popover(t0) {
617
- const $ = c(4);
618
- let props;
619
- if ($[0] !== t0) {
620
- ({
621
- ...props
622
- } = t0);
623
- $[0] = t0;
624
- $[1] = props;
625
- } else {
626
- props = $[1];
627
- }
628
- let t1;
629
- if ($[2] !== props) {
630
- t1 = /* @__PURE__ */ jsxDEV(Popover$1.Root, {
631
- "data-slot": "popover",
632
- ...props
633
- }, void 0, false);
634
- $[2] = props;
635
- $[3] = t1;
636
- } else {
637
- t1 = $[3];
638
- }
639
- return t1;
640
- }
641
- function PopoverTrigger(t0) {
642
- const $ = c(4);
643
- let props;
644
- if ($[0] !== t0) {
645
- ({
646
- ...props
647
- } = t0);
648
- $[0] = t0;
649
- $[1] = props;
650
- } else {
651
- props = $[1];
652
- }
653
- let t1;
654
- if ($[2] !== props) {
655
- t1 = /* @__PURE__ */ jsxDEV(Popover$1.Trigger, {
656
- "data-slot": "popover-trigger",
657
- ...props
658
- }, void 0, false);
659
- $[2] = props;
660
- $[3] = t1;
661
- } else {
662
- t1 = $[3];
663
- }
664
- return t1;
665
- }
666
- function PopoverContent({
667
- align = "end",
668
- alignOffset = 0,
669
- className,
670
- keepMounted = false,
671
- side = "bottom",
672
- sideOffset = 6,
673
- ...props
674
- }) {
675
- return /* @__PURE__ */ jsxDEV(Popover$1.Portal, {
676
- keepMounted,
677
- children: /* @__PURE__ */ jsxDEV(Popover$1.Positioner, {
678
- align,
679
- alignOffset,
680
- className: "isolate z-50 outline-none",
681
- side,
682
- sideOffset,
683
- children: /* @__PURE__ */ jsxDEV(Popover$1.Popup, {
684
- className: cn("z-50 w-72 origin-(--transform-origin) rounded-lg border border-border bg-popover p-3 text-popover-foreground shadow-md outline-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
685
- "data-slot": "popover-content",
686
- ...props
687
- }, void 0, false)
688
- }, void 0, false)
689
- }, void 0, false);
690
- }
691
-
692
- const MOBILE_BREAKPOINT = 768;
693
- function useIsMobile() {
694
- const $ = c(2);
695
- const [isMobile, setIsMobile] = useState(void 0);
696
- let t0;
697
- let t1;
698
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
699
- t0 = () => {
700
- const mql = globalThis.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
701
- const onChange = () => {
702
- setIsMobile(globalThis.innerWidth < MOBILE_BREAKPOINT);
703
- };
704
- mql.addEventListener("change", onChange);
705
- setIsMobile(globalThis.innerWidth < MOBILE_BREAKPOINT);
706
- return () => {
707
- mql.removeEventListener("change", onChange);
708
- };
709
- };
710
- t1 = [];
711
- $[0] = t0;
712
- $[1] = t1;
713
- } else {
714
- t0 = $[0];
715
- t1 = $[1];
716
- }
717
- useEffect(t0, t1);
718
- return Boolean(isMobile);
719
- }
720
-
721
- function Sheet(t0) {
722
- const $ = c(4);
723
- let props;
724
- if ($[0] !== t0) {
725
- ({
726
- ...props
727
- } = t0);
728
- $[0] = t0;
729
- $[1] = props;
730
- } else {
731
- props = $[1];
732
- }
733
- let t1;
734
- if ($[2] !== props) {
735
- t1 = /* @__PURE__ */ jsxDEV(Dialog.Root, {
736
- "data-slot": "sheet",
737
- ...props
738
- }, void 0, false);
739
- $[2] = props;
740
- $[3] = t1;
741
- } else {
742
- t1 = $[3];
743
- }
744
- return t1;
745
- }
746
- function SheetPortal(t0) {
747
- const $ = c(4);
748
- let props;
749
- if ($[0] !== t0) {
750
- ({
751
- ...props
752
- } = t0);
753
- $[0] = t0;
754
- $[1] = props;
755
- } else {
756
- props = $[1];
757
- }
758
- let t1;
759
- if ($[2] !== props) {
760
- t1 = /* @__PURE__ */ jsxDEV(Dialog.Portal, {
761
- "data-slot": "sheet-portal",
762
- ...props
763
- }, void 0, false);
764
- $[2] = props;
765
- $[3] = t1;
766
- } else {
767
- t1 = $[3];
768
- }
769
- return t1;
770
- }
771
- function SheetOverlay(t0) {
772
- const $ = c(8);
773
- let className;
774
- let props;
775
- if ($[0] !== t0) {
776
- ({
777
- className,
778
- ...props
779
- } = t0);
780
- $[0] = t0;
781
- $[1] = className;
782
- $[2] = props;
783
- } else {
784
- className = $[1];
785
- props = $[2];
786
- }
787
- let t1;
788
- if ($[3] !== className) {
789
- t1 = cn("fixed inset-0 z-50 bg-black/10 text-xs/relaxed transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:", className);
790
- $[3] = className;
791
- $[4] = t1;
792
- } else {
793
- t1 = $[4];
794
- }
795
- let t2;
796
- if ($[5] !== props || $[6] !== t1) {
797
- t2 = /* @__PURE__ */ jsxDEV(Dialog.Backdrop, {
798
- "data-slot": "sheet-overlay",
799
- className: t1,
800
- ...props
801
- }, void 0, false);
802
- $[5] = props;
803
- $[6] = t1;
804
- $[7] = t2;
805
- } else {
806
- t2 = $[7];
807
- }
808
- return t2;
809
- }
810
- function SheetContent({
811
- className,
812
- children,
813
- side = "right",
814
- showCloseButton = true,
815
- ...props
816
- }) {
817
- return /* @__PURE__ */ jsxDEV(SheetPortal, {
818
- children: [/* @__PURE__ */ jsxDEV(SheetOverlay, {}, void 0, false), /* @__PURE__ */ jsxDEV(Dialog.Popup, {
819
- "data-slot": "sheet-content",
820
- "data-side": side,
821
- className: cn("fixed z-50 flex flex-col bg-popover bg-clip-padding text-xs/relaxed text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-e data-[side=left]:data-ending-style:translate-x-[-2.5rem] rtl:data-[side=left]:data-ending-style:-translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] rtl:data-[side=left]:data-starting-style:-translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-s data-[side=right]:data-ending-style:translate-x-[2.5rem] rtl:data-[side=right]:data-ending-style:-translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] rtl:data-[side=right]:data-starting-style:-translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm", className),
822
- ...props,
823
- children: [children, showCloseButton && /* @__PURE__ */ jsxDEV(Dialog.Close, {
824
- "data-slot": "sheet-close",
825
- render: /* @__PURE__ */ jsxDEV(Button, {
826
- variant: "ghost",
827
- className: "absolute top-3 end-3",
828
- size: "icon-sm"
829
- }, void 0, false),
830
- children: [/* @__PURE__ */ jsxDEV(HugeiconsIcon, {
831
- icon: Cancel01Icon,
832
- strokeWidth: 2
833
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
834
- className: "sr-only",
835
- children: "Close"
836
- }, void 0, false)]
837
- }, void 0, true)]
838
- }, void 0, true)]
839
- }, void 0, true);
840
- }
841
- function SheetHeader(t0) {
842
- const $ = c(8);
843
- let className;
844
- let props;
845
- if ($[0] !== t0) {
846
- ({
847
- className,
848
- ...props
849
- } = t0);
850
- $[0] = t0;
851
- $[1] = className;
852
- $[2] = props;
853
- } else {
854
- className = $[1];
855
- props = $[2];
856
- }
857
- let t1;
858
- if ($[3] !== className) {
859
- t1 = cn("flex flex-col gap-0.5 p-4", className);
860
- $[3] = className;
861
- $[4] = t1;
862
- } else {
863
- t1 = $[4];
864
- }
865
- let t2;
866
- if ($[5] !== props || $[6] !== t1) {
867
- t2 = /* @__PURE__ */ jsxDEV("div", {
868
- "data-slot": "sheet-header",
869
- className: t1,
870
- ...props
871
- }, void 0, false);
872
- $[5] = props;
873
- $[6] = t1;
874
- $[7] = t2;
875
- } else {
876
- t2 = $[7];
877
- }
878
- return t2;
879
- }
880
- function SheetTitle(t0) {
881
- const $ = c(8);
882
- let className;
883
- let props;
884
- if ($[0] !== t0) {
885
- ({
886
- className,
887
- ...props
888
- } = t0);
889
- $[0] = t0;
890
- $[1] = className;
891
- $[2] = props;
892
- } else {
893
- className = $[1];
894
- props = $[2];
895
- }
896
- let t1;
897
- if ($[3] !== className) {
898
- t1 = cn("text-sm font-medium text-foreground", className);
899
- $[3] = className;
900
- $[4] = t1;
901
- } else {
902
- t1 = $[4];
903
- }
904
- let t2;
905
- if ($[5] !== props || $[6] !== t1) {
906
- t2 = /* @__PURE__ */ jsxDEV(Dialog.Title, {
907
- "data-slot": "sheet-title",
908
- className: t1,
909
- ...props
910
- }, void 0, false);
911
- $[5] = props;
912
- $[6] = t1;
913
- $[7] = t2;
914
- } else {
915
- t2 = $[7];
916
- }
917
- return t2;
918
- }
919
- function SheetDescription(t0) {
920
- const $ = c(8);
921
- let className;
922
- let props;
923
- if ($[0] !== t0) {
924
- ({
925
- className,
926
- ...props
927
- } = t0);
928
- $[0] = t0;
929
- $[1] = className;
930
- $[2] = props;
931
- } else {
932
- className = $[1];
933
- props = $[2];
934
- }
935
- let t1;
936
- if ($[3] !== className) {
937
- t1 = cn("text-xs/relaxed text-muted-foreground", className);
938
- $[3] = className;
939
- $[4] = t1;
940
- } else {
941
- t1 = $[4];
942
- }
943
- let t2;
944
- if ($[5] !== props || $[6] !== t1) {
945
- t2 = /* @__PURE__ */ jsxDEV(Dialog.Description, {
946
- "data-slot": "sheet-description",
947
- className: t1,
948
- ...props
949
- }, void 0, false);
950
- $[5] = props;
951
- $[6] = t1;
952
- $[7] = t2;
953
- } else {
954
- t2 = $[7];
955
- }
956
- return t2;
957
- }
958
-
959
- const SIDEBAR_COOKIE_NAME = "sidebar_state";
960
- const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
961
- const SIDEBAR_WIDTH = "16rem";
962
- const SIDEBAR_WIDTH_MOBILE = "18rem";
963
- const SIDEBAR_WIDTH_ICON = "3rem";
964
- const SIDEBAR_KEYBOARD_SHORTCUT = "b";
965
- const SidebarContext = /* @__PURE__ */ React.createContext(null);
966
- function useSidebar() {
967
- const context = React.useContext(SidebarContext);
968
- if (!context) {
969
- throw new LunoraError("INTERNAL", "useSidebar must be used within a SidebarProvider.");
970
- }
971
- return context;
972
- }
973
- function SidebarProvider({
974
- defaultOpen = true,
975
- open: openProp,
976
- onOpenChange: setOpenProp,
977
- className,
978
- style,
979
- children,
980
- ...props
981
- }) {
982
- const isMobile = useIsMobile();
983
- const [openMobile, setOpenMobile] = React.useState(false);
984
- const [_open, _setOpen] = React.useState(defaultOpen);
985
- const open = openProp ?? _open;
986
- const setOpen = (value) => {
987
- const openState = typeof value === "function" ? value(open) : value;
988
- if (setOpenProp) {
989
- setOpenProp(openState);
990
- } else {
991
- _setOpen(openState);
992
- }
993
- document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
994
- };
995
- const toggleSidebar = () => {
996
- return isMobile ? setOpenMobile((open_0) => !open_0) : setOpen((open_1) => !open_1);
997
- };
998
- React.useEffect(() => {
999
- const handleKeyDown = (event) => {
1000
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
1001
- event.preventDefault();
1002
- toggleSidebar();
1003
- }
1004
- };
1005
- globalThis.addEventListener("keydown", handleKeyDown);
1006
- return () => globalThis.removeEventListener("keydown", handleKeyDown);
1007
- }, [toggleSidebar]);
1008
- const state = open ? "expanded" : "collapsed";
1009
- const contextValue = {
1010
- state,
1011
- open,
1012
- setOpen,
1013
- isMobile,
1014
- openMobile,
1015
- setOpenMobile,
1016
- toggleSidebar
1017
- };
1018
- return /* @__PURE__ */ jsxDEV(SidebarContext.Provider, {
1019
- value: contextValue,
1020
- children: /* @__PURE__ */ jsxDEV("div", {
1021
- "data-slot": "sidebar-wrapper",
1022
- style: {
1023
- "--sidebar-width": SIDEBAR_WIDTH,
1024
- "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
1025
- ...style
1026
- },
1027
- className: cn("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", className),
1028
- ...props,
1029
- children
1030
- }, void 0, false)
1031
- }, void 0, false);
1032
- }
1033
- function Sidebar({
1034
- side = "left",
1035
- variant = "sidebar",
1036
- collapsible = "offcanvas",
1037
- className,
1038
- children,
1039
- dir,
1040
- ...props
1041
- }) {
1042
- const {
1043
- isMobile,
1044
- state,
1045
- openMobile,
1046
- setOpenMobile
1047
- } = useSidebar();
1048
- if (collapsible === "none") {
1049
- return /* @__PURE__ */ jsxDEV("div", {
1050
- "data-slot": "sidebar",
1051
- className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className),
1052
- ...props,
1053
- children
1054
- }, void 0, false);
1055
- }
1056
- if (isMobile) {
1057
- return /* @__PURE__ */ jsxDEV(Sheet, {
1058
- open: openMobile,
1059
- onOpenChange: setOpenMobile,
1060
- ...props,
1061
- children: /* @__PURE__ */ jsxDEV(SheetContent, {
1062
- dir,
1063
- "data-sidebar": "sidebar",
1064
- "data-slot": "sidebar",
1065
- "data-mobile": "true",
1066
- className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
1067
- style: {
1068
- "--sidebar-width": SIDEBAR_WIDTH_MOBILE
1069
- },
1070
- side,
1071
- children: [/* @__PURE__ */ jsxDEV(SheetHeader, {
1072
- className: "sr-only",
1073
- children: [/* @__PURE__ */ jsxDEV(SheetTitle, {
1074
- children: "Sidebar"
1075
- }, void 0, false), /* @__PURE__ */ jsxDEV(SheetDescription, {
1076
- children: "Displays the mobile sidebar."
1077
- }, void 0, false)]
1078
- }, void 0, true), /* @__PURE__ */ jsxDEV("div", {
1079
- className: "flex h-full w-full flex-col",
1080
- children
1081
- }, void 0, false)]
1082
- }, void 0, true)
1083
- }, void 0, false);
1084
- }
1085
- return /* @__PURE__ */ jsxDEV("div", {
1086
- className: "group peer hidden text-sidebar-foreground md:block",
1087
- "data-state": state,
1088
- "data-collapsible": state === "collapsed" ? collapsible : "",
1089
- "data-variant": variant,
1090
- "data-side": side,
1091
- "data-slot": "sidebar",
1092
- children: [/* @__PURE__ */ jsxDEV("div", {
1093
- "data-slot": "sidebar-gap",
1094
- className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
1095
- }, void 0, false), /* @__PURE__ */ jsxDEV("div", {
1096
- "data-slot": "sidebar-container",
1097
- "data-side": side,
1098
- className: cn(
1099
- "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",
1100
- // Adjust the padding for floating and inset variants.
1101
- variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-e group-data-[side=right]:border-s",
1102
- className
1103
- ),
1104
- ...props,
1105
- children: /* @__PURE__ */ jsxDEV("div", {
1106
- "data-sidebar": "sidebar",
1107
- "data-slot": "sidebar-inner",
1108
- className: "flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-none group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",
1109
- children
1110
- }, void 0, false)
1111
- }, void 0, false)]
1112
- }, void 0, true);
1113
- }
1114
- function SidebarTrigger(t0) {
1115
- const $ = c(15);
1116
- let className;
1117
- let onClick;
1118
- let props;
1119
- if ($[0] !== t0) {
1120
- ({
1121
- className,
1122
- onClick,
1123
- ...props
1124
- } = t0);
1125
- $[0] = t0;
1126
- $[1] = className;
1127
- $[2] = onClick;
1128
- $[3] = props;
1129
- } else {
1130
- className = $[1];
1131
- onClick = $[2];
1132
- props = $[3];
1133
- }
1134
- const {
1135
- toggleSidebar
1136
- } = useSidebar();
1137
- let t1;
1138
- if ($[4] !== className) {
1139
- t1 = cn(className);
1140
- $[4] = className;
1141
- $[5] = t1;
1142
- } else {
1143
- t1 = $[5];
1144
- }
1145
- let t2;
1146
- if ($[6] !== onClick || $[7] !== toggleSidebar) {
1147
- t2 = (event) => {
1148
- onClick?.(event);
1149
- toggleSidebar();
1150
- };
1151
- $[6] = onClick;
1152
- $[7] = toggleSidebar;
1153
- $[8] = t2;
1154
- } else {
1155
- t2 = $[8];
1156
- }
1157
- let t3;
1158
- let t4;
1159
- if ($[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1160
- t3 = /* @__PURE__ */ jsxDEV(HugeiconsIcon, {
1161
- icon: SidebarLeftIcon,
1162
- strokeWidth: 2,
1163
- className: "rtl:rotate-180"
1164
- }, void 0, false);
1165
- t4 = /* @__PURE__ */ jsxDEV("span", {
1166
- className: "sr-only",
1167
- children: "Toggle Sidebar"
1168
- }, void 0, false);
1169
- $[9] = t3;
1170
- $[10] = t4;
1171
- } else {
1172
- t3 = $[9];
1173
- t4 = $[10];
1174
- }
1175
- let t5;
1176
- if ($[11] !== props || $[12] !== t1 || $[13] !== t2) {
1177
- t5 = /* @__PURE__ */ jsxDEV(Button, {
1178
- "data-sidebar": "trigger",
1179
- "data-slot": "sidebar-trigger",
1180
- variant: "ghost",
1181
- size: "icon-sm",
1182
- className: t1,
1183
- onClick: t2,
1184
- ...props,
1185
- children: [t3, t4]
1186
- }, void 0, true);
1187
- $[11] = props;
1188
- $[12] = t1;
1189
- $[13] = t2;
1190
- $[14] = t5;
1191
- } else {
1192
- t5 = $[14];
1193
- }
1194
- return t5;
1195
- }
1196
- function SidebarInset(t0) {
1197
- const $ = c(8);
1198
- let className;
1199
- let props;
1200
- if ($[0] !== t0) {
1201
- ({
1202
- className,
1203
- ...props
1204
- } = t0);
1205
- $[0] = t0;
1206
- $[1] = className;
1207
- $[2] = props;
1208
- } else {
1209
- className = $[1];
1210
- props = $[2];
1211
- }
1212
- let t1;
1213
- if ($[3] !== className) {
1214
- t1 = cn("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-none md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2", className);
1215
- $[3] = className;
1216
- $[4] = t1;
1217
- } else {
1218
- t1 = $[4];
1219
- }
1220
- let t2;
1221
- if ($[5] !== props || $[6] !== t1) {
1222
- t2 = /* @__PURE__ */ jsxDEV("main", {
1223
- "data-slot": "sidebar-inset",
1224
- className: t1,
1225
- ...props
1226
- }, void 0, false);
1227
- $[5] = props;
1228
- $[6] = t1;
1229
- $[7] = t2;
1230
- } else {
1231
- t2 = $[7];
1232
- }
1233
- return t2;
1234
- }
1235
- function SidebarHeader(t0) {
1236
- const $ = c(8);
1237
- let className;
1238
- let props;
1239
- if ($[0] !== t0) {
1240
- ({
1241
- className,
1242
- ...props
1243
- } = t0);
1244
- $[0] = t0;
1245
- $[1] = className;
1246
- $[2] = props;
1247
- } else {
1248
- className = $[1];
1249
- props = $[2];
1250
- }
1251
- let t1;
1252
- if ($[3] !== className) {
1253
- t1 = cn("flex flex-col gap-2 p-2", className);
1254
- $[3] = className;
1255
- $[4] = t1;
1256
- } else {
1257
- t1 = $[4];
1258
- }
1259
- let t2;
1260
- if ($[5] !== props || $[6] !== t1) {
1261
- t2 = /* @__PURE__ */ jsxDEV("div", {
1262
- "data-slot": "sidebar-header",
1263
- "data-sidebar": "header",
1264
- className: t1,
1265
- ...props
1266
- }, void 0, false);
1267
- $[5] = props;
1268
- $[6] = t1;
1269
- $[7] = t2;
1270
- } else {
1271
- t2 = $[7];
1272
- }
1273
- return t2;
1274
- }
1275
- function SidebarFooter(t0) {
1276
- const $ = c(8);
1277
- let className;
1278
- let props;
1279
- if ($[0] !== t0) {
1280
- ({
1281
- className,
1282
- ...props
1283
- } = t0);
1284
- $[0] = t0;
1285
- $[1] = className;
1286
- $[2] = props;
1287
- } else {
1288
- className = $[1];
1289
- props = $[2];
1290
- }
1291
- let t1;
1292
- if ($[3] !== className) {
1293
- t1 = cn("flex flex-col gap-2 p-2", className);
1294
- $[3] = className;
1295
- $[4] = t1;
1296
- } else {
1297
- t1 = $[4];
1298
- }
1299
- let t2;
1300
- if ($[5] !== props || $[6] !== t1) {
1301
- t2 = /* @__PURE__ */ jsxDEV("div", {
1302
- "data-slot": "sidebar-footer",
1303
- "data-sidebar": "footer",
1304
- className: t1,
1305
- ...props
1306
- }, void 0, false);
1307
- $[5] = props;
1308
- $[6] = t1;
1309
- $[7] = t2;
1310
- } else {
1311
- t2 = $[7];
1312
- }
1313
- return t2;
1314
- }
1315
- function SidebarContent(t0) {
1316
- const $ = c(8);
1317
- let className;
1318
- let props;
1319
- if ($[0] !== t0) {
1320
- ({
1321
- className,
1322
- ...props
1323
- } = t0);
1324
- $[0] = t0;
1325
- $[1] = className;
1326
- $[2] = props;
1327
- } else {
1328
- className = $[1];
1329
- props = $[2];
1330
- }
1331
- let t1;
1332
- if ($[3] !== className) {
1333
- t1 = cn("flex min-h-0 flex-1 flex-col gap-0 overflow-x-hidden overflow-y-auto [scrollbar-color:color-mix(in_oklch,var(--muted-foreground)_25%,transparent)_transparent] [scrollbar-width:thin] [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/25 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar]:w-1.5 hover:[scrollbar-color:color-mix(in_oklch,var(--muted-foreground)_50%,transparent)_transparent] hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/50", className);
1334
- $[3] = className;
1335
- $[4] = t1;
1336
- } else {
1337
- t1 = $[4];
1338
- }
1339
- let t2;
1340
- if ($[5] !== props || $[6] !== t1) {
1341
- t2 = /* @__PURE__ */ jsxDEV("div", {
1342
- "data-slot": "sidebar-content",
1343
- "data-sidebar": "content",
1344
- className: t1,
1345
- ...props
1346
- }, void 0, false);
1347
- $[5] = props;
1348
- $[6] = t1;
1349
- $[7] = t2;
1350
- } else {
1351
- t2 = $[7];
1352
- }
1353
- return t2;
1354
- }
1355
- function SidebarGroup(t0) {
1356
- const $ = c(8);
1357
- let className;
1358
- let props;
1359
- if ($[0] !== t0) {
1360
- ({
1361
- className,
1362
- ...props
1363
- } = t0);
1364
- $[0] = t0;
1365
- $[1] = className;
1366
- $[2] = props;
1367
- } else {
1368
- className = $[1];
1369
- props = $[2];
1370
- }
1371
- let t1;
1372
- if ($[3] !== className) {
1373
- t1 = cn("relative flex w-full min-w-0 flex-col p-2", className);
1374
- $[3] = className;
1375
- $[4] = t1;
1376
- } else {
1377
- t1 = $[4];
1378
- }
1379
- let t2;
1380
- if ($[5] !== props || $[6] !== t1) {
1381
- t2 = /* @__PURE__ */ jsxDEV("div", {
1382
- "data-slot": "sidebar-group",
1383
- "data-sidebar": "group",
1384
- className: t1,
1385
- ...props
1386
- }, void 0, false);
1387
- $[5] = props;
1388
- $[6] = t1;
1389
- $[7] = t2;
1390
- } else {
1391
- t2 = $[7];
1392
- }
1393
- return t2;
1394
- }
1395
- function SidebarGroupLabel(t0) {
1396
- const $ = c(10);
1397
- let render;
1398
- let t1;
1399
- let t2;
1400
- let t3;
1401
- if ($[0] !== t0) {
1402
- const {
1403
- className,
1404
- render: t42,
1405
- ...props
1406
- } = t0;
1407
- render = t42;
1408
- t3 = useRender;
1409
- t1 = "div";
1410
- t2 = mergeProps({
1411
- className: cn("flex h-8 shrink-0 items-center rounded-none px-2 text-xs text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", className)
1412
- }, props);
1413
- $[0] = t0;
1414
- $[1] = render;
1415
- $[2] = t1;
1416
- $[3] = t2;
1417
- $[4] = t3;
1418
- } else {
1419
- render = $[1];
1420
- t1 = $[2];
1421
- t2 = $[3];
1422
- t3 = $[4];
1423
- }
1424
- let t4;
1425
- if ($[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1426
- t4 = {
1427
- slot: "sidebar-group-label",
1428
- sidebar: "group-label"
1429
- };
1430
- $[5] = t4;
1431
- } else {
1432
- t4 = $[5];
1433
- }
1434
- let t5;
1435
- if ($[6] !== render || $[7] !== t1 || $[8] !== t2) {
1436
- t5 = {
1437
- defaultTagName: t1,
1438
- props: t2,
1439
- render,
1440
- state: t4
1441
- };
1442
- $[6] = render;
1443
- $[7] = t1;
1444
- $[8] = t2;
1445
- $[9] = t5;
1446
- } else {
1447
- t5 = $[9];
1448
- }
1449
- return t3(t5);
1450
- }
1451
- function SidebarGroupContent(t0) {
1452
- const $ = c(8);
1453
- let className;
1454
- let props;
1455
- if ($[0] !== t0) {
1456
- ({
1457
- className,
1458
- ...props
1459
- } = t0);
1460
- $[0] = t0;
1461
- $[1] = className;
1462
- $[2] = props;
1463
- } else {
1464
- className = $[1];
1465
- props = $[2];
1466
- }
1467
- let t1;
1468
- if ($[3] !== className) {
1469
- t1 = cn("w-full text-xs", className);
1470
- $[3] = className;
1471
- $[4] = t1;
1472
- } else {
1473
- t1 = $[4];
1474
- }
1475
- let t2;
1476
- if ($[5] !== props || $[6] !== t1) {
1477
- t2 = /* @__PURE__ */ jsxDEV("div", {
1478
- "data-slot": "sidebar-group-content",
1479
- "data-sidebar": "group-content",
1480
- className: t1,
1481
- ...props
1482
- }, void 0, false);
1483
- $[5] = props;
1484
- $[6] = t1;
1485
- $[7] = t2;
1486
- } else {
1487
- t2 = $[7];
1488
- }
1489
- return t2;
1490
- }
1491
- function SidebarMenu(t0) {
1492
- const $ = c(8);
1493
- let className;
1494
- let props;
1495
- if ($[0] !== t0) {
1496
- ({
1497
- className,
1498
- ...props
1499
- } = t0);
1500
- $[0] = t0;
1501
- $[1] = className;
1502
- $[2] = props;
1503
- } else {
1504
- className = $[1];
1505
- props = $[2];
1506
- }
1507
- let t1;
1508
- if ($[3] !== className) {
1509
- t1 = cn("flex w-full min-w-0 flex-col gap-0", className);
1510
- $[3] = className;
1511
- $[4] = t1;
1512
- } else {
1513
- t1 = $[4];
1514
- }
1515
- let t2;
1516
- if ($[5] !== props || $[6] !== t1) {
1517
- t2 = /* @__PURE__ */ jsxDEV("ul", {
1518
- "data-slot": "sidebar-menu",
1519
- "data-sidebar": "menu",
1520
- className: t1,
1521
- ...props
1522
- }, void 0, false);
1523
- $[5] = props;
1524
- $[6] = t1;
1525
- $[7] = t2;
1526
- } else {
1527
- t2 = $[7];
1528
- }
1529
- return t2;
1530
- }
1531
- function SidebarMenuItem(t0) {
1532
- const $ = c(8);
1533
- let className;
1534
- let props;
1535
- if ($[0] !== t0) {
1536
- ({
1537
- className,
1538
- ...props
1539
- } = t0);
1540
- $[0] = t0;
1541
- $[1] = className;
1542
- $[2] = props;
1543
- } else {
1544
- className = $[1];
1545
- props = $[2];
1546
- }
1547
- let t1;
1548
- if ($[3] !== className) {
1549
- t1 = cn("group/menu-item relative", className);
1550
- $[3] = className;
1551
- $[4] = t1;
1552
- } else {
1553
- t1 = $[4];
1554
- }
1555
- let t2;
1556
- if ($[5] !== props || $[6] !== t1) {
1557
- t2 = /* @__PURE__ */ jsxDEV("li", {
1558
- "data-slot": "sidebar-menu-item",
1559
- "data-sidebar": "menu-item",
1560
- className: t1,
1561
- ...props
1562
- }, void 0, false);
1563
- $[5] = props;
1564
- $[6] = t1;
1565
- $[7] = t2;
1566
- } else {
1567
- t2 = $[7];
1568
- }
1569
- return t2;
1570
- }
1571
- const sidebarMenuButtonVariants = cva("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-none p-2 text-start text-xs ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pe-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate", {
1572
- variants: {
1573
- variant: {
1574
- default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
1575
- outline: "bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"
1576
- },
1577
- size: {
1578
- default: "h-8 text-xs",
1579
- sm: "h-7 text-xs",
1580
- lg: "h-12 text-xs group-data-[collapsible=icon]:p-0!"
1581
- }
1582
- },
1583
- defaultVariants: {
1584
- variant: "default",
1585
- size: "default"
1586
- }
1587
- });
1588
- function SidebarMenuButton({
1589
- render,
1590
- isActive = false,
1591
- variant = "default",
1592
- size = "default",
1593
- tooltip,
1594
- className,
1595
- ...props
1596
- }) {
1597
- const {
1598
- isMobile,
1599
- state
1600
- } = useSidebar();
1601
- const comp = useRender({
1602
- defaultTagName: "button",
1603
- props: mergeProps({
1604
- className: cn(sidebarMenuButtonVariants({
1605
- variant,
1606
- size
1607
- }), className)
1608
- }, props),
1609
- render: !tooltip ? render : /* @__PURE__ */ jsxDEV(TooltipTrigger, {
1610
- render
1611
- }, void 0, false),
1612
- state: {
1613
- slot: "sidebar-menu-button",
1614
- sidebar: "menu-button",
1615
- size,
1616
- active: isActive
1617
- }
1618
- });
1619
- if (!tooltip) {
1620
- return comp;
1621
- }
1622
- if (typeof tooltip === "string") {
1623
- tooltip = {
1624
- children: tooltip
1625
- };
1626
- }
1627
- return /* @__PURE__ */ jsxDEV(Tooltip, {
1628
- children: [comp, /* @__PURE__ */ jsxDEV(TooltipContent, {
1629
- side: "right",
1630
- align: "center",
1631
- hidden: state !== "collapsed" || isMobile,
1632
- ...tooltip
1633
- }, void 0, false)]
1634
- }, void 0, true);
1635
- }
1636
-
1637
- const lazyNamed = (load, key) => /* @__PURE__ */ lazy(() => load().then((loaded) => {
1638
- return {
1639
- default: loaded[key]
1640
- };
1641
- }));
1642
- const InsightsPanel = lazyNamed(() => import('../packem_chunks/InsightsPanel.js'), "InsightsPanel");
1643
- const RlsPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/rls-panel.js'));
1644
- const SecurityAdvisorPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/SecurityAdvisorPanel.js'));
1645
- const AgentsPanel = lazyNamed(() => import('../packem_chunks/agents-panel.js'), "AgentsPanel");
1646
- const AnalyticsPanel = lazyNamed(() => import('../packem_chunks/analytics-panel.js'), "AnalyticsPanel");
1647
- const ApiTab = /* @__PURE__ */ lazy(() => import('../packem_chunks/ApiTab.js'));
1648
- const AuthAuditPanel = lazyNamed(() => import('../packem_chunks/auth-audit-panel.js'), "AuthAuditPanel");
1649
- const AuthConfigPanel = lazyNamed(() => import('../packem_chunks/auth-config-panel.js'), "AuthConfigPanel");
1650
- const AuthSessionsPanel = lazyNamed(() => import('../packem_chunks/auth-sessions-panel.js'), "AuthSessionsPanel");
1651
- const OrganizationsPanel = lazyNamed(() => import('../packem_chunks/organizations-panel.js'), "OrganizationsPanel");
1652
- const UsersPanel = lazyNamed(() => import('../packem_chunks/users-panel.js'), "UsersPanel");
1653
- const ContainersPanel = lazyNamed(() => import('../packem_chunks/containers-panel.js'), "ContainersPanel");
1654
- const DeploymentHealthPanel = lazyNamed(() => import('../packem_chunks/DeploymentHealthPanel.js'), "DeploymentHealthPanel");
1655
- const TableEditor = lazyNamed(() => import('../packem_chunks/TableEditor.js'), "TableEditor");
1656
- const ExportImportPanel = lazyNamed(() => import('../packem_chunks/ExportImportPanel.js'), "ExportImportPanel");
1657
- const MigrationsPanel = lazyNamed(() => import('../packem_chunks/MigrationsPanel.js'), "MigrationsPanel");
1658
- const PitrPanel = lazyNamed(() => import('../packem_chunks/PitrPanel.js'), "PitrPanel");
1659
- const FlagsPanel = lazyNamed(() => import('../packem_chunks/flags-panel.js'), "FlagsPanel");
1660
- const FunctionRunner = lazyNamed(() => import('../packem_chunks/FunctionRunner.js'), "FunctionRunner");
1661
- const FunctionStatsPanel = lazyNamed(() => import('../packem_chunks/FunctionStatsPanel.js'), "FunctionStatsPanel");
1662
- const IssuesPanel = lazyNamed(() => import('../packem_chunks/issues-panel.js'), "IssuesPanel");
1663
- const AuditPanel = lazyNamed(() => import('../packem_chunks/AuditPanel.js'), "AuditPanel");
1664
- const LogDrainsPanel = lazyNamed(() => import('../packem_chunks/log-drains-panel.js'), "LogDrainsPanel");
1665
- const LogsPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/LogsPanel.js').then((m) => {
1666
- return {
1667
- default: m.LogsPanel
1668
- };
1669
- }));
1670
- const MailPanel = lazyNamed(() => import('../packem_chunks/MailPanel.js'), "MailPanel");
1671
- const SchedulePanel = lazyNamed(() => import('../packem_chunks/schedule-panel.js'), "SchedulePanel");
1672
- const SubscriptionsPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/subscriptions-panel.js'));
1673
- const KvBrowser = lazyNamed(() => import('../packem_chunks/kv-browser.js'), "KvBrowser");
1674
- const NotificationsPanel = lazyNamed(() => import('../packem_chunks/NotificationsPanel.js'), "NotificationsPanel");
1675
- const PaymentsPanel = lazyNamed(() => import('../packem_chunks/payments-panel.js'), "PaymentsPanel");
1676
- const PermissionsPanel = lazyNamed(() => import('../packem_chunks/permissions-panel.js'), "PermissionsPanel");
1677
- const QueuesPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/queues-panel.js'));
1678
- const DashboardsPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/dashboards-panel.js'));
1679
- const FanoutPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/fanout-panel.js'));
1680
- const HealthPanel = lazyNamed(() => import('../packem_chunks/HealthPanel.js'), "HealthPanel");
1681
- const MetricsPanel = lazyNamed(() => import('../packem_chunks/MetricsPanel.js'), "MetricsPanel");
1682
- const SchemaViewer = lazyNamed(() => import('../packem_chunks/SchemaViewer.js'), "SchemaViewer");
1683
- const SettingsPanel = lazyNamed(() => import('../packem_chunks/SettingsPanel.js'), "SettingsPanel");
1684
- const SqlEditorPanel = lazyNamed(() => import('../packem_chunks/SqlEditorPanel.js'), "SqlEditorPanel");
1685
- const FileBrowser = lazyNamed(() => import('../packem_chunks/FileBrowser.js'), "FileBrowser");
1686
- const StorageRulesPanel = lazyNamed(() => import('../packem_chunks/storage-rules-panel.js'), "StorageRulesPanel");
1687
- const TracesPanel = lazyNamed(() => import('../packem_chunks/traces-panel.js'), "TracesPanel");
1688
- const VectorBrowser = lazyNamed(() => import('../packem_chunks/vector-browser.js'), "VectorBrowser");
1689
- const WorkflowsPanel = /* @__PURE__ */ lazy(() => import('../packem_chunks/workflows-panel.js'));
1690
- const StudioChromeContext = /* @__PURE__ */ createContext(null);
1691
- const TAB_ICONS = {
1692
- analytics: /* @__PURE__ */ jsxDEV("path", {
1693
- d: "M5 20V10m6.5 10V4M18 20v-7M3 20h18"
1694
- }, void 0, false),
1695
- api: /* @__PURE__ */ jsxDEV("path", {
1696
- d: "m9 8-4 4 4 4m6-8 4 4-4 4M13 5l-2 14"
1697
- }, void 0, false),
1698
- audit: /* @__PURE__ */ jsxDEV("path", {
1699
- d: "M7 4h7l4 4v11a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1Zm6 0v5h5M9 13h6M9 16h6M9 10h2"
1700
- }, void 0, false),
1701
- authAudit: /* @__PURE__ */ jsxDEV("path", {
1702
- d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3Zm-3 8h6m-6 3h6"
1703
- }, void 0, false),
1704
- authConfig: /* @__PURE__ */ jsxDEV("path", {
1705
- d: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm7.4-3a7.4 7.4 0 0 0-.1-1.2l2-1.6-2-3.4-2.4 1a7.3 7.3 0 0 0-2-1.2l-.4-2.6h-3.6l-.4 2.6a7.3 7.3 0 0 0-2 1.2l-2.4-1-2 3.4 2 1.6a7.4 7.4 0 0 0 0 2.4l-2 1.6 2 3.4 2.4-1a7.3 7.3 0 0 0 2 1.2l.4 2.6h3.6l.4-2.6a7.3 7.3 0 0 0 2-1.2l2.4 1 2-3.4-2-1.6a7.4 7.4 0 0 0 .1-1.2Z"
1706
- }, void 0, false),
1707
- agents: /* @__PURE__ */ jsxDEV("path", {
1708
- d: "M12 8V5m0 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM6 8h12a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-6a2 2 0 0 1 2-2Zm3 5h.01M15 13h.01M9 21h6"
1709
- }, void 0, false),
1710
- authSessions: /* @__PURE__ */ jsxDEV("path", {
1711
- d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm0-13.5V12l4 2"
1712
- }, void 0, false),
1713
- containers: /* @__PURE__ */ jsxDEV("path", {
1714
- d: "M3 7.5 12 3l9 4.5v9L12 21l-9-4.5v-9Zm0 0 9 4.5m0 0 9-4.5m-9 4.5V21"
1715
- }, void 0, false),
1716
- dashboards: /* @__PURE__ */ jsxDEV("path", {
1717
- d: "M4 5h7v6H4V5Zm9 0h7v4h-7V5ZM4 14h7v5H4v-5Zm9-1h7v6h-7v-6Z"
1718
- }, void 0, false),
1719
- deploymentHealth: /* @__PURE__ */ jsxDEV("path", {
1720
- d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3Zm-3 8 2 3 4-5"
1721
- }, void 0, false),
1722
- drains: /* @__PURE__ */ jsxDEV("path", {
1723
- d: "M5 5h14M7 5v6a5 5 0 0 0 10 0V5M10 16h4v3h-4zM12 19v2"
1724
- }, void 0, false),
1725
- data: /* @__PURE__ */ jsxDEV("path", {
1726
- d: "M5 6c0-1.4 3.1-2.5 7-2.5s7 1.1 7 2.5-3.1 2.5-7 2.5S5 7.4 5 6Zm0 0v12c0 1.4 3.1 2.5 7 2.5s7-1.1 7-2.5V6M5 12c0 1.4 3.1 2.5 7 2.5s7-1.1 7-2.5"
1727
- }, void 0, false),
1728
- export: /* @__PURE__ */ jsxDEV("path", {
1729
- d: "M12 3v11m0 0 4-4m-4 4-4-4M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2"
1730
- }, void 0, false),
1731
- fanout: /* @__PURE__ */ jsxDEV("path", {
1732
- d: "M12 5a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm-7 16a2 2 0 1 0 0-4 2 2 0 0 0 0 4Zm14 0a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM12 7v3.5M12 10.5 6 17m6-6.5 6 6.5"
1733
- }, void 0, false),
1734
- files: /* @__PURE__ */ jsxDEV("path", {
1735
- d: "M4 7a2 2 0 0 1 2-2h3l2 2.5h7a2 2 0 0 1 2 2V18a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7Z"
1736
- }, void 0, false),
1737
- flags: /* @__PURE__ */ jsxDEV("path", {
1738
- d: "M6 21V4m0 0h11l-2 3 2 3H6"
1739
- }, void 0, false),
1740
- functions: /* @__PURE__ */ jsxDEV("path", {
1741
- d: "m9 8-4 4 4 4m6-8 4 4-4 4"
1742
- }, void 0, false),
1743
- health: /* @__PURE__ */ jsxDEV("path", {
1744
- d: "M3 12h4l2 6 4-14 2 8h6"
1745
- }, void 0, false),
1746
- home: /* @__PURE__ */ jsxDEV("path", {
1747
- d: "M3 11.5 12 4l9 7.5M5 10v9a1 1 0 0 0 1 1h4v-6h4v6h4a1 1 0 0 0 1-1v-9"
1748
- }, void 0, false),
1749
- insights: /* @__PURE__ */ jsxDEV("path", {
1750
- d: "M12 3a6 6 0 0 0-3.6 10.8c.5.4.8.9.9 1.5l.2 1.2h5l.2-1.2c.1-.6.4-1.1.9-1.5A6 6 0 0 0 12 3ZM9.5 20.5h5M10 18h4"
1751
- }, void 0, false),
1752
- issues: /* @__PURE__ */ jsxDEV("path", {
1753
- d: "M10.3 4.3 2.5 18a2 2 0 0 0 1.7 3h15.6a2 2 0 0 0 1.7-3L13.7 4.3a2 2 0 0 0-3.4 0ZM12 9v4m0 3v.01"
1754
- }, void 0, false),
1755
- kv: /* @__PURE__ */ jsxDEV("path", {
1756
- d: "M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"
1757
- }, void 0, false),
1758
- logs: /* @__PURE__ */ jsxDEV("path", {
1759
- d: "M5 6h14M5 10h14M5 14h9M5 18h11"
1760
- }, void 0, false),
1761
- mail: /* @__PURE__ */ jsxDEV("path", {
1762
- d: "M4 5h16v14H4V5Zm0 1.5 8 6 8-6"
1763
- }, void 0, false),
1764
- payments: /* @__PURE__ */ jsxDEV("path", {
1765
- d: "M3 7h18v10H3V7Zm0 3h18M7 14h4"
1766
- }, void 0, false),
1767
- metrics: /* @__PURE__ */ jsxDEV("path", {
1768
- d: "M5 20V10m6.5 10V4M18 20v-7M3 20h18"
1769
- }, void 0, false),
1770
- migrations: /* @__PURE__ */ jsxDEV("path", {
1771
- d: "M4 12a8 8 0 0 1 13.7-5.6L20 8M20 4v4h-4M20 12a8 8 0 0 1-13.7 5.6L4 16m0 4v-4h4"
1772
- }, void 0, false),
1773
- notifications: /* @__PURE__ */ jsxDEV("path", {
1774
- d: "M15 17h5l-1.4-1.4A2 2 0 0 1 18 14.2V11a6 6 0 0 0-4-5.7V5a2 2 0 1 0-4 0v.3A6 6 0 0 0 6 11v3.2a2 2 0 0 1-.6 1.4L4 17h5m6 0v1a3 3 0 1 1-6 0v-1m6 0H9"
1775
- }, void 0, false),
1776
- organizations: /* @__PURE__ */ jsxDEV("path", {
1777
- d: "M3 21V8l6-4 6 4v13M9 21v-5h2v5M15 11h6v10M18 14v.01M18 17v.01M6 9v.01M6 12v.01M6 15v.01"
1778
- }, void 0, false),
1779
- permissions: /* @__PURE__ */ jsxDEV("path", {
1780
- d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3Zm-3 8 2.2 2.2L15 9.5M8.5 16h7"
1781
- }, void 0, false),
1782
- pitr: /* @__PURE__ */ jsxDEV("path", {
1783
- d: "M12 21a9 9 0 1 0-9-9M12 7.5V12l3 2M3 12l-2-2m2 2 2-2"
1784
- }, void 0, false),
1785
- queues: /* @__PURE__ */ jsxDEV("path", {
1786
- d: "M4 6h16M4 10h16M4 14h10M4 18h10m4-2 3 2-3 2v-4Z"
1787
- }, void 0, false),
1788
- realtime: /* @__PURE__ */ jsxDEV("path", {
1789
- d: "M5 12a7 7 0 0 1 14 0M8 12a4 4 0 0 1 8 0M12 12v8m0-8a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z"
1790
- }, void 0, false),
1791
- rls: /* @__PURE__ */ jsxDEV("path", {
1792
- d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3ZM8.5 10h7M8.5 13h7"
1793
- }, void 0, false),
1794
- schedule: /* @__PURE__ */ jsxDEV("path", {
1795
- d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Zm0-13.5V12l4 2"
1796
- }, void 0, false),
1797
- schema: /* @__PURE__ */ jsxDEV("path", {
1798
- d: "M4 5h16v14H4V5Zm0 5h16M10 10v9M4 14.5h16"
1799
- }, void 0, false),
1800
- sql: /* @__PURE__ */ jsxDEV("path", {
1801
- d: "M4 5h16v14H4V5Zm3 4 3 3-3 3m6 0h4"
1802
- }, void 0, false),
1803
- storageRules: /* @__PURE__ */ jsxDEV("path", {
1804
- d: "M7 10V7a5 5 0 0 1 10 0v3m-11 0h12a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1Zm6 4v2"
1805
- }, void 0, false),
1806
- security: /* @__PURE__ */ jsxDEV("path", {
1807
- d: "M12 3 5 6v5c0 4.5 3 7.8 7 9 4-1.2 7-4.5 7-9V6l-7-3Zm-2.5 8.5 2 2 4-4"
1808
- }, void 0, false),
1809
- traces: /* @__PURE__ */ jsxDEV("path", {
1810
- d: "M3 6h9M6 12h12M10 18h7"
1811
- }, void 0, false),
1812
- settings: /* @__PURE__ */ jsxDEV("path", {
1813
- d: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm7.4-3a7.4 7.4 0 0 0-.1-1.2l2-1.6-2-3.4-2.4 1a7.3 7.3 0 0 0-2-1.2l-.4-2.6H10.5l-.4 2.6a7.3 7.3 0 0 0-2 1.2l-2.4-1-2 3.4 2 1.6a7.4 7.4 0 0 0 0 2.4l-2 1.6 2 3.4 2.4-1a7.3 7.3 0 0 0 2 1.2l.4 2.6h3.6l.4-2.6a7.3 7.3 0 0 0 2-1.2l2.4 1 2-3.4-2-1.6a7.4 7.4 0 0 0 .1-1.2Z"
1814
- }, void 0, false),
1815
- users: /* @__PURE__ */ jsxDEV("path", {
1816
- d: "M16 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M9.5 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm11.5 10v-2a4 4 0 0 0-3-3.85M16 3.13A4 4 0 0 1 16 11"
1817
- }, void 0, false),
1818
- vectors: /* @__PURE__ */ jsxDEV("path", {
1819
- d: "M4 7l8-4 8 4-8 4-8-4Zm0 5 8 4 8-4M4 17l8 4 8-4"
1820
- }, void 0, false),
1821
- workflows: /* @__PURE__ */ jsxDEV("path", {
1822
- d: "M5 5h5v5H5V5Zm9 9h5v5h-5v-5ZM7.5 10v2a2 2 0 0 0 2 2H14m2.5-4V8a2 2 0 0 0-2-2H10"
1823
- }, void 0, false)
1824
- };
1825
- const NAV_GROUPS = [{
1826
- key: "overview",
1827
- tabs: ["home", "dashboards"]
1828
- }, {
1829
- key: "database",
1830
- tabs: ["data", "sql", "schema", "migrations", "vectors", "pitr", "export"]
1831
- }, {
1832
- key: "functions",
1833
- tabs: ["functions", "api", "workflows", "agents", "queues"]
1834
- }, {
1835
- key: "auth",
1836
- tabs: ["users", "organizations", "authSessions", "authAudit", "authConfig"]
1837
- }, {
1838
- key: "storage",
1839
- tabs: ["files", "storageRules", "kv"]
1840
- }, {
1841
- key: "observability",
1842
- tabs: ["issues", "logs", "traces", "audit", "realtime", "fanout", "containers", "metrics", "analytics", "health", "deploymentHealth"]
1843
- }, {
1844
- key: "advisors",
1845
- tabs: ["security", "rls", "permissions", "insights"]
1846
- }, {
1847
- key: "operations",
1848
- tabs: ["schedule", "mail", "drains", "notifications", "payments", "flags"]
1849
- }, {
1850
- key: "settings",
1851
- tabs: ["settings"]
1852
- }];
1853
- const TAB_FEATURE = {
1854
- analytics: "analytics",
1855
- authConfig: "auth",
1856
- authSessions: "auth",
1857
- containers: "containers",
1858
- files: "storage",
1859
- flags: "flags",
1860
- kv: "kv",
1861
- mail: "mail",
1862
- organizations: "auth",
1863
- payments: "payments",
1864
- queues: "queues",
1865
- schedule: "scheduler",
1866
- storageRules: "storage",
1867
- users: "auth",
1868
- vectors: "vectors",
1869
- workflows: "workflows"
1870
- };
1871
- const isTabVisible = (tab, features) => {
1872
- const feature = TAB_FEATURE[tab];
1873
- return feature === void 0 || features[feature];
1874
- };
1875
- const TabIcon = (t0) => {
1876
- const $ = c(2);
1877
- const {
1878
- tab
1879
- } = t0;
1880
- const t1 = TAB_ICONS[tab];
1881
- let t2;
1882
- if ($[0] !== t1) {
1883
- t2 = /* @__PURE__ */ jsxDEV("svg", {
1884
- "aria-hidden": "true",
1885
- className: "size-4 shrink-0",
1886
- fill: "none",
1887
- stroke: "currentColor",
1888
- strokeLinecap: "round",
1889
- strokeLinejoin: "round",
1890
- strokeWidth: 1.6,
1891
- viewBox: "0 0 24 24",
1892
- children: t1
1893
- }, void 0, false);
1894
- $[0] = t1;
1895
- $[1] = t2;
1896
- } else {
1897
- t2 = $[1];
1898
- }
1899
- return t2;
1900
- };
1901
- const exhaustiveRouteTabs = (tabs) => tabs;
1902
- const TABS = exhaustiveRouteTabs(["home", "data", "sql", "functions", "api", "workflows", "agents", "queues", "containers", "schema", "migrations", "vectors", "export", "pitr", "users", "organizations", "authSessions", "authAudit", "authConfig", "files", "storageRules", "kv", "dashboards", "metrics", "analytics", "health", "deploymentHealth", "security", "rls", "permissions", "insights", "issues", "logs", "traces", "realtime", "fanout", "mail", "notifications", "payments", "audit", "schedule", "drains", "flags", "settings"]);
1903
- const FULL_HEIGHT_TABS = /* @__PURE__ */ new Set(["api", "data", "sql"]);
1904
- const tabFromPathname = (pathname) => {
1905
- const slug = pathname.split("/").findLast(Boolean) ?? "";
1906
- return TABS.includes(slug) ? slug : "home";
1907
- };
1908
- const ConnectPopoverContent = (t0) => {
1909
- const $ = c(19);
1910
- const {
1911
- chrome,
1912
- connected
1913
- } = t0;
1914
- const t = useT();
1915
- let t1;
1916
- if ($[0] !== t) {
1917
- t1 = t("admin token");
1918
- $[0] = t;
1919
- $[1] = t1;
1920
- } else {
1921
- t1 = $[1];
1922
- }
1923
- let t2;
1924
- if ($[2] !== t1) {
1925
- t2 = /* @__PURE__ */ jsxDEV("label", {
1926
- className: "text-xs font-medium text-foreground",
1927
- htmlFor: "dash-app-token",
1928
- children: t1
1929
- }, void 0, false);
1930
- $[2] = t1;
1931
- $[3] = t2;
1932
- } else {
1933
- t2 = $[3];
1934
- }
1935
- let t3;
1936
- if ($[4] !== chrome.onTokenChange || $[5] !== chrome.token) {
1937
- t3 = /* @__PURE__ */ jsxDEV(Input, {
1938
- className: "h-8",
1939
- "data-testid": "dash-app-token",
1940
- id: "dash-app-token",
1941
- onChange: chrome.onTokenChange,
1942
- placeholder: "LUNORA_ADMIN_TOKEN",
1943
- type: "password",
1944
- value: chrome.token
1945
- }, void 0, false);
1946
- $[4] = chrome.onTokenChange;
1947
- $[5] = chrome.token;
1948
- $[6] = t3;
1949
- } else {
1950
- t3 = $[6];
1951
- }
1952
- let t4;
1953
- if ($[7] !== connected || $[8] !== t) {
1954
- t4 = connected && /* @__PURE__ */ jsxDEV("p", {
1955
- className: "flex items-start gap-1.5 text-[11px] text-muted-foreground",
1956
- "data-testid": "dash-app-token-warning",
1957
- role: "note",
1958
- children: [/* @__PURE__ */ jsxDEV("span", {
1959
- "aria-hidden": "true",
1960
- className: "text-warning",
1961
- children: "⚠"
1962
- }, void 0, false), t("Token rides the WebSocket URL — it can surface in browser DevTools and server logs. Use a dev-only token.")]
1963
- }, void 0, true);
1964
- $[7] = connected;
1965
- $[8] = t;
1966
- $[9] = t4;
1967
- } else {
1968
- t4 = $[9];
1969
- }
1970
- let t5;
1971
- if ($[10] !== chrome.clearToken || $[11] !== connected || $[12] !== t) {
1972
- t5 = connected && /* @__PURE__ */ jsxDEV("button", {
1973
- className: "self-start rounded-md border border-border px-2.5 py-1 text-xs font-medium outline-none transition-colors hover:bg-accent focus-visible:bg-accent",
1974
- "data-testid": "dash-app-clear-token",
1975
- onClick: chrome.clearToken,
1976
- type: "button",
1977
- children: t("Clear")
1978
- }, void 0, false);
1979
- $[10] = chrome.clearToken;
1980
- $[11] = connected;
1981
- $[12] = t;
1982
- $[13] = t5;
1983
- } else {
1984
- t5 = $[13];
1985
- }
1986
- let t6;
1987
- if ($[14] !== t2 || $[15] !== t3 || $[16] !== t4 || $[17] !== t5) {
1988
- t6 = /* @__PURE__ */ jsxDEV("div", {
1989
- className: "flex flex-col gap-2",
1990
- children: [t2, t3, t4, t5]
1991
- }, void 0, true);
1992
- $[14] = t2;
1993
- $[15] = t3;
1994
- $[16] = t4;
1995
- $[17] = t5;
1996
- $[18] = t6;
1997
- } else {
1998
- t6 = $[18];
1999
- }
2000
- return t6;
2001
- };
2002
- const CollapsedGroupNav = (t0) => {
2003
- const $ = c(25);
2004
- const {
2005
- current,
2006
- group,
2007
- groupLabel,
2008
- selectTab,
2009
- tabDescription,
2010
- tabLabel
2011
- } = t0;
2012
- const t1 = group.tabs.includes(current) ? "page" : void 0;
2013
- const t2 = groupLabel[group.key];
2014
- const t3 = group.tabs[0];
2015
- let t4;
2016
- if ($[0] !== t3) {
2017
- t4 = /* @__PURE__ */ jsxDEV(TabIcon, {
2018
- tab: t3
2019
- }, void 0, false);
2020
- $[0] = t3;
2021
- $[1] = t4;
2022
- } else {
2023
- t4 = $[1];
2024
- }
2025
- let t5;
2026
- if ($[2] !== t1 || $[3] !== t2 || $[4] !== t4) {
2027
- t5 = /* @__PURE__ */ jsxDEV(PopoverTrigger, {
2028
- "aria-current": t1,
2029
- "aria-label": t2,
2030
- className: "mx-auto flex size-8 items-center justify-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:bg-sidebar-accent data-[popup-open]:bg-sidebar-accent data-[popup-open]:text-sidebar-accent-foreground data-[popup-open]:shadow-xs aria-[current=page]:bg-sidebar-accent aria-[current=page]:text-sidebar-accent-foreground aria-[current=page]:shadow-xs",
2031
- delay: 120,
2032
- openOnHover: true,
2033
- children: t4
2034
- }, void 0, false);
2035
- $[2] = t1;
2036
- $[3] = t2;
2037
- $[4] = t4;
2038
- $[5] = t5;
2039
- } else {
2040
- t5 = $[5];
2041
- }
2042
- const t6 = groupLabel[group.key];
2043
- let t7;
2044
- if ($[6] !== t6) {
2045
- t7 = /* @__PURE__ */ jsxDEV("div", {
2046
- className: "px-2 py-1.5 text-[11px] font-medium tracking-wider text-muted-foreground uppercase",
2047
- children: t6
2048
- }, void 0, false);
2049
- $[6] = t6;
2050
- $[7] = t7;
2051
- } else {
2052
- t7 = $[7];
2053
- }
2054
- let t8;
2055
- if ($[8] !== current || $[9] !== group.tabs || $[10] !== selectTab || $[11] !== tabDescription || $[12] !== tabLabel) {
2056
- let t92;
2057
- if ($[14] !== current || $[15] !== selectTab || $[16] !== tabDescription || $[17] !== tabLabel) {
2058
- t92 = (tab) => /* @__PURE__ */ jsxDEV("button", {
2059
- "aria-current": current === tab ? "page" : void 0,
2060
- className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-start text-[13px] text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent aria-[current=page]:bg-accent aria-[current=page]:font-medium [&_svg]:opacity-70 aria-[current=page]:[&_svg]:opacity-100",
2061
- "data-tab": tab,
2062
- "data-testid": `dash-tab-${tab}`,
2063
- onClick: selectTab,
2064
- title: tabDescription[tab],
2065
- type: "button",
2066
- children: [/* @__PURE__ */ jsxDEV(TabIcon, {
2067
- tab
2068
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
2069
- children: tabLabel[tab]
2070
- }, void 0, false)]
2071
- }, tab, true);
2072
- $[14] = current;
2073
- $[15] = selectTab;
2074
- $[16] = tabDescription;
2075
- $[17] = tabLabel;
2076
- $[18] = t92;
2077
- } else {
2078
- t92 = $[18];
2079
- }
2080
- t8 = group.tabs.map(t92);
2081
- $[8] = current;
2082
- $[9] = group.tabs;
2083
- $[10] = selectTab;
2084
- $[11] = tabDescription;
2085
- $[12] = tabLabel;
2086
- $[13] = t8;
2087
- } else {
2088
- t8 = $[13];
2089
- }
2090
- let t9;
2091
- if ($[19] !== t7 || $[20] !== t8) {
2092
- t9 = /* @__PURE__ */ jsxDEV(PopoverContent, {
2093
- align: "start",
2094
- className: "w-56 p-1",
2095
- side: "right",
2096
- sideOffset: 8,
2097
- children: [t7, t8]
2098
- }, void 0, true);
2099
- $[19] = t7;
2100
- $[20] = t8;
2101
- $[21] = t9;
2102
- } else {
2103
- t9 = $[21];
2104
- }
2105
- let t10;
2106
- if ($[22] !== t5 || $[23] !== t9) {
2107
- t10 = /* @__PURE__ */ jsxDEV(Popover, {
2108
- children: [t5, t9]
2109
- }, void 0, true);
2110
- $[22] = t5;
2111
- $[23] = t9;
2112
- $[24] = t10;
2113
- } else {
2114
- t10 = $[24];
2115
- }
2116
- return t10;
2117
- };
2118
- const SidebarFooterProfile = (t0) => {
2119
- const $ = c(45);
2120
- const {
2121
- chrome,
2122
- collapsed,
2123
- connected
2124
- } = t0;
2125
- const t = useT();
2126
- if (chrome === null) {
2127
- let t14;
2128
- if ($[0] !== t) {
2129
- t14 = t("Admin");
2130
- $[0] = t;
2131
- $[1] = t14;
2132
- } else {
2133
- t14 = $[1];
2134
- }
2135
- let t22;
2136
- if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2137
- t22 = /* @__PURE__ */ jsxDEV("span", {
2138
- className: "flex size-8 items-center justify-center rounded-full bg-sidebar-accent text-[11px] font-medium",
2139
- children: "C"
2140
- }, void 0, false);
2141
- $[2] = t22;
2142
- } else {
2143
- t22 = $[2];
2144
- }
2145
- let t32;
2146
- if ($[3] !== t) {
2147
- t32 = t("Admin");
2148
- $[3] = t;
2149
- $[4] = t32;
2150
- } else {
2151
- t32 = $[4];
2152
- }
2153
- let t42;
2154
- if ($[5] !== t32) {
2155
- t42 = /* @__PURE__ */ jsxDEV("span", {
2156
- className: "truncate text-[13px] font-medium",
2157
- children: t32
2158
- }, void 0, false);
2159
- $[5] = t32;
2160
- $[6] = t42;
2161
- } else {
2162
- t42 = $[6];
2163
- }
2164
- let t52;
2165
- if ($[7] !== t) {
2166
- t52 = t("Studio");
2167
- $[7] = t;
2168
- $[8] = t52;
2169
- } else {
2170
- t52 = $[8];
2171
- }
2172
- let t62;
2173
- if ($[9] !== t52) {
2174
- t62 = /* @__PURE__ */ jsxDEV("span", {
2175
- className: "truncate text-[11px] text-muted-foreground",
2176
- children: t52
2177
- }, void 0, false);
2178
- $[9] = t52;
2179
- $[10] = t62;
2180
- } else {
2181
- t62 = $[10];
2182
- }
2183
- let t72;
2184
- if ($[11] !== t42 || $[12] !== t62) {
2185
- t72 = /* @__PURE__ */ jsxDEV("span", {
2186
- className: "grid flex-1 text-start leading-tight",
2187
- children: [t42, t62]
2188
- }, void 0, true);
2189
- $[11] = t42;
2190
- $[12] = t62;
2191
- $[13] = t72;
2192
- } else {
2193
- t72 = $[13];
2194
- }
2195
- let t82;
2196
- if ($[14] !== t14 || $[15] !== t72) {
2197
- t82 = /* @__PURE__ */ jsxDEV(SidebarMenuButton, {
2198
- className: "data-active:bg-transparent",
2199
- size: "lg",
2200
- tooltip: t14,
2201
- children: [t22, t72]
2202
- }, void 0, true);
2203
- $[14] = t14;
2204
- $[15] = t72;
2205
- $[16] = t82;
2206
- } else {
2207
- t82 = $[16];
2208
- }
2209
- return t82;
2210
- }
2211
- const t1 = collapsed ? "mx-auto size-8 justify-center" : "w-full p-2";
2212
- let t2;
2213
- if ($[17] !== t1) {
2214
- t2 = cn("flex items-center gap-2 rounded-md text-start outline-none transition-colors hover:bg-sidebar-accent focus-visible:bg-sidebar-accent", t1);
2215
- $[17] = t1;
2216
- $[18] = t2;
2217
- } else {
2218
- t2 = $[18];
2219
- }
2220
- let t3;
2221
- if ($[19] !== connected || $[20] !== t) {
2222
- t3 = connected ? t("Connected") : t("Not connected");
2223
- $[19] = connected;
2224
- $[20] = t;
2225
- $[21] = t3;
2226
- } else {
2227
- t3 = $[21];
2228
- }
2229
- const t4 = connected ? "bg-success" : "bg-muted-foreground/50";
2230
- let t5;
2231
- if ($[22] !== t4) {
2232
- t5 = cn("absolute -end-0.5 -bottom-0.5 size-2.5 rounded-full border-2 border-sidebar", t4);
2233
- $[22] = t4;
2234
- $[23] = t5;
2235
- } else {
2236
- t5 = $[23];
2237
- }
2238
- let t6;
2239
- if ($[24] !== t5) {
2240
- t6 = /* @__PURE__ */ jsxDEV("span", {
2241
- className: "relative flex size-8 shrink-0 items-center justify-center rounded-full bg-sidebar-accent text-[11px] font-medium",
2242
- children: ["C", /* @__PURE__ */ jsxDEV("span", {
2243
- "aria-hidden": "true",
2244
- className: t5
2245
- }, void 0, false)]
2246
- }, void 0, true);
2247
- $[24] = t5;
2248
- $[25] = t6;
2249
- } else {
2250
- t6 = $[25];
2251
- }
2252
- let t7;
2253
- if ($[26] !== collapsed || $[27] !== connected || $[28] !== t) {
2254
- t7 = !collapsed && /* @__PURE__ */ jsxDEV(Fragment, {
2255
- children: [/* @__PURE__ */ jsxDEV("span", {
2256
- className: "grid flex-1 text-start leading-tight",
2257
- children: [/* @__PURE__ */ jsxDEV("span", {
2258
- className: "truncate text-[13px] font-medium",
2259
- children: t("Admin")
2260
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
2261
- className: "truncate text-[11px] text-muted-foreground",
2262
- children: connected ? t("Connected") : t("Not connected")
2263
- }, void 0, false)]
2264
- }, void 0, true), /* @__PURE__ */ jsxDEV("svg", {
2265
- "aria-hidden": "true",
2266
- className: "size-4 text-muted-foreground",
2267
- fill: "none",
2268
- stroke: "currentColor",
2269
- strokeWidth: 1.7,
2270
- viewBox: "0 0 24 24",
2271
- children: /* @__PURE__ */ jsxDEV("path", {
2272
- d: "m8 9 4-4 4 4M8 15l4 4 4-4",
2273
- strokeLinecap: "round",
2274
- strokeLinejoin: "round"
2275
- }, void 0, false)
2276
- }, void 0, false)]
2277
- }, void 0, true);
2278
- $[26] = collapsed;
2279
- $[27] = connected;
2280
- $[28] = t;
2281
- $[29] = t7;
2282
- } else {
2283
- t7 = $[29];
2284
- }
2285
- let t8;
2286
- if ($[30] !== t2 || $[31] !== t3 || $[32] !== t6 || $[33] !== t7) {
2287
- t8 = /* @__PURE__ */ jsxDEV(PopoverTrigger, {
2288
- className: t2,
2289
- "data-testid": "dash-app-connect",
2290
- title: t3,
2291
- children: [t6, t7]
2292
- }, void 0, true);
2293
- $[30] = t2;
2294
- $[31] = t3;
2295
- $[32] = t6;
2296
- $[33] = t7;
2297
- $[34] = t8;
2298
- } else {
2299
- t8 = $[34];
2300
- }
2301
- const t9 = collapsed ? "end" : "start";
2302
- const t10 = collapsed ? "right" : "top";
2303
- let t11;
2304
- if ($[35] !== chrome || $[36] !== connected) {
2305
- t11 = /* @__PURE__ */ jsxDEV(ConnectPopoverContent, {
2306
- chrome,
2307
- connected
2308
- }, void 0, false);
2309
- $[35] = chrome;
2310
- $[36] = connected;
2311
- $[37] = t11;
2312
- } else {
2313
- t11 = $[37];
2314
- }
2315
- let t12;
2316
- if ($[38] !== t10 || $[39] !== t11 || $[40] !== t9) {
2317
- t12 = /* @__PURE__ */ jsxDEV(PopoverContent, {
2318
- align: t9,
2319
- keepMounted: true,
2320
- side: t10,
2321
- children: t11
2322
- }, void 0, false);
2323
- $[38] = t10;
2324
- $[39] = t11;
2325
- $[40] = t9;
2326
- $[41] = t12;
2327
- } else {
2328
- t12 = $[41];
2329
- }
2330
- let t13;
2331
- if ($[42] !== t12 || $[43] !== t8) {
2332
- t13 = /* @__PURE__ */ jsxDEV(Popover, {
2333
- children: [t8, t12]
2334
- }, void 0, true);
2335
- $[42] = t12;
2336
- $[43] = t8;
2337
- $[44] = t13;
2338
- } else {
2339
- t13 = $[44];
2340
- }
2341
- return t13;
2342
- };
2343
- const StudioSidebar = (t0) => {
2344
- const $ = c(28);
2345
- const {
2346
- chrome,
2347
- connected,
2348
- current,
2349
- groupLabel,
2350
- groups,
2351
- selectTab,
2352
- tabDescription,
2353
- tabLabel
2354
- } = t0;
2355
- const t = useT();
2356
- const {
2357
- state
2358
- } = useSidebar();
2359
- const collapsed = state === "collapsed";
2360
- const t1 = collapsed && "justify-center px-0";
2361
- let t2;
2362
- if ($[0] !== t1) {
2363
- t2 = cn("flex items-center gap-2.5 px-1.5 py-1", t1);
2364
- $[0] = t1;
2365
- $[1] = t2;
2366
- } else {
2367
- t2 = $[1];
2368
- }
2369
- let t3;
2370
- if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2371
- t3 = /* @__PURE__ */ jsxDEV(BrandMark, {
2372
- className: "size-9 shrink-0 text-foreground"
2373
- }, void 0, false);
2374
- $[2] = t3;
2375
- } else {
2376
- t3 = $[2];
2377
- }
2378
- let t4;
2379
- if ($[3] !== collapsed || $[4] !== connected || $[5] !== t) {
2380
- t4 = !collapsed && /* @__PURE__ */ jsxDEV(Fragment, {
2381
- children: [/* @__PURE__ */ jsxDEV("span", {
2382
- className: "grid flex-1 leading-tight",
2383
- children: [/* @__PURE__ */ jsxDEV("span", {
2384
- className: "truncate text-sm font-semibold text-foreground",
2385
- children: "lunora"
2386
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
2387
- className: "truncate text-[11px] text-muted-foreground",
2388
- children: t("Studio")
2389
- }, void 0, false)]
2390
- }, void 0, true), /* @__PURE__ */ jsxDEV(Badge, {
2391
- className: "px-1.5 text-[10px] tracking-wider uppercase",
2392
- variant: "secondary",
2393
- children: connected ? t("Live") : t("Local")
2394
- }, void 0, false)]
2395
- }, void 0, true);
2396
- $[3] = collapsed;
2397
- $[4] = connected;
2398
- $[5] = t;
2399
- $[6] = t4;
2400
- } else {
2401
- t4 = $[6];
2402
- }
2403
- let t5;
2404
- if ($[7] !== t2 || $[8] !== t4) {
2405
- t5 = /* @__PURE__ */ jsxDEV(SidebarHeader, {
2406
- children: /* @__PURE__ */ jsxDEV("div", {
2407
- className: t2,
2408
- children: [t3, t4]
2409
- }, void 0, true)
2410
- }, void 0, false);
2411
- $[7] = t2;
2412
- $[8] = t4;
2413
- $[9] = t5;
2414
- } else {
2415
- t5 = $[9];
2416
- }
2417
- let t6;
2418
- if ($[10] !== collapsed || $[11] !== current || $[12] !== groupLabel || $[13] !== groups || $[14] !== selectTab || $[15] !== tabDescription || $[16] !== tabLabel) {
2419
- t6 = collapsed ? groups.map((group) => /* @__PURE__ */ jsxDEV(CollapsedGroupNav, {
2420
- current,
2421
- group,
2422
- groupLabel,
2423
- selectTab,
2424
- tabDescription,
2425
- tabLabel
2426
- }, group.key, false)) : groups.map((group_0) => /* @__PURE__ */ jsxDEV(SidebarGroup, {
2427
- children: [/* @__PURE__ */ jsxDEV(SidebarGroupLabel, {
2428
- className: "text-[11px] font-medium tracking-wider uppercase",
2429
- children: groupLabel[group_0.key]
2430
- }, void 0, false), /* @__PURE__ */ jsxDEV(SidebarGroupContent, {
2431
- children: /* @__PURE__ */ jsxDEV(SidebarMenu, {
2432
- children: group_0.tabs.map((tab) => /* @__PURE__ */ jsxDEV(SidebarMenuItem, {
2433
- children: /* @__PURE__ */ jsxDEV(SidebarMenuButton, {
2434
- className: "data-active:text-foreground dark:data-active:text-royal-amethyst data-active:shadow-[inset_2px_0_0_0_var(--royal-amethyst)]",
2435
- "data-tab": tab,
2436
- "data-testid": `dash-tab-${tab}`,
2437
- isActive: current === tab,
2438
- onClick: selectTab,
2439
- title: tabDescription[tab],
2440
- tooltip: tabDescription[tab],
2441
- children: [/* @__PURE__ */ jsxDEV(TabIcon, {
2442
- tab
2443
- }, void 0, false), /* @__PURE__ */ jsxDEV("span", {
2444
- children: tabLabel[tab]
2445
- }, void 0, false)]
2446
- }, void 0, true)
2447
- }, tab, false))
2448
- }, void 0, false)
2449
- }, void 0, false)]
2450
- }, group_0.key, true));
2451
- $[10] = collapsed;
2452
- $[11] = current;
2453
- $[12] = groupLabel;
2454
- $[13] = groups;
2455
- $[14] = selectTab;
2456
- $[15] = tabDescription;
2457
- $[16] = tabLabel;
2458
- $[17] = t6;
2459
- } else {
2460
- t6 = $[17];
2461
- }
2462
- let t7;
2463
- if ($[18] !== t6) {
2464
- t7 = /* @__PURE__ */ jsxDEV(SidebarContent, {
2465
- children: t6
2466
- }, void 0, false);
2467
- $[18] = t6;
2468
- $[19] = t7;
2469
- } else {
2470
- t7 = $[19];
2471
- }
2472
- let t8;
2473
- if ($[20] !== chrome || $[21] !== collapsed || $[22] !== connected) {
2474
- t8 = /* @__PURE__ */ jsxDEV(SidebarFooter, {
2475
- children: /* @__PURE__ */ jsxDEV(SidebarMenu, {
2476
- children: /* @__PURE__ */ jsxDEV(SidebarMenuItem, {
2477
- children: /* @__PURE__ */ jsxDEV(SidebarFooterProfile, {
2478
- chrome,
2479
- collapsed,
2480
- connected
2481
- }, void 0, false)
2482
- }, void 0, false)
2483
- }, void 0, false)
2484
- }, void 0, false);
2485
- $[20] = chrome;
2486
- $[21] = collapsed;
2487
- $[22] = connected;
2488
- $[23] = t8;
2489
- } else {
2490
- t8 = $[23];
2491
- }
2492
- let t9;
2493
- if ($[24] !== t5 || $[25] !== t7 || $[26] !== t8) {
2494
- t9 = /* @__PURE__ */ jsxDEV(Sidebar, {
2495
- collapsible: "icon",
2496
- variant: "inset",
2497
- children: [t5, t7, t8]
2498
- }, void 0, true);
2499
- $[24] = t5;
2500
- $[25] = t7;
2501
- $[26] = t8;
2502
- $[27] = t9;
2503
- } else {
2504
- t9 = $[27];
2505
- }
2506
- return t9;
2507
- };
2508
- const RoutePending = () => {
2509
- const $ = c(1);
2510
- let t0;
2511
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2512
- t0 = /* @__PURE__ */ jsxDEV("div", {
2513
- className: "flex flex-col gap-4",
2514
- "data-testid": "dash-pending",
2515
- children: [/* @__PURE__ */ jsxDEV("div", {
2516
- className: "flex items-center gap-2",
2517
- children: [/* @__PURE__ */ jsxDEV(Skeleton, {
2518
- className: "h-8 w-40"
2519
- }, void 0, false), /* @__PURE__ */ jsxDEV(Skeleton, {
2520
- className: "h-8 w-24"
2521
- }, void 0, false)]
2522
- }, void 0, true), /* @__PURE__ */ jsxDEV(Skeleton, {
2523
- className: "h-72 w-full"
2524
- }, void 0, false)]
2525
- }, void 0, true);
2526
- $[0] = t0;
2527
- } else {
2528
- t0 = $[0];
2529
- }
2530
- return t0;
2531
- };
2532
- const StudioLayout = () => {
2533
- const $ = c(330);
2534
- const t = useT();
2535
- const navigate = useNavigate();
2536
- let t0;
2537
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
2538
- t0 = {
2539
- select: _temp
2540
- };
2541
- $[0] = t0;
2542
- } else {
2543
- t0 = $[0];
2544
- }
2545
- const pathname = useRouterState(t0);
2546
- let current;
2547
- let t1;
2548
- if ($[1] !== pathname) {
2549
- current = tabFromPathname(pathname);
2550
- t1 = FULL_HEIGHT_TABS.has(current);
2551
- $[1] = pathname;
2552
- $[2] = current;
2553
- $[3] = t1;
2554
- } else {
2555
- current = $[2];
2556
- t1 = $[3];
2557
- }
2558
- const fullHeight = t1;
2559
- const features = useStudioFeatures();
2560
- let t2;
2561
- if ($[4] !== features) {
2562
- t2 = (group) => ({
2563
- ...group,
2564
- tabs: group.tabs.filter((tab) => isTabVisible(tab, features))
2565
- });
2566
- $[4] = features;
2567
- $[5] = t2;
2568
- } else {
2569
- t2 = $[5];
2570
- }
2571
- const visibleGroups = NAV_GROUPS.map(t2).filter(_temp2);
2572
- let t3;
2573
- let t4;
2574
- if ($[6] !== current || $[7] !== features || $[8] !== navigate) {
2575
- t3 = () => {
2576
- if (!isTabVisible(current, features)) {
2577
- fireAndForget(navigate({
2578
- replace: true,
2579
- to: "/home"
2580
- }));
2581
- }
2582
- };
2583
- t4 = [current, features, navigate];
2584
- $[6] = current;
2585
- $[7] = features;
2586
- $[8] = navigate;
2587
- $[9] = t3;
2588
- $[10] = t4;
2589
- } else {
2590
- t3 = $[9];
2591
- t4 = $[10];
2592
- }
2593
- useEffect(t3, t4);
2594
- let t5;
2595
- if ($[11] !== t) {
2596
- t5 = t("Agents");
2597
- $[11] = t;
2598
- $[12] = t5;
2599
- } else {
2600
- t5 = $[12];
2601
- }
2602
- let t6;
2603
- if ($[13] !== t) {
2604
- t6 = t("Analytics");
2605
- $[13] = t;
2606
- $[14] = t6;
2607
- } else {
2608
- t6 = $[14];
2609
- }
2610
- let t7;
2611
- if ($[15] !== t) {
2612
- t7 = t("API");
2613
- $[15] = t;
2614
- $[16] = t7;
2615
- } else {
2616
- t7 = $[16];
2617
- }
2618
- let t8;
2619
- if ($[17] !== t) {
2620
- t8 = t("Audit");
2621
- $[17] = t;
2622
- $[18] = t8;
2623
- } else {
2624
- t8 = $[18];
2625
- }
2626
- let t9;
2627
- if ($[19] !== t) {
2628
- t9 = t("Auth audit");
2629
- $[19] = t;
2630
- $[20] = t9;
2631
- } else {
2632
- t9 = $[20];
2633
- }
2634
- let t10;
2635
- if ($[21] !== t) {
2636
- t10 = t("Configuration");
2637
- $[21] = t;
2638
- $[22] = t10;
2639
- } else {
2640
- t10 = $[22];
2641
- }
2642
- let t11;
2643
- if ($[23] !== t) {
2644
- t11 = t("Sessions");
2645
- $[23] = t;
2646
- $[24] = t11;
2647
- } else {
2648
- t11 = $[24];
2649
- }
2650
- let t12;
2651
- if ($[25] !== t) {
2652
- t12 = t("Containers");
2653
- $[25] = t;
2654
- $[26] = t12;
2655
- } else {
2656
- t12 = $[26];
2657
- }
2658
- let t13;
2659
- if ($[27] !== t) {
2660
- t13 = t("Dashboards");
2661
- $[27] = t;
2662
- $[28] = t13;
2663
- } else {
2664
- t13 = $[28];
2665
- }
2666
- let t14;
2667
- if ($[29] !== t) {
2668
- t14 = t("Data");
2669
- $[29] = t;
2670
- $[30] = t14;
2671
- } else {
2672
- t14 = $[30];
2673
- }
2674
- let t15;
2675
- if ($[31] !== t) {
2676
- t15 = t("Deployment health");
2677
- $[31] = t;
2678
- $[32] = t15;
2679
- } else {
2680
- t15 = $[32];
2681
- }
2682
- let t16;
2683
- if ($[33] !== t) {
2684
- t16 = t("Log drains");
2685
- $[33] = t;
2686
- $[34] = t16;
2687
- } else {
2688
- t16 = $[34];
2689
- }
2690
- let t17;
2691
- if ($[35] !== t) {
2692
- t17 = t("Export / Import");
2693
- $[35] = t;
2694
- $[36] = t17;
2695
- } else {
2696
- t17 = $[36];
2697
- }
2698
- let t18;
2699
- if ($[37] !== t) {
2700
- t18 = t("Fan-out");
2701
- $[37] = t;
2702
- $[38] = t18;
2703
- } else {
2704
- t18 = $[38];
2705
- }
2706
- let t19;
2707
- if ($[39] !== t) {
2708
- t19 = t("Files");
2709
- $[39] = t;
2710
- $[40] = t19;
2711
- } else {
2712
- t19 = $[40];
2713
- }
2714
- let t20;
2715
- if ($[41] !== t) {
2716
- t20 = t("Flags");
2717
- $[41] = t;
2718
- $[42] = t20;
2719
- } else {
2720
- t20 = $[42];
2721
- }
2722
- let t21;
2723
- if ($[43] !== t) {
2724
- t21 = t("Functions");
2725
- $[43] = t;
2726
- $[44] = t21;
2727
- } else {
2728
- t21 = $[44];
2729
- }
2730
- let t22;
2731
- if ($[45] !== t) {
2732
- t22 = t("Health");
2733
- $[45] = t;
2734
- $[46] = t22;
2735
- } else {
2736
- t22 = $[46];
2737
- }
2738
- let t23;
2739
- if ($[47] !== t) {
2740
- t23 = t("Home");
2741
- $[47] = t;
2742
- $[48] = t23;
2743
- } else {
2744
- t23 = $[48];
2745
- }
2746
- let t24;
2747
- if ($[49] !== t) {
2748
- t24 = t("Performance");
2749
- $[49] = t;
2750
- $[50] = t24;
2751
- } else {
2752
- t24 = $[50];
2753
- }
2754
- let t25;
2755
- if ($[51] !== t) {
2756
- t25 = t("Issues");
2757
- $[51] = t;
2758
- $[52] = t25;
2759
- } else {
2760
- t25 = $[52];
2761
- }
2762
- let t26;
2763
- if ($[53] !== t) {
2764
- t26 = t("KV");
2765
- $[53] = t;
2766
- $[54] = t26;
2767
- } else {
2768
- t26 = $[54];
2769
- }
2770
- let t27;
2771
- if ($[55] !== t) {
2772
- t27 = t("Logs");
2773
- $[55] = t;
2774
- $[56] = t27;
2775
- } else {
2776
- t27 = $[56];
2777
- }
2778
- let t28;
2779
- if ($[57] !== t) {
2780
- t28 = t("Metrics");
2781
- $[57] = t;
2782
- $[58] = t28;
2783
- } else {
2784
- t28 = $[58];
2785
- }
2786
- let t29;
2787
- if ($[59] !== t) {
2788
- t29 = t("Migrations");
2789
- $[59] = t;
2790
- $[60] = t29;
2791
- } else {
2792
- t29 = $[60];
2793
- }
2794
- let t30;
2795
- if ($[61] !== t) {
2796
- t30 = t("Notifications");
2797
- $[61] = t;
2798
- $[62] = t30;
2799
- } else {
2800
- t30 = $[62];
2801
- }
2802
- let t31;
2803
- if ($[63] !== t) {
2804
- t31 = t("Organizations");
2805
- $[63] = t;
2806
- $[64] = t31;
2807
- } else {
2808
- t31 = $[64];
2809
- }
2810
- let t32;
2811
- if ($[65] !== t) {
2812
- t32 = t("Time Travel");
2813
- $[65] = t;
2814
- $[66] = t32;
2815
- } else {
2816
- t32 = $[66];
2817
- }
2818
- let t33;
2819
- if ($[67] !== t) {
2820
- t33 = t("Mail");
2821
- $[67] = t;
2822
- $[68] = t33;
2823
- } else {
2824
- t33 = $[68];
2825
- }
2826
- let t34;
2827
- if ($[69] !== t) {
2828
- t34 = t("Payments");
2829
- $[69] = t;
2830
- $[70] = t34;
2831
- } else {
2832
- t34 = $[70];
2833
- }
2834
- let t35;
2835
- if ($[71] !== t) {
2836
- t35 = t("Permissions");
2837
- $[71] = t;
2838
- $[72] = t35;
2839
- } else {
2840
- t35 = $[72];
2841
- }
2842
- let t36;
2843
- if ($[73] !== t) {
2844
- t36 = t("Queues");
2845
- $[73] = t;
2846
- $[74] = t36;
2847
- } else {
2848
- t36 = $[74];
2849
- }
2850
- let t37;
2851
- if ($[75] !== t) {
2852
- t37 = t("Realtime");
2853
- $[75] = t;
2854
- $[76] = t37;
2855
- } else {
2856
- t37 = $[76];
2857
- }
2858
- let t38;
2859
- if ($[77] !== t) {
2860
- t38 = t("RLS Policies");
2861
- $[77] = t;
2862
- $[78] = t38;
2863
- } else {
2864
- t38 = $[78];
2865
- }
2866
- let t39;
2867
- if ($[79] !== t) {
2868
- t39 = t("Scheduled");
2869
- $[79] = t;
2870
- $[80] = t39;
2871
- } else {
2872
- t39 = $[80];
2873
- }
2874
- let t40;
2875
- if ($[81] !== t) {
2876
- t40 = t("Schema");
2877
- $[81] = t;
2878
- $[82] = t40;
2879
- } else {
2880
- t40 = $[82];
2881
- }
2882
- let t41;
2883
- if ($[83] !== t) {
2884
- t41 = t("Security");
2885
- $[83] = t;
2886
- $[84] = t41;
2887
- } else {
2888
- t41 = $[84];
2889
- }
2890
- let t42;
2891
- if ($[85] !== t) {
2892
- t42 = t("Settings");
2893
- $[85] = t;
2894
- $[86] = t42;
2895
- } else {
2896
- t42 = $[86];
2897
- }
2898
- let t43;
2899
- if ($[87] !== t) {
2900
- t43 = t("SQL editor");
2901
- $[87] = t;
2902
- $[88] = t43;
2903
- } else {
2904
- t43 = $[88];
2905
- }
2906
- let t44;
2907
- if ($[89] !== t) {
2908
- t44 = t("Traces");
2909
- $[89] = t;
2910
- $[90] = t44;
2911
- } else {
2912
- t44 = $[90];
2913
- }
2914
- let t45;
2915
- if ($[91] !== t) {
2916
- t45 = t("Access Rules");
2917
- $[91] = t;
2918
- $[92] = t45;
2919
- } else {
2920
- t45 = $[92];
2921
- }
2922
- let t46;
2923
- if ($[93] !== t) {
2924
- t46 = t("Users");
2925
- $[93] = t;
2926
- $[94] = t46;
2927
- } else {
2928
- t46 = $[94];
2929
- }
2930
- let t47;
2931
- if ($[95] !== t) {
2932
- t47 = t("Vectors");
2933
- $[95] = t;
2934
- $[96] = t47;
2935
- } else {
2936
- t47 = $[96];
2937
- }
2938
- let t48;
2939
- if ($[97] !== t) {
2940
- t48 = t("Workflows");
2941
- $[97] = t;
2942
- $[98] = t48;
2943
- } else {
2944
- t48 = $[98];
2945
- }
2946
- let t49;
2947
- if ($[99] !== t10 || $[100] !== t11 || $[101] !== t12 || $[102] !== t13 || $[103] !== t14 || $[104] !== t15 || $[105] !== t16 || $[106] !== t17 || $[107] !== t18 || $[108] !== t19 || $[109] !== t20 || $[110] !== t21 || $[111] !== t22 || $[112] !== t23 || $[113] !== t24 || $[114] !== t25 || $[115] !== t26 || $[116] !== t27 || $[117] !== t28 || $[118] !== t29 || $[119] !== t30 || $[120] !== t31 || $[121] !== t32 || $[122] !== t33 || $[123] !== t34 || $[124] !== t35 || $[125] !== t36 || $[126] !== t37 || $[127] !== t38 || $[128] !== t39 || $[129] !== t40 || $[130] !== t41 || $[131] !== t42 || $[132] !== t43 || $[133] !== t44 || $[134] !== t45 || $[135] !== t46 || $[136] !== t47 || $[137] !== t48 || $[138] !== t5 || $[139] !== t6 || $[140] !== t7 || $[141] !== t8 || $[142] !== t9) {
2948
- t49 = {
2949
- agents: t5,
2950
- analytics: t6,
2951
- api: t7,
2952
- audit: t8,
2953
- authAudit: t9,
2954
- authConfig: t10,
2955
- authSessions: t11,
2956
- containers: t12,
2957
- dashboards: t13,
2958
- data: t14,
2959
- deploymentHealth: t15,
2960
- drains: t16,
2961
- export: t17,
2962
- fanout: t18,
2963
- files: t19,
2964
- flags: t20,
2965
- functions: t21,
2966
- health: t22,
2967
- home: t23,
2968
- insights: t24,
2969
- issues: t25,
2970
- kv: t26,
2971
- logs: t27,
2972
- metrics: t28,
2973
- migrations: t29,
2974
- notifications: t30,
2975
- organizations: t31,
2976
- pitr: t32,
2977
- mail: t33,
2978
- payments: t34,
2979
- permissions: t35,
2980
- queues: t36,
2981
- realtime: t37,
2982
- rls: t38,
2983
- schedule: t39,
2984
- schema: t40,
2985
- security: t41,
2986
- settings: t42,
2987
- sql: t43,
2988
- traces: t44,
2989
- storageRules: t45,
2990
- users: t46,
2991
- vectors: t47,
2992
- workflows: t48
2993
- };
2994
- $[99] = t10;
2995
- $[100] = t11;
2996
- $[101] = t12;
2997
- $[102] = t13;
2998
- $[103] = t14;
2999
- $[104] = t15;
3000
- $[105] = t16;
3001
- $[106] = t17;
3002
- $[107] = t18;
3003
- $[108] = t19;
3004
- $[109] = t20;
3005
- $[110] = t21;
3006
- $[111] = t22;
3007
- $[112] = t23;
3008
- $[113] = t24;
3009
- $[114] = t25;
3010
- $[115] = t26;
3011
- $[116] = t27;
3012
- $[117] = t28;
3013
- $[118] = t29;
3014
- $[119] = t30;
3015
- $[120] = t31;
3016
- $[121] = t32;
3017
- $[122] = t33;
3018
- $[123] = t34;
3019
- $[124] = t35;
3020
- $[125] = t36;
3021
- $[126] = t37;
3022
- $[127] = t38;
3023
- $[128] = t39;
3024
- $[129] = t40;
3025
- $[130] = t41;
3026
- $[131] = t42;
3027
- $[132] = t43;
3028
- $[133] = t44;
3029
- $[134] = t45;
3030
- $[135] = t46;
3031
- $[136] = t47;
3032
- $[137] = t48;
3033
- $[138] = t5;
3034
- $[139] = t6;
3035
- $[140] = t7;
3036
- $[141] = t8;
3037
- $[142] = t9;
3038
- $[143] = t49;
3039
- } else {
3040
- t49 = $[143];
3041
- }
3042
- const tabLabel = t49;
3043
- const groupLabel = {
3044
- advisors: t("Advisors"),
3045
- auth: t("Auth"),
3046
- database: t("Database"),
3047
- functions: t("Functions"),
3048
- observability: t("Observability"),
3049
- operations: t("Operations"),
3050
- overview: t("Overview"),
3051
- settings: t("Settings"),
3052
- storage: t("Storage")
3053
- };
3054
- let t50;
3055
- if ($[144] !== t) {
3056
- t50 = t("Inspect agent threads, message timelines, tool calls, and token usage.");
3057
- $[144] = t;
3058
- $[145] = t50;
3059
- } else {
3060
- t50 = $[145];
3061
- }
3062
- let t51;
3063
- if ($[146] !== t) {
3064
- t51 = t("Usage and latency from Analytics Engine — request volume, p50/p95, and hot shards.");
3065
- $[146] = t;
3066
- $[147] = t51;
3067
- } else {
3068
- t51 = $[147];
3069
- }
3070
- let t52;
3071
- if ($[148] !== t) {
3072
- t52 = t("Interactive OpenAPI reference and copy-paste snippets for your functions.");
3073
- $[148] = t;
3074
- $[149] = t52;
3075
- } else {
3076
- t52 = $[149];
3077
- }
3078
- let t53;
3079
- if ($[150] !== t) {
3080
- t53 = t("A durable log of admin state-changing operations.");
3081
- $[150] = t;
3082
- $[151] = t53;
3083
- } else {
3084
- t53 = $[151];
3085
- }
3086
- let t54;
3087
- if ($[152] !== t) {
3088
- t54 = t("Authentication and security events — sign-ins, MFA, and session changes.");
3089
- $[152] = t;
3090
- $[153] = t54;
3091
- } else {
3092
- t54 = $[153];
3093
- }
3094
- let t55;
3095
- if ($[154] !== t) {
3096
- t55 = t("Enabled plugins and session config (read-only).");
3097
- $[154] = t;
3098
- $[155] = t55;
3099
- } else {
3100
- t55 = $[155];
3101
- }
3102
- let t56;
3103
- if ($[156] !== t) {
3104
- t56 = t("Browse and revoke active sessions across all users.");
3105
- $[156] = t;
3106
- $[157] = t56;
3107
- } else {
3108
- t56 = $[157];
3109
- }
3110
- let t57;
3111
- if ($[158] !== t) {
3112
- t57 = t("Live Cloudflare Containers — current lifecycle state per instance from the log stream.");
3113
- $[158] = t;
3114
- $[159] = t57;
3115
- } else {
3116
- t57 = $[159];
3117
- }
3118
- let t58;
3119
- if ($[160] !== t) {
3120
- t58 = t("Chart widgets backed by saved read-only SQL queries.");
3121
- $[160] = t;
3122
- $[161] = t58;
3123
- } else {
3124
- t58 = $[161];
3125
- }
3126
- let t59;
3127
- if ($[162] !== t) {
3128
- t59 = t("Browse and edit rows across your shard and global tables.");
3129
- $[162] = t;
3130
- $[163] = t59;
3131
- } else {
3132
- t59 = $[163];
3133
- }
3134
- let t60;
3135
- if ($[164] !== t) {
3136
- t60 = t("Live liveness, readiness, and per-binding health from the deployment's /_lunora/health endpoint.");
3137
- $[164] = t;
3138
- $[165] = t60;
3139
- } else {
3140
- t60 = $[165];
3141
- }
3142
- let t61;
3143
- if ($[166] !== t) {
3144
- t61 = t("Forward logs to Logpush, Tail Workers, or a webhook collector.");
3145
- $[166] = t;
3146
- $[167] = t61;
3147
- } else {
3148
- t61 = $[167];
3149
- }
3150
- let t62;
3151
- if ($[168] !== t) {
3152
- t62 = t("Export a shard to NDJSON, or import rows from it.");
3153
- $[168] = t;
3154
- $[169] = t62;
3155
- } else {
3156
- t62 = $[169];
3157
- }
3158
- let t63;
3159
- if ($[170] !== t) {
3160
- t63 = t("Realtime fan-out cost and per-topic subscriber counts for this shard.");
3161
- $[170] = t;
3162
- $[171] = t63;
3163
- } else {
3164
- t63 = $[171];
3165
- }
3166
- let t64;
3167
- if ($[172] !== t) {
3168
- t64 = t("Browse objects in your R2 storage buckets.");
3169
- $[172] = t;
3170
- $[173] = t64;
3171
- } else {
3172
- t64 = $[173];
3173
- }
3174
- let t65;
3175
- if ($[174] !== t) {
3176
- t65 = t("Inspect feature flags and their live evaluation under a targeting context.");
3177
- $[174] = t;
3178
- $[175] = t65;
3179
- } else {
3180
- t65 = $[175];
3181
- }
3182
- let t66;
3183
- if ($[176] !== t) {
3184
- t66 = t("Run registered queries, mutations, and actions.");
3185
- $[176] = t;
3186
- $[177] = t66;
3187
- } else {
3188
- t66 = $[177];
3189
- }
3190
- let t67;
3191
- if ($[178] !== t) {
3192
- t67 = t("At-a-glance connection, error, and shard signals.");
3193
- $[178] = t;
3194
- $[179] = t67;
3195
- } else {
3196
- t67 = $[179];
3197
- }
3198
- let t68;
3199
- if ($[180] !== t) {
3200
- t68 = t("Connection, health, and advisor summary for your deployment.");
3201
- $[180] = t;
3202
- $[181] = t68;
3203
- } else {
3204
- t68 = $[181];
3205
- }
3206
- let t69;
3207
- if ($[182] !== t) {
3208
- t69 = t("Surface slow functions, error spikes, and cache problems.");
3209
- $[182] = t;
3210
- $[183] = t69;
3211
- } else {
3212
- t69 = $[183];
3213
- }
3214
- let t70;
3215
- if ($[184] !== t) {
3216
- t70 = t("Grouped error triage — Worker throws and container crashes folded by fingerprint.");
3217
- $[184] = t;
3218
- $[185] = t70;
3219
- } else {
3220
- t70 = $[185];
3221
- }
3222
- let t71;
3223
- if ($[186] !== t) {
3224
- t71 = t("A live stream of recent function logs.");
3225
- $[186] = t;
3226
- $[187] = t71;
3227
- } else {
3228
- t71 = $[187];
3229
- }
3230
- let t72;
3231
- if ($[188] !== t) {
3232
- t72 = t("Per-shard health and aggregate metrics.");
3233
- $[188] = t;
3234
- $[189] = t72;
3235
- } else {
3236
- t72 = $[189];
3237
- }
3238
- let t73;
3239
- if ($[190] !== t) {
3240
- t73 = t("Review migration status and run them.");
3241
- $[190] = t;
3242
- $[191] = t73;
3243
- } else {
3244
- t73 = $[191];
3245
- }
3246
- let t74;
3247
- if ($[192] !== t) {
3248
- t74 = t("Registered push devices — endpoint, kind, last-send status, and delivery errors.");
3249
- $[192] = t;
3250
- $[193] = t74;
3251
- } else {
3252
- t74 = $[193];
3253
- }
3254
- let t75;
3255
- if ($[194] !== t) {
3256
- t75 = t("Browse and manage organizations, members, and invitations.");
3257
- $[194] = t;
3258
- $[195] = t75;
3259
- } else {
3260
- t75 = $[195];
3261
- }
3262
- let t76;
3263
- if ($[196] !== t) {
3264
- t76 = t("Restore a shard to a point in the last 30 days.");
3265
- $[196] = t;
3266
- $[197] = t76;
3267
- } else {
3268
- t76 = $[197];
3269
- }
3270
- let t77;
3271
- if ($[198] !== t) {
3272
- t77 = t("Email your app sent, captured in dev.");
3273
- $[198] = t;
3274
- $[199] = t77;
3275
- } else {
3276
- t77 = $[199];
3277
- }
3278
- let t78;
3279
- if ($[200] !== t) {
3280
- t78 = t("Synced customers, subscriptions, and webhook events.");
3281
- $[200] = t;
3282
- $[201] = t78;
3283
- } else {
3284
- t78 = $[201];
3285
- }
3286
- let t79;
3287
- if ($[202] !== t) {
3288
- t79 = t("Inspect access policies per table, and probe a function as any identity.");
3289
- $[202] = t;
3290
- $[203] = t79;
3291
- } else {
3292
- t79 = $[203];
3293
- }
3294
- let t80;
3295
- if ($[204] !== t) {
3296
- t80 = t("Inspect declared Cloudflare Queues — their producer bindings, consumer mode, and dead-letter queue.");
3297
- $[204] = t;
3298
- $[205] = t80;
3299
- } else {
3300
- t80 = $[205];
3301
- }
3302
- let t81;
3303
- if ($[206] !== t) {
3304
- t81 = t("Active WebSocket subscriptions on this shard.");
3305
- $[206] = t;
3306
- $[207] = t81;
3307
- } else {
3308
- t81 = $[207];
3309
- }
3310
- let t82;
3311
- if ($[208] !== t) {
3312
- t82 = t("Inspect row-level-security policies and roles, per table.");
3313
- $[208] = t;
3314
- $[209] = t82;
3315
- } else {
3316
- t82 = $[209];
3317
- }
3318
- let t83;
3319
- if ($[210] !== t) {
3320
- t83 = t("Inspect and cancel scheduled jobs.");
3321
- $[210] = t;
3322
- $[211] = t83;
3323
- } else {
3324
- t83 = $[211];
3325
- }
3326
- let t84;
3327
- if ($[212] !== t) {
3328
- t84 = t("Inspect each table and its columns.");
3329
- $[212] = t;
3330
- $[213] = t84;
3331
- } else {
3332
- t84 = $[213];
3333
- }
3334
- let t85;
3335
- if ($[214] !== t) {
3336
- t85 = t("Review admin gates, credentials, and log redaction.");
3337
- $[214] = t;
3338
- $[215] = t85;
3339
- } else {
3340
- t85 = $[215];
3341
- }
3342
- let t86;
3343
- if ($[216] !== t) {
3344
- t86 = t("Read-only deployment config — vars, secrets, and bindings.");
3345
- $[216] = t;
3346
- $[217] = t86;
3347
- } else {
3348
- t86 = $[217];
3349
- }
3350
- let t87;
3351
- if ($[218] !== t) {
3352
- t87 = t("Run read-only SQL against a shard.");
3353
- $[218] = t;
3354
- $[219] = t87;
3355
- } else {
3356
- t87 = $[219];
3357
- }
3358
- let t88;
3359
- if ($[220] !== t) {
3360
- t88 = t("Browse and edit key-value pairs in your Workers KV namespaces.");
3361
- $[220] = t;
3362
- $[221] = t88;
3363
- } else {
3364
- t88 = $[221];
3365
- }
3366
- let t89;
3367
- if ($[222] !== t) {
3368
- t89 = t("Inspect storage access rules — per bucket, operation, and key prefix.");
3369
- $[222] = t;
3370
- $[223] = t89;
3371
- } else {
3372
- t89 = $[223];
3373
- }
3374
- let t90;
3375
- if ($[224] !== t) {
3376
- t90 = t("Recent ctx.trace waterfalls for this shard — the drill-down from a log line.");
3377
- $[224] = t;
3378
- $[225] = t90;
3379
- } else {
3380
- t90 = $[225];
3381
- }
3382
- let t91;
3383
- if ($[226] !== t) {
3384
- t91 = t("Manage auth users — roles, bans, sessions, and identity.");
3385
- $[226] = t;
3386
- $[227] = t91;
3387
- } else {
3388
- t91 = $[227];
3389
- }
3390
- let t92;
3391
- if ($[228] !== t) {
3392
- t92 = t("Browse Vectorize indexes and run similarity searches.");
3393
- $[228] = t;
3394
- $[229] = t92;
3395
- } else {
3396
- t92 = $[229];
3397
- }
3398
- let t93;
3399
- if ($[230] !== t) {
3400
- t93 = t("Inspect declared Cloudflare Workflows and their bindings.");
3401
- $[230] = t;
3402
- $[231] = t93;
3403
- } else {
3404
- t93 = $[231];
3405
- }
3406
- let t94;
3407
- if ($[232] !== t50 || $[233] !== t51 || $[234] !== t52 || $[235] !== t53 || $[236] !== t54 || $[237] !== t55 || $[238] !== t56 || $[239] !== t57 || $[240] !== t58 || $[241] !== t59 || $[242] !== t60 || $[243] !== t61 || $[244] !== t62 || $[245] !== t63 || $[246] !== t64 || $[247] !== t65 || $[248] !== t66 || $[249] !== t67 || $[250] !== t68 || $[251] !== t69 || $[252] !== t70 || $[253] !== t71 || $[254] !== t72 || $[255] !== t73 || $[256] !== t74 || $[257] !== t75 || $[258] !== t76 || $[259] !== t77 || $[260] !== t78 || $[261] !== t79 || $[262] !== t80 || $[263] !== t81 || $[264] !== t82 || $[265] !== t83 || $[266] !== t84 || $[267] !== t85 || $[268] !== t86 || $[269] !== t87 || $[270] !== t88 || $[271] !== t89 || $[272] !== t90 || $[273] !== t91 || $[274] !== t92 || $[275] !== t93) {
3408
- t94 = {
3409
- agents: t50,
3410
- analytics: t51,
3411
- api: t52,
3412
- audit: t53,
3413
- authAudit: t54,
3414
- authConfig: t55,
3415
- authSessions: t56,
3416
- containers: t57,
3417
- dashboards: t58,
3418
- data: t59,
3419
- deploymentHealth: t60,
3420
- drains: t61,
3421
- export: t62,
3422
- fanout: t63,
3423
- files: t64,
3424
- flags: t65,
3425
- functions: t66,
3426
- health: t67,
3427
- home: t68,
3428
- insights: t69,
3429
- issues: t70,
3430
- logs: t71,
3431
- metrics: t72,
3432
- migrations: t73,
3433
- notifications: t74,
3434
- organizations: t75,
3435
- pitr: t76,
3436
- mail: t77,
3437
- payments: t78,
3438
- permissions: t79,
3439
- queues: t80,
3440
- realtime: t81,
3441
- rls: t82,
3442
- schedule: t83,
3443
- schema: t84,
3444
- security: t85,
3445
- settings: t86,
3446
- sql: t87,
3447
- kv: t88,
3448
- storageRules: t89,
3449
- traces: t90,
3450
- users: t91,
3451
- vectors: t92,
3452
- workflows: t93
3453
- };
3454
- $[232] = t50;
3455
- $[233] = t51;
3456
- $[234] = t52;
3457
- $[235] = t53;
3458
- $[236] = t54;
3459
- $[237] = t55;
3460
- $[238] = t56;
3461
- $[239] = t57;
3462
- $[240] = t58;
3463
- $[241] = t59;
3464
- $[242] = t60;
3465
- $[243] = t61;
3466
- $[244] = t62;
3467
- $[245] = t63;
3468
- $[246] = t64;
3469
- $[247] = t65;
3470
- $[248] = t66;
3471
- $[249] = t67;
3472
- $[250] = t68;
3473
- $[251] = t69;
3474
- $[252] = t70;
3475
- $[253] = t71;
3476
- $[254] = t72;
3477
- $[255] = t73;
3478
- $[256] = t74;
3479
- $[257] = t75;
3480
- $[258] = t76;
3481
- $[259] = t77;
3482
- $[260] = t78;
3483
- $[261] = t79;
3484
- $[262] = t80;
3485
- $[263] = t81;
3486
- $[264] = t82;
3487
- $[265] = t83;
3488
- $[266] = t84;
3489
- $[267] = t85;
3490
- $[268] = t86;
3491
- $[269] = t87;
3492
- $[270] = t88;
3493
- $[271] = t89;
3494
- $[272] = t90;
3495
- $[273] = t91;
3496
- $[274] = t92;
3497
- $[275] = t93;
3498
- $[276] = t94;
3499
- } else {
3500
- t94 = $[276];
3501
- }
3502
- const tabDescription = t94;
3503
- let t95;
3504
- if ($[277] !== navigate) {
3505
- t95 = (event) => {
3506
- fireAndForget(navigate({
3507
- to: `/${event.currentTarget.dataset.tab ?? ""}`
3508
- }));
3509
- };
3510
- $[277] = navigate;
3511
- $[278] = t95;
3512
- } else {
3513
- t95 = $[278];
3514
- }
3515
- const selectTab = t95;
3516
- let t96;
3517
- let t97;
3518
- if ($[279] !== current || $[280] !== tabLabel) {
3519
- t96 = () => {
3520
- if (typeof document !== "undefined") {
3521
- document.title = `${tabLabel[current]} · lunora`;
3522
- }
3523
- };
3524
- t97 = [current, tabLabel];
3525
- $[279] = current;
3526
- $[280] = tabLabel;
3527
- $[281] = t96;
3528
- $[282] = t97;
3529
- } else {
3530
- t96 = $[281];
3531
- t97 = $[282];
3532
- }
3533
- useEffect(t96, t97);
3534
- const activeGroup = visibleGroups.find((group_1) => group_1.tabs.includes(current)) ?? NAV_GROUPS[0];
3535
- const commandItems = visibleGroups.flatMap((group_2) => group_2.tabs.map((tab_0) => ({
3536
- group: groupLabel[group_2.key],
3537
- label: tabLabel[tab_0],
3538
- to: `/${tab_0}`
3539
- })));
3540
- const chrome = use(StudioChromeContext);
3541
- const connected = chrome !== null && chrome.token !== "";
3542
- let t98;
3543
- if ($[283] !== commandItems) {
3544
- t98 = /* @__PURE__ */ jsxDEV(CommandPalette, {
3545
- items: commandItems
3546
- }, void 0, false);
3547
- $[283] = commandItems;
3548
- $[284] = t98;
3549
- } else {
3550
- t98 = $[284];
3551
- }
3552
- let t99;
3553
- if ($[285] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3554
- t99 = /* @__PURE__ */ jsxDEV(SidebarTrigger, {
3555
- className: "-ms-1"
3556
- }, void 0, false);
3557
- $[285] = t99;
3558
- } else {
3559
- t99 = $[285];
3560
- }
3561
- let t100;
3562
- if ($[286] !== t) {
3563
- t100 = t("Breadcrumb");
3564
- $[286] = t;
3565
- $[287] = t100;
3566
- } else {
3567
- t100 = $[287];
3568
- }
3569
- const t101 = groupLabel[activeGroup.key];
3570
- let t102;
3571
- if ($[288] !== t101) {
3572
- t102 = /* @__PURE__ */ jsxDEV("span", {
3573
- className: "text-muted-foreground",
3574
- children: t101
3575
- }, void 0, false);
3576
- $[288] = t101;
3577
- $[289] = t102;
3578
- } else {
3579
- t102 = $[289];
3580
- }
3581
- let t103;
3582
- if ($[290] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3583
- t103 = /* @__PURE__ */ jsxDEV("svg", {
3584
- "aria-hidden": "true",
3585
- className: "size-3.5 text-muted-foreground/60",
3586
- fill: "none",
3587
- stroke: "currentColor",
3588
- strokeWidth: 1.7,
3589
- viewBox: "0 0 24 24",
3590
- children: /* @__PURE__ */ jsxDEV("path", {
3591
- d: "m9 6 6 6-6 6",
3592
- strokeLinecap: "round",
3593
- strokeLinejoin: "round"
3594
- }, void 0, false)
3595
- }, void 0, false);
3596
- $[290] = t103;
3597
- } else {
3598
- t103 = $[290];
3599
- }
3600
- const t104 = tabLabel[current];
3601
- let t105;
3602
- if ($[291] !== t104) {
3603
- t105 = /* @__PURE__ */ jsxDEV("span", {
3604
- className: "font-medium text-foreground",
3605
- children: t104
3606
- }, void 0, false);
3607
- $[291] = t104;
3608
- $[292] = t105;
3609
- } else {
3610
- t105 = $[292];
3611
- }
3612
- let t106;
3613
- if ($[293] !== t100 || $[294] !== t102 || $[295] !== t105) {
3614
- t106 = /* @__PURE__ */ jsxDEV("nav", {
3615
- "aria-label": t100,
3616
- className: "flex items-center gap-1.5 text-[13px]",
3617
- children: [t102, t103, t105]
3618
- }, void 0, true);
3619
- $[293] = t100;
3620
- $[294] = t102;
3621
- $[295] = t105;
3622
- $[296] = t106;
3623
- } else {
3624
- t106 = $[296];
3625
- }
3626
- let t107;
3627
- if ($[297] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3628
- t107 = /* @__PURE__ */ jsxDEV("svg", {
3629
- "aria-hidden": "true",
3630
- className: "size-3.5",
3631
- fill: "none",
3632
- stroke: "currentColor",
3633
- strokeWidth: 1.8,
3634
- viewBox: "0 0 24 24",
3635
- children: [/* @__PURE__ */ jsxDEV("circle", {
3636
- cx: "11",
3637
- cy: "11",
3638
- r: "7"
3639
- }, void 0, false), /* @__PURE__ */ jsxDEV("path", {
3640
- d: "m21 21-4.3-4.3",
3641
- strokeLinecap: "round"
3642
- }, void 0, false)]
3643
- }, void 0, true);
3644
- $[297] = t107;
3645
- } else {
3646
- t107 = $[297];
3647
- }
3648
- let t108;
3649
- if ($[298] !== t) {
3650
- t108 = t("Search…");
3651
- $[298] = t;
3652
- $[299] = t108;
3653
- } else {
3654
- t108 = $[299];
3655
- }
3656
- let t109;
3657
- if ($[300] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3658
- t109 = /* @__PURE__ */ jsxDEV("kbd", {
3659
- className: "ms-auto rounded border border-border bg-background px-1 font-sans text-[10px] text-muted-foreground",
3660
- children: "⌘K"
3661
- }, void 0, false);
3662
- $[300] = t109;
3663
- } else {
3664
- t109 = $[300];
3665
- }
3666
- let t110;
3667
- if ($[301] !== t108) {
3668
- t110 = /* @__PURE__ */ jsxDEV("button", {
3669
- className: "mx-auto hidden h-8 w-72 items-center gap-2 rounded-lg border border-border bg-muted/40 px-3 text-xs text-muted-foreground transition-colors hover:bg-muted md:flex",
3670
- "data-testid": "dash-app-search",
3671
- onClick: openCommandPalette,
3672
- type: "button",
3673
- children: [t107, t108, t109]
3674
- }, void 0, true);
3675
- $[301] = t108;
3676
- $[302] = t110;
3677
- } else {
3678
- t110 = $[302];
3679
- }
3680
- let t111;
3681
- if ($[303] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3682
- t111 = /* @__PURE__ */ jsxDEV("div", {
3683
- className: "ms-auto flex items-center gap-1.5 md:ms-0",
3684
- children: /* @__PURE__ */ jsxDEV(ThemeToggle, {}, void 0, false)
3685
- }, void 0, false);
3686
- $[303] = t111;
3687
- } else {
3688
- t111 = $[303];
3689
- }
3690
- let t112;
3691
- if ($[304] !== t106 || $[305] !== t110) {
3692
- t112 = /* @__PURE__ */ jsxDEV("header", {
3693
- className: "flex h-11 shrink-0 items-center gap-2 border-b border-border px-4",
3694
- "data-testid": "dash-app-header",
3695
- children: [t99, t106, t110, t111]
3696
- }, void 0, true);
3697
- $[304] = t106;
3698
- $[305] = t110;
3699
- $[306] = t112;
3700
- } else {
3701
- t112 = $[306];
3702
- }
3703
- let t113;
3704
- if ($[307] !== chrome?.rulesInstalled) {
3705
- t113 = chrome?.rulesInstalled === false && /* @__PURE__ */ jsxDEV(RulesBanner, {}, void 0, false);
3706
- $[307] = chrome?.rulesInstalled;
3707
- $[308] = t113;
3708
- } else {
3709
- t113 = $[308];
3710
- }
3711
- const t114 = `dash-tab-${current}`;
3712
- const t115 = fullHeight ? "flex min-w-0 flex-1 flex-col overflow-hidden" : "min-w-0 flex-1 overflow-auto p-6";
3713
- const t116 = tabLabel[current];
3714
- let t117;
3715
- if ($[309] !== t || $[310] !== t116) {
3716
- t117 = t("{title} failed", {
3717
- title: t116
3718
- });
3719
- $[309] = t;
3720
- $[310] = t116;
3721
- $[311] = t117;
3722
- } else {
3723
- t117 = $[311];
3724
- }
3725
- const t118 = tabLabel[current];
3726
- let t119;
3727
- if ($[312] !== t) {
3728
- t119 = t("Try again");
3729
- $[312] = t;
3730
- $[313] = t119;
3731
- } else {
3732
- t119 = $[313];
3733
- }
3734
- let t120;
3735
- if ($[314] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3736
- t120 = /* @__PURE__ */ jsxDEV(Suspense, {
3737
- fallback: /* @__PURE__ */ jsxDEV(RoutePending, {}, void 0, false),
3738
- children: /* @__PURE__ */ jsxDEV(Outlet, {}, void 0, false)
3739
- }, void 0, false);
3740
- $[314] = t120;
3741
- } else {
3742
- t120 = $[314];
3743
- }
3744
- let t121;
3745
- if ($[315] !== current || $[316] !== t117 || $[317] !== t118 || $[318] !== t119) {
3746
- t121 = /* @__PURE__ */ jsxDEV(ErrorBoundary, {
3747
- fallbackTitle: t117,
3748
- label: t118,
3749
- retryLabel: t119,
3750
- children: t120
3751
- }, current, false);
3752
- $[315] = current;
3753
- $[316] = t117;
3754
- $[317] = t118;
3755
- $[318] = t119;
3756
- $[319] = t121;
3757
- } else {
3758
- t121 = $[319];
3759
- }
3760
- let t122;
3761
- if ($[320] !== t115 || $[321] !== t121) {
3762
- t122 = /* @__PURE__ */ jsxDEV("div", {
3763
- className: t115,
3764
- children: t121
3765
- }, void 0, false);
3766
- $[320] = t115;
3767
- $[321] = t121;
3768
- $[322] = t122;
3769
- } else {
3770
- t122 = $[322];
3771
- }
3772
- let t123;
3773
- if ($[323] !== t114 || $[324] !== t122) {
3774
- t123 = /* @__PURE__ */ jsxDEV("div", {
3775
- "aria-labelledby": t114,
3776
- className: "flex min-w-0 flex-1 flex-col overflow-hidden",
3777
- "data-testid": "dash-panel",
3778
- id: "dash-panel",
3779
- role: "tabpanel",
3780
- children: t122
3781
- }, void 0, false);
3782
- $[323] = t114;
3783
- $[324] = t122;
3784
- $[325] = t123;
3785
- } else {
3786
- t123 = $[325];
3787
- }
3788
- let t124;
3789
- if ($[326] !== t112 || $[327] !== t113 || $[328] !== t123) {
3790
- t124 = /* @__PURE__ */ jsxDEV(SidebarInset, {
3791
- className: "overflow-hidden md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",
3792
- children: [t112, t113, t123]
3793
- }, void 0, true);
3794
- $[326] = t112;
3795
- $[327] = t113;
3796
- $[328] = t123;
3797
- $[329] = t124;
3798
- } else {
3799
- t124 = $[329];
3800
- }
3801
- return /* @__PURE__ */ jsxDEV(SidebarProvider, {
3802
- className: "min-h-0 flex-1",
3803
- "data-testid": "lunora-studio",
3804
- children: [t98, /* @__PURE__ */ jsxDEV(StudioSidebar, {
3805
- chrome,
3806
- connected,
3807
- current,
3808
- groupLabel,
3809
- groups: visibleGroups,
3810
- selectTab,
3811
- tabDescription,
3812
- tabLabel
3813
- }, void 0, false), t124]
3814
- }, void 0, true);
3815
- };
3816
- const SchemaRoutePanel = (t0) => {
3817
- const $ = c(5);
3818
- const {
3819
- initialShardKey,
3820
- schemaEditable
3821
- } = t0;
3822
- let t1;
3823
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
3824
- t1 = {
3825
- strict: false
3826
- };
3827
- $[0] = t1;
3828
- } else {
3829
- t1 = $[0];
3830
- }
3831
- const search = useSearch(t1);
3832
- const {
3833
- table
3834
- } = search;
3835
- const initialTable = typeof table === "string" ? table : void 0;
3836
- let t2;
3837
- if ($[1] !== initialShardKey || $[2] !== initialTable || $[3] !== schemaEditable) {
3838
- t2 = /* @__PURE__ */ jsxDEV(SchemaViewer, {
3839
- initialShardKey,
3840
- initialTable,
3841
- schemaEditable
3842
- }, void 0, false);
3843
- $[1] = initialShardKey;
3844
- $[2] = initialTable;
3845
- $[3] = schemaEditable;
3846
- $[4] = t2;
3847
- } else {
3848
- t2 = $[4];
3849
- }
3850
- return t2;
3851
- };
3852
- const NotFoundRedirect = () => {
3853
- const $ = c(3);
3854
- const navigate = useNavigate();
3855
- let t0;
3856
- let t1;
3857
- if ($[0] !== navigate) {
3858
- t0 = () => {
3859
- fireAndForget(navigate({
3860
- replace: true,
3861
- to: "/home"
3862
- }));
3863
- };
3864
- t1 = [navigate];
3865
- $[0] = navigate;
3866
- $[1] = t0;
3867
- $[2] = t1;
3868
- } else {
3869
- t0 = $[1];
3870
- t1 = $[2];
3871
- }
3872
- useEffect(t0, t1);
3873
- return null;
3874
- };
3875
- const buildRouter = ({
3876
- basePath,
3877
- dataEditable = false,
3878
- functions,
3879
- initialShardKey,
3880
- openApiSpec,
3881
- openRpcSpec,
3882
- runAsIdentity = false,
3883
- schemaEditable = false,
3884
- scheduledCancel,
3885
- scheduledCron,
3886
- scheduledLoad
3887
- }) => {
3888
- const rootRoute = createRootRoute({
3889
- component: StudioLayout
3890
- });
3891
- const panels = {
3892
- agents: /* @__PURE__ */ jsxDEV(AgentsPanel, {
3893
- initialShardKey
3894
- }, void 0, false),
3895
- analytics: /* @__PURE__ */ jsxDEV(AnalyticsPanel, {}, void 0, false),
3896
- api: /* @__PURE__ */ jsxDEV(ApiTab, {
3897
- functions,
3898
- initialShardKey,
3899
- openApiSpec,
3900
- openRpcSpec
3901
- }, void 0, false),
3902
- audit: /* @__PURE__ */ jsxDEV(AuditPanel, {
3903
- initialShardKey
3904
- }, void 0, false),
3905
- authAudit: /* @__PURE__ */ jsxDEV(AuthAuditPanel, {}, void 0, false),
3906
- authConfig: /* @__PURE__ */ jsxDEV(AuthConfigPanel, {}, void 0, false),
3907
- authSessions: /* @__PURE__ */ jsxDEV(AuthSessionsPanel, {}, void 0, false),
3908
- containers: /* @__PURE__ */ jsxDEV(ContainersPanel, {}, void 0, false),
3909
- dashboards: /* @__PURE__ */ jsxDEV(DashboardsPanel, {
3910
- initialShardKey
3911
- }, void 0, false),
3912
- data: /* @__PURE__ */ jsxDEV(TableEditor, {
3913
- editable: dataEditable,
3914
- initialShardKey
3915
- }, void 0, false),
3916
- deploymentHealth: /* @__PURE__ */ jsxDEV(DeploymentHealthPanel, {}, void 0, false),
3917
- drains: /* @__PURE__ */ jsxDEV(LogDrainsPanel, {}, void 0, false),
3918
- export: /* @__PURE__ */ jsxDEV(ExportImportPanel, {
3919
- initialShardKey
3920
- }, void 0, false),
3921
- fanout: /* @__PURE__ */ jsxDEV(FanoutPanel, {
3922
- initialShardKey
3923
- }, void 0, false),
3924
- files: /* @__PURE__ */ jsxDEV(FileBrowser, {}, void 0, false),
3925
- kv: /* @__PURE__ */ jsxDEV(KvBrowser, {}, void 0, false),
3926
- flags: /* @__PURE__ */ jsxDEV(FlagsPanel, {
3927
- initialShardKey
3928
- }, void 0, false),
3929
- functions: /* @__PURE__ */ jsxDEV("div", {
3930
- className: "flex flex-col gap-8",
3931
- children: [/* @__PURE__ */ jsxDEV(FunctionStatsPanel, {
3932
- functions,
3933
- initialShardKey
3934
- }, void 0, false), /* @__PURE__ */ jsxDEV(FunctionRunner, {
3935
- functions,
3936
- runAsIdentity
3937
- }, void 0, false)]
3938
- }, void 0, true),
3939
- health: /* @__PURE__ */ jsxDEV(HealthPanel, {
3940
- initialShardKey
3941
- }, void 0, false),
3942
- home: /* @__PURE__ */ jsxDEV(HomePanel, {
3943
- initialShardKey
3944
- }, void 0, false),
3945
- insights: /* @__PURE__ */ jsxDEV(InsightsPanel, {
3946
- initialShardKey
3947
- }, void 0, false),
3948
- issues: /* @__PURE__ */ jsxDEV(IssuesPanel, {
3949
- initialShardKey
3950
- }, void 0, false),
3951
- logs: /* @__PURE__ */ jsxDEV(LogsPanel, {
3952
- initialShardKey
3953
- }, void 0, false),
3954
- traces: /* @__PURE__ */ jsxDEV(TracesPanel, {
3955
- initialShardKey
3956
- }, void 0, false),
3957
- metrics: /* @__PURE__ */ jsxDEV(MetricsPanel, {
3958
- initialShardKey
3959
- }, void 0, false),
3960
- migrations: /* @__PURE__ */ jsxDEV(MigrationsPanel, {
3961
- initialShardKey
3962
- }, void 0, false),
3963
- notifications: /* @__PURE__ */ jsxDEV(NotificationsPanel, {}, void 0, false),
3964
- organizations: /* @__PURE__ */ jsxDEV(OrganizationsPanel, {}, void 0, false),
3965
- permissions: /* @__PURE__ */ jsxDEV(PermissionsPanel, {
3966
- functions,
3967
- runAsIdentity,
3968
- schemaEditable
3969
- }, void 0, false),
3970
- pitr: /* @__PURE__ */ jsxDEV(PitrPanel, {
3971
- initialShardKey
3972
- }, void 0, false),
3973
- mail: /* @__PURE__ */ jsxDEV(MailPanel, {}, void 0, false),
3974
- payments: /* @__PURE__ */ jsxDEV(PaymentsPanel, {}, void 0, false),
3975
- queues: /* @__PURE__ */ jsxDEV(QueuesPanel, {}, void 0, false),
3976
- realtime: /* @__PURE__ */ jsxDEV(SubscriptionsPanel, {
3977
- initialShardKey
3978
- }, void 0, false),
3979
- rls: /* @__PURE__ */ jsxDEV(RlsPanel, {}, void 0, false),
3980
- schedule: /* @__PURE__ */ jsxDEV(SchedulePanel, {
3981
- loadCronJobs: scheduledCron,
3982
- scheduledCancel,
3983
- scheduledLoad
3984
- }, void 0, false),
3985
- schema: /* @__PURE__ */ jsxDEV(SchemaRoutePanel, {
3986
- initialShardKey,
3987
- schemaEditable
3988
- }, void 0, false),
3989
- security: /* @__PURE__ */ jsxDEV(SecurityAdvisorPanel, {}, void 0, false),
3990
- settings: /* @__PURE__ */ jsxDEV(SettingsPanel, {
3991
- initialShardKey
3992
- }, void 0, false),
3993
- sql: /* @__PURE__ */ jsxDEV(SqlEditorPanel, {
3994
- initialShardKey
3995
- }, void 0, false),
3996
- storageRules: /* @__PURE__ */ jsxDEV(StorageRulesPanel, {}, void 0, false),
3997
- users: /* @__PURE__ */ jsxDEV(UsersPanel, {}, void 0, false),
3998
- vectors: /* @__PURE__ */ jsxDEV(VectorBrowser, {}, void 0, false),
3999
- workflows: /* @__PURE__ */ jsxDEV(WorkflowsPanel, {}, void 0, false)
4000
- };
4001
- const indexRoute = createRoute({
4002
- component: () => panels.home,
4003
- getParentRoute: () => rootRoute,
4004
- path: "/"
4005
- });
4006
- const tabRoutes = TABS.map((tab) => {
4007
- if (tab === "data") {
4008
- return createRoute({
4009
- component: () => panels[tab],
4010
- getParentRoute: () => rootRoute,
4011
- path: `/${tab}`,
4012
- validateSearch: validateDataViewSearch
4013
- });
4014
- }
4015
- return createRoute({
4016
- component: () => panels[tab],
4017
- getParentRoute: () => rootRoute,
4018
- path: `/${tab}`
4019
- });
4020
- });
4021
- const routeTree = rootRoute.addChildren([indexRoute, ...tabRoutes]);
4022
- const history = "window" in globalThis ? createBrowserHistory() : createMemoryHistory({
4023
- initialEntries: ["/home"]
4024
- });
4025
- return createRouter({
4026
- // When mounted under a prefix (e.g. the `/__lunora` dev route), the router
4027
- // works in that subtree: `/__lunora` matches the index route and every
4028
- // `navigate({ to: "/logs" })` resolves to `/__lunora/logs`, so navigation
4029
- // never escapes the mount. Omitted for a root mount.
4030
- ...basePath === void 0 || basePath === "/" ? {} : {
4031
- basepath: basePath
4032
- },
4033
- defaultNotFoundComponent: NotFoundRedirect,
4034
- defaultPendingComponent: RoutePending,
4035
- defaultPendingMinMs: 0,
4036
- defaultPendingMs: 0,
4037
- history,
4038
- routeTree
4039
- });
4040
- };
4041
- const StudioShell = (t0) => {
4042
- const $ = c(17);
4043
- const {
4044
- basePath,
4045
- chrome,
4046
- dataEditable,
4047
- functions,
4048
- initialShardKey,
4049
- openApiSpec,
4050
- openRpcSpec,
4051
- runAsIdentity,
4052
- schemaEditable,
4053
- scheduledCancel,
4054
- scheduledCron,
4055
- scheduledLoad
4056
- } = t0;
4057
- let t1;
4058
- if ($[0] !== basePath || $[1] !== dataEditable || $[2] !== functions || $[3] !== initialShardKey || $[4] !== openApiSpec || $[5] !== openRpcSpec || $[6] !== runAsIdentity || $[7] !== scheduledCancel || $[8] !== scheduledCron || $[9] !== scheduledLoad || $[10] !== schemaEditable) {
4059
- t1 = buildRouter({
4060
- basePath,
4061
- dataEditable,
4062
- functions,
4063
- initialShardKey,
4064
- openApiSpec,
4065
- openRpcSpec,
4066
- runAsIdentity,
4067
- schemaEditable,
4068
- scheduledCancel,
4069
- scheduledCron,
4070
- scheduledLoad
4071
- });
4072
- $[0] = basePath;
4073
- $[1] = dataEditable;
4074
- $[2] = functions;
4075
- $[3] = initialShardKey;
4076
- $[4] = openApiSpec;
4077
- $[5] = openRpcSpec;
4078
- $[6] = runAsIdentity;
4079
- $[7] = scheduledCancel;
4080
- $[8] = scheduledCron;
4081
- $[9] = scheduledLoad;
4082
- $[10] = schemaEditable;
4083
- $[11] = t1;
4084
- } else {
4085
- t1 = $[11];
4086
- }
4087
- const router = t1;
4088
- const t2 = chrome ?? null;
4089
- let t3;
4090
- if ($[12] !== router) {
4091
- t3 = /* @__PURE__ */ jsxDEV(RouterProvider, {
4092
- router
4093
- }, void 0, false);
4094
- $[12] = router;
4095
- $[13] = t3;
4096
- } else {
4097
- t3 = $[13];
4098
- }
4099
- let t4;
4100
- if ($[14] !== t2 || $[15] !== t3) {
4101
- t4 = /* @__PURE__ */ jsxDEV(StudioChromeContext, {
4102
- value: t2,
4103
- children: t3
4104
- }, void 0, false);
4105
- $[14] = t2;
4106
- $[15] = t3;
4107
- $[16] = t4;
4108
- } else {
4109
- t4 = $[16];
4110
- }
4111
- return t4;
4112
- };
4113
- const Studio = (t0) => {
4114
- const $ = c(17);
4115
- const {
4116
- basePath,
4117
- chrome,
4118
- dataEditable,
4119
- functions,
4120
- i18n,
4121
- initialShardKey,
4122
- locale,
4123
- openApiSpec,
4124
- openRpcSpec,
4125
- runAsIdentity,
4126
- schemaEditable,
4127
- scheduledCancel,
4128
- scheduledCron,
4129
- scheduledLoad
4130
- } = t0;
4131
- let t1;
4132
- if ($[0] !== basePath || $[1] !== chrome || $[2] !== dataEditable || $[3] !== functions || $[4] !== initialShardKey || $[5] !== openApiSpec || $[6] !== openRpcSpec || $[7] !== runAsIdentity || $[8] !== scheduledCancel || $[9] !== scheduledCron || $[10] !== scheduledLoad || $[11] !== schemaEditable) {
4133
- t1 = /* @__PURE__ */ jsxDEV(EnsureThemeProvider, {
4134
- children: /* @__PURE__ */ jsxDEV(StudioShell, {
4135
- basePath,
4136
- chrome,
4137
- dataEditable,
4138
- functions,
4139
- initialShardKey,
4140
- openApiSpec,
4141
- openRpcSpec,
4142
- runAsIdentity,
4143
- scheduledCancel,
4144
- scheduledCron,
4145
- scheduledLoad,
4146
- schemaEditable
4147
- }, void 0, false)
4148
- }, void 0, false);
4149
- $[0] = basePath;
4150
- $[1] = chrome;
4151
- $[2] = dataEditable;
4152
- $[3] = functions;
4153
- $[4] = initialShardKey;
4154
- $[5] = openApiSpec;
4155
- $[6] = openRpcSpec;
4156
- $[7] = runAsIdentity;
4157
- $[8] = scheduledCancel;
4158
- $[9] = scheduledCron;
4159
- $[10] = scheduledLoad;
4160
- $[11] = schemaEditable;
4161
- $[12] = t1;
4162
- } else {
4163
- t1 = $[12];
4164
- }
4165
- const shell = t1;
4166
- if (i18n === void 0 && locale === void 0) {
4167
- return shell;
4168
- }
4169
- let t2;
4170
- if ($[13] !== i18n || $[14] !== locale || $[15] !== shell) {
4171
- t2 = /* @__PURE__ */ jsxDEV(StudioI18nProvider, {
4172
- i18n,
4173
- locale,
4174
- children: shell
4175
- }, void 0, false);
4176
- $[13] = i18n;
4177
- $[14] = locale;
4178
- $[15] = shell;
4179
- $[16] = t2;
4180
- } else {
4181
- t2 = $[16];
4182
- }
4183
- return t2;
4184
- };
4185
- function _temp(state) {
4186
- return state.location.pathname;
4187
- }
4188
- function _temp2(group_0) {
4189
- return group_0.tabs.length > 0;
4190
- }
4191
-
4192
- export { BrandMark as B, Studio as S, ThemeProvider as T, TooltipProvider as a, Sheet as b, SheetContent as c, SheetHeader as d, SheetTitle as e, useTheme as u };