@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,781 +1 @@
1
- import { c } from 'react/compiler-runtime';
2
- import { useState, useCallback, useEffect } from 'react';
3
- import { S as SqlResultChart } from '../packem_shared/result-chart-Bf9mbCIo.js';
4
- import { A as Alert } from '../packem_shared/alert-CdAET2K_.js';
5
- import { B as Button } from '../packem_shared/button-BhsN2uZH.js';
6
- import { b as CardTitle, c as CardHeader, a as CardContent, C as Card } from '../packem_shared/card-F2vH_aj2.js';
7
- import { E as EmptyState } from '../packem_shared/empty-state-DY_oe0k6.js';
8
- import { useT } from '../packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js';
9
- import { u as usePersistedList, n as newId } from '../packem_shared/browser-storage-L4gOP5gJ.js';
10
- import { useLunora } from '@lunora/react';
11
- import { ADMIN_FUNCTIONS } from '../packem_shared/ADMIN_FUNCTIONS-P2UzJscH.js';
12
- import { c as callOptions, e as errorMessage, f as fireAndForget, a as adminRef } from '../packem_shared/internal-DzHCc2Rq.js';
13
- import { jsxDEV } from 'react/jsx-dev-runtime';
14
-
15
- const RUN_SQL = adminRef(ADMIN_FUNCTIONS.runSql);
16
- const useRunSql = (sql, shardKey) => {
17
- const client = useLunora();
18
- const [result, setResult] = useState(void 0);
19
- const [error, setError] = useState(void 0);
20
- const [loading, setLoading] = useState(true);
21
- const run = useCallback(async (token) => {
22
- setLoading(true);
23
- try {
24
- const next = await client.query(RUN_SQL, {
25
- sql
26
- }, callOptions(shardKey));
27
- if (!token.cancelled) {
28
- setResult(next);
29
- setError(void 0);
30
- }
31
- } catch (error_) {
32
- if (!token.cancelled) {
33
- setResult(void 0);
34
- setError(errorMessage(error_));
35
- }
36
- } finally {
37
- if (!token.cancelled) {
38
- setLoading(false);
39
- }
40
- }
41
- }, [client, sql, shardKey]);
42
- useEffect(() => {
43
- const token_0 = {
44
- cancelled: false
45
- };
46
- fireAndForget(run(token_0));
47
- return () => {
48
- token_0.cancelled = true;
49
- };
50
- }, [run]);
51
- return {
52
- error,
53
- loading,
54
- result
55
- };
56
- };
57
-
58
- const STORAGE_KEY = "lunora-studio-dashboards";
59
- const EMPTY_DRAFT = {
60
- shardKey: "",
61
- sql: "",
62
- title: ""
63
- };
64
- const WidgetCard = (t0) => {
65
- const $ = c(54);
66
- const {
67
- onEdit,
68
- onRemove,
69
- widget
70
- } = t0;
71
- const t = useT();
72
- const {
73
- error,
74
- loading,
75
- result
76
- } = useRunSql(widget.sql, widget.shardKey ?? "");
77
- let t1;
78
- if ($[0] !== onEdit || $[1] !== widget.id) {
79
- t1 = () => {
80
- onEdit(widget.id);
81
- };
82
- $[0] = onEdit;
83
- $[1] = widget.id;
84
- $[2] = t1;
85
- } else {
86
- t1 = $[2];
87
- }
88
- const onEditClick = t1;
89
- let t2;
90
- if ($[3] !== onRemove || $[4] !== widget.id) {
91
- t2 = () => {
92
- onRemove(widget.id);
93
- };
94
- $[3] = onRemove;
95
- $[4] = widget.id;
96
- $[5] = t2;
97
- } else {
98
- t2 = $[5];
99
- }
100
- const onRemoveClick = t2;
101
- const t3 = `dashboards-widget-${widget.id}`;
102
- let t4;
103
- if ($[6] !== widget.title) {
104
- t4 = /* @__PURE__ */ jsxDEV(CardTitle, {
105
- className: "min-w-0 truncate",
106
- title: widget.title,
107
- children: widget.title
108
- }, void 0, false);
109
- $[6] = widget.title;
110
- $[7] = t4;
111
- } else {
112
- t4 = $[7];
113
- }
114
- let t5;
115
- if ($[8] !== t) {
116
- t5 = t("Edit widget");
117
- $[8] = t;
118
- $[9] = t5;
119
- } else {
120
- t5 = $[9];
121
- }
122
- const t6 = `dashboards-widget-edit-${widget.id}`;
123
- let t7;
124
- if ($[10] !== t) {
125
- t7 = t("Edit widget");
126
- $[10] = t;
127
- $[11] = t7;
128
- } else {
129
- t7 = $[11];
130
- }
131
- let t8;
132
- if ($[12] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
133
- t8 = /* @__PURE__ */ jsxDEV("svg", {
134
- "aria-hidden": "true",
135
- fill: "none",
136
- stroke: "currentColor",
137
- strokeLinecap: "round",
138
- strokeLinejoin: "round",
139
- strokeWidth: 1.6,
140
- viewBox: "0 0 24 24",
141
- children: /* @__PURE__ */ jsxDEV("path", {
142
- d: "M4 20h4L18 10l-4-4L4 16v4ZM14 6l4 4"
143
- }, void 0, false)
144
- }, void 0, false);
145
- $[12] = t8;
146
- } else {
147
- t8 = $[12];
148
- }
149
- let t9;
150
- if ($[13] !== onEditClick || $[14] !== t5 || $[15] !== t6 || $[16] !== t7) {
151
- t9 = /* @__PURE__ */ jsxDEV(Button, {
152
- "aria-label": t5,
153
- "data-testid": t6,
154
- onClick: onEditClick,
155
- size: "icon-xs",
156
- title: t7,
157
- type: "button",
158
- variant: "ghost",
159
- children: t8
160
- }, void 0, false);
161
- $[13] = onEditClick;
162
- $[14] = t5;
163
- $[15] = t6;
164
- $[16] = t7;
165
- $[17] = t9;
166
- } else {
167
- t9 = $[17];
168
- }
169
- let t10;
170
- if ($[18] !== t) {
171
- t10 = t("Remove widget");
172
- $[18] = t;
173
- $[19] = t10;
174
- } else {
175
- t10 = $[19];
176
- }
177
- const t11 = `dashboards-widget-remove-${widget.id}`;
178
- let t12;
179
- if ($[20] !== t) {
180
- t12 = t("Remove widget");
181
- $[20] = t;
182
- $[21] = t12;
183
- } else {
184
- t12 = $[21];
185
- }
186
- let t13;
187
- if ($[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
188
- t13 = /* @__PURE__ */ jsxDEV("svg", {
189
- "aria-hidden": "true",
190
- fill: "none",
191
- stroke: "currentColor",
192
- strokeLinecap: "round",
193
- strokeLinejoin: "round",
194
- strokeWidth: 1.6,
195
- viewBox: "0 0 24 24",
196
- children: /* @__PURE__ */ jsxDEV("path", {
197
- d: "M5 7h14M9 7V5h6v2m-1 0v12H10V7M7 7v13h10V7"
198
- }, void 0, false)
199
- }, void 0, false);
200
- $[22] = t13;
201
- } else {
202
- t13 = $[22];
203
- }
204
- let t14;
205
- if ($[23] !== onRemoveClick || $[24] !== t10 || $[25] !== t11 || $[26] !== t12) {
206
- t14 = /* @__PURE__ */ jsxDEV(Button, {
207
- "aria-label": t10,
208
- "data-testid": t11,
209
- onClick: onRemoveClick,
210
- size: "icon-xs",
211
- title: t12,
212
- type: "button",
213
- variant: "ghost",
214
- children: t13
215
- }, void 0, false);
216
- $[23] = onRemoveClick;
217
- $[24] = t10;
218
- $[25] = t11;
219
- $[26] = t12;
220
- $[27] = t14;
221
- } else {
222
- t14 = $[27];
223
- }
224
- let t15;
225
- if ($[28] !== t14 || $[29] !== t9) {
226
- t15 = /* @__PURE__ */ jsxDEV("div", {
227
- className: "flex shrink-0 items-center gap-1",
228
- children: [t9, t14]
229
- }, void 0, true);
230
- $[28] = t14;
231
- $[29] = t9;
232
- $[30] = t15;
233
- } else {
234
- t15 = $[30];
235
- }
236
- let t16;
237
- if ($[31] !== t15 || $[32] !== t4) {
238
- t16 = /* @__PURE__ */ jsxDEV(CardHeader, {
239
- className: "flex flex-row items-start justify-between gap-2 border-b pb-3",
240
- children: [t4, t15]
241
- }, void 0, true);
242
- $[31] = t15;
243
- $[32] = t4;
244
- $[33] = t16;
245
- } else {
246
- t16 = $[33];
247
- }
248
- let t17;
249
- if ($[34] !== error || $[35] !== widget.id) {
250
- t17 = error !== void 0 && /* @__PURE__ */ jsxDEV(Alert, {
251
- className: "font-mono text-xs",
252
- testId: `dashboards-widget-error-${widget.id}`,
253
- variant: "destructive",
254
- children: error
255
- }, void 0, false);
256
- $[34] = error;
257
- $[35] = widget.id;
258
- $[36] = t17;
259
- } else {
260
- t17 = $[36];
261
- }
262
- let t18;
263
- if ($[37] !== error || $[38] !== loading || $[39] !== result || $[40] !== t || $[41] !== widget.id) {
264
- t18 = error === void 0 && loading && result === void 0 && /* @__PURE__ */ jsxDEV("p", {
265
- className: "p-4 text-sm text-muted-foreground",
266
- "data-testid": `dashboards-widget-loading-${widget.id}`,
267
- children: t("Running…")
268
- }, void 0, false);
269
- $[37] = error;
270
- $[38] = loading;
271
- $[39] = result;
272
- $[40] = t;
273
- $[41] = widget.id;
274
- $[42] = t18;
275
- } else {
276
- t18 = $[42];
277
- }
278
- let t19;
279
- if ($[43] !== error || $[44] !== result) {
280
- t19 = error === void 0 && result !== void 0 && /* @__PURE__ */ jsxDEV(SqlResultChart, {
281
- result
282
- }, void 0, false);
283
- $[43] = error;
284
- $[44] = result;
285
- $[45] = t19;
286
- } else {
287
- t19 = $[45];
288
- }
289
- let t20;
290
- if ($[46] !== t17 || $[47] !== t18 || $[48] !== t19) {
291
- t20 = /* @__PURE__ */ jsxDEV(CardContent, {
292
- className: "min-h-32 py-2",
293
- children: [t17, t18, t19]
294
- }, void 0, true);
295
- $[46] = t17;
296
- $[47] = t18;
297
- $[48] = t19;
298
- $[49] = t20;
299
- } else {
300
- t20 = $[49];
301
- }
302
- let t21;
303
- if ($[50] !== t16 || $[51] !== t20 || $[52] !== t3) {
304
- t21 = /* @__PURE__ */ jsxDEV(Card, {
305
- "data-testid": t3,
306
- children: [t16, t20]
307
- }, void 0, true);
308
- $[50] = t16;
309
- $[51] = t20;
310
- $[52] = t3;
311
- $[53] = t21;
312
- } else {
313
- t21 = $[53];
314
- }
315
- return t21;
316
- };
317
- const WidgetForm = (t0) => {
318
- const $ = c(58);
319
- const {
320
- draft,
321
- editing,
322
- onCancel,
323
- onChange,
324
- onSubmit
325
- } = t0;
326
- const t = useT();
327
- let t1;
328
- if ($[0] !== draft || $[1] !== onChange) {
329
- t1 = (event) => {
330
- onChange({
331
- ...draft,
332
- title: event.target.value
333
- });
334
- };
335
- $[0] = draft;
336
- $[1] = onChange;
337
- $[2] = t1;
338
- } else {
339
- t1 = $[2];
340
- }
341
- const onTitleChange = t1;
342
- let t2;
343
- if ($[3] !== draft || $[4] !== onChange) {
344
- t2 = (event_0) => {
345
- onChange({
346
- ...draft,
347
- sql: event_0.target.value
348
- });
349
- };
350
- $[3] = draft;
351
- $[4] = onChange;
352
- $[5] = t2;
353
- } else {
354
- t2 = $[5];
355
- }
356
- const onSqlChange = t2;
357
- let t3;
358
- if ($[6] !== draft || $[7] !== onChange) {
359
- t3 = (event_1) => {
360
- onChange({
361
- ...draft,
362
- shardKey: event_1.target.value
363
- });
364
- };
365
- $[6] = draft;
366
- $[7] = onChange;
367
- $[8] = t3;
368
- } else {
369
- t3 = $[8];
370
- }
371
- const onShardChange = t3;
372
- let t4;
373
- if ($[9] !== onSubmit) {
374
- t4 = () => {
375
- onSubmit();
376
- };
377
- $[9] = onSubmit;
378
- $[10] = t4;
379
- } else {
380
- t4 = $[10];
381
- }
382
- const onSubmitClick = t4;
383
- let t5;
384
- if ($[11] !== draft.sql || $[12] !== draft.title) {
385
- t5 = draft.title.trim() !== "" && draft.sql.trim() !== "";
386
- $[11] = draft.sql;
387
- $[12] = draft.title;
388
- $[13] = t5;
389
- } else {
390
- t5 = $[13];
391
- }
392
- const canSave = t5;
393
- let t6;
394
- if ($[14] !== t) {
395
- t6 = t("Widget title");
396
- $[14] = t;
397
- $[15] = t6;
398
- } else {
399
- t6 = $[15];
400
- }
401
- let t7;
402
- if ($[16] !== t) {
403
- t7 = t("Widget title");
404
- $[16] = t;
405
- $[17] = t7;
406
- } else {
407
- t7 = $[17];
408
- }
409
- let t8;
410
- if ($[18] !== draft.title || $[19] !== onTitleChange || $[20] !== t6 || $[21] !== t7) {
411
- t8 = /* @__PURE__ */ jsxDEV("input", {
412
- "aria-label": t6,
413
- className: "h-8 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring",
414
- "data-testid": "dashboards-form-title",
415
- onChange: onTitleChange,
416
- placeholder: t7,
417
- type: "text",
418
- value: draft.title
419
- }, void 0, false);
420
- $[18] = draft.title;
421
- $[19] = onTitleChange;
422
- $[20] = t6;
423
- $[21] = t7;
424
- $[22] = t8;
425
- } else {
426
- t8 = $[22];
427
- }
428
- let t9;
429
- if ($[23] !== t) {
430
- t9 = t("SQL query");
431
- $[23] = t;
432
- $[24] = t9;
433
- } else {
434
- t9 = $[24];
435
- }
436
- let t10;
437
- if ($[25] !== draft.sql || $[26] !== onSqlChange || $[27] !== t9) {
438
- t10 = /* @__PURE__ */ jsxDEV("textarea", {
439
- "aria-label": t9,
440
- className: "min-h-24 resize-y rounded-md border border-border bg-background p-2 font-mono text-xs leading-5 outline-none focus-visible:border-ring",
441
- "data-testid": "dashboards-form-sql",
442
- onChange: onSqlChange,
443
- placeholder: "SELECT author, COUNT(*) AS messages FROM …",
444
- spellCheck: false,
445
- value: draft.sql
446
- }, void 0, false);
447
- $[25] = draft.sql;
448
- $[26] = onSqlChange;
449
- $[27] = t9;
450
- $[28] = t10;
451
- } else {
452
- t10 = $[28];
453
- }
454
- let t11;
455
- if ($[29] !== t) {
456
- t11 = t("Shard key (optional)");
457
- $[29] = t;
458
- $[30] = t11;
459
- } else {
460
- t11 = $[30];
461
- }
462
- let t12;
463
- if ($[31] !== t) {
464
- t12 = t("Shard key (optional)");
465
- $[31] = t;
466
- $[32] = t12;
467
- } else {
468
- t12 = $[32];
469
- }
470
- let t13;
471
- if ($[33] !== draft.shardKey || $[34] !== onShardChange || $[35] !== t11 || $[36] !== t12) {
472
- t13 = /* @__PURE__ */ jsxDEV("input", {
473
- "aria-label": t11,
474
- className: "h-8 rounded-md border border-border bg-background px-2 font-mono text-xs outline-none focus-visible:border-ring",
475
- "data-testid": "dashboards-form-shard",
476
- onChange: onShardChange,
477
- placeholder: t12,
478
- type: "text",
479
- value: draft.shardKey
480
- }, void 0, false);
481
- $[33] = draft.shardKey;
482
- $[34] = onShardChange;
483
- $[35] = t11;
484
- $[36] = t12;
485
- $[37] = t13;
486
- } else {
487
- t13 = $[37];
488
- }
489
- let t14;
490
- if ($[38] !== t) {
491
- t14 = t("Cancel");
492
- $[38] = t;
493
- $[39] = t14;
494
- } else {
495
- t14 = $[39];
496
- }
497
- let t15;
498
- if ($[40] !== onCancel || $[41] !== t14) {
499
- t15 = /* @__PURE__ */ jsxDEV(Button, {
500
- "data-testid": "dashboards-form-cancel",
501
- onClick: onCancel,
502
- size: "sm",
503
- type: "button",
504
- variant: "outline",
505
- children: t14
506
- }, void 0, false);
507
- $[40] = onCancel;
508
- $[41] = t14;
509
- $[42] = t15;
510
- } else {
511
- t15 = $[42];
512
- }
513
- const t16 = !canSave;
514
- let t17;
515
- if ($[43] !== editing || $[44] !== t) {
516
- t17 = editing ? t("Save widget") : t("Add widget");
517
- $[43] = editing;
518
- $[44] = t;
519
- $[45] = t17;
520
- } else {
521
- t17 = $[45];
522
- }
523
- let t18;
524
- if ($[46] !== onSubmitClick || $[47] !== t16 || $[48] !== t17) {
525
- t18 = /* @__PURE__ */ jsxDEV(Button, {
526
- "data-testid": "dashboards-form-save",
527
- disabled: t16,
528
- onClick: onSubmitClick,
529
- size: "sm",
530
- type: "button",
531
- children: t17
532
- }, void 0, false);
533
- $[46] = onSubmitClick;
534
- $[47] = t16;
535
- $[48] = t17;
536
- $[49] = t18;
537
- } else {
538
- t18 = $[49];
539
- }
540
- let t19;
541
- if ($[50] !== t15 || $[51] !== t18) {
542
- t19 = /* @__PURE__ */ jsxDEV("div", {
543
- className: "flex items-center justify-end gap-2",
544
- children: [t15, t18]
545
- }, void 0, true);
546
- $[50] = t15;
547
- $[51] = t18;
548
- $[52] = t19;
549
- } else {
550
- t19 = $[52];
551
- }
552
- let t20;
553
- if ($[53] !== t10 || $[54] !== t13 || $[55] !== t19 || $[56] !== t8) {
554
- t20 = /* @__PURE__ */ jsxDEV(Card, {
555
- "data-testid": "dashboards-form",
556
- children: /* @__PURE__ */ jsxDEV(CardContent, {
557
- className: "flex flex-col gap-3 py-4",
558
- children: [t8, t10, t13, t19]
559
- }, void 0, true)
560
- }, void 0, false);
561
- $[53] = t10;
562
- $[54] = t13;
563
- $[55] = t19;
564
- $[56] = t8;
565
- $[57] = t20;
566
- } else {
567
- t20 = $[57];
568
- }
569
- return t20;
570
- };
571
- const DashboardsPanel = (t0) => {
572
- const $ = c(39);
573
- const {
574
- initialShardKey
575
- } = t0;
576
- const t = useT();
577
- const [widgets, setWidgets] = usePersistedList(STORAGE_KEY);
578
- const [draft, setDraft] = useState(EMPTY_DRAFT);
579
- const [editingId, setEditingId] = useState(null);
580
- const [formOpen, setFormOpen] = useState(false);
581
- let t1;
582
- if ($[0] !== initialShardKey) {
583
- t1 = () => {
584
- setEditingId(null);
585
- setDraft({
586
- ...EMPTY_DRAFT,
587
- shardKey: initialShardKey ?? ""
588
- });
589
- setFormOpen(true);
590
- };
591
- $[0] = initialShardKey;
592
- $[1] = t1;
593
- } else {
594
- t1 = $[1];
595
- }
596
- const openAdd = t1;
597
- let t2;
598
- if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
599
- t2 = () => {
600
- setFormOpen(false);
601
- setEditingId(null);
602
- setDraft(EMPTY_DRAFT);
603
- };
604
- $[2] = t2;
605
- } else {
606
- t2 = $[2];
607
- }
608
- const closeForm = t2;
609
- let t3;
610
- if ($[3] !== widgets) {
611
- t3 = (id) => {
612
- const found = widgets.find((widget) => widget.id === id);
613
- if (found !== void 0) {
614
- setEditingId(id);
615
- setDraft({
616
- shardKey: found.shardKey ?? "",
617
- sql: found.sql,
618
- title: found.title
619
- });
620
- setFormOpen(true);
621
- }
622
- };
623
- $[3] = widgets;
624
- $[4] = t3;
625
- } else {
626
- t3 = $[4];
627
- }
628
- const onEdit = t3;
629
- let t4;
630
- if ($[5] !== setWidgets) {
631
- t4 = (id_0) => {
632
- setWidgets((current) => current.filter((widget_0) => widget_0.id !== id_0));
633
- };
634
- $[5] = setWidgets;
635
- $[6] = t4;
636
- } else {
637
- t4 = $[6];
638
- }
639
- const onRemove = t4;
640
- let t5;
641
- if ($[7] !== draft.shardKey || $[8] !== draft.sql || $[9] !== draft.title || $[10] !== editingId || $[11] !== setWidgets) {
642
- t5 = () => {
643
- const title = draft.title.trim();
644
- const sql = draft.sql.trim();
645
- if (title === "" || sql === "") {
646
- return;
647
- }
648
- const shardKey = draft.shardKey.trim();
649
- if (editingId === null) {
650
- setWidgets((current_0) => [...current_0, {
651
- id: newId("w"),
652
- shardKey,
653
- sql,
654
- title
655
- }]);
656
- } else {
657
- setWidgets((current_1) => current_1.map((widget_1) => widget_1.id === editingId ? {
658
- ...widget_1,
659
- shardKey,
660
- sql,
661
- title
662
- } : widget_1));
663
- }
664
- closeForm();
665
- };
666
- $[7] = draft.shardKey;
667
- $[8] = draft.sql;
668
- $[9] = draft.title;
669
- $[10] = editingId;
670
- $[11] = setWidgets;
671
- $[12] = t5;
672
- } else {
673
- t5 = $[12];
674
- }
675
- const onSubmit = t5;
676
- let t6;
677
- if ($[13] !== t) {
678
- t6 = t("Chart widgets backed by saved read-only SQL queries.");
679
- $[13] = t;
680
- $[14] = t6;
681
- } else {
682
- t6 = $[14];
683
- }
684
- let t7;
685
- if ($[15] !== t6) {
686
- t7 = /* @__PURE__ */ jsxDEV("p", {
687
- className: "text-sm text-muted-foreground",
688
- children: t6
689
- }, void 0, false);
690
- $[15] = t6;
691
- $[16] = t7;
692
- } else {
693
- t7 = $[16];
694
- }
695
- let t8;
696
- if ($[17] !== formOpen || $[18] !== openAdd || $[19] !== t) {
697
- t8 = !formOpen && /* @__PURE__ */ jsxDEV(Button, {
698
- "data-testid": "dashboards-add",
699
- onClick: openAdd,
700
- size: "sm",
701
- type: "button",
702
- children: t("Add widget")
703
- }, void 0, false);
704
- $[17] = formOpen;
705
- $[18] = openAdd;
706
- $[19] = t;
707
- $[20] = t8;
708
- } else {
709
- t8 = $[20];
710
- }
711
- let t9;
712
- if ($[21] !== t7 || $[22] !== t8) {
713
- t9 = /* @__PURE__ */ jsxDEV("div", {
714
- className: "flex items-center justify-between",
715
- children: [t7, t8]
716
- }, void 0, true);
717
- $[21] = t7;
718
- $[22] = t8;
719
- $[23] = t9;
720
- } else {
721
- t9 = $[23];
722
- }
723
- let t10;
724
- if ($[24] !== draft || $[25] !== editingId || $[26] !== formOpen || $[27] !== onSubmit) {
725
- t10 = formOpen && /* @__PURE__ */ jsxDEV(WidgetForm, {
726
- draft,
727
- editing: editingId !== null,
728
- onCancel: closeForm,
729
- onChange: setDraft,
730
- onSubmit
731
- }, void 0, false);
732
- $[24] = draft;
733
- $[25] = editingId;
734
- $[26] = formOpen;
735
- $[27] = onSubmit;
736
- $[28] = t10;
737
- } else {
738
- t10 = $[28];
739
- }
740
- let t11;
741
- if ($[29] !== formOpen || $[30] !== onEdit || $[31] !== onRemove || $[32] !== t || $[33] !== widgets) {
742
- t11 = widgets.length === 0 && !formOpen ? /* @__PURE__ */ jsxDEV(EmptyState, {
743
- description: t("Add a widget to chart a saved SQL query on this browser."),
744
- testId: "dashboards-empty",
745
- title: t("No widgets yet")
746
- }, void 0, false) : /* @__PURE__ */ jsxDEV("div", {
747
- className: "grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3",
748
- "data-testid": "dashboards-grid",
749
- children: widgets.map((widget_2) => /* @__PURE__ */ jsxDEV(WidgetCard, {
750
- onEdit,
751
- onRemove,
752
- widget: widget_2
753
- }, widget_2.id, false))
754
- }, void 0, false);
755
- $[29] = formOpen;
756
- $[30] = onEdit;
757
- $[31] = onRemove;
758
- $[32] = t;
759
- $[33] = widgets;
760
- $[34] = t11;
761
- } else {
762
- t11 = $[34];
763
- }
764
- let t12;
765
- if ($[35] !== t10 || $[36] !== t11 || $[37] !== t9) {
766
- t12 = /* @__PURE__ */ jsxDEV("div", {
767
- className: "flex flex-col gap-4",
768
- "data-testid": "lunora-dashboards",
769
- children: [t9, t10, t11]
770
- }, void 0, true);
771
- $[35] = t10;
772
- $[36] = t11;
773
- $[37] = t9;
774
- $[38] = t12;
775
- } else {
776
- t12 = $[38];
777
- }
778
- return t12;
779
- };
780
-
781
- export { DashboardsPanel as default };
1
+ import{c as O}from"react/compiler-runtime";import{useState as j,useCallback as V,useEffect as B}from"react";import{j as D}from"../packem_shared/result-chart-CwKhhKM0.js";import{A as U}from"../packem_shared/alert-CVcOFuDR.js";import{u as z}from"../packem_shared/button-BkCrNcAs.js";import{c as F,u as Q,f as Z,n as H}from"../packem_shared/card-CIDGUN6K.js";import{E as J}from"../packem_shared/empty-state-Cg7t_8qu.js";import{useT as T}from"../packem_shared/DEFAULT_LOCALE-BZ4NojpD.js";import{u as P,n as X}from"../packem_shared/browser-storage-xjTyMKY0.js";import{useLunora as G}from"@lunora/react";import{ADMIN_FUNCTIONS as Y}from"../packem_shared/ADMIN_FUNCTIONS-BYNSbBVE.js";import{c as ee,e as te,f as le,a as de}from"../packem_shared/internal-AtZ4bTal.js";import{jsx as c,jsxs as _}from"react/jsx-runtime";const re=de(Y.runSql),ie=(M,e)=>{const l=G(),[m,t]=j(void 0),[d,i]=j(void 0),[r,n]=j(!0),C=V(async s=>{n(!0);try{const w=await l.query(re,{sql:M},ee(e));s.cancelled||(t(w),i(void 0))}catch(w){s.cancelled||(t(void 0),i(te(w)))}finally{s.cancelled||n(!1)}},[l,M,e]);return B(()=>{const s={cancelled:!1};return le(C(s)),()=>{s.cancelled=!0}},[C]),{error:d,loading:r,result:m}},se="lunora-studio-dashboards",I={shardKey:"",sql:"",title:""},ae=M=>{const e=O(54),{onEdit:l,onRemove:m,widget:t}=M,d=T(),{error:i,loading:r,result:n}=ie(t.sql,t.shardKey??"");let C;e[0]!==l||e[1]!==t.id?(C=()=>{l(t.id)},e[0]=l,e[1]=t.id,e[2]=C):C=e[2];const s=C;let w;e[3]!==m||e[4]!==t.id?(w=()=>{m(t.id)},e[3]=m,e[4]=t.id,e[5]=w):w=e[5];const $=w,R=`dashboards-widget-${t.id}`;let q;e[6]!==t.title?(q=c(Z,{className:"min-w-0 truncate",title:t.title,children:t.title}),e[6]=t.title,e[7]=q):q=e[7];let K;e[8]!==d?(K=d("Edit widget"),e[8]=d,e[9]=K):K=e[9];const L=`dashboards-widget-edit-${t.id}`;let E;e[10]!==d?(E=d("Edit widget"),e[10]=d,e[11]=E):E=e[11];let k;e[12]===Symbol.for("react.memo_cache_sentinel")?(k=c("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:c("path",{d:"M4 20h4L18 10l-4-4L4 16v4ZM14 6l4 4"})}),e[12]=k):k=e[12];let x;e[13]!==s||e[14]!==K||e[15]!==L||e[16]!==E?(x=c(z,{"aria-label":K,"data-testid":L,onClick:s,size:"icon-xs",title:E,type:"button",variant:"ghost",children:k}),e[13]=s,e[14]=K,e[15]=L,e[16]=E,e[17]=x):x=e[17];let p;e[18]!==d?(p=d("Remove widget"),e[18]=d,e[19]=p):p=e[19];const S=`dashboards-widget-remove-${t.id}`;let h;e[20]!==d?(h=d("Remove widget"),e[20]=d,e[21]=h):h=e[21];let v;e[22]===Symbol.for("react.memo_cache_sentinel")?(v=c("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:c("path",{d:"M5 7h14M9 7V5h6v2m-1 0v12H10V7M7 7v13h10V7"})}),e[22]=v):v=e[22];let u;e[23]!==$||e[24]!==p||e[25]!==S||e[26]!==h?(u=c(z,{"aria-label":p,"data-testid":S,onClick:$,size:"icon-xs",title:h,type:"button",variant:"ghost",children:v}),e[23]=$,e[24]=p,e[25]=S,e[26]=h,e[27]=u):u=e[27];let f;e[28]!==u||e[29]!==x?(f=_("div",{className:"flex shrink-0 items-center gap-1",children:[x,u]}),e[28]=u,e[29]=x,e[30]=f):f=e[30];let g;e[31]!==f||e[32]!==q?(g=_(H,{className:"flex flex-row items-start justify-between gap-2 border-b pb-3",children:[q,f]}),e[31]=f,e[32]=q,e[33]=g):g=e[33];let b;e[34]!==i||e[35]!==t.id?(b=i!==void 0&&c(U,{className:"font-mono text-xs",testId:`dashboards-widget-error-${t.id}`,variant:"destructive",children:i}),e[34]=i,e[35]=t.id,e[36]=b):b=e[36];let N;e[37]!==i||e[38]!==r||e[39]!==n||e[40]!==d||e[41]!==t.id?(N=i===void 0&&r&&n===void 0&&c("p",{className:"p-4 text-sm text-muted-foreground","data-testid":`dashboards-widget-loading-${t.id}`,children:d("Running…")}),e[37]=i,e[38]=r,e[39]=n,e[40]=d,e[41]=t.id,e[42]=N):N=e[42];let a;e[43]!==i||e[44]!==n?(a=i===void 0&&n!==void 0&&c(D,{result:n}),e[43]=i,e[44]=n,e[45]=a):a=e[45];let o;e[46]!==b||e[47]!==N||e[48]!==a?(o=_(Q,{className:"min-h-32 py-2",children:[b,N,a]}),e[46]=b,e[47]=N,e[48]=a,e[49]=o):o=e[49];let y;return e[50]!==g||e[51]!==o||e[52]!==R?(y=_(F,{"data-testid":R,children:[g,o]}),e[50]=g,e[51]=o,e[52]=R,e[53]=y):y=e[53],y},oe=M=>{const e=O(58),{draft:l,editing:m,onCancel:t,onChange:d,onSubmit:i}=M,r=T();let n;e[0]!==l||e[1]!==d?(n=A=>{d({...l,title:A.target.value})},e[0]=l,e[1]=d,e[2]=n):n=e[2];const C=n;let s;e[3]!==l||e[4]!==d?(s=A=>{d({...l,sql:A.target.value})},e[3]=l,e[4]=d,e[5]=s):s=e[5];const w=s;let $;e[6]!==l||e[7]!==d?($=A=>{d({...l,shardKey:A.target.value})},e[6]=l,e[7]=d,e[8]=$):$=e[8];const R=$;let q;e[9]!==i?(q=()=>{i()},e[9]=i,e[10]=q):q=e[10];const K=q;let L;e[11]!==l.sql||e[12]!==l.title?(L=l.title.trim()!==""&&l.sql.trim()!=="",e[11]=l.sql,e[12]=l.title,e[13]=L):L=e[13];const E=L;let k;e[14]!==r?(k=r("Widget title"),e[14]=r,e[15]=k):k=e[15];let x;e[16]!==r?(x=r("Widget title"),e[16]=r,e[17]=x):x=e[17];let p;e[18]!==l.title||e[19]!==C||e[20]!==k||e[21]!==x?(p=c("input",{"aria-label":k,className:"h-8 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring","data-testid":"dashboards-form-title",onChange:C,placeholder:x,type:"text",value:l.title}),e[18]=l.title,e[19]=C,e[20]=k,e[21]=x,e[22]=p):p=e[22];let S;e[23]!==r?(S=r("SQL query"),e[23]=r,e[24]=S):S=e[24];let h;e[25]!==l.sql||e[26]!==w||e[27]!==S?(h=c("textarea",{"aria-label":S,className:"min-h-24 resize-y rounded-md border border-border bg-background p-2 font-mono text-xs leading-5 outline-none focus-visible:border-ring","data-testid":"dashboards-form-sql",onChange:w,placeholder:"SELECT author, COUNT(*) AS messages FROM …",spellCheck:!1,value:l.sql}),e[25]=l.sql,e[26]=w,e[27]=S,e[28]=h):h=e[28];let v;e[29]!==r?(v=r("Shard key (optional)"),e[29]=r,e[30]=v):v=e[30];let u;e[31]!==r?(u=r("Shard key (optional)"),e[31]=r,e[32]=u):u=e[32];let f;e[33]!==l.shardKey||e[34]!==R||e[35]!==v||e[36]!==u?(f=c("input",{"aria-label":v,className:"h-8 rounded-md border border-border bg-background px-2 font-mono text-xs outline-none focus-visible:border-ring","data-testid":"dashboards-form-shard",onChange:R,placeholder:u,type:"text",value:l.shardKey}),e[33]=l.shardKey,e[34]=R,e[35]=v,e[36]=u,e[37]=f):f=e[37];let g;e[38]!==r?(g=r("Cancel"),e[38]=r,e[39]=g):g=e[39];let b;e[40]!==t||e[41]!==g?(b=c(z,{"data-testid":"dashboards-form-cancel",onClick:t,size:"sm",type:"button",variant:"outline",children:g}),e[40]=t,e[41]=g,e[42]=b):b=e[42];const N=!E;let a;e[43]!==m||e[44]!==r?(a=r(m?"Save widget":"Add widget"),e[43]=m,e[44]=r,e[45]=a):a=e[45];let o;e[46]!==K||e[47]!==N||e[48]!==a?(o=c(z,{"data-testid":"dashboards-form-save",disabled:N,onClick:K,size:"sm",type:"button",children:a}),e[46]=K,e[47]=N,e[48]=a,e[49]=o):o=e[49];let y;e[50]!==b||e[51]!==o?(y=_("div",{className:"flex items-center justify-end gap-2",children:[b,o]}),e[50]=b,e[51]=o,e[52]=y):y=e[52];let W;return e[53]!==h||e[54]!==f||e[55]!==y||e[56]!==p?(W=c(F,{"data-testid":"dashboards-form",children:_(Q,{className:"flex flex-col gap-3 py-4",children:[p,h,f,y]})}),e[53]=h,e[54]=f,e[55]=y,e[56]=p,e[57]=W):W=e[57],W},qe=M=>{const e=O(39),{initialShardKey:l}=M,m=T(),[t,d]=P(se),[i,r]=j(I),[n,C]=j(null),[s,w]=j(!1);let $;e[0]!==l?($=()=>{C(null),r({...I,shardKey:l??""}),w(!0)},e[0]=l,e[1]=$):$=e[1];const R=$;let q;e[2]===Symbol.for("react.memo_cache_sentinel")?(q=()=>{w(!1),C(null),r(I)},e[2]=q):q=e[2];const K=q;let L;e[3]!==t?(L=a=>{const o=t.find(y=>y.id===a);o!==void 0&&(C(a),r({shardKey:o.shardKey??"",sql:o.sql,title:o.title}),w(!0))},e[3]=t,e[4]=L):L=e[4];const E=L;let k;e[5]!==d?(k=a=>{d(o=>o.filter(y=>y.id!==a))},e[5]=d,e[6]=k):k=e[6];const x=k;let p;e[7]!==i.shardKey||e[8]!==i.sql||e[9]!==i.title||e[10]!==n||e[11]!==d?(p=()=>{const a=i.title.trim(),o=i.sql.trim();if(a===""||o==="")return;const y=i.shardKey.trim();d(n===null?W=>[...W,{id:X("w"),shardKey:y,sql:o,title:a}]:W=>W.map(A=>A.id===n?{...A,shardKey:y,sql:o,title:a}:A)),K()},e[7]=i.shardKey,e[8]=i.sql,e[9]=i.title,e[10]=n,e[11]=d,e[12]=p):p=e[12];const S=p;let h;e[13]!==m?(h=m("Chart widgets backed by saved read-only SQL queries."),e[13]=m,e[14]=h):h=e[14];let v;e[15]!==h?(v=c("p",{className:"text-sm text-muted-foreground",children:h}),e[15]=h,e[16]=v):v=e[16];let u;e[17]!==s||e[18]!==R||e[19]!==m?(u=!s&&c(z,{"data-testid":"dashboards-add",onClick:R,size:"sm",type:"button",children:m("Add widget")}),e[17]=s,e[18]=R,e[19]=m,e[20]=u):u=e[20];let f;e[21]!==v||e[22]!==u?(f=_("div",{className:"flex items-center justify-between",children:[v,u]}),e[21]=v,e[22]=u,e[23]=f):f=e[23];let g;e[24]!==i||e[25]!==n||e[26]!==s||e[27]!==S?(g=s&&c(oe,{draft:i,editing:n!==null,onCancel:K,onChange:r,onSubmit:S}),e[24]=i,e[25]=n,e[26]=s,e[27]=S,e[28]=g):g=e[28];let b;e[29]!==s||e[30]!==E||e[31]!==x||e[32]!==m||e[33]!==t?(b=t.length===0&&!s?c(J,{description:m("Add a widget to chart a saved SQL query on this browser."),testId:"dashboards-empty",title:m("No widgets yet")}):c("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3","data-testid":"dashboards-grid",children:t.map(a=>c(ae,{onEdit:E,onRemove:x,widget:a},a.id))}),e[29]=s,e[30]=E,e[31]=x,e[32]=m,e[33]=t,e[34]=b):b=e[34];let N;return e[35]!==g||e[36]!==b||e[37]!==f?(N=_("div",{className:"flex flex-col gap-4","data-testid":"lunora-dashboards",children:[f,g,b]}),e[35]=g,e[36]=b,e[37]=f,e[38]=N):N=e[38],N};export{qe as default};