@lunora/studio 1.0.0-alpha.6 → 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 (294) hide show
  1. package/LICENSE.md +6 -0
  2. package/dist/index.d.ts +762 -779
  3. package/dist/index.js +1 -41
  4. package/dist/mount.d.ts +10 -10
  5. package/dist/mount.js +1 -26
  6. package/dist/packem_chunks/ApiTab.js +1 -0
  7. package/dist/packem_chunks/AuditPanel.js +1 -0
  8. package/dist/packem_chunks/DeploymentHealthPanel.js +1 -0
  9. package/dist/packem_chunks/ExportImportPanel.js +3 -0
  10. package/dist/packem_chunks/FileBrowser.js +4 -0
  11. package/dist/packem_chunks/FunctionRunner.js +1 -0
  12. package/dist/packem_chunks/FunctionStatsPanel.js +1 -0
  13. package/dist/packem_chunks/HealthPanel.js +1 -0
  14. package/dist/packem_chunks/InsightsPanel.js +1 -0
  15. package/dist/packem_chunks/LogsPanel.js +1 -0
  16. package/dist/packem_chunks/MailPanel.js +2 -0
  17. package/dist/packem_chunks/MetricsPanel.js +1 -0
  18. package/dist/packem_chunks/MigrationsPanel.js +1 -0
  19. package/dist/packem_chunks/NotificationsPanel.js +1 -0
  20. package/dist/packem_chunks/PitrPanel.js +1 -0
  21. package/dist/packem_chunks/SchemaViewer.js +2 -0
  22. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -0
  23. package/dist/packem_chunks/SettingsPanel.js +1 -0
  24. package/dist/packem_chunks/SqlEditorPanel.js +4 -0
  25. package/dist/packem_chunks/TableEditor.js +1 -0
  26. package/dist/packem_chunks/agents-panel.js +1 -0
  27. package/dist/packem_chunks/analytics-panel.js +1 -0
  28. package/dist/packem_chunks/auth-audit-panel.js +1 -0
  29. package/dist/packem_chunks/auth-config-panel.js +1 -0
  30. package/dist/packem_chunks/auth-sessions-panel.js +1 -0
  31. package/dist/packem_chunks/containers-panel.js +1 -0
  32. package/dist/packem_chunks/dashboards-panel.js +1 -0
  33. package/dist/packem_chunks/fanout-panel.js +1 -0
  34. package/dist/packem_chunks/flags-panel.js +1 -0
  35. package/dist/packem_chunks/issues-panel.js +1 -0
  36. package/dist/packem_chunks/kv-browser.js +1 -0
  37. package/dist/packem_chunks/log-drains-panel.js +4 -0
  38. package/dist/packem_chunks/organizations-panel.js +1 -0
  39. package/dist/packem_chunks/payments-panel.js +1 -0
  40. package/dist/packem_chunks/permissions-panel.js +1 -0
  41. package/dist/packem_chunks/queues-panel.js +1 -0
  42. package/dist/packem_chunks/rls-panel.js +1 -0
  43. package/dist/packem_chunks/schedule-panel.js +1 -0
  44. package/dist/packem_chunks/sparkline.js +1 -0
  45. package/dist/packem_chunks/storage-rules-panel.js +1 -0
  46. package/dist/packem_chunks/subscriptions-panel.js +1 -0
  47. package/dist/packem_chunks/sync-client-panel.js +1 -0
  48. package/dist/packem_chunks/traces-panel.js +1 -0
  49. package/dist/packem_chunks/users-panel.js +1 -0
  50. package/dist/packem_chunks/vector-browser.js +1 -0
  51. package/dist/packem_chunks/workflows-panel.js +1 -0
  52. package/dist/packem_shared/ADMIN_FUNCTIONS-BYNSbBVE.js +1 -0
  53. package/dist/packem_shared/ApiDocsPanel-eJYZlylw.js +2 -0
  54. package/dist/packem_shared/ApiReferencePanel-C42v1jr6.js +1 -0
  55. package/dist/packem_shared/CommandPalette-CVIaY3j8.js +1 -0
  56. package/dist/packem_shared/ConfirmButton-CTL3f3kr.js +1 -0
  57. package/dist/packem_shared/ConnectionBadge-DOk0CQWo.js +1 -0
  58. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-BCC8_4BQ.js +1 -0
  59. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-B-hcFVoi.js +1 -0
  60. package/dist/packem_shared/DEFAULT_LOCALE-BZ4NojpD.js +1 -0
  61. package/dist/packem_shared/DataBrowser-B8J5lHjP.js +1 -0
  62. package/dist/packem_shared/DataFilters-Csb30F0C.js +1 -0
  63. package/dist/packem_shared/ErrorBoundary-DvzYskH7.js +1 -0
  64. package/dist/packem_shared/GlobalDataBrowser-RLJ6NvOs.js +1 -0
  65. package/dist/packem_shared/HomePanel-DL1HupAN.js +1 -0
  66. package/dist/packem_shared/OpenRpcReferencePanel-sGsIgYWj.js +1 -0
  67. package/dist/packem_shared/STUDIO_ROOT_CLASS-C6MccdVk.js +1 -0
  68. package/dist/packem_shared/ScheduledJobs-DUbo6epc.js +1 -0
  69. package/dist/packem_shared/ShardInput-BVn2iCU0.js +1 -0
  70. package/dist/packem_shared/Studio-BWBclm_C.js +1 -0
  71. package/dist/packem_shared/StudioApp-BFm73yVr.js +1 -0
  72. package/dist/packem_shared/StudioI18nProvider-CZ5h4nrV.js +1 -0
  73. package/dist/packem_shared/advisor-view-DaCX9Jy5.js +1 -0
  74. package/dist/packem_shared/aggregateMetrics-BNfajLa2.js +1 -0
  75. package/dist/packem_shared/alert-CVcOFuDR.js +1 -0
  76. package/dist/packem_shared/app.d-bRPJhby-.d.ts +254 -0
  77. package/dist/packem_shared/badge-BbuuAio7.js +1 -0
  78. package/dist/packem_shared/bar-chart-AryFCeoa.js +9 -0
  79. package/dist/packem_shared/browser-storage-xjTyMKY0.js +1 -0
  80. package/dist/packem_shared/button-BkCrNcAs.js +1 -0
  81. package/dist/packem_shared/card-CIDGUN6K.js +1 -0
  82. package/dist/packem_shared/cf-links-gbDy51nR.js +1 -0
  83. package/dist/packem_shared/checkbox-StT4Gob6.js +1 -0
  84. package/dist/packem_shared/data-grid-BMBKzMEJ.js +1 -0
  85. package/dist/packem_shared/data-view-params-C8T3bW1z.js +1 -0
  86. package/dist/packem_shared/dropdown-menu-C3RQ_HlW.js +2 -0
  87. package/dist/packem_shared/empty-state-Cg7t_8qu.js +1 -0
  88. package/dist/packem_shared/error-alert-B59DnrDI.js +1 -0
  89. package/dist/packem_shared/grid-features-uZCUj955.js +6 -0
  90. package/dist/packem_shared/home-panel-B-8BCffw.js +3 -0
  91. package/dist/packem_shared/input-JHu63lTv.js +1 -0
  92. package/dist/packem_shared/internal-AtZ4bTal.js +2 -0
  93. package/dist/packem_shared/label-6uP1obNF.js +1 -0
  94. package/dist/packem_shared/live-status-CGW2JHf_.js +1 -0
  95. package/dist/packem_shared/log-fields-CoL3hsIQ.js +1 -0
  96. package/dist/packem_shared/modal-shell-CUwwWC2o.js +1 -0
  97. package/dist/packem_shared/reference-view-KvhektwF.js +12 -0
  98. package/dist/packem_shared/result-chart-CwKhhKM0.js +1 -0
  99. package/dist/packem_shared/scroll-area-DTEq6Jec.js +2 -0
  100. package/dist/packem_shared/select-Bul-DeII.js +2 -0
  101. package/dist/packem_shared/shard-history-DMEW5VBE.js +1 -0
  102. package/dist/packem_shared/skeleton-C1wQ9M5t.js +1 -0
  103. package/dist/packem_shared/sparkline-DtcZoU48.js +1 -0
  104. package/dist/packem_shared/storage-tier-DznqOf-q.js +1 -0
  105. package/dist/packem_shared/studio-BHA7hnI3.js +2 -0
  106. package/dist/packem_shared/table-DdJBrClo.js +2 -0
  107. package/dist/packem_shared/table-list-sidebar-CMCcNALK.js +1 -0
  108. package/dist/packem_shared/textarea-Bu2-jKAs.js +1 -0
  109. package/dist/packem_shared/trace-handoff-Dw7mwjxu.js +1 -0
  110. package/dist/packem_shared/use-admin-query-Di3fLE8H.js +1 -0
  111. package/dist/packem_shared/use-async-submit-H68GHPz8.js +1 -0
  112. package/dist/packem_shared/useDebounced-Ihdiid_k.js +1 -0
  113. package/dist/packem_shared/utils-bhneXptQ.js +1 -0
  114. package/dist/packem_shared/virtual-rect-1o1veP7R.js +1 -0
  115. package/dist/standalone/chunk-23HKRH5H.js +13 -0
  116. package/dist/standalone/chunk-2A4RKII2.js +1 -0
  117. package/dist/standalone/chunk-3DTM4GI5.js +1 -0
  118. package/dist/standalone/chunk-3MHKT76P.js +1 -0
  119. package/dist/standalone/chunk-46IB4C4Q.js +1 -0
  120. package/dist/standalone/chunk-4AYEV5UN.js +1 -0
  121. package/dist/standalone/chunk-4FNHHFWR.js +1 -0
  122. package/dist/standalone/chunk-6CLVIOCB.js +1 -0
  123. package/dist/standalone/chunk-6I62RSI5.js +1 -0
  124. package/dist/standalone/chunk-6OKDCV7J.js +1 -0
  125. package/dist/standalone/chunk-6P7HIPUE.js +1 -0
  126. package/dist/standalone/chunk-6UYILUSX.js +1 -0
  127. package/dist/standalone/chunk-725RLB7D.js +1 -0
  128. package/dist/standalone/chunk-7AZZ7OJO.js +1 -0
  129. package/dist/standalone/chunk-7CRLAMGB.js +1 -0
  130. package/dist/standalone/chunk-7Z5QEFR4.js +2 -0
  131. package/dist/standalone/chunk-AGVJJQFL.js +1 -0
  132. package/dist/standalone/chunk-AKTGRZXN.js +1 -0
  133. package/dist/standalone/chunk-BAIN7UJ4.js +1 -0
  134. package/dist/standalone/chunk-BHWSIIDT.js +1 -0
  135. package/dist/standalone/chunk-C4O5UR4Y.js +1 -0
  136. package/dist/standalone/chunk-C4VURT57.js +1 -0
  137. package/dist/standalone/chunk-CKO3F55C.js +4 -0
  138. package/dist/standalone/chunk-CVMRZUF5.js +4 -0
  139. package/dist/standalone/chunk-CWWGDW4V.js +1 -0
  140. package/dist/standalone/chunk-CYET4BRZ.js +1 -0
  141. package/dist/standalone/chunk-CZEUVNCQ.js +1 -0
  142. package/dist/standalone/chunk-FXFK4M4E.js +1 -0
  143. package/dist/standalone/chunk-FYAJPWE7.js +1 -0
  144. package/dist/standalone/chunk-GS7OBQO5.js +1 -0
  145. package/dist/standalone/chunk-GTXVH7I5.js +1 -0
  146. package/dist/standalone/chunk-GXZAXNZI.js +1 -0
  147. package/dist/standalone/chunk-H6SIM4BT.js +1 -0
  148. package/dist/standalone/chunk-H6WOFY6A.js +8 -0
  149. package/dist/standalone/chunk-HA34GYEX.js +1 -0
  150. package/dist/standalone/chunk-HMIOF5GV.js +1 -0
  151. package/dist/standalone/chunk-HY46NTNW.js +6 -0
  152. package/dist/standalone/chunk-IBCKC2BO.js +1 -0
  153. package/dist/standalone/chunk-ICKBVXPP.js +1 -0
  154. package/dist/standalone/chunk-IE4ROTQD.js +1 -0
  155. package/dist/standalone/chunk-IYYTWZ2E.js +2 -0
  156. package/dist/standalone/chunk-J2LMP2A7.js +1 -0
  157. package/dist/standalone/chunk-JC6WYIHM.js +1 -0
  158. package/dist/standalone/chunk-JKPK25JO.js +1 -0
  159. package/dist/standalone/chunk-JLFCXBNQ.js +1 -0
  160. package/dist/standalone/chunk-JRWBGR5B.js +1 -0
  161. package/dist/standalone/chunk-K5PFWU5J.js +1 -0
  162. package/dist/standalone/chunk-KJTLW5W2.js +11 -0
  163. package/dist/standalone/chunk-KLLYGWNF.js +19 -0
  164. package/dist/standalone/chunk-KNN3ZEQ7.js +1 -0
  165. package/dist/standalone/chunk-KOC5KV3E.js +1 -0
  166. package/dist/standalone/chunk-KSRXMTBV.js +1 -0
  167. package/dist/standalone/chunk-KYCAYNXM.js +1 -0
  168. package/dist/standalone/chunk-KZ2YUNMR.js +1 -0
  169. package/dist/standalone/chunk-LKHUVEHX.js +1 -0
  170. package/dist/standalone/chunk-LPOKAJT4.js +4 -0
  171. package/dist/standalone/chunk-MZEK4SGD.js +1 -0
  172. package/dist/standalone/chunk-NCCUM26H.js +1 -0
  173. package/dist/standalone/chunk-O62HJZV3.js +1 -0
  174. package/dist/standalone/chunk-OTJOI23O.js +62 -0
  175. package/dist/standalone/chunk-P2NBOUGZ.js +1 -0
  176. package/dist/standalone/chunk-P4J6XNG3.js +1 -0
  177. package/dist/standalone/chunk-PGDWFWH5.js +1 -0
  178. package/dist/standalone/chunk-PR2SE2MD.js +1 -0
  179. package/dist/standalone/chunk-PTTDIYGP.js +1 -0
  180. package/dist/standalone/chunk-PWDMXMRD.js +1 -0
  181. package/dist/standalone/chunk-Q34MSC2F.js +1 -0
  182. package/dist/standalone/chunk-Q5WXTZWX.js +1 -0
  183. package/dist/standalone/chunk-QC5HCNJZ.js +4 -0
  184. package/dist/standalone/chunk-QJKRHZYV.js +1 -0
  185. package/dist/standalone/chunk-R43KHQDA.js +1 -0
  186. package/dist/standalone/chunk-RC2K5RBE.js +1 -0
  187. package/dist/standalone/chunk-RE6UWCMG.js +1 -0
  188. package/dist/standalone/chunk-RUP3M2GF.js +3 -0
  189. package/dist/standalone/chunk-SA6MBPBL.js +1 -0
  190. package/dist/standalone/chunk-SEDZDNQF.js +1 -0
  191. package/dist/standalone/chunk-SKHEGARW.js +1 -0
  192. package/dist/standalone/chunk-SKJZDOHG.js +1 -0
  193. package/dist/standalone/chunk-SNDYNCAA.js +1 -0
  194. package/dist/standalone/chunk-SZUHZ2OG.js +1 -0
  195. package/dist/standalone/chunk-TAE2H7PU.js +1 -0
  196. package/dist/standalone/chunk-TEIBKU46.js +1 -0
  197. package/dist/standalone/chunk-TO6NLVFD.js +1 -0
  198. package/dist/standalone/chunk-TYTJDFX2.js +1 -0
  199. package/dist/standalone/chunk-UDZY7MKE.js +13 -0
  200. package/dist/standalone/chunk-UHHTEBC3.js +1 -0
  201. package/dist/standalone/chunk-UNDFOYRI.js +1 -0
  202. package/dist/standalone/chunk-UNN4CESU.js +1 -0
  203. package/dist/standalone/chunk-UNXX5GQH.js +1 -0
  204. package/dist/standalone/chunk-UREY4GLG.js +1 -0
  205. package/dist/standalone/chunk-UWF5DOGV.js +1 -0
  206. package/dist/standalone/chunk-UY2Y5CXB.js +1 -0
  207. package/dist/standalone/chunk-UZYGEOWY.js +1 -0
  208. package/dist/standalone/chunk-V66TSUKV.js +1 -0
  209. package/dist/standalone/chunk-VEFNSN7P.js +1 -0
  210. package/dist/standalone/chunk-VUJGR4PB.js +1 -0
  211. package/dist/standalone/chunk-VUXJER3D.js +1 -0
  212. package/dist/standalone/chunk-W572365D.js +1 -0
  213. package/dist/standalone/chunk-WYFLGXZ3.js +3 -0
  214. package/dist/standalone/chunk-XDKFPBIL.js +1 -0
  215. package/dist/standalone/chunk-XRKCGQM2.js +1 -0
  216. package/dist/standalone/chunk-YNBJ6ICE.js +1 -0
  217. package/dist/standalone/chunk-YQ5PILIJ.js +1 -0
  218. package/dist/standalone/chunk-YT7VXQVX.js +1 -0
  219. package/dist/standalone/chunk-Z7MUQMLE.js +1 -0
  220. package/dist/standalone/chunk-ZFWEPGWG.js +1 -0
  221. package/dist/standalone/chunk-ZMFZRGAN.js +1 -0
  222. package/dist/standalone/studio.js +9 -356
  223. package/dist/styles.css +2 -2
  224. package/package.json +17 -15
  225. package/dist/packem_shared/ADMIN_FUNCTIONS-DmBqMZ-z.js +0 -45
  226. package/dist/packem_shared/ApiDocsPanel-C5-yJ1p7.js +0 -842
  227. package/dist/packem_shared/ApiReferencePanel-1vubqG5s.js +0 -229
  228. package/dist/packem_shared/ApiTab-W3no0KOj.js +0 -251
  229. package/dist/packem_shared/AuditPanel-Bq4o_IqT.js +0 -212
  230. package/dist/packem_shared/CommandPalette-BtgkBzZI.js +0 -373
  231. package/dist/packem_shared/ConfirmButton-C2eVi2Qv.js +0 -59
  232. package/dist/packem_shared/ConnectionBadge-B2DDM2Tn.js +0 -111
  233. package/dist/packem_shared/DEFAULT_AUTO_REFRESH_MS-Vxwaxx51.js +0 -50
  234. package/dist/packem_shared/DEFAULT_INSIGHT_THRESHOLDS-DjF0h-gA.js +0 -89
  235. package/dist/packem_shared/DEFAULT_LOCALE-CiX4W7Kr.js +0 -27
  236. package/dist/packem_shared/DataBrowser-CtBe1So9.js +0 -4542
  237. package/dist/packem_shared/DataFilters-FNquMaiu.js +0 -249
  238. package/dist/packem_shared/ErrorBoundary-BzAApI7J.js +0 -66
  239. package/dist/packem_shared/ExportImportPanel-dxY56TDF.js +0 -193
  240. package/dist/packem_shared/FileBrowser-Dhy4zES8.js +0 -2932
  241. package/dist/packem_shared/FunctionRunner--fQJRPAD.js +0 -343
  242. package/dist/packem_shared/FunctionStatsPanel-BjRUA_G3.js +0 -432
  243. package/dist/packem_shared/GlobalDataBrowser-BTEmGrph.js +0 -318
  244. package/dist/packem_shared/HealthPanel-PxclMWmA.js +0 -640
  245. package/dist/packem_shared/HomePanel-Cw16stjq.js +0 -1273
  246. package/dist/packem_shared/InsightsPanel-CWS_C-xW.js +0 -423
  247. package/dist/packem_shared/LogsPanel-CTW8CFcM.js +0 -839
  248. package/dist/packem_shared/MailPanel-BwkvfIHF.js +0 -447
  249. package/dist/packem_shared/MetricsPanel-BLuOhZQ4.js +0 -1625
  250. package/dist/packem_shared/MigrationsPanel-DT3lnwHF.js +0 -246
  251. package/dist/packem_shared/OpenRpcReferencePanel-vbcYbv3V.js +0 -191
  252. package/dist/packem_shared/PitrPanel-CdErL7EJ.js +0 -252
  253. package/dist/packem_shared/STUDIO_ROOT_CLASS-D12gX2dV.js +0 -3
  254. package/dist/packem_shared/ScheduledJobs-CabfKbyM.js +0 -159
  255. package/dist/packem_shared/SchemaViewer-LJDcmNIO.js +0 -2512
  256. package/dist/packem_shared/SecurityAdvisorPanel-C_ETsPih.js +0 -79
  257. package/dist/packem_shared/SettingsPanel-C0uLRf5P.js +0 -176
  258. package/dist/packem_shared/ShardInput-gx_DZXXn.js +0 -107
  259. package/dist/packem_shared/SqlEditorPanel-CguV7otm.js +0 -13
  260. package/dist/packem_shared/Studio-BmSGSIuY.js +0 -33
  261. package/dist/packem_shared/StudioApp-D4azxYBu.js +0 -657
  262. package/dist/packem_shared/StudioI18nProvider-B-tDCZIi.js +0 -48
  263. package/dist/packem_shared/TableEditor-ChfUOZec.js +0 -371
  264. package/dist/packem_shared/advisor-view-CGcfMiPq.js +0 -159
  265. package/dist/packem_shared/aggregateMetrics-D4nUHEKU.js +0 -108
  266. package/dist/packem_shared/app.d-CCmwDEVs.d.ts +0 -300
  267. package/dist/packem_shared/badge-B2PKA1-5.js +0 -49
  268. package/dist/packem_shared/bar-chart-CzJAgqkp.js +0 -3245
  269. package/dist/packem_shared/button-BhsN2uZH.js +0 -49
  270. package/dist/packem_shared/card-DURq3ElK.js +0 -175
  271. package/dist/packem_shared/cf-links-2cktDedA.js +0 -8
  272. package/dist/packem_shared/checkbox-UNkzAxl-.js +0 -63
  273. package/dist/packem_shared/data-grid-B5CaV3wS.js +0 -183
  274. package/dist/packem_shared/dropdown-menu-WY4B_eJO.js +0 -280
  275. package/dist/packem_shared/empty-state-DY_oe0k6.js +0 -98
  276. package/dist/packem_shared/grid-features-CzUfqgsM.js +0 -840
  277. package/dist/packem_shared/input-XH4r1Pt1.js +0 -53
  278. package/dist/packem_shared/internal-rXJEAhXS.js +0 -68
  279. package/dist/packem_shared/label-D8ykjn5J.js +0 -46
  280. package/dist/packem_shared/live-status-FZ0psC1z.js +0 -44
  281. package/dist/packem_shared/reference-view-B4E49Lip.js +0 -2180
  282. package/dist/packem_shared/shard-history-DyebH1R5.js +0 -38
  283. package/dist/packem_shared/sparkline-10dG-_f0.js +0 -93
  284. package/dist/packem_shared/sql-editor-panel-BFRpzj6r.js +0 -2562
  285. package/dist/packem_shared/storage-tier-CL98eOvn.js +0 -85
  286. package/dist/packem_shared/studio-H9fuQgSj.js +0 -10303
  287. package/dist/packem_shared/table-_RzNvy3R.js +0 -246
  288. package/dist/packem_shared/table-list-sidebar-Bg7uzbvC.js +0 -832
  289. package/dist/packem_shared/textarea-D3gaCU_-.js +0 -46
  290. package/dist/packem_shared/use-live-admin-Dq6g3daN.js +0 -73
  291. package/dist/packem_shared/use-live-shard-seed-Cuk3dnH0.js +0 -76
  292. package/dist/packem_shared/useDebounced-Dxncpg6z.js +0 -32
  293. package/dist/packem_shared/utils-B05Dmz_H.js +0 -8
  294. package/dist/packem_shared/virtual-rect-CVMUskSm.js +0 -10
@@ -0,0 +1 @@
1
+ import{a as n,e as E,f as S,h as m}from"./chunk-UHHTEBC3.js";function u(t,e=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(e,Math.min(t,r))}n(u,"clamp");var p=1;function x(t,e){return Math.max(0,t-e)}n(x,"getMaxScrollOffset");function A(t,e){if(e<=0)return 0;let r=u(t,0,e),l=r,c=e-r,a=l<=p,i=c<=p;return a&&i?l<=c?0:e:a?0:i?e:r}n(A,"normalizeScrollOffset");var f=E(m(),1),o="base-ui-disable-scrollbar",R={className:o,getElement(t){return(0,f.jsx)("style",{nonce:t,href:o,precedence:"base-ui:low",children:`.${o}{scrollbar-width:none}.${o}::-webkit-scrollbar{display:none}`})}};var s=E(S(),1);var b=s.createContext(void 0),C={disableStyleElements:!1};function y(){return s.useContext(b)??C}n(y,"useCSPContext");export{u as a,p as b,x as c,A as d,R as e,y as f};
@@ -0,0 +1 @@
1
+ import{a as j}from"./chunk-SA6MBPBL.js";import{a as E}from"./chunk-Q34MSC2F.js";import"./chunk-4AYEV5UN.js";import{b}from"./chunk-SKJZDOHG.js";import{a as A,b as T,c as I,d as g,e as c,f as a}from"./chunk-Q5WXTZWX.js";import{a as y,e as N}from"./chunk-JKPK25JO.js";import{b as x}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as v}from"./chunk-GXZAXNZI.js";import"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as w}from"./chunk-6OKDCV7J.js";import{d as _,q as S}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as p,e as C,h as F}from"./chunk-UHHTEBC3.js";var e=C(F(),1);var L="subscriptions",J={},R=new Set(["active","trialing"]),K=new Set(["past_due","unpaid"]),n=p((s,t)=>{if(s[t]!==void 0)return s[t];let o=s.__doc__;if(typeof o=="string")try{let d=JSON.parse(o);if(d!==null&&typeof d=="object"&&!Array.isArray(d))return d[t]}catch{}},"s"),i=p(s=>typeof s=="string"?s:typeof s=="number"||typeof s=="bigint"||typeof s=="boolean"?String(s):"","i"),M=p(s=>R.has(s)?"default":K.has(s)?"destructive":"outline","L"),Y=p(({limit:s=100})=>{let t=_(),{data:o}=b(v.listTables,J,{live:!0}),d=o!==void 0,m=Array.isArray(o)&&o.some(r=>r.name===L),l=b(v.readTablePage,{filters:[],limit:s,offset:0,orderBy:[],search:"",table:"subscriptions"},{enabled:m}),h=b(v.readTablePage,{filters:[],limit:25,offset:0,orderBy:[],search:"",table:"events"},{enabled:m});j(()=>{m&&(l.refetch(),h.refetch())},!0);let f=l.data?.rows??[],k=h.data?.rows??[],D=l.error??h.error,O=l.error===null?h.errorSource:l.errorSource,P=f.filter(r=>R.has(i(n(r,"state")))).length,B=k.toSorted((r,u)=>Number(n(u,"processedAt")??0)-Number(n(r,"processedAt")??0));return d&&!m?(0,e.jsx)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:(0,e.jsx)(w,{description:t("No @lunora/payment tables found in this deployment. Declare the store tables (subscriptions, events, \u2026) in lunora/schema.ts and wire `payment` on createShardDO() to sync customers and subscriptions."),testId:"payments-unconfigured",title:t("No payments configured")})}):(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:[(0,e.jsx)("div",{className:"flex items-center gap-2","data-testid":"payments-summary",children:(0,e.jsxs)(y,{className:"justify-between gap-0 py-0",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Subscriptions")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"text-2xl font-semibold tabular-nums text-foreground",children:P}),(0,e.jsx)(x,{variant:"default",children:t("{count} active",{count:P})})]})]}),(0,e.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:t("{total} total",{total:f.length})})]})}),D===null?void 0:(0,e.jsx)(E,{error:O}),f.length===0&&!l.isLoading?(0,e.jsx)(w,{testId:"payments-empty",title:t("No subscriptions yet")}):(0,e.jsx)(y,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(A,{children:[(0,e.jsx)(T,{children:(0,e.jsxs)(g,{children:[(0,e.jsx)(c,{children:t("Provider")}),(0,e.jsx)(c,{children:t("Reference")}),(0,e.jsx)(c,{children:t("Plan")}),(0,e.jsx)(c,{children:t("State")}),(0,e.jsx)(c,{children:t("Renews")})]})}),(0,e.jsx)(I,{children:f.map(r=>{let u=i(n(r,"state"));return(0,e.jsxs)(g,{"data-testid":"payment-subscription-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{children:i(n(r,"referenceId"))}),(0,e.jsx)(a,{children:i(n(r,"priceId"))}),(0,e.jsx)(a,{children:(0,e.jsx)(x,{variant:M(u),children:u})}),(0,e.jsx)(a,{children:S(n(r,"currentPeriodEnd"))})]},i(n(r,"providerSubscriptionId")))})})]})})}),(0,e.jsxs)(y,{className:"overflow-hidden py-0",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Recent webhook events")})}),(0,e.jsx)(N,{className:"px-0",children:(0,e.jsx)(A,{children:(0,e.jsx)(I,{children:B.map(r=>(0,e.jsxs)(g,{"data-testid":"payment-event-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{className:"font-medium",children:i(n(r,"type"))}),(0,e.jsx)(a,{className:"text-muted-foreground",children:i(n(r,"providerEventId"))}),(0,e.jsx)(a,{children:S(n(r,"processedAt"))})]},i(n(r,"providerEventId"))))})})})]})]})},"X");export{Y as PaymentsPanel};
@@ -0,0 +1,6 @@
1
+ import{a as I,b as R,c as A,d as B,e as U,f as L,g as E,h as M}from"./chunk-6P7HIPUE.js";import{a as q}from"./chunk-VEFNSN7P.js";import{a as _}from"./chunk-C4VURT57.js";import{d as j,l as D,o as J}from"./chunk-KLLYGWNF.js";import{a as x,e as O,f as z,g as G,h as K}from"./chunk-UHHTEBC3.js";var k=O(G(),1),Q=O(z(),1);var a=O(K(),1);var $="inline-flex items-center gap-1 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground outline-none transition-colors hover:bg-accent focus-visible:bg-accent disabled:pointer-events-none disabled:opacity-50",W=/["\n,]/u,X=/^[=+\-@\t\r]/u,F=x(n=>{if(n==null)return"";let e;return typeof n=="string"?e=X.test(n)?` ${n}`:n:typeof n=="number"||typeof n=="boolean"||typeof n=="bigint"?e=String(n):e=JSON.stringify(n),W.test(e)?`"${e.replaceAll('"','""')}"`:e},"A"),Y=x((n,e)=>{let l=n.map(r=>F(r)).join(","),o=e.map(r=>n.map(t=>F(r[t])).join(","));return[l,...o].join(`
2
+ `)},"Y"),Z=x(n=>JSON.stringify(n,null,2),"Z"),H=500,P=x(n=>`"${n.replaceAll('"','""')}"`,"R"),ee=x(n=>n==null?"NULL":typeof n=="number"?Number.isFinite(n)?String(n):"NULL":typeof n=="bigint"?String(n):typeof n=="boolean"?n?"1":"0":`'${(typeof n=="string"?n:JSON.stringify(n)).replaceAll("'","''")}'`,"z"),te=x((n,e,l)=>{if(e.length===0||l.length===0)return"";let o=e.map(t=>P(t)).join(", "),r=[];for(let t=0;t<l.length;t+=H){let i=l.slice(t,t+H).map(u=>` (${e.map(s=>ee(u[s])).join(", ")})`).join(`,
3
+ `);r.push(`INSERT INTO ${P(n)} (${o}) VALUES
4
+ ${i};`)}return r.join(`
5
+
6
+ `)},"K"),V=x((n,e,l)=>{if(!("document"in globalThis))return;let o=globalThis.URL.createObjectURL(new globalThis.Blob([e],{type:l})),r=globalThis.document.createElement("a");r.href=o,r.download=n,globalThis.document.body.append(r),r.click(),r.remove(),globalThis.URL.revokeObjectURL(o)},"O"),le=x(n=>{let e=(0,k.c)(36),{columns:l,name:o,rows:r}=n,t=j(),i;e[0]!==l||e[1]!==o||e[2]!==r?(i=x(()=>{V(`${o}.csv`,Y(l,r),"text/csv;charset=utf-8")},"i"),e[0]=l,e[1]=o,e[2]=r,e[3]=i):i=e[3];let u=i,s;e[4]!==o||e[5]!==r?(s=x(()=>{V(`${o}.json`,Z(r),"application/json")},"s"),e[4]=o,e[5]=r,e[6]=s):s=e[6];let m=s,c;e[7]!==l||e[8]!==o||e[9]!==r?(c=x(()=>{V(`${o}.sql`,te(o,l,r),"application/sql;charset=utf-8")},"a"),e[7]=l,e[8]=o,e[9]=r,e[10]=c):c=e[10];let p=c,d=r.length===0,g;e[11]!==d?(g=(0,a.jsx)(R,{className:$,"data-testid":"grid-export",disabled:d,title:"Exports only the rows loaded on the current page, not the whole table",children:"Export page"}),e[11]=d,e[12]=g):g=e[12];let C;e[13]===Symbol.for("react.memo_cache_sentinel")?(C=(0,a.jsx)(U,{children:"Export loaded rows"}),e[13]=C):C=e[13];let h;e[14]!==t?(h=t("CSV"),e[14]=t,e[15]=h):h=e[15];let f;e[16]!==u||e[17]!==h?(f=(0,a.jsx)(L,{"data-testid":"grid-export-csv",onClick:u,children:h}),e[16]=u,e[17]=h,e[18]=f):f=e[18];let b;e[19]!==t?(b=t("JSON"),e[19]=t,e[20]=b):b=e[20];let y;e[21]!==m||e[22]!==b?(y=(0,a.jsx)(L,{"data-testid":"grid-export-json",onClick:m,children:b}),e[21]=m,e[22]=b,e[23]=y):y=e[23];let w;e[24]!==t?(w=t("SQL"),e[24]=t,e[25]=w):w=e[25];let N;e[26]!==p||e[27]!==w?(N=(0,a.jsx)(L,{"data-testid":"grid-export-sql",onClick:p,children:w}),e[26]=p,e[27]=w,e[28]=N):N=e[28];let v;e[29]!==y||e[30]!==N||e[31]!==f?(v=(0,a.jsxs)(A,{align:"end",children:[C,f,y,N]}),e[29]=y,e[30]=N,e[31]=f,e[32]=v):v=e[32];let S;return e[33]!==v||e[34]!==g?(S=(0,a.jsxs)(I,{children:[g,v]}),e[33]=v,e[34]=g,e[35]=S):S=e[35],S},"W"),ne=x(n=>{let e=(0,k.c)(9),{column:l}=n,o;e[0]!==l?(o=x(()=>{l.toggleVisibility()},"n"),e[0]=l,e[1]=o):o=e[1];let r=o,t;e[2]!==l?(t=l.getIsVisible(),e[2]=l,e[3]=t):t=e[3];let i=`grid-column-${l.id}`,u;return e[4]!==l.id||e[5]!==r||e[6]!==t||e[7]!==i?(u=(0,a.jsx)(E,{checked:t,closeOnClick:!1,"data-testid":i,onCheckedChange:r,children:l.id}),e[4]=l.id,e[5]=r,e[6]=t,e[7]=i,e[8]=u):u=e[8],u},"X"),oe=x(n=>{let e=(0,k.c)(30),{table:l}=n,o=j(),r;e[0]!==l?(r=l.getIsAllColumnsVisible(),e[0]=l,e[1]=r):r=e[1];let t=r,i;e[2]!==t||e[3]!==l?(i=x(()=>{l.toggleAllColumnsVisible(!t)},"i"),e[2]=t,e[3]=l,e[4]=i):i=e[4];let u=i,s;e[5]!==o?(s=o("Columns"),e[5]=o,e[6]=s):s=e[6];let m;e[7]!==s?(m=(0,a.jsx)(R,{className:$,"data-testid":"grid-columns",children:s}),e[7]=s,e[8]=m):m=e[8];let c;e[9]!==o?(c=o("Columns"),e[9]=o,e[10]=c):c=e[10];let p;e[11]!==c?(p=(0,a.jsx)(U,{children:c}),e[11]=c,e[12]=p):p=e[12];let d;e[13]!==t||e[14]!==o?(d=o(t?"Hide all":"Show all"),e[13]=t,e[14]=o,e[15]=d):d=e[15];let g;e[16]!==t||e[17]!==u||e[18]!==d?(g=(0,a.jsx)(E,{checked:t,closeOnClick:!1,"data-testid":"grid-columns-all",onCheckedChange:u,children:d}),e[16]=t,e[17]=u,e[18]=d,e[19]=g):g=e[19];let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,a.jsx)(M,{}),e[20]=C):C=e[20];let h;e[21]!==l?(h=l.getAllLeafColumns().map(se),e[21]=l,e[22]=h):h=e[22];let f;e[23]!==h||e[24]!==p||e[25]!==g?(f=(0,a.jsx)(A,{align:"end",className:"max-h-80 overflow-y-auto",children:(0,a.jsxs)(B,{children:[p,g,C,h]})}),e[23]=h,e[24]=p,e[25]=g,e[26]=f):f=e[26];let b;return e[27]!==f||e[28]!==m?(b=(0,a.jsxs)(I,{children:[m,f]}),e[27]=f,e[28]=m,e[29]=b):b=e[29],b},"ee"),re=x(n=>{let e=(0,k.c)(19),{count:l,editable:o,onClear:r,onDelete:t}=n,i=j(),u;e[0]!==l||e[1]!==i?(u=i("{count} selected",{count:l}),e[0]=l,e[1]=i,e[2]=u):u=e[2];let s;e[3]!==u?(s=(0,a.jsx)("span",{className:"font-medium tabular-nums","data-testid":"grid-selection-count",children:u}),e[3]=u,e[4]=s):s=e[4];let m;e[5]!==i?(m=i("Clear"),e[5]=i,e[6]=m):m=e[6];let c;e[7]!==r||e[8]!==m?(c=(0,a.jsx)("button",{className:$,"data-testid":"grid-selection-clear",onClick:r,type:"button",children:m}),e[7]=r,e[8]=m,e[9]=c):c=e[9];let p;e[10]!==l||e[11]!==o||e[12]!==t||e[13]!==i?(p=o&&(0,a.jsx)(_,{confirmLabel:i("Delete {count} rows?",{count:l}),onConfirm:t,testId:"grid-selection-delete",children:i("Delete {count}",{count:l})}),e[10]=l,e[11]=o,e[12]=t,e[13]=i,e[14]=p):p=e[14];let d;return e[15]!==s||e[16]!==c||e[17]!==p?(d=(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-border bg-accent/40 px-3 py-1.5 text-xs","data-testid":"grid-selection-bar",children:[s,c,p]}),e[15]=s,e[16]=c,e[17]=p,e[18]=d):d=e[18],d},"te"),pe=x(n=>{let e=(0,k.c)(32),{column:l,onClose:o,value:r}=n,t=j(),[i,u]=(0,Q.useState)(!1),s;e[0]!==r?(s=D(r),e[0]=r,e[1]=s):s=e[1];let m=s,c;e[2]!==m?(c=x(()=>{J(m)&&u(!0)},"a"),e[2]=m,e[3]=c):c=e[3];let p=c,d;e[4]!==t?(d=t("Cell value"),e[4]=t,e[5]=d):d=e[5];let g;e[6]!==l?(g=(0,a.jsx)("h2",{className:"truncate font-mono text-sm font-semibold text-foreground",children:l}),e[6]=l,e[7]=g):g=e[7];let C;e[8]!==i||e[9]!==t?(C=t(i?"Copied":"Copy"),e[8]=i,e[9]=t,e[10]=C):C=e[10];let h;e[11]!==p||e[12]!==C?(h=(0,a.jsx)("button",{className:$,"data-testid":"grid-cell-copy",onClick:p,type:"button",children:C}),e[11]=p,e[12]=C,e[13]=h):h=e[13];let f;e[14]!==t?(f=t("Close"),e[14]=t,e[15]=f):f=e[15];let b;e[16]!==o||e[17]!==f?(b=(0,a.jsx)("button",{className:$,"data-testid":"grid-cell-close",onClick:o,type:"button",children:f}),e[16]=o,e[17]=f,e[18]=b):b=e[18];let y;e[19]!==h||e[20]!==b?(y=(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[h,b]}),e[19]=h,e[20]=b,e[21]=y):y=e[21];let w;e[22]!==g||e[23]!==y?(w=(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[g,y]}),e[22]=g,e[23]=y,e[24]=w):w=e[24];let N;e[25]!==m?(N=(0,a.jsx)("pre",{className:"min-h-0 flex-1 overflow-auto rounded-md border border-border bg-muted/30 p-3 font-mono text-xs whitespace-pre-wrap","data-testid":"grid-cell-value",children:m}),e[25]=m,e[26]=N):N=e[26];let v;return e[27]!==o||e[28]!==w||e[29]!==N||e[30]!==d?(v=(0,a.jsxs)(q,{className:"max-h-[70vh] w-[min(40rem,90vw)]",label:d,onClose:o,panelTestId:"grid-cell-dialog",testId:"grid-cell-dialog-overlay",variant:"dialog",children:[w,N]}),e[27]=o,e[28]=w,e[29]=N,e[30]=d,e[31]=v):v=e[31],v},"ue"),ge=x(n=>{let e=(0,k.c)(33),{columns:l,editable:o,name:r,onBulkDelete:t,onToggleTranspose:i,rows:u,table:s,transposed:m}=n,c=j(),p;e[0]!==s?(p=s.getSelectedRowModel(),e[0]=s,e[1]=p):p=e[1];let d=p.rows,g;e[2]!==s?(g=x(()=>{s.resetRowSelection()},"p"),e[2]=s,e[3]=g):g=e[3];let C=g,h;e[4]!==t||e[5]!==d||e[6]!==s?(h=x(()=>{t(d.map(ie)),s.resetRowSelection()},"g"),e[4]=t,e[5]=d,e[6]=s,e[7]=h):h=e[7];let f=h,b;e[8]!==l||e[9]!==r||e[10]!==u?(b=(0,a.jsx)(le,{columns:l,name:r,rows:u}),e[8]=l,e[9]=r,e[10]=u,e[11]=b):b=e[11];let y;e[12]!==s?(y=(0,a.jsx)(oe,{table:s}),e[12]=s,e[13]=y):y=e[13];let w;e[14]!==c?(w=c("Swap rows and columns"),e[14]=c,e[15]=w):w=e[15];let N;e[16]!==c?(N=c("Transpose"),e[16]=c,e[17]=N):N=e[17];let v;e[18]!==i||e[19]!==w||e[20]!==N||e[21]!==m?(v=(0,a.jsx)("button",{"aria-pressed":m,className:$,"data-testid":"grid-transpose",onClick:i,title:w,type:"button",children:N}),e[18]=i,e[19]=w,e[20]=N,e[21]=m,e[22]=v):v=e[22];let S;e[23]!==o||e[24]!==C||e[25]!==f||e[26]!==d.length?(S=d.length>0&&(0,a.jsx)(re,{count:d.length,editable:o,onClear:C,onDelete:f}),e[23]=o,e[24]=C,e[25]=f,e[26]=d.length,e[27]=S):S=e[27];let T;return e[28]!==b||e[29]!==y||e[30]!==v||e[31]!==S?(T=(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5","data-testid":"grid-actions",children:[b,y,v,S]}),e[28]=b,e[29]=y,e[30]=v,e[31]=S,e[32]=T):T=e[32],T},"pe");function se(n){return(0,a.jsx)(ne,{column:n},n.id)}x(se,"le");function ie(n){return n.id}x(ie,"oe");export{le as a,re as b,pe as c,ge as d};
@@ -0,0 +1 @@
1
+ import{a as D}from"./chunk-SA6MBPBL.js";import{a as B}from"./chunk-SKJZDOHG.js";import{a as q,b as E,c as M,d as S,e as r,f as s}from"./chunk-Q5WXTZWX.js";import{a as A,e as L}from"./chunk-JKPK25JO.js";import{b as x}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{f as W}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as _}from"./chunk-6OKDCV7J.js";import{d as z}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as R,e as O,g as $,h as I}from"./chunk-UHHTEBC3.js";var F=O($(),1);var n=O(I(),1);var J=2e3,Q=new Set(["open"]),re=R(G=>{let e=(0,F.c)(41),{read:y}=G,t=z(),j=W(),v;e[0]!==j||e[1]!==y?(v=R(()=>Promise.resolve(y?y():j.debug()),"S"),e[0]=j,e[1]=y,e[2]=v):v=e[2];let H=v,K=y?"injected":"live",b;e[3]!==K?(b=["lunora-studio","sync-client-debug",K],e[3]=K,e[4]=b):b=e[4];let{data:c,refetch:Y}=B(b,H);if(D(Y,!0,J),!c){let i;e[5]!==t?(i=t("Reading the sync client's state\u2026"),e[5]=t,e[6]=i):i=e[6];let g;e[7]!==t?(g=t("Sync client"),e[7]=t,e[8]=g):g=e[8];let T;return e[9]!==i||e[10]!==g?(T=(0,n.jsx)(A,{children:(0,n.jsx)(L,{children:(0,n.jsx)(_,{description:i,title:g})})}),e[9]=i,e[10]=g,e[11]=T):T=e[11],T}let{pendingWrites:k,shards:N,subscriptions:w}=c,l;e[12]!==t?(l=t("This Studio session's sync client"),e[12]=t,e[13]=l):l=e[13];let a;e[14]!==l?(a=(0,n.jsx)("span",{className:"text-sm font-medium",children:l}),e[14]=l,e[15]=a):a=e[15];let P=c.connectionStatus==="connected"?"default":"secondary",o;e[16]!==c.connectionStatus||e[17]!==P?(o=(0,n.jsx)(x,{variant:P,children:c.connectionStatus}),e[16]=c.connectionStatus,e[17]=P,e[18]=o):o=e[18];let d;e[19]!==k||e[20]!==t?(d=k>0?(0,n.jsx)(x,{variant:"secondary",children:t("{count} pending writes",{count:k})}):null,e[19]=k,e[20]=t,e[21]=d):d=e[21];let h;e[22]!==a||e[23]!==o||e[24]!==d?(h=(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a,o,d]}),e[22]=a,e[23]=o,e[24]=d,e[25]=h):h=e[25];let u;e[26]!==t?(u=t("Reads client.debug() for the client running in this page \u2014 not your application's client. Call client.debug() in your app to diagnose a specific stuck overlay there."),e[26]=t,e[27]=u):u=e[27];let m;e[28]!==u?(m=(0,n.jsx)("p",{className:"text-muted-foreground text-xs",children:u}),e[28]=u,e[29]=m):m=e[29];let p;e[30]!==N||e[31]!==t?(p=N.length===0?(0,n.jsx)(_,{description:t("No shard connection has been opened yet."),title:t("No shards")}):(0,n.jsxs)(q,{children:[(0,n.jsx)(E,{children:(0,n.jsxs)(S,{children:[(0,n.jsx)(r,{children:t("Shard")}),(0,n.jsx)(r,{children:t("Socket")}),(0,n.jsx)(r,{children:t("Confirmed watermark")})]})}),(0,n.jsx)(M,{children:N.map(i=>(0,n.jsxs)(S,{children:[(0,n.jsx)(s,{children:i.shardKey??t("(default)")}),(0,n.jsx)(s,{children:(0,n.jsx)(x,{variant:Q.has(i.wsState)?"default":"secondary",children:i.wsState})}),(0,n.jsx)(s,{children:i.confirmedMutationWatermark})]},i.shardKey??"__default__"))})]}),e[30]=N,e[31]=t,e[32]=p):p=e[32];let f;e[33]!==w||e[34]!==t?(f=w.length===0?(0,n.jsx)(_,{description:t("This client holds no live queries or shapes."),title:t("No subscriptions")}):(0,n.jsxs)(q,{children:[(0,n.jsx)(E,{children:(0,n.jsxs)(S,{children:[(0,n.jsx)(r,{children:t("Subscription")}),(0,n.jsx)(r,{children:t("Kind")}),(0,n.jsx)(r,{children:t("Acked")}),(0,n.jsx)(r,{children:t("Cursor")}),(0,n.jsx)(r,{children:t("Pending overlays")})]})}),(0,n.jsx)(M,{children:w.map(i=>(0,n.jsxs)(S,{children:[(0,n.jsx)(s,{className:"font-mono text-xs",children:i.functionPath}),(0,n.jsx)(s,{children:i.kind}),(0,n.jsx)(s,{children:(0,n.jsx)(x,{variant:i.acked?"default":"secondary",children:i.acked?t("yes"):t("no")})}),(0,n.jsx)(s,{children:i.serverCursor??"\u2014"}),(0,n.jsx)(s,{children:i.pendingOptimisticLayers})]},i.id))})]}),e[33]=w,e[34]=t,e[35]=f):f=e[35];let C;return e[36]!==m||e[37]!==p||e[38]!==f||e[39]!==h?(C=(0,n.jsx)(A,{children:(0,n.jsxs)(L,{className:"flex flex-col gap-4",children:[h,m,p,f]})}),e[36]=m,e[37]=p,e[38]=f,e[39]=h,e[40]=C):C=e[40],C},"re");export{re as default};
@@ -0,0 +1 @@
1
+ import{a as o}from"./chunk-UHHTEBC3.js";var h=new Set(["contains","eq","gt","gte","lt","lte","ne"]),i=o(t=>{if(typeof t!="string")return;let e=t.trim();return e===""?void 0:e},"a"),f=o(t=>{if(t===null||typeof t!="object")return!1;let e=t;return typeof e.column=="string"&&typeof e.operator=="string"&&h.has(e.operator)},"h"),l=o(t=>{if(typeof t!="string"||t==="")return[];try{let e=JSON.parse(t);return Array.isArray(e)?e.filter(f):[]}catch{return[]}},"d"),c=o(t=>{if(typeof t!="string"||t==="")return;let e=t.lastIndexOf(":");if(e<=0)return;let s=t.slice(0,e),r=t.slice(e+1);if(!(r!=="asc"&&r!=="desc"))return{column:s,direction:r}},"c"),v=o(t=>{let e={};t.schema==="global"&&(e.schema="global");let s=i(t.table);s!==void 0&&(e.table=s);let r=i(t.shard);r!==void 0&&(e.shard=r);let d=i(t.search);d!==void 0&&(e.search=d);let a=i(t.order);a!==void 0&&c(a)!==void 0&&(e.order=a);let n=i(t.filters);return n!==void 0&&l(n).length>0&&(e.filters=n),e},"f"),g=o(t=>{let e=l(t.filters),s=c(t.order);return{filters:e.length>0?e:void 0,orderBy:s,search:typeof t.search=="string"&&t.search!==""?t.search:void 0,shard:typeof t.shard=="string"&&t.shard!==""?t.shard:void 0,table:typeof t.table=="string"&&t.table!==""?t.table:void 0,tier:t.schema==="global"?"global":"shard"}},"v"),b=o(t=>{let e=t.filters??[];return{filters:e.length>0?JSON.stringify(e):void 0,order:t.orderBy===void 0?void 0:`${t.orderBy.column}:${t.orderBy.direction}`,schema:t.tier==="global"?"global":void 0,search:t.search!==void 0&&t.search!==""?t.search:void 0,shard:t.shard!==void 0&&t.shard!==""?t.shard:void 0,table:t.table!==void 0&&t.table!==""?t.table:void 0}},"g");export{v as a,g as b,b as c};
@@ -0,0 +1 @@
1
+ import{a as yt}from"./chunk-6CLVIOCB.js";import{a as pt,b as bt,c as vt,d as Nt,e as Ve}from"./chunk-RE6UWCMG.js";import{a as xt}from"./chunk-ZMFZRGAN.js";import{a as ut,b as ht,c as gt,d as ft,e as je}from"./chunk-UNDFOYRI.js";import"./chunk-HA34GYEX.js";import{a as dt}from"./chunk-6I62RSI5.js";import{e as mt}from"./chunk-SKHEGARW.js";import"./chunk-PR2SE2MD.js";import"./chunk-CZEUVNCQ.js";import"./chunk-PWDMXMRD.js";import"./chunk-YNBJ6ICE.js";import"./chunk-C4O5UR4Y.js";import"./chunk-OTJOI23O.js";import"./chunk-SEDZDNQF.js";import"./chunk-TYTJDFX2.js";import{e as tt}from"./chunk-6UYILUSX.js";import{a as ct}from"./chunk-YQ5PILIJ.js";import"./chunk-KSRXMTBV.js";import{b as Ke}from"./chunk-SKJZDOHG.js";import{a as Ue,b as Be,c as Ge,d as Re,e as te,f as L}from"./chunk-Q5WXTZWX.js";import{a as de,b as Oe,c as Fe,d as rt,e as he}from"./chunk-JKPK25JO.js";import"./chunk-KOC5KV3E.js";import{a as ot}from"./chunk-V66TSUKV.js";import{a as nt,b as it}from"./chunk-UWF5DOGV.js";import"./chunk-PTTDIYGP.js";import"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c as He}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as Qe}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as De}from"./chunk-GXZAXNZI.js";import{f as et}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{d as Te,f as at,g as lt,h as st,m as We,p as Le}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as i,e as Je,f as $t,g as qt,h as kt}from"./chunk-UHHTEBC3.js";var Ce=Je(qt(),1);var T=Je($t(),1);var t=Je(kt(),1);var _t=i((s,e)=>s<e?-1:s>e?1:0,"_t"),Ye=i(s=>{if(s===void 0)return"null";if(typeof s=="bigint")throw new TypeError("stableStringify: cannot use a bigint in a stable JSON cache key \u2014 pass it as a string, or use stableWireKey");if(s===null||typeof s!="object")return JSON.stringify(s);if(Array.isArray(s))return`[${s.map(x=>Ye(x)).join(",")}]`;let e=Object.getPrototypeOf(s);if(e!==null&&e!==Object.prototype){let x=s.constructor?.name??"value";throw new TypeError(`stableStringify: cannot use a ${x} in a stable JSON cache key \u2014 only plain objects, arrays, and JSON primitives are supported (wire-typed values key via stableWireKey)`)}let l=s,r=Object.keys(l).toSorted(_t),a=[];for(let x of r){let p=l[x];p!==void 0&&a.push(`${JSON.stringify(x)}:${Ye(p)}`)}return`{${a.join(",")}}`},"Be"),wt=i((s,e,l)=>`${s}:${e}:${Ye(l??{})}`,"rt"),St=i((s,e)=>s==="gauge"?e.last:s==="histogram"?e.sum/Math.max(1,e.count):e.sum,"at"),Mt=i((s,e)=>St(s,e),"Mt"),It=i(s=>St(s.kind,s),"It"),Xe=i(s=>Number.isInteger(s)?s.toLocaleString():s.toLocaleString(void 0,{maximumFractionDigits:2}),"Qe"),Ct=i(s=>Array.isArray(s?.series)?s.series:[],"Ft"),Tt=i(s=>{let e=new Map;if(!Array.isArray(s?.series))return e;for(let l of s.series)e.set(wt(l.kind,l.name,l.attributes),l.points);return e},"Ct"),Ot={counter:"secondary",gauge:"default",histogram:"outline"},Ft=i(s=>{let e=(0,Ce.c)(18),{name:l,onOpenTrace:r,traceId:a}=s,x=Te();if(a===void 0){let c;return e[0]===Symbol.for("react.memo_cache_sentinel")?(c=(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}),e[0]=c):c=e[0],c}let p;e[1]!==a?(p=a.slice(0,8),e[1]=a,e[2]=p):p=e[2];let g=p;if(r===void 0){let c=`mt-instrument-trace-${l}`,N;return e[3]!==g||e[4]!==c||e[5]!==a?(N=(0,t.jsx)("span",{className:"text-muted-foreground","data-testid":c,title:a,children:g}),e[3]=g,e[4]=c,e[5]=a,e[6]=N):N=e[6],N}let v=`mt-instrument-trace-${l}`,u;e[7]!==r||e[8]!==a?(u=i(()=>{r(a)},"u"),e[7]=r,e[8]=a,e[9]=u):u=e[9];let b;e[10]!==x||e[11]!==a?(b=x("Open the exemplar trace {trace}",{trace:a}),e[10]=x,e[11]=a,e[12]=b):b=e[12];let h;return e[13]!==g||e[14]!==v||e[15]!==u||e[16]!==b?(h=(0,t.jsx)("button",{className:"text-primary underline-offset-4 hover:underline","data-testid":v,onClick:u,title:b,type:"button",children:g}),e[13]=g,e[14]=v,e[15]=u,e[16]=b,e[17]=h):h=e[17],h},"Ot"),Dt=i(s=>{let e=(0,Ce.c)(92),{onOpenTrace:l,shardKey:r}=s,a=Te(),x;e[0]===Symbol.for("react.memo_cache_sentinel")?(x={},e[0]=x):x=e[0];let p;e[1]!==r?(p={live:!0,shardKey:r},e[1]=r,e[2]=p):p=e[2];let{data:g,error:v}=Ke(De.getMetricSeries,x,p),u;e[3]===Symbol.for("react.memo_cache_sentinel")?(u={},e[3]=u):u=e[3];let b;e[4]!==r?(b={live:!0,shardKey:r},e[4]=r,e[5]=b):b=e[5];let{data:h}=Ke(De.getMetricHistory,u,b),c,N,re,O,K,E,o,M,le,F,q,j,f;if(e[6]!==g||e[7]!==v||e[8]!==h||e[9]!==l||e[10]!==a){M=Symbol.for("react.early_return_sentinel");e:{let I=Ct(g);if(v!==null||I.length===0){M=null;break e}let se=Tt(h),P;e[24]!==a?(P=i(m=>a(m==="counter"?"Counter":m==="gauge"?"Gauge":"Histogram"),"j"),e[24]=a,e[25]=P):P=e[25];let ne=P;K="flex flex-col gap-2",E="mt-instruments";let A;e[26]!==a?(A=a("Instruments"),e[26]=a,e[27]=A):A=e[27],e[28]!==A?(o=(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:A}),e[28]=A,e[29]=o):o=e[29],O=de,f="overflow-hidden py-0",re=he,j="px-0",N=Ue,F="mt-instruments-table";let n;e[30]!==a?(n=a("name"),e[30]=a,e[31]=n):n=e[31];let S;e[32]!==n?(S=(0,t.jsx)(te,{children:n}),e[32]=n,e[33]=S):S=e[33];let y;e[34]!==a?(y=a("kind"),e[34]=a,e[35]=y):y=e[35];let w;e[36]!==y?(w=(0,t.jsx)(te,{children:y}),e[36]=y,e[37]=w):w=e[37];let J;e[38]!==a?(J=a("value"),e[38]=a,e[39]=J):J=e[39];let Q;e[40]!==J?(Q=(0,t.jsx)(te,{className:"text-right",children:J}),e[40]=J,e[41]=Q):Q=e[41];let H;e[42]!==a?(H=a("count"),e[42]=a,e[43]=H):H=e[43];let W;e[44]!==H?(W=(0,t.jsx)(te,{className:"text-right",children:H}),e[44]=H,e[45]=W):W=e[45];let U;e[46]!==a?(U=a("range"),e[46]=a,e[47]=U):U=e[47];let B;e[48]!==U?(B=(0,t.jsx)(te,{className:"text-right",children:U}),e[48]=U,e[49]=B):B=e[49];let G;e[50]!==a?(G=a("trend"),e[50]=a,e[51]=G):G=e[51];let V;e[52]!==G?(V=(0,t.jsx)(te,{children:G}),e[52]=G,e[53]=V):V=e[53];let X;e[54]!==a?(X=a("trace"),e[54]=a,e[55]=X):X=e[55];let Z;e[56]!==X?(Z=(0,t.jsx)(te,{children:X}),e[56]=X,e[57]=Z):Z=e[57];let Y;e[58]!==a?(Y=a("dimensions"),e[58]=a,e[59]=Y):Y=e[59];let ee;e[60]!==Y?(ee=(0,t.jsx)(te,{children:Y}),e[60]=Y,e[61]=ee):ee=e[61],e[62]!==S||e[63]!==w||e[64]!==Q||e[65]!==W||e[66]!==B||e[67]!==V||e[68]!==Z||e[69]!==ee?(q=(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[S,w,Q,W,B,V,Z,ee]})}),e[62]=S,e[63]=w,e[64]=Q,e[65]=W,e[66]=B,e[67]=V,e[68]=Z,e[69]=ee,e[70]=q):q=e[70],c=Ge,le=I.map(m=>{let ie=xt(m.attributes),oe=wt(m.kind,m.name,m.attributes),ce=(se.get(oe)??[]).map(me=>Mt(m.kind,me));return(0,t.jsxs)(Re,{"data-testid":`mt-instrument-${m.name}`,children:[(0,t.jsx)(L,{className:"font-mono text-xs",title:m.functionPath,children:m.name}),(0,t.jsx)(L,{children:(0,t.jsx)(Qe,{variant:Ot[m.kind],children:ne(m.kind)})}),(0,t.jsx)(L,{className:"text-right font-mono tabular-nums","data-testid":`mt-instrument-value-${m.name}`,children:Xe(It(m))}),(0,t.jsx)(L,{className:"text-right tabular-nums text-muted-foreground",children:m.count.toLocaleString()}),(0,t.jsx)(L,{className:"text-right font-mono text-xs tabular-nums text-muted-foreground",children:m.min===m.max?"\u2014":`${Xe(m.min)}\u2013${Xe(m.max)}`}),(0,t.jsx)(L,{children:ce.length>=2?(0,t.jsx)(Ve,{ariaLabel:a("{name} trend",{name:m.name}),className:"h-6 w-24 text-foreground",series:ce,testId:`mt-instrument-trend-${m.name}`}):(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(L,{className:"font-mono text-xs",children:(0,t.jsx)(Ft,{name:m.name,onOpenTrace:l,traceId:m.exemplarTraceId})}),(0,t.jsx)(L,{className:"max-w-64 truncate font-mono text-xs text-muted-foreground",title:ie,children:ie===""?"\u2014":ie})]},oe)})}e[6]=g,e[7]=v,e[8]=h,e[9]=l,e[10]=a,e[11]=c,e[12]=N,e[13]=re,e[14]=O,e[15]=K,e[16]=E,e[17]=o,e[18]=M,e[19]=le,e[20]=F,e[21]=q,e[22]=j,e[23]=f}else c=e[11],N=e[12],re=e[13],O=e[14],K=e[15],E=e[16],o=e[17],M=e[18],le=e[19],F=e[20],q=e[21],j=e[22],f=e[23];if(M!==Symbol.for("react.early_return_sentinel"))return M;let D;e[71]!==c||e[72]!==le?(D=(0,t.jsx)(c,{children:le}),e[71]=c,e[72]=le,e[73]=D):D=e[73];let z;e[74]!==N||e[75]!==D||e[76]!==F||e[77]!==q?(z=(0,t.jsxs)(N,{"data-testid":F,children:[q,D]}),e[74]=N,e[75]=D,e[76]=F,e[77]=q,e[78]=z):z=e[78];let k;e[79]!==re||e[80]!==z||e[81]!==j?(k=(0,t.jsx)(re,{className:j,children:z}),e[79]=re,e[80]=z,e[81]=j,e[82]=k):k=e[82];let R;e[83]!==O||e[84]!==k||e[85]!==f?(R=(0,t.jsx)(O,{className:f,children:k}),e[83]=O,e[84]=k,e[85]=f,e[86]=R):R=e[86];let _;return e[87]!==K||e[88]!==E||e[89]!==o||e[90]!==R?(_=(0,t.jsxs)("section",{className:K,"data-testid":E,children:[o,R]}),e[87]=K,e[88]=E,e[89]=o,e[90]=R,e[91]=_):_=e[91],_},"Rt"),Pe=i(s=>s>=100?"critical":s>=50?"warning":"good","je"),Ze=i(s=>s<1?`${(s*1e3).toFixed(0)}\u03BCs`:s<1e3?`${s.toFixed(1)}ms`:`${(s/1e3).toFixed(2)}s`,"Ue"),Ee=i(s=>s>=1e9?`${(s/1e9).toFixed(1)}B`:s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toLocaleString(),"Le"),Rt=i(s=>{let e=(0,Ce.c)(3),{level:l}=s;if(l==="critical"){let a;return e[0]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)(Qe,{variant:"destructive",children:"Slow"}),e[0]=a):a=e[0],a}if(l==="warning"){let a;return e[1]===Symbol.for("react.memo_cache_sentinel")?(a=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-warning/10 px-2 py-0.5 text-xs font-medium text-warning",children:"Moderate"}),e[1]=a):a=e[1],a}let r;return e[2]===Symbol.for("react.memo_cache_sentinel")?(r=(0,t.jsx)("span",{className:"inline-flex items-center gap-1 rounded-md border border-transparent bg-success/10 px-2 py-0.5 text-xs font-medium text-success",children:"Fast"}),e[2]=r):r=e[2],r},"Dt"),jt=i(s=>{let e=(0,Ce.c)(152),{queryStats:l}=s,r=Te(),[a,x]=(0,T.useState)("totalTime"),p;e[0]===Symbol.for("react.memo_cache_sentinel")?(p=new Set,e[0]=p):p=e[0];let[g,v]=(0,T.useState)(p),u;e[1]===Symbol.for("react.memo_cache_sentinel")?(u=i(d=>{d!==null&&x(d)},"u"),e[1]=u):u=e[1];let b=u,h;if(e[2]!==l||e[3]!==a){h=[...l];let d;e[5]!==a?(d=i((C,$)=>{switch(a){case"avgTime":return $.avgDurationMs-C.avgDurationMs;case"execCount":return $.execCount-C.execCount;case"rowsRead":return $.rowsRead-C.rowsRead;default:return $.totalDurationMs-C.totalDurationMs}},"d"),e[5]=a,e[6]=d):d=e[6],h.sort(d),e[2]=l,e[3]=a,e[4]=h}else h=e[4];let c=h,N;e[7]!==l?(N=l.filter(zt),e[7]=l,e[8]=N):N=e[8];let re=N.length,O;e[9]!==l?(O=l.filter(At),e[9]=l,e[10]=O):O=e[10];let K=O.length,E;e[11]!==l?(E=l.filter(Lt),e[11]=l,e[12]=E):E=e[12];let o=E.length,M;e[13]===Symbol.for("react.memo_cache_sentinel")?(M=i(d=>{v(C=>{let $=new Set(C);return $.has(d)?$.delete(d):$.add(d),$})},"M"),e[13]=M):M=e[13];let le=M;if(l.length===0){let d;e[14]!==r?(d=r("No query insights yet"),e[14]=r,e[15]=d):d=e[15];let C;e[16]!==d?(C=(0,t.jsx)("p",{className:"text-lg font-medium","data-testid":"qi-empty",children:d}),e[16]=d,e[17]=C):C=e[17];let $;e[18]!==r?($=r("Query insights appear once statements are executed against this shard."),e[18]=r,e[19]=$):$=e[19];let ue;e[20]!==$?(ue=(0,t.jsx)("p",{className:"mt-1 text-sm",children:$}),e[20]=$,e[21]=ue):ue=e[21];let Ae;return e[22]!==ue||e[23]!==C?(Ae=(0,t.jsx)(de,{children:(0,t.jsx)(he,{className:"py-12",children:(0,t.jsxs)("div",{className:"text-center text-muted-foreground",children:[C,ue]})})}),e[22]=ue,e[23]=C,e[24]=Ae):Ae=e[24],Ae}let F;e[25]!==r?(F=r("Critical queries"),e[25]=r,e[26]=F):F=e[26];let q;e[27]!==F?(q=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:F})}),e[27]=F,e[28]=q):q=e[28];let j;e[29]!==re?(j=(0,t.jsx)("div",{className:"text-2xl font-bold text-destructive","data-testid":"qi-critical",children:re}),e[29]=re,e[30]=j):j=e[30];let f;e[31]!==r?(f=r(">100ms avg execution"),e[31]=r,e[32]=f):f=e[32];let D;e[33]!==f?(D=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:f}),e[33]=f,e[34]=D):D=e[34];let z;e[35]!==D||e[36]!==j?(z=(0,t.jsxs)(he,{children:[j,D]}),e[35]=D,e[36]=j,e[37]=z):z=e[37];let k;e[38]!==z||e[39]!==q?(k=(0,t.jsxs)(de,{children:[q,z]}),e[38]=z,e[39]=q,e[40]=k):k=e[40];let R;e[41]!==r?(R=r("Moderate queries"),e[41]=r,e[42]=R):R=e[42];let _;e[43]!==R?(_=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:R})}),e[43]=R,e[44]=_):_=e[44];let I;e[45]!==K?(I=(0,t.jsx)("div",{className:"text-2xl font-bold text-warning","data-testid":"qi-moderate",children:K}),e[45]=K,e[46]=I):I=e[46];let se;e[47]!==r?(se=r("50\u2013100ms avg execution"),e[47]=r,e[48]=se):se=e[48];let P;e[49]!==se?(P=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:se}),e[49]=se,e[50]=P):P=e[50];let ne;e[51]!==I||e[52]!==P?(ne=(0,t.jsxs)(he,{children:[I,P]}),e[51]=I,e[52]=P,e[53]=ne):ne=e[53];let A;e[54]!==_||e[55]!==ne?(A=(0,t.jsxs)(de,{children:[_,ne]}),e[54]=_,e[55]=ne,e[56]=A):A=e[56];let n;e[57]!==r?(n=r("Fast queries"),e[57]=r,e[58]=n):n=e[58];let S;e[59]!==n?(S=(0,t.jsx)(Oe,{className:"pb-2",children:(0,t.jsx)(Fe,{className:"text-sm font-medium",children:n})}),e[59]=n,e[60]=S):S=e[60];let y;e[61]!==o?(y=(0,t.jsx)("div",{className:"text-2xl font-bold text-success","data-testid":"qi-fast",children:o}),e[61]=o,e[62]=y):y=e[62];let w;e[63]!==r?(w=r("<50ms avg execution"),e[63]=r,e[64]=w):w=e[64];let J;e[65]!==w?(J=(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:w}),e[65]=w,e[66]=J):J=e[66];let Q;e[67]!==y||e[68]!==J?(Q=(0,t.jsxs)(he,{children:[y,J]}),e[67]=y,e[68]=J,e[69]=Q):Q=e[69];let H;e[70]!==S||e[71]!==Q?(H=(0,t.jsxs)(de,{children:[S,Q]}),e[70]=S,e[71]=Q,e[72]=H):H=e[72];let W;e[73]!==k||e[74]!==A||e[75]!==H?(W=(0,t.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[k,A,H]}),e[73]=k,e[74]=A,e[75]=H,e[76]=W):W=e[76];let U;e[77]!==r?(U=r("Query leaderboard"),e[77]=r,e[78]=U):U=e[78];let B;e[79]!==U?(B=(0,t.jsx)("h3",{className:"text-lg font-semibold",children:U}),e[79]=U,e[80]=B):B=e[80];let G;e[81]!==a||e[82]!==r?(G=r("Slow queries sorted by {sortField}",{sortField:r(a)}),e[81]=a,e[82]=r,e[83]=G):G=e[83];let V;e[84]!==G?(V=(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:G}),e[84]=G,e[85]=V):V=e[85];let X;e[86]!==B||e[87]!==V?(X=(0,t.jsxs)("div",{children:[B,V]}),e[86]=B,e[87]=V,e[88]=X):X=e[88];let Z;e[89]!==r?(Z=r("Sort by"),e[89]=r,e[90]=Z):Z=e[90];let Y;e[91]!==Z?(Y=(0,t.jsx)("span",{className:"text-sm text-muted-foreground",children:Z}),e[91]=Z,e[92]=Y):Y=e[92];let ee;e[93]!==r?(ee=r("Sort queries by"),e[93]=r,e[94]=ee):ee=e[94];let m;e[95]===Symbol.for("react.memo_cache_sentinel")?(m=(0,t.jsx)(ht,{}),e[95]=m):m=e[95];let ie;e[96]!==ee?(ie=(0,t.jsx)(gt,{"aria-label":ee,className:"w-[140px]","data-testid":"qi-sort",children:m}),e[96]=ee,e[97]=ie):ie=e[97];let oe;e[98]!==r?(oe=r("Total time"),e[98]=r,e[99]=oe):oe=e[99];let ce;e[100]!==oe?(ce=(0,t.jsx)(je,{value:"totalTime",children:oe}),e[100]=oe,e[101]=ce):ce=e[101];let me;e[102]!==r?(me=r("Avg time"),e[102]=r,e[103]=me):me=e[103];let ge;e[104]!==me?(ge=(0,t.jsx)(je,{value:"avgTime",children:me}),e[104]=me,e[105]=ge):ge=e[105];let fe;e[106]!==r?(fe=r("Execution count"),e[106]=r,e[107]=fe):fe=e[107];let xe;e[108]!==fe?(xe=(0,t.jsx)(je,{value:"execCount",children:fe}),e[108]=fe,e[109]=xe):xe=e[109];let pe;e[110]!==r?(pe=r("Rows read"),e[110]=r,e[111]=pe):pe=e[111];let be;e[112]!==pe?(be=(0,t.jsx)(je,{value:"rowsRead",children:pe}),e[112]=pe,e[113]=be):be=e[113];let ve;e[114]!==ce||e[115]!==ge||e[116]!==xe||e[117]!==be?(ve=(0,t.jsxs)(ft,{children:[ce,ge,xe,be]}),e[114]=ce,e[115]=ge,e[116]=xe,e[117]=be,e[118]=ve):ve=e[118];let Ne;e[119]!==a||e[120]!==ie||e[121]!==ve?(Ne=(0,t.jsxs)(ut,{onValueChange:b,value:a,children:[ie,ve]}),e[119]=a,e[120]=ie,e[121]=ve,e[122]=Ne):Ne=e[122];let ye;e[123]!==Y||e[124]!==Ne?(ye=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[Y,Ne]}),e[123]=Y,e[124]=Ne,e[125]=ye):ye=e[125];let we;e[126]!==X||e[127]!==ye?(we=(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[X,ye]}),e[126]=X,e[127]=ye,e[128]=we):we=e[128];let Se;e[129]!==r?(Se=r("Statements"),e[129]=r,e[130]=Se):Se=e[130];let $e;e[131]!==Se?($e=(0,t.jsx)(Fe,{children:Se}),e[131]=Se,e[132]=$e):$e=e[132];let qe;e[133]!==c.length||e[134]!==r?(qe=r("{count} tracked statements",{count:c.length}),e[133]=c.length,e[134]=r,e[135]=qe):qe=e[135];let ke;e[136]!==qe?(ke=(0,t.jsx)(rt,{children:qe}),e[136]=qe,e[137]=ke):ke=e[137];let _e;e[138]!==$e||e[139]!==ke?(_e=(0,t.jsxs)(Oe,{children:[$e,ke]}),e[138]=$e,e[139]=ke,e[140]=_e):_e=e[140];let Me;e[141]!==g||e[142]!==c||e[143]!==r?(Me=(0,t.jsx)(he,{children:(0,t.jsx)("div",{className:"space-y-2",children:c.map(d=>{let C=d.normalizedSql,$=g.has(C),ue=Pe(d.avgDurationMs);return(0,t.jsxs)("div",{className:"overflow-hidden rounded-lg border","data-testid":"qi-row",children:[(0,t.jsxs)("button",{"aria-expanded":$,className:"flex w-full items-center justify-between p-3 text-left transition-colors hover:bg-muted/50",onClick:i(()=>{le(C)},"onClick"),type:"button",children:[(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-3",children:[(0,t.jsx)(Rt,{level:ue}),(0,t.jsx)("span",{className:"max-w-[300px] truncate font-mono text-sm lg:max-w-[500px]",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ze(d.totalDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("total")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ze(d.avgDurationMs)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("avg")})]}),(0,t.jsxs)("div",{className:"text-right",children:[(0,t.jsx)("div",{className:"text-sm font-medium",children:Ee(d.execCount)}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:r("calls")})]})]})]}),$&&(0,t.jsxs)("div",{className:"space-y-3 border-t bg-muted/30 p-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"mb-2 text-sm font-medium",children:r("Full statement")}),(0,t.jsx)("pre",{className:"overflow-x-auto rounded-md bg-muted p-3 font-mono text-sm whitespace-pre-wrap break-all",children:d.normalizedSql})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm md:grid-cols-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Exec count")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.execCount)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Total time")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ze(d.totalDurationMs)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows read")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsRead)})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:r("Rows written")}),(0,t.jsx)("span",{className:"block font-medium tabular-nums",children:Ee(d.rowsWritten)})]})]})]})]},C)})})}),e[141]=g,e[142]=c,e[143]=r,e[144]=Me):Me=e[144];let Ie;e[145]!==_e||e[146]!==Me?(Ie=(0,t.jsxs)(de,{children:[_e,Me]}),e[145]=_e,e[146]=Me,e[147]=Ie):Ie=e[147];let ze;return e[148]!==W||e[149]!==we||e[150]!==Ie?(ze=(0,t.jsxs)("div",{className:"space-y-4","data-testid":"qi-root",children:[W,we,Ie]}),e[148]=W,e[149]=we,e[150]=Ie,e[151]=ze):ze=e[151],ze},"Lt");function zt(s){return Pe(s.avgDurationMs)==="critical"}i(zt,"At");function At(s){return Pe(s.avgDurationMs)==="warning"}i(At,"zt");function Lt(s){return Pe(s.avgDurationMs)==="good"}i(Lt,"Et");var Kt=at(De.getMetrics),Et=i(s=>{let e=Math.floor(s/1e3),l=Math.floor(e/3600),r=Math.floor(e%3600/60),a=e%60;return l>0?`${l.toString()}h ${r.toString()}m`:r>0?`${r.toString()}m ${a.toString()}s`:`${a.toString()}s`},"Kt"),Pt=i((s,e)=>s?e:"overview","Pt"),Jt=i((s,e)=>{let l=s+e;return l===0?"\u2014":`${(s/l*100).toFixed(1)}%`},"Jt"),ae=i(s=>{let e=(0,Ce.c)(16),{chart:l,footer:r,label:a,testId:x,value:p}=s,g;e[0]!==a?(g=(0,t.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:a}),e[0]=a,e[1]=g):g=e[1];let v;e[2]!==x||e[3]!==p?(v=(0,t.jsx)("span",{className:"truncate text-2xl font-semibold tabular-nums text-foreground","data-testid":x,children:p}),e[2]=x,e[3]=p,e[4]=v):v=e[4];let u;e[5]!==l||e[6]!==v?(u=(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[v,l]}),e[5]=l,e[6]=v,e[7]=u):u=e[7];let b;e[8]!==g||e[9]!==u?(b=(0,t.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[g,u]}),e[8]=g,e[9]=u,e[10]=b):b=e[10];let h;e[11]!==r?(h=r!=null&&(0,t.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:r}),e[11]=r,e[12]=h):h=e[12];let c;return e[13]!==b||e[14]!==h?(c=(0,t.jsxs)(de,{className:"justify-between gap-0 py-0",children:[b,h]}),e[13]=b,e[14]=h,e[15]=c):c=e[15],c},"te"),dr=i(({initialShardKey:s})=>{let e=et(),l=Te(),r=tt(),[a,x]=(0,T.useState)(s??""),[p,g]=(0,T.useState)("overview"),[v,u]=(0,T.useState)([]),b=(0,T.useRef)(null),h=(0,T.useRef)(null),c=(0,T.useRef)(!0);(0,T.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]);let N=ct(a.trim(),400),re=i(n=>{yt({shardKey:N,traceId:n}),We(r({to:"/traces"}))},"ee"),{data:O,error:K,liveError:E}=Ke(De.getMetrics,{},{live:!0,shardKey:N}),o=O??null;(0,T.useEffect)(()=>{if(O===void 0)return;it(N);let n=O,S=b.current,y=h.current!==null&&h.current!==n.shard;if(h.current=n.shard,b.current=n.requests,y){u([]);return}S!==null&&n.requests>=S&&u(w=>[...w,n.requests-S].slice(-30))},[O,N]);let[M,le]=(0,T.useState)(null),[F,q]=(0,T.useState)(!1),j=i(async()=>{q(!0);let n=bt(a,nt());try{let S=await Promise.all(n.map(async y=>{try{let w=await e.query(Kt,{},lt(y));return{error:null,metrics:w,shard:y===""?w.shard:y}}catch(w){return{error:st(w),metrics:null,shard:y===""?"__root__":y}}}));c.current&&le(S)}finally{c.current&&q(!1)}},"D"),f=M===null?null:pt(M),D=o===null||o.requests===0?"\u2014":`${(o.errors/o.requests*100).toFixed(1)}%`,z=v.length>0?v.at(-1):0,k=o?vt(o):{p90:0,p95:0},R=i(n=>n<=0?"\u2014":n<1?`${(n*1e3).toFixed(0)}\u03BCs`:n<1e3?`${n.toFixed(1)}ms`:`${(n/1e3).toFixed(2)}s`,"R"),_=(0,T.useMemo)(()=>{if(!o||!("queryStats"in o))return;let n=o.queryStats;if(!(!n||!Array.isArray(n)))return Nt(n)},[o]),I=Pt(_!==void 0,p),se=i(()=>{We(j())},"le"),P=i(()=>{le(null)},"j"),ne=i(()=>{g("overview")},"se"),A=i(()=>{g("query-insights")},"A");return(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-metrics",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(ot,{onChange:x,testId:"mt-shard-input",value:a}),(0,t.jsx)(dt,{message:E,prefix:"mt"}),(0,t.jsx)(He,{"data-testid":"mt-aggregate",disabled:F,onClick:se,size:"sm",type:"button",variant:"secondary",children:l(F?"Aggregating\u2026":"All shards")}),M!==null&&(0,t.jsx)(He,{"data-testid":"mt-aggregate-clear",onClick:P,size:"sm",type:"button",variant:"ghost",children:l("Hide")}),(0,t.jsx)("a",{className:"text-sm text-primary underline-offset-4 hover:underline","data-testid":"mt-cf-link",href:mt,rel:"noreferrer",target:"_blank",children:l("Open in Cloudflare")})]}),K!==null&&(0,t.jsx)("p",{className:"text-sm text-destructive","data-testid":"mt-error",role:"alert",children:K}),_!==void 0&&(0,t.jsxs)("div",{className:"flex gap-2 border-b","data-testid":"mt-tabs",children:[(0,t.jsx)("button",{className:`pb-2 text-sm font-medium transition-colors ${I==="overview"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-overview",onClick:ne,type:"button",children:l("Overview")}),(0,t.jsxs)("button",{className:`pb-2 text-sm font-medium transition-colors ${I==="query-insights"?"border-b-2 border-primary text-foreground":"text-muted-foreground hover:text-foreground"}`,"data-testid":"mt-tab-query-insights",onClick:A,type:"button",children:[l("Query insights"),_.length>0&&(0,t.jsx)("span",{className:"ml-1.5 rounded-full bg-primary/10 px-1.5 py-0.5 text-xs text-primary",children:_.length})]})]}),I==="query-insights"&&_!==void 0&&(0,t.jsx)(jt,{queryStats:_}),I==="overview"&&o!==null&&(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4","data-testid":"mt-stats",children:[(0,t.jsx)(ae,{chart:v.length>=2?(0,t.jsx)(Ve,{ariaLabel:l("Requests per interval over time"),className:"h-7 w-24 text-foreground",series:v,testId:"mt-sparkline"}):void 0,footer:v.length>=2?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"font-semibold text-foreground",children:`+${z.toLocaleString()}`})," ",l("last interval")]}):(0,t.jsx)("span",{"data-testid":"mt-sparkline-empty",children:l("collecting samples\u2026")}),label:l("Requests"),testId:"mt-requests",value:o.requests}),(0,t.jsx)(ae,{footer:l("{rate} error rate",{rate:D}),label:l("Errors"),testId:"mt-errors",value:(0,t.jsxs)(t.Fragment,{children:[o.errors," (",D,")"]})}),(0,t.jsx)(ae,{footer:k.p90>0?`P90 ${R(k.p90)}`:void 0,label:l("P95 latency"),testId:"mt-p95",value:k.p95>0?R(k.p95):"\u2014"}),(0,t.jsx)(ae,{footer:o.cache===null?void 0:`${o.cache.entries.toLocaleString()} ${l("cache entries")}`,label:l("Database size"),testId:"mt-db-size",value:Le(o.databaseSize)}),(0,t.jsx)(ae,{label:l("Shard"),testId:"mt-shard",value:o.shard}),(0,t.jsx)(ae,{label:l("Uptime"),testId:"mt-uptime",value:Et(o.uptimeMs)}),(0,t.jsx)(ae,{label:l("Cache hit rate"),testId:"mt-cache",value:o.cache===null?l("no cache configured"):l("{rate} ({count} entries)",{count:o.cache.entries,rate:Jt(o.cache.hits,o.cache.misses)})})]}),I==="overview"&&o===null&&null,I==="overview"&&(0,t.jsx)(Dt,{onOpenTrace:re,shardKey:N}),I==="overview"&&f!==null&&M!==null&&(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mt-aggregate-view",children:[(0,t.jsxs)("dl",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3","data-testid":"mt-aggregate-stats",children:[(0,t.jsx)(ae,{label:l("Shards"),testId:"mt-agg-shards",value:f.failed>0?l("{reachable} reachable, {failed} unreachable",{failed:f.failed,reachable:f.reachable}):l("{reachable} reachable",{reachable:f.reachable})}),(0,t.jsx)(ae,{label:l("Total requests"),testId:"mt-agg-requests",value:f.totalRequests}),(0,t.jsx)(ae,{label:l("Total errors"),testId:"mt-agg-errors",value:f.totalErrors}),(0,t.jsx)(ae,{label:l("Total database size"),testId:"mt-agg-db-size",value:Le(f.totalDatabaseSize)}),(0,t.jsx)(ae,{label:l("Combined cache hit rate"),testId:"mt-agg-cache",value:f.hitRate===null?l("no cache configured"):`${(f.hitRate*100).toFixed(1)}%`})]}),(0,t.jsx)(de,{className:"overflow-hidden py-0",children:(0,t.jsx)(he,{className:"px-0",children:(0,t.jsxs)(Ue,{"data-testid":"mt-agg-table",children:[(0,t.jsx)(Be,{children:(0,t.jsxs)(Re,{children:[(0,t.jsx)(te,{children:l("shard")}),(0,t.jsx)(te,{children:l("requests")}),(0,t.jsx)(te,{children:l("errors")}),(0,t.jsx)(te,{children:l("db size")})]})}),(0,t.jsx)(Ge,{children:M.map(n=>(0,t.jsxs)(Re,{"data-testid":`mt-agg-row-${n.shard}`,children:[(0,t.jsx)(L,{children:n.shard}),n.metrics===null?(0,t.jsx)(L,{className:"text-destructive",colSpan:3,children:n.error??l("unreachable")}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(L,{className:"tabular-nums",children:n.metrics.requests}),(0,t.jsx)(L,{className:"tabular-nums",children:n.metrics.errors}),(0,t.jsx)(L,{className:"tabular-nums",children:Le(n.metrics.databaseSize)})]})]},n.shard))})]})})})]})]})},"hr");export{dr as MetricsPanel};
@@ -0,0 +1,2 @@
1
+ import{a as B}from"./chunk-SNDYNCAA.js";import"./chunk-HA34GYEX.js";import{a as k}from"./chunk-CZEUVNCQ.js";import{a as D}from"./chunk-SA6MBPBL.js";import"./chunk-YNBJ6ICE.js";import{a as P}from"./chunk-Q34MSC2F.js";import"./chunk-4AYEV5UN.js";import{b as q}from"./chunk-SKJZDOHG.js";import{R as I}from"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as H}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as f}from"./chunk-GXZAXNZI.js";import{f as A}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as O}from"./chunk-6OKDCV7J.js";import{d as F,f as v,g as N,h as w,m as y,o as _,q as C}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as s,e as $,f as se,h as de,j as E}from"./chunk-UHHTEBC3.js";var l=$(se(),1);var e=$(de(),1);function le({className:r,orientation:h="horizontal",...a}){return(0,e.jsx)(k,{"data-slot":"separator",orientation:h,className:E("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",r),...a})}s(le,"de");var oe=v(f.clearCapturedMail),ne=v(f.sendTestMail),ce=/https?:\/\/[^\s"'<>)]+/i,K=s(r=>r===void 0?void 0:ce.exec(r)?.[0],"S"),me=s(r=>{if(r!==void 0)return K(r.html)??K(r.text)},"ce"),ue=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; font-src data:">`,he=s(r=>`${ue}${r}`,"ue"),x=s(r=>r===void 0?"":Array.isArray(r)?r.join(", "):r,"f"),Le=s(({limit:r=100})=>{let h=A(),a=F(),{data:j,error:T,errorSource:R,isLoading:U,refetch:g}=q(f.getCapturedMail,{limit:r}),[z,p]=(0,l.useState)(null),[M,S]=(0,l.useState)(null),[m,W]=(0,l.useState)("html"),[b,G]=(0,l.useState)(""),o=(0,l.useMemo)(()=>j?.entries??[],[j]),L=T??z,J=T===null?z:R,Q=s(async()=>{p(null);try{await h.query(oe,{},N("")),S(null),g()}catch(t){p(w(t))}},"I"),V=s(async()=>{p(null);try{await h.query(ne,{},N("")),g()}catch(t){p(w(t))}},"_");D(()=>{g()},!0);let X=s(()=>{y(Q())},"q"),Y=s(()=>{y(V())},"P"),Z=s(t=>{G(t.currentTarget.value)},"D"),ee=s(t=>{let{id:d}=t.currentTarget.dataset;d!==void 0&&S(d)},"R"),te=s(t=>{let d=t.currentTarget.dataset.tab;(d==="headers"||d==="html"||d==="text")&&W(d)},"B"),ae=s(t=>a(t==="html"?"HTML":t==="text"?"Plain text":"Headers"),"K"),u=(0,l.useMemo)(()=>{let t=b.trim().toLowerCase();return t===""?o:o.filter(d=>`${d.subject} ${x(d.to)}`.toLowerCase().includes(t))},[o,b]),i=(0,l.useMemo)(()=>{if(u.length!==0)return u.find(t=>t.id===M)??u[0]},[u,M]),n=me(i),re=s(()=>{n!==void 0&&_(n)},"U"),ie=s(()=>{n!==void 0&&"window"in globalThis&&globalThis.window.open(n,"_blank","noopener")},"W");return(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"mail-panel",children:[(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)(c,{"data-testid":"mail-send-test",onClick:Y,size:"sm",type:"button",variant:"outline",children:a("Send test")}),(0,e.jsx)(c,{"data-testid":"mail-clear",disabled:o.length===0,onClick:X,size:"sm",type:"button",variant:"outline",children:a("Clear inbox")}),o.length>0&&(0,e.jsx)(H,{className:"ml-auto","data-testid":"mail-count",variant:"secondary",children:a("{count} messages",{count:o.length})})]}),L!==null&&(0,e.jsx)(P,{error:J,testId:"mail-error"}),L===null&&!U&&o.length===0&&(0,e.jsx)(O,{description:a("Email your app sends in dev is captured here \u2014 nothing is delivered."),icon:(0,e.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,e.jsx)("path",{d:"M4 5h16v14H4z"}),(0,e.jsx)("path",{d:"m4 6 8 6 8-6"})]}),testId:"mail-empty",title:a("No captured email.")}),o.length>0&&(0,e.jsxs)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-[minmax(0,22rem)_1fr]","data-testid":"mail-reader",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,e.jsx)(I,{"aria-label":a("Search messages"),"data-testid":"mail-search",onChange:Z,placeholder:a("Filter messages"),type:"search",value:b}),(0,e.jsx)(B,{className:"max-h-[32rem] rounded-xl border border-border bg-card shadow-xs","data-testid":"mail-list",children:(0,e.jsx)("ul",{className:"divide-y",children:u.map(t=>{let d=t.id===i?.id;return(0,e.jsx)("li",{children:(0,e.jsxs)("button",{className:`flex w-full flex-col items-start gap-0.5 px-3 py-2 text-left text-sm hover:bg-muted/60 ${d?"bg-muted":""}`,"data-active":d,"data-id":t.id,"data-testid":"mail-list-item",onClick:ee,type:"button",children:[(0,e.jsx)("span",{className:"w-full truncate font-medium",children:t.subject||a("(no subject)")}),(0,e.jsx)("span",{className:"w-full truncate text-xs text-muted-foreground",children:x(t.to)}),(0,e.jsx)("span",{className:"text-xs text-muted-foreground tabular-nums",children:C(t.capturedAt,"\u2014")})]})},t.id)})})})]}),i!==void 0&&(0,e.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"mail-detail",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)("h2",{className:"truncate text-base font-semibold","data-testid":"mail-subject",children:i.subject||a("(no subject)")}),(0,e.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-xs text-muted-foreground",children:[(0,e.jsx)("dt",{children:a("From")}),(0,e.jsx)("dd",{className:"truncate font-mono",children:i.from??"\u2014"}),(0,e.jsx)("dt",{children:a("To")}),(0,e.jsx)("dd",{className:"truncate font-mono",children:x(i.to)}),i.cc!==void 0&&i.cc.length>0&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("dt",{children:a("Cc")}),(0,e.jsx)("dd",{className:"truncate font-mono",children:x(i.cc)})]}),(0,e.jsx)("dt",{children:a("Sent")}),(0,e.jsx)("dd",{className:"tabular-nums",children:C(i.capturedAt,"\u2014")})]})]}),(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"mail-actions",children:[(0,e.jsx)(c,{"data-testid":"mail-copy-link",disabled:n===void 0,onClick:re,size:"sm",type:"button",variant:"outline",children:a("Copy link")}),(0,e.jsx)(c,{"data-testid":"mail-open-link",disabled:n===void 0,onClick:ie,size:"sm",type:"button",variant:"outline",children:a("Open in new tab")})]}),(0,e.jsx)(le,{}),(0,e.jsx)("div",{className:"flex items-center gap-1","data-testid":"mail-tabs",role:"tablist",children:["html","text","headers"].map(t=>(0,e.jsx)(c,{"aria-selected":m===t,"data-tab":t,"data-testid":`mail-tab-${t}`,onClick:te,role:"tab",size:"sm",type:"button",variant:m===t?"secondary":"ghost",children:ae(t)},t))}),(0,e.jsxs)("div",{className:"min-h-[12rem]",children:[m==="html"&&(i.html===void 0?(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:a("No HTML body.")}):(0,e.jsx)("iframe",{className:"h-[24rem] w-full rounded-md border bg-white","data-testid":"mail-preview-html",sandbox:"",srcDoc:he(i.html),title:a("Email preview")})),m==="text"&&(i.text===void 0?(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:a("No text body.")}):(0,e.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-text",children:i.text})),m==="headers"&&(i.headers===void 0||Object.keys(i.headers).length===0?(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:a("No headers.")}):(0,e.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-headers",children:Object.entries(i.headers).map(([t,d])=>`${t}: ${d}`).join(`
2
+ `)}))]})]})]})]})},"ze");export{Le as MailPanel};
@@ -0,0 +1 @@
1
+ import{a as U}from"./chunk-Q34MSC2F.js";import"./chunk-4AYEV5UN.js";import{b as K}from"./chunk-SKJZDOHG.js";import{a as q,b as G,c as J,d as M,e as a,f as o}from"./chunk-Q5WXTZWX.js";import{a as W,e as B}from"./chunk-JKPK25JO.js";import{R as V}from"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c as F}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as C}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as O}from"./chunk-GXZAXNZI.js";import"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as D}from"./chunk-6OKDCV7J.js";import{d as T,q as H}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as n,e as j,f as re,g as se,h as ie}from"./chunk-UHHTEBC3.js";var X=j(se(),1),P=j(re(),1);var t=j(ie(),1);var ne=n(e=>e==="ok"?"success":e==="failed"?"destructive":e==="expired"?"warning":"secondary","te"),Q=n(e=>e.endpoint??e.id,"P"),xe=n(()=>{let e=(0,X.c)(38),r=T(),[i,Y]=(0,P.useState)("all"),[l,Z]=(0,P.useState)(""),g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g={},e[0]=g):g=e[0];let{data:_,error:c,errorSource:v,isLoading:I,refetch:x}=K(O.listPushSubscriptions,g),N;if(e[1]!==_?.subscriptions||e[2]!==c||e[3]!==v||e[4]!==I||e[5]!==i||e[6]!==x||e[7]!==l||e[8]!==r){let L=_?.subscriptions??[],z=l.trim().toLowerCase(),A=L.filter(s=>i!=="all"&&s.kind!==i?!1:z===""?!0:`${Q(s)} ${s.userId??""}`.toLowerCase().includes(z)),b;e[10]===Symbol.for("react.memo_cache_sentinel")?(b=n(s=>{Z(s.target.value)},"b"),e[10]=b):b=e[10];let ee=b,w;e[11]!==x?(w=n(()=>{x()},"w"),e[11]=x,e[12]=w):w=e[12];let E=w,k;e[13]===Symbol.for("react.memo_cache_sentinel")?(k=["all","web-push","fcm"],e[13]=k):k=e[13];let te=k,d;e[14]!==i||e[15]!==r?(d=(0,t.jsx)("div",{className:"flex items-center gap-1","data-testid":"nt-kind-filter",role:"tablist",children:te.map(s=>(0,t.jsx)(F,{"aria-selected":i===s,"data-testid":`nt-kind-${s}`,onClick:n(()=>{Y(s)},"onClick"),role:"tab",size:"sm",type:"button",variant:i===s?"secondary":"ghost",children:s==="all"?r("All"):s},s))}),e[14]=i,e[15]=r,e[16]=d):d=e[16];let m;e[17]!==r?(m=r("Filter devices"),e[17]=r,e[18]=m):m=e[18];let h;e[19]!==r?(h=r("filter endpoint, user"),e[19]=r,e[20]=h):h=e[20];let u;e[21]!==l||e[22]!==m||e[23]!==h?(u=(0,t.jsx)(V,{"aria-label":m,className:"h-8 w-56","data-testid":"nt-search",onChange:ee,placeholder:h,value:l}),e[21]=l,e[22]=m,e[23]=h,e[24]=u):u=e[24];let f;e[25]!==r?(f=r("Refresh"),e[25]=r,e[26]=f):f=e[26];let p;e[27]!==E||e[28]!==f?(p=(0,t.jsx)(F,{className:"ml-auto","data-testid":"nt-refresh",onClick:E,size:"sm",type:"button",variant:"outline",children:f}),e[27]=E,e[28]=f,e[29]=p):p=e[29];let $=L.length>0&&(0,t.jsx)(C,{"data-testid":"nt-count",variant:"secondary",children:r("{count} devices",{count:L.length})}),y;e[30]!==p||e[31]!==$||e[32]!==d||e[33]!==u?(y=(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[d,u,p,$]}),e[30]=p,e[31]=$,e[32]=d,e[33]=u,e[34]=y):y=e[34];let S;e[35]!==c||e[36]!==v?(S=c!==null&&(0,t.jsx)(U,{error:v,testId:"nt-error"}),e[35]=c,e[36]=v,e[37]=S):S=e[37],N=(0,t.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-notifications",children:[y,S,c===null&&!I&&A.length===0&&(0,t.jsx)(D,{description:r("Registered Web Push / FCM devices appear here. Configure lunora/notify.ts with defineNotify({ store }) and register a device with ctx.push.register(...)."),icon:(0,t.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,t.jsx)("path",{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"})}),testId:"nt-empty",title:r("No registered devices.")}),A.length>0&&(0,t.jsx)(W,{className:"overflow-hidden py-0",children:(0,t.jsx)(B,{className:"max-h-[30rem] overflow-auto px-0",children:(0,t.jsxs)(q,{"data-testid":"nt-table",children:[(0,t.jsx)(G,{children:(0,t.jsxs)(M,{children:[(0,t.jsx)(a,{children:r("kind")}),(0,t.jsx)(a,{children:r("endpoint")}),(0,t.jsx)(a,{children:r("user")}),(0,t.jsx)(a,{children:r("last seen")}),(0,t.jsx)(a,{children:r("status")}),(0,t.jsx)(a,{children:r("error")})]})}),(0,t.jsx)(J,{children:A.map(s=>{let R=Q(s);return(0,t.jsxs)(M,{"data-testid":"nt-row",children:[(0,t.jsx)(o,{children:(0,t.jsx)(C,{variant:"outline",children:s.kind})}),(0,t.jsx)(o,{className:"max-w-[28ch] truncate font-mono text-xs",title:R,children:R}),(0,t.jsx)(o,{className:"max-w-[16ch] truncate font-mono text-xs",children:s.userId??(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})}),(0,t.jsx)(o,{className:"text-muted-foreground tabular-nums",children:H(s.lastSeenAt,"\u2014")}),(0,t.jsx)(o,{children:(0,t.jsx)(C,{"data-testid":`nt-status-${s.id}`,variant:ne(s.lastStatus),children:s.lastStatus??r("n/a")})}),(0,t.jsx)(o,{className:"max-w-[28ch] truncate font-mono text-xs text-muted-foreground",title:s.lastError??void 0,children:s.lastError??(0,t.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})})]},s.id)})})]})})})]}),e[1]=_?.subscriptions,e[2]=c,e[3]=v,e[4]=I,e[5]=i,e[6]=x,e[7]=l,e[8]=r,e[9]=N}else N=e[9];return N},"ve");export{xe as NotificationsPanel};
@@ -0,0 +1 @@
1
+ import{a as B}from"./chunk-Q34MSC2F.js";import"./chunk-4AYEV5UN.js";import{b as q}from"./chunk-SKJZDOHG.js";import{a as M,b as U,c as $,d as P,e as d,f as c}from"./chunk-Q5WXTZWX.js";import{a as C,e as E}from"./chunk-JKPK25JO.js";import{b as T}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import{a as z}from"./chunk-GXZAXNZI.js";import"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as G}from"./chunk-6OKDCV7J.js";import{d as _}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as R,e as O,g as L,h as V}from"./chunk-UHHTEBC3.js";var J=O(L(),1);var r=O(V(),1);var H=["read","insert","update","delete"],W=R((e,s)=>({delete:e("Delete"),insert:e("Insert"),read:e("Read"),update:e("Update")})[s],"q"),Q=R(e=>{let s=new Map;for(let l of e){let t=s.get(l.table)??{operations:new Set,procedures:[],table:l.table};t.operations.add(l.on),t.procedures.includes(l.procedure)||t.procedures.push(l.procedure),s.set(l.table,t)}return[...s.values()].toSorted((l,t)=>l.table.localeCompare(t.table))},"B"),ie=R(()=>{let e=(0,J.c)(49),s=_(),l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l={},e[0]=l):l=e[0];let{data:t,error:S,errorSource:k}=q(z.rlsPolicies,l),p=t!==void 0,m,n,h,a,u,f,x,b,o;if(e[1]!==t||e[2]!==S||e[3]!==k||e[4]!==p||e[5]!==s){let F=Q(Array.isArray(t?.policies)?t.policies:[]),D;e[15]!==t?(D=Array.isArray(t?.roles)?t.roles:[],e[15]=t,e[16]=D):D=e[16],n=D,x="flex flex-col gap-6",b="lunora-rls-panel",e[17]!==S||e[18]!==k?(o=S!==null&&(0,r.jsx)(B,{error:k,testId:"rls-error"}),e[17]=S,e[18]=k,e[19]=o):o=e[19],f="flex flex-col gap-2",m=C,h="overflow-hidden py-0";let I;e[20]!==s?(I=s("Policies"),e[20]=s,e[21]=I):I=e[21],e[22]!==I?(a=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:I})}),e[22]=I,e[23]=a):a=e[23],u=p&&F.length===0?(0,r.jsx)(G,{description:s("No `definePolicy` is wired through `.use(rls(...))` in this deployment. Add one to guard a table's rows."),testId:"rls-policies-empty",title:s("No policies defined")}):(0,r.jsx)(E,{className:"px-0",children:(0,r.jsxs)(M,{"data-testid":"rls-policies-table",children:[(0,r.jsx)(U,{children:(0,r.jsxs)(P,{children:[(0,r.jsx)(d,{children:s("Table")}),H.map(i=>(0,r.jsx)(d,{children:W(s,i)},i)),(0,r.jsx)(d,{children:s("Guarded by")})]})}),(0,r.jsx)($,{children:F.map(i=>(0,r.jsxs)(P,{"data-testid":`rls-table-${i.table}`,children:[(0,r.jsx)(c,{className:"font-mono text-xs",children:i.table}),H.map(K=>(0,r.jsx)(c,{children:i.operations.has(K)?(0,r.jsx)(T,{variant:"secondary",children:s("Guarded")}):(0,r.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"\u2014"})},K)),(0,r.jsx)(c,{className:"font-mono text-xs text-muted-foreground",children:i.procedures.join(", ")})]},i.table))})]})}),e[1]=t,e[2]=S,e[3]=k,e[4]=p,e[5]=s,e[6]=m,e[7]=n,e[8]=h,e[9]=a,e[10]=u,e[11]=f,e[12]=x,e[13]=b,e[14]=o}else m=e[6],n=e[7],h=e[8],a=e[9],u=e[10],f=e[11],x=e[12],b=e[13],o=e[14];let N;e[24]!==m||e[25]!==h||e[26]!==a||e[27]!==u?(N=(0,r.jsxs)(m,{className:h,children:[a,u]}),e[24]=m,e[25]=h,e[26]=a,e[27]=u,e[28]=N):N=e[28];let g;e[29]!==f||e[30]!==N?(g=(0,r.jsx)("section",{className:f,children:N}),e[29]=f,e[30]=N,e[31]=g):g=e[31];let y;e[32]!==s?(y=s("Roles"),e[32]=s,e[33]=y):y=e[33];let w;e[34]!==y?(w=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:y})}),e[34]=y,e[35]=w):w=e[35];let v;e[36]!==p||e[37]!==n||e[38]!==s?(v=p&&n.length===0?(0,r.jsx)(G,{description:s("No `defineRole` is registered via `rls(policies, { roles })`. Roles back `ctx.auth.can(...)` permission checks."),testId:"rls-roles-empty",title:s("No roles defined")}):(0,r.jsx)(E,{className:"px-0",children:(0,r.jsxs)(M,{"data-testid":"rls-roles-table",children:[(0,r.jsx)(U,{children:(0,r.jsxs)(P,{children:[(0,r.jsx)(d,{children:s("Role")}),(0,r.jsx)(d,{children:s("Description")}),(0,r.jsx)(d,{children:s("Permissions")})]})}),(0,r.jsx)($,{children:n.map(Y)})]})}),e[36]=p,e[37]=n,e[38]=s,e[39]=v):v=e[39];let A;e[40]!==w||e[41]!==v?(A=(0,r.jsx)("section",{className:"flex flex-col gap-2",children:(0,r.jsxs)(C,{className:"overflow-hidden py-0",children:[w,v]})}),e[40]=w,e[41]=v,e[42]=A):A=e[42];let j;return e[43]!==A||e[44]!==x||e[45]!==b||e[46]!==o||e[47]!==g?(j=(0,r.jsxs)("div",{className:x,"data-testid":b,children:[o,g,A]}),e[43]=A,e[44]=x,e[45]=b,e[46]=o,e[47]=g,e[48]=j):j=e[48],j},"ae");function X(e){return(0,r.jsx)(T,{variant:"outline",children:e},e)}R(X,"H");function Y(e){return(0,r.jsxs)(P,{"data-testid":`rls-role-${e.name}`,children:[(0,r.jsx)(c,{className:"font-mono text-xs",children:e.name}),(0,r.jsx)(c,{className:"text-muted-foreground",children:e.description??""}),(0,r.jsx)(c,{children:e.permissions.length===0?(0,r.jsx)("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"\u2014"}):(0,r.jsx)("span",{className:"flex flex-wrap gap-1",children:e.permissions.map(X)})})]},e.name)}R(Y,"L");export{ie as default};
@@ -0,0 +1 @@
1
+ import{a as o,e as m,f as n,g as u,h as p,j as c}from"./chunk-UHHTEBC3.js";var l=m(u(),1),f=m(n(),1);var i=m(p(),1);function g({className:d,size:a="default",...t}){return(0,i.jsx)("div",{"data-slot":"card","data-size":a,className:c("group/card flex flex-col gap-4 overflow-hidden rounded-xl border border-border bg-card py-4 text-xs/relaxed text-card-foreground shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-2 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-md *:[img:last-child]:rounded-md",d),...t})}o(g,"p");function h(d){let a=(0,l.c)(8),t,e;a[0]!==d?({className:t,...e}=d,a[0]=d,a[1]=t,a[2]=e):(t=a[1],e=a[2]);let r;a[3]!==t?(r=c("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-md px-4 group-data-[size=sm]/card:px-3 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3",t),a[3]=t,a[4]=r):r=a[4];let s;return a[5]!==e||a[6]!==r?(s=(0,i.jsx)("div",{"data-slot":"card-header",className:r,...e}),a[5]=e,a[6]=r,a[7]=s):s=a[7],s}o(h,"f");function b(d){let a=(0,l.c)(8),t,e;a[0]!==d?({className:t,...e}=d,a[0]=d,a[1]=t,a[2]=e):(t=a[1],e=a[2]);let r;a[3]!==t?(r=c("font-heading text-sm font-medium group-data-[size=sm]/card:text-sm",t),a[3]=t,a[4]=r):r=a[4];let s;return a[5]!==e||a[6]!==r?(s=(0,i.jsx)("div",{"data-slot":"card-title",className:r,...e}),a[5]=e,a[6]=r,a[7]=s):s=a[7],s}o(b,"x");function N(d){let a=(0,l.c)(8),t,e;a[0]!==d?({className:t,...e}=d,a[0]=d,a[1]=t,a[2]=e):(t=a[1],e=a[2]);let r;a[3]!==t?(r=c("text-xs/relaxed text-muted-foreground",t),a[3]=t,a[4]=r):r=a[4];let s;return a[5]!==e||a[6]!==r?(s=(0,i.jsx)("div",{"data-slot":"card-description",className:r,...e}),a[5]=e,a[6]=r,a[7]=s):s=a[7],s}o(N,"g");function z(d){let a=(0,l.c)(8),t,e;a[0]!==d?({className:t,...e}=d,a[0]=d,a[1]=t,a[2]=e):(t=a[1],e=a[2]);let r;a[3]!==t?(r=c("px-4 group-data-[size=sm]/card:px-3",t),a[3]=t,a[4]=r):r=a[4];let s;return a[5]!==e||a[6]!==r?(s=(0,i.jsx)("div",{"data-slot":"card-content",className:r,...e}),a[5]=e,a[6]=r,a[7]=s):s=a[7],s}o(z,"h");export{g as a,h as b,b as c,N as d,z as e};
@@ -0,0 +1 @@
1
+ import{a as we,b as Ke,c as je}from"./chunk-C4O5UR4Y.js";import{i as Ge,k as He}from"./chunk-KOC5KV3E.js";import{D as Se,I as Me,K as Ve,L as Le,M as De,N as Oe,O as Te,P as Fe,Q as _e,a as $,b as Ie,c as Ne,e as F,f as Be}from"./chunk-7Z5QEFR4.js";import{b as Ae}from"./chunk-UY2Y5CXB.js";import{a as T,e as de}from"./chunk-ZFWEPGWG.js";import{a as ye,c as ve,d as Re,e as Ee,g as se,i as Pe,j as W}from"./chunk-4FNHHFWR.js";import{a as i,d as vt,e as x,f as O,g as Rt,h as ke,j as Ce}from"./chunk-UHHTEBC3.js";var Ye=x(Rt(),1);var w={};vt(w,{Indicator:()=>Xe,Root:()=>Je});var l=x(O(),1);function Ue(t){if(!t)return null;for(let e of t.elements){let n=e.tagName;if(n==="BUTTON"||n==="INPUT"){let o=e;if(o.type==="submit")return o}}return null}i(Ue,"getDefaultFormSubmitter");var qe=x(O(),1);var ce=(function(t){return t.checked="data-checked",t.unchecked="data-unchecked",t.indeterminate="data-indeterminate",t.disabled="data-disabled",t.readonly="data-readonly",t.required="data-required",t.valid="data-valid",t.invalid="data-invalid",t.touched="data-touched",t.dirty="data-dirty",t.filled="data-filled",t.focused="data-focused",t})({});function z(t){return qe.useMemo(()=>({checked(e){return t.indeterminate?{}:e?{[ce.checked]:""}:{[ce.unchecked]:""}},...$}),[t.indeterminate])}i(z,"useStateAttributesMapping");var We=x(O(),1);function $e(t,e,n,o=!0,a){let[f,p]=We.useState(),S=F(a?`${a}-label`:void 0),b=t??e??f;return T(()=>{let g=t||e||!o?void 0:Et(n.current,S);f!==g&&p(g)}),b}i($e,"useAriaLabelledBy");function Et(t,e){let n=Pt(t);if(n)return!n.id&&e&&(n.id=e),n.id||void 0}i(Et,"getAriaLabelledBy");function Pt(t){if(!t)return;let e=t.parentElement;if(e&&e.tagName==="LABEL")return e;let n=t.id;if(n){let a=t.nextElementSibling;if(a&&a.htmlFor===n)return a}let o=t.labels;return o&&o[0]}i(Pt,"findAssociatedLabel");var J=x(O(),1);var ue=J.createContext(void 0);function ze(){let t=J.useContext(ue);if(t===void 0)throw new Error(ve(14));return t}i(ze,"useCheckboxRootContext");var _=x(ke(),1);var It="data-parent",Je=l.forwardRef(i(function(e,n){let{checked:o,className:a,defaultChecked:f=!1,"aria-labelledby":p,disabled:S=!1,form:b,id:g,indeterminate:M=!1,inputRef:Q,name:K,onCheckedChange:A,parent:m=!1,readOnly:R=!1,render:le,required:E=!1,uncheckedValue:j,value:G,nativeButton:H=!1,style:Nt,...Qe}=e,{clearErrors:Ze}=Ne(),{disabled:et,name:tt,setDirty:rt,setFilled:Z,setFocused:fe,setTouched:nt,state:pe,validationMode:ot,validityData:it,validation:at}=Ie(),st=Se(),{labelId:dt,controlId:ct,registerControlId:P,getDescriptionProps:me}=Be(),s=_e(),V=s?.parent,L=V&&s.allValues,c=et||st.disabled||s?.disabled||S,I=tt??K,d=G??I,he=F(),ut=F(),k=ct;L?k=m?ut:`${V.id}-${d}`:g&&(k=g);let ee={};L&&(m?ee=s.parent.getParentProps():d&&(ee=s.parent.getChildProps(d)));let{checked:be=o,indeterminate:lt=M,onCheckedChange:ft,...pt}=ee,N=s?.value,ge=s?.setValue,xe=s?.defaultValue,te=l.useRef(null),U=Re(()=>Symbol("checkbox-control")),re=l.useRef(!1),{getButtonProps:mt,buttonRef:ht}=Ae({disabled:c,native:H}),B=s?.validation??at,[u,bt]=De({controlled:d&&N&&!m?N.includes(d):be,default:d&&xe&&!m?xe.includes(d):f,name:"Checkbox",state:"checked"}),ne=L?!!be:u,D=L&&lt||M;T(()=>{P!==se&&(re.current=!0,P(U.current,k))},[k,P,U]),l.useEffect(()=>{let r=U.current;return()=>{!re.current||P===se||(re.current=!1,P(r,void 0))}},[P,U]),Oe(te,he,u,void 0,!s&&!c,K);let C=l.useRef(null),gt=Ee(Q,C,B.inputRef,B.registerInput),xt=$e(p,dt,C,!H,k??void 0);T(()=>{C.current&&(C.current.indeterminate=D,u&&Z(!0))},[u,D,Z]),je(u,()=>{s||(Ze(I),Z(u),rt(u!==it.initialValue),B.change(u))});let kt=ye({checked:u,disabled:c,form:b,name:m?void 0:I,id:H?void 0:k??void 0,required:E,ref:gt,style:I?Ke:we,tabIndex:-1,type:"checkbox","aria-hidden":!0,onChange(r){if(r.nativeEvent.defaultPrevented)return;if(R){r.preventDefault();return}let h=r.currentTarget.checked,y=Fe(Te.none,r.nativeEvent);if(A?.(h,y),!y.isCanceled&&(ft?.(h,y),!y.isCanceled&&(bt(h),d&&N&&ge&&!m&&!L))){let v=h?[...N,d]:N.filter(q=>q!==d);ge(v,y)}},onFocus(){te.current?.focus()}},G!==void 0?{value:(s?u&&G:G)||""}:Pe,me,r=>B.getValidationProps(c,r));l.useEffect(()=>{if(!V||!d)return;let r=V.disabledStatesRef.current;return r.set(d,c),()=>{r.delete(d)}},[V,c,d]);let oe=l.useMemo(()=>({...pe,checked:ne,disabled:c,readOnly:R,required:E,indeterminate:D}),[pe,ne,c,R,E,D]),Ct=z(oe),yt=W("span",e,{state:oe,ref:[ht,te,n,s?.registerControlRef],props:[{id:H?k??void 0:he,role:"checkbox","aria-checked":D?"mixed":ne,"aria-readonly":R||void 0,"aria-required":E||void 0,"aria-labelledby":xt,[It]:m?"":void 0,onFocus(){c||fe(!0)},onBlur(){let r=C.current;r&&(nt(!0),fe(!1),ot==="onBlur"&&B.commit(s?N:r.checked))},onKeyDown(r){if(r.key!=="Enter"||(r.preventBaseUIHandler(),r.defaultPrevented))return;let h=C.current?.form??null,y=r.currentTarget,v=r.nativeEvent,q=r.preventDefault,ie=v.preventDefault,ae=!1;r.preventDefault=()=>{ae=!0,q.call(r)},v.preventDefault=()=>{ae=!0,ie.call(v)},ie.call(v),de(y).queueMicrotask(()=>{r.preventDefault=q,v.preventDefault=ie,ae||Ue(h)?.click()})},onClick(r){if(R||c)return;r.preventDefault();let h=C.current;h&&h.dispatchEvent(new(de(h)).PointerEvent("click",{bubbles:!0,shiftKey:r.shiftKey,ctrlKey:r.ctrlKey,altKey:r.altKey,metaKey:r.metaKey}))}},Qe,pt,mt,me,r=>B.getValidationProps(c,r)],stateAttributesMapping:Ct});return(0,_.jsxs)(ue.Provider,{value:oe,children:[yt,!u&&!s&&I&&!m&&j!==void 0&&(0,_.jsx)("input",{type:"hidden",form:b,name:I,value:j,disabled:c}),(0,_.jsx)("input",{...kt,suppressHydrationWarning:!0})]})},"CheckboxRoot"));var X=x(O(),1);var Xe=X.forwardRef(i(function(e,n){let{render:o,className:a,style:f,keepMounted:p=!1,...S}=e,b=ze(),g=b.checked||b.indeterminate,{mounted:M,transitionStatus:Q,setMounted:K}=Le(g),A=X.useRef(null),m={...b,transitionStatus:Q};Ve({open:g,ref:A,onComplete(){g||K(!1)}});let le={...z(b),...Me,...$},E=p||M,j=W("span",e,{ref:[n,A],state:m,stateAttributesMapping:le,props:S});return E?j:null},"CheckboxIndicator"));var Y=x(ke(),1);function Vr(t){let e=(0,Ye.c)(9),n,o;e[0]!==t?({className:n,...o}=t,e[0]=t,e[1]=n,e[2]=o):(n=e[1],o=e[2]);let a;e[3]!==n?(a=Ce("peer relative flex size-4 shrink-0 items-center justify-center rounded-md border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",n),e[3]=n,e[4]=a):a=e[4];let f;e[5]===Symbol.for("react.memo_cache_sentinel")?(f=(0,Y.jsx)(w.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none [&>svg]:size-3.5",children:(0,Y.jsx)(He,{icon:Ge,strokeWidth:2})}),e[5]=f):f=e[5];let p;return e[6]!==o||e[7]!==a?(p=(0,Y.jsx)(w.Root,{"data-slot":"checkbox",className:a,...o,children:f}),e[6]=o,e[7]=a,e[8]=p):p=e[8],p}i(Vr,"h");export{Vr as a};
@@ -0,0 +1 @@
1
+ import{a as be,b as fe,c as xe,d as Ne,e as we}from"./chunk-UNDFOYRI.js";import"./chunk-HA34GYEX.js";import"./chunk-PR2SE2MD.js";import"./chunk-CZEUVNCQ.js";import{a as ue}from"./chunk-JLFCXBNQ.js";import{g as me,h as ve,i as pe,j as ye}from"./chunk-RUP3M2GF.js";import"./chunk-ICKBVXPP.js";import"./chunk-NCCUM26H.js";import"./chunk-PWDMXMRD.js";import"./chunk-YNBJ6ICE.js";import"./chunk-C4O5UR4Y.js";import"./chunk-TYTJDFX2.js";import"./chunk-KYCAYNXM.js";import"./chunk-6UYILUSX.js";import"./chunk-KSRXMTBV.js";import"./chunk-SKJZDOHG.js";import{a as se,b as ie,c as oe,d as Q,e as X,f as Y}from"./chunk-Q5WXTZWX.js";import{a as re,e as ne}from"./chunk-JKPK25JO.js";import{a as ce}from"./chunk-UZYGEOWY.js";import{a as q}from"./chunk-YT7VXQVX.js";import"./chunk-H6SIM4BT.js";import"./chunk-KOC5KV3E.js";import{R as ae}from"./chunk-7Z5QEFR4.js";import"./chunk-46IB4C4Q.js";import{c as $}from"./chunk-UY2Y5CXB.js";import"./chunk-ZFWEPGWG.js";import{b as he}from"./chunk-K5PFWU5J.js";import"./chunk-4FNHHFWR.js";import"./chunk-GXZAXNZI.js";import{f as G}from"./chunk-KJTLW5W2.js";import"./chunk-UREY4GLG.js";import{a as ke}from"./chunk-6OKDCV7J.js";import{d as R,h as Z,m as A,o as de,p as ge}from"./chunk-KLLYGWNF.js";import"./chunk-UDZY7MKE.js";import{a as i,e as le,f as Oe,g as _e,h as De}from"./chunk-UHHTEBC3.js";var B=le(Oe(),1);var ee=le(_e(),1);var a=le(De(),1);var Je=i(r=>{let e=r.trim();if(e==="")return;let n=Number(e);return Number.isFinite(n)&&n>0?Math.floor(n):void 0},"_e"),Le=i(r=>r===void 0?"\u2014":new Date(r*1e3).toISOString(),"Je"),Pe=i(r=>new TextEncoder().encode(r).length,"De"),Fe=i(r=>{if(r.trim()!=="")try{return JSON.stringify(JSON.parse(r),void 0,2)}catch{return}},"ge"),Ee=i(r=>{if(r.trim()==="")return!0;try{return JSON.parse(r),!0}catch{return!1}},"xe"),Ke=[{key:"seconds",seconds:1},{key:"minutes",seconds:60},{key:"hours",seconds:3600},{key:"days",seconds:86400}],Ce=i((r,e)=>{let n=r.trim();if(n==="")return"";let u=Number(n),s=Ke.find(p=>p.key===e)?.seconds??1;return Number.isFinite(u)&&u>0?String(Math.round(u*s)):n},"ue"),Ve=i(r=>{let e=r.trim();if(e==="")return!0;let n=Number(e);return Number.isInteger(n)&&n>=60},"Ce"),Te=i((r,e,n,u)=>{let s=Je(r.ttl);return{expiration:s===void 0?u:void 0,expirationTtl:s,key:e,metadata:r.metadata.trim()===""?void 0:JSON.parse(r.metadata),namespace:n,value:r.value}},"we"),Me=i(r=>{let e=(0,ee.c)(60),{helper:n,id:u,invalid:s,onChange:p,testId:o}=r,t=R(),[l,y]=(0,B.useState)(""),[c,x]=(0,B.useState)("seconds"),b;e[0]!==p||e[1]!==c?(b=i(f=>{y(f.target.value),p(Ce(f.target.value,c))},"f"),e[0]=p,e[1]=c,e[2]=b):b=e[2];let O=b,T;e[3]!==l||e[4]!==p?(T=i(f=>{f!==null&&(x(f),p(Ce(l,f)))},"V"),e[3]=l,e[4]=p,e[5]=T):T=e[5];let _=T,h;e[6]!==t?(h=t("days"),e[6]=t,e[7]=h):h=e[7];let v;e[8]!==t?(v=t("hours"),e[8]=t,e[9]=v):v=e[9];let k;e[10]!==t?(k=t("minutes"),e[10]=t,e[11]=k):k=e[11];let N;e[12]!==t?(N=t("seconds"),e[12]=t,e[13]=N):N=e[13];let w;e[14]!==h||e[15]!==v||e[16]!==k||e[17]!==N?(w={days:h,hours:v,minutes:k,seconds:N},e[14]=h,e[15]=v,e[16]=k,e[17]=N,e[18]=w):w=e[18];let C=w,g;e[19]!==t?(g=t("Expires after"),e[19]=t,e[20]=g):g=e[20];let S;e[21]!==u||e[22]!==g?(S=(0,a.jsx)(q,{className:"text-xs",htmlFor:u,children:g}),e[21]=u,e[22]=g,e[23]=S):S=e[23];let E;e[24]!==t?(E=t("No expiration"),e[24]=t,e[25]=E):E=e[25];let D;e[26]!==l||e[27]!==u||e[28]!==s||e[29]!==O||e[30]!==E||e[31]!==o?(D=(0,a.jsx)(ae,{"aria-invalid":s,className:"flex-1","data-testid":o,id:u,inputMode:"numeric",onChange:O,placeholder:E,value:l}),e[26]=l,e[27]=u,e[28]=s,e[29]=O,e[30]=E,e[31]=o,e[32]=D):D=e[32];let M;e[33]!==t?(M=t("TTL unit"),e[33]=t,e[34]=M):M=e[34];let L=`${o}-unit`,J;e[35]===Symbol.for("react.memo_cache_sentinel")?(J=(0,a.jsx)(fe,{}),e[35]=J):J=e[35];let d;e[36]!==M||e[37]!==L?(d=(0,a.jsx)(xe,{"aria-label":M,className:"w-[7.5rem]","data-testid":L,children:J}),e[36]=M,e[37]=L,e[38]=d):d=e[38];let m;e[39]!==C?(m=Ke.map(f=>(0,a.jsx)(we,{value:f.key,children:C[f.key]},f.key)),e[39]=C,e[40]=m):m=e[40];let V;e[41]!==m?(V=(0,a.jsx)(Ne,{children:m}),e[41]=m,e[42]=V):V=e[42];let F;e[43]!==_||e[44]!==d||e[45]!==V||e[46]!==c?(F=(0,a.jsxs)(be,{onValueChange:_,value:c,children:[d,V]}),e[43]=_,e[44]=d,e[45]=V,e[46]=c,e[47]=F):F=e[47];let I;e[48]!==D||e[49]!==F?(I=(0,a.jsxs)("div",{className:"flex gap-2",children:[D,F]}),e[48]=D,e[49]=F,e[50]=I):I=e[50];let K;e[51]!==n||e[52]!==s||e[53]!==t||e[54]!==o?(K=s?(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":`${o}-invalid`,children:t("TTL must be at least 60 seconds.")}):n!==void 0&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:n}),e[51]=n,e[52]=s,e[53]=t,e[54]=o,e[55]=K):K=e[55];let P;return e[56]!==I||e[57]!==K||e[58]!==S?(P=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[S,I,K]}),e[56]=I,e[57]=K,e[58]=S,e[59]=P):P=e[59],P},"$e"),Ie=i(r=>{let e=(0,ee.c)(36),{id:n,invalidTestId:u,onChange:s,testId:p,valid:o,value:t}=r,l=R(),y;e[0]!==t?(y=Fe(t),e[0]=t,e[1]=y):y=e[1];let c=y,x;e[2]!==l?(x=l("Metadata (JSON)"),e[2]=l,e[3]=x):x=e[3];let b;e[4]!==n||e[5]!==x?(b=(0,a.jsx)(q,{className:"text-xs",htmlFor:n,children:x}),e[4]=n,e[5]=x,e[6]=b):b=e[6];let O=`${p}-format`,T=c===void 0,_;e[7]!==c||e[8]!==s?(_=i(()=>{c!==void 0&&s(c)},"O"),e[7]=c,e[8]=s,e[9]=_):_=e[9];let h;e[10]!==l?(h=l("Format JSON"),e[10]=l,e[11]=h):h=e[11];let v;e[12]!==O||e[13]!==T||e[14]!==_||e[15]!==h?(v=(0,a.jsx)($,{"data-testid":O,disabled:T,onClick:_,size:"sm",variant:"outline",children:h}),e[12]=O,e[13]=T,e[14]=_,e[15]=h,e[16]=v):v=e[16];let k;e[17]!==b||e[18]!==v?(k=(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[b,v]}),e[17]=b,e[18]=v,e[19]=k):k=e[19];let N=!o,w;e[20]!==s?(w=i(E=>{s(E.target.value)},"N"),e[20]=s,e[21]=w):w=e[21];let C;e[22]!==n||e[23]!==N||e[24]!==w||e[25]!==p||e[26]!==t?(C=(0,a.jsx)(ce,{"aria-invalid":N,className:"min-h-[4rem] font-mono text-xs","data-testid":p,id:n,onChange:w,value:t}),e[22]=n,e[23]=N,e[24]=w,e[25]=p,e[26]=t,e[27]=C):C=e[27];let g;e[28]!==u||e[29]!==l||e[30]!==o?(g=!o&&(0,a.jsx)("p",{className:"text-xs text-destructive","data-testid":u,children:l("Metadata must be valid JSON.")}),e[28]=u,e[29]=l,e[30]=o,e[31]=g):g=e[31];let S;return e[32]!==C||e[33]!==g||e[34]!==k?(S=(0,a.jsxs)("div",{className:"mb-3 grid gap-1",children:[k,C,g]}),e[32]=C,e[33]=g,e[34]=k,e[35]=S):S=e[35],S},"Se"),Be={busy:!1,error:null,metadata:"",name:"",ttl:"",value:""},$e=i((r,e)=>{switch(e.type){case"setField":return{...r,[e.field]:e.value};case"submitFailed":return{...r,busy:!1,error:e.error};case"submitStart":return{...r,busy:!0,error:null};default:return r}},"Be"),je=i(r=>{let e=(0,ee.c)(73),{namespace:n,onCancel:u,onCreated:s}=r,p=G(),o=R(),[t,l]=(0,B.useReducer)($e,Be),y;e[0]!==t.metadata?(y=Ee(t.metadata),e[0]=t.metadata,e[1]=y):y=e[1];let c=y,x;e[2]!==t.ttl?(x=Ve(t.ttl),e[2]=t.ttl,e[3]=x):x=e[3];let b=x,O;e[4]!==c||e[5]!==t.busy||e[6]!==t.name||e[7]!==b?(O=t.name.trim()!==""&&c&&b&&!t.busy,e[4]=c,e[5]=t.busy,e[6]=t.name,e[7]=b,e[8]=O):O=e[8];let T=O,_;e[9]!==T||e[10]!==p||e[11]!==n||e[12]!==s||e[13]!==t.metadata||e[14]!==t.name||e[15]!==t.ttl||e[16]!==t.value?(_=i(()=>{T&&(l({type:"submitStart"}),A((async()=>{try{await p.putKvValue(Te({metadata:t.metadata,ttl:t.ttl,value:t.value},t.name,n)),s()}catch(z){l({error:Z(z),type:"submitFailed"})}})()))},"O"),e[9]=T,e[10]=p,e[11]=n,e[12]=s,e[13]=t.metadata,e[14]=t.name,e[15]=t.ttl,e[16]=t.value,e[17]=_):_=e[17];let h=_,v;e[18]!==o?(v=o("Key name"),e[18]=o,e[19]=v):v=e[19];let k;e[20]!==v?(k=(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-create-name",children:v}),e[20]=v,e[21]=k):k=e[21];let N;e[22]===Symbol.for("react.memo_cache_sentinel")?(N=i(z=>{l({field:"name",type:"setField",value:z.target.value})},"x"),e[22]=N):N=e[22];let w;e[23]!==o?(w=o("Key name"),e[23]=o,e[24]=w):w=e[24];let C;e[25]!==t.name||e[26]!==w?(C=(0,a.jsx)(ae,{autoFocus:!0,"data-testid":"kv-create-name",id:"kv-create-name",onChange:N,placeholder:w,value:t.name}),e[25]=t.name,e[26]=w,e[27]=C):C=e[27];let g;e[28]!==k||e[29]!==C?(g=(0,a.jsxs)("div",{className:"grid gap-1",children:[k,C]}),e[28]=k,e[29]=C,e[30]=g):g=e[30];let S;e[31]!==o?(S=o("Value"),e[31]=o,e[32]=S):S=e[32];let E;e[33]!==S?(E=(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-create-value",children:S}),e[33]=S,e[34]=E):E=e[34];let D;e[35]===Symbol.for("react.memo_cache_sentinel")?(D=i(z=>{l({field:"value",type:"setField",value:z.target.value})},"_"),e[35]=D):D=e[35];let M;e[36]!==t.value?(M=(0,a.jsx)(ce,{className:"min-h-[6rem] font-mono text-xs","data-testid":"kv-create-value",id:"kv-create-value",onChange:D,value:t.value}),e[36]=t.value,e[37]=M):M=e[37];let L;e[38]!==E||e[39]!==M?(L=(0,a.jsxs)("div",{className:"grid gap-1",children:[E,M]}),e[38]=E,e[39]=M,e[40]=L):L=e[40];let J=!b,d;e[41]===Symbol.for("react.memo_cache_sentinel")?(d=i(z=>{l({field:"ttl",type:"setField",value:z})},"d"),e[41]=d):d=e[41];let m;e[42]!==J?(m=(0,a.jsx)(Me,{id:"kv-create-ttl",invalid:J,onChange:d,testId:"kv-create-ttl"}),e[42]=J,e[43]=m):m=e[43];let V;e[44]===Symbol.for("react.memo_cache_sentinel")?(V=i(z=>{l({field:"metadata",type:"setField",value:z})},"E"),e[44]=V):V=e[44];let F;e[45]!==c||e[46]!==t.metadata?(F=(0,a.jsx)(Ie,{id:"kv-create-metadata",invalidTestId:"kv-create-metadata-invalid",onChange:V,testId:"kv-create-metadata",valid:c,value:t.metadata}),e[45]=c,e[46]=t.metadata,e[47]=F):F=e[47];let I=!T,K;e[48]!==t.busy||e[49]!==o?(K=t.busy?o("Creating\u2026"):o("Create key"),e[48]=t.busy,e[49]=o,e[50]=K):K=e[50];let P;e[51]!==h||e[52]!==I||e[53]!==K?(P=(0,a.jsx)($,{"data-testid":"kv-create-submit",disabled:I,onClick:h,children:K}),e[51]=h,e[52]=I,e[53]=K,e[54]=P):P=e[54];let f=t.busy,j;e[55]!==o?(j=o("Cancel"),e[55]=o,e[56]=j):j=e[56];let H;e[57]!==u||e[58]!==t.busy||e[59]!==j?(H=(0,a.jsx)($,{"data-testid":"kv-create-cancel",disabled:f,onClick:u,variant:"outline",children:j}),e[57]=u,e[58]=t.busy,e[59]=j,e[60]=H):H=e[60];let U;e[61]!==P||e[62]!==H?(U=(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[P,H]}),e[61]=P,e[62]=H,e[63]=U):U=e[63];let W;e[64]!==t.error?(W=t.error!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-create-error",role:"alert",children:t.error}),e[64]=t.error,e[65]=W):W=e[65];let te;return e[66]!==g||e[67]!==L||e[68]!==m||e[69]!==F||e[70]!==U||e[71]!==W?(te=(0,a.jsxs)("div",{className:"grid gap-3 px-4 pb-4","data-testid":"kv-create-form",children:[g,L,m,F,U,W]}),e[66]=g,e[67]=L,e[68]=m,e[69]=F,e[70]=U,e[71]=W,e[72]=te):te=e[72],te},"Pe"),ze={busy:"",editedMetadata:"",editedTtl:"",editedValue:"",loadError:null,loading:!0,value:null,writeError:null},Ae=i((r,e)=>{switch(e.type){case"deleteStart":return{...r,busy:"deleting",writeError:null};case"editMetadata":return{...r,editedMetadata:e.value};case"editTtl":return{...r,editedTtl:e.value};case"editValue":return{...r,editedValue:e.value};case"loaded":return{...r,editedMetadata:e.metadata===null||e.metadata===void 0?"":JSON.stringify(e.metadata,null,2),editedValue:e.value??"",loading:!1,value:e.value};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"saveOk":return{...r,busy:"",value:r.editedValue};case"saveStart":return{...r,busy:"saving",writeError:null};case"writeFailed":return{...r,busy:"",writeError:e.error};default:return r}},"Ae"),He=i(r=>{let e=(0,ee.c)(67),{expiration:n,keyName:u,namespace:s,onDeleted:p}=r,o=G(),t=R(),[l,y]=(0,B.useReducer)(Ae,ze),c,x;e[0]!==o||e[1]!==u||e[2]!==s?(c=i(()=>{let f={cancelled:!1};return A((async()=>{try{let j=await o.getKvValue({key:u,namespace:s});f.cancelled||y({metadata:j.metadata,type:"loaded",value:j.value})}catch(j){let H=j;f.cancelled||y({error:Z(H),type:"loadFailed"})}})()),()=>{f.cancelled=!0}},"o"),x=[o,s,u],e[0]=o,e[1]=u,e[2]=s,e[3]=c,e[4]=x):(c=e[3],x=e[4]),(0,B.useEffect)(c,x);let b;e[5]===Symbol.for("react.memo_cache_sentinel")?(b=i(f=>{y({type:"editValue",value:f.target.value})},"f"),e[5]=b):b=e[5];let O=b,T;e[6]===Symbol.for("react.memo_cache_sentinel")?(T=i(f=>{y({type:"editMetadata",value:f})},"V"),e[6]=T):T=e[6];let _=T,h;e[7]!==l.editedValue?(h=Fe(l.editedValue),e[7]=l.editedValue,e[8]=h):h=e[8];let v=h,k;e[9]!==l.editedMetadata?(k=Ee(l.editedMetadata),e[9]=l.editedMetadata,e[10]=k):k=e[10];let N=k,w;e[11]!==l.editedTtl?(w=Ve(l.editedTtl),e[11]=l.editedTtl,e[12]=w):w=e[12];let C=w,g;e[13]!==v?(g=i(()=>{v!==void 0&&y({type:"editValue",value:v})},"k"),e[13]=v,e[14]=g):g=e[14];let S=g,E;e[15]!==o||e[16]!==n||e[17]!==u||e[18]!==N||e[19]!==s||e[20]!==l.editedMetadata||e[21]!==l.editedTtl||e[22]!==l.editedValue||e[23]!==t?(E=i(()=>{if(!N){y({error:t("Metadata must be valid JSON."),type:"writeFailed"});return}y({type:"saveStart"}),A((async()=>{try{await o.putKvValue(Te({metadata:l.editedMetadata,ttl:l.editedTtl,value:l.editedValue},u,s,n)),y({type:"saveOk"})}catch(f){y({error:Z(f),type:"writeFailed"})}})())},"F"),e[15]=o,e[16]=n,e[17]=u,e[18]=N,e[19]=s,e[20]=l.editedMetadata,e[21]=l.editedTtl,e[22]=l.editedValue,e[23]=t,e[24]=E):E=e[24];let D=E,M;e[25]!==o||e[26]!==u||e[27]!==s||e[28]!==p?(M=i(()=>{y({type:"deleteStart"}),A((async()=>{try{await o.deleteKvKey({key:u,namespace:s}),p(u)}catch(f){y({error:Z(f),type:"writeFailed"})}})())},"M"),e[25]=o,e[26]=u,e[27]=s,e[28]=p,e[29]=M):M=e[29];let L=M,J;e[30]!==u?(J=i(()=>{de(u)},"J"),e[30]=u,e[31]=J):J=e[31];let d;e[32]!==t?(d=t("Copy key"),e[32]=t,e[33]=d):d=e[33];let m;e[34]!==J||e[35]!==d?(m=(0,a.jsx)("div",{className:"mb-2 flex justify-end",children:(0,a.jsx)($,{"data-testid":"kv-copy-key-btn",onClick:J,size:"sm",variant:"outline",children:d})}),e[34]=J,e[35]=d,e[36]=m):m=e[36];let V;e[37]!==l.loadError?(V=l.loadError!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-value-error",role:"alert",children:l.loadError}),e[37]=l.loadError,e[38]=V):V=e[38];let F;e[39]!==l.loading||e[40]!==t?(F=l.loading&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-value-loading",children:t("Loading\u2026")}),e[39]=l.loading,e[40]=t,e[41]=F):F=e[41];let I;e[42]!==v||e[43]!==N||e[44]!==L||e[45]!==S||e[46]!==D||e[47]!==l.busy||e[48]!==l.editedMetadata||e[49]!==l.editedValue||e[50]!==l.loading||e[51]!==l.value||e[52]!==l.writeError||e[53]!==t||e[54]!==C?(I=!l.loading&&l.value!==null&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"mb-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(q,{className:"text-xs",htmlFor:"kv-value-editor",children:t("Value")}),v!==void 0&&(0,a.jsx)(he,{variant:"secondary",children:t("JSON")}),(0,a.jsx)("span",{className:"ml-auto text-xs tabular-nums text-muted-foreground","data-testid":"kv-value-size",children:ge(Pe(l.editedValue))})]}),(0,a.jsx)("textarea",{"aria-label":t("KV value"),className:"mb-2 min-h-[8rem] w-full rounded border border-border bg-muted/30 p-2 font-mono text-xs","data-testid":"kv-value-editor",id:"kv-value-editor",onChange:O,value:l.editedValue}),(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap gap-2",children:[(0,a.jsx)($,{"data-testid":"kv-format-btn",disabled:v===void 0,onClick:S,size:"sm",variant:"outline",children:t("Format JSON")}),(0,a.jsx)($,{"data-testid":"kv-copy-value-btn",onClick:i(()=>{de(l.editedValue)},"onClick"),size:"sm",variant:"outline",children:t("Copy value")})]}),(0,a.jsx)(Me,{helper:t("Leave blank to keep the current expiration."),id:"kv-ttl-input",invalid:!C,onChange:i(f=>{y({type:"editTtl",value:f})},"onChange"),testId:"kv-ttl-input"}),(0,a.jsx)(Ie,{id:"kv-metadata-editor",invalidTestId:"kv-metadata-invalid",onChange:_,testId:"kv-metadata-editor",valid:N,value:l.editedMetadata}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)($,{"data-testid":"kv-save-btn",disabled:l.busy!==""||!N||!C,onClick:D,children:l.busy==="saving"?t("Saving\u2026"):t("Save")}),(0,a.jsx)($,{"data-testid":"kv-delete-btn",disabled:l.busy!=="",onClick:L,variant:"destructive",children:l.busy==="deleting"?t("Deleting\u2026"):t("Delete")})]}),l.writeError!==null&&(0,a.jsx)("p",{className:"mt-2 text-sm text-destructive","data-testid":"kv-save-error",role:"alert",children:l.writeError})]}),e[42]=v,e[43]=N,e[44]=L,e[45]=S,e[46]=D,e[47]=l.busy,e[48]=l.editedMetadata,e[49]=l.editedValue,e[50]=l.loading,e[51]=l.value,e[52]=l.writeError,e[53]=t,e[54]=C,e[55]=I):I=e[55];let K;e[56]!==l.loadError||e[57]!==l.loading||e[58]!==l.value||e[59]!==t?(K=!l.loading&&l.value===null&&l.loadError===null&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-absent",children:t("Key is absent or has no value.")}),e[56]=l.loadError,e[57]=l.loading,e[58]=l.value,e[59]=t,e[60]=K):K=e[60];let P;return e[61]!==m||e[62]!==V||e[63]!==F||e[64]!==I||e[65]!==K?(P=(0,a.jsxs)("div",{className:"px-4 pb-4","data-testid":"kv-value-section",children:[m,V,F,I,K]}),e[61]=m,e[62]=V,e[63]=F,e[64]=I,e[65]=K,e[66]=P):P=e[66],P},"ze"),Se=100,Ze={appliedPrefix:"",bulk:[],bulkBusy:!1,bulkError:null,cursor:null,keys:null,listComplete:!1,loadError:null,loading:!1,prefixInput:"",reloadNonce:0,selectedKey:null},Re=i((r,e)=>{switch(e.type){case"appendPage":return{...r,cursor:e.cursor,keys:[...r.keys??[],...e.keys],listComplete:e.listComplete,loading:!1};case"applyFilter":return{...r,appliedPrefix:r.prefixInput,bulk:[],bulkError:null,cursor:null,keys:null,listComplete:!1,selectedKey:null};case"bulkDeleted":{let n=new Set(e.deleted);return{...r,bulk:r.bulk.filter(u=>!n.has(u)),bulkBusy:!1,bulkError:e.error,keys:r.keys===null?null:r.keys.filter(u=>!n.has(u.name)),selectedKey:r.selectedKey!==null&&n.has(r.selectedKey)?null:r.selectedKey}}case"bulkDeleteStart":return{...r,bulkBusy:!0,bulkError:null};case"firstPage":return{...r,cursor:e.cursor,keys:e.keys,listComplete:e.listComplete,loading:!1};case"keyDeleted":return{...r,bulk:r.bulk.filter(n=>n!==e.name),keys:r.keys===null?null:r.keys.filter(n=>n.name!==e.name),selectedKey:null};case"loadFailed":return{...r,loadError:e.error,loading:!1};case"loadStart":return{...r,loadError:null,loading:!0};case"prefixInput":return{...r,prefixInput:e.value};case"reload":return{...r,bulk:[],bulkError:null,reloadNonce:r.reloadNonce+1,selectedKey:null};case"selectKey":return{...r,selectedKey:e.name};case"toggleAllBulk":return{...r,bulk:e.names};case"toggleBulk":return{...r,bulk:r.bulk.includes(e.name)?r.bulk.filter(n=>n!==e.name):[...r.bulk,e.name]};default:return r}},"Re"),Ue=i(({namespace:r})=>{let e=G(),n=R(),[u,s]=(0,B.useReducer)(Re,Ze),{appliedPrefix:p,bulk:o,bulkBusy:t,bulkError:l,cursor:y,keys:c,listComplete:x,loadError:b,loading:O,prefixInput:T,reloadNonce:_,selectedKey:h}=u,[v,k]=(0,B.useState)(!1);(0,B.useEffect)(()=>{let d={cancelled:!1};return A((async()=>{s({type:"loadStart"});try{let m=await e.listKvKeys({limit:Se,namespace:r,prefix:p===""?void 0:p});d.cancelled||s({cursor:m.cursor??null,keys:m.keys,listComplete:m.listComplete,type:"firstPage"})}catch(m){d.cancelled||s({error:Z(m),type:"loadFailed"})}})()),()=>{d.cancelled=!0}},[e,r,p,_]);let N=i(d=>{s({type:"prefixInput",value:d.target.value})},"x"),w=i(()=>{s({type:"applyFilter"})},"N"),C=i(d=>{s({name:d.currentTarget.dataset.key??null,type:"selectKey"})},"C"),g=i(()=>{y!==null&&(s({type:"loadStart"}),A((async()=>{try{let d=await e.listKvKeys({cursor:y,limit:Se,namespace:r,prefix:p===""?void 0:p});s({cursor:d.cursor??null,keys:d.keys,listComplete:d.listComplete,type:"appendPage"})}catch(d){s({error:Z(d),type:"loadFailed"})}})()))},"k"),S=i(d=>{s({name:d,type:"keyDeleted"})},"w"),E=i(d=>{s({name:d,type:"toggleBulk"})},"F"),D=i(d=>{s({names:d&&c!==null?c.map(m=>m.name):[],type:"toggleAllBulk"})},"_"),M=i(()=>{if(o.length===0)return;let d=[...o];s({type:"bulkDeleteStart"}),A((async()=>{let m=await Promise.allSettled(d.map(I=>e.deleteKvKey({key:I,namespace:r}))),V=d.filter((I,K)=>m[K]?.status==="fulfilled"),F=d.length-V.length;s({deleted:V,error:F>0?n("Failed to delete {count} keys.",{count:F}):null,type:"bulkDeleted"})})())},"M"),L=i(()=>{k(!1),s({type:"reload"})},"D"),J=c!==null&&c.length>0&&o.length===c.length;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("section",{className:"border border-border bg-card p-3","data-testid":"kv-keys-section",children:[(0,a.jsxs)("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[(0,a.jsx)(ae,{"aria-label":n("Filter keys by prefix"),className:"min-w-[16rem] flex-1","data-testid":"kv-prefix-input",onChange:N,placeholder:n("Filter by prefix\u2026"),value:T}),(0,a.jsx)($,{"data-testid":"kv-filter-btn",disabled:O,onClick:w,children:n("Filter")}),(0,a.jsx)($,{"data-testid":"kv-new-key-btn",onClick:i(()=>{k(d=>!d)},"onClick"),variant:"outline",children:n("New key")}),o.length>0&&(0,a.jsx)($,{"data-testid":"kv-bulk-delete-btn",disabled:t,onClick:M,variant:"destructive",children:t?n("Deleting\u2026"):n("Delete {count}",{count:o.length})})]}),l!==null&&(0,a.jsx)("p",{className:"mb-2 text-sm text-destructive","data-testid":"kv-bulk-error",role:"alert",children:l}),b!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-keys-error",role:"alert",children:b}),c!==null&&c.length===0&&!O&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"kv-no-keys",children:n("No keys.")}),c!==null&&c.length>0&&(0,a.jsx)(re,{className:"overflow-hidden py-0",children:(0,a.jsx)(ne,{className:"px-0",children:(0,a.jsxs)(se,{"data-testid":"kv-key-table",children:[(0,a.jsx)(ie,{children:(0,a.jsxs)(Q,{children:[(0,a.jsx)(X,{className:"w-10",children:(0,a.jsx)(ue,{"aria-label":n("Select all"),checked:J,"data-testid":"kv-select-all",onCheckedChange:D})}),(0,a.jsx)(X,{children:n("Key")}),(0,a.jsx)(X,{children:n("Expiration")})]})}),(0,a.jsx)(oe,{children:c.map(d=>(0,a.jsxs)(Q,{className:d.name===h?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-key":d.name,"data-testid":`kv-key-row-${d.name}`,onClick:C,children:[(0,a.jsx)(Y,{onClick:i(m=>{m.stopPropagation()},"onClick"),children:(0,a.jsx)(ue,{"aria-label":n("Select {name}",{name:d.name}),checked:o.includes(d.name),"data-testid":`kv-select-${d.name}`,onCheckedChange:i(()=>{E(d.name)},"onCheckedChange")})}),(0,a.jsx)(Y,{className:"font-mono text-xs",children:d.name}),(0,a.jsx)(Y,{className:"tabular-nums text-xs",children:Le(d.expiration)})]},d.name))})]})})}),!x&&y!==null&&(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)($,{"data-testid":"kv-load-more",disabled:O,onClick:g,variant:"outline",children:n(O?"Loading\u2026":"Load more")})})]}),(0,a.jsx)(me,{onOpenChange:i(d=>{d||k(!1)},"onOpenChange"),open:v,children:(0,a.jsxs)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-create-sheet",side:"right",children:[(0,a.jsx)(pe,{children:(0,a.jsx)(ye,{children:n("New key")})}),(0,a.jsx)(je,{namespace:r,onCancel:i(()=>{k(!1)},"onCancel"),onCreated:L})]})}),(0,a.jsx)(me,{onOpenChange:i(d=>{d||s({name:null,type:"selectKey"})},"onOpenChange"),open:h!==null,children:(0,a.jsxs)(ve,{className:"w-full gap-0 overflow-y-auto sm:max-w-md","data-testid":"kv-editor-sheet",side:"right",children:[(0,a.jsx)(pe,{children:(0,a.jsx)(ye,{className:"truncate font-mono text-xs",children:h})}),h!==null&&(0,a.jsx)(He,{expiration:c?.find(d=>d.name===h)?.expiration,keyName:h,namespace:r,onDeleted:S},`${r}:${h}`)]})})]})},"Ue"),it=i(({loadNamespaces:r}={})=>{let e=G(),n=R(),[u,s]=(0,B.useState)(null),[p,o]=(0,B.useState)(null),[t,l]=(0,B.useState)(null);(0,B.useEffect)(()=>{let c={cancelled:!1};return A((async()=>{try{let x=await(r??(()=>e.listKvNamespaces()))();c.cancelled||(s(x),o(null),l(b=>b??x[0]?.binding??null))}catch(x){c.cancelled||(s(null),o(Z(x)))}})()),()=>{c.cancelled=!0}},[e,r]);let y=i(c=>{l(c.currentTarget.dataset.ns??null)},"p");return(0,a.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-kv-browser",children:[p!==null&&(0,a.jsx)("p",{className:"text-sm text-destructive","data-testid":"kv-ns-error",role:"alert",children:p}),u!==null&&u.length===0&&(0,a.jsx)(ke,{description:n("Add a kv_namespaces binding to wrangler.jsonc \u2014 it appears here automatically, no wiring needed."),icon:(0,a.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{d:"M5 5h14v4H5V5Zm0 5h14v4H5v-4Zm0 5h14v4H5v-4Z"})}),testId:"kv-empty",title:n("No KV namespaces.")}),u!==null&&u.length>0&&(0,a.jsx)(re,{className:"overflow-hidden py-0",children:(0,a.jsx)(ne,{className:"px-0",children:(0,a.jsxs)(se,{"data-testid":"kv-namespace-table",children:[(0,a.jsx)(ie,{children:(0,a.jsx)(Q,{children:(0,a.jsx)(X,{children:n("Namespace")})})}),(0,a.jsx)(oe,{children:u.map(c=>(0,a.jsx)(Q,{className:c.binding===t?"border-l-2 border-l-royal-amethyst bg-muted/50":"cursor-pointer","data-ns":c.binding,"data-testid":`kv-ns-row-${c.binding}`,onClick:y,children:(0,a.jsx)(Y,{className:"font-mono text-xs",children:c.binding})},c.binding))})]})})}),t!==null&&(0,a.jsx)(Ue,{namespace:t},t)]})},"ct");export{it as KvBrowser};
@@ -0,0 +1 @@
1
+ import{a as i,j as a}from"./chunk-4FNHHFWR.js";import{a as o}from"./chunk-UREY4GLG.js";import{a as r,j as n}from"./chunk-UHHTEBC3.js";function s(e){return a(e.defaultTagName??"div",e,e)}r(s,"useRender");var g=o("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-none border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pe-1.5 has-data-[icon=inline-start]:ps-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive font-mono text-[11px] tracking-wide uppercase focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline",success:"bg-success/10 text-success font-mono text-[11px] tracking-wide uppercase [a]:hover:bg-success/15 dark:bg-success/15",warning:"bg-warning/10 text-warning font-mono text-[11px] tracking-wide uppercase [a]:hover:bg-warning/15 dark:bg-warning/15",info:"bg-info/10 text-info font-mono text-[11px] tracking-wide uppercase [a]:hover:bg-info/15 dark:bg-info/15"}},defaultVariants:{variant:"default"}});function x({className:e,variant:t="default",render:d,...u}){return s({defaultTagName:"span",props:i({className:n(g({variant:t}),e)},u),render:d,state:{slot:"badge",variant:t}})}r(x,"f");export{s as a,x as b};